*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0f;--surface: #16161a;--card: #1e1e24;--border: #2a2a35;--gold: #d4a017;--gold-dim: #8a6610;--text: #e8e8f0;--muted: #7a7a90;--success: #3ecf8e;--danger: #e35b5b;--warn: #f0a500;--info: #5b9ee3}body{font-family:Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);height:100vh;display:flex;flex-direction:column;overflow:hidden}button{font-family:inherit}.badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:99px;white-space:nowrap}.badge-PENDING{background:#2a2a35;color:var(--muted)}.badge-RUNNING{background:#1a3a5c;color:var(--info)}.badge-AWAITING_APPROVAL{background:#3a2a00;color:var(--warn)}.badge-COMPLETED{background:#0e3a27;color:var(--success)}.badge-FAILED{background:#3a1212;color:var(--danger)}.badge-CANCELLED{background:#2a2a35;color:var(--muted);border:1px dashed var(--muted)}.modal-backdrop{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:600px;max-width:90vw;max-height:80vh;overflow-y:auto;padding:24px}.modal h2{font-size:.9rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);margin-bottom:16px}.modal h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:16px 0 8px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.modal-footer button{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 14px;cursor:pointer;font-size:.85rem}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:20px}.card h3{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);margin-bottom:12px}.skip-link{position:absolute;inset-inline-start:-999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:9999}.skip-link:focus{inset-inline-start:8px;top:8px;width:auto;height:auto;padding:8px 16px;background:var(--gold);color:#000;font-weight:700;border-radius:4px;text-decoration:none;overflow:visible}:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}.modal[role=dialog]{outline:none}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}@media (max-width: 800px){body{overflow:auto;height:auto}.modal{width:calc(100vw - 24px);padding:16px}}:root{--duration-fast: .15s;--duration-base: .22s;--duration-slow: .4s;--ease-default: cubic-bezier(.2,.8,.2,1);--ease-in: cubic-bezier(.4,0,1,1);--ease-out: cubic-bezier(0,0,.2,1);--ease-spring: cubic-bezier(.34,1.56,.64,1)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.nav-tab{transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.subnav-tab{transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}button,.btn-export{transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}button:active:not(:disabled){transform:scale(.97)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.phase-item{animation:fade-in-up var(--duration-base) var(--ease-out) both}.phase-item.active:after{content:"";position:absolute;inset:-2px;border-radius:8px;border:2px solid var(--color-accent, #6c63ff);animation:ring-pulse 1.6s var(--ease-out) infinite;pointer-events:none}@keyframes ring-pulse{0%{opacity:1;transform:scale(1)}60%{opacity:0;transform:scale(1.06)}to{opacity:0;transform:scale(1.06)}}.badge-count{animation:pop-in var(--duration-fast) var(--ease-spring) both}@keyframes pop-in{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.episode-card{animation:fade-in-up var(--duration-base) var(--ease-out) both}
