:root{--accent:#0e7490;--accent-soft:#cffafe}
.side{background:#071c22}
.kanban{display:grid;grid-template-columns:repeat(5,minmax(168px,1fr));gap:14px;overflow-x:auto;padding-bottom:6px;align-items:start}
.col{background:#eef1f5;border-radius:12px;padding:8px;min-width:0;display:flex;flex-direction:column;gap:8px;min-height:240px;transition:background .15s,box-shadow .15s}
.col.over{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}
.col-h{display:flex;align-items:center;gap:8px;padding:2px 4px 6px}
.col-h b{font-size:13px}
.col-h .n{background:#fff;border-radius:20px;padding:0 8px;font-size:11.5px;font-weight:700;color:var(--ink-2)}
.col-h .sum{margin-left:auto;font-size:12px;color:var(--ink-3);font-weight:600}
.col-h i{width:8px;height:8px;border-radius:50%;flex:none}
.deal{background:#fff;border-radius:10px;padding:11px 12px;box-shadow:var(--shadow);cursor:grab;border:1px solid transparent;display:flex;flex-direction:column;gap:6px}
.deal:hover{border-color:var(--line-2)}
.deal.dragging{opacity:.4}
.deal b{font-size:13.5px}
.deal .o{font-size:12.5px;color:var(--ink-2)}
.deal .f{display:flex;align-items:center;gap:6px;font-size:12px;flex-wrap:wrap}
.deal .f .muted{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.deal .v{font-weight:700;margin-left:auto}
.deal .avatar{width:22px;height:22px;font-size:10px}
@media (max-width:760px){.kanban{grid-template-columns:repeat(5,minmax(240px,82vw));scroll-snap-type:x mandatory}.col{scroll-snap-align:start}.hint{display:block}}
/* editor */
.ed-grid{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:20px;align-items:start}
@media (max-width:1100px){.ed-grid{grid-template-columns:minmax(0,1fr)}}
.lines{width:100%;border-collapse:collapse}
.lines th{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);font-weight:600}
.lines td{padding:6px;border-bottom:1px solid var(--line);vertical-align:top}
.lines .input{padding:7px 8px}
.lines .n{width:62px}.lines .p{width:92px}.lines .s{width:58px}
.lines .tot{width:100px;text-align:right;font-weight:600;padding-top:14px;white-space:nowrap}
.del{border:0;background:transparent;color:var(--ink-3);cursor:pointer;font-size:18px;padding:6px}
.del:hover{color:var(--bad)}
.cat-btns{display:flex;flex-wrap:wrap;gap:6px}
.cat-btns button{border:1px dashed var(--line-2);background:#fff;border-radius:8px;padding:6px 10px;font-size:12.5px;cursor:pointer;text-align:left}
.cat-btns button:hover{border-color:var(--accent);color:var(--accent)}
.totals{display:flex;flex-direction:column;gap:8px}
.totals div{display:flex;justify-content:space-between}
.totals .big{font-size:22px;font-weight:800;border-top:1px solid var(--line);padding-top:10px;margin-top:4px}
@media (max-width:760px){
  .lines thead{display:none}
  .lines,.lines tbody,.lines tr,.lines td{display:block;width:100%}
  .lines .input{width:100%;min-width:0}
  .lines tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:6px;padding:10px 0;border-bottom:1px solid var(--line)}
  .lines td{border:0;padding:0;width:auto!important}
  .lines td.d{grid-column:1/-1}
  .lines td.tot{grid-column:1/4;text-align:left;padding-top:0}
  .lines .n,.lines .p,.lines .s{width:100%}
  .lines td[data-l]::before{content:attr(data-l);display:block;font-size:11px;font-weight:600;color:var(--ink-3);margin-bottom:2px}
  .lines td.d[data-l]::before{display:none}
  .lines .del{margin-top:14px}
}
/* stampa */
.print-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.doc{background:#fff;width:100%;max-width:820px;margin:0 auto;padding:48px 52px;box-shadow:var(--shadow-lg);border-radius:4px;font-size:13px;color:#1b2430}
.doc-h{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:22px;border-bottom:3px solid #0e7490;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:12px}
.logo b{font-size:22px;letter-spacing:-.02em;color:#0e3a48;display:block;line-height:1}
.logo small{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#0e7490;font-weight:700}
.doc-h .az{text-align:right;font-size:11.5px;color:#556;line-height:1.55}
.doc-meta{display:flex;justify-content:space-between;gap:20px;margin:24px 0;flex-wrap:wrap}
.doc-meta h2{font-size:24px;color:#0e3a48}
.doc-meta .box{background:#f3f7f9;border-radius:8px;padding:12px 16px;min-width:240px}
.doc-meta .box small{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#6b7785;font-weight:700;margin-bottom:3px}
.doc table{width:100%;border-collapse:collapse;margin-top:6px}
.doc th{background:#0e3a48;color:#fff;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;font-weight:600}
.doc td{padding:9px 10px;border-bottom:1px solid #e5eaef;vertical-align:top}
.doc .r{text-align:right;white-space:nowrap}
.doc-tot{display:flex;justify-content:flex-end;margin-top:14px}
.doc-tot table{width:280px}
.doc-tot td{border:0;padding:4px 10px}
.doc-tot tr.g td{font-size:17px;font-weight:800;color:#0e3a48;border-top:2px solid #0e3a48;padding-top:8px}
.doc-cond{margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:24px;font-size:11.5px;color:#556}
.doc-cond h4{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#0e3a48;margin-bottom:6px}
.sign{border-top:1px solid #9aa5b1;margin-top:44px;padding-top:4px;font-size:11px;color:#6b7785}
.doc-foot{margin-top:28px;padding-top:12px;border-top:1px solid #e5eaef;font-size:10.5px;color:#8a95a1;text-align:center}
@media (max-width:760px){.doc{padding:22px 18px}.doc-h .az{text-align:left}.doc-cond{grid-template-columns:1fr}.doc .hide-s{display:none}.doc-meta .box{min-width:0;width:100%}}
@media print{
  @page{size:A4;margin:12mm}
  body{background:#fff}
  .side,.topbar,.print-bar,.demo-badge,.demo-back{display:none!important}
  .app{display:block}
  .content{padding:0}
  .doc{box-shadow:none;padding:0;max-width:none;border-radius:0}
  .doc th{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .doc-meta .box{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
