/* Admin -> Timesheets (js/admin-timesheets.js) */
.glad-ts h3{margin:0 0 10px;font-size:15px}
.glad-ts h4{margin:14px 0 6px;font-size:13px}
.glad-ts .ts-muted{color:#6b7280;font-weight:400;font-size:12px}
.glad-ts .ts-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0 14px}
.glad-ts .ts-tile{border:1px solid #e3e6dc;background:#fff;border-radius:12px;padding:12px 14px}
.glad-ts .ts-tile b{display:block;font-size:26px;line-height:1}
.glad-ts .ts-tile span{font-size:12px;color:#5b6157}
.glad-ts .ts-tile.hot{border-color:#f0a43a;background:#fff6e8}
.glad-ts .ts-table-wrap{overflow-x:auto;border:1px solid #e6e8e1;border-radius:10px}
.glad-ts .ts-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:720px}
.glad-ts .ts-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#5b6157;background:#f6f7f3;padding:8px 9px;border-bottom:1px solid #e6e8e1}
.glad-ts .ts-table td{padding:8px 9px;border-bottom:1px solid #eef0ea;vertical-align:top}
.glad-ts .ts-table tr:last-child td{border-bottom:0}
.glad-ts .ts-table tr.is-edited td:first-child{box-shadow:inset 3px 0 0 #f08c1a}
.glad-ts .ts-diff{background:#fde2e0;font-weight:700;color:#9b1c1c}
.glad-ts .ts-warn-cell{background:#fff6e0}
.glad-ts .ts-total td{font-weight:800;background:#f6f7f3}
.glad-ts .ts-flag{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:2px 8px;background:#eef0ea;color:#4b5146;margin:1px 0}
.glad-ts .ts-flag.edit{background:#ffe9cc;color:#7a3e00}
.glad-ts .ts-flag.bad{background:#fde2e0;color:#8a1f15}
.glad-ts .ts-note{font-size:12px;color:#4b5146;margin-top:4px;font-style:italic}
.glad-ts .ts-actions-cell{white-space:nowrap}
.glad-ts .ts-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0}
.glad-ts .ts-period{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 12px;padding:10px 12px;border:1px solid #e3e6dc;border-radius:12px;background:#fbfcf8}
.glad-ts .ts-period input{padding:5px 7px;border:1px solid #d6d9cf;border-radius:7px}
.glad-ts .ts-rates{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-end;margin-bottom:10px;font-size:12px}
.glad-ts .ts-rates-title{flex:1 1 100%;font-weight:700}
.glad-ts .ts-rates label{display:flex;flex-direction:column;gap:3px;font-weight:600}
.glad-ts .ts-rates input,.glad-ts .ts-rates select,.glad-ts .ts-names input{padding:6px 8px;border:1px solid #d6d9cf;border-radius:7px;min-width:150px;font:inherit}
.glad-ts .ts-names input{min-width:120px;width:100%}
.glad-ts .ts-empty{padding:12px;border:1px dashed #d6d9cf;border-radius:10px;color:#6b7280;font-size:13px}
.glad-ts .ts-confirm{margin-top:8px;padding:12px;border:2px solid #f0a43a;border-radius:10px;background:#fff6e8;font-size:13px}
.glad-ts .ts-flash{margin:8px 0;padding:9px 12px;border-radius:10px;background:#eaf7dc;color:#2f5b0f;font-weight:700;font-size:13px}
.glad-ts .ts-chips{display:grid;gap:8px}
.glad-ts .ts-person{padding:8px 10px;border:1px solid #eef0ea;border-radius:10px;font-size:13px}
.glad-ts .ts-awaiting code{background:rgba(0,0,0,.06);padding:1px 4px;border-radius:4px}
/* 9 Oct 2026: by-staff dropdowns, clock column, still clocked on */
.glad-ts .ts-staff{border:1px solid #e3e6dc;border-radius:12px;background:#fff;margin:0 0 8px;padding:0}
.glad-ts .ts-staff>summary{cursor:pointer;padding:10px 12px;font-size:13.5px;list-style:revert}
.glad-ts .ts-staff[open]>summary{border-bottom:1px solid #eef0ea}
.glad-ts .ts-staff .ts-table-wrap{border:0;border-radius:0}
.glad-ts .ts-by-staff{min-width:980px}
.glad-ts .ts-worked-grid{display:flex;flex-wrap:wrap;gap:6px}
.glad-ts .ts-worked-grid label{display:flex;flex-direction:column;font-size:10.5px;font-weight:700;color:#5b6157;padding:2px 4px;border-radius:6px}
.glad-ts .ts-worked-grid input,.glad-ts .ts-by-staff input[type=text],.glad-ts .ts-still-on input{padding:5px 6px;border:1px solid #d6d9cf;border-radius:7px;font:inherit;font-size:12.5px}
.glad-ts .ts-worked-grid label.ts-diff input{border-color:#f08c1a;background:#fff3e0}
.glad-ts .ts-diff-text{background:#fde2e0;color:#9b1c1c;font-weight:700;border-radius:4px;padding:0 3px}
.glad-ts .ts-clock{color:#1a3f8f}
.glad-ts .ts-row-err{color:#b3261e;font-size:11.5px;margin-top:4px;white-space:normal}
.glad-ts .ts-row-ok{color:#2f5b0f;font-size:11.5px;margin-top:4px}
.glad-ts .ts-badge-a{display:inline-block;font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 8px;background:#eef0ea;color:#4b5146}
.glad-ts .ts-badge-a.submitted{background:#e2ecfb;color:#1a3f8f}
.glad-ts .ts-badge-a.edited{background:#ffe9cc;color:#7a3e00}
.glad-ts .ts-badge-a.rejected{background:#fde2e0;color:#8a1f15}
.glad-ts .ts-badge-a.approved,.glad-ts .ts-badge-a.exported{background:#e3f3d3;color:#2f5b0f}
.glad-ts .ts-badge-a.not_submitted,.glad-ts .ts-badge-a.draft{background:#fff3cf;color:#6d5a22}
.glad-ts .ts-still-on{border:2px solid #f0a43a;background:#fffaf0}

/* 9 Oct layout: Staff name -> Date | Rostered | Worked; red = differs */
.glad-ts .ts-staff-list{margin:10px 0 14px}
.glad-ts .ts-by-staff{width:100%;border-collapse:collapse}
.glad-ts .ts-by-staff th,.glad-ts .ts-by-staff td{padding:8px 10px;border-top:1px solid #eef0ea;vertical-align:top;text-align:left;font-size:13px}
.glad-ts .ts-by-staff th{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:#6b7065;border-top:0}
.glad-ts .ts-by-staff tr.ts-row-diff td{background:#fff5f5}
.glad-ts .ts-by-staff tr.ts-row-diff td:first-child{box-shadow:inset 3px 0 0 #dc2626}
.glad-ts .ts-by-staff tr td.ts-worked-diff{background:#fde2e0}
.glad-ts .ts-by-staff tr td.ts-worked-diff .ts-worked-main{color:#9b1c1c;font-weight:700}
.glad-ts .ts-flag.red{background:#fde2e0;color:#9b1c1c}
.glad-ts .ts-red-text{color:#9b1c1c;font-style:normal;font-weight:700}
.glad-ts .ts-light{margin-top:4px;font-size:11.5px;opacity:.85}
.glad-ts .ts-link{background:none;border:0;padding:0 4px;color:#4b6a2f;font-size:11.5px;text-decoration:underline;cursor:pointer}
.glad-ts .ts-edit{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:6px;padding:8px;border:1px dashed #d6dacd;border-radius:8px;background:#fafbf7}
.glad-ts .ts-edit label{display:flex;flex-direction:column;font-size:11px;color:#6b7065;gap:2px}
.glad-ts .ts-edit .ts-edit-note{flex:1 1 160px}
.glad-ts .ts-edit-actions{display:flex;gap:6px;align-items:center}
.glad-ts .ts-more{margin-top:10px;border-top:1px solid #eef0ea;padding-top:8px}
.glad-ts .ts-more>summary{cursor:pointer;font-size:13px;color:#4b5146;padding:4px 0}
.glad-ts .ts-quiet-note{font-size:12px;color:#6b7065;margin:6px 0}

/* pay cycle header + arrows */
.glad-ts .ts-cycle{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 4px}
.glad-ts .ts-cycle-label{font-size:16px}
.glad-ts .ts-cycle-arrow{min-width:36px;padding:4px 10px}
.glad-ts .ts-period-light{opacity:.8;font-size:12px}
.glad-ts .ts-paid-note{margin:0 0 6px;font-size:12px}
