:root { color-scheme: light; --br: #C44800; --br-rgb: 196, 72, 0; --br-dk: #9a3600; --br-lt: #fff5f0; }
body.theme-det { --br: #1565c0; --br-rgb: 21, 101, 192; --br-dk: #0d47a1; --br-lt: #e3f2fd; }
body.theme-indet { --br: #C44800; --br-rgb: 196, 72, 0; --br-dk: #9a3600; --br-lt: #fff5f0; }
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Segoe UI', system-ui, sans-serif; background: #f0f2f5; height: 100vh; display: flex; flex-direction: column; overflow: hidden; }

/* LOGIN OVERLAY */
#loginOverlay { position: fixed; inset: 0; background: var(--br-dk); display: flex; align-items: center; justify-content: center; z-index: 9999; color: white; text-align: center; font-family: 'Segoe UI', sans-serif; }
.login-card { background: white; padding: 40px; border-radius: 16px; box-shadow: 0 20px 50px rgba(0,0,0,0.3); color: #333; width: 100%; max-width: 400px; }
.login-card h2 { margin-bottom: 20px; color: var(--br); }
.login-card input { width: 100%; padding: 12px; margin-bottom: 20px; border: 2px solid #eee; border-radius: 8px; font-size: 16px; text-align: center; }
.login-card button { width: 100%; padding: 12px; background: var(--br); color: white; border: none; border-radius: 8px; font-weight: 700; cursor: pointer; transition: 0.2s; }
.login-card button:hover { background: var(--br-dk); transform: translateY(-2px); }


.app-header { background: var(--br); color: white; padding: 9px 16px; display: flex; align-items: center; gap: 10px; flex-shrink: 0; box-shadow: 0 2px 6px rgba(0,0,0,0.25); }
.app-header h1 { font-size: 15px; font-weight: 700; }
.badge-org { background: rgba(255,255,255,0.2); padding: 2px 9px; border-radius: 20px; font-size: 10.5px; }
.tipo-badge { margin-left: auto; padding: 3px 11px; border-radius: 20px; font-size: 11.5px; font-weight: 700; transition: all .3s; background: var(--br-lt); color: var(--br); border: 1px solid var(--br); }

.main { display: grid; grid-template-columns: 358px 1fr; flex: 1; overflow: hidden; }

.form-panel { background: white; border-right: 1px solid #ddd; overflow-y: auto; padding: 11px 13px 16px; }
.form-panel::-webkit-scrollbar { width: 4px; }
.form-panel::-webkit-scrollbar-thumb { background: #ddd; border-radius: 2px; }

.sec { font-size: 9.5px; font-weight: 800; letter-spacing: 1px; color: var(--br); text-transform: uppercase; padding: 5px 0 4px; border-bottom: 2px solid var(--br); margin-bottom: 8px; margin-top: 13px; }
.sec:first-of-type { margin-top: 0; }

.fg { margin-bottom: 7px; }
.fg label { display: block; font-size: 9.5px; font-weight: 700; color: #555; margin-bottom: 2px; text-transform: uppercase; letter-spacing: 0.3px; }
.fg label .req { color: var(--br); }
.fg label small { text-transform: none; font-weight: 400; color: #999; letter-spacing: 0; }

input[type=text], input[type=date], input[type=number], input[type=email], input[type=tel], select {
  width: 100%; padding: 6px 8px; border: 1px solid #d0d4da; border-radius: 5px;
  font-size: 12px; font-family: inherit; color: #1a1a1a; background: #fafbfc; transition: border-color .15s;
}
input:focus, select:focus { outline: none; border-color: var(--br); background: white; box-shadow: 0 0 0 2px rgba(196,72,0,.1); }
input::placeholder { color: #bbb; }

.g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }

.toggle-row { display: flex; align-items: center; gap: 7px; background: #fafafa; border-radius: 5px; padding: 7px 9px; margin-bottom: 7px; cursor: pointer; border: 1px solid #ebebeb; }
.toggle-row:hover { background: #f5f5f5; }
.toggle-row input[type=checkbox] { width: 14px; height: 14px; cursor: pointer; accent-color: var(--br); flex-shrink: 0; }
.toggle-row label { font-size: 11px; font-weight: 600; color: #444; cursor: pointer; margin: 0; }

.calc-box { background: linear-gradient(135deg, var(--br-lt), #fffdfb); border-radius: 7px; padding: 8px 11px; margin: 5px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; border: 1px solid rgba(var(--br-rgb),.15); }
.calc-item { text-align: center; }
.calc-lbl { font-size: 9px; color: #888; text-transform: uppercase; letter-spacing: .5px; font-weight: 700; margin-bottom: 1px; }
.calc-val { font-size: 14px; font-weight: 800; color: var(--br); }

.info-nota { background: #fffbf0; border-left: 3px solid #ffc107; padding: 5px 8px; border-radius: 0 4px 4px 0; font-size: 10px; color: #6d4c1a; margin-bottom: 7px; line-height: 1.4; }

.actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 11px; padding-top: 10px; border-top: 1px solid #eee; }
button { padding: 8px; border: none; border-radius: 5px; font-weight: 700; font-size: 11px; cursor: pointer; transition: all .15s; display: flex; align-items: center; justify-content: center; gap: 4px; }
.btn-brand { background: var(--br); color: white; }
.btn-brand:hover { background: var(--br-dk); }
.btn-reset { background: #f0f2f5; color: #555; grid-column: span 2; border: 1px solid #dde0e4; }
.btn-reset:hover { background: #e4e7ec; }

.preview-panel { overflow-y: auto; padding: 18px 24px; background: #e8eaed; }
.preview-panel::-webkit-scrollbar { width: 5px; }
.preview-panel::-webkit-scrollbar-thumb { background: #bbb; border-radius: 3px; }

/* CONTRACT DOC */
.cd { background: white; max-width: 800px; margin: 0 auto; box-shadow: 0 2px 20px rgba(0,0,0,.12); font-family: 'Times New Roman', Times, serif; font-size: 12.5px; line-height: 1.5; color: #1a1a1a; }
.cd p { margin: 6px 0; }
.cd-hdr { border-bottom: 3px solid var(--br); padding: 18px 32px 14px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.cd-hdr-left h1 { font-size: 20px; color: var(--br); font-weight: 700; font-family: 'Segoe UI', sans-serif; margin-bottom: 3px; }
.cd-hdr-left p { font-size: 11.5px; color: #666; font-family: 'Segoe UI', sans-serif; margin: 2px 0; }
.cd-meta { background: #faf5f0; border-left: 4px solid var(--br); padding: 9px 16px; margin: 0 32px 12px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; font-family: 'Segoe UI', sans-serif; font-size: 10.5px; }
.cd-meta-lbl { font-weight: 700; color: var(--br); text-transform: uppercase; font-size: 9px; letter-spacing: .5px; margin-bottom: 1px; }
.cd-meta-val { color: #333; font-weight: 600; text-transform: uppercase; }
.cd-body { padding: 6px 32px 32px; }
.cd-title { text-align: center; margin: 18px 0 22px; }
.cd-title h2 { font-size: 16px; font-weight: bold; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 5px; }
.cd-num { font-size: 13px; color: #666; }
.parties-box { background: #f9f9f9; padding: 14px 18px; border-radius: 4px; margin: 18px 0; }
.party-intro { font-style: italic; color: #555; margin-bottom: 4px; font-size: 12px; }
.parties-box p { margin: 2px 0; }
.party { margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid #e8e8e8; }
.party:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.party-lbl { font-weight: 700; color: var(--br); font-size: 10px; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 4px; font-family: 'Segoe UI', sans-serif; }
.party-and { text-align: center; font-weight: 700; font-size: 13px; margin: 6px 0; color: #333; }
.party-table { border-collapse: collapse; width: 100%; margin: 2px 0; font-size: 12.5px; }
.party-table td { padding: 2px 8px 2px 0; vertical-align: top; border: none; }
.sep { text-align: center; margin: 14px 0; font-size: 14px; color: var(--br); font-weight: bold; }
.art-h { font-size: 12.5px; font-weight: bold; text-transform: uppercase; letter-spacing: .3px; margin: 18px 0 8px; padding-bottom: 3px; border-bottom: 1px solid var(--br); }
.art { margin-bottom: 10px; padding-left: 11px; border-left: 2px solid var(--br); }
.art-n { font-weight: 700; color: var(--br); font-size: 11px; font-family: 'Segoe UI', sans-serif; margin-bottom: 3px; }
.art-t { text-align: justify; line-height: 1.65; }
.art-sub { padding-left: 16px; margin-top: 5px; }
.art-sub p { margin: 5px 0; }
.cau-box { background: linear-gradient(135deg, var(--br-lt), #fffdfb); border: 2px solid var(--br); border-radius: 5px; padding: 13px 16px; margin: 12px 0; }
.cau-title { font-weight: 700; color: var(--br); margin-bottom: 8px; font-size: 11.5px; text-transform: uppercase; font-family: 'Segoe UI', sans-serif; }
.cau-table { background: white; border: 1px solid var(--br); border-radius: 3px; padding: 9px 11px; margin-top: 7px; }
.cau-row { display: flex; justify-content: space-between; margin: 4px 0; font-size: 11.5px; }
.cau-row.total { border-top: 1px solid var(--br); margin-top: 7px; padding-top: 7px; }
.cau-lbl { color: #333; }
.cau-val { font-weight: 700; color: var(--br); }
.ref-box { background: #f0f8ff; border-left: 3px solid var(--br); padding: 10px 14px; margin: 7px 0; border-radius: 0 4px 4px 0; }
.ref-box p { margin: 3px 0; font-size: 12px; }
.sign-sect { margin-top: 20px; padding-top: 12px; border-top: 2px solid var(--br); break-inside: avoid; page-break-inside: avoid; }
.sign-title { text-align: center; font-weight: 600; margin-bottom: 16px; font-size: 13px; font-family: 'Segoe UI', sans-serif; }
.sign-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 20px; }
.sign-block { text-align: center; }
.sign-line { height: 38px; border-bottom: 1px solid #333; margin-bottom: 6px; }
.sign-name { font-weight: 700; font-size: 11.5px; }
.sign-date { font-size: 10.5px; color: #666; margin-top: 4px; }
.appr-box { background: #f9f9f9; border: 1px solid var(--br); border-radius: 4px; padding: 14px 16px; margin-top: 28px; }
.appr-title { font-weight: 700; color: var(--br); margin-bottom: 9px; font-size: 11.5px; font-family: 'Segoe UI', sans-serif; text-transform: uppercase; }
.appr-text { text-align: justify; font-size: 11.5px; line-height: 1.6; color: #333; }
.appendix { margin-top: 30px; padding-top: 22px; border-top: 2px solid var(--br); }
.appendix-title { font-weight: 700; color: var(--br); margin-bottom: 10px; font-size: 11.5px; text-transform: uppercase; font-family: 'Segoe UI', sans-serif; }
.appendix-text { font-size: 11.5px; line-height: 1.62; text-align: justify; color: #333; background: #f9f9f9; padding: 12px 14px; border-radius: 4px; }
.doc-foot { text-align: center; border-top: 2px solid var(--br); padding: 12px; margin-top: 28px; font-size: 10px; color: #999; font-family: 'Segoe UI', sans-serif; }
.doc-foot p { margin: 2px 0; }
.ph { color: var(--br); font-style: italic; }
.doc-empty { text-align: center; color: #bbb; padding: 70px 40px; font-style: italic; font-size: 14px; font-family: 'Segoe UI', sans-serif; }
.alleg { padding-left: 11px; border-left: 2px solid var(--br); margin-bottom: 18px; }
.alleg p { margin: 5px 0; }
.art-warn { background: #fffbf0; border-left: 2px solid #ffc107; padding: 10px 11px; margin-bottom: 10px; }
.art-warn .art-n { color: #795548; }



/* ===== TABS ===== */
.tab-bar{display:flex;border-bottom:2px solid #dde0e4;background:#fff;flex-shrink:0;}
.tab-btn{padding:9px 14px;font-size:11px;font-weight:700;cursor:pointer;border:none;background:none;color:#666;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .2s;text-transform:uppercase;letter-spacing:.4px;}
.tab-btn:hover{color:var(--br);background:#fff5f0;}
.tab-btn.active{color:var(--br);border-bottom-color:var(--br);}
.tab-pane{display:none;padding:11px 13px 16px;overflow-y:auto;flex:1;}
.tab-pane.active{display:block;}
.tab-pane::-webkit-scrollbar{width:4px;}
.tab-pane::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px;}
.st-empty{text-align:center;color:#bbb;padding:40px 20px;font-style:italic;font-size:12px;}
.st-item{background:#fafbfc;border:1px solid #e0e3e8;border-radius:6px;padding:9px 11px;margin-bottom:7px;}
.st-item-name{font-weight:700;font-size:12px;color:#1a1a1a;}
.st-item-meta{font-size:10px;color:#888;margin-top:2px;}
.st-item-actions{display:flex;gap:5px;margin-top:6px;}
.st-btn{font-size:10px;padding:3px 8px;border-radius:4px;border:none;cursor:pointer;font-weight:600;}
.st-btn-load{background:var(--br);color:#fff;}
.st-btn-del{background:#f0f2f5;color:#c00;border:1px solid #ddd;}
.st-save-bar{background:#f9f9f9;border:1px solid #e0e3e8;border-radius:6px;padding:9px 11px;margin-bottom:12px;}
.st-save-bar label{font-size:10px;font-weight:700;color:#555;text-transform:uppercase;display:block;margin-bottom:4px;}
.st-save-row{display:flex;gap:6px;}
.st-save-row input{flex:1;padding:6px 8px;border:1px solid #d0d4da;border-radius:5px;font-size:12px;}
.st-save-row button{padding:6px 10px;background:var(--br);color:#fff;border:none;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;}
.xl-drop{border:2px dashed #d0d4da;border-radius:8px;padding:30px 20px;text-align:center;cursor:pointer;transition:all .2s;background:#fafbfc;margin-bottom:12px;}
.xl-drop:hover,.xl-drop.drag{border-color:var(--br);background:#fff5f0;}
.xl-drop p{font-size:12px;color:#666;margin:4px 0 0;}
.xl-list{max-height:340px;overflow-y:auto;}
.xl-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #e8eaed;border-radius:5px;margin-bottom:5px;cursor:pointer;transition:all .15s;}
.xl-item:hover{border-color:var(--br);background:#fff5f0;}
.xl-item-info{flex:1;min-width:0;}
.xl-item-name{font-weight:700;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.xl-item-meta{font-size:10px;color:#888;}
.xl-badge{font-size:9px;padding:2px 6px;border-radius:10px;font-weight:700;flex-shrink:0;}
.xl-badge-det{background:#e8f5e9;color:#2e7d32;}
.xl-badge-ind{background:#e3f2fd;color:#1565c0;}
.xl-status{font-size:11px;color:#555;padding:7px 10px;background:#f0f2f5;border-radius:5px;margin-bottom:10px;}
input.invalid,select.invalid{border-color:#e53935 !important;background:#fff8f8 !important;}



/* ===== A4 PREVIEW ===== */
.preview-panel.a4-panel { background:#e8eaed; overflow-y:auto; padding:24px; }
.cd-source { display:none !important; }
.a4-stack { display:flex; flex-direction:column; gap:20px; align-items:center; }
.a4-page {
  width:210mm; background:#fff;
  box-shadow:0 2px 20px rgba(0,0,0,.12);
  box-sizing:border-box;
  font-family:'Times New Roman',Times,serif;
  font-size:12.5px; color:#1a1a1a; line-height:1.5;
}
.a4-page-inner { padding:20mm 16mm 10mm 16mm; box-sizing:border-box; min-height:267mm; display:flex; flex-direction:column; }
.a4-page p { margin: 4px 0; }
.a4-page-body  { flex: 1; }
.a4-pg-hdr { display:flex; justify-content:space-between; align-items:center; gap:16px; border-bottom:3px solid var(--br); padding:0 0 4mm 0; }
.a4-pg-hdr h1 { font-size:20px; color:var(--br); font-weight:700; font-family:'Segoe UI',sans-serif; margin:0 0 3px; }
.a4-pg-hdr p  { font-size:11.5px; color:#666; font-family:'Segoe UI',sans-serif; margin:2px 0; }
.a4-pg-meta { background:#faf5f0; border-left:4px solid var(--br); padding:9px 16px; margin:5mm 0 4mm; display:grid; grid-template-columns:1fr 1fr 1fr 1fr; gap:14px; font-family:'Segoe UI',sans-serif; font-size:10.5px; }
.a4-pg-ftr { text-align:center; font-size:10.5px; color:#555; font-weight:600; font-family:'Segoe UI',sans-serif; margin-top:auto; padding-top:2mm; }

/* ===== STAMPA ===== */
@media print {
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }
  :root { color-scheme:light; }

  body { overflow:visible !important; height:auto !important; background:white !important; display:block !important; }
  .app-header, .form-panel { display:none !important; }
  .main { display:block !important; width:100% !important; }
  .preview-panel.a4-panel { overflow:visible !important; padding:0 !important; background:white !important; width:100% !important; }

  /* Sorgente grezza: nascosta */
  .cd-source { display:none !important; }

  /* Stack A4: visibile e in flusso normale */
  #a4Stack {
    display:block !important;
    gap:0 !important;
  }

  /* Ogni .a4-page = 1 pagina PDF esatta */
  .a4-page {
    width:100% !important;
    height:100vh !important;
    min-height:unset !important;
    box-shadow:none !important;
    margin:0 !important;
    padding:0 !important;
    page-break-after:always !important;
    break-after:page !important;
    overflow:hidden !important;
  }
  .a4-page:last-child {
    page-break-after:auto !important;
    break-after:auto !important;
  }

  /* Margini fisici gestiti internamente per evitare conflitti col browser */
  .a4-page-inner {
    padding:20mm 16mm 15mm 16mm !important;
    height:100% !important;
    min-height:unset !important;
    box-sizing:border-box !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .a4-page-body { flex: 1 !important; }

  @page { size:A4 portrait; margin:0; }
}

/* ===== TOAST NOTIFICATIONS ===== */
#toast-container{position:fixed;bottom:20px;right:20px;z-index:99999;display:flex;flex-direction:column-reverse;gap:8px;pointer-events:none;}
.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:10px;font-size:13px;font-weight:600;color:#fff;box-shadow:0 4px 20px rgba(0,0,0,0.25);min-width:280px;max-width:420px;font-family:'Segoe UI',sans-serif;opacity:0;transform:translateX(40px);transition:all .3s ease;}
.toast.toast-show{opacity:1;transform:translateX(0);}
.toast.toast-hide{opacity:0;transform:translateX(40px);}
.toast-success{background:#2e7d32;}
.toast-error{background:#c62828;}
.toast-warning{background:#e65100;}
.toast-info{background:#1565c0;}
.toast-icon{font-size:16px;flex-shrink:0;}

/* ===== FORM VALIDATION ===== */
.field-invalid{border-color:#e53935 !important;background:#fff5f5 !important;box-shadow:0 0 0 2px rgba(229,57,53,0.15) !important;animation:shake .3s ease;}
@keyframes shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-4px);}75%{transform:translateX(4px);}}

/* ===== AUTOCOMPLETE COMUNI ===== */
.ac-wrap{position:relative;}
.ac-list{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #d0d4da;border-top:none;border-radius:0 0 6px 6px;box-shadow:0 6px 18px rgba(0,0,0,0.12);max-height:200px;overflow-y:auto;z-index:1000;display:none;}
.ac-item{padding:8px 10px;font-size:12px;cursor:pointer;transition:background .1s;border-bottom:1px solid #f0f0f0;}
.ac-item:hover{background:var(--br-lt);}
.ac-item:last-child{border-bottom:none;}
.ac-item strong{color:var(--br);}
.ac-item small{color:#888;margin-left:4px;}

/* ===== DARK MODE TOGGLE ===== */
.dm-toggle{background:transparent !important;border:1px solid rgba(255,255,255,0.3) !important;color:white !important;font-size:14px !important;padding:4px 10px !important;margin-left:8px;cursor:pointer;border-radius:6px;transition:all .2s;}
.dm-toggle:hover{background:rgba(255,255,255,0.15) !important;}

/* ===== DARK MODE ===== */
body.dark-mode{background:#1a1a2e;color:#e0e0e0;}
body.dark-mode .form-panel{background:#16213e;border-right-color:#2a2a4a;}
body.dark-mode .sec{color:#ff8a50;border-bottom-color:#ff8a50;}
body.dark-mode .fg label{color:#aaa;}
body.dark-mode input[type=text],body.dark-mode input[type=date],body.dark-mode input[type=number],body.dark-mode input[type=email],body.dark-mode input[type=tel],body.dark-mode select{background:#0f3460;border-color:#2a2a4a;color:#e0e0e0;}
body.dark-mode input:focus,body.dark-mode select:focus{border-color:#ff8a50;box-shadow:0 0 0 2px rgba(255,138,80,0.2);}
body.dark-mode input::placeholder{color:#666;}
body.dark-mode .toggle-row{background:#0f3460;border-color:#2a2a4a;}
body.dark-mode .toggle-row label{color:#ccc;}
body.dark-mode .calc-box{background:linear-gradient(135deg,#1a1a3e,#16213e);border-color:rgba(255,138,80,0.2);}
body.dark-mode .calc-val{color:#ff8a50;}
body.dark-mode .info-nota{background:#1a1a2e;border-left-color:#ff8a50;color:#ccc;}
body.dark-mode .tab-bar{background:#16213e;border-bottom-color:#2a2a4a;}
body.dark-mode .tab-btn{color:#888;}
body.dark-mode .tab-btn:hover{color:#ff8a50;background:rgba(255,138,80,0.1);}
body.dark-mode .tab-btn.active{color:#ff8a50;border-bottom-color:#ff8a50;}
body.dark-mode .st-save-bar{background:#0f3460;border-color:#2a2a4a;}
body.dark-mode .st-save-bar label{color:#aaa;}
body.dark-mode .st-item{background:#0f3460;border-color:#2a2a4a;}
body.dark-mode .st-item-name{color:#e0e0e0;}
body.dark-mode .st-btn-del{background:#2a2a4a;color:#ff6b6b;border-color:#3a3a5a;}
body.dark-mode .st-save-row input{background:#1a1a3e;border-color:#2a2a4a;color:#e0e0e0;}
body.dark-mode .st-empty{color:#555;}
body.dark-mode .ac-list{background:#16213e;border-color:#2a2a4a;}
body.dark-mode .ac-item{border-bottom-color:#2a2a4a;color:#ccc;}
body.dark-mode .ac-item:hover{background:#0f3460;}
body.dark-mode #readOnlyBanner{background:#0f3460;}
/* Preview e contratto: sempre in light mode */
body.dark-mode .preview-panel{background:#2a2a3a;}
body.dark-mode .a4-page,body.dark-mode .cd{background:#fff;color:#1a1a1a;}
@media print{body.dark-mode{background:white !important;color:black !important;}}

/* ===== DARK MODE STYLES ===== */
body.dark-mode {
  --bg: #121212;
  --text: #e0e0e0;
  --border: #333;
  background: #1a1a1a;
  color: #e0e0e0;
}

body.dark-mode .form-panel {
  background: #1e1e1e;
  border-right-color: #333;
  color: #e0e0e0;
}

body.dark-mode input, 
body.dark-mode select {
  background: #2c2c2c;
  border-color: #444;
  color: #fff;
}

body.dark-mode .tab-bar {
  background: #1e1e1e;
  border-bottom-color: #333;
}

body.dark-mode .tab-btn {
  color: #aaa;
}

body.dark-mode .tab-btn.active {
  background: #2c2c2c;
  color: var(--br);
}

body.dark-mode .sec {
  border-bottom-color: var(--br);
}

body.dark-mode .toggle-row {
  background: #2c2c2c;
  border-color: #444;
}

body.dark-mode .toggle-row label {
  color: #ccc;
}

body.dark-mode .calc-box {
  background: linear-gradient(135deg, #2c1a10, #1e1e1e);
  border-color: rgba(var(--br-rgb), 0.3);
}

body.dark-mode .info-nota {
  background: #2a2510;
  border-left-color: #ff9800;
  color: #ffe082;
}

body.dark-mode .preview-panel {
  background: #000;
}

/* La preview del contratto deve rimanere chiara per simulare la stampa */
body.dark-mode .cd {
  background: white;
  color: #1a1a1a;
}

body.dark-mode .st-save-bar {
  background: #252525;
  border-color: #333;
}

body.dark-mode .st-item {
  background: #2c2c2c;
  border-color: #444;
}

body.dark-mode .st-item:hover {
  background: #333;
}

body.dark-mode .st-item-label {
  color: #eee;
}

body.dark-mode #userBar {
  color: #90a4ae;
}

body.dark-mode .dm-toggle {
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.2);
}

body.dark-mode .dm-toggle:hover {
  background: rgba(255,255,255,0.25);
}

body.dark-mode #superAdminSelector {
  background: #2c2c2c;
  border-color: #444;
}

body.dark-mode #superAdminSelector span {
  color: #888;
}

body.dark-mode #superAdminSelector select {
  background: #333;
  border-color: #555;
  color: #eee;
}

/* Transizione fluida */
body { transition: background-color 0.3s, color 0.3s; }

/* ===== PRINT RULES ===== */
@media print {
  .sign-sect, .appr-box, .appendix {
    page-break-inside: avoid;
  }
  .art-h { page-break-after: avoid; }
}
.form-panel, .preview-panel, .tab-pane { transition: background-color 0.3s, color 0.3s; }
