/* GestiNext — tema navy. Un solo foglio di stile, token in cima. */
:root {
  --ground: #050C1A; --panel: #0A1628; --panel-2: #0F1E35; --sunken: #071122;
  --line: #1C2E48; --line-soft: #14243D; --line-strong: #2A3E5C;
  --ink: #E8F0FA; --ink-2: #C9D6E8; --muted: #A9BAD2; --faint: #8EA2BE;
  --blue: #2E8BFF; --blue-ink: #04101F; --blue-soft: #10264A; --link: #7FB8FF;
  --cyan: #5CE1E6; --cyan-soft: #0E2C33;
  --amber: #FFC266; --amber-soft: #2B2410; --amber-line: #5A4718;
  --red: #FF8F99; --red-soft: #3A1620;
  --display: 'Space Grotesk', system-ui, sans-serif;
  --body: Inter, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --r-sm: 10px; --r: 14px; --r-lg: 24px;
  color-scheme: dark;
  box-sizing: border-box;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
*, *::before, *::after { box-sizing: inherit; }
html { scroll-padding-top: env(safe-area-inset-top, 0px); }
body {
  margin: 0; min-height: 100vh; background: var(--ground); color: var(--ink);
  font-family: var(--body); font-size: 15px; line-height: 1.45;
  background-image: radial-gradient(#13223A 1px, transparent 1px); background-size: 28px 28px;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--link); }
a:hover { color: #B9D8FF; }
:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
h1, h2, h3 { font-family: var(--display); font-weight: 600; margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* Splash */
.splash { min-height: 100vh; display: grid; place-items: center; }
.splash-mark { width: 44px; height: 44px; border-radius: 12px; border: 3px solid var(--blue); position: relative; animation: pulse 1.2s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: .35; } }

/* Pulsanti e campi */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 18px;
  border-radius: var(--r); border: 1px solid var(--line-strong); background: var(--panel); color: var(--ink);
  font-weight: 500; text-decoration: none; cursor: pointer; transition: transform .15s, background .2s; }
.btn:hover { background: var(--panel-2); color: var(--ink); }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: .55; cursor: default; }
.btn-primary { border-color: transparent; background: var(--blue); color: var(--blue-ink); font-weight: 600; box-shadow: 0 10px 30px rgba(46,139,255,.32); }
.btn-primary:hover { background: #4A9BFF; color: var(--blue-ink); }
.btn-ghost { border-color: transparent; background: transparent; color: var(--muted); }
.btn-danger { border-color: var(--red); background: transparent; color: var(--red); }
.btn-sm { min-height: 36px; padding: 0 12px; border-radius: var(--r-sm); font-size: 13px; }
.btn-block { width: 100%; }

.field { display: flex; flex-direction: column; gap: 6px; }
.field > span { color: var(--muted); font-size: 13px; font-weight: 500; }
.input, select.input { width: 100%; min-height: 46px; padding: 0 14px; border-radius: var(--r); border: 1px solid var(--line);
  background: var(--sunken); color: var(--ink); outline: none; transition: border-color .2s; }
.input:focus { border-color: var(--blue); }
.input[readonly] { color: var(--muted); }
.hint { color: var(--faint); font-size: 13px; }
.error { padding: 12px 14px; border-radius: var(--r); background: var(--red-soft); color: #FFD3D8; font-size: 14px; }
.notice { padding: 12px 14px; border-radius: var(--r); background: var(--cyan-soft); color: #C9F6F7; font-size: 14px; }

/* Schermate di accesso */
.auth { min-height: 100vh; display: grid; place-items: center; padding: 32px 18px; }
.auth-card { width: 100%; max-width: 420px; display: flex; flex-direction: column; gap: 22px; padding: 32px;
  border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--panel); box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.auth-card h1 { font-size: 30px; letter-spacing: -1px; line-height: 1.1; }
.auth-card p { margin: 6px 0 0; color: var(--muted); }
.auth-form { display: flex; flex-direction: column; gap: 14px; }
.auth-switch { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 14px; }
.auth-switch button { background: none; border: 0; padding: 0; color: var(--link); cursor: pointer; }

/* Marchio */
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; }
.brand b { font-family: var(--display); font-weight: 600; font-size: 20px; letter-spacing: -.5px; }
.brand:hover { color: var(--ink); }

/* Testata e dock */
.topbar { position: sticky; top: 0; z-index: 20; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px;
  padding: 14px 28px; border-bottom: 1px solid var(--line-soft); background: rgba(5,12,26,.88); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 30; background: rgba(5,12,26,.88); }
.dock { display: flex; gap: 4px; padding: 5px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel); }
.dock a { padding: 9px 16px; border-radius: 999px; color: var(--muted); text-decoration: none; font-weight: 500; transition: background .2s, color .2s; }
.dock a:hover { background: #13233D; color: var(--ink); }
.dock a[aria-current="page"] { background: var(--blue); color: var(--blue-ink); font-weight: 600; }
.topbar-end { display: flex; align-items: center; gap: 10px; }
.org-select { min-height: 40px; max-width: 220px; padding: 0 12px; border-radius: 12px; border: 1px solid var(--line); background: var(--panel); color: var(--ink-2); }
.avatar { display: inline-grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--blue);
  background: var(--blue-soft); color: var(--ink); font-family: var(--display); font-weight: 600; cursor: pointer; text-decoration: none; }
.avatar:hover { color: var(--ink); }

.bottom-nav { display: none; }
@media (max-width: 860px) {
  .topbar { padding: 12px 16px; }
  .topbar .dock { display: none; }
  .bottom-nav { position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); z-index: 20;
    display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); padding: 6px; border: 1px solid var(--line);
    border-radius: 24px; background: rgba(10,22,40,.95); box-shadow: 0 20px 40px rgba(0,0,0,.45); }
  .bottom-nav a { display: flex; flex-direction: column; align-items: center; gap: 3px; min-height: 56px; justify-content: center;
    border-radius: 18px; color: var(--faint); font-size: 11px; font-weight: 500; text-decoration: none; }
  .bottom-nav a[aria-current="page"] { color: var(--ink); background: var(--blue-soft); }
  .page { padding-bottom: 120px !important; }
}

/* Pagina */
.page { max-width: 1360px; margin: 0 auto; padding: 36px 28px 64px; display: flex; flex-direction: column; gap: 26px; }
.page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px; }
.page-head h1 { font-size: clamp(30px, 4.4vw, 48px); letter-spacing: -1.6px; line-height: 1.04; }
.page-head p { margin: 8px 0 0; color: var(--muted); font-size: 16px; max-width: 62ch; }
.date-line { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; color: var(--cyan); font-size: 14px; font-weight: 600; }
.date-line::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 12px var(--cyan); }
.actions { display: flex; flex-wrap: wrap; gap: 10px; }

.panel { padding: 24px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--panel); min-width: 0; }
.panel h2 { font-size: 21px; letter-spacing: -.4px; }
.panel-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.row { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.grow-2 { flex: 2 1 560px; } .grow-1 { flex: 1 1 320px; }

/* Lista di avvio */
.steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.step { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px; border-radius: var(--r); background: var(--panel-2); }
.step-dot { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: #13233D; color: var(--muted); font-family: var(--display); font-weight: 700; }
.step.is-done .step-dot { background: var(--cyan-soft); color: var(--cyan); }
.step.is-next { outline: 1px solid var(--blue); background: #0B1C36; }
.step.is-next .step-dot { background: var(--blue); color: var(--blue-ink); }
.step b { display: block; font-weight: 600; }
.step small { color: var(--faint); font-size: 13px; }
.tag { padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; background: #13233D; color: var(--muted); }
.tag-cyan { background: var(--cyan-soft); color: var(--cyan); }
.tag-amber { background: var(--amber-soft); color: var(--amber); }
.tag-blue { background: var(--blue-soft); color: var(--link); }
.tag-red { background: var(--red-soft); color: var(--red); }

.empty { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 28px; border: 1px dashed var(--line-strong); border-radius: var(--r); color: var(--muted); }
.empty b { color: var(--ink); font-family: var(--display); font-size: 18px; font-weight: 600; }

/* Team */
.people { display: flex; flex-direction: column; gap: 6px; }
.person { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px; border-radius: var(--r); border: 1px solid transparent; }
.person:hover { background: var(--panel-2); }
.person .who { display: flex; flex-direction: column; min-width: 0; }
.person .who b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.person .who span { color: var(--faint); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.person .controls { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.person .controls select { min-height: 36px; padding: 0 10px; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--sunken); }
.mini-avatar { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: #13233D; color: var(--ink-2); font-family: var(--display); font-weight: 600; }
.is-off { opacity: .55; }
@media (max-width: 560px) { .person { grid-template-columns: 44px minmax(0, 1fr); } .person .controls { grid-column: 1 / -1; justify-content: flex-start; } }

.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; align-items: end; }
.link-box { display: flex; flex-direction: column; gap: 12px; padding: 18px; border-radius: var(--r); border: 1px solid var(--blue); background: #0B1C36; }
.link-box code { display: block; padding: 12px; border-radius: var(--r-sm); background: var(--sunken); color: var(--ink-2); font-size: 13px; word-break: break-all; }

/* Moduli in arrivo */
.coming { display: flex; flex-direction: column; gap: 12px; max-width: 640px; }
.coming ul { margin: 0; padding-left: 20px; color: var(--muted); }

/* Avvisi */
.toasts { position: fixed; z-index: 50; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); display: flex; flex-direction: column; gap: 8px; width: min(92vw, 420px); }
.toast { padding: 14px 16px; border-radius: var(--r); background: var(--panel-2); border: 1px solid var(--line-strong); box-shadow: 0 16px 40px rgba(0,0,0,.5); animation: rise .25s ease-out; }
.toast.is-error { border-color: var(--red); }
@keyframes rise { from { transform: translateY(8px); opacity: 0; } }
@media (max-width: 860px) { .toasts { bottom: calc(100px + env(safe-area-inset-bottom, 0px)); } }

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ——— Fase 2: CRM ——— */
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { min-height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line); background: transparent; color: var(--muted); font-size: 13px; cursor: pointer; }
.chip:hover { color: var(--ink); border-color: var(--line-strong); }
.chip[aria-pressed="true"] { border-color: var(--blue); background: var(--blue-soft); color: var(--ink); }
.search { display: flex; align-items: center; gap: 10px; padding: 0 14px; min-height: 46px; border: 1px solid var(--line); border-radius: var(--r); background: var(--sunken); color: var(--faint); }
.search input { flex: 1; min-width: 0; border: 0; background: transparent; outline: none; color: var(--ink); }
.search:focus-within { border-color: var(--blue); }

.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.kpi { display: flex; flex-direction: column; gap: 4px; padding: 20px; border: 1px solid var(--line); border-radius: 20px; background: var(--panel); }
.kpi span { color: var(--muted); font-size: 13px; font-weight: 500; }
.kpi b { font-family: var(--display); font-size: 34px; font-weight: 600; letter-spacing: -1px; }
.kpi small { color: var(--faint); font-size: 13px; }
.kpi small.is-warn { color: var(--amber); }

.today { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.today li { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px; border-radius: var(--r); }
.today li:hover { background: var(--panel-2); }
.today .when { font-family: var(--display); font-weight: 500; }
.today .when.is-late { color: var(--red); }
.today .what { display: flex; flex-direction: column; min-width: 0; color: var(--ink); text-decoration: none; }
.today .what small { color: var(--faint); }
@media (max-width: 560px) { .today li { grid-template-columns: 64px minmax(0, 1fr); } .today .actions { grid-column: 2; } }

.crm { display: grid; grid-template-columns: minmax(300px, 400px) minmax(0, 1fr); gap: 20px; align-items: start; }
.crm-list { display: flex; flex-direction: column; gap: 12px; padding: 16px; position: sticky; top: 90px; max-height: calc(100vh - 110px); }
.crm-items { display: flex; flex-direction: column; gap: 2px; overflow-y: auto; min-height: 120px; margin: 0 -6px; padding: 0 6px; }
.crm-item { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px; border-radius: var(--r); border: 1px solid transparent; color: var(--ink); text-decoration: none; }
.crm-item:hover { background: var(--panel-2); color: var(--ink); }
.crm-item[aria-current="true"] { background: var(--blue-soft); border-color: var(--blue); }
.crm-item .who { display: flex; flex-direction: column; min-width: 0; }
.crm-item .who b { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.crm-item .who span { color: var(--faint); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.crm-export { display: flex; align-items: center; gap: 6px; padding-top: 10px; border-top: 1px solid var(--line-soft); }
.crm-placeholder { min-height: 320px; justify-content: center; }
.back-link { display: none; align-self: flex-start; }
@media (max-width: 960px) {
  .crm { grid-template-columns: minmax(0, 1fr); }
  .crm-list { position: static; max-height: none; }
  .crm.has-selection .crm-list, .crm:not(.has-selection) .crm-detail { display: none; }
  .back-link { display: inline-flex; }
}

.detail { display: flex; flex-direction: column; gap: 20px; }
.detail h3 { font-size: 17px; margin-bottom: 12px; }
.detail-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; }
.detail-id { display: flex; gap: 16px; align-items: center; min-width: 0; }
.detail-id h2 { font-size: 26px; letter-spacing: -.8px; }
.detail-id p { margin: 4px 0 0; color: var(--muted); }
.big-avatar { display: grid; place-items: center; flex: none; width: 60px; height: 60px; border-radius: 18px; border: 1px solid var(--blue); background: var(--blue-soft); font-family: var(--display); font-size: 20px; font-weight: 600; }
.detail-bar { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.status-field { flex: 0 1 220px; }
.next-step { flex: 1 1 320px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-radius: var(--r);
  background: var(--amber-soft); border: 1px solid var(--amber-line); color: #FFE2B3; }
.next-step b { color: var(--amber); }
.next-step.is-late { background: var(--red-soft); border-color: #6B2A35; color: #FFD3D8; }
.next-step.is-late b { color: var(--red); }
.next-step.is-empty { background: transparent; border-style: dashed; border-color: var(--line-strong); color: var(--faint); }
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin: 0; }
.facts div { padding: 12px 14px; border-radius: var(--r); background: var(--panel-2); min-width: 0; }
.facts dt { color: var(--faint); font-size: 12px; }
.facts dd { margin: 2px 0 0; font-weight: 500; overflow-wrap: anywhere; }
.notes { margin: 0; padding: 14px; border-radius: var(--r); background: var(--sunken); color: var(--ink-2); white-space: pre-line; }
.log-form { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; padding: 12px; border-radius: var(--r); border: 1px solid var(--line); background: var(--sunken); }
.log-form .btn { align-self: flex-start; }
.log-form .input { background: var(--panel); }
textarea.input { min-height: 0; padding: 10px 14px; resize: vertical; }
.log-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; }
.quick-dates { display: flex; flex-wrap: wrap; gap: 6px; }
.timeline { list-style: none; margin: 0; padding: 0; }
.timeline li { display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 12px; padding-bottom: 14px; position: relative; }
.timeline li::before { content: ""; position: absolute; left: 6px; top: 18px; bottom: 0; width: 1px; background: var(--line); }
.timeline li:last-child::before { display: none; }
.timeline .dot { width: 12px; height: 12px; margin-top: 5px; border-radius: 50%; }
.timeline b { font-weight: 600; }
.timeline p { margin: 2px 0; color: var(--ink-2); white-space: pre-line; }
.timeline small { color: var(--faint); font-size: 12px; }
.tasks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.tasks li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; align-items: start; padding: 10px; border-radius: var(--r); background: var(--panel-2); }
.tasks li small { display: block; color: var(--faint); font-size: 12px; }
.tasks li.is-late small { color: var(--red); }
.tasks li.is-done { opacity: .55; background: transparent; }
.check { width: 24px; height: 24px; border-radius: 8px; border: 2px solid var(--line-strong); background: transparent; cursor: pointer; display: grid; place-items: center; color: var(--cyan); font-size: 13px; }
.check:hover { border-color: var(--cyan); }
.check.is-on { border-color: var(--cyan); }
.detail-foot { display: flex; justify-content: flex-end; padding-top: 12px; border-top: 1px solid var(--line-soft); }

/* Finestre */
.overlay { position: fixed; inset: 0; z-index: 40; display: grid; place-items: center; padding: 16px; background: rgba(2,6,14,.72); backdrop-filter: blur(4px); }
.sheet { width: min(760px, 100%); max-height: calc(100vh - 32px); display: flex; flex-direction: column; border: 1px solid var(--line-strong); border-radius: var(--r-lg); background: var(--panel); box-shadow: 0 40px 100px rgba(0,0,0,.6); }
.sheet-wide { width: min(1000px, 100%); }
.sheet-head, .sheet-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 22px; }
.sheet-head { border-bottom: 1px solid var(--line-soft); }
.sheet-head h2 { font-size: 22px; }
.sheet-foot { border-top: 1px solid var(--line-soft); justify-content: flex-end; }
.sheet-foot .error { flex: 1 1 100%; }
.sheet-body { overflow-y: auto; padding: 20px 22px; display: flex; flex-direction: column; gap: 18px; }
.sheet fieldset { margin: 0; padding: 0; border: 0; }
.sheet legend { margin-bottom: 10px; color: var(--muted); font-size: 13px; font-weight: 600; }
.span-2 { grid-column: span 2; }
@media (max-width: 560px) { .span-2 { grid-column: auto; } .overlay { padding: 0; align-items: end; } .sheet { max-height: 92vh; border-radius: 24px 24px 0 0; } }

.drop { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 28px; border: 1px dashed var(--line-strong); border-radius: var(--r); }
.drop b { font-family: var(--display); font-size: 19px; font-weight: 600; }
.bar { width: 100%; height: 8px; border-radius: 999px; background: #13233D; overflow: hidden; }
.bar span { display: block; height: 100%; background: var(--blue); transition: width .3s; }
.toggle { display: flex; align-items: center; gap: 10px; color: var(--ink-2); }
.toggle input { width: 18px; height: 18px; accent-color: var(--blue); }
.map-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.import-summary { display: flex; flex-wrap: wrap; gap: 8px; }
.table-box { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r); }
.table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 14px; }
.table th { text-align: left; padding: 10px 12px; color: var(--faint); font-weight: 500; background: var(--sunken); }
.table td { padding: 10px 12px; border-top: 1px solid var(--line-soft); }

/* ——— Fase 3: listino e preventivi ——— */
.stack { display: flex; flex-direction: column; gap: 16px; }
.mono { font-family: var(--display); letter-spacing: .2px; }
.num { text-align: right !important; white-space: nowrap; font-variant-numeric: tabular-nums; }
.icon-btn { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--line); background: var(--panel); color: var(--ink-2); }
.icon-btn:hover, .icon-btn[aria-current="page"] { color: var(--ink); border-color: var(--blue); }
fieldset.plain { margin: 0; padding: 0; border: 0; min-width: 0; }
fieldset.plain legend { margin-bottom: 8px; color: var(--muted); font-size: 13px; font-weight: 600; }
.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); }
.tabs a { padding: 10px 16px; color: var(--muted); text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; font-weight: 500; }
.tabs a:hover { color: var(--ink); }
.tabs a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--blue); }
.toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.toolbar .search { flex: 1 1 260px; }
.table tr.clickable { cursor: pointer; }
.table tr.clickable:hover td { background: var(--panel-2); }
.empty-hero { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 36px; }
.empty-hero h2 { font-size: 28px; letter-spacing: -.8px; }
.empty-hero p { margin: 0; color: var(--muted); max-width: 64ch; }

