*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--navy: #0D2137;--navy-mid: #1A3350;--teal: #1D9E75;--teal-light: #E1F5EE;--teal-dark: #0F6E56;--amber: #854F0B;--amber-bg: #FAEEDA;--green: #16a34a;--red: #dc2626;--blue: var(--teal);--blue-lt: var(--teal-light);--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-400: #9ca3af;--gray-500: #6B7280;--gray-600: #4b5563;--gray-800: #1f2937;--text-micro: 9px;--text-2xs: 11px;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-body: 15px;--text-md: 16px;--text-lg: 18px;--text-title: 22px;--text-xl: 26px;--text-display: 28px;--text-display-lg: 32px;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow: 0 1px 3px rgba(0,0,0,.1)}body{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:var(--text-body);background:#f7f8fa;color:var(--gray-800)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:99px;font-size:var(--text-sm);font-weight:500}.badge-inserita{background:#fef9c3;color:#854d0e}.badge-budgettaria{background:#ffedd5;color:#c2410c}.badge-formale{background:#dbeafe;color:#1e40af}.badge-acquisito{background:#d1fae5;color:#065f46}.badge-esecuzione{background:#166534;color:#fff}.badge-chiuso{background:#374151;color:#fff}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:6px;font-size:var(--text-base);font-weight:500;border:none;cursor:pointer;white-space:nowrap;transition:opacity .15s}.btn:hover{opacity:.85}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--teal-dark);color:#fff}.btn-secondary{background:#fff;color:var(--gray-800);border:1px solid var(--gray-200)}.btn-ghost{background:transparent;color:var(--gray-600);padding:4px 8px}.btn-danger{background:#fee2e2;color:var(--red)}.btn-sm{padding:4px 10px;font-size:var(--text-sm)}.btn-icon{padding:4px 8px}.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}.card-header{padding:12px 16px;border-bottom:1px solid var(--gray-100);display:flex;align-items:center;justify-content:space-between}.card-title{font-weight:600;font-size:var(--text-base);color:var(--gray-600);text-transform:uppercase;letter-spacing:.04em}.card-body{padding:14px 16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group.full{grid-column:1 / -1}.form-group label{font-size:var(--text-sm);font-weight:500;color:var(--gray-600)}.form-group input,.form-group select,.form-group textarea{padding:7px 10px;border:1px solid var(--gray-200);border-radius:6px;font-size:var(--text-base);color:var(--gray-800);outline:none;transition:border-color .15s;background:#fff;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #1d9e7526}.form-group input[required],.form-group select[required],.form-group textarea[required],.form-group input.required-field,.form-group select.required-field,.form-group textarea.required-field{background:#fefce8}.form-group input[readonly],.form-group input:read-only{background:var(--gray-50);color:var(--gray-400);cursor:not-allowed}.hint{font-size:var(--text-xs);color:var(--gray-400)}.flag-row{display:flex;gap:20px}.flag-item{display:flex;align-items:center;gap:6px;font-size:var(--text-base);cursor:pointer}.flag-item input{width:15px;height:15px;cursor:pointer}.error-msg{background:#fee2e2;color:var(--red);padding:10px 14px;border-radius:6px;font-size:var(--text-base)}.loading-msg{color:var(--gray-400);font-size:var(--text-base);padding:20px;text-align:center}.righe-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.righe-table th{padding:7px 10px;text-align:left;font-size:var(--text-xs);font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.04em;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.righe-table td{padding:8px 10px;border-bottom:1px solid var(--gray-100);vertical-align:middle}.righe-table tr:last-child td{border-bottom:none}.righe-table tr:hover td{background:var(--teal-light)}.righe-table .num{text-align:right;font-variant-numeric:tabular-nums}.codice{font-family:monospace;font-size:var(--text-sm);color:var(--gray-600)}.ss-wrap{position:relative;width:100%}.ss-trigger{width:100%;padding:7px 10px;border:1px solid var(--gray-200);border-radius:6px;font-size:var(--text-base);color:var(--gray-800);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;outline:none;transition:border-color .15s,box-shadow .15s;font-family:inherit}.ss-trigger:hover:not(:disabled){border-color:var(--gray-400)}.ss-trigger.ss-open{border-color:var(--teal);box-shadow:0 0 0 3px #1d9e7526}.ss-trigger:disabled{background:var(--gray-50);color:var(--gray-400);cursor:not-allowed;opacity:.7}.ss-trigger-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-trigger-text.placeholder{color:var(--gray-400)}.ss-arrow{font-size:var(--text-2xs);color:var(--gray-400);flex-shrink:0;transition:transform .15s;line-height:1}.ss-open .ss-arrow{transform:rotate(180deg)}.ss-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:300;background:#fff;border:1px solid var(--gray-200);border-radius:8px;box-shadow:0 4px 20px #00000021;overflow:hidden}.ss-search-wrap{padding:7px 8px;border-bottom:1px solid var(--gray-100)}.ss-search{width:100%;padding:6px 10px;border:1px solid var(--gray-200);border-radius:5px;font-size:var(--text-base);color:var(--gray-800);outline:none;font-family:inherit;transition:border-color .15s}.ss-search:focus{border-color:var(--teal)}.ss-list{max-height:220px;overflow-y:auto}.ss-option{padding:8px 12px;cursor:pointer;transition:background .1s;display:flex;flex-direction:column;gap:1px}.ss-option:hover{background:var(--teal-light)}.ss-option.ss-selected{background:#e0f5ee}.ss-option-label{font-size:var(--text-base);color:var(--gray-800);font-weight:500}.ss-option-sub{font-size:var(--text-xs);color:var(--gray-400)}.ss-empty{padding:14px 12px;text-align:center;font-size:var(--text-base);color:var(--gray-400)}.row-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}tr:hover .row-actions{opacity:1}.empty-sezione{padding:32px;text-align:center;color:var(--gray-400);font-size:var(--text-base)}.righe-table tbody tr:nth-child(2n) td,.cat-table tbody tr:nth-child(2n) td,.offerte-table tbody tr:nth-child(2n) td,.ana-card .righe-table tbody tr:nth-child(2n) td,.ts-table tbody tr:nth-child(2n) td,.cfg-table tbody tr:nth-child(2n) td{background-color:#f0faf7}.righe-table tbody tr:hover td,.cat-table tbody tr:hover td,.offerte-table tbody tr:hover td,.ana-card .righe-table tbody tr:hover td,.ts-table tbody tr:hover td,.cfg-table tbody tr:hover td{background-color:var(--teal-light)}
