/* Ufficio contratti. Componenti compatti, allineati alla navigazione Certosa. */
.p2-page{max-width:1360px;margin:0 auto;padding-bottom:48px}
.p2-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:4px 0 24px}
.p2-head h1{margin:3px 0 0;letter-spacing:-.025em}
.p2-head p{margin:5px 0 0;color:#627084}
.p2-eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:#647186}
.p2-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px}
.p2-actions .btn{white-space:nowrap}
.p2-card{border:1px solid #dbe1e8;border-radius:10px;background:#fff;padding:22px;margin:0 0 16px}
.p2-card h2{font-size:1.1rem;margin:0 0 14px}
.p2-card h3{font-size:.98rem;margin:0 0 12px}
.p2-card p{line-height:1.55}
.p2-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.p2-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.p2-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.p2-field{min-width:0}
.p2-field label,.p2-field>span{display:block;font-size:.83rem;font-weight:650;color:#3a475b;margin-bottom:6px}
.p2-field input,.p2-field select,.p2-field textarea{width:100%;min-width:0}
.p2-field textarea{min-height:76px}
.p2-field small{display:block;margin-top:5px;color:#697789;font-size:.76rem}
.p2-check{display:flex;align-items:center;gap:8px;min-height:40px;font-size:.88rem;color:#354158}
.p2-check input{width:auto}
.p2-checklist{display:flex;flex-wrap:wrap;gap:8px 18px}
.p2-checklist label{display:flex;align-items:center;gap:7px;font-size:.87rem}
.p2-checklist input{width:auto}
.p2-form-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:20px}
.p2-table-wrap{overflow-x:auto;max-width:100%}
.p2-table{width:100%;border-collapse:collapse;min-width:620px;font-size:.88rem}
.p2-table th{font-size:.73rem;letter-spacing:.035em;text-transform:uppercase;font-weight:700;color:#67758a;text-align:left;background:#f5f7f9;border-bottom:1px solid #dbe1e8;padding:10px 11px;white-space:nowrap}
.p2-table td{padding:11px;border-bottom:1px solid #e6eaf0;vertical-align:top}
.p2-table tr:last-child td{border-bottom:0}
.p2-table a{font-weight:600;text-decoration:none}
.p2-table .num{text-align:right;white-space:nowrap}
.p2-table .muted{color:#6b7889}
.p2-table .wrap{white-space:normal;min-width:180px}
.p2-tabs{display:flex;flex-wrap:wrap;gap:3px;border-bottom:1px solid #dce2e8;margin:0 0 18px}
.p2-tabs a{display:inline-block;padding:10px 13px;color:#58677a;text-decoration:none;font-size:.86rem;font-weight:650;border-bottom:2px solid transparent}
.p2-tabs a.active{color:#182439;border-bottom-color:#182439}
.p2-tabs a:hover{color:#182439;background:#f5f7f9}
.p2-pill{display:inline-block;padding:3px 8px;border-radius:5px;background:#eef1f5;color:#46546a;font-size:.75rem;font-weight:650;white-space:nowrap}
.p2-pill.warn{background:#fff2d8;color:#785718}
.p2-pill.ok{background:#e7f2ea;color:#2f6a43}
.p2-pill.bad{background:#fbe8e7;color:#9b3435}
.p2-note{padding:11px 13px;border:1px solid #d8e0e8;border-radius:7px;background:#f7f9fb;color:#425169;font-size:.87rem;line-height:1.5;margin:0 0 16px}
.p2-note.warn{background:#fff9ec;border-color:#efdda9;color:#6d541c}
.p2-note.ok{background:#f1f8f3;border-color:#c9e0ce;color:#2c6140}
.p2-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}
.p2-kpis a{display:block;color:inherit;text-decoration:none;border:1px solid #dbe1e8;border-radius:9px;background:#fff;padding:17px 18px}
.p2-kpis strong{display:block;font-size:1.7rem;line-height:1.2;letter-spacing:-.03em}
.p2-kpis span{display:block;margin-top:5px;font-size:.83rem;color:#647186}
.p2-kpis a:hover,.p2-card.link:hover{border-color:#a8b6c6}
.p2-list{display:grid;gap:8px}
.p2-list a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid #dce2e8;border-radius:8px;text-decoration:none;color:inherit;background:#fff}
.p2-list a:hover{border-color:#a8b6c6}
.p2-list small{display:block;color:#647186;margin-top:3px}
.p2-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.p2-detail-grid dt{font-size:.75rem;color:#657286;margin-bottom:4px}
.p2-detail-grid dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.p2-stack{display:grid;gap:16px}
.p2-stack .p2-card{margin:0}
.p2-filter{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.p2-filter .p2-field{flex:1;min-width:160px}
.p2-small-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.p2-small-form .p2-field{min-width:125px;flex:1}
.p2-small-form .btn{margin-bottom:0}
.p2-inline-forms{display:flex;gap:8px;flex-wrap:wrap}
.p2-inline-forms form{display:inline-flex;gap:6px;align-items:center}
.p2-inline-forms input{max-width:140px}
.p2-section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.p2-section-title h2{margin:0}
.p2-empty{color:#647186;padding:10px 0}
@media(max-width:950px){
 .p2-grid.three,.p2-grid.four,.p2-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .p2-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
 .p2-head{display:block}
 .p2-head .p2-actions{margin-top:14px}
 .p2-grid,.p2-grid.three,.p2-grid.four,.p2-detail-grid{grid-template-columns:1fr}
 .p2-card{padding:17px}
 .p2-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .p2-kpis strong{font-size:1.4rem}
 .p2-tabs{overflow-x:auto;flex-wrap:nowrap}
 .p2-tabs a{white-space:nowrap}
}
.p2-card,.p2-grid>*{min-width:0}
.p2-note{overflow-wrap:anywhere}
.p2-kpis a{min-width:0}
