.preshow-main{padding:16px;max-width:1100px;margin:0 auto}
.grid-wrap{background:#fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.08);overflow:auto;max-height:calc(100vh - 140px)}
table.preshow{border-collapse:collapse;width:100%;font-size:.8rem}
table.preshow th{background:#1a2535;color:#fff;font-weight:600;font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;padding:6px 8px;position:sticky;top:0;z-index:2;text-align:left;border-right:1px solid #2a3545;line-height:1.15}
table.preshow th.num{text-align:right}
table.preshow td{padding:2px 8px;border-bottom:1px solid #f0f2f5;border-right:1px solid #eef0f3;vertical-align:middle;line-height:1.25}
table.preshow tbody tr:hover td{background:#f7fafd}
table.preshow tbody tr.zero td{color:#8a97a8}
/* Column layout/width applies to <th> and <td>; text colors apply only to <td>
   so the dark-blue header labels stay white/readable. */
table.preshow .col-class{min-width:70px;white-space:nowrap}
table.preshow td.col-class{font-weight:700;color:#556}
table.preshow .col-name{min-width:180px}
table.preshow td.col-name{color:#1a2535}
table.preshow .col-test{min-width:60px}
table.preshow td.col-test{color:#334}
table.preshow .col-time{min-width:70px;text-align:right}
table.preshow .col-time .time-val{color:#1a2535;font-weight:700;font-size:.85rem}
table.preshow .col-time .time-val.struck{color:#8a97a8;font-weight:500;text-decoration:line-through;text-decoration-color:#c0392b;text-decoration-thickness:1.5px}
table.preshow .col-time .time-empty{color:#c0c8d0;font-weight:400;font-style:italic}
table.preshow .col-entries{text-align:right;min-width:70px}
table.preshow td.col-entries{font-weight:600;color:#1a2535}
table.preshow .col-min{text-align:right;min-width:90px}
table.preshow .col-min .override-input{width:74px;border:1px solid #dde3ec;border-radius:4px;padding:2px 6px;font:inherit;font-size:.8rem;text-align:right;background:#fff;color:#1a5f2a;font-weight:600;outline:none}
table.preshow .col-min .override-input::placeholder{color:#c0c8d0;font-weight:400;font-style:italic}
table.preshow .col-min .override-input:focus{border-color:#4a9eff}
table.preshow .col-min .override-input.is-override{background:#fff2e0;border-color:#e0a05a;color:#b26a00;font-weight:700}
table.preshow .col-min .override-input.saving{border-color:#4a9eff;box-shadow:0 0 0 1px rgba(74,158,255,.25) inset}
table.preshow tr.has-override td.col-hrs{color:#b26a00}
table.preshow .col-hrs{text-align:right;min-width:80px}
table.preshow td.col-hrs{font-weight:600;color:#1a5f2a}
table.preshow th .th-sub{display:block;font-size:.55rem;font-weight:400;color:#a5b0c0;text-transform:none;letter-spacing:0;margin-top:1px}
table.preshow td.col-class .variant{color:#8a97a8;font-weight:400;font-size:.7rem;margin-left:2px}
table.preshow td.col-name .ring{background:#eef0f3;color:#334;padding:1px 5px;border-radius:3px;font-size:.72rem;font-weight:600;letter-spacing:.02em}
table.preshow tr.variant-row td.col-class,table.preshow tr.variant-row td.col-name,table.preshow tr.variant-row td.col-test{background:#fbfcfd}
table.preshow tr.variant-row td.col-class{padding-left:16px}
table.preshow tfoot td{background:#f7f9fc;border-top:2px solid #1a2535;font-weight:700;color:#1a2535;padding:8px}
table.preshow tfoot td.totals-label{text-align:right;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;color:#556}
table.preshow tfoot td.num{text-align:right;font-size:.95rem}
.empty-msg{padding:40px;text-align:center;color:#8a97a8;font-style:italic}
