:root{--bg: #0b0f14;--surface: #121821;--surface-2: #1a2230;--border: #263042;--text: #e6edf5;--text-dim: #8a97a8;--accent: #4f8cff;--success: #3fbf6f;--warning: #e0a63c;--danger: #e05c5c;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:24px 16px;display:flex;flex-direction:column;gap:4px}.sidebar h1{font-size:16px;margin:0 0 24px 8px}.sidebar .tenant-name{font-size:12px;color:var(--text-dim);margin:-20px 0 20px 8px}.sidebar a,.sidebar button{display:block;padding:10px 8px;border-radius:6px;color:var(--text);font-size:14px;background:none;border:none;text-align:left;cursor:pointer;width:100%;font-family:inherit}.sidebar a:hover,.sidebar button:hover{background:var(--surface-2)}.sidebar a.active{background:var(--accent);color:#fff}.sidebar .logout{margin-top:auto;color:var(--text-dim)}.content{flex:1;padding:32px 40px;max-width:1100px}h2{font-size:20px;margin:0 0 24px}.cards-row{display:flex;gap:16px;margin-bottom:32px;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 20px;min-width:160px}.card .label{font-size:12px;color:var(--text-dim);margin-bottom:6px}.card .value{font-size:24px;font-weight:600}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--text-dim);font-weight:500;font-size:12px;padding:8px 12px;border-bottom:1px solid var(--border)}td{padding:10px 12px;border-bottom:1px solid var(--border)}tr:hover td{background:var(--surface-2)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:24px;overflow-x:auto}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px}.badge.success{background:#3fbf6f26;color:var(--success)}.badge.failed,.badge.exhausted{background:#e05c5c26;color:var(--danger)}.badge.pending,.badge.skipped{background:#e0a63c26;color:var(--warning)}.badge.processed{background:#3fbf6f26;color:var(--success)}.badge.unattributed{background:#e0a63c26;color:var(--warning)}.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.bar-label{width:160px;font-size:13px;color:var(--text-dim);flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{flex:1;background:var(--surface-2);border-radius:4px;height:10px;overflow:hidden}.bar-fill{background:var(--accent);height:100%}.bar-value{width:70px;text-align:right;font-size:13px;color:var(--text-dim)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:32px;width:320px}.login-box h1{font-size:18px;margin:0 0 24px}input{width:100%;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:14px;margin-bottom:12px}button.primary{width:100%;padding:10px 12px;background:var(--accent);border:none;border-radius:6px;color:#fff;font-size:14px;cursor:pointer;font-weight:600}button.primary:disabled{opacity:.6;cursor:default}.error-text{color:var(--danger);font-size:13px;margin:-4px 0 12px}.hint-text{color:var(--text-dim);font-size:13px;margin-top:12px}.filters{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.filters input,.filters select{width:auto;margin-bottom:0}.empty-state{color:var(--text-dim);font-size:14px;padding:24px 0;text-align:center}.destination-form{display:flex;flex-direction:column;gap:4px;max-width:480px}.destination-form label{font-size:12px;color:var(--text-dim);margin-top:8px}.toggle-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer}.roi-positive{color:var(--success);font-weight:600}.roi-negative{color:var(--danger);font-weight:600}
