/* Shared record presentation. Authentication and exam surfaces retain their own UI. */
.portal-data-table{width:100%;border-collapse:collapse;background:var(--surface);font-variant-numeric:tabular-nums}
.table-wrap:has(>.portal-data-table){min-height:0}
.portal-data-table :is(th,td){text-align:start;vertical-align:middle;border-bottom:1px solid var(--line);padding:16px 20px;line-height:1.5;overflow-wrap:anywhere}
.portal-data-table th{color:var(--muted);background:var(--surface-soft);font-weight:600;white-space:nowrap}
.portal-data-table tbody tr:last-child td{border-bottom:0}.portal-data-table tbody tr:focus-within td{background:var(--brand-light)}
.portal-data-table .data-numeric{text-align:end}.portal-data-table .data-actions{min-width:120px}
.portal-data-table :is(.btn,button,summary){min-height:44px}.portal-data-table :is(.badge,.cred-badge){font-weight:600;line-height:1.5;max-width:100%;white-space:normal}
.portal-data-table .badge{padding:4px 8px;border-radius:6px}.portal-data-table .btn-copy-mini{min-width:44px}
.portal-data-table td:first-child{font-weight:600;color:var(--ink)}
@media(hover:hover){.portal-data-table tbody tr:hover td{background:var(--surface-soft)}}
.school-operations .ops-list .ops-row{padding:18px 8px;line-height:1.5}.school-operations .ops-row>div:first-of-type{display:grid;gap:3px}
.school-operations .ops-row span{margin-top:0;font-size:14px}.school-operations .ops-row>.btn{flex-shrink:0}
.school-operations .ops-row .record-state{display:block;width:fit-content;padding:3px 8px;margin-top:4px;border-radius:6px;font-size:13px;font-weight:600;background:var(--surface-soft);color:var(--muted)}
.school-operations .ops-row:is([data-status=verified],[data-status=active]) .record-state{background:#eaf5ee;color:#25603c}
.school-operations .ops-row[data-status=missing] .record-state{background:#fff1e8;color:#87421c}
.official-appointments .official-row{padding:18px 4px;gap:16px}.official-row strong{line-height:1.5}.official-row .official-meta{line-height:1.6}
.ops-finance .ops-agenda-filters{background:transparent;padding:0;gap:16px;margin-bottom:24px}
.ops-finance .payment-totals{padding:0 0 24px;margin:8px 0 0;border-bottom:1px solid var(--line)}
.ops-finance .payment-totals>div{padding-block:4px}.ops-finance .payment-totals dt{margin-bottom:8px;color:var(--muted)}
.payment-totals dd small{display:block;font-size:13px;font-weight:400;color:var(--muted);margin-top:6px;letter-spacing:0}
.payment-total-scope{flex-basis:100%;margin:0;color:var(--muted);font-size:13px}
.payment-results{margin:0 0 12px;font-size:14px;color:var(--muted)}
.payment-columns{display:none}.payment-row .payment-state{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:4px 9px;border-radius:6px;background:var(--brand-light);color:var(--brand-dark);font-weight:600;font-size:13px}
.payment-row[data-status=paid] .payment-state{background:#eaf5ee;color:#25603c}.payment-row[data-status=void] .payment-state{background:var(--surface-soft);color:var(--muted)}
.payment-row[data-overdue=true] .payment-state{background:#fff1e8;color:#87421c}
.payment-row .payment-due{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.payment-row .payment-due::before{content:'Scadenza ';display:block;font-size:12px}.payment-row .payment-amount strong{font-size:18px}
@media(min-width:1000px){
 .ops-finance .payment-columns,.ops-finance .ops-list .payment-row{display:grid;grid-template-columns:minmax(160px,1fr) 110px 130px 110px minmax(100px,auto);gap:20px;align-items:center;padding:16px 12px}
 .payment-columns{background:var(--surface-soft);font-size:13px;font-weight:600;color:var(--muted);border-block:1px solid var(--line)}
 .payment-columns span:nth-child(3){text-align:end}.payment-columns span:last-child{text-align:end}.payment-columns+ .ops-list .payment-row:first-child{border-top:0}
 .payment-row .payment-due::before{display:none}.ops-finance .payment-row>.ops-actions{justify-content:flex-end}
}
@media(max-width:999px){
 .school-operations .ops-list .payment-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;align-items:start;padding:20px 0}
 .payment-row .payment-reference{grid-column:1;grid-row:1}.payment-row .payment-amount{grid-column:2;grid-row:1}.payment-row .payment-due{grid-column:1;grid-row:2}.payment-row .payment-state-wrap{grid-column:2;grid-row:2;justify-self:end}.school-operations .payment-row>.ops-actions{grid-column:1/-1;grid-row:3;justify-content:flex-end}
}
@media(max-width:820px){
 .portal-data-table,.portal-data-table tbody{display:block;width:100%;min-width:0}
 .portal-data-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .portal-data-table .portal-data-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;padding:16px;border-bottom:1px solid var(--line);background:var(--surface)}
 .portal-data-table .portal-data-row:last-child{border-bottom:0}
 .portal-data-table .portal-data-row>td{display:block;min-width:0;padding:7px 0;border:0;text-align:start;font-size:14px;background:transparent}
 .portal-data-table .portal-data-row>td::before{content:attr(data-label);display:block;font-size:12px;line-height:1.5;color:var(--muted);font-weight:500;margin-bottom:3px}
 .portal-data-table .portal-data-row>td:first-child{font-size:16px;padding-top:0;grid-column:1/-1}.portal-data-table .portal-data-row>.data-actions{grid-column:1/-1;padding-top:12px}
 .portal-data-table .student-row-actions{flex-wrap:wrap;gap:8px}.portal-data-table :is(.btn,summary){white-space:normal}
 .portal-data-table .portal-data-row:focus-within{background:var(--brand-light)}
}
