/* ============================================================================
   DOCKS STRUMENTI — foglio di stile condiviso
   ============================================================================
   Linguaggio visivo delle schede tecniche prodotto Docks ("svizzero"):
   Helvetica, fondo carta, titoli di sezione come barre piene con testo bianco,
   filetti al posto delle cornici, cifre tabulari, filigrana verticale.

   Usato da:  taglio profili/  ·  taglio lastre/   (file identico in entrambi)
   Prefisso classi: .dk-   ·   Tema: classe sul <body> (.dk-t-profili | .dk-t-lastre)

   Palette per categoria = quella dei listini
   (LISTINO_2026/script/genera_listini.py, _PALETTE_DEF, OKLCH):
     profili (modulari incastro) #007D61   ·   lastre (alveolari) #22749E
   ========================================================================== */

/* ---------------------------------------------------------------- token --- */
:root {
  /* inchiostri — scala unica, contrasto verificato su carta bianca */
  --dk-ink:    #141414;   /* 16.9:1  testo principale       */
  --dk-mut:    #4d4f52;   /*  8.6:1  etichette, testo minore */
  --dk-soft:   #6b6e73;   /*  5.2:1  placeholder, note       */
  --dk-faint:  #8a8c90;   /*  3.4:1  solo testo grande/decor */
  --dk-hair:   #c9cacd;   /* filetti                          */
  --dk-hair-2: #e2e3e6;   /* filetti interni tabella          */
  --dk-paper:  #ffffff;
  --dk-page:   #e9eaec;
  --dk-well:   #f5f6f7;   /* fondo campi raggruppati          */

  /* accento — sovrascritto dal tema */
  --dk-ac:     #1A3A5C;
  --dk-ac-d:   #12293f;
  --dk-tint:   #eef2f6;
  --dk-ring:   rgba(26, 58, 92, .28);

  /* stati semantici */
  --dk-warn-bg: #fdf4e3;  --dk-warn-line: #e3c78d;  --dk-warn-ink: #6d4a0f;
  --dk-err-bg:  #fbecec;  --dk-err-line:  #e0b4b4;  --dk-err-ink:  #8c2626;
  --dk-ok-bg:   #eaf6f0;  --dk-ok-line:   #b4ddc7;  --dk-ok-ink:   #1b5a3f;
  --dk-info-bg: #eaf3fa;  --dk-info-line: #b6d5ea;  --dk-info-ink: #14507a;

  /* schema di taglio */
  --dk-pz:      #d6e8f4;  --dk-pz-line:   #6f9dbc;
  --dk-pz2:     #e6e2f2;  --dk-pz2-line:  #8d86b8;
  --dk-off:     #dcefe4;  --dk-off-line:  #7fbb99;
  --dk-waste:   #f6e2e2;  --dk-waste-line:#cf9c9c;

  /* tipografia */
  --dk-font: "Helvetica Neue", Helvetica, Arial, "Segoe UI", sans-serif;
  --dk-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* misure */
  --dk-r:    3px;                       /* raggio unico, quasi squadrato */
  --dk-gap:  clamp(22px, 3.4vw, 38px);  /* respiro fra sezioni           */
  --dk-shadow: 0 1px 3px rgba(20,20,20,.07), 0 12px 40px rgba(20,20,20,.07);

  /* scala z semantica */
  --dk-z-sticky: 100;
  --dk-z-overlay: 200;

  --dk-ease: cubic-bezier(.22,.9,.28,1);   /* ease-out-quart */
}

.dk-t-profili {
  --dk-ac: #007D61; --dk-ac-d: #005f4a; --dk-tint: #E7F8F2;
  --dk-ring: rgba(0, 125, 97, .30);
}
.dk-t-lastre {
  --dk-ac: #22749E; --dk-ac-d: #1a5b7c; --dk-tint: #E7F6FF;
  --dk-ring: rgba(34, 116, 158, .30);
}

