*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#060d18;--surface:#0c1627;--border:#1a2d4a;--border-hi:#1e3a5f;--text:#c8d8ea;--text-dim:#4a6480;--text-hi:#e8f4ff;--green:#3ddc84;--green-dim:#1a6640;--teal:#0ea5e9;--teal-dim:#0c4a6e;--amber:#f59e0b;--red:#ef4444;--red-dim:#7f1d1d;--mono:"IBM Plex Mono",monospace;--sans:"IBM Plex Sans",sans-serif}body,html{height:100%;background:var(--bg);color:var(--text);font-family:var(--sans)}a{color:inherit;text-decoration:none}.automation-card,.report-card{display:block;height:200px;border-radius:6px;padding:24px;transition:border-color .15s,background .15s;cursor:pointer}.report-card{background:var(--surface);border:1px solid var(--border)}.report-card:hover{border-color:var(--border-hi);background:#0f1e35}.automation-card{background:#0c1a10;border:1px solid #1a3020}.automation-card:hover{border-color:rgba(245,158,11,.25);background:#0e1e12}.card-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.admin-lock{position:absolute;bottom:16px;left:16px;display:flex;align-items:center;color:var(--text-dim);opacity:.7;transition:opacity .15s,color .15s}.admin-lock:hover{opacity:1;color:var(--text-hi)}.admin-lock-tip{position:absolute;bottom:calc(100% + 6px);left:0;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:5px 8px;font-family:var(--mono);font-size:10px;color:var(--text-dim);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:20}.admin-lock:hover .admin-lock-tip{opacity:1}.logo-link{color:var(--text-dim);text-decoration:none;transition:color .15s}.logo-link:hover{color:var(--text-hi)}.logo-link-alert{color:#fde68a}.logo-link-alert:hover{color:#fef3c7}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:3px}@keyframes spin{to{transform:rotate(1turn)}}.spinner{width:14px;height:14px;border-radius:50%;border:1.5px solid hsla(0,0%,100%,.08);border-top:1.5px solid var(--text-dim);animation:spin .65s linear infinite;flex-shrink:0}@keyframes uu-pulse{0%,to{opacity:.6}50%{opacity:.15}}.updating{animation:uu-pulse 1.4s ease-in-out infinite}