:root{--bg:#f9fafb;--surface:#ffffff;--text:#111827;--text-muted:#6b7280;--border:#e5e7eb;--primary:#28234a;--primary-hover:#3f367a;--danger:#ef4444;--success:#10b981;--warning:#f59e0b}.page.dark{--bg:#0f111a;--surface:#1a1d27;--text:#f9fafb;--text-muted:#9ca3af;--border:#2d323e;--primary:#a69ed8;--primary-hover:#c4beea}.page{background:var(--bg);color:var(--text);min-height:100vh;padding:1rem;font-family:Inter,system-ui,sans-serif;transition:all .2s ease-in-out}.header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.title-group h1{margin:0 0 .5rem;font-size:1.5rem;font-weight:700;letter-spacing:-.025em}.nav-link{color:var(--primary);font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:.5rem;text-decoration:none;opacity:.8}.nav-link:hover{opacity:1;text-decoration:underline}.primary-btn{background:var(--primary);color:#fff;border:none;padding:.75rem 1.25rem;border-radius:8px;font-weight:600;font-size:.875rem;cursor:pointer;display:flex;align-items:center;gap:.75rem;transition:transform .1s,background .2s;box-shadow:0 1px 2px rgba(0,0,0,.05)}.primary-btn:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.primary-btn:active{transform:translateY(0)}.primary-btn:disabled{background:var(--text-muted);cursor:not-allowed}.task-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));grid-gap:1.25rem;gap:1.25rem}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;transition:box-shadow .2s,border-color .2s}.task-card:hover{border-color:var(--primary);box-shadow:0 10px 15px -3px rgba(0,0,0,.1)}.task-header{padding:1.25rem;display:flex;justify-content:space-between;align-items:flex-start;cursor:pointer}.task-title{font-weight:600;font-size:.95rem;text-transform:capitalize;display:block}.task-meta{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.badge{font-size:.7rem;padding:.25rem .6rem;border-radius:6px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.badge.succeeded{background:rgba(16,185,129,.1);color:var(--success)}.badge.enqueued,.badge.processing{background:rgba(245,158,11,.1);color:var(--warning)}.badge.failed{background:rgba(239,68,68,.1);color:var(--danger)}.task-body{padding:0 1.25rem 1.25rem;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.task-row{display:flex;justify-content:space-between;font-size:.8rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.task-row span:first-child{color:var(--text-muted)}.task-details{background:#000;color:#00ff00;padding:1rem;border-radius:6px;font-family:Courier New,monospace;font-size:.75rem;margin-top:1rem;max-height:200px;overflow-y:auto}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.table-container{margin-top:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.04);overflow:hidden}.index-table{width:100%;border-collapse:collapse;font-size:.875rem;text-align:left}.index-table thead th{background:var(--bg);font-weight:600;color:var(--text-muted);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}.index-table tbody td,.index-table thead th{padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.index-table tbody td{color:var(--text);vertical-align:middle}.index-table tbody tr:last-child td{border-bottom:none}.index-table tbody tr:hover{background:rgba(0,0,0,.015)}.page.dark .index-table tbody tr:hover{background:rgba(255,255,255,.03)}.index-uid-cell{font-family:JetBrains Mono,Menlo,monospace;font-weight:600;color:var(--primary)!important}.text-right{text-align:right}.text-btn{background:transparent;border:1px solid transparent;padding:.4rem .8rem;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}.text-btn.danger{color:var(--danger)}.text-btn.danger:hover{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.2)}