.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.product { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 14px; padding: 14px; border-radius: var(--r); background: var(--panel-2); }
.product-art { width: 76px; }
.product-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.product-body b { font-weight: 600; }
.product-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }

.wizard-steps { list-style: none; margin: 0; padding: 12px 22px 0; display: flex; flex-wrap: wrap; gap: 4px; }
.wizard-steps button { min-height: 34px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line); background: transparent; color: var(--faint); font-size: 13px; cursor: pointer; }
.wizard-steps .is-done button { color: var(--cyan); border-color: var(--cyan-soft); }
.wizard-steps .is-current button { color: var(--ink); border-color: var(--blue); background: var(--blue-soft); }
.sheet-body h3 { font-size: 20px; }
.cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.cat-card, .mode-card { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 16px; border-radius: var(--r); border: 1px solid var(--line); background: var(--sunken); color: var(--ink); text-align: left; cursor: pointer; }
.cat-card svg { width: 60px; }
.cat-card:hover, .mode-card:hover { border-color: var(--line-strong); background: var(--panel-2); }
.cat-card small, .mode-card small { color: var(--faint); font-size: 13px; line-height: 1.35; }
.mode-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.mode-card[aria-pressed="true"] { border-color: var(--blue); background: var(--blue-soft); }
.grid-editor { display: flex; flex-direction: column; gap: 12px; }
.grid-table { min-width: 0; }
.grid-table th { white-space: nowrap; }
.grid-table td { padding: 4px; }
.cell { width: 82px; min-height: 38px; padding: 0 8px; border-radius: 8px; border: 1px solid var(--line); background: var(--sunken); color: var(--ink); text-align: right; }
.cell:focus { border-color: var(--blue); outline: none; }
.paste { padding: 12px 14px; border: 1px dashed var(--line-strong); border-radius: var(--r); }
.paste summary { cursor: pointer; color: var(--link); }
.paste[open] { display: flex; flex-direction: column; gap: 10px; }
.opt-group { margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: var(--r); display: flex; flex-direction: column; gap: 8px; }
.opt-head { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.opt-head .field { flex: 1 1 220px; }
.choice-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(80px, 1fr) minmax(0, 1.4fr) 40px; gap: 8px; }
@media (max-width: 560px) { .choice-row { grid-template-columns: 1fr 1fr; } }
.test-box { display: flex; flex-direction: column; gap: 12px; padding: 16px; border-radius: var(--r); border: 1px solid var(--blue); background: #0B1C36; }
.breakdown { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.breakdown li { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: var(--ink-2); }
.breakdown li > span:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; }
.breakdown .total { padding-top: 10px; border-top: 1px solid var(--line); color: var(--ink); font-family: var(--display); font-size: 22px; font-weight: 600; }
.breakdown .muted { color: var(--cyan); font-size: 13px; }
.input.mini { width: 90px; min-height: 38px; text-align: right; }

.quote-title { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.quote-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.summary { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 18px; border-color: var(--blue); }
@media (max-width: 1000px) { .quote-layout { grid-template-columns: minmax(0, 1fr); } .summary { position: static; } }
.q-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.q-items li { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 12px; border-radius: var(--r); background: var(--panel-2); }
.q-art { width: 96px; display: grid; place-items: center; }
.q-num { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: #13233D; font-family: var(--display); font-weight: 600; }
.q-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.q-body .hint { white-space: pre-line; }
.q-meta { color: var(--muted); font-size: 13px; }
.q-total { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.q-total b { font-family: var(--display); font-size: 18px; font-weight: 600; }
@media (max-width: 640px) { .q-items li { grid-template-columns: 64px minmax(0, 1fr); } .q-art { width: 64px; } .q-total { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; } }

.configurator { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 24px; align-items: start; }
.cfg-art { position: sticky; top: 0; display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 20px; border: 1px solid var(--line);
  background: var(--sunken); background-image: linear-gradient(#0E1B30 1px, transparent 1px), linear-gradient(90deg, #0E1B30 1px, transparent 1px); background-size: 20px 20px; }
.cfg-placeholder { display: grid; place-items: center; aspect-ratio: 1; color: var(--faint); font-family: var(--display); }
.cfg-total { display: flex; align-items: baseline; gap: 10px; margin-right: auto; }
.cfg-total b { font-family: var(--display); font-size: 24px; font-weight: 600; }
@media (max-width: 760px) { .configurator { grid-template-columns: minmax(0, 1fr); } .cfg-art { position: static; max-width: 260px; } }
.quote-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.quote-card { display: flex; flex-direction: column; gap: 4px; padding: 14px; border-radius: var(--r); border: 1px solid var(--line); background: var(--panel-2); color: var(--ink); text-decoration: none; }
.quote-card:hover { border-color: var(--blue); color: var(--ink); }
.quote-card b { font-family: var(--display); font-size: 20px; font-weight: 600; }

/* Documento stampabile */
body.is-print { background: #E9EDF2; background-image: none; }
body.is-print .topbar, body.is-print .bottom-nav { display: none; }
.print-wrap { padding: 24px 16px 80px; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.print-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; width: min(210mm, 100%); }
.print-bar .hint { color: #4A5868; }
.doc { width: min(210mm, 100%); min-height: 297mm; padding: 16mm 14mm; box-sizing: border-box; background: #fff; color: #1B2A3D; font-family: Inter, system-ui, sans-serif; font-size: 10.5pt; line-height: 1.45; box-shadow: 0 10px 40px rgba(0,0,0,.18); }
.doc p { margin: 0; }
.doc-head { display: flex; justify-content: space-between; gap: 24px; padding-bottom: 14px; border-bottom: 2px solid #1F4E8C; }
.doc-company { font-family: 'Space Grotesk', sans-serif; font-size: 17pt; color: #0E2A4F; }
.doc-head p { color: #4A5868; font-size: 9pt; }
.doc-ref { text-align: right; }
.doc-ref span { display: block; color: #4A5868; font-size: 9pt; }
.doc-ref b { font-family: 'Space Grotesk', sans-serif; font-size: 15pt; color: #1F4E8C; }
.doc-parties { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 18px 0; }
.doc-parties span { display: block; color: #4A5868; font-size: 8.5pt; text-transform: none; }
.doc-parties b { font-size: 11.5pt; }
.doc-title { margin: 0 0 12px; font-family: 'Space Grotesk', sans-serif; font-size: 14pt; color: #0E2A4F; }
.doc-table { width: 100%; border-collapse: collapse; }
.doc-table th { padding: 6px 6px; border-bottom: 1.5px solid #1F4E8C; text-align: left; font-size: 8.5pt; color: #4A5868; font-weight: 600; }
.doc-table td { padding: 8px 6px; border-bottom: 1px solid #DCE3EC; vertical-align: top; }
.doc-table tr { break-inside: avoid; }
.doc-item { display: flex; gap: 12px; }
.doc-art { flex: none; width: 82px; }
.doc-item b { color: #0E2A4F; }
.doc-item p { color: #3A4858; font-size: 9pt; white-space: pre-line; }
.doc-totals { display: flex; justify-content: flex-end; margin-top: 14px; }
.doc-totals table { min-width: 290px; border-collapse: collapse; }
.doc-totals td { padding: 4px 6px; }
.doc-totals .grand td { padding-top: 8px; border-top: 2px solid #1F4E8C; font-family: 'Space Grotesk', sans-serif; font-size: 14pt; font-weight: 700; color: #0E2A4F; }
.doc-notes { margin-top: 16px; font-size: 9pt; color: #3A4858; break-inside: avoid; }
.doc-notes b { color: #0E2A4F; }
.doc-notes p { white-space: pre-line; }
.doc-sign { display: grid; grid-template-columns: 1fr 2fr; gap: 32px; margin-top: 40px; break-inside: avoid; }
.doc-sign div { border-top: 1px solid #7F8C9B; padding-top: 4px; color: #4A5868; font-size: 8.5pt; }
@media print {
  @page { size: A4; margin: 0; }
  body, body.is-print { background: #fff !important; padding: 0; }
  :root { padding: 0; }
  .no-print, .toasts { display: none !important; }
  .print-wrap { padding: 0; }
  .doc { box-shadow: none; width: 210mm; min-height: 0; }
  /* in stampa solo il foglio, sempre centrato sull'A4 (niente menu, barre o margini dell'app) */
  body.is-print * { visibility: hidden; }
  body.is-print .print-wrap, body.is-print .print-wrap * { visibility: visible; }
  body.is-print .print-wrap .no-print, body.is-print .print-wrap .no-print * { display: none !important; }
  body.is-print .print-wrap { position: absolute; left: 0; top: 0; width: 210mm; margin: 0; padding: 0; display: block; }
  body.is-print .ms-top, body.is-print .topbar, body.is-print .side, body.is-print .bottom-nav { display: none !important; }
}

/* ——— Fase 4: commesse e agenda ——— */
.legend { display: inline-flex; align-items: center; gap: 6px; padding: 0 6px; color: var(--muted); font-size: 12px; }
.legend i { width: 10px; height: 10px; border-radius: 3px; }
.week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; align-items: start; }
.day { display: flex; flex-direction: column; gap: 8px; min-height: 180px; padding: 10px; border: 1px solid var(--line); border-radius: 18px; background: var(--panel); min-width: 0; }
.day.is-today { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(46,139,255,.12); }
.day header { display: flex; align-items: baseline; gap: 8px; padding: 2px 4px 6px; border-bottom: 1px solid var(--line-soft); }
.day header span { color: var(--faint); font-size: 12px; text-transform: capitalize; }
.day header b { font-family: var(--display); font-size: 22px; font-weight: 600; }
.day.is-today header b { color: var(--cyan); }
.day-empty { margin: 0; color: var(--line-strong); text-align: center; }
.event { display: flex; flex-direction: column; border-radius: 12px; background: var(--panel-2); border-left: 3px solid var(--c); overflow: hidden; }
.event-main { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border: 0; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.event-main:disabled { cursor: default; }
.event-main b { font-weight: 600; font-size: 14px; overflow-wrap: anywhere; }
.event-time { color: var(--c); font-size: 12px; font-weight: 600; }
.event-sub { color: var(--faint); font-size: 12px; overflow-wrap: anywhere; }
.event-actions { display: flex; flex-wrap: wrap; gap: 2px; padding: 0 4px 4px; }
.event-actions .btn-sm { min-height: 30px; padding: 0 8px; font-size: 12px; }
.event.is-done { opacity: .55; }
.event.is-done b { text-decoration: line-through; }
.event.is-cancelled { opacity: .4; }
@media (max-width: 1100px) { .week { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); } .day { min-height: 0; } }

.progress { display: inline-flex; gap: 3px; width: 140px; }
.progress i { flex: 1; height: 6px; border-radius: 999px; background: #1E3352; }
.progress i.is-done { background: var(--cyan); }
.progress i.is-now { background: var(--blue); }
.progress i.is-hold { background: var(--amber-line); }
.job-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.job-card { display: flex; flex-direction: column; gap: 6px; padding: 18px; border-radius: 18px; border: 1px solid var(--line); background: var(--panel); color: var(--ink); text-decoration: none; }
.job-card:hover { border-color: var(--blue); color: var(--ink); }
.job-card b { font-family: var(--display); font-size: 19px; font-weight: 600; }
.stepper { display: flex; flex-wrap: wrap; gap: 6px; }
.step-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 14px 0 6px; border-radius: 999px; border: 1px solid var(--line); background: var(--sunken); color: var(--muted); cursor: pointer; }
.step-btn span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #13233D; font-family: var(--display); font-weight: 700; font-size: 13px; }
.step-btn.is-done { color: var(--ink); }
.step-btn.is-done span { background: var(--cyan-soft); color: var(--cyan); }
.step-btn.is-now { border-color: var(--blue); background: var(--blue-soft); color: var(--ink); }
.step-btn.is-now span { background: var(--blue); color: var(--blue-ink); }
.job-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.job-items li { display: grid; grid-template-columns: 84px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px; border-radius: var(--r); background: var(--panel-2); border: 1px solid transparent; }
.job-items li.is-posato { opacity: .7; }
.job-items li.is-problema { border-color: #6B2A35; }
.item-status { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.survey summary { cursor: pointer; color: var(--link); font-size: 13px; margin-top: 4px; }
.survey .form-grid { margin-top: 8px; }
@media (max-width: 640px) {
  .job-items li { grid-template-columns: 64px minmax(0, 1fr); }
  .job-items .q-art { width: 64px; }
  .item-status { grid-column: 1 / -1; flex-direction: row; align-items: center; }
  .item-status .btn-primary { flex: 1; min-height: 48px; }
}
.mat-form { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.3fr) 80px 150px auto; gap: 8px; margin-top: 12px; }
@media (max-width: 760px) { .mat-form { grid-template-columns: 1fr 1fr; } }
.mini-select { min-height: 34px; padding: 0 8px; width: auto; }
.docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.doc-tile { margin: 0; display: flex; flex-direction: column; border-radius: var(--r); overflow: hidden; background: var(--panel-2); }
.doc-tile img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.doc-file { display: grid; place-items: center; aspect-ratio: 4 / 3; background: var(--sunken); font-family: var(--display); font-weight: 700; color: var(--muted); text-decoration: none; }
.doc-tile figcaption { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; font-size: 12px; }
.doc-tile figcaption span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.doc-tile figcaption small { color: var(--faint); }

/* ——— Fase 5: preventivatore autonomo ——— */
.brand-sub { padding: 3px 8px; border-radius: 999px; background: var(--blue-soft); color: var(--link); font-size: 11px; font-weight: 600; letter-spacing: .4px; text-transform: uppercase; }
.pick-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
.pick { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 12px; border-radius: var(--r); border: 1px solid var(--line); background: var(--sunken); color: var(--ink); text-align: left; cursor: pointer; }
.pick:hover { border-color: var(--line-strong); }
.pick[aria-pressed="true"] { border-color: var(--blue); background: var(--blue-soft); }
.pick small { color: var(--faint); font-size: 12px; }
.summary-title { cursor: pointer; color: var(--muted); }
.summary-title b { color: var(--ink); font-family: var(--display); font-size: 18px; }

/* ——— Blocco 5: preventivatore a 5 passaggi e listino da PDF ——— */
.setup { display: flex; flex-direction: column; gap: 18px; padding: 36px; }
.setup h2 { font-size: 30px; letter-spacing: -1px; }
.setup > p { margin: 0; color: var(--muted); max-width: 64ch; }
.setup-steps { margin: 0; padding: 0; list-style: none; counter-reset: s; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.setup-steps li { counter-increment: s; display: flex; flex-direction: column; gap: 6px; padding: 18px; border-radius: var(--r); background: var(--panel-2); }
.setup-steps li::before { content: counter(s); display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--blue); color: var(--blue-ink); font-family: var(--display); font-weight: 700; }
.setup-steps span { color: var(--faint); font-size: 14px; }

.catalog { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 20px; align-items: start; }
.cat-side { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 12px; }
.cat-list { display: flex; flex-direction: column; gap: 2px; }
.cat-item { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 10px; border-radius: var(--r); border: 1px solid transparent; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.cat-item:hover { background: var(--panel-2); }
.cat-item[aria-current="true"] { background: var(--blue-soft); border-color: var(--blue); }
.cat-item small { color: var(--faint); font-family: var(--display); }
.cat-ico { width: 40px; }
@media (max-width: 900px) { .catalog { grid-template-columns: minmax(0, 1fr); } .cat-side { position: static; } }
.pdf-preview { max-height: 46vh; overflow: auto; }
.pdf-preview .table { min-width: 0; font-size: 13px; }
.pdf-preview th { color: var(--faint); font-weight: 400; width: 1%; }
.pdf-preview tr.is-skipped td { opacity: .35; }
.cell.is-empty { border-color: var(--amber-line); }

.wiz-page { gap: 20px; }
.wiz-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; }
.wiz-head h1 { margin-top: 4px; font-size: clamp(28px, 3.6vw, 38px); letter-spacing: -1.2px; }
.wiz-rail { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.wiz-pill { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px 0 8px; border-radius: 999px; border: 1px solid var(--line); background: var(--panel); color: var(--faint); font-size: 13px; cursor: pointer; }
.wiz-pill span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #13233D; color: var(--muted); font-weight: 700; font-size: 12px; }
.wiz-pill.is-done { color: var(--ink); }
.wiz-pill.is-done span { background: var(--cyan); color: var(--blue-ink); }
.wiz-pill.is-current { border-color: var(--blue); background: var(--blue-soft); color: var(--ink); }
.wiz-pill.is-current span { background: var(--blue); color: var(--blue-ink); }
.wiz-pill:disabled { cursor: default; opacity: .6; }
.wiz-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.wiz-main { min-width: 0; }
.wiz-summary { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 12px; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(46,139,255,.08); }
.wiz-total { font-family: var(--display); font-size: 40px; font-weight: 600; letter-spacing: -1.4px; line-height: 1; }
.wiz-lines { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; max-height: 40vh; overflow-y: auto; }
.wiz-line { width: 100%; display: flex; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 12px; border: 1px solid transparent; background: var(--panel-2); color: var(--ink); text-align: left; cursor: pointer; }
.wiz-line:hover:not(:disabled) { border-color: var(--line-strong); }
.wiz-line:disabled { cursor: default; }
.wiz-line span:first-child { display: flex; flex-direction: column; min-width: 0; }
.wiz-line small { color: var(--faint); font-size: 12px; }
@media (max-width: 1000px) { .wiz-layout { grid-template-columns: minmax(0, 1fr); } .wiz-summary { position: static; } }

.client-card { display: grid; grid-template-columns: 60px minmax(0, 1fr) auto; gap: 16px; align-items: center; }
.client-card b { display: block; font-family: var(--display); font-size: 22px; font-weight: 600; }
.client-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 6px; }
.cat-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; }
.cat-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 16px; border-radius: 18px; border: 1px solid var(--line); background: var(--sunken); color: var(--ink); text-align: left; cursor: pointer; transition: border-color .2s, transform .15s; }
.cat-tile:hover { border-color: var(--blue); transform: translateY(-1px); }
.cat-tile svg { width: 76px; }
.cat-tile small { color: var(--faint); font-size: 12px; }
.cat-tile.is-free { border-style: dashed; }
.cat-plus { display: grid; place-items: center; width: 76px; height: 76px; color: var(--muted); font-size: 40px; font-family: var(--display); }
.configurator-panel { padding: 24px; }
.cfg-art { position: relative; margin: 0; }
.cfg-badge { position: absolute; top: 22px; left: 22px; padding: 4px 10px; border-radius: 999px; background: var(--cyan-soft); color: var(--cyan); font-size: 12px; font-weight: 600; }
.cfg-product { font-family: var(--display); font-size: 18px; font-weight: 600; }
.big-input { font-family: var(--display); font-size: 18px; }
.cfg-price { display: flex; flex-direction: column; gap: 12px; padding: 16px; border-radius: var(--r); background: var(--sunken); }
.price-table .mini { width: 72px; }
.price-table .mini.wide { width: 110px; }
.price-table td { vertical-align: middle; }
.link-btn { padding: 0; border: 0; background: none; color: var(--ink); text-align: left; cursor: pointer; }
.link-btn:hover:not(:disabled) b { color: var(--link); }
.recap { display: flex; flex-direction: column; gap: 18px; }
.recap-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.recap-grid > div { display: flex; flex-direction: column; gap: 4px; padding: 14px; border-radius: var(--r); background: var(--panel-2); }
.recap-grid b { font-weight: 600; }
.wiz-intro { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 32px; border: 1px dashed var(--line-strong); border-radius: var(--r); }
.wiz-intro > b { font-family: var(--display); font-size: 24px; font-weight: 600; letter-spacing: -.6px; }
.request-banner { text-decoration: none; }
.person.request { background: var(--amber-soft); border-color: var(--amber-line); }

/* ——— Marchio dell'azienda ——— */
.company-brand { gap: 12px; min-width: 0; }
.company-name { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.company-name b { font-family: var(--display); font-size: 17px; font-weight: 600; letter-spacing: -.3px; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.company-name small { display: inline-flex; align-items: center; gap: 4px; color: var(--faint); font-size: 11px; letter-spacing: .3px; }
.org-initials { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; border: 1px solid var(--blue); background: var(--blue-soft); font-family: var(--display); font-weight: 700; }
.logo-box { display: inline-flex; align-items: center; height: 40px; max-width: 140px; }
.logo-box img { max-height: 40px; max-width: 140px; object-fit: contain; }
.logo-box.plate { padding: 4px 8px; border-radius: 10px; background: #F4F7FB; }
.logo-box.plate img { max-height: 32px; }
.logo-previews { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.logo-previews figure { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.logo-prev { display: flex; align-items: center; gap: 12px; min-height: 84px; padding: 14px 16px; border-radius: var(--r); }
.logo-prev.dark { background: var(--ground); border: 1px solid var(--line); }
.logo-prev.dark b { font-family: var(--display); font-size: 17px; }
.logo-prev.light { background: #fff; justify-content: flex-start; }
.logo-prev.light img { max-height: 56px; max-width: 200px; object-fit: contain; }
.logo-panel { display: grid; grid-template-columns: minmax(220px, 320px) minmax(0, 1fr); gap: 24px; align-items: center; }
@media (max-width: 700px) { .logo-panel { grid-template-columns: 1fr; } .company-name b { max-width: 150px; } }
.doc-logo { display: block; max-height: 52px; max-width: 220px; object-fit: contain; margin-bottom: 8px; }

/* ——— Punto 1: lead con esiti guidati, contratti, archivio ——— */
:root { --violet: #A78BFA; --violet-soft: #241B44; }
.tag-violet { background: var(--violet-soft); color: var(--violet); }
.eyebrow { display: block; color: var(--cyan); font-size: 11px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; }
.crm-item .who .late { color: var(--red); }
.crm-item .who .next { color: var(--amber); }
.guide { display: flex; flex-direction: column; gap: 14px; padding: 18px; border-radius: 18px; border: 1px solid var(--blue); background: #0B1C36; }
.guide-cliente { border-color: var(--cyan); background: #0A2229; }
.guide-perso { border-color: #6B2A35; background: #1E1118; }
.guide-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.guide-head h3 { margin: 4px 0 2px; font-size: 19px; }
.guide-head p { margin: 0; }
.guide-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.guide-actions .btn { min-height: 48px; }
.fix-status summary { cursor: pointer; color: var(--faint); font-size: 13px; }
.fix-status select { margin-top: 8px; max-width: 260px; }
.choice-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.choice-card { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 14px; border-radius: var(--r); border: 1px solid var(--line); background: var(--sunken); color: var(--ink); text-align: left; cursor: pointer; }
.choice-card small { color: var(--faint); font-size: 12px; line-height: 1.4; }
.choice-card[aria-pressed="true"] { border-color: var(--blue); background: var(--blue-soft); }
.choice-card.chiuso[aria-pressed="true"] { border-color: var(--cyan); background: var(--cyan-soft); }
.choice-card.non[aria-pressed="true"] { border-color: var(--red); background: var(--red-soft); }
.contract { display: flex; flex-direction: column; gap: 14px; border-color: var(--cyan); }
.followup { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; }
.fu-step { display: grid; grid-template-columns: 26px 1fr; gap: 6px 10px; align-items: center; padding: 12px; border-radius: var(--r); background: var(--panel-2); }
.fu-step .input, .fu-step .btn { grid-column: 1 / -1; }
.fu-check { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 8px; border: 2px solid var(--line-strong); color: var(--blue-ink); font-weight: 700; font-size: 13px; }
.fu-step.is-done .fu-check { background: var(--cyan); border-color: var(--cyan); }
.contract-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding-top: 12px; border-top: 1px solid var(--line-soft); }
.fu-dots { display: inline-flex; gap: 4px; }
.fu-dots i { width: 12px; height: 12px; border-radius: 4px; background: #1E3352; }
.fu-dots i.is-done { background: var(--cyan); }
.kpi-link { color: var(--ink); text-decoration: none; transition: border-color .2s; }
.kpi-link:hover { border-color: var(--blue); color: var(--ink); }
.pipe-bar { display: flex; gap: 3px; height: 12px; border-radius: 999px; overflow: hidden; margin-bottom: 14px; }
.pipe-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pipe-list li { display: grid; grid-template-columns: 14px 1fr auto; gap: 10px; align-items: center; color: var(--ink-2); }
.pipe-list .dot { width: 10px; height: 10px; border-radius: 3px; }
.pipe-nuovo { background: var(--blue); } .pipe-non_risponde { background: var(--amber); } .pipe-in_valutazione { background: var(--faint); }
.pipe-sopralluogo { background: var(--violet); } .pipe-preventivo { background: var(--link); } .pipe-trattativa { background: #F59E0B; }
.pipe-cliente { background: var(--cyan); } .pipe-perso { background: var(--red); }

/* ——— Punto 2: statistiche ——— */
.funnel { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.funnel li { display: grid; grid-template-columns: 150px minmax(0, 1fr) 54px; gap: 12px; align-items: center; }
.funnel-label { display: flex; flex-direction: column; }
.funnel-label small { color: var(--faint); font-size: 12px; }
.funnel-track, .bar-track { height: 14px; border-radius: 999px; background: #13233D; overflow: hidden; }
.funnel-track i, .bar-track i { display: block; height: 100%; border-radius: 999px; }
.funnel .f0 { background: var(--blue); } .funnel .f1 { background: var(--link); } .funnel .f2 { background: var(--violet); } .funnel .f3 { background: var(--cyan); }
.funnel li > b, .bars li > b { text-align: right; }
.bars { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.bars li { display: grid; grid-template-columns: 150px minmax(0, 1fr) 54px; gap: 12px; align-items: center; font-size: 14px; color: var(--ink-2); }
@media (max-width: 560px) { .funnel li, .bars li { grid-template-columns: 110px minmax(0, 1fr) 40px; } }
.months { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 8px; align-items: end; height: 180px; }
.month { display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; }
.month-bar { flex: 1; width: 100%; max-width: 40px; display: flex; align-items: flex-end; border-radius: 8px; background: #0F1E35; overflow: hidden; }
.month-bar i { display: block; width: 100%; background: linear-gradient(180deg, var(--cyan), var(--blue)); border-radius: 8px 8px 0 0; }
.month small { color: var(--faint); font-size: 11px; text-transform: capitalize; }

/* ——— Punto 3: ufficio ——— */
button.kpi { font: inherit; text-align: left; cursor: pointer; }
.late-cell { color: var(--red); }
.einv-line { display: grid; grid-template-columns: minmax(0, 3fr) 70px 110px 90px minmax(0, 1.6fr) 40px; gap: 8px; margin-bottom: 8px; }
@media (max-width: 760px) { .einv-line { grid-template-columns: 1fr 1fr; } }
.error ul { margin: 6px 0 0; padding-left: 18px; }

/* ——— Punto 4: configurazione guidata, calendario, pose ——— */
.setup-guide { display: flex; flex-direction: column; gap: 14px; border-color: var(--blue); background: linear-gradient(180deg, #0B1C36, var(--panel)); }
.sg-count { font-family: var(--display); color: var(--muted); }
.sg-count b { color: var(--ink); font-size: 22px; }
.sg-bar { height: 8px; border-radius: 999px; background: #13233D; overflow: hidden; }
.sg-bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--cyan), var(--blue)); transition: width .4s; }
.setup-guide .step .actions { flex-wrap: nowrap; }
@media (max-width: 560px) { .setup-guide .step { grid-template-columns: 40px minmax(0, 1fr); } .setup-guide .step .actions { grid-column: 1 / -1; } }
.howto { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 8px; color: var(--ink-2); }
.howto li::marker { color: var(--cyan); font-weight: 700; }
.feed-url { display: block; padding: 10px 12px; border-radius: var(--r-sm); background: var(--sunken); color: var(--ink-2); font-size: 12px; word-break: break-all; }
.wa-preview { padding: 12px 14px; border-radius: 14px 14px 14px 4px; background: #0F3B2E; color: #DCF8C6; max-width: 520px; font-size: 14px; white-space: pre-line; }
.pose-list { display: flex; flex-direction: column; gap: 10px; }
.posa-card { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 16px; padding: 16px; border-radius: 18px; border: 1px solid var(--line); background: var(--panel); }
.posa-card.is-fatto { opacity: .7; }
.posa-card.is-rinviato { border-color: var(--amber-line); }
.posa-card.is-annullato { opacity: .45; }
.posa-date { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; height: 78px; border-radius: 14px; border: 1px solid var(--line-strong); background: var(--sunken); }
.posa-date b { font-family: var(--display); font-size: 28px; line-height: 1; }
.posa-date small { color: var(--faint); font-size: 11px; text-transform: uppercase; letter-spacing: .5px; }
.posa-body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.posa-top { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.posa-title { font-family: var(--display); font-size: 19px; font-weight: 600; }
.posa-notes { margin: 0; padding: 10px 12px; border-radius: var(--r-sm); background: var(--amber-soft); color: #FFE2B3; font-size: 14px; }
.posa-notes b { color: var(--amber); }
.posa-body .actions .btn-primary { min-height: 40px; }
@media (max-width: 560px) { .posa-card { grid-template-columns: 56px minmax(0, 1fr); padding: 12px; } .posa-date { height: 64px; } .posa-body .actions .btn { flex: 1 1 auto; } }
.event.ext { border-left-color: var(--line-strong); background: repeating-linear-gradient(135deg, #0F1E35, #0F1E35 6px, #0C1A2E 6px, #0C1A2E 12px); padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; }
.event.ext .event-time { color: var(--faint); }
.event.ext b { font-weight: 500; color: var(--muted); font-size: 13px; }
.event.ext.is-work { border-left-color: var(--link); }
.event.ext.is-work b { color: var(--ink-2); }

/* ——— Console e rifiniture ——— */
.console-btn { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--violet); color: var(--violet); font-weight: 600; font-size: 13px; text-decoration: none; }
.console-btn:hover, .console-btn.is-on { background: var(--violet-soft); color: var(--ink); }
.inline-edit { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; width: 100%; }
.row-tools { display: inline-flex; gap: 10px; margin-left: 8px; }
.link-btn.small { font-size: 12px; color: var(--faint); }
.link-btn.small:hover { color: var(--link); }
.tasks li > span { min-width: 0; }
.tasks .link-btn.small { margin-top: 2px; }
.danger-zone { border-color: #6B2A35; }
.danger-zone summary { color: var(--red); }
.danger-zone[open] { display: flex; flex-direction: column; gap: 10px; }

/* ——— Console, rifiniture, IVA ——— */
.console-btn { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--violet); background: var(--violet-soft); color: var(--violet); font-weight: 600; font-size: 13px; text-decoration: none; }
.console-btn:hover, .console-btn.is-on { background: var(--violet); color: #120B2A; }
.danger-zone { border-color: #6B2A35; }
.danger-zone summary { color: var(--red); }
.danger-zone[open] { display: flex; flex-direction: column; gap: 10px; }
.inline-edit { display: flex; flex-direction: column; gap: 8px; margin: 6px 0; min-width: 0; }
.row-tools { display: inline-flex; gap: 10px; margin-left: 8px; }
.link-btn.small { font-size: 12px; color: var(--link); padding: 0; margin-top: 2px; }
.tasks li .link-btn.small { display: inline-block; }
.vat-select { display: inline-flex; gap: 6px; align-items: center; width: 100%; }
.vat-select .input { flex: 1 1 auto; min-width: 0; }
.vat-select .vat-custom { flex: 0 0 76px; text-align: right; }
.vat-select.is-compact { width: auto; }
.vat-select.is-compact .input.mini { width: 90px; flex: 0 0 auto; }
.vat-select.is-compact .vat-custom.mini { width: 62px; flex-basis: 62px; }
.einv-line { grid-template-columns: minmax(0, 3fr) 70px 110px minmax(150px, 1.2fr) minmax(0, 1.6fr) 40px; }

/* ——— Extra: dettatura, foto, recensioni, offline ——— */
.dict-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; }
.dictation { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: start; }
.mic { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--blue); background: var(--blue-soft); color: var(--ink); cursor: pointer; }
.mic.is-on { background: var(--red); border-color: var(--red); color: #fff; animation: pulse 1s ease-in-out infinite; }
.photo-sim { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, 1fr); gap: 20px; align-items: start; }
.photo-canvas { width: 100%; height: auto; border-radius: var(--r); background: #000; touch-action: none; cursor: grab; }
@media (max-width: 860px) { .photo-sim { grid-template-columns: minmax(0, 1fr); } }
.swatches { display: flex; flex-wrap: wrap; gap: 8px; }
.swatch { width: 34px; height: 34px; border-radius: 10px; border: 2px solid var(--line-strong); cursor: pointer; }
.swatch[aria-pressed="true"] { border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(92,225,230,.3); }
.review-box { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: start; }
.qr { padding: 10px; border-radius: var(--r); background: #fff; }
.qr svg { width: 100%; height: 100%; display: block; }
@media (max-width: 560px) { .review-box { grid-template-columns: minmax(0, 1fr); justify-items: center; } }
@media print { body:has(.review-box) .topbar, body:has(.review-box) .page, body:has(.review-box) .sheet-head, body:has(.review-box) .review-box .stack { display: none !important; } body:has(.review-box) .overlay { position: static; background: none; } }
.offline-banner { position: sticky; top: 0; z-index: 60; padding: 10px 16px; background: var(--amber); color: #2B1D00; font-weight: 600; font-size: 14px; text-align: center; }
.backup-reminder { flex-wrap: wrap; }
.doc-internal { border-top: 6px solid #C2410C; }
.internal-band { margin: -6mm 0 12px; padding: 6px 10px; background: #FFF1E6; color: #9A3412; font-size: 9pt; font-weight: 700; letter-spacing: .4px; }
.doc-calc { list-style: none; margin: 6px 0 0; padding: 6px 8px; border-left: 2px solid #F59E0B; background: #FFFBF2; font-size: 8.5pt; color: #5B4A2E; }
.doc-calc li { display: flex; justify-content: space-between; gap: 10px; }
.print-bar .chips .chip { text-decoration: none; }

/* ——— Listini delle aziende con mandato ——— */
.source-pick { display: flex; align-items: center; gap: 8px; padding: 6px 6px 6px 14px; border-radius: 999px; border: 1px solid var(--violet); background: var(--violet-soft); }
.source-pick span { color: var(--violet); font-size: 12px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; }
.source-pick .input { min-height: 36px; width: auto; max-width: 260px; border-radius: 999px; background: var(--panel); }
.source-bar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px; padding: 14px; border-radius: var(--r); border: 1px solid var(--violet); background: var(--violet-soft); }
.source-bar .field { flex: 0 1 360px; }

/* ——— Preventivatore a sistema ——— */
.sys-prods { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.sys-prod { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px; border-radius: var(--r); border: 1px solid var(--line); background: var(--sunken); color: var(--ink); text-align: left; cursor: pointer; }
.sys-prod:hover { border-color: var(--blue); }
.sys-prod small { color: var(--faint); font-size: 12px; line-height: 1.4; }
.quick-acc { display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: var(--r); border: 1px dashed var(--cyan); background: var(--cyan-soft); }
.sys-cfg { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); gap: 24px; align-items: start; }
@media (max-width: 900px) { .sys-cfg { grid-template-columns: minmax(0, 1fr); } .sys-side { order: -1; position: static !important; } }
.sys-form { display: flex; flex-direction: column; gap: 14px; }
.sys-head h2 { margin: 0 0 4px; font-size: 22px; }
.sys-fs { margin: 0; padding: 14px; border-radius: var(--r); border: 1px solid var(--line); background: var(--panel); display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.sys-fs legend { padding: 0 6px; font-family: var(--display); font-weight: 600; color: var(--ink); }
.sub-lbl { font-size: 12px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .5px; margin-top: 4px; }
.seg { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 12px; background: var(--sunken); }
.seg-btn { flex: 1 1 auto; min-height: 40px; padding: 0 12px; border: 0; border-radius: 9px; background: transparent; color: var(--ink-2); font: inherit; font-size: 14px; cursor: pointer; }
.seg-btn[aria-pressed="true"] { background: var(--blue); color: #04101F; font-weight: 600; }
.sys-sashes { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.sys-sashes small { display: block; margin-bottom: 4px; color: var(--faint); }
.unit-input { display: flex; align-items: center; gap: 6px; }
.unit-input em { font-style: normal; color: var(--faint); font-size: 13px; }
.qty-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.qty { display: inline-flex; align-items: center; gap: 6px; }
.qty .input.mini { width: 64px; text-align: center; }
.sys-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px; max-height: 260px; overflow: auto; padding: 2px; }
.sys-swatch { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 6px 4px; border-radius: 10px; border: 1px solid transparent; background: none; color: var(--ink-2); cursor: pointer; }
.sys-swatch i { width: 36px; height: 36px; border-radius: 9px; border: 1px solid rgba(255,255,255,.18); }
.sys-swatch small { font-size: 11px; line-height: 1.2; text-align: center; }
.sys-swatch[aria-pressed="true"] { border-color: var(--cyan); background: var(--cyan-soft); }
.sys-note { margin: 0; padding: 8px 12px; border-radius: var(--r-sm); background: var(--sunken); font-size: 14px; }
.sys-ok { margin: 0; color: #7FD6A0; font-size: 14px; }
.sys-handles { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.sys-handle { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px; border-radius: var(--r-sm); border: 1px solid var(--line); background: #F4F6F9; cursor: pointer; }
.sys-handle span { width: 70px; height: 70px; display: grid; place-items: center; }
.sys-handle img { max-width: 100%; max-height: 100%; }
.sys-handle small { color: #22303F; font-size: 11px; text-align: center; }
.sys-handle[aria-pressed="true"] { border: 2px solid var(--blue); box-shadow: 0 0 0 3px rgba(46,139,255,.25); }
.sys-side { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 10px; }
.sys-draw { border-radius: var(--r); overflow: hidden; border: 1px solid var(--line); background: #0B1220; }
.sys-draw svg { width: 100%; height: auto; display: block; }
.sys-live { padding: 16px; border-radius: var(--r); border: 1px solid var(--line); background: var(--panel); display: flex; flex-direction: column; gap: 4px; }
.sys-price { font-family: var(--display); font-size: 30px; }
.sys-detail { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.sys-warn { margin: 0; color: var(--amber); font-size: 13px; }
.sys-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.sys-items li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line-soft); }
.sys-items li.is-child { padding-left: 22px; }
.sys-items li.is-child .sys-item-main b { font-weight: 500; color: var(--ink-2); }
.sys-item-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sys-item-main small { color: var(--faint); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sys-item-price { display: flex; flex-direction: column; align-items: flex-end; font-family: var(--display); }
.sys-item-price small { color: var(--faint); font-size: 11px; font-family: var(--body); }
@media (max-width: 700px) { .sys-items li { grid-template-columns: minmax(0, 1fr) auto; } .sys-items li .actions { grid-column: 1 / -1; } }

/* ——— Procedure guidate del listino a sistema ——— */
.opt-box { display: flex; flex-direction: column; gap: 10px; padding: 12px; border-radius: var(--r); border: 1px solid var(--line); background: var(--sunken); }
.opt-choice { display: grid; grid-template-columns: minmax(0, 2fr) minmax(130px, 1fr) 90px 40px; gap: 8px; align-items: center; }
@media (max-width: 640px) { .opt-choice { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.handle-edit { display: flex; gap: 14px; align-items: flex-start; }
.handle-photo { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 96px; flex: 0 0 96px; padding: 8px; border-radius: var(--r-sm); background: #F4F6F9; cursor: pointer; }
.handle-photo img { width: 72px; height: 72px; object-fit: contain; }
.handle-photo small { color: #22303F; font-size: 11px; }
.dot { display: inline-block; width: 12px; height: 12px; border-radius: 4px; vertical-align: middle; margin-right: 6px; border: 1px solid rgba(255,255,255,.2); }
textarea.mono { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; }

/* ——— Catalogo del preventivatore (impaginazione DISO, colori GestiNext) ——— */
.sys-catalog { display: flex; flex-direction: column; gap: 14px; }
.sys-searchbar { display: flex; align-items: center; gap: 10px; padding: 0 16px; min-height: 52px; border-radius: 14px; border: 1px solid var(--line); background: var(--sunken); }
.sys-searchbar svg { width: 20px; height: 20px; fill: none; stroke: var(--faint); stroke-width: 2; flex: 0 0 auto; }
.sys-searchbar input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--ink); font: inherit; font-size: 15px; outline: none; }
.sys-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: var(--faint); }
.sys-crumb { border: 1px solid var(--line); border-radius: 999px; padding: 6px 14px; background: transparent; color: var(--ink-2); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
span.sys-crumb, .sys-crumb.is-on { background: var(--blue); border-color: var(--blue); color: #04101F; cursor: default; }
.sys-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.sys-tile { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-height: 140px; padding: 16px; border-radius: 16px; border: 1px solid var(--line);
  background: linear-gradient(160deg, #16253B, #0C1626); color: var(--ink); text-align: left; font: inherit; cursor: pointer; transition: transform .2s ease, border-color .2s, box-shadow .2s; }
.sys-tile:hover, .sys-tile:focus-visible { transform: translateY(-3px); border-color: rgba(92,225,230,.5); box-shadow: 0 14px 30px rgba(0,0,0,.4); outline: none; }
.sys-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: rgba(92,225,230,.08); border: 1px solid rgba(92,225,230,.25); }
.sys-ic svg { width: 24px; height: 24px; fill: none; stroke: var(--cyan); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.sys-tile b { font-family: var(--display); font-size: 15px; font-weight: 600; line-height: 1.25; }
.sys-tile small { color: var(--muted); font-size: 12px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sys-tile-foot { margin-top: auto; }
.sys-tag { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: rgba(46,139,255,.14); border: 1px solid rgba(46,139,255,.4); color: #9CC8FF; }
.sys-tag.is-muted { background: rgba(143,166,194,.08); border-color: rgba(143,166,194,.3); color: #BDD0E6; }
.sys-grp { margin: 18px 0 2px; font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--cyan); }
.quick-acc { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border-radius: 14px; border: 1px dashed rgba(92,225,230,.5); background: rgba(92,225,230,.06); }
.bulk-bar { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 12px; border: 1px solid #6B2A35; background: var(--red-soft); }
.bulk-bar span { flex: 1; font-weight: 600; }
.sel-col { width: 36px; }
.sel-col input { width: 18px; height: 18px; accent-color: var(--blue); }

/* ——— Preventivatore a tre pannelli (grafica del gestionale approvata) ——— */
.g3-page { max-width: 1680px; }
.g3-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 18px; }
.g3-top h1 { margin: 0; font-size: 26px; }
.g3-top p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.g3-top-r { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.g3-source { display: flex; align-items: center; gap: 8px; }
.g3-source span { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.g3-source .input { min-height: 38px; min-width: 200px; }
.g3-badge { padding: 9px 14px; border-radius: 10px; border: 1px solid rgba(46,139,255,.5); background: rgba(46,139,255,.08); color: #9CC8FF; font-size: 12px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; }
.g3-grid { display: grid; grid-template-columns: minmax(300px, 1fr) minmax(0, 1.7fr) minmax(290px, 1fr); gap: 16px; align-items: start; }
@media (max-width: 1250px) { .g3-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .g3-center { grid-column: 1 / -1; order: 3; } }
@media (max-width: 760px) { .g3-grid { grid-template-columns: minmax(0, 1fr); } .g3-center { order: 0; } }
.g3-panel { border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(180deg, #0B1628, #08111F); display: flex; flex-direction: column; min-width: 0; }
.g3-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 18px; border-bottom: 1px solid var(--line-soft); }
.g3-head b { font-family: var(--display); font-size: 14px; }
.g3-head small { color: var(--faint); font-size: 11px; }
.g3-chip { border: 1px solid var(--line-strong); border-radius: 9px; padding: 6px 12px; background: transparent; color: var(--ink-2); font: inherit; font-size: 12px; cursor: pointer; }
.g3-chip:hover { border-color: var(--blue); color: var(--ink); }
.g3-draw { position: relative; height: 320px; margin: 14px; border-radius: 12px; border: 1px solid var(--line-soft); overflow: hidden;
  background: radial-gradient(circle at 50% 40%, rgba(46,139,255,.08), transparent 60%), repeating-linear-gradient(0deg, rgba(120,160,220,.05) 0 1px, transparent 1px 24px), repeating-linear-gradient(90deg, rgba(120,160,220,.05) 0 1px, transparent 1px 24px), #071020; }
.g3-svg { position: absolute; inset: 0; display: grid; place-items: center; transition: transform .2s; }
.g3-svg svg { width: 100%; height: 100%; }
.g3-draw-empty { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 30px; text-align: center; color: var(--faint); font-size: 13px; }
.g3-draw-empty svg { width: 64px; height: 64px; fill: none; stroke: rgba(92,225,230,.5); stroke-width: 1; }
.g3-dim { position: absolute; right: 12px; padding: 5px 9px; border-radius: 7px; border: 1px solid var(--line-strong); background: rgba(5,12,26,.85); font-size: 11px; color: var(--ink-2); }
.g3-dim-h { top: 12px; } .g3-dim-w { top: 44px; }
.g3-zoom { position: absolute; left: 12px; bottom: 12px; display: flex; gap: 6px; }
.g3-zoom button { width: 30px; height: 30px; border-radius: 8px; border: 1px solid var(--line-strong); background: rgba(5,12,26,.85); color: var(--ink-2); cursor: pointer; }
.g3-sub { display: flex; justify-content: space-between; padding: 0 18px 12px; font-size: 11px; color: var(--faint); border-bottom: 1px solid var(--line-soft); }
.g3-form { display: flex; flex-direction: column; gap: 12px; padding: 16px 18px 18px; }
.g3-form .field > span, .g3-stack .field > span { font-size: 11.5px; color: var(--muted); }
.g3-table { display: flex; flex-direction: column; min-height: 230px; }
.g3-tr { display: grid; grid-template-columns: 44px minmax(0, 2.4fr) minmax(90px, 1fr) 50px 96px 34px; gap: 10px; align-items: center; padding: 10px 18px; border-bottom: 1px solid var(--line-soft); font-size: 13px; cursor: pointer; }
.g3-tr:not(.g3-th):hover { background: rgba(46,139,255,.05); }
.g3-tr.is-on { background: rgba(46,139,255,.1); box-shadow: inset 3px 0 0 var(--blue); }
.g3-tr.is-child { padding-left: 34px; color: var(--ink-2); }
.g3-tr b { display: block; font-weight: 600; } .g3-tr small { color: var(--faint); font-size: 11px; }
.g3-tr > span:nth-child(5) { text-align: right; font-family: var(--display); }
.g3-th { cursor: default; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--faint); }
.g3-x { border: 0; background: transparent; color: var(--faint); cursor: pointer; font-size: 14px; }
.g3-x:hover { color: var(--red); }
.g3-noitems { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 30px; text-align: center; }
.g3-noitems svg { width: 30px; height: 30px; fill: none; stroke: var(--blue); stroke-width: 1.6; margin-bottom: 6px; }
.g3-noitems span { color: var(--faint); font-size: 12px; max-width: 420px; }
.g3-tabs { display: flex; flex-wrap: wrap; gap: 4px; padding: 0 14px; border-bottom: 1px solid var(--line-soft); }
.g3-tabs button { border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); padding: 14px 10px 12px; font: inherit; font-size: 13px; cursor: pointer; }
.g3-tabs button[aria-current="page"] { color: var(--ink); border-bottom-color: var(--blue); }
.g3-tabs button:disabled { opacity: .4; cursor: default; }
.g3-tabbody { padding: 16px 18px 20px; }
.g3-stack { display: flex; flex-direction: column; gap: 14px; }
.g3-prod { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(46,139,255,.35); background: rgba(46,139,255,.06); }
.g3-prod > div { flex: 1 1 260px; min-width: 0; } .g3-prod b { display: block; font-family: var(--display); } .g3-prod small { color: var(--faint); font-size: 12px; }
.g3-info { padding: 14px 16px; border-radius: 12px; border: 1px solid rgba(46,139,255,.3); background: rgba(46,139,255,.06); font-size: 13px; color: var(--ink-2); }
.g3-empty { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 16px; border-radius: 12px; border: 1px solid rgba(46,139,255,.3); background: rgba(46,139,255,.06); }
.g3-empty span { color: var(--muted); font-size: 13px; }
.g3-calc { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: 12px; background: var(--sunken); font-size: 12.5px; color: var(--ink-2); }
.g3-kv { margin: 0; padding: 14px 18px 4px; display: flex; flex-direction: column; gap: 10px; }
.g3-kv > div { display: flex; justify-content: space-between; gap: 10px; font-size: 12.5px; }
.g3-kv dt { color: var(--muted); } .g3-kv dd { margin: 0; text-align: right; font-weight: 600; }
.g3-total { margin: 12px 18px; padding: 14px; border-radius: 12px; border: 1px solid var(--line-strong); background: rgba(5,12,26,.6); display: flex; flex-direction: column; gap: 4px; }
.g3-total > span { font-size: 11.5px; color: var(--muted); }
.g3-total > b { font-family: var(--display); font-size: 24px; }
.g3-kv2 { display: flex; justify-content: space-between; gap: 10px; font-size: 12.5px; color: var(--muted); padding-top: 6px; }
.g3-kv2 b { color: var(--ink); }
.g3-panel > .btn-block { margin: 0 18px 8px; width: calc(100% - 36px); }
.g3-panel > .field { margin: 8px 18px 0; }
.g3-quick { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 16px 18px 18px; }
.g3-quick b { font-size: 13px; margin-bottom: 6px; }
.g3-quick button { border: 0; background: transparent; color: var(--ink-2); font: inherit; font-size: 13px; padding: 6px 0; cursor: pointer; }
.g3-quick button:hover:not(:disabled) { color: var(--cyan); } .g3-quick button:disabled { opacity: .4; cursor: default; }
.g3-status { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: 16px; padding: 14px 18px; border-radius: 12px; border: 1px solid var(--line); background: #08111F; font-size: 12px; color: var(--muted); }
.g3-status b { color: var(--amber); font-weight: 600; }
.g3-cpick { display: flex; flex-direction: column; gap: 6px; text-align: left; min-width: 200px; }
.g3-cpick-list { display: flex; flex-direction: column; max-height: 200px; overflow: auto; border: 1px solid var(--line); border-radius: 10px; }
.g3-cpick-list button { border: 0; border-bottom: 1px solid var(--line-soft); background: var(--sunken); color: var(--ink-2); text-align: left; padding: 8px 10px; font: inherit; font-size: 12.5px; cursor: pointer; }
.g3-cpick-list button:hover { background: rgba(46,139,255,.1); } .g3-cpick-list .is-new { color: var(--cyan); }
.g3-form .form-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
.g3-form .seg-btn { min-height: 38px; padding: 0 6px; }
.g3-head b { line-height: 1.3; }
.g3-rail { margin: 0 0 16px; }
.g3-rail .wiz-pill { border: 1px solid var(--line); cursor: pointer; font: inherit; }
.g3-rail .wiz-pill:disabled { opacity: .45; cursor: default; }
.g3-picker { display: flex; flex-direction: column; gap: 10px; padding: 16px 18px; border-bottom: 1px solid var(--line-soft); background: rgba(46,139,255,.03); }
.g3-picker-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) auto; gap: 10px; align-items: end; }
@media (max-width: 700px) { .g3-picker-row { grid-template-columns: minmax(0, 1fr); } }
.g3-picker .field > span { font-size: 11.5px; color: var(--muted); }
.g3-picker-search { display: flex; flex-direction: column; gap: 6px; }
.g3-picker-search .g3-cpick-list small { color: var(--faint); }
.wiz-pill.is-done { border-color: rgba(92,225,230,.4); color: var(--cyan); }
.wiz-pill.is-done > span { background: var(--cyan-soft); color: var(--cyan); }
.wiz-del { margin-top: 10px; color: var(--muted); }
.wiz-del:hover { color: var(--red); }
.g3-quick .g3-del { color: var(--muted); margin-top: 6px; }
.g3-quick .g3-del:hover { color: var(--red); }
.g3-picker { position: relative; }
.g3-trigger { flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 8px 16px; border-radius: 12px; border: 1px solid var(--line-strong); background: var(--sunken); color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.g3-trigger:hover:not(:disabled), .g3-trigger.is-open { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(46,139,255,.15); }
.g3-trigger:disabled { opacity: .7; cursor: default; }
.g3-trigger-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.g3-trigger-txt b { font-family: var(--display); font-size: 15px; }
.g3-trigger-txt small { color: var(--faint); font-size: 11.5px; }
.g3-chev { color: var(--cyan); font-size: 14px; }
.g3-picker-row { display: flex; align-items: center; gap: 10px; }
.g3-pop { margin-top: 4px; padding: 14px; border-radius: 14px; border: 1px solid var(--line-strong); background: #0A1424; box-shadow: 0 22px 48px rgba(0,0,0,.45); max-height: 560px; overflow: auto; animation: g3drop .16s ease-out; }
@keyframes g3drop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.g3-pop .sys-tiles { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.g3-sheet { max-width: 760px; padding: 26px; display: flex; flex-direction: column; gap: 14px; }
.g3-sheet h2 { margin: 0; display: flex; align-items: center; gap: 12px; font-size: 22px; }
.g3-sheet p { margin: 0; color: var(--ink-2); line-height: 1.5; }
.g3-ok { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--cyan-soft); color: var(--cyan); font-size: 18px; }
.g3-sheet .chip { min-height: 44px; padding: 0 16px; font-weight: 600; }
.g3-sheet-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 6px; }
@media (max-width: 600px) { .g3-sheet-actions { grid-template-columns: 1fr; } }
.btn-del { color: var(--muted); } .btn-del:hover { color: var(--red); border-color: var(--red); }

/* ——— Preventivatore su tablet e telefono: una colonna nell'ordine di lavoro ——— */
.g3-stackgrid { display: flex; flex-direction: column; gap: 14px; }
.g3-mob { display: none; }
.g3-mobar { position: fixed; left: 12px; right: 12px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 10px 10px 16px; border-radius: 16px; border: 1px solid var(--line-strong); background: rgba(8, 17, 31, .96); backdrop-filter: blur(10px); box-shadow: 0 14px 34px rgba(0,0,0,.5); }
.g3-mobar span { display: flex; flex-direction: column; min-width: 0; }
.g3-mobar small { color: var(--faint); font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.g3-mobar b { font-family: var(--display); font-size: 20px; }
.g3-mobar .btn { flex: 0 0 auto; min-height: 46px; padding: 0 20px; }
@media (max-width: 1100px) {
  .g3-page { padding-bottom: 110px; }
  .g3-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .g3-tabs::-webkit-scrollbar { display: none; }
  .g3-tabs button { flex: 0 0 auto; white-space: nowrap; }
  .g3-rail { display: flex; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .g3-rail::-webkit-scrollbar { display: none; }
  .g3-rail li { flex: 0 0 auto; }
  .g3-status { display: none; }
  .g3-picker { border-bottom: 0; background: transparent; }
}
@media (max-width: 860px) {
  .g3-mobar { bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
  .g3-page { padding-bottom: 200px !important; }
  .g3-top { flex-direction: column; align-items: stretch; gap: 10px; }
  .g3-top h1 { font-size: 22px; }
  .g3-top-r { justify-content: space-between; }
  .g3-source { flex: 1; min-width: 0; } .g3-source .input { min-width: 0; width: 100%; }
  .g3-draw { height: 250px; margin: 10px; }
  .g3-head, .g3-tabbody, .g3-form, .g3-picker { padding-left: 14px; padding-right: 14px; }
  .g3-th { display: none; }
  .g3-tr { grid-template-columns: 24px minmax(0, 1fr) auto 28px; gap: 8px; padding: 12px 14px; }
  .g3-tr.is-child { padding-left: 26px; }
  .g3-desk { display: none; }
  .g3-mob { display: block; }
  .g3-tr > span:nth-child(5) { font-size: 14px; }
  .g3-noitems { padding: 22px 16px; }
  .g3-pop { padding: 10px; max-height: 65vh; }
  .g3-pop .sys-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .g3-pop .sys-tile { min-height: 118px; padding: 12px; }
  .sys-swatches { grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); }
  .seg { flex-wrap: wrap; }
  .g3-sheet { padding: 20px 16px calc(20px + env(safe-area-inset-bottom, 0px)); }
  .g3-sheet h2 { font-size: 19px; }
}
@media (max-width: 400px) { .g3-form .form-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 860px) { .g3-top-r { flex-direction: column; align-items: stretch; gap: 8px; } .g3-source { width: 100%; } .g3-badge { text-align: center; } }

/* ——— Telefono: correzioni dalla prova su tutte le pagine ——— */
.bn-more { border: 0; background: transparent; font: inherit; cursor: pointer; }
@media (max-width: 860px) {
  .bottom-nav .bn-more { display: flex; flex-direction: column; align-items: center; gap: 3px; min-height: 56px; justify-content: center; flex: 1; border-radius: 18px; color: var(--muted); font-size: 12px; }
  .bottom-nav .bn-more[aria-current="page"], .bottom-nav .bn-more[aria-expanded="true"] { color: var(--ink); background: var(--blue-soft); }
  .bn-sheet { padding: 12px 12px calc(16px + env(safe-area-inset-bottom, 0px)); display: flex; flex-direction: column; gap: 4px; }
  .bn-sheet a { display: flex; justify-content: space-between; align-items: center; min-height: 54px; padding: 0 16px; border-radius: 14px; color: var(--ink); text-decoration: none; font-weight: 600; background: var(--sunken); }
  .bn-sheet a[aria-current="page"] { background: var(--blue-soft); }
  .bn-sheet a span { color: var(--faint); }
  /* schede e filtri su una riga, scorrevoli col dito */
  .tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .tabs::-webkit-scrollbar { display: none; }
  .tabs a, .tabs button { flex: 0 0 auto; white-space: nowrap; }
  .toolbar .chips, .page-head + .chips, .periods { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .toolbar .chips::-webkit-scrollbar, .periods::-webkit-scrollbar { display: none; }
  .toolbar .chips .chip, .periods .chip { flex: 0 0 auto; white-space: nowrap; }
  /* elenco preventivi a schede */
  .qlist thead { display: none; }
  .qlist, .qlist tbody { display: block; min-width: 0; width: 100%; }
  .qlist tr { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto 32px; grid-template-areas: "sel num num del" "sel cli cli del" "sel st tot del"; gap: 3px 10px; padding: 12px 10px; border-bottom: 1px solid var(--line-soft); }
  .qlist td { border: 0; padding: 0; }
  .qlist td:nth-child(1) { grid-area: sel; align-self: center; } .qlist td:nth-child(2) { grid-area: num; } .qlist td:nth-child(3) { grid-area: cli; color: var(--muted); font-size: 13px; }
  .qlist td:nth-child(4), .qlist td:nth-child(5) { display: none; } .qlist td:nth-child(6) { grid-area: st; justify-self: start; } .qlist td:nth-child(7) { grid-area: tot; font-weight: 700; justify-self: end; }
  .qlist td:nth-child(8) { grid-area: del; align-self: center; }
  .qlist td a.mono { white-space: nowrap; }
  .table-box:has(.qlist) { overflow: visible; border: 0; }
  /* agenda: giorni vuoti compatti */
  .day { min-height: 0; padding-top: 10px; padding-bottom: 10px; }
  .day-empty { margin: 0; padding: 0; line-height: 1; }
}
@media (max-width: 1100px) { .g3-pop { max-height: none; overflow: visible; } }
.ins-sheet { max-width: 560px; padding: 24px; display: flex; flex-direction: column; gap: 14px; }
.ins-sheet h2 { margin: 0; }
.ins-steps { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 10px; line-height: 1.5; }
.ins-ic { display: inline-grid; place-items: center; min-width: 24px; height: 24px; border-radius: 6px; background: var(--sunken); border: 1px solid var(--line); font-size: 13px; }
.ins-other { margin-top: 10px; font-size: 14px; } .ins-other ol { margin: 6px 0 0; padding-left: 20px; color: var(--ink-2); }
.g3-mic { min-width: 46px; min-height: 46px; font-size: 18px; }

/* ——— Rilievi ——— */
.sv-list { list-style: none; margin: 0; padding: 0; }
.sv-row { display: flex; align-items: center; gap: 12px; padding: 14px 4px; border-bottom: 1px solid var(--line-soft); color: var(--ink); text-decoration: none; }
.sv-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; background: var(--amber); } .sv-dot.is-programmato { background: #B48CFF; } .sv-dot.is-completato { background: var(--green, #7FD6A0); }
.sv-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; } .sv-main small { color: var(--faint); font-size: 12.5px; }
.sv-go { color: var(--faint); font-size: 22px; }
.sv-h { margin: 22px 0 10px; font-size: 16px; color: var(--ink-2); }
.sv-page { max-width: 760px; padding-bottom: 140px; }
.sv-item { display: flex; flex-direction: column; gap: 12px; margin-bottom: 12px; }
.sv-item header { display: flex; flex-direction: column; gap: 2px; } .sv-item header small { color: var(--faint); }
.sv-wh { grid-template-columns: 1fr 1fr; }
.sv-big { font-size: 22px; font-weight: 700; min-height: 54px; }
.sv-diff { margin: 0; color: var(--amber); font-size: 13.5px; } .sv-diff.is-big { color: var(--red); font-weight: 600; } .sv-ok { margin: 0; color: #7FD6A0; font-size: 13.5px; }
.sv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.sv-cam { align-self: flex-start; }
.sv-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.sv-photos a { position: relative; display: block; border-radius: 10px; overflow: hidden; aspect-ratio: 1; background: var(--sunken); }
.sv-photos img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sv-photos small { position: absolute; left: 0; right: 0; bottom: 0; padding: 4px 6px; background: rgba(5,12,26,.75); font-size: 10.5px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sv-sig { display: flex; flex-direction: column; gap: 6px; }
.sv-sig canvas { width: 100%; height: 170px; border-radius: 12px; background: #fff; touch-action: none; border: 1px solid var(--line-strong); }
.sv-signed { display: flex; flex-direction: column; gap: 4px; } .sv-signed img { max-width: 320px; background: #fff; border-radius: 10px; padding: 6px; } .sv-signed small { color: var(--faint); }
.sv-bar { position: sticky; bottom: 12px; display: grid; grid-template-columns: 1fr 2fr; gap: 10px; margin-top: 22px; padding: 10px; border-radius: 16px; border: 1px solid var(--line-strong); background: rgba(8,17,31,.96); backdrop-filter: blur(10px); z-index: 30; }
@media (max-width: 860px) { .sv-bar { bottom: calc(96px + env(safe-area-inset-bottom, 0px)); } .sv-wh { grid-template-columns: 1fr 1fr; } }
.sv-plan { align-items: end; }
.sv-changed { color: var(--amber); font-weight: 700; } .sv-up { color: var(--red); } .sv-down { color: #7FD6A0; }
.sv-posa { display: flex; flex-direction: column; gap: 10px; padding: 16px; margin-bottom: 14px; border-radius: 14px; border: 1px solid rgba(180,140,255,.45); background: rgba(180,140,255,.07); }
.sv-posa > b { color: #CDB6FF; } .sv-posa p { margin: 0; white-space: pre-wrap; }
.sv-facts { margin: 0; padding-left: 18px; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 2px 16px; font-size: 14px; }
.tag-green { background: rgba(127,214,160,.15); color: #7FD6A0; } .tag-blue { background: var(--blue-soft); color: #9CC8FF; }
/* ——— Ordine di produzione (stampa) ——— */
.po-doc { max-width: 900px; }
.po-break { break-before: page; page-break-before: always; margin-top: 30px; }
.po-item { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 16px 0; border-top: 1px solid #d6dde6; break-inside: avoid; page-break-inside: avoid; }
.po-num { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: #0E2A4F; color: #fff; font-weight: 700; }
.po-body h3 { margin: 0 0 10px; display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; font-size: 16px; color: #0E2A4F; } .po-body h3 small { color: #5b6b7d; font-weight: 500; }
.po-qty { margin-left: auto; padding: 2px 10px; border-radius: 999px; background: #eef3f8; font-size: 13px; }
.po-grid { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 16px; align-items: start; }
.po-draw { border-radius: 10px; overflow: hidden; background: #0B1220; -webkit-print-color-adjust: exact; print-color-adjust: exact; } .po-draw svg { display: block; width: 100%; height: auto; }
.po-spec ul { margin: 6px 0 0; padding-left: 18px; font-size: 13px; color: #22303f; line-height: 1.5; }
.po-dims { margin: 0; display: flex; flex-direction: column; gap: 2px; } .po-dims b { font-size: 18px; color: #0E2A4F; } .po-dims span { font-size: 12px; color: #2f7a4f; }
.po-dims.is-unconfirmed span { color: #c0392b; font-weight: 700; }
.po-vano { margin: 8px 0 0; font-size: 12.5px; color: #22303f; }
.po-acc { margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: #f4f7fa; font-size: 12.5px; color: #22303f; } .po-acc table { width: 100%; border-collapse: collapse; margin-top: 6px; } .po-acc td { padding: 4px 6px; border-top: 1px solid #e3e9f0; vertical-align: top; color: #22303f; }
@media (max-width: 700px) { .po-grid { grid-template-columns: minmax(0, 1fr); } }
.crm-row { display: flex; flex-direction: column; }
.crm-owner { display: flex; align-items: center; gap: 8px; margin: -4px 10px 8px 58px; font-size: 12px; color: var(--faint); }
.crm-owner select { min-height: 30px; padding: 2px 8px; border-radius: 8px; border: 1px solid var(--line); background: var(--sunken); color: var(--ink-2); font: inherit; font-size: 12.5px; max-width: 200px; }
/* Collegamento calendario semplificato */
.cal-easy { max-width: 520px; }
.cal-lead { margin: 0 0 16px; font-size: 16px; line-height: 1.5; }
.cal-big { display: flex; flex-direction: column; gap: 10px; }
.cal-btn { display: flex; align-items: center; gap: 14px; min-height: 72px; padding: 12px 16px; border-radius: 16px; border: 1px solid var(--line-strong); background: var(--sunken); color: var(--ink); text-decoration: none; }
.cal-btn:hover, .cal-btn:focus-visible { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(46,139,255,.18); }
.cal-btn b { display: block; font-size: 17px; } .cal-btn small { color: var(--faint); font-size: 13px; }
.cal-ic { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 auto; } .cal-ic svg { width: 48px; height: 48px; }
.cal-ic.big, .cal-ic.big svg { width: 64px; height: 64px; }
.cal-go { margin-left: auto; font-size: 26px; color: var(--faint); }
.cal-scope { margin-top: 14px; }
.cal-done-step { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
.cal-ok { min-height: 54px; font-size: 17px; width: 100%; }
.gl-box { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--line-strong); background: var(--sunken); }
.gl-box.is-on { border-color: rgba(127,214,160,.45); background: rgba(127,214,160,.06); }
.gl-box > .btn { align-self: flex-start; }
button.cal-btn { width: 100%; font: inherit; text-align: left; cursor: pointer; }
.gg-steps { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.gg-step { display: flex; gap: 12px; align-items: flex-start; }
.gg-step b { display: block; font-size: 16px; } .gg-step small { display: block; color: var(--muted); font-size: 14px; line-height: 1.45; margin-top: 2px; }
.gg-n { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--blue); color: #04101F; font-weight: 700; }
/* ——— Misure rapide ——— */
.ms-page { max-width: 820px; }
.ms-form { padding-bottom: 150px; }
.ms-list { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ms-row { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--line); background: var(--panel, var(--sunken)); color: var(--ink); text-decoration: none; }
.ms-row:hover { border-color: var(--line-strong); }
.ms-main { flex: 1; min-width: 0; display: flex; flex-direction: column; } .ms-main small, .ms-meta small, .ms-when { color: var(--faint); font-size: 12.5px; }
.ms-meta { display: flex; flex-direction: column; align-items: center; min-width: 48px; } .ms-meta b { font-size: 20px; }
.ms-cust { position: relative; }
.ms-sugg { position: absolute; z-index: 20; left: 0; right: 0; top: 100%; margin-top: 4px; border-radius: 12px; border: 1px solid var(--line-strong); background: var(--bg-2, #0B1628); overflow: hidden; box-shadow: 0 12px 30px rgba(0,0,0,.4); }
.ms-sugg button { display: flex; flex-direction: column; align-items: flex-start; width: 100%; padding: 10px 14px; border: 0; border-bottom: 1px solid var(--line-soft); background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.ms-sugg button:hover { background: var(--blue-soft); } .ms-sugg small { color: var(--faint); }
.ms-linked { color: #7FD6A0; font-size: 12.5px; }
.ms-item { display: flex; flex-direction: column; gap: 14px; margin-top: 12px; }
.ms-item header { display: flex; align-items: center; gap: 10px; } .ms-item header b { flex: 1; font-size: 16px; }
.ms-n { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--blue); color: #04101F; font-weight: 700; flex: 0 0 auto; }
.ms-item-act { display: flex; gap: 4px; }
.ms-tipi { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 6px; }
.ms-tipo { display: flex; flex-direction: column; align-items: center; gap: 4px; min-height: 74px; padding: 8px 4px; border-radius: 14px; border: 1px solid var(--line); background: var(--sunken); color: var(--muted); font: inherit; font-size: 12px; line-height: 1.2; text-align: center; cursor: pointer; }
.ms-tipo svg { width: 32px; height: 32px; }
@media (max-width: 420px) { .ms-tipi { grid-template-columns: repeat(4, 1fr); } .ms-tipo { font-size: 10.5px; min-height: 70px; } .ms-tipo svg { width: 28px; height: 28px; } .ms-item { padding: 14px; } }
.ms-tipo[aria-pressed="true"] { border-color: var(--blue); background: var(--blue-soft); color: var(--ink); box-shadow: 0 0 0 2px rgba(46,139,255,.25); }
.ms-wh { display: grid; grid-template-columns: 1fr 1fr auto; gap: 10px; align-items: end; }
.ms-cass { grid-template-columns: 1fr 1fr 1fr; }
.ms-num { position: relative; } .ms-num input { font-size: 22px; font-weight: 700; min-height: 56px; padding-right: 44px; }
.ms-num em { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: var(--faint); font-style: normal; font-size: 13px; }
.ms-qty { display: flex; align-items: center; gap: 8px; min-height: 56px; }
.ms-qty button { width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--line-strong); background: var(--sunken); color: var(--ink); font-size: 20px; cursor: pointer; }
.ms-qty b { min-width: 24px; text-align: center; font-size: 20px; }
.ms-cass-t { align-self: flex-start; border: 0; background: none; color: var(--accent, #5CE1E6); font: inherit; font-weight: 600; cursor: pointer; padding: 0; } .ms-cass-t small { color: var(--faint); font-weight: 400; }
.ms-add { width: 100%; min-height: 54px; margin-top: 12px; border-style: dashed; }
.ms-bar { position: sticky; bottom: 12px; display: grid; grid-template-columns: 1fr 1fr 2fr; gap: 8px; margin-top: 20px; padding: 10px; border-radius: 16px; border: 1px solid var(--line-strong); background: rgba(8,17,31,.96); backdrop-filter: blur(10px); z-index: 30; }
.ms-bar .btn { min-height: 50px; white-space: nowrap; padding-left: 10px; padding-right: 10px; }
@media (max-width: 860px) { .ms-bar { bottom: calc(96px + env(safe-area-inset-bottom, 0px)); } .ms-wh { grid-template-columns: 1fr 1fr; } .ms-wh > .field:last-child:not(label) { grid-column: 1 / -1; } }
.ms-app .ms-bar { bottom: calc(12px + env(safe-area-inset-bottom, 0px)); }
.ms-top { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: calc(10px + env(safe-area-inset-top, 0px)) 16px 10px; background: rgba(5,12,26,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line-soft); }
.ms-brand { display: flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; } .ms-brand span { display: flex; flex-direction: column; line-height: 1.15; } .ms-brand small { color: var(--faint); font-size: 12px; }
.ms-ios { position: absolute; right: 16px; top: 100%; margin-top: 6px; max-width: 280px; padding: 12px; border-radius: 12px; background: var(--bg-2, #0B1628); border: 1px solid var(--line-strong); font-size: 14px; }
/* PDF della scheda */
.ms-doc { max-width: 900px; }
.ms-table { width: 100%; border-collapse: collapse; margin-top: 18px; font-size: 9pt; color: #22303f; table-layout: fixed; }
.ms-table td, .ms-table th { overflow-wrap: anywhere; word-break: normal; }
.ms-table col.c-n { width: 5%; } .ms-table col.c-t { width: 19%; } .ms-table col.c-a { width: 17%; } .ms-table col.c-m { width: 14%; } .ms-table col.c-q { width: 5%; } .ms-table col.c-c { width: 14%; } .ms-table col.c-o { width: 26%; }
.ms-doc .doc-parties p { white-space: pre-wrap; }
.ms-table th { text-align: left; padding: 8px 6px; border-bottom: 2px solid #0E2A4F; color: #0E2A4F; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; }
.ms-table td { padding: 8px 6px; border-bottom: 1px solid #e3e9f0; vertical-align: middle; } .ms-table .num { text-align: right; white-space: nowrap; }
.ms-pt { display: flex; align-items: center; gap: 6px; } .ms-pic { flex: 0 0 auto; width: 24px; height: 24px; color: #0E2A4F; } .ms-pic svg { width: 24px; height: 24px; display: block; }

.ms-model { margin: 4px 0 0; font-size: 10pt; color: #22303f; }
.ms-ap { display: flex; flex-direction: column; gap: 12px; padding: 12px; border-radius: 12px; background: var(--sunken); }
.ms-ante { display: flex; gap: 6px; }
.ms-anta { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 64px; padding: 8px 4px; border-radius: 12px; border: 1px solid var(--blue); background: var(--blue-soft); color: var(--ink); font: inherit; cursor: pointer; }
.ms-anta small { color: var(--muted); font-size: 11.5px; } .ms-anta b { font-size: 14px; }
.ms-anta.is-fix { border-color: var(--line-strong); background: repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 6px, transparent 6px 12px); }
.ms-col .ms-colname { margin-left: 6px; color: var(--ink); font-weight: 600; }
.ms-sub { color: var(--muted); font-size: 12px; margin-top: 4px; }
.ms-sw { gap: 6px; } .ms-sw .chip { align-self: center; }
.ms-linkq { margin-top: 12px; } .ms-linkq a { margin-left: 6px; font-weight: 600; }
.ms-top { position: sticky; } .ms-top .actions { position: relative; }
.ms-ok { position: static; max-width: none; margin: 0 16px; border-color: rgba(127,214,160,.5); }
.event.is-task { background: rgba(242,193,78,.08); } .event.is-task .event-main { color: var(--ink); text-decoration: none; display: flex; flex-direction: column; gap: 2px; }
.event.is-task .event-time { color: #F2C14E; }
/* Riordino delle voci e accessori */
.g3-tr { grid-template-columns: 56px minmax(0, 2.4fr) minmax(90px, 1fr) 50px 96px 92px; }
.g3-num { display: flex; align-items: center; gap: 4px; }
.g3-grip { font-style: normal; color: var(--faint); cursor: grab; letter-spacing: -2px; user-select: none; }
.g3-rowact { display: flex; align-items: center; justify-content: flex-end; gap: 2px; }
.g3-mv { width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--line); background: transparent; color: var(--muted); font-size: 11px; cursor: pointer; }
.g3-mv:hover { color: var(--ink); border-color: var(--blue); }
.g3-acc { margin-top: 6px; align-self: flex-start; display: inline-block; padding: 4px 10px; border-radius: 999px; border: 1px dashed var(--blue); background: var(--blue-soft); color: var(--ink); font: inherit; font-size: 12px; cursor: pointer; }
.g3-tr.is-drag { opacity: .45; }
.g3-tr.drop-before, tr.drop-before { box-shadow: inset 0 3px 0 var(--blue); }
.g3-tr.drop-after, tr.drop-after { box-shadow: inset 0 -3px 0 var(--blue); }
@media (max-width: 860px) {
  .g3-tr { grid-template-columns: 30px minmax(0, 1fr) auto 104px; }
  .g3-tr.is-child { grid-template-columns: 30px minmax(0, 1fr) auto 104px; }
  .g3-grip { display: none; }
  .g3-mv { width: 32px; height: 32px; }
}
.pr-mv { white-space: nowrap; width: 76px; } .pr-mv .g3-mv { margin-right: 2px; }
tr.is-child-row td:first-child + td { padding-left: 28px; }
.g3-head-act { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.mdl-rep { margin: 0; padding-left: 18px; color: var(--ink-2); font-size: 14px; line-height: 1.5; }
/* ——— PDF del preventivo ——— */
.doc-table2 { table-layout: fixed; width: 100%; }
.doc-table2 col.q-n { width: 30px; } .doc-table2 col.q-q { width: 34px; } .doc-table2 col.q-p { width: 82px; } .doc-table2 col.q-s { width: 46px; } .doc-table2 col.q-v { width: 36px; } .doc-table2 col.q-t { width: 92px; } .doc-table2 col.q-c { width: 70px; } .doc-table2 col.q-m { width: 82px; }
.doc-table2 td, .doc-table2 th { overflow-wrap: anywhere; }
.doc-table2 th { font-size: 8pt; white-space: normal; line-height: 1.2; }
.doc-n { font-weight: 700; color: #0E2A4F; }
.doc-n-acc { font-size: 8pt; color: #7a8797; }
tr.is-acc td { padding-top: 5px; padding-bottom: 5px; background: #f7f9fb; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
tr.is-acc .doc-item b { font-weight: 600; }
.doc-sub { display: block; color: #7a8797; font-size: 7.5pt; font-weight: 400; }
.doc-art-sys { width: 110px; flex: 0 0 auto; border-radius: 8px; overflow: hidden; }
.doc-art-sys svg { display: block; width: 100%; height: auto; filter: invert(1) hue-rotate(180deg); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.doc-note-small { margin: 6px 0 0; font-size: 8pt; color: #7a8797; text-align: right; }
.doc-reserved { margin-top: 22px; margin-left: auto; width: 62%; border: 2px dashed #b4341f; border-radius: 10px; padding: 12px 16px; background: #fff7f5; -webkit-print-color-adjust: exact; print-color-adjust: exact; break-inside: avoid; }
.doc-reserved header { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; color: #b4341f; text-transform: uppercase; letter-spacing: .06em; font-size: 9pt; }
.doc-reserved header span { text-transform: none; letter-spacing: 0; color: #7a8797; }
.doc-reserved table { width: 100%; border-collapse: collapse; font-size: 9pt; color: #22303f; }
.doc-reserved td { padding: 4px 0; border-bottom: 1px solid #f0d8d2; } .doc-reserved td.num { text-align: right; white-space: nowrap; padding-left: 10px; }
.doc-reserved tr.grand td { font-weight: 700; color: #0E2A4F; font-size: 10pt; }
.doc .num, .doc-totals td, .doc-table2 td { color: #1B2A3D; }
.doc-totals tr.grand td { color: #0E2A4F; }
.doc-table2 col.q-n { width: 34px; } .doc-table2 col.q-q { width: 42px; } .doc-table2 col.q-p { width: 84px; } .doc-table2 col.q-s { width: 56px; } .doc-table2 col.q-v { width: 44px; } .doc-table2 col.q-t { width: 96px; }
.doc-table2 th { white-space: nowrap; } .doc-table2 th:last-child { white-space: normal; }
.doc-table2 td.num { padding-left: 4px; padding-right: 6px; }
.doc-art-sys { width: 124px; }
.doc-totals { break-inside: avoid; page-break-inside: avoid; }
.doc-cost { margin: 4px 0 0; padding: 3px 8px; border-radius: 6px; background: #fff3ef; color: #8a2a17; font-size: 8pt; display: inline-block; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.doc-table2 .doc-item { display: flex; gap: 10px; align-items: flex-start; } .doc-table2 .doc-item > div:last-child { min-width: 0; flex: 1; }
.doc-art-sys { width: 100px; }
.doc-reserved tr.sub td { color: #7a8797; font-size: 8.5pt; padding-left: 12px; } .doc-reserved tr.sub td.num { padding-left: 0; }
.doc-reserved { width: 78%; } .doc-reserved td:first-child { padding-right: 12px; }
.doc-reserved tr.hd td { padding-top: 10px; font-weight: 700; color: #0E2A4F; font-size: 8.5pt; text-transform: uppercase; letter-spacing: .04em; border-bottom: 1.5px solid #e8b7aa; }
/* ——— Azioni sul preventivo ——— */
.qa-open { min-height: 44px; padding: 0 18px; font-weight: 700; gap: 8px; white-space: nowrap; }
.qa-sheet { width: min(640px, 100%); }
.qa-body { display: flex; flex-direction: column; gap: 18px; }
.qa-body h3 { margin: 0 0 8px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--faint); }
.qa-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.qa-btn { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 14px; border-radius: 14px; border: 1px solid var(--line); background: var(--sunken); color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.qa-btn:hover:not(:disabled), .qa-btn:focus-visible { border-color: var(--blue); background: var(--blue-soft); }
.qa-btn:disabled { opacity: .5; cursor: default; }
.qa-ic { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--blue-soft); color: var(--accent, #5CE1E6); }
.qa-ic svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.qa-t { display: flex; flex-direction: column; min-width: 0; } .qa-t b { font-size: 15px; } .qa-t small { color: var(--muted); font-size: 12.5px; line-height: 1.3; }
.qa-danger { padding-top: 14px; border-top: 1px solid var(--line-soft); }
.qa-btn.is-danger { border-color: rgba(255,107,107,.35); background: rgba(255,107,107,.06); width: 100%; }
.qa-btn.is-danger .qa-ic { background: rgba(255,107,107,.14); color: #FF8A8A; } .qa-btn.is-danger b { color: #FF9C9C; }
.qa-btn.is-danger:hover { border-color: #FF6B6B; background: rgba(255,107,107,.12); }
@media (max-width: 560px) { .qa-grid { grid-template-columns: minmax(0, 1fr); } .qa-btn { min-height: 58px; } }
.g3-top-r { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.wiz-head-act { display: flex; justify-content: flex-end; }
.notice-warn { border-color: rgba(242,193,78,.5); background: rgba(242,193,78,.08); }
/* elenco preventivi: Modifica · Duplica · Elimina */
.ql-act { width: 1%; white-space: nowrap; }
.ql-btns { display: inline-flex; gap: 6px; }
.btn-danger-ghost { border-color: rgba(255,107,107,.4); color: #FF9C9C; background: transparent; }
.btn-danger-ghost:hover { background: rgba(255,107,107,.1); border-color: #FF6B6B; }
@media (max-width: 860px) {
  .qlist tr { grid-template-columns: 28px minmax(0, 1fr) auto; grid-template-areas: "sel num num" "sel cli cli" "sel st tot" "act act act"; }
  .qlist td:nth-child(8) { grid-area: act; align-self: stretch; margin-top: 8px; width: auto; }
  .ql-btns { display: grid; grid-template-columns: 1fr 1fr 1fr; width: 100%; } .ql-btns .btn { min-height: 40px; justify-content: center; }
  .g3-top { flex-wrap: wrap; } .g3-top-r { width: 100%; justify-content: flex-start; } .qa-open { flex: 1 1 auto; justify-content: center; }
  .wiz-head-act { justify-content: stretch; } .wiz-head-act .qa-open { width: 100%; }
}
/* testata dei passi: titolo e Azioni sulla stessa riga, passi sotto */
.wiz-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 14px 16px; }
.wiz-head > div:first-child { grid-column: 1; min-width: 0; }
.wiz-head-act { grid-column: 2; align-self: center; }
.wiz-head .wiz-rail { grid-column: 1 / -1; }
.start-steps { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; color: var(--ink-2); font-size: 14px; }
@media (max-width: 860px) { .wiz-head { grid-template-columns: minmax(0, 1fr); } .wiz-head-act { grid-column: 1; } .wiz-head-act > * { width: 100%; justify-content: center; } }
.wiz-head .source-pick { width: fit-content; max-width: 100%; }
.cn-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.cn-row small { font-size: 12px; } .cn-miss { color: #F2C14E; font-size: 12px; }
/* riquadro numero · oggetto rinominabile */
.rq-badge { display: inline-flex; align-items: center; gap: 8px; max-width: 420px; min-height: 44px; cursor: pointer; font: inherit; text-align: left; }
.rq-badge:hover, .rq-badge:focus-visible { border-color: var(--blue); background: var(--blue-soft); }
.rq-num { white-space: nowrap; }
.rq-tit { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); font-weight: 600; text-transform: none; letter-spacing: 0; padding-left: 8px; border-left: 1px solid var(--line); }
.rq-pen { font-size: 15px; opacity: .8; }
.rq-sheet { width: min(520px, 100%); }
.rq-actions { display: flex; justify-content: flex-end; gap: 8px; }
.wiz-head-act { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 860px) { .rq-badge { max-width: none; width: 100%; } .wiz-head-act { flex-direction: column; align-items: stretch; } .rq-actions .btn { flex: 1; } }
@media (max-width: 860px) {
  .rq-badge { flex-wrap: wrap; justify-content: flex-start; text-align: left; position: relative; padding-right: 36px; }
  .rq-tit { flex-basis: 100%; order: 3; border-left: 0; padding-left: 0; white-space: normal; }
  .rq-pen { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); }
  .g3-top-r .qa-open { width: 100%; justify-content: center; }
}
/* Servizi nella scheda misure */
.ms-sv { margin-top: 12px; }
.ms-sv-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ms-sv-head > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; } .ms-sv-head small { color: var(--muted); }
.ms-sv-sheet { width: min(560px, 100%); }
.ms-sv-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--sunken); }
.ms-sv-row > div:first-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; } .ms-sv-row small { color: var(--muted); font-size: 12.5px; }
.ms-sv-check { cursor: pointer; } .ms-sv-check input { width: 24px; height: 24px; accent-color: var(--blue); flex: 0 0 auto; }
.ms-qty { display: flex; align-items: center; gap: 10px; } .ms-qty .btn { width: 40px; height: 40px; padding: 0; justify-content: center; } .ms-qty b { min-width: 20px; text-align: center; font-size: 17px; }
.ms-pdf-sv { margin-top: 14px; font-size: 10pt; color: #22303f; } .ms-pdf-sv p { margin: 2px 0 0; }
@media (max-width: 560px) { .ms-sv-head .btn { width: 100%; } }
.ms-budget { margin-top: 12px; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 16px 18px; border-radius: 16px; border: 1px solid rgba(92,225,230,.35); background: linear-gradient(180deg, rgba(92,225,230,.08), rgba(46,139,255,.06)); text-align: center; }
.ms-budget-l { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.ms-budget b { font-size: clamp(20px, 4.5vw, 26px); letter-spacing: -.3px; color: var(--ink); }
.ms-budget small { color: var(--muted); font-size: 12.5px; }
/* Ferramenta e accessori nella scheda misure */
.ms-ferr-btn { width: 100%; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; min-height: 52px; padding: 10px 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--sunken); color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.ms-ferr-btn:hover { border-color: var(--blue); } .ms-ferr-btn small { color: var(--muted); font-size: 13px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ms-ferr-btn > span { color: var(--muted); font-size: 20px; }
.ms-ferr-sheet { width: min(620px, 100%); } .ms-microv small { margin-left: 6px; }
.ms-accs { display: flex; flex-direction: column; gap: 8px; }
.ms-acc { display: flex; align-items: stretch; gap: 6px; }
.ms-acc-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; padding: 10px 14px; border-radius: 12px; border: 1px solid rgba(92,225,230,.3); background: rgba(92,225,230,.06); color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.ms-acc-main small { color: var(--muted); font-size: 12.5px; }
.ms-acc-x { flex: 0 0 auto; width: 48px; border-radius: 12px; border: 1px solid rgba(255,107,107,.35); background: transparent; color: #FF9C9C; font-size: 18px; cursor: pointer; }
.ms-acc-x:hover { background: rgba(255,107,107,.1); border-color: #FF6B6B; }
.ms-acc-sheet { width: min(760px, 100%); max-height: 92vh; overflow: auto; }
.ms-acc-pick .chip { min-height: 44px; }
@media (max-width: 560px) {
  .ms-ferr-btn { grid-template-columns: 1fr auto; row-gap: 2px; }
  .ms-ferr-btn small { grid-column: 1; grid-row: 2; white-space: normal; }
  .ms-ferr-btn > span { grid-row: 1 / span 2; grid-column: 2; }
}
.srv-col { display: flex; flex-direction: column; gap: 10px; }
.srv-mk { align-items: flex-start; } .srv-mk small { display: block; margin-top: 2px; }
.pr-xcol { width: 44px; text-align: center; }
.pr-x { width: 32px; height: 32px; border-radius: 8px; border: 1px solid rgba(255,107,107,.35); background: transparent; color: #FF6B6B; font-size: 14px; font-weight: 700; cursor: pointer; }
.pr-x:hover, .pr-x:focus-visible { background: rgba(255,107,107,.12); border-color: #FF6B6B; }
/* ——— Formazione ——— */
.fm-page .page-head p { color: var(--muted); }
.fm-back { display: inline-block; margin-bottom: 10px; color: var(--muted); text-decoration: none; font-size: 14px; } .fm-back:hover { color: var(--ink); }
.fm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.fm-card { position: relative; border-radius: 18px; border: 1px solid var(--line); background: var(--panel, rgba(255,255,255,.02)); }
.fm-card > a { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px; color: var(--ink); text-decoration: none; min-height: 120px; }
.fm-card > a:hover { background: rgba(46,139,255,.05); border-radius: 18px; }
.fm-card b { font-size: 18px; } .fm-card p { margin: 0; color: var(--muted); font-size: 14px; } .fm-card small { margin-top: auto; color: var(--faint); }
.fm-card .fm-adm { position: absolute; top: 12px; right: 12px; display: flex; gap: 4px; }
.fm-list { list-style: none; margin: 0; padding: 0; }
.fm-list > li { display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--line-soft); }
.fm-list > li:last-child { border-bottom: 0; }
.fm-row { flex: 1; min-width: 0; display: grid; grid-template-columns: 28px 26px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 14px 6px; color: var(--ink); text-decoration: none; }
.fm-row:hover { background: rgba(46,139,255,.05); }
.fm-n { color: var(--faint); font-variant-numeric: tabular-nums; text-align: right; } .fm-ic { font-size: 18px; }
.fm-t { display: flex; flex-direction: column; min-width: 0; } .fm-t b { font-size: 15.5px; } .fm-t small { color: var(--faint); font-size: 12px; }
.fm-adm { display: flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.fm-read { color: #7FD6A0; font-size: 12.5px; white-space: nowrap; } .fm-unread { color: var(--faint); font-size: 12.5px; white-space: nowrap; }
.fm-count { border: 1px solid var(--line); background: transparent; color: var(--muted); border-radius: 999px; padding: 4px 10px; font: inherit; font-size: 12.5px; cursor: pointer; white-space: nowrap; }
.fm-count:hover { border-color: var(--blue); color: var(--ink); }
.fm-secdel { margin-top: 14px; justify-content: flex-end; }
.fm-sheet { width: min(720px, 100%); } .fm-text { font-family: inherit; line-height: 1.5; min-height: 260px; }
.fm-who { list-style: none; margin: 0; padding: 0; } .fm-who li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line-soft); }
.fm-view { max-width: 860px; }
.fm-body { font-size: 16px; line-height: 1.7; color: var(--ink-2); }
.fm-body h3 { margin: 26px 0 8px; font-size: 19px; color: var(--ink); } .fm-body h4 { margin: 18px 0 6px; font-size: 16px; color: var(--ink); }
.fm-body p { margin: 0 0 12px; } .fm-body ul, .fm-body ol { margin: 0 0 14px; padding-left: 22px; } .fm-body li { margin: 4px 0; }
.fm-body b { color: var(--ink); }
.fm-btn { display: inline-block; padding: 0 8px; border-radius: 6px; border: 1px solid var(--line-strong); background: var(--sunken); color: var(--ink); font-size: .92em; font-weight: 600; white-space: nowrap; }
.fm-tip { padding: 12px 16px; border-left: 3px solid #5CE1E6; border-radius: 8px; background: rgba(92,225,230,.07); color: var(--ink); }
.fm-video { position: relative; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #000; margin-bottom: 14px; } .fm-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.fm-pdf { height: 75vh; border-radius: 12px; overflow: hidden; border: 1px solid var(--line); margin-bottom: 12px; } .fm-pdf iframe { width: 100%; height: 100%; border: 0; background: #fff; }
.fm-nav { display: flex; justify-content: space-between; gap: 10px; margin-top: 16px; max-width: 860px; flex-wrap: wrap; }
@media (max-width: 560px) { .fm-row { grid-template-columns: 22px minmax(0, 1fr) auto; } .fm-ic { display: none; } .fm-nav .btn { flex: 1; justify-content: center; } }
/* PDF della scheda */
.fm-doc h1 { font-size: 22pt; color: #0E2A4F; margin: 0 0 6px; } .fm-doc .fm-lead { color: #4A5868; margin: 0 0 20px; }
.fm-doc .fm-chap { break-before: page; } .fm-doc .fm-chap:first-of-type { break-before: auto; }
.fm-doc h2 { font-size: 15pt; color: #0E2A4F; border-bottom: 1.5px solid #1F4E8C; padding-bottom: 4px; margin: 18px 0 10px; }
.fm-doc .fm-body { color: #1B2A3D; font-size: 10.5pt; line-height: 1.55; } .fm-doc .fm-body h3 { color: #0E2A4F; font-size: 12pt; } .fm-doc .fm-body b, .fm-doc .fm-body h4 { color: #0E2A4F; }
.fm-doc .fm-btn { border-color: #9fb3c8; background: #eef3f8; color: #0E2A4F; } .fm-doc .fm-tip { background: #eefafb; color: #0E2A4F; border-left-color: #2a9fa4; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
@media (max-width: 560px) {
  .fm-list > li { flex-wrap: wrap; gap: 0; }
  .fm-row { grid-template-columns: 22px minmax(0, 1fr); row-gap: 6px; padding-bottom: 8px; }
  .fm-row .fm-count, .fm-row .fm-read, .fm-row .fm-unread { grid-column: 2; justify-self: start; }
  .fm-list .fm-adm { width: 100%; justify-content: flex-end; padding: 0 6px 12px; }
}
.fm-fig { margin: 14px 0 18px; } .fm-fig img { display: block; max-width: 100%; height: auto; border-radius: 12px; border: 1px solid var(--line); box-shadow: 0 8px 30px rgba(0,0,0,.35); }
.fm-fig figcaption { margin-top: 6px; color: var(--muted); font-size: 13px; text-align: center; }
.fm-doc .fm-fig { break-inside: avoid; } .fm-doc .fm-fig img { max-height: 120mm; width: auto; margin: 0 auto; box-shadow: none; border-color: #c9d3de; } .fm-doc .fm-fig figcaption { color: #4A5868; }
.gp-pdf { display: flex; flex-direction: column; gap: 8px; } .gp-pdf p { margin: 0; } .gp-pdf .chip { min-height: 40px; }
/* Chiedi al formatore */
.fm-ask { margin: 4px 0 22px; padding: 24px 26px; border-radius: 20px; border: 1px solid rgba(92,225,230,.4); background: linear-gradient(135deg, rgba(92,225,230,.10), rgba(46,139,255,.08) 60%, rgba(155,108,255,.08)); }
.fm-ask h2 { margin: 0 0 4px; font-size: 22px; } .fm-ask > p { margin: 0 0 14px; color: var(--muted); }
.fm-ask-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; }
.fm-ask-row .input { min-height: 52px; font-size: 16px; } .fm-ask-row .btn { min-height: 52px; padding: 0 22px; }
.fm-mic { font-size: 20px; padding: 0 16px !important; } .fm-mic.is-on { border-color: #FF6B6B; background: rgba(255,107,107,.12); animation: fmPulse 1s infinite; }
@keyframes fmPulse { 50% { box-shadow: 0 0 0 6px rgba(255,107,107,.15); } }
.fm-ask-msg { margin: 14px 0 0; padding: 12px 14px; border-radius: 12px; background: rgba(242,193,78,.08); border: 1px solid rgba(242,193,78,.3); }
.fm-ask-msg.is-err { background: rgba(255,107,107,.08); border-color: rgba(255,107,107,.3); }
.fm-ask-res { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; } .fm-ask-res p { margin: 0; color: var(--muted); }
.fm-ask-hit { display: flex; flex-direction: column; padding: 12px 16px; border-radius: 12px; border: 1px solid var(--line); background: var(--sunken); color: var(--ink); text-decoration: none; }
.fm-ask-hit:hover { border-color: var(--blue); } .fm-ask-hit small { color: var(--muted); }
.fm-open { margin-top: 22px; } .fm-open .fm-who li { align-items: center; }
@media (max-width: 560px) { .fm-ask { padding: 18px; } .fm-ask-row { grid-template-columns: minmax(0, 1fr) auto; } .fm-ask-row .btn-primary { grid-column: 1 / -1; } }
/* Racconta a voce (esiti) */
.vf { padding: 16px; border-radius: 16px; border: 1px solid rgba(92,225,230,.4); background: linear-gradient(135deg, rgba(92,225,230,.10), rgba(46,139,255,.07)); display: flex; flex-direction: column; gap: 10px; margin-bottom: 4px; }
.vf-head { display: flex; flex-direction: column; gap: 2px; } .vf-head b { font-size: 16px; } .vf-head small { color: var(--muted); }
.vf-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: stretch; }
.vf-mic { min-width: 104px; font-size: 15px; } .vf-mic.is-on { border-color: #FF6B6B; background: rgba(255,107,107,.14); animation: fmPulse 1s infinite; }
.vf-live { margin: 0; color: #FF8C8C; font-size: 13px; } .vf-err { margin: 0; color: #FF8C8C; font-size: 14px; }
.vf-or { margin: 6px 0 2px; text-align: center; color: var(--muted); font-size: 13px; text-transform: uppercase; letter-spacing: .06em; }
.vf-done { padding: 10px 14px; border-radius: 12px; background: rgba(92,225,230,.10); border: 1px solid rgba(92,225,230,.35); font-size: 14px; margin-bottom: 6px; }
.vf .actions { justify-content: flex-end; }
@media (max-width: 560px) { .vf-row { grid-template-columns: 1fr; } .vf-mic { min-height: 48px; } }
/* Riassunto del cliente */
.rs-cta { margin: 0 0 14px; } .rs-btn { border-color: rgba(92,225,230,.45); background: linear-gradient(135deg, rgba(92,225,230,.12), rgba(46,139,255,.08)); min-height: 44px; }
.rs-panel { margin: 0 0 16px; border-color: rgba(92,225,230,.4); }
.rs-body { display: flex; flex-direction: column; gap: 10px; }
.rs-who { margin: 0; font-size: 16px; font-weight: 600; }
.rs-row { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 10px; align-items: start; }
.rs-row > span { color: var(--muted); font-size: 13px; text-transform: uppercase; letter-spacing: .04em; padding-top: 2px; }
.rs-row p, .rs-row ul { margin: 0; } .rs-row ul { padding-left: 18px; }
.rs-next p { font-weight: 600; } .rs-warn p { color: #F2C14E; }
.rs-note { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.rs-prep { border-color: rgba(92,225,230,.45); }
@media (max-width: 560px) { .rs-row { grid-template-columns: 1fr; gap: 2px; } }
/* Resoconto settimanale */
.wr { margin-bottom: 18px; border-color: rgba(92,225,230,.35); display: flex; flex-direction: column; gap: 14px; }
.wr .panel-head { align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.wr-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.wr-kpi { padding: 14px; border-radius: 14px; background: var(--sunken); border: 1px solid var(--line); display: flex; flex-direction: column; gap: 2px; }
.wr-kpi b { font-size: 26px; } .wr-kpi span { color: var(--muted); font-size: 13px; } .wr-kpi small { color: var(--cyan, #5CE1E6); font-size: 12px; }
.wr-sum { margin: 0; font-size: 16px; line-height: 1.55; }
.wr-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 10px; }
.wr h3 { font-size: 15px; margin: 0 0 6px; } .wr ul { margin: 0; padding-left: 18px; } .wr li { margin: 3px 0; }
.wr-watch { padding: 14px; border-radius: 14px; background: rgba(242,193,78,.06); border: 1px solid rgba(242,193,78,.3); } .wr-watch p { margin: 8px 0 4px; }
@media (max-width: 760px) { .wr-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .wr-cols { grid-template-columns: 1fr; } }
/* Appuntamenti da chiudere (Oggi) */
.dc { border-color: rgba(242,193,78,.45); margin-bottom: 18px; }
.dc-n { display: inline-grid; place-items: center; min-width: 26px; height: 26px; padding: 0 8px; border-radius: 13px; background: #F2C14E; color: #1a1400; font-size: 14px; margin-left: 6px; vertical-align: middle; }
.dc-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.dc-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 12px; background: var(--sunken); border: 1px solid var(--line); }
.dc-list li > span { display: flex; flex-direction: column; min-width: 0; }
@media (max-width: 560px) { .dc-list li { flex-direction: column; align-items: stretch; } }
/* Applica a tutti i serramenti */
.aa-sheet { max-width: 520px; } .aa-sheet p { margin: 0 0 10px; }
.aa-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; } .aa-actions .btn { min-height: 48px; }
@media (max-width: 480px) { .aa-actions { grid-template-columns: 1fr; } }
/* Avviso zona climatica F */
.zf-warn { margin-top: 8px; padding: 10px 12px; border-radius: 12px; background: rgba(242,193,78,.10); border: 1px solid rgba(242,193,78,.45); font-size: 14px; line-height: 1.4; }
.zf-warn.span-2 { grid-column: 1 / -1; margin-top: 0; }
.zf-mini { display: block; color: #F2C14E; font-size: 12px; margin-top: 2px; }
/* Misure: vetro, note a voce, controlli */
.ms-glass { display: flex; flex-direction: column; gap: 6px; margin: 4px 0 2px; }
.ms-glass-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; } .ms-glass-sep { width: 10px; }
.ms-glass .chip { min-height: 38px; padding: 0 14px; }
.ms-mic-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; align-items: start; }
.ms-mic { min-width: 46px; min-height: 42px; font-size: 18px; } .ms-mic.is-on { border-color: #FF6B6B; background: rgba(255,107,107,.14); animation: fmPulse 1s infinite; }
.ck-panel { border-color: rgba(242,193,78,.45); } .ck-inline { padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(242,193,78,.45); background: rgba(242,193,78,.07); margin: 8px 0; }
.ck-list { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ck-list li { display: flex; justify-content: space-between; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 10px; background: var(--sunken); }
.ck-badge { font-size: 13px; border: 0; background: none; padding: 0; cursor: pointer; } .ck-badge.is-warn { color: #F2C14E; font-weight: 700; } .ck-badge.is-ok { color: #5CE1E6; }
@media (max-width: 560px) { .ck-list li { flex-direction: column; align-items: stretch; } }
/* Provvigioni */
.cp-panel { margin: 0 0 16px; }
.pv { margin-top: 18px; } .pv .panel-head { flex-wrap: wrap; gap: 10px; } .pv .actions .input { max-width: 180px; }
.pv-tot { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.pv-pct { display: inline-flex; align-items: center; gap: 4px; } .pv-pct span { font-size: 12px; color: var(--muted); } .pv-pct .input { width: 64px; min-height: 34px; padding: 4px 8px; } .pv-pct em { font-style: normal; color: var(--muted); }
.da-msg { display: block; color: var(--muted); font-size: 13px; margin-top: 2px; }
.da-sel { max-width: 220px; min-height: 40px; }

/* PDF cliente: sito, consulente, scheda tecnica, QR social */
.doc-head .doc-web { color: #1F4E8C; font-weight: 600; font-size: 9pt; margin-top: 2px; }
.doc-cons { margin-top: 10px; padding: 7px 14px 7px 10px; border-left: 3px solid #25D366; background: #f4faf6; border-radius: 0 8px 8px 0; width: max-content; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.doc-cons .k { font-size: 7.5pt; letter-spacing: .08em; text-transform: uppercase; color: #6b7a8c; }
.doc-cons .n { font-weight: 700; font-size: 11pt; color: #0f2a4a; line-height: 1.25; }
.doc-cons .w { display: flex; align-items: center; gap: 5px; font-size: 9.5pt; color: #1f3b5c; margin-top: 2px; }
.doc-cons .ic, .doc-qr .ic { display: inline-flex; } .doc-cons .ic svg { width: 14px; height: 14px; }
.doc-totals { gap: 24px; }
.doc-qr { margin-right: auto; align-self: center; display: flex; flex-direction: column; gap: 8px; padding: 12px 16px; border: 1px solid #dbe3ec; border-radius: 12px; background: #fafcfe; break-inside: avoid; }
.doc-qr .t { font-weight: 700; font-size: 10pt; color: #0f2a4a; }
.doc-qr .s { font-size: 8pt; color: #6b7a8c; margin-top: -6px; }
.doc-qr .row { display: flex; gap: 14px; }
.doc-qr figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 5px; }
.doc-qr .code, .doc-qr .code svg { width: 92px; height: 92px; display: block; }
.doc-qr figcaption { display: flex; align-items: center; gap: 4px; font-size: 8pt; font-weight: 600; color: #1f3b5c; }
.doc-qr figcaption svg { width: 13px; height: 13px; }
.st { margin: 18px 0 22px; border: 1px solid #D5DFEA; border-radius: 14px; overflow: hidden; background: #F7FAFD; color: #16324F; font-size: 9.5pt; break-inside: avoid; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.st-band { background: linear-gradient(100deg, #1F4E79, #2E6DA4); color: #fff; padding: 14px 20px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.st-k { font-size: 8pt; letter-spacing: 1.6px; font-weight: 700; opacity: .85; }
.st-name { font-size: 14.5pt; font-weight: 800; margin-top: 2px; }
.st-uw { background: #fff; color: #1F4E79; border-radius: 12px; padding: 8px 14px; text-align: center; min-width: 118px; }
.st-uw-k { font-size: 8pt; font-weight: 700; letter-spacing: .5px; }
.st-uw-v { font-size: 17pt; font-weight: 800; line-height: 1.15; } .st-uw-v span { font-size: 9pt; }
.st-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 16px; padding: 16px 20px 6px; align-items: center; }
.st-draw { background: #fff; border: 1px solid #DCE5EF; border-radius: 12px; padding: 10px 8px 4px; }
.st-draw svg { display: block; }
.st-cap { text-align: center; font-size: 8pt; color: #5B6B7C; margin: 2px 0 4px; }
.st-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.st-tile { background: #fff; border: 1px solid #DCE5EF; border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; }
.st-tile b { font-size: 14.5pt; font-weight: 800; color: #16324F; line-height: 1.1; }
.st-tile span { font-size: 8.5pt; color: #5B6B7C; margin-top: 3px; }
.st-hw { margin-top: 8px; } .st-hw span { margin: 0; } .st-hw b { font-size: 9.5pt; font-weight: 700; margin-top: 2px; line-height: 1.3; }
.st-vetri { padding: 10px 20px 18px; }
.st-h { display: block; margin: 6px 0; color: #1F4E79; }
.st-vetri table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid #E1E8F0; }
.st-vetri th { background: #EEF3F9; color: #5B6B7C; font-size: 8pt; text-transform: uppercase; letter-spacing: .03em; padding: 6px 8px; text-align: left; }
.st-vetri td { padding: 7px 8px; border-top: 1px solid #EEF2F6; color: #16324F; }
.st-vetri .c { text-align: center; white-space: nowrap; } .st-vetri .b { font-weight: 700; }
.uw-in { display: flex; align-items: center; gap: 8px; } .uw-in .input { max-width: 140px; }
@media print { .doc-qr, .st { break-inside: avoid; } }
.doc-qr figcaption { flex-wrap: wrap; justify-content: center; gap: 8px; }
.doc-qr .qi { display: inline-flex; align-items: center; gap: 4px; }

/* Contratto */
.ct-pop .ct-row { display: grid; grid-template-columns: 1.3fr 1fr; gap: 10px; align-items: center; }
.ct-pop .ct-row span { font-size: 13px; }
.ct-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ct-seg button { border: 1px solid var(--line, #2f4a70); background: transparent; color: inherit; border-radius: 12px; padding: 10px; font-weight: 700; cursor: pointer; }
.ct-seg button[aria-pressed="true"] { background: #2e8bff; border-color: #2e8bff; color: #fff; }
.ct-note, .ct-prodcard { border: 1px solid var(--line, #2f4a70); border-radius: 10px; padding: 10px 12px; font-size: 13px; line-height: 1.5; display: flex; flex-direction: column; }
.ct-ok { color: #3fd68a; font-weight: 600; font-size: 13px; margin: 0; } .ct-warn { color: #ffb547; font-weight: 600; font-size: 13px; margin: 0; }
.ct-doc { color: #1B2A3D; }
.ct-top { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; border-bottom: 2px solid #1F4E8C; padding-bottom: 14px; }
.ct-l { display: flex; flex-direction: column; gap: 6px; } .ct-l img { height: 70px; width: 70px; object-fit: contain; }
.ct-cons { font-size: 8.5pt; color: #5B6B7C; } .ct-cons b { display: block; font-size: 10.5pt; color: #0E2A4F; }
.ct-plogo { height: 72px; justify-self: center; } .ct-pname { justify-self: center; font-size: 15pt; color: #0E2A4F; }
.ct-qr { justify-self: end; width: 86px; text-align: center; font-size: 7pt; color: #5B6B7C; } .ct-qr svg { width: 86px; height: 86px; display: block; }
.ct-date { font-size: 9pt; color: #5B6B7C; margin: 10px 0 0; }
.ct-parties { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 14px 0 6px; }
.ct-parties > div { background: #f6f9fc; border: 1px solid #e1e8f0; border-radius: 10px; padding: 10px 14px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.ct-parties span { font-size: 7.5pt; text-transform: uppercase; letter-spacing: .06em; color: #5B6B7C; } .ct-parties b { display: block; color: #0E2A4F; font-size: 10.5pt; } .ct-parties p { margin: 1px 0; font-size: 8.5pt; color: #34465a; }
.ct-sec { font-size: 9pt; letter-spacing: .1em; text-transform: uppercase; color: #1F4E79; font-weight: 800; margin: 20px 0 6px; }
.doc-embed > .st:first-child { margin-top: 6px; }
.ct-pay { border: 1.5px solid #1F4E79; border-radius: 12px; overflow: hidden; break-inside: avoid; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.ct-pay-h { background: linear-gradient(100deg, #1F4E79, #2E6DA4); color: #fff; padding: 9px 16px; font-weight: 800; letter-spacing: .05em; font-size: 10pt; }
.ct-pay-b { padding: 10px 16px; } .ct-pay-b p { margin: 7px 0; font-size: 8.5pt; line-height: 1.5; }
.ct-t { width: 100%; border-collapse: collapse; font-size: 9pt; } .ct-t th { font-size: 7.5pt; text-transform: uppercase; color: #5B6B7C; text-align: left; border-bottom: 1px solid #ccd6e2; padding: 5px 6px; }
.ct-t td { padding: 6px; border-bottom: 1px solid #eef2f6; vertical-align: middle; } .ct-t .num { text-align: right; white-space: nowrap; } .ct-t tr.tot td { border-top: 1.5px solid #1F4E79; }
.ct-cond { columns: 2; column-gap: 24px; font-size: 8pt; line-height: 1.45; text-align: justify; } .ct-cond p { margin: 0 0 6px; break-inside: avoid; } .ct-cond b { color: #0E2A4F; }
.ct-sigrow { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 14px; break-inside: avoid; }
.ct-sig { position: relative; height: 70px; border-bottom: 1px solid #7F8C9B; display: flex; align-items: flex-end; justify-content: flex-start; cursor: pointer; }
.ct-sig img { max-height: 62px; max-width: 100%; margin-bottom: 4px; }
.ct-sig-l { position: absolute; top: 100%; left: 0; font-size: 7.5pt; color: #4A5868; padding-top: 3px; }
.ct-sig-prod { cursor: default; }
.ct-tap { position: absolute; left: 0; bottom: 8px; background: #e7f0ff; color: #1F4E79; border: 1px dashed #6a9ad8; border-radius: 10px; padding: 8px 14px; font-weight: 700; font-size: 10pt; }
.ct-small { font-size: 7.5pt; color: #5B6B7C; margin: 22px 0 0; text-align: right; }
.ct-appr { border: 1px dashed #9fb0c4; border-radius: 10px; padding: 10px 14px 26px; margin-top: 14px; font-size: 8.5pt; break-inside: avoid; }
.sig-overlay { z-index: 1000; }
.sig-sheet { background: #fff; color: #1B2A3D; border-radius: 18px; width: min(920px, calc(100vw - 24px)); padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.sig-sheet h2 { margin: 0; color: #0E2A4F; font-size: 18px; }
.sig-canvas { width: 100%; height: min(320px, 50vh); border: 2px dashed #b7c6d8; border-radius: 14px; touch-action: none; background: #fff; }
.sig-actions { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }
.sig-actions .btn:not(.btn-primary) { color: #1B2A3D; border-color: #cbd6e3; background: #fff; }
.ct-admin h3 { margin: 6px 0 0; font-size: 14px; }
.ct-box { border: 1px solid var(--line, #23395a); border-radius: 12px; padding: 10px 12px; }
.ct-box-h { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; margin-bottom: 6px; } .ct-box-h span { grid-column: 1; font-size: 12px; opacity: .75; } .ct-box-h .mono { grid-row: 1 / span 2; grid-column: 2; align-self: center; font-size: 16px; }
.ct-arow { display: flex; justify-content: space-between; gap: 12px; padding: 10px 4px; border-bottom: 1px solid var(--line, #23395a); color: inherit; text-decoration: none; }
.ct-arow small { display: block; opacity: .7; font-size: 12px; } .ct-aright { text-align: right; }
@media (max-width: 640px) { .ct-cond { columns: 1; } .ct-parties { grid-template-columns: 1fr; } .ct-top { grid-template-columns: 1fr auto; } .ct-qr { display: none; } }
.doc-embed p, .ct-doc p { overflow-wrap: anywhere; }
.ct-pay-b { padding-bottom: 26px; }
.ct-small { margin-top: 34px; }
.ct-doc .st { break-inside: auto; }
.ct-cond { columns: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; break-inside: avoid; }
.ct-sig-l { position: static; display: block; padding-top: 3px; }
.ct-sigw { min-width: 0; }
.ct-small { margin-top: 12px; }
@media (max-width: 640px) { .ct-cond { grid-template-columns: 1fr; } }
.ct-condw { break-inside: avoid; }
.ct-doc > :last-child { margin-bottom: 0; }
.ct-note { display: block; }
.ct-small { text-align: left; }
.ct-privacy { break-before: page; page-break-before: always; margin-top: 26px; }
.ct-pv-sub { font-size: 8pt; color: #5B6B7C; margin: -4px 0 8px; }
.ct-consent { border: 1px solid #c9d6e3; border-radius: 10px; padding: 10px 14px; margin-top: 10px; font-size: 8.5pt; background: #f6f9fc; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.ct-consent p { margin: 4px 0 8px; }
.ct-cons-opts { display: flex; gap: 10px; flex-wrap: wrap; }
.ct-opt { display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid #9fb0c4; background: #fff; color: #1B2A3D; border-radius: 10px; padding: 7px 14px; font-weight: 700; font-size: 9.5pt; cursor: pointer; }
.ct-opt.is-on { border-color: #1F4E79; background: #e7f0ff; color: #0E2A4F; }
.ct-opt:disabled { cursor: default; opacity: 1; }
.ct-box-ck { width: 16px; height: 16px; border: 1.5px solid #1F4E79; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; line-height: 1; }
.ct-pv-ok { font-size: 8.5pt; margin: 12px 0 0; }
.ct-privacy .ct-cond { text-align: left; }
.ct-privacy > :last-child { margin-bottom: 0; }
.ct-reg { margin-top: 18px; break-inside: avoid; }
.ct-reg .ct-t td { font-size: 8pt; }
.ct-hash { font-size: 7.5pt; color: #34465a; margin: 8px 0 0; overflow-wrap: anywhere; }
.ct-hash code, .ct-code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 7.5pt; overflow-wrap: anywhere; word-break: break-all; }

/* ═══════ Rinnovo grafico (v88): vetro, un tocco, Misure al centro ═══════ */
/* — Vetro su testata e barre: il contenuto che scorre sotto resta sfocato, non leggibile — */
.topbar { background: rgba(6,14,30,.58); backdrop-filter: blur(22px) saturate(1.5); -webkit-backdrop-filter: blur(22px) saturate(1.5); border-bottom-color: rgba(120,160,220,.14); }
body::before { background: rgba(6,14,30,.8); }
/* — Testata sempre su una riga — */
.topbar { flex-wrap: nowrap; }
.company-brand { flex: 0 1 auto; min-width: 0; }
.topbar .dock { flex: 0 1 auto; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.topbar .dock::-webkit-scrollbar { display: none; }
.topbar .dock a { flex: 0 0 auto; white-space: nowrap; }
.topbar-end { flex: 0 0 auto; }
@media (max-width: 1500px) { .topbar { gap: 10px; padding-left: 18px; padding-right: 18px; } .topbar .dock a { padding: 9px 11px; font-size: 14px; } .company-name b { max-width: 170px; } }
@media (max-width: 1180px) and (min-width: 861px) { .company-name { display: none; } }
@media (max-width: 860px) { .company-brand { flex: 1 1 auto; } .company-name b { max-width: none; } }
@media (max-width: 560px) {
  .topbar { padding: 8px 12px; gap: 8px; }
  .topbar .logo-box, .topbar .org-initials { width: 38px; height: 38px; }
  .topbar-end { gap: 6px; }
  .topbar-end .icon-btn { display: none; } /* Impostazioni è già in «Altro» */
  .topbar-end .org-select { max-width: 110px; }
  .console-btn { min-height: 36px; padding: 0 10px; font-size: 13px; }
  .avatar { width: 38px; height: 38px; font-size: 13px; }
  .company-name b { font-size: 15px; }
}
/* — Barra in basso: vetro + pulsante centrale «Nuova scheda misure» — */
@media (max-width: 860px) {
  .bottom-nav { background: rgba(10,22,42,.6); backdrop-filter: blur(24px) saturate(1.6); -webkit-backdrop-filter: blur(24px) saturate(1.6); border-color: rgba(120,160,220,.22); box-shadow: 0 18px 44px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.05); }
  .bottom-nav.has-fab { align-items: center; }
  .bottom-nav a.bn-fab { justify-self: center; width: 56px; height: 56px; min-height: 0; margin-top: -22px; gap: 0; border-radius: 20px; background: linear-gradient(160deg, #4FA2FF, #1F6FE0); color: #04101F; font-weight: 700;
    box-shadow: 0 10px 26px rgba(46,139,255,.55), 0 0 0 4px rgba(6,14,30,.85), inset 0 1px 0 rgba(255,255,255,.35); }
  .bottom-nav a.bn-fab span { font-size: 24px; line-height: 1; }
  .bottom-nav a.bn-fab small { font-size: 10px; line-height: 1.1; }
  .bottom-nav a.bn-fab:active { transform: scale(.94); }
  .bottom-nav a[aria-current="page"], .bottom-nav .bn-more[aria-current="page"], .bottom-nav .bn-more[aria-expanded="true"] { background: rgba(46,139,255,.2); box-shadow: inset 0 0 0 1px rgba(46,139,255,.45); }
}
/* — Passaggio morbido tra le pagine — */
@keyframes pg-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
main.page { animation: pg-in .18s ease-out; }
@media (prefers-reduced-motion: reduce) { main.page { animation: none; } }
body.is-print main.page { animation: none; }
/* — Pulsanti-scheda che erano grigi (cliente nel preventivatore) — */
button.crm-item { width: 100%; font: inherit; text-align: left; cursor: pointer; background: var(--sunken); border-color: var(--line); }
button.crm-item:hover { border-color: var(--blue); background: var(--blue-soft); }
button.crm-item:disabled { opacity: .6; cursor: default; }
/* — Pagine vuote: icona e azione — */
.empty { position: relative; }
.empty::before { content: ""; width: 46px; height: 46px; border-radius: 14px; flex: 0 0 auto; background: radial-gradient(circle at 30% 25%, rgba(92,225,230,.5), rgba(46,139,255,.18) 60%, transparent 70%), var(--panel-2); border: 1px solid rgba(92,225,230,.35); box-shadow: 0 0 22px rgba(46,139,255,.25); }
.day-empty::before, .sheet .empty::before { display: none; }
/* — Oggi: numeri vivi — */
.kpi { position: relative; overflow: hidden; --k: var(--blue); }
.kpi::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--k), transparent); opacity: .9; }
.kpi-blue { --k: var(--blue); } .kpi-amber { --k: var(--amber); } .kpi-violet { --k: var(--violet); } .kpi-cyan { --k: var(--cyan); }
.kpi-link b { font-size: 40px; line-height: 1.05; text-shadow: 0 0 26px color-mix(in srgb, var(--k) 55%, transparent); }
.kpi-link:hover { border-color: var(--k); box-shadow: 0 0 0 1px var(--k), 0 12px 30px rgba(0,0,0,.35); }
.kpi-link:active { transform: scale(.985); }
@media (max-width: 560px) {
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .kpi { padding: 14px; border-radius: 18px; } .kpi-link b { font-size: 34px; } .kpi span { font-size: 12.5px; } .kpi small { font-size: 12px; line-height: 1.25; }
}
/* — Pipeline toccabile — */
.pipe-touch { gap: 4px; }
.pipe-touch li { display: block; }
.pipe-touch a { display: grid; grid-template-columns: minmax(96px, 150px) minmax(0, 1fr) 28px 12px; gap: 10px; align-items: center; min-height: 40px; padding: 4px 8px; margin: 0 -8px; border-radius: 10px; color: var(--ink-2); text-decoration: none; }
.pipe-touch a:hover, .pipe-touch a:active { background: var(--panel-2); color: var(--ink); }
.pipe-touch .pipe-l { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pipe-track { height: 10px; border-radius: 999px; background: var(--sunken); overflow: hidden; }
.pipe-track i { display: block; height: 100%; border-radius: 999px; box-shadow: 0 0 12px currentColor; transition: width .5s ease-out; }
.pipe-touch b { text-align: right; } .pipe-go { color: var(--faint); }
/* — Clienti: colore di stato come luce, chiamata e WhatsApp a un tocco — */
.crm-row { flex-direction: row; align-items: center; position: relative; --st: var(--line-strong); }
.crm-row::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 3px; border-radius: 3px; background: var(--st); box-shadow: 0 0 10px var(--st); }
.crm-row.st-nuovo { --st: var(--blue); } .crm-row.st-non_risponde { --st: var(--amber); } .crm-row.st-in_valutazione { --st: var(--faint); } .crm-row.st-sopralluogo { --st: var(--violet); }
.crm-row.st-preventivo { --st: var(--link); } .crm-row.st-trattativa { --st: #F59E0B; } .crm-row.st-cliente { --st: var(--cyan); } .crm-row.st-perso { --st: var(--red); }
.crm-row .crm-item { flex: 1 1 auto; min-width: 0; grid-template-columns: 44px minmax(0, 1fr); padding-left: 14px; }
.crm-st { font-style: normal; color: var(--st); font-weight: 600; }
.crm-quick { display: flex; gap: 6px; flex: 0 0 auto; padding-right: 6px; }
.crm-quick a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; border: 1px solid var(--line); background: var(--sunken); color: var(--link); }
.crm-quick a:hover, .crm-quick a:active { border-color: var(--blue); background: var(--blue-soft); color: var(--ink); }
.crm-quick a.is-wa { color: #5FE08A; } .crm-quick a.is-wa:hover { border-color: #5FE08A; background: rgba(95,224,138,.12); }
.detail-id .crm-owner { margin: 8px 0 0; }
.crm-list .periods { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.crm-list .periods::-webkit-scrollbar { display: none; }
.crm-list .periods .chip { flex: 0 0 auto; white-space: nowrap; }
/* — Agenda: una riga di comandi, legenda a scomparsa, pulsante tondo — */
.ag-nav { display: inline-flex; gap: 6px; }
.ag-leg-btn { display: none; }
.ag-leg { display: contents; }
.event-actions { align-items: center; gap: 4px; padding: 0 6px 6px; }
.event-actions .btn-sm { min-height: 34px; padding: 0 10px; font-size: 12.5px; }
.ev-rest { flex: 1 0 100%; display: flex; flex-wrap: wrap; gap: 4px; padding-top: 2px; }
.ev-more { margin-left: auto; color: var(--faint); }
@media (max-width: 860px) {
  .ag-bar { width: 100%; align-items: center; flex-wrap: nowrap; }
  .ag-nav .btn { min-height: 42px; padding: 0 14px; }
  .ag-cal { min-height: 42px; padding: 0 10px; font-size: 13px; margin-left: auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ag-new { position: fixed; right: 16px; bottom: calc(96px + env(safe-area-inset-bottom, 0px)); z-index: 19; width: 58px; height: 58px; min-height: 0; padding: 0; border-radius: 50%; box-shadow: 0 12px 30px rgba(46,139,255,.55), inset 0 1px 0 rgba(255,255,255,.35); }
  .ag-new .ag-lbl { display: none; } .ag-new .ag-plus { font-size: 28px; line-height: 1; }
  .ag-leg-btn { display: inline-flex; align-items: center; }
  .ag-leg { display: none; } .ag-leg.is-open { display: flex; flex-wrap: wrap; gap: 4px 2px; flex: 1 0 100%; padding-top: 4px; }
  .day.is-empty { min-height: 0; flex-direction: row; align-items: center; padding: 6px 12px; opacity: .7; }
  .day.is-empty header { border: 0; padding: 0; } .day.is-empty header b { font-size: 16px; } .day.is-empty .day-empty { display: none; }
  .day.is-empty.is-today { opacity: 1; }
}
.ag-plus { display: none; }
@media (max-width: 860px) { .ag-plus { display: inline; } }
/* — Preventivatore sul telefono: testata compatta, passi come puntini — */
@media (max-width: 560px) {
  .g3-top { margin-bottom: 10px; gap: 8px; }
  .g3-top > div:first-child { display: none; }
  .g3-top-r { gap: 8px; }
  .wiz-rail { flex-wrap: nowrap; gap: 5px; }
  .wiz-rail .wiz-pill { font-size: 0; gap: 0; min-height: 34px; padding: 0 5px; }
  .wiz-rail .wiz-pill span { width: 22px; height: 22px; font-size: 12px; }
  .wiz-rail .wiz-pill.is-current { font-size: 13px; gap: 7px; padding: 0 12px 0 6px; }
  .g3-rail { margin-bottom: 10px; }
  .wiz-head { gap: 8px 10px; } .wiz-head h1 { font-size: 24px; letter-spacing: -.6px; }
}
/* — Statistiche: grafico della settimana — */
.wr-chart { margin-top: 12px; padding: 14px 14px 10px; border-radius: 14px; border: 1px solid var(--line); background: var(--sunken); }
.wr-bars { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; align-items: end; }
.wr-col { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; }
.wr-pair { display: flex; align-items: flex-end; justify-content: center; gap: 4px; height: 84px; width: 100%; border-bottom: 1px solid var(--line); }
.wr-pair i { display: block; width: min(22px, 38%); min-height: 0; border-radius: 6px 6px 0 0; background: linear-gradient(180deg, var(--cyan), var(--blue)); box-shadow: 0 0 14px rgba(46,139,255,.45); }
.wr-pair i.is-prev, .wr-key i.is-prev { background: var(--line-strong); box-shadow: none; }
.wr-col b { font-size: 15px; } .wr-col small { color: var(--faint); font-size: 11.5px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wr-key { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 8px 0 0; color: var(--faint); font-size: 12px; }
.wr-key span { display: inline-flex; align-items: center; gap: 6px; } .wr-key i { width: 10px; height: 10px; border-radius: 3px; background: linear-gradient(180deg, var(--cyan), var(--blue)); }
/* — Domanda sulla scheda tecnica — */
.sk-actions { flex-direction: column; align-items: stretch; } .sk-actions .btn { min-height: 52px; font-size: 16px; }

/* ═══════ Misure ═══════ */
/* elenco: righe pulite su due righe, pezzi e data a destra */
.ms-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto 12px; gap: 12px; min-height: 68px; transition: border-color .15s, background .15s; }
.ms-row:hover, .ms-row:active { border-color: var(--blue); background: var(--panel-2); }
.ms-main { gap: 2px; } .ms-main b { font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ms-main small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ms-inq { color: #7FD6A0; font-size: 12px; font-weight: 600; }
.ms-meta { min-width: 44px; } .ms-when { white-space: nowrap; } .ms-go { color: var(--faint); font-size: 18px; }
@media (max-width: 480px) { .ms-row { grid-template-columns: minmax(0, 1fr) auto 12px; padding: 12px 14px; } .ms-when { display: none; } }
/* scheda: modalità misura a tutto schermo */
.ms-fbar { position: sticky; top: 0; z-index: 25; display: flex; align-items: center; gap: 10px; margin: -6px -4px 0; padding: 8px 10px; border-radius: 16px; border: 1px solid rgba(120,160,220,.2);
  background: rgba(8,17,34,.62); backdrop-filter: blur(20px) saturate(1.5); -webkit-backdrop-filter: blur(20px) saturate(1.5); }
.ms-fback { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; border-radius: 12px; border: 1px solid var(--line); color: var(--ink); text-decoration: none; font-size: 20px; }
.ms-ftitle { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.ms-ftitle b { font-family: var(--display); font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .ms-ftitle small { color: var(--faint); font-size: 12px; }
.ms-sync { flex: 0 0 auto; color: #7FD6A0; font-size: 12.5px; font-weight: 600; white-space: nowrap; } .ms-sync.is-phone { color: var(--amber); }
@media (min-width: 861px) { .ms-fbar { top: 84px; } }
@media (max-width: 860px) {
  body.ms-focus .topbar, body.ms-focus .bottom-nav, body.ms-focus .ms-top { display: none; }
  body.ms-focus .ms-form { padding-top: calc(10px + env(safe-area-inset-top, 0px)); padding-bottom: 130px !important; gap: 12px; }
  body.ms-focus .ms-fbar { top: calc(8px + env(safe-area-inset-top, 0px)); margin: 0; }
  body.ms-focus .ms-bar { bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
}
/* testata della scheda riassunta in una riga */
.ms-headsum { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 60px; padding: 10px 14px; border-radius: 16px; border: 1px solid var(--line); background: var(--panel); color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.ms-headsum:hover { border-color: var(--line-strong); }
.ms-headsum span { flex: 1; min-width: 0; display: flex; flex-direction: column; } .ms-headsum b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ms-headsum small { color: var(--faint); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .ms-headsum em { font-style: normal; color: var(--link); }
.ms-head-foot { display: flex; justify-content: space-between; gap: 8px; }
/* pezzi a fisarmonica: aperto solo quello su cui si lavora */
.ms-sum { display: grid; grid-template-columns: 30px 34px minmax(0, 1fr) 14px; gap: 10px; align-items: center; width: 100%; min-height: 62px; margin-top: 0; padding: 10px 14px; border-radius: 16px; border: 1px solid var(--line); background: var(--panel); color: var(--ink); font: inherit; text-align: left; cursor: pointer; scroll-margin-top: 84px; }
.ms-sum:hover, .ms-sum:active { border-color: var(--blue); }
.ms-sum-ic svg { width: 32px; height: 32px; color: var(--muted); display: block; }
.ms-sum-t { display: flex; flex-direction: column; min-width: 0; } .ms-sum-t b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ms-sum-t small { color: var(--faint); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .ms-sum em { font-style: normal; color: var(--faint); }
.ms-sum.is-todo .ms-n { background: transparent; color: var(--amber); box-shadow: inset 0 0 0 2px var(--amber); } .ms-sum.is-todo small { color: var(--amber); }
.ms-item { margin-top: 0; scroll-margin-top: 84px; }
.ms-item.is-open { border-color: var(--blue); box-shadow: 0 0 0 1px rgba(46,139,255,.35), 0 0 34px rgba(46,139,255,.16); }
.ms-item-h { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; padding: 0; border: 0; background: none; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.ms-item-h b { flex: 1; min-width: 0; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ms-tipo[aria-pressed="true"], .ms-anta:not(.is-fix), .sys-swatch[aria-pressed="true"] { transition: box-shadow .15s, border-color .15s; }
.ms-tipo[aria-pressed="true"] { box-shadow: 0 0 0 2px rgba(46,139,255,.3), 0 0 18px rgba(46,139,255,.3); }
/* barra delle azioni: ＋ pezzo, PDF, una sola azione principale */
.ms-bar { grid-template-columns: 62px 62px minmax(0, 1fr); background: rgba(8,17,34,.62); backdrop-filter: blur(22px) saturate(1.5); -webkit-backdrop-filter: blur(22px) saturate(1.5); border-color: rgba(120,160,220,.24); border-radius: 20px; box-shadow: 0 18px 44px rgba(0,0,0,.5); }
.ms-bar.no-quote { grid-template-columns: 62px minmax(0, 1fr); }
.ms-bar .ms-bar-add, .ms-bar .ms-bar-pdf { flex-direction: column; gap: 0; padding: 0; min-height: 52px; }
.ms-bar .ms-bar-add span { font-size: 22px; line-height: 1; color: var(--cyan); } .ms-bar small { font-size: 10.5px; font-weight: 500; color: var(--muted); }
.ms-bar.no-quote .ms-bar-pdf { flex-direction: row; gap: 8px; } .ms-bar.no-quote .ms-bar-pdf small { font-size: 15px; font-weight: 600; color: inherit; }
.ms-bar .btn-primary { min-height: 52px; font-size: 16px; }

/* ritocchi dalla prova su telefono e tablet */
@media (min-width: 561px) { .kpis:has(> :nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 561px) and (max-width: 860px) { .kpi { padding: 16px; } .kpi-link b { font-size: 34px; } }
@media (max-width: 480px) {
  .ms-bar { grid-template-columns: 54px 54px minmax(0, 1fr); gap: 6px; padding: 8px; }
  .ms-bar.no-quote { grid-template-columns: 54px minmax(0, 1fr); }
  .ms-bar .btn-primary { font-size: 15px; padding: 0 8px; } .ms-arrow { display: none; }
  .ms-item-up { display: none; } .ms-item-act .btn-sm { padding: 0 10px; }
  .crm-row .mini-avatar { display: none; } .crm-row .crm-item { grid-template-columns: minmax(0, 1fr); padding-left: 16px; }
  .crm-quick a { width: 42px; height: 42px; }
  .wiz-head h1, .g3-top h1 { font-size: 22px; }
}
.ev-more { min-width: 34px; font-size: 16px !important; letter-spacing: 1px; }
@media (min-width: 861px) { .ms-fbar { top: 76px; } }

/* Ambiente di prova: fascia sempre visibile, per non confonderlo con l'app vera */
html.is-prova body::after { content: "AMBIENTE DI PROVA · i dati sono quelli veri"; position: fixed; left: 50%; top: calc(4px + env(safe-area-inset-top, 0px)); transform: translateX(-50%); z-index: 9999; padding: 3px 12px; border-radius: 999px;
  background: #FFC266; color: #2B1B00; font: 700 11px/1.4 Inter, Arial, sans-serif; letter-spacing: .04em; white-space: nowrap; pointer-events: none; box-shadow: 0 4px 14px rgba(0,0,0,.4); }
@media print { html.is-prova body::after { display: none; } }
