.dash-main{padding:16px;max-width:100%;margin:0 auto}
.summary-cards{display:flex;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.summary-card{background:#fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.08);padding:10px 16px;min-width:130px;flex:0 0 auto}
.summary-card .lbl{font-size:.7rem;color:#8a97a8;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.summary-card .val{font-size:1.4rem;font-weight:700;color:#1a2535;margin-top:2px}
.summary-card.money .val{color:#1a5f2a}
.summary-card.warn .val{color:#c0392b}

.grid-wrap{background:#fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.08);overflow:auto;max-height:calc(100vh - 220px)}
table.master{border-collapse:separate;border-spacing:0;font-size:.75rem;width:max-content;min-width:100%}
table.master th{background:#1a2535;color:#fff;font-weight:600;font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;padding:6px 8px;border-right:1px solid #2a3545;white-space:nowrap;position:sticky;top:0;z-index:5}
table.master td{padding:4px 8px;border-right:1px solid #eef0f3;border-bottom:1px solid #f0f2f5;white-space:nowrap;vertical-align:middle;background:#fff}
table.master tbody tr:hover td{background:#f7fafd}
table.master tbody tr.jr td{background:#fffbe6}
table.master tbody tr.jr:hover td{background:#fff7cc}

/* Sticky left columns: back#, rider, horse */
table.master .col-sticky{position:sticky;left:0;z-index:4;box-shadow:1px 0 0 #dde3ec}
table.master th.col-sticky{z-index:6}
table.master .col-back{min-width:44px;text-align:center;font-weight:700;color:#556}
table.master .col-rider{left:44px;min-width:140px;font-weight:600;color:#1a2535}
table.master th.col-rider{left:44px}
table.master .col-horse{left:184px;min-width:130px;color:#334;font-style:italic}
table.master th.col-horse{left:184px}
table.master .col-status{min-width:44px;text-align:center;color:#556;font-weight:600;font-size:.7rem}

/* Class-number grid */
table.master th.col-class{writing-mode:vertical-rl;transform:rotate(180deg);padding:6px 3px;min-width:22px;max-width:22px;font-size:.62rem;background:#2a3545}
table.master th.col-class-wu{writing-mode:horizontal-tb;transform:none;padding:6px 4px;font-size:.62rem;background:#2a3545;min-width:26px}
table.master td.col-class{text-align:center;min-width:22px;max-width:22px;padding:4px 0;color:#1a5f2a;font-weight:700;font-size:.85rem}
table.master td.col-class.empty{color:#e6ebf1}

/* Money columns */
table.master th.col-money{background:#0e5c2f}
table.master td.col-money{text-align:right;font-weight:700;color:#1a5f2a;min-width:60px}
table.master td.col-money.warn{color:#c0392b}
table.master td.col-money.owe-back{color:#b26a00}
table.master td.col-money.zero{color:#c0c8d0;font-weight:400}
table.master th.col-sent,table.master td.col-sent{min-width:78px}
table.master td.col-outstanding{min-width:88px}
table.master .pay-input{width:70px;border:1px solid #dde3ec;border-radius:4px;padding:3px 6px;font:inherit;font-size:.78rem;text-align:right;background:#fff;color:#1a5f2a;font-weight:700;outline:none}
table.master .pay-input:focus{border-color:#4a9eff;background:#fbfdff}
table.master .pay-input:disabled{opacity:.5}

/* Flag columns (Y/N, initials) */
table.master th.col-flag{background:#4a4a6a}
table.master td.col-flag{text-align:center;min-width:44px;font-size:.72rem}
table.master td.col-flag .yes{color:#1a5f2a;font-weight:700}
table.master td.col-flag .no{color:#c0392b;font-weight:600}
table.master td.col-flag .neutral{color:#8a97a8}
table.master td.col-hcbc{min-width:80px;font-family:'SFMono-Regular',Consolas,monospace;font-size:.7rem;color:#556}

/* Notes column */
table.master th.col-notes{background:#6a5a3a}
table.master td.col-notes{min-width:180px;max-width:280px;white-space:normal;font-size:.72rem;color:#664;font-style:italic;line-height:1.3;padding:4px 8px}

/* Group heading columns */
table.master th.grp-classes{background:#1a3a5f;text-align:center}
table.master th.grp-money{background:#0e5c2f;text-align:center}
table.master th.grp-flags{background:#4a4a6a;text-align:center}

.empty-msg{padding:40px;text-align:center;color:#8a97a8;font-style:italic}