/* ----------------------------------------------------------------- base --- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--dk-page);
  color: var(--dk-ink);
  font-family: var(--dk-font);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, p { margin: 0; }
a { color: var(--dk-ac-d); }

/* --------------------------------------------------------- barra azioni --- */
.dk-bar {
  position: sticky; top: 0; z-index: var(--dk-z-sticky);
  background: var(--dk-paper);
  border-bottom: 1px solid var(--dk-hair);
  box-shadow: 0 1px 0 rgba(20,20,20,.03);
}
.dk-bar__in {
  max-width: 1120px; margin: 0 auto;
  display: flex; align-items: center; gap: 16px;
  padding: 10px 40px;
}
.dk-bar__logo { height: 26px; width: auto; display: block; flex: none; }
.dk-bar__name {
  font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: var(--dk-ink); white-space: nowrap;
}
.dk-bar__name b { color: var(--dk-ac); font-weight: 700; }
.dk-bar__actions { margin-left: auto; display: flex; gap: 8px; }

/* -------------------------------------------------------------- foglio --- */
.dk-sheet {
  position: relative; overflow: hidden;
  max-width: 1120px; margin: 26px auto 40px;
  background: var(--dk-paper);
  box-shadow: var(--dk-shadow);
  padding: 34px 40px 40px;
}
.dk-sheet > :not(.dk-wm) { position: relative; z-index: 1; }

.dk-wm {
  position: absolute; top: 150px; right: -14px; z-index: 0;
  font-weight: 800; font-size: 76px; line-height: .72; letter-spacing: -.05em;
  color: var(--dk-ac); opacity: .07;
  writing-mode: vertical-rl; text-orientation: mixed; transform: rotate(180deg);
  white-space: nowrap; pointer-events: none; user-select: none;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}

/* -------------------------------------------------------- testata pagina -- */
.dk-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.dk-head__t { min-width: 0; }
.dk-head h1 {
  font-size: clamp(1.7rem, 3.4vw, 2.35rem); font-weight: 800; letter-spacing: -.025em;
  line-height: 1.02; text-wrap: balance;
}
.dk-head__sub { margin-top: 8px; color: var(--dk-mut); font-size: .92rem; max-width: 68ch; }
.dk-head__brand {
  text-align: right; flex: none;
  font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--dk-mut); line-height: 1.5;
}
.dk-head__brand em { display: block; font-style: normal; font-weight: 400; color: var(--dk-soft); }
.dk-rule { height: 2px; background: var(--dk-ac); margin: 14px 0 0; }

