:root{--page:#f9f9f7;--surface-1:#fcfcfb;--text-primary:#0b0b0b;--text-secondary:#52514e;--text-muted:#898781;--gridline:#e1e0d9;--baseline:#c3c2b7;--border:#0b0b0b1a;--accent:#2a78d6;--accent-track:#cde2fb;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--page:#0d0d0d;--surface-1:#1a1a19;--text-primary:#fff;--text-secondary:#c3c2b7;--text-muted:#898781;--gridline:#2c2c2a;--baseline:#383835;--border:#ffffff1a;--accent:#3987e5;--accent-track:#184f95}}*{box-sizing:border-box}body{background:var(--page);color:var(--text-primary);-webkit-font-smoothing:antialiased;margin:0}.page{max-width:960px;margin:0 auto;padding:32px 24px 64px}.header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.header h1{margin:0 0 4px;font-size:1.5rem;font-weight:650}.subtitle{color:var(--text-secondary);margin:0;font-size:.875rem}.badge{border:1px solid var(--border);background:var(--surface-1);color:var(--text-secondary);border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:.75rem;font-weight:550}.controls{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.controls input[type=search]{border:1px solid var(--baseline);background:var(--surface-1);max-width:340px;color:var(--text-primary);font:inherit;border-radius:8px;flex:1;padding:8px 12px;font-size:.875rem}.controls input[type=search]:focus{outline:2px solid var(--accent);outline-offset:-1px}.row-count{color:var(--text-muted);font-size:.8125rem}.table-wrap{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}thead th{text-align:left;border-bottom:1px solid var(--gridline);color:var(--text-secondary);white-space:nowrap;padding:10px 12px;font-weight:550}.sort-btn{all:unset;cursor:pointer;font:inherit;color:inherit}.sort-btn:hover{color:var(--text-primary)}.sort-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}tbody td{border-bottom:1px solid var(--gridline);padding:10px 12px}tbody tr:last-child td{border-bottom:none}.client-row{cursor:pointer}.client-row:hover td{background:color-mix(in srgb, var(--accent) 6%, transparent)}.th-expand,.td-expand{width:28px;color:var(--text-muted);padding-right:0}.td-name{font-weight:550}.th-num,.td-num{text-align:right}.td-num{font-variant-numeric:tabular-nums;font-weight:600}.th-date,.td-date{text-align:right;white-space:nowrap}.td-date{color:var(--text-secondary);font-variant-numeric:tabular-nums}.detail-row td{background:color-mix(in srgb, var(--gridline) 30%, transparent)}.breakdown{gap:6px;max-width:560px;padding:4px 0;display:grid}.breakdown-row{grid-template-columns:160px 1fr 40px;align-items:center;gap:10px;display:grid}.breakdown-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.breakdown-track{display:block}.breakdown-bar{background:var(--accent);border-radius:0 4px 4px 0;min-width:2px;height:12px;display:block}.breakdown-count{font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:.8125rem}.btn{border:1px solid var(--baseline);background:var(--surface-1);color:var(--text-primary);font:inherit;cursor:pointer;border-radius:8px;padding:6px 14px;font-size:.8125rem;font-weight:550}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-link{all:unset;cursor:pointer;color:var(--accent);font-size:.8125rem;font-weight:550}.btn-link:hover{text-decoration:underline}.btn-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.header-side{flex-shrink:0;align-items:center;gap:12px;display:flex}.admin-panel{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;gap:8px;margin-bottom:20px;padding:12px 16px;display:grid}.admin-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.admin-actions{align-items:center;gap:10px;display:flex}.admin-user{color:var(--text-muted);border-left:1px solid var(--gridline);align-items:center;gap:8px;padding-left:8px;font-size:.8125rem;display:inline-flex}.sync-status{color:var(--text-secondary);align-items:center;gap:8px;font-size:.875rem;display:inline-flex}.sync-status.failed{color:#c4483e}.spinner{border:2px solid var(--accent-track);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.admin-disclosure summary{cursor:pointer;color:var(--text-secondary);font-size:.8125rem;font-weight:550}.admin-disclosure[open] summary{margin-bottom:8px}.backfill-form{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.backfill-form label{color:var(--text-muted);gap:4px;font-size:.75rem;display:grid}.backfill-form input[type=date]{border:1px solid var(--baseline);background:var(--surface-1);color:var(--text-primary);font:inherit;border-radius:8px;padding:6px 10px;font-size:.8125rem}.history-wrap{max-height:320px;overflow-y:auto}.td-date-left{white-space:nowrap;color:var(--text-secondary);font-variant-numeric:tabular-nums}.run-outcome{margin-right:8px;font-size:.8125rem;font-weight:550}.run-outcome.success{color:#2e7d43}.run-outcome.failed{color:#c4483e}.run-outcome.running{color:var(--accent)}.modal-backdrop{z-index:10;background:#0006;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;gap:12px;width:min(340px,100vw - 48px);padding:24px;display:grid}.modal h2{margin:0;font-size:1.125rem}.modal label{color:var(--text-secondary);gap:4px;font-size:.8125rem;display:grid}.modal input{border:1px solid var(--baseline);background:var(--surface-1);color:var(--text-primary);font:inherit;border-radius:8px;padding:8px 12px;font-size:.875rem}.modal input:focus{outline:2px solid var(--accent);outline-offset:-1px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.form-error{color:#c4483e;margin:0;font-size:.8125rem}.loading,.empty-note{color:var(--text-muted);padding:16px 12px}.error-card{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;max-width:560px;margin:48px auto;padding:24px}.error-card h1{margin:0 0 8px;font-size:1.125rem}.error-card p{color:var(--text-secondary);margin:0;line-height:1.5}
