*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif;background:#f5f5f7;color:#1a1a1a}.app{max-width:1100px;margin:0 auto;padding:24px 16px}.login{max-width:420px;margin:80px auto;padding:24px;background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000001a}.login h1{font-size:18px;margin:0 0 16px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field label{font-size:13px;color:#555}.field input,.field select,.field textarea{padding:8px 10px;border:1px solid #ccc;border-radius:4px;font-size:14px;font-family:inherit}button{padding:8px 14px;border:none;border-radius:4px;background:#2b5cff;color:#fff;font-size:14px;cursor:pointer}button:disabled{background:#aab5d6;cursor:not-allowed}button.secondary{background:#e8e8ec;color:#1a1a1a}button.danger{background:#d33}header.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}header.top h1{font-size:20px;margin:0}.top-title{display:flex;flex-direction:column;gap:4px}.session-meta{margin:0;font-size:13px;color:#555}.view-tabs{display:flex;gap:8px;margin-bottom:12px}button.tab{background:#e8e8ec;color:#1a1a1a}button.tab.active{background:#2b5cff;color:#fff}.undelivered-hint{margin-top:0}.warn-banner{background:#fff4d6;color:#a06a00;padding:10px 14px;border-radius:6px;margin-bottom:16px;font-size:14px}.role-gate{background:#fff;border-radius:8px}.filters{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid #eee;font-size:14px}th{background:#fafafa;font-weight:600;color:#555}tr.selectable{cursor:pointer}tr.selectable:hover{background:#f0f4ff}tr.selectable:focus-visible{outline:2px solid #2b5cff;outline-offset:-2px}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500}.badge.status-new{background:#e8eefd;color:#2b5cff}.badge.status-in_progress{background:#fff4d6;color:#a06a00}.badge.status-issued{background:#dff5e3;color:#1a7a34}.badge.status-rejected,.badge.delivery-undelivered{background:#fde4e4;color:#b02323}.error-banner{background:#fde4e4;color:#b02323;padding:10px 14px;border-radius:6px;margin-bottom:16px;font-size:14px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;display:flex;justify-content:flex-end}.panel{width:min(420px,100%);background:#fff;height:100%;padding:24px;overflow-y:auto}.panel:focus{outline:none}.panel h2{margin-top:0;font-size:18px}.panel dl{margin:16px 0}.panel dt{font-size:12px;color:#777;margin-top:10px}.panel dd{margin:2px 0 0;font-size:14px}.panel .actions{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap}.empty{padding:40px;text-align:center;color:#888}.hint{font-size:13px;color:#666;margin:8px 0 16px}.oauth-block{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #eee}.fund-panel{background:#fff;border-radius:8px;padding:16px;margin-bottom:16px}.fund-panel h2{margin:0 0 12px;font-size:16px}.fund-quota{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}.fund-quota .label{display:block;font-size:12px;color:#777}.fund-quota strong{font-size:18px}.fund-table{margin-top:8px}.audit-panel{background:#fff;border-radius:8px;padding:16px;margin-bottom:16px}.audit-panel h2{margin:0 0 8px;font-size:16px}.audit-filter{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:16px}.audit-filter .field{margin-bottom:0;min-width:240px;flex:1}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.badge.outcome-prize{background:#dff5e3;color:#1a7a34}.badge.outcome-quote{background:#e8eefd;color:#2b5cff}.badge.outcome-rejected_unsubscribed,.badge.outcome-rejected_already_spun{background:#fff4d6;color:#a06a00}.badge.outcome-error{background:#fde4e4;color:#b02323}.overview .stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:12px 0 16px}.overview .stat{border:1px solid #d9dfeb;border-radius:10px;padding:12px 14px;background:#fff}.overview .stat .label{display:block;font-size:12px;color:#6a7688;margin-bottom:4px}.overview .stat strong{font-size:26px;line-height:1.1;display:block}.overview .stat .sub{font-size:12px;color:#6a7688}.sparkline{margin-top:12px}.sparkline-days{display:flex;justify-content:space-between;font-size:10px;color:#8892a6}.errors-filters label+label{margin-left:12px}.errors-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px}.errors-table th,.errors-table td{border-bottom:1px solid #e4e9f2;padding:6px 8px;text-align:left;vertical-align:top}.errors-table details summary{cursor:pointer}.errors-table pre{white-space:pre-wrap;word-break:break-all;max-width:480px;font-size:11px}