/* -------------------------------------------------------------- sezioni --- */
.dk-sec { margin-top: var(--dk-gap); }
.dk-tbar {
  display: inline-block;
  background: var(--dk-ac); color: #fff;
  font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  padding: 6px 15px;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.dk-tbar--ink { background: var(--dk-ink); }
.dk-tag {
  display: inline-block; margin-left: 8px; vertical-align: middle;
  font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--dk-mut); border: 1px solid var(--dk-hair); padding: 3px 8px;
}
/* dentro la barra scura il tag deve restare leggibile */
.dk-tbar .dk-tag { color: #fff; border-color: rgba(255,255,255,.55); opacity: .9; }
.dk-hint {
  margin: 13px 0 16px; max-width: 72ch;
  color: var(--dk-mut); font-size: .875rem; line-height: 1.55; text-wrap: pretty;
}
.dk-hint b, .dk-hint em { font-style: normal; font-weight: 700; color: var(--dk-ink); }
.dk-hint code {
  font-family: var(--dk-mono); font-size: .85em;
  background: var(--dk-tint); padding: 1px 5px;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}

/* --------------------------------------------------------------- campi --- */
.dk-grid { display: grid; gap: 14px 20px; grid-template-columns: repeat(auto-fit, minmax(196px, 1fr)); }

.dk-rows { display: flex; flex-direction: column; }
.dk-row {
  display: grid; gap: 12px 18px; align-items: end;
  padding: 14px 0; border-bottom: 1px solid var(--dk-hair-2);
}
.dk-rows .dk-row:first-child { border-top: 1px solid var(--dk-hair); }

/* varianti di riga delle due applicazioni (colonne del modulo di inserimento) */
.dk-row--profilo    { grid-template-columns: 1.3fr 1fr 1.4fr .8fr .8fr auto; }   /* taglio profili */
.dk-row--parete     { grid-template-columns: 1.4fr 1fr 1fr 1fr auto; }
.dk-row--formato    { grid-template-columns: 1.7fr 1fr 1fr .9fr .9fr auto; }     /* taglio lastre  */
.dk-row--superficie { grid-template-columns: 1.2fr 1fr 1fr .8fr 1fr .9fr .9fr auto; }
.dk-row--pezzo      { grid-template-columns: 1.5fr 1fr 1fr 1fr auto; }
.dk-row--ritaglio   { grid-template-columns: 1.4fr 1fr 1fr 1fr auto; }
@media (max-width: 980px) {
  .dk-row--superficie, .dk-row--profilo, .dk-row--formato { grid-template-columns: 1fr 1fr 1fr; }
}

.dk-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.dk-field--wide { grid-column: 1 / -1; }
.dk-field__lbl { font-size: .74rem; font-weight: 500; color: var(--dk-mut); letter-spacing: .01em; }
.dk-field input,
.dk-field select {
  width: 100%; min-width: 0;
  font: inherit; font-size: .95rem; color: var(--dk-ink);
  background: var(--dk-paper);
  border: 1px solid var(--dk-hair); border-radius: var(--dk-r);
  padding: 9px 11px;
  appearance: none;
  transition: border-color .16s var(--dk-ease), box-shadow .16s var(--dk-ease);
}
.dk-field input[type="number"] { font-variant-numeric: tabular-nums; }
.dk-field select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%234d4f52' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center; padding-right: 30px;
}
.dk-field input::placeholder { color: var(--dk-soft); }
.dk-field input:hover, .dk-field select:hover { border-color: var(--dk-soft); }
.dk-field input:focus-visible, .dk-field select:focus-visible {
  outline: none; border-color: var(--dk-ac); box-shadow: 0 0 0 3px var(--dk-ring);
}
.dk-field input:disabled, .dk-field select:disabled { background: var(--dk-well); color: var(--dk-soft); }

.dk-field textarea {
  width: 100%; min-width: 0; resize: vertical; min-height: 96px;
  font: inherit; font-size: .85rem; font-family: var(--dk-mono); color: var(--dk-ink);
  background: var(--dk-paper); border: 1px solid var(--dk-hair); border-radius: var(--dk-r);
  padding: 10px 11px; line-height: 1.5;
  transition: border-color .16s var(--dk-ease), box-shadow .16s var(--dk-ease);
}
.dk-field textarea::placeholder { color: var(--dk-soft); }
.dk-field textarea:focus-visible { outline: none; border-color: var(--dk-ac); box-shadow: 0 0 0 3px var(--dk-ring); }
.dk-field input[type="file"] {
  padding: 7px 9px; font-size: .82rem; color: var(--dk-mut);
  background: var(--dk-well); cursor: pointer;
}
.dk-field input[type="file"]::file-selector-button {
  font: inherit; font-size: .78rem; font-weight: 700; color: var(--dk-ink);
  background: var(--dk-paper); border: 1px solid var(--dk-hair); border-radius: var(--dk-r);
  padding: 5px 11px; margin-right: 10px; cursor: pointer;
}

/* scelta fra due modi di lavorare: due schede, una sola attiva */
.dk-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 20px; }
.dk-choice label {
  display: flex; gap: 11px; align-items: flex-start; cursor: pointer;
  padding: 14px 16px; background: var(--dk-paper);
  border: 1px solid var(--dk-hair); border-radius: var(--dk-r);
  transition: border-color .16s var(--dk-ease), background .16s var(--dk-ease), box-shadow .16s var(--dk-ease);
}
.dk-choice label:hover { border-color: var(--dk-soft); }
.dk-choice input { width: 17px; height: 17px; margin: 2px 0 0; flex: none; accent-color: var(--dk-ac); cursor: pointer; }
.dk-choice input:focus-visible { outline: 2px solid var(--dk-ac); outline-offset: 2px; }
.dk-choice label.is-sel {
  border-color: var(--dk-ac); background: var(--dk-tint);
  box-shadow: inset 0 0 0 1px var(--dk-ac);
}
.dk-choice b { display: block; font-size: .92rem; font-weight: 700; margin-bottom: 2px; }
.dk-choice span { display: block; font-size: .82rem; color: var(--dk-mut); line-height: 1.45; }
@media (max-width: 720px) { .dk-choice { grid-template-columns: 1fr; } }

