:root{
  --sidebar:#0f172a;--sidebar2:#111827;--accent:#4f46e5;--accent2:#22d3ee;--bg:#f5f7fb;--text:#1f2937;--muted:#64748b;--line:#e5eaf2;--side-expanded:280px;--radius:18px;
}
*{box-sizing:border-box} body{background:var(--bg);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);font-size:.92rem}.app-shell{display:flex;min-height:100vh}.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--side-expanded);height:100vh;background:linear-gradient(180deg,var(--sidebar),var(--sidebar2));color:#cbd5e1;padding:0;display:flex;flex-direction:column;z-index:20}.app-main{margin-left:var(--side-expanded);width:calc(100% - var(--side-expanded));min-height:100vh}.brand{height:74px;display:flex;align-items:center;gap:12px;padding:0 22px;color:#fff}.brand small{color:#aebde6}.brand-logo{width:46px;height:46px;min-width:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent2));font-weight:800;color:#fff;box-shadow:0 12px 25px rgba(34,211,238,.22)}.sidebar-nav{padding:8px 12px;overflow:auto}.nav-section{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#8fa1c4;font-weight:800;margin:18px 10px 8px}.app-sidebar .nav-link{color:#dbe4ff;border-radius:12px;font-weight:650;padding:11px 13px;margin:3px 0;display:flex;align-items:center;gap:10px;min-height:44px}.app-sidebar .nav-link i{width:20px;text-align:center;font-size:1rem}.app-sidebar .nav-link:hover{background:rgba(255,255,255,.09);color:#fff}.app-sidebar .nav-link.active{background:rgba(99,102,241,.24);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.app-sidebar .nav-link.active i{color:#67e8f9}.sidebar-footer{margin-top:auto;padding:14px 12px 16px;display:grid;gap:10px}.tenant-box{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.11);border-radius:14px;padding:10px 12px}.tenant-box small{display:block;color:#aebde6;font-size:.72rem}.tenant-box strong{font-size:.86rem;color:#fff}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:10}.topbar .btn-menu{width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:11px;background:#f8fafc;color:#334155}.content{padding:24px 26px}.page-header h1{font-size:1.55rem;font-weight:800;letter-spacing:-.03em;margin:0}.page-subtitle{color:var(--muted);font-size:.86rem}.page-actions{display:flex;gap:.5rem;align-items:center}.card,.page-card,.stat,.admin-tile{background:#fff;border:0;border-radius:var(--radius);box-shadow:0 10px 25px rgba(15,23,42,.06);padding:1rem;margin-bottom:1rem}.card-header-clean{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.card-header-clean h2,.card-header-clean h3{font-size:1.05rem;font-weight:800;margin:0}.card-header-clean p{margin:.2rem 0 0;color:var(--muted);font-size:.85rem}.form-label{font-size:.78rem;font-weight:700;color:#334155;margin-bottom:.25rem}.form-control,.form-select{border-radius:10px;border:1px solid #dbe3ef;background:#fff;min-height:38px;padding:.45rem .65rem;font-size:.9rem}.form-control-sm,.form-select-sm{min-height:32px;padding:.30rem .55rem;font-size:.84rem;border-radius:8px}.ts-control{min-height:32px!important;padding:.22rem .55rem!important;border-radius:8px!important;border-color:#dbe3ef!important}.ts-dropdown{font-size:.85rem}.btn{border-radius:10px;font-weight:700}.btn-sm{border-radius:8px;padding:.32rem .58rem;font-size:.82rem}.btn-primary{background:var(--accent);border-color:var(--accent)}.btn-primary:hover{background:#4338ca;border-color:#4338ca}.table{vertical-align:middle}.table-sm>:not(caption)>*>*{padding:.48rem .6rem}.table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;border-bottom:1px solid var(--line)}.table tbody tr:hover{background:#f8fafc}.badge-soft{background:#eef2ff;color:#3730a3;border:1px solid #dbe2ff}.stat span{display:block;color:var(--muted);font-size:.78rem;font-weight:650}.stat b{display:block;font-size:1.7rem;line-height:1.1;letter-spacing:-.04em}.stat i{font-size:1.35rem;color:var(--accent)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.admin-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.admin-tile{text-decoration:none;color:inherit;min-height:172px;display:flex;flex-direction:column;justify-content:center;transition:.15s ease}.admin-tile:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(15,23,42,.10);color:inherit}.tile-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#eef2ff;color:var(--accent);font-size:1.25rem;margin-bottom:.9rem}.admin-tile h3{font-size:1.05rem;margin:0 0 .25rem;font-weight:800}.admin-tile p{color:var(--muted);font-size:.86rem;margin:0;line-height:1.35}.compact-tabs .nav-link,.tabbtn{color:#475569;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.36rem .72rem;font-size:.84rem;font-weight:750}.compact-tabs .nav-link.active,.tabbtn.active{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}.dynamic-field{border:1px solid var(--line);border-radius:14px;background:#fbfcff;padding:.75rem;height:100%}.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.alert{border:0;border-radius:12px}.dropdown-menu{border:0;border-radius:14px;box-shadow:0 12px 30px rgba(15,23,42,.12)}.auth-bg,.installer{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#7dd3fc,#3957ff 35%,#101833 78%)}.login-card,.install-card{width:min(470px,92vw);background:rgba(255,255,255,.97);border-radius:24px;padding:1.6rem;box-shadow:0 25px 70px rgba(2,6,23,.30)}.install-card{width:min(840px,94vw)}.login-logo{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-weight:800;margin-bottom:1rem}.install-step{display:flex;align-items:center;gap:.6rem;color:#64748b;font-weight:700;font-size:.8rem;margin-bottom:1rem}.install-step span{width:26px;height:26px;display:grid;place-items:center;border-radius:999px;background:#eef2ff;color:#3730a3}.section-divider{border-top:1px solid var(--line);margin:1rem 0}.modal-content{border:0;border-radius:18px}.confirm-modal .modal-dialog{max-width:420px}@media(max-width:1200px){.stats-grid,.admin-dashboard-grid{grid-template-columns:repeat(2,1fr)}.field-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){:root{--side-expanded:82px}.brand div:not(.brand-logo),.nav-section,.nav-label,.tenant-box{display:none}.app-sidebar .nav-link{justify-content:center}.app-sidebar .nav-link i{width:auto}.sidebar-footer .btn span{display:none}.content{padding:18px}.topbar{padding:0 18px}}@media(max-width:700px){.stats-grid,.admin-dashboard-grid,.field-grid{grid-template-columns:1fr}.page-actions{flex-wrap:wrap}.topbar{height:auto;min-height:64px}.content{padding:14px}}
/* compatibility with early v0.x views */
.cards{display:grid;gap:1rem;margin-bottom:1rem}.cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid,.grid2,.form.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.grid.threecols{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.fourcols{grid-template-columns:repeat(4,minmax(0,1fr))}.span-all{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:.5rem}.table-wrap{overflow:auto}.compact-table{width:100%;border-collapse:collapse}.compact-table th{font-size:.72rem;text-transform:uppercase;color:#64748b}.compact-table td{border-top:1px solid var(--line);padding:.45rem .6rem}.tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:.6rem 0}.tabpane{display:none}.tabpane.active{display:block}.form input,.form select,.form textarea{display:block;width:100%;height:32px;padding:.30rem .55rem;font-size:.84rem;border:1px solid #dbe3ef;border-radius:8px;background:#fff}.form textarea{height:auto;min-height:70px}.btn.primary{--bs-btn-color:#fff;--bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-hover-bg:#4338ca;--bs-btn-hover-border-color:#4338ca}.btn.ghost{--bs-btn-bg:#fff;--bs-btn-border-color:var(--line)}.btn.small{padding:.32rem .58rem;font-size:.82rem}.hero{background:#fff;border:0;border-radius:var(--radius);box-shadow:0 10px 25px rgba(15,23,42,.06);padding:1rem;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.check{margin-bottom:0}.badge{border-radius:999px}@media(max-width:1100px){.cards.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.cards.four,.cards.three,.grid,.grid2,.form.grid,.grid.threecols,.grid.fourcols{grid-template-columns:1fr}}
.employee-summary-card h2{font-size:1.35rem;font-weight:850;letter-spacing:-.03em}.eyebrow{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.summary-line{display:flex;flex-wrap:wrap;gap:.55rem 1rem;color:#475569;font-size:.86rem}.summary-line span{display:inline-flex;align-items:center;gap:.35rem}.summary-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.summary-details>div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:.65rem .75rem}.summary-details span{display:block;color:#64748b;font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.summary-details strong{display:block;font-size:.9rem;margin-top:.1rem}.dynamic-ccnl-card{padding:1.1rem}.dynamic-tabs-area{border-top:1px solid var(--line);padding-top:1rem}.dynamic-field-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.dynamic-field{position:relative}.dynamic-field code{font-size:.72rem;background:#eef2ff;color:#3730a3;border-radius:999px;padding:.12rem .42rem}.formula-field{background:#fff7ed;border-color:#fed7aa}.formula-hint{font-size:.75rem;color:#9a3412;margin-top:.35rem}.field-meta{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.45rem}.field-meta span{background:#f1f5f9;color:#475569;border-radius:999px;padding:.12rem .45rem;font-size:.7rem;font-weight:700}@media(max-width:1100px){.summary-details,.dynamic-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.summary-details,.dynamic-field-grid{grid-template-columns:1fr}}

/* v0.3.3 refinements */
.action-buttons{display:inline-flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}.action-buttons form{display:inline-flex;margin:0}.action-buttons .btn{min-width:82px}.file-drop{position:relative;border:1px dashed #cbd5e1;background:#f8fafc;border-radius:14px;padding:.75rem}.file-drop input[type=file]{background:#fff}.file-drop-hint{display:flex;align-items:center;gap:.5rem;color:#64748b;font-size:.8rem;margin-top:.45rem}.file-drop-hint i{color:var(--accent);font-size:1rem}.border-start.border-success{border-left-color:#16a34a!important}


/* v0.3.4 searchable select + validation */
.bootstrap-select>.dropdown-toggle.btn-sm{min-height:32px;padding:.30rem .55rem;font-size:.84rem;border-radius:8px;background:#fff;color:#1f2937;border-color:#dbe3ef}.bootstrap-select>.dropdown-toggle:focus{outline:0!important;box-shadow:0 0 0 .2rem rgba(79,70,229,.14)!important}.bootstrap-select.is-invalid>.dropdown-toggle{border-color:#dc3545!important}.bootstrap-select .dropdown-menu{font-size:.84rem}.bootstrap-select .bs-searchbox .form-control{min-height:32px;font-size:.84rem;border-radius:8px}.bootstrap-select .dropdown-item.active,.bootstrap-select .dropdown-item:active{background:var(--accent)}
.delete-option-card{display:block;border:1px solid var(--border,#dfe6f2);border-radius:16px;padding:16px 18px;background:#fff;cursor:pointer;transition:.15s ease;min-height:118px}.delete-option-card:hover{border-color:#7aa2ff;box-shadow:0 8px 24px rgba(24,39,75,.08)}.delete-option-card input{margin-right:8px}.delete-option-card.danger:hover{border-color:#dc3545;background:#fff8f8}.action-buttons>a,.action-buttons>form{margin-left:.35rem}.action-buttons{display:flex;gap:.35rem;justify-content:flex-end;align-items:center;flex-wrap:wrap}

/* v0.3.7 CCNL builder redesign */
.ccnl-summary-card h2{font-size:1.35rem;font-weight:850;letter-spacing:-.035em}.ccnl-builder-card{padding:1.15rem}.ccnl-tab-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.4rem 0 1rem;padding:.85rem 1rem;background:#f8fafc;border:1px solid var(--line);border-radius:14px}.ccnl-tab-toolbar h3{font-size:1.05rem;font-weight:850;margin:0}.ccnl-fields-table code{font-size:.74rem;background:#eef2ff;color:#3730a3;border-radius:999px;padding:.14rem .45rem}.ccnl-fields-table .formula-cell code{background:#fff7ed;color:#9a3412;border-radius:8px;white-space:normal}.ccnl-options-box{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:.85rem}.ccnl-options-box strong{margin-right:.25rem}.ccnl-options-box label{font-size:.84rem;font-weight:650;color:#475569;display:inline-flex;align-items:center;gap:.28rem}.modal .form-control-sm,.modal .form-select-sm{min-height:32px}.modal h6{font-weight:800}.page-card .nav-pills.compact-tabs .nav-link{margin-right:.35rem;margin-bottom:.35rem}.empty-state{background:#fbfcff}.badge-soft{font-weight:750}

/* v0.4.2 employee operational sheet refinements */
.employee-headline{font-size:.92rem;color:var(--muted,#64748b);}
.employee-details-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
@media (max-width: 1200px){.employee-details-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 700px){.employee-details-grid{grid-template-columns:1fr;}}
.sticky-save-actions{position:sticky;bottom:0;background:#fff;z-index:2;}
.dynamic-table-inputs .form-check-input{width:1.1rem;height:1.1rem;}

/* v0.5.5 - card calcoli/condizioni compatte */
.min-w-0{min-width:0}
.calculation-compact-card{cursor:help;transition:.15s ease}
.calculation-compact-card:hover{box-shadow:0 12px 30px rgba(15,23,42,.08)}

/* v0.8.0 - colori card campi CCNL */
.dynamic-field.has-card-color{
  border-left-width:6px;
  border-left-style:solid;
  box-shadow:0 8px 22px rgba(15,23,42,.035);
}
.dynamic-field.has-card-color::before{
  content:'';
  position:absolute;
  left:0;
  top:12px;
  bottom:12px;
  width:0;
  border-left:0 solid var(--field-card-color, transparent);
}
.field-color-swatch{
  display:inline-block;
  width:12px;
  height:12px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.18);
  vertical-align:middle;
}

/* Sidebar desktop comprimibile */
@media (min-width:901px){
  .app-shell.sidebar-collapsed .app-sidebar{width:82px}
  .app-shell.sidebar-collapsed .app-main{margin-left:82px;width:calc(100% - 82px)}
  .app-shell.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}
  .app-shell.sidebar-collapsed .brand>div:not(.brand-logo),
  .app-shell.sidebar-collapsed .nav-section,
  .app-shell.sidebar-collapsed .nav-label,
  .app-shell.sidebar-collapsed .tenant-box{display:none}
  .app-shell.sidebar-collapsed .app-sidebar .nav-link{justify-content:center;padding-left:0;padding-right:0}
  .app-shell.sidebar-collapsed .app-sidebar .nav-link i{width:auto;font-size:1.1rem}
  .app-shell.sidebar-collapsed .sidebar-footer .btn span{display:none}
}

/* v0.9.6 - colore schede CCNL: richiamo snello sul bordo del pulsante */
.compact-tabs .nav-link.has-tab-color,.tabbtn.has-tab-color{
  border-left-width:7px!important;
  border-left-style:solid!important;
  padding-left:.72rem;
}
.compact-tabs .nav-link.has-tab-color.active,.tabbtn.has-tab-color.active{
  border-left-color:var(--tab-color)!important;
}
.form-control-color{max-width:46px;padding:.18rem;min-height:32px}

/* v0.9.9.4 - titolo pagina nella topbar per recuperare spazio verticale */
.topbar{gap:1rem}
.topbar-leading{display:flex;align-items:center;gap:.8rem;min-width:0;flex:1}
.topbar-page-title{min-width:0;line-height:1.05}
.topbar-title-main{font-size:1.08rem;font-weight:850;letter-spacing:-.02em;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-title-sub{font-size:.72rem;color:var(--muted);margin-top:.18rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-right{display:flex;align-items:center;justify-content:flex-end;gap:.7rem;min-width:0}
.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:nowrap}
.topbar-actions .d-flex{flex-wrap:nowrap!important}
.content{padding-top:16px}
@media(max-width:1200px){
  .topbar-actions .btn{font-size:.76rem;padding:.28rem .45rem}
  .topbar-title-sub{display:none}
}
@media(max-width:900px){
  .topbar-page-title{display:block}
  .topbar-actions{display:none}
}
@media(max-width:700px){
  .topbar-title-main{font-size:.95rem}
}

/* v0.9.9.21 UX refinement */
.parameter-set-card{
  border:1px solid var(--bs-border-color,#dee2e6);
  border-radius:16px;
  transition:box-shadow .18s ease,border-color .18s ease,background .18s ease;
}
.parameter-set-card.is-closed{background:#fff;box-shadow:0 4px 14px rgba(15,23,42,.04)}
.parameter-set-card.is-open{background:#fff;border-color:#b7c5ff;box-shadow:0 10px 26px rgba(79,70,229,.08)}
.parameter-set-card .parameter-set-header{cursor:default}
.parameter-set-card.is-open .parameter-set-header{background:linear-gradient(180deg,#fff 0%,#f8faff 100%)}
.parameter-set-card .parameter-set-header .btn-link{border-radius:10px}
.parameter-set-card .parameter-set-header .btn-link:hover{background:#f8fafc}

.ccnl-catalog-card{background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.04);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.ccnl-catalog-card:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(15,23,42,.07);border-color:#c7d2fe!important}
.ccnl-card-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ccnl-card-meta>div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:9px 11px}
.ccnl-card-meta span{display:block;color:#64748b;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
.ccnl-card-meta strong{display:block;margin-top:2px;font-size:.92rem}
.ccnl-filterbar{position:sticky;top:72px;z-index:5}

.admin-settings-accordion{display:grid;gap:12px}
.admin-settings-accordion .accordion-item{border:1px solid #e5e7eb!important;border-radius:16px!important;overflow:hidden;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,.035)}
.admin-settings-accordion .accordion-button{gap:12px;padding:16px 18px;background:#fff;box-shadow:none!important}
.admin-settings-accordion .accordion-button:not(.collapsed){background:#f8faff;color:inherit}
.admin-settings-accordion .accordion-button>span:not(.settings-icon):not(.badge){display:flex;flex-direction:column;align-items:flex-start}
.admin-settings-accordion .accordion-button small{display:block;color:#64748b;font-weight:400;margin-top:2px}
.settings-icon{width:38px;height:38px;border-radius:11px;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;flex:0 0 38px}
.admin-settings-accordion .accordion-body{padding:18px;border-top:1px solid #eef2f7}
.payment-provider-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.payment-provider-card{border:1px solid #e5e7eb;border-radius:14px;padding:16px;background:#fff}
.provider-logo-text{font-weight:900;font-size:1.35rem;letter-spacing:-.04em;color:#635bff}

.ral-preview-box{border-left:4px solid #4f46e5!important;background:linear-gradient(180deg,#f8faff,#fff)!important}
.ral-preview-box strong{font-size:1.12rem;color:#312e81}

@media (max-width: 991.98px){
  .ccnl-filterbar{position:static}
}

/* v0.9.9.27 - sidebar compact: evita scrollbar verticale con tutte le sezioni */
.app-sidebar .brand{height:64px;padding:0 16px;gap:10px}
.app-sidebar .brand-logo{width:42px;height:42px;min-width:42px;border-radius:14px}
.app-sidebar .sidebar-nav{padding:4px 8px}
.app-sidebar .nav-section{font-size:.64rem;margin:12px 8px 5px}
.app-sidebar .nav-link{font-size:.88rem;padding:8px 10px;margin:1px 0;min-height:38px;gap:8px}
.app-sidebar .nav-link i{font-size:.94rem}
.app-sidebar .sidebar-footer{padding:9px 8px 10px;gap:7px}
.app-sidebar .tenant-box{padding:7px 10px;border-radius:12px}
.app-sidebar .tenant-box small{font-size:.68rem}
.app-sidebar .tenant-box strong{font-size:.81rem}
.app-sidebar .sidebar-footer .btn{padding:.35rem .65rem;font-size:.82rem}
