/* Finance-only Calm bridge. Desktop owns the shared calm.css and shell. */
html.tr .calm-finance-tabs{background:var(--surface-2);padding:5px;border:1px solid var(--line);border-radius:999px;gap:4px;flex-wrap:wrap}
html.tr .calm-finance-tabs button{border-radius:999px;min-height:44px;background:var(--surface-2);color:var(--muted);border:0;padding:10px 16px}
html.tr .calm-finance-tabs button.active{background:var(--surface);color:var(--brand-ink);box-shadow:0 1px 3px var(--line)}
html.tr .admin-section{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px;margin-bottom:20px;color:var(--ink)}
html.tr .admin-section p{color:var(--muted);line-height:1.65}
html.tr .account-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
html.tr .account-search{min-width:220px;max-width:320px;flex:1}
html.tr .account-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0}
html.tr .account-scroll{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:0}
html.tr .finance-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}
html.tr .account-scroll .finance-table-wrap{border:0;border-radius:0}
html.tr .finance-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
html.tr .finance-table th{background:var(--surface-2);color:var(--muted);font-size:12.5px;font-weight:600;padding:14px 18px;text-align:left}
html.tr .finance-table td{padding:16px 18px;border-top:1px solid var(--line);color:var(--ink);vertical-align:middle}
html.tr .finance-table tbody tr:hover{background:var(--surface-2)}
html.tr .account-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:auto;min-width:44px;min-height:44px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink-2);margin:3px}
html.tr .account-action svg{width:18px;height:18px;flex:none}
html.tr .account-action:hover{color:var(--brand-ink);background:var(--brand-soft);border-color:var(--brand)}
html.tr .family-summary-card{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:14px}
html.tr .family-summary-card.paid{background:var(--ok-bg);color:var(--ok-ink)}
html.tr .family-summary-card.due{background:var(--warn-bg);color:var(--warn-ink)}
html.tr .statement-equation,html.tr .family-account-panel,html.tr .bursary-policy{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:14px}
html.tr .admin-section .error{color:var(--danger)}
html.tr .admin-section :focus-visible,html.tr .family-account-profile :focus-visible{outline:2px solid var(--brand);outline-offset:3px}
@media(max-width:699px){
 html.tr .admin-section{padding:16px;border-radius:16px}
 html.tr .account-heading{gap:12px}.account-search{width:100%}
 html.tr .calm-finance-tabs{border-radius:16px}
 html.tr .finance-table,html.tr .finance-table tbody,html.tr .finance-table tr,html.tr .finance-table td{display:block;width:auto}
 html.tr .finance-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 html.tr .finance-table tr{padding:12px 16px;border-bottom:1px solid var(--line)}
 html.tr .finance-table td{border:0;padding:5px 0;overflow-wrap:anywhere}
 html.tr .finance-table td::before{content:attr(data-label);display:block;font-size:12px;color:var(--muted);margin-bottom:3px}
 html.tr .finance-table td:last-child{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
 html.tr .finance-table td:last-child::before{width:100%}
 html.tr .account-action{flex:1;margin:2px 0}
 html.tr .family-summary-grid{display:grid;grid-template-columns:1fr}
}
@media print{html.tr .finance-table thead{position:static;clip-path:none;width:auto;height:auto}html.tr .finance-table{display:table}html.tr .finance-table tbody{display:table-row-group}html.tr .finance-table tr{display:table-row}html.tr .finance-table td{display:table-cell}html.tr .finance-table td::before{display:none}html.tr .finance-table td:last-child{display:table-cell}}
html.tr #content .calm-finance-tabs{border-radius:999px;background:var(--surface-2)}
html.tr .account-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
html.tr .calm-finance-workspace .card{background:var(--surface);border-color:var(--line);color:var(--ink)}
html.tr .calm-finance-workspace input,html.tr .calm-finance-workspace select,html.tr .calm-finance-workspace textarea{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}
html.tr .calm-finance-workspace details{border-color:var(--line);color:var(--ink-2)}
@media(max-width:699px){html.tr #content .calm-finance-tabs{border-radius:16px}html.tr .account-actions{width:100%;justify-content:stretch}html.tr .account-actions .account-action{flex:1}}
/* Bursary policy spacing and finance catalogue modal controls. */
html.tr .admin-section .bursary-policy{padding:20px 24px;margin-top:24px}
html.tr .admin-section .bursary-policy h3{margin:0 0 16px;color:var(--ink)}
html.tr .admin-section .bursary-policy label{display:grid;grid-template-columns:minmax(200px,1fr) minmax(240px,360px);align-items:center;gap:16px;max-width:760px;color:var(--ink-2)}
html.tr .admin-section .bursary-policy select{width:100%;min-height:44px;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong)}
html.tr .admin-section .bursary-policy p{margin:16px 0 0;max-width:80ch;color:var(--muted)}
html.tr .subject-price-fields{border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--surface-2);margin:8px 0}
html.tr .subject-price-fields legend{padding:0 8px;color:var(--ink);font-weight:600}
html.tr .subject-price-fields input{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}
@media(max-width:699px){html.tr .admin-section .bursary-policy{padding:16px}html.tr .admin-section .bursary-policy label{grid-template-columns:1fr;gap:8px}html.tr .subject-price-fields{padding:16px}}
/* Add bursary: period checkboxes, end choice with +1 week, and the year-end list on the Bursaries page. */
html.tr #workflowForm .award-checks{display:grid;gap:6px;max-height:260px;overflow:auto}
html.tr #workflowForm .award-checks label,html.tr #workflowForm .award-radio{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);cursor:pointer;font-weight:500}
/* The grid and flex rules above would otherwise override the hidden attribute (Weekly / Half-terms / Terms switching). */
html.tr #workflowForm .award-period[hidden],html.tr #workflowForm .award-checks [hidden],html.tr #workflowForm .award-hint[hidden],html.tr #workflowForm #awardFromWrap[hidden],html.tr #workflowForm #awardValueWrap[hidden]{display:none}
html.tr #workflowForm .award-checks label:has(input:checked),html.tr #workflowForm .award-radio:has(input:checked){border-color:var(--brand);background:var(--brand-softer)}
html.tr #workflowForm .award-checks input,html.tr #workflowForm .award-radio input{width:18px;height:18px;min-height:0;margin:0;flex:none;accent-color:var(--brand)}
html.tr #workflowForm .award-checks span{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--muted)}
html.tr #workflowForm .award-checks strong{color:var(--ink)}
html.tr #workflowForm .award-ends{display:grid;gap:8px}
html.tr #workflowForm .award-end-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
html.tr #workflowForm .award-end-row input[type=date]{flex:1 1 150px;min-width:0;width:auto}
html.tr #workflowForm .award-end-row button{min-height:44px;white-space:nowrap}
html.tr #workflowForm .award-radio small{color:var(--muted)}
html.tr #workflowForm .award-hint{margin:0;color:var(--muted)}
html.tr .bursary-year-end{clear:both;margin:12px 0 16px;padding:14px 18px;border:1px solid var(--warn);border-radius:14px;background:var(--warn-bg);color:var(--warn-ink)}
html.tr .bursary-year-end ul{margin:8px 0 0;padding-left:20px}
html.tr .bursary-year-end p{margin:8px 0 0;color:var(--warn-ink)}