/* blocco richiudibile (es. pannello di importazione) */
.dk-details { border: 1px solid var(--dk-hair-2); border-radius: var(--dk-r); margin-bottom: 16px; }
.dk-details > summary {
  cursor: pointer; list-style: none; display: flex; align-items: center; gap: 9px;
  padding: 10px 14px; font-size: .8rem; font-weight: 700; color: var(--dk-ac-d);
}
.dk-details > summary::-webkit-details-marker { display: none; }
.dk-details > summary::before { content: "\25B8"; font-size: .8em; transition: transform .16s var(--dk-ease); }
.dk-details[open] > summary::before { transform: rotate(90deg); }
.dk-details[open] > summary { border-bottom: 1px solid var(--dk-hair-2); }
.dk-details__body { padding: 14px; display: flex; flex-direction: column; gap: 14px; }

/* barra di comandi secondari (import, svuota, modello…) */
.dk-toolbar { display: flex; flex-wrap: wrap; gap: 12px 14px; align-items: flex-end; }
.dk-toolbar .dk-field { flex: 0 1 190px; }
.dk-toolbar .dk-field--grow { flex: 1 1 240px; }

/* riga di totali sotto un elenco */
.dk-sum {
  display: flex; flex-wrap: wrap; gap: 6px 20px;
  padding: 10px 0 0; font-size: .8rem; color: var(--dk-mut); font-variant-numeric: tabular-nums;
}
.dk-sum b { color: var(--dk-ink); font-weight: 700; }

.dk-check {
  display: flex; align-items: flex-start; gap: 9px;
  font-size: .875rem; color: var(--dk-ink); padding-top: 4px; cursor: pointer;
}
.dk-check input {
  width: 17px; height: 17px; margin: 1px 0 0; flex: none;
  accent-color: var(--dk-ac); cursor: pointer;
}
.dk-check input:focus-visible { outline: 2px solid var(--dk-ac); outline-offset: 2px; }

.dk-del {
  align-self: end; display: grid; place-items: center;
  width: 36px; height: 36px; flex: none;
  border: 1px solid var(--dk-hair); border-radius: var(--dk-r);
  background: var(--dk-paper); color: var(--dk-soft);
  font-size: 17px; line-height: 1; cursor: pointer;
  transition: color .16s var(--dk-ease), border-color .16s var(--dk-ease), background .16s var(--dk-ease);
}
.dk-del:hover { color: var(--dk-err-ink); border-color: var(--dk-err-line); background: var(--dk-err-bg); }
.dk-del:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--dk-ring); }

/* ------------------------------------------------------------- bottoni --- */
.dk-btn {
  font: inherit; font-size: .875rem; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase;
  border: 1px solid transparent; border-radius: var(--dk-r);
  padding: 9px 18px; cursor: pointer; white-space: nowrap;
  transition: background .16s var(--dk-ease), border-color .16s var(--dk-ease),
              color .16s var(--dk-ease), box-shadow .16s var(--dk-ease);
}
.dk-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--dk-ring); }
.dk-btn:active { transform: translateY(1px); }

.dk-btn--primary { background: var(--dk-ac); color: #fff; }
.dk-btn--primary:hover { background: var(--dk-ac-d); }

.dk-btn--outline { background: var(--dk-paper); color: var(--dk-ink); border-color: var(--dk-ink); }
.dk-btn--outline:hover { background: var(--dk-ink); color: #fff; }
.dk-btn--outline:disabled {
  color: var(--dk-soft); border-color: var(--dk-hair); background: var(--dk-paper);
  cursor: not-allowed; transform: none;
}

.dk-btn--ghost {
  background: none; color: var(--dk-ac-d); border-color: var(--dk-hair);
  text-transform: none; letter-spacing: 0; font-weight: 600;
}
.dk-btn--ghost:hover { border-color: var(--dk-ac); background: var(--dk-tint); }
.dk-btn--add { margin-top: 14px; padding: 8px 14px; font-size: .82rem; }
.dk-btn--add span { color: var(--dk-ac); font-weight: 800; margin-right: 5px; }

/* --------------------------------------------------------- barra calcolo -- */
.dk-run {
  display: flex; flex-wrap: wrap; gap: 18px 26px; align-items: flex-end; justify-content: space-between;
  border-top: 1px solid var(--dk-hair); padding-top: 16px;
}
.dk-run__campi { display: flex; gap: 18px; flex-wrap: wrap; }
.dk-run__campi .dk-field input { width: 160px; }
.dk-run__actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* ------------------------------------------------------------ risultati --- */
.dk-out { margin-top: var(--dk-gap); display: flex; flex-direction: column; gap: var(--dk-gap); }

.dk-empty {
  border: 1px dashed var(--dk-hair); padding: 32px 24px; text-align: center; color: var(--dk-mut);
}
.dk-empty b { display: block; color: var(--dk-ink); margin-bottom: 4px; font-size: .95rem; }

.dk-panel__head {
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
  border-bottom: 1px solid var(--dk-ink); padding-bottom: 6px; margin-bottom: 16px;
}
.dk-panel__head h2 {
  font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--dk-ink);
}
.dk-meta { font-size: .72rem; color: var(--dk-mut); letter-spacing: .04em; }
.dk-meta::before { content: "·"; margin-right: 8px; color: var(--dk-hair); }

/* flex, non grid: l'ultima riga di dati riempie la larghezza invece di
   lasciare celle vuote quando il conto non e multiplo delle colonne */
.dk-stats {
  display: flex; flex-wrap: wrap; gap: 1px;
  background: var(--dk-hair-2); border: 1px solid var(--dk-hair-2);
  margin-bottom: 18px;
}
.dk-stat { background: var(--dk-paper); padding: 11px 14px; flex: 1 1 190px; min-width: 0; }
.dk-stat__v { display: block; font-size: 1.12rem; font-weight: 800; color: var(--dk-ink); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.dk-stat__l { display: block; font-size: .7rem; color: var(--dk-mut); margin-top: 2px; }
.dk-stat--key .dk-stat__v { color: var(--dk-ac); }

/* note / avvisi — fondo tinto e filetto pieno, mai barra laterale */
.dk-note {
  border: 1px solid var(--dk-warn-line); background: var(--dk-warn-bg); color: var(--dk-warn-ink);
  padding: 11px 14px; font-size: .85rem; margin-top: 14px;
}
.dk-note b { font-weight: 700; }
.dk-note ul { margin: 6px 0 0; padding-left: 18px; }
.dk-note li + li { margin-top: 3px; }
.dk-note--err  { border-color: var(--dk-err-line);  background: var(--dk-err-bg);  color: var(--dk-err-ink); }
.dk-note--info { border-color: var(--dk-info-line); background: var(--dk-info-bg); color: var(--dk-info-ink); }
.dk-note--ok   { border-color: var(--dk-ok-line);   background: var(--dk-ok-bg);   color: var(--dk-ok-ink); }

/* --------------------------------------------------- schemi di taglio ----- */
.dk-scheme { margin: 16px 0 20px; }
.dk-scheme__cap {
  display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap;
  font-size: .76rem; color: var(--dk-mut); font-variant-numeric: tabular-nums;
  border-bottom: 1px solid var(--dk-hair-2); padding-bottom: 5px; margin-bottom: 7px;
}
.dk-scheme__cap b { color: var(--dk-ink); font-weight: 700; letter-spacing: .02em; }
.dk-scheme svg { display: block; width: 100%; height: auto; }
.dk-scheme--bar svg { height: 34px; }
.dk-scheme__map { margin-top: 6px; font-size: .78rem; color: var(--dk-mut); line-height: 1.6; }
.dk-scheme__map b { color: var(--dk-ink); font-weight: 700; }

svg .dk-fill    { fill: var(--dk-well);       stroke: var(--dk-hair);       stroke-width: 3; }
svg .dk-piece   { fill: var(--dk-pz);         stroke: var(--dk-pz-line);    stroke-width: 3; }
svg .dk-piece--joint { fill: #f7e6c8;         stroke: #c9a04a;              stroke-width: 3; }
svg .dk-piece--rot   { fill: var(--dk-pz2);   stroke: var(--dk-pz2-line);   stroke-width: 3; }
svg .dk-off     { fill: var(--dk-off);        stroke: var(--dk-off-line);   stroke-width: 3; }
svg .dk-waste   { fill: var(--dk-waste);      stroke: var(--dk-waste-line); stroke-width: 3; }
svg .dk-trim    { fill: none; stroke: #c9a227; stroke-width: 3; stroke-dasharray: 24 16; }
svg .dk-frame   { fill: none; stroke: var(--dk-hair); stroke-width: 1; }
svg .dk-txt     { fill: var(--dk-ink); font-weight: 700; }
svg .dk-txt--mut{ fill: var(--dk-mut); font-weight: 500; }
svg text        { font-family: var(--dk-font); }
/* schema 1D: tratti sottili, il viewBox e in unita grafiche non in mm */
.dk-scheme--bar svg .dk-piece,
.dk-scheme--bar svg .dk-piece--joint,
.dk-scheme--bar svg .dk-off,
.dk-scheme--bar svg .dk-waste { stroke-width: 1; }
.dk-scheme--bar svg .dk-txt      { font-size: 11px; }
.dk-scheme--bar svg .dk-txt--mut { font-size: 11px; }

.dk-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 12px; font-size: .74rem; color: var(--dk-mut); }
.dk-legend span { display: inline-flex; align-items: center; gap: 6px; }
.dk-sw { width: 14px; height: 11px; border: 1px solid; display: inline-block; }
.dk-sw--pz    { background: var(--dk-pz);    border-color: var(--dk-pz-line); }
.dk-sw--joint { background: #f7e6c8;         border-color: #c9a04a; }
.dk-sw--rot   { background: var(--dk-pz2);   border-color: var(--dk-pz2-line); }
.dk-sw--off   { background: var(--dk-off);   border-color: var(--dk-off-line); }
.dk-sw--waste { background: var(--dk-waste); border-color: var(--dk-waste-line); }

/* ------------------------------------------------------------- tabelle --- */
.dk-tablewrap { overflow-x: auto; }
.dk-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.dk-table th, .dk-table td { text-align: left; padding: 7px 10px; border-bottom: 1px solid var(--dk-hair-2); }
.dk-table thead th {
  font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--dk-mut); border-bottom: 1px solid var(--dk-ink); white-space: nowrap;
}
.dk-table td.dk-n, .dk-table th.dk-n { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dk-table .dk-code { font-family: var(--dk-mono); font-size: .82em; color: var(--dk-ac-d); white-space: nowrap; }
.dk-table .dk-sub { display: block; color: var(--dk-mut); font-size: .82em; margin-top: 1px; }
.dk-table tbody tr:hover { background: var(--dk-well); }
.dk-table .dk-grp td {
  background: var(--dk-tint); font-weight: 700; color: var(--dk-ac-d);
  text-transform: uppercase; letter-spacing: .1em; font-size: .68rem;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.dk-table .dk-grp:hover td { background: var(--dk-tint); }
.dk-table .dk-tot td { font-weight: 700; border-top: 1px solid var(--dk-ink); border-bottom: none; }

/* ---------------------------------------------------------------- piede --- */
.dk-foot {
  max-width: 1120px; margin: 0 auto; padding: 0 40px 34px;
  color: var(--dk-soft); font-size: .76rem; letter-spacing: .02em;
}

/* --------------------------------------------------------------- moto ---- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .dk-btn:active { transform: none; }
}

/* --------------------------------------------------------- responsive --- */
@media (max-width: 1080px) { .dk-wm { display: none; } }
@media (max-width: 900px) {
  .dk-bar__in, .dk-sheet { padding-left: 26px; padding-right: 26px; }
  .dk-foot { padding-left: 26px; padding-right: 26px; }
}
@media (max-width: 720px) {
  body { font-size: 15px; }
  .dk-bar__in { padding: 9px 16px; gap: 10px; }
  .dk-bar__name { font-size: .64rem; letter-spacing: .1em; white-space: normal; }
  .dk-bar__actions .dk-btn { padding: 8px 12px; font-size: .78rem; }
  .dk-sheet { margin: 0; padding: 24px 16px 30px; box-shadow: none; }
  .dk-foot { padding: 0 16px 26px; }
  .dk-head { flex-direction: column; align-items: flex-start; gap: 12px; }
  .dk-head__brand { text-align: left; }
  .dk-row { grid-template-columns: 1fr 1fr !important; }
  .dk-del { grid-column: 1 / -1; justify-self: end; }
  .dk-field input, .dk-field select { font-size: 16px; }  /* evita lo zoom iOS */
  .dk-run { flex-direction: column; align-items: stretch; }
  .dk-run__campi .dk-field input { width: 100%; }
  .dk-run__actions { flex-direction: column; }
  .dk-run__actions .dk-btn { width: 100%; }
}
@media (max-width: 440px) {
  .dk-row { grid-template-columns: 1fr !important; }
}

/* ============================================================================
   STAMPA — documento operativo (schema di taglio + distinta)
   ========================================================================== */
.dk-print { display: none; }

@media print {
  @page { size: A4; margin: 12mm; }
  html, body { background: #fff; font-size: 10.5pt; }
  .dk-bar, .dk-sheet, .dk-foot { display: none !important; }
  .dk-print { display: block; }

  .dk-doc__h { font-size: 16pt; font-weight: 800; letter-spacing: -.02em; margin: 0 0 3px; }
  .dk-doc__cli { font-size: 11pt; font-weight: 700; margin: 2px 0 3px; letter-spacing: -.01em; }
  .dk-doc__sub { font-size: 8.5pt; color: #3a3b3d; margin: 0 0 4px; }
  /* casella da spuntare nella lista dei pezzi da ricavare */
  .dk-doc th.dk-spunta, .dk-doc td.dk-spunta { width: 30px; text-align: center; }
  .dk-doc td.dk-spunta { font-size: 13pt; line-height: 1; color: #55585c; }
  .dk-doc__rule { height: 2px; background: var(--dk-ac); margin: 0 0 14px;
                  -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  .dk-doc__sec { margin: 0 0 16px; page-break-inside: avoid; }
  .dk-doc__sec > h3 {
    display: inline-block; background: var(--dk-ac); color: #fff;
    font-size: 8pt; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    padding: 4px 12px; margin: 0 0 8px;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  .dk-doc__item { page-break-inside: avoid; margin-bottom: 13px; }
  .dk-doc__item h4 {
    font-size: 9.5pt; font-weight: 700; margin: 0 0 4px;
    border-bottom: 1px solid #141414; padding-bottom: 3px;
  }
  .dk-doc__item svg { width: 100%; height: auto; }
  .dk-doc__note { font-size: 8pt; color: #3a3b3d; margin: 3px 0 0; }
  .dk-doc__break { page-break-before: always; }
  /* taglio profili: intestazione di ogni barra + colonna note della distinta */
  .dk-doc__barra { font-weight: 700; font-size: 8.6pt; margin: 8px 0 3px; }
  .dk-doc__giunto { font-weight: 700; }
  .dk-doc__tot { margin-top: 10px; }

  .dk-doc table { border-collapse: collapse; width: 100%; margin: 5px 0 7px; }
  .dk-doc th, .dk-doc td { border: .5pt solid #8f9195; padding: 2.5px 6px; text-align: left; font-size: 8.4pt; }
  .dk-doc th { background: #ededee; font-size: 7.4pt; text-transform: uppercase; letter-spacing: .08em;
               -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .dk-doc td { font-variant-numeric: tabular-nums; }
  .dk-doc td.dk-n, .dk-doc th.dk-n { text-align: right; white-space: nowrap; }
  .dk-doc .dk-grp td { font-weight: 700; background: #f2f3f4; text-transform: uppercase;
                       letter-spacing: .08em; font-size: 7.6pt;
                       -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .dk-doc .dk-tot td { font-weight: 700; background: #ededee;
                       -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
