:root{--charcoal:#1a1d21;--ruby:#c81927;--ruby-soft:#c8192714;--paper:#faf6f2;--sand:#f3ede6;--sand-dark:#e4dbd0;--ink:#1a1a1a;--muted:#6b6660;--line:#e7ddd2;--green:#0a6a31;--green-bg:#e7f6ed;--green-line:#c6e6d1;--red-bg:#fff5f5;--red-line:#f2c3c3;--red-ink:#7a1414;--amber-bg:#fff9e6;--amber-line:#e6d28a;--amber-ink:#8a6d0a;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--sans);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}.mono{font-family:var(--mono)}.topbar{background:var(--charcoal);color:var(--paper);border-bottom:3px solid var(--ruby)}.topbar-inner{align-items:center;gap:14px;max-width:1040px;margin:0 auto;padding:14px 20px;display:flex}.topbar img{width:auto;height:30px;display:block}.topbar .brand-sub{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#faf6f299;font-size:10px}.topbar .brand-name{font-size:18px;font-weight:800;line-height:1}.topbar .who{color:#faf6f2b8;text-align:right;margin-left:auto;font-size:12px;line-height:1.35}.topbar .who .pill{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#fff;background:#c81927d9;border-radius:999px;margin-top:3px;padding:2px 7px;font-size:10px;display:inline-block}.wrap{max-width:1040px;margin:0 auto;padding:22px 20px 60px}.lead{color:var(--muted);max-width:68ch;margin:4px 0 22px;font-size:14px}section{border-top:2px solid var(--charcoal);margin-bottom:34px;padding-top:18px}section h2{margin:0 0 4px;font-size:20px;font-weight:800}section .sub{color:var(--muted);margin:0 0 14px;font-size:12px}.banner{border-radius:12px;align-items:center;gap:10px;padding:16px 18px;font-size:14px;font-weight:600;display:flex}.banner.green{background:var(--green-bg);border:1px solid var(--green-line);color:var(--green)}.banner.red{background:var(--red-bg);border:1px solid var(--red-line);color:var(--red-ink)}.banner.neutral{background:var(--sand);border:1px solid var(--sand-dark);color:var(--muted)}.banner .dot{border-radius:999px;flex:none;width:10px;height:10px}.banner.green .dot{background:var(--green)}.banner.red .dot{background:var(--ruby)}.btn{font-family:var(--sans);border:1px solid var(--charcoal);color:var(--charcoal);cursor:pointer;background:#fff;border-radius:9px;min-height:40px;padding:9px 14px;font-size:13px;font-weight:700;transition:background .12s,color .12s,opacity .12s}.btn:hover{background:var(--sand)}.btn.solid{background:var(--charcoal);color:var(--paper)}.btn.solid:hover{background:#000}.btn.ruby{background:var(--ruby);color:#fff;border-color:var(--ruby)}.btn.ruby:hover{background:#a8121f}.btn.sm{min-height:34px;padding:6px 11px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-row{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.fail{background:var(--red-bg);border:1px solid var(--red-line);border-radius:10px;margin-bottom:12px;padding:14px}.fail.new{border:2px solid var(--ruby)}.fail .slug{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ruby);word-break:break-word;font-size:11px;font-weight:700}.fail .name{word-break:break-word;margin-top:2px;font-size:14px;font-weight:700}.fail pre{font-family:var(--mono);color:var(--red-ink);white-space:pre-wrap;word-break:break-word;background:#fff9;border-radius:5px;margin:8px 0 0;padding:8px 10px;font-size:11.5px}.badge-new{background:var(--ruby);color:#fff;letter-spacing:.04em;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:700}.badge-still{color:var(--red-ink);margin-left:8px;font-size:10px;font-weight:600}.approval{overflow-wrap:anywhere;border-radius:10px;margin-bottom:12px;padding:14px}.approval.pending{background:var(--red-bg);border:2px solid var(--ruby)}.approval.approved{background:var(--amber-bg);border:1px solid var(--amber-line)}.approval .top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.approval .meta{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:10px}.approval .test-badge{color:var(--amber-ink);border:1px solid var(--amber-line);border-radius:4px;margin-left:6px;padding:1px 5px;font-size:10px;font-weight:700}.approval .approved-badge{color:var(--amber-ink);margin-left:6px;font-size:10px;font-weight:700}.approval .title{word-break:break-word;margin-top:4px;font-weight:700}.approval .summary{color:var(--muted);white-space:pre-wrap;word-break:break-word;margin-top:4px;font-size:13px}.approval .branch{font-family:var(--mono);color:var(--muted);word-break:break-word;margin-top:8px;font-size:11px}.approval .deploy-error{color:var(--ruby);word-break:break-word;margin-top:4px;font-size:11px;font-weight:600}.approval .actions{flex-wrap:wrap;flex:none;gap:8px;display:flex}.tbl-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}table.runs{border-collapse:collapse;width:100%;min-width:720px}table.runs thead th{font-family:var(--mono);letter-spacing:.1em;color:var(--muted);text-align:left;padding:6px 8px;font-size:10px;font-weight:600}table.runs td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 8px;font-size:13px}.num{text-align:right}.tag{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700;display:inline-block}.tag.green{background:var(--green-bg);color:var(--green);border:1px solid var(--green-line)}.tag.red{background:var(--red-bg);color:var(--ruby);border:1px solid var(--red-line)}.tag.running{color:#8a5a00;background:#fff6e6;border:1px solid #f0dcae}.field{max-width:520px;margin-bottom:18px}.field label{letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:700;display:block}.field input[type=text],.field input[type=email]{border:1px solid var(--sand-dark);width:100%;font-size:13px;font-family:var(--sans);background:#fff;border-radius:9px;padding:10px 12px}.field input:focus{border-color:var(--ruby);outline:none}.field .hint{color:var(--muted);margin-top:6px;font-size:12px}.field.check{align-items:flex-start;gap:10px;display:flex}.field.check input{width:16px;height:16px;accent-color:var(--ruby);margin-top:2px}.modal-scrim{z-index:50;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;width:100%;max-width:860px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 60px #0000004d}.modal-head{border-bottom:1px solid var(--sand-dark);justify-content:space-between;align-items:flex-start;gap:14px;padding:20px 22px;display:flex}.modal-head .x{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;width:32px;height:32px;font-size:24px;line-height:1}.modal-head .x:hover{background:var(--sand)}.modal-body{padding:20px 22px}.resrow{background:var(--sand);border-radius:9px;margin-bottom:8px;padding:10px 12px}.resrow .top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.resrow .nm{font-size:13px;font-weight:700}.resrow pre{font-family:var(--mono);white-space:pre-wrap;margin:6px 0 0;font-size:11px}.alert{background:var(--ruby-soft);color:var(--ruby);border-radius:9px;margin-bottom:20px;padding:12px 14px;font-size:13px;font-weight:600}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:60vh;padding:40px 20px;display:flex}.spinner{border:3px solid var(--sand-dark);border-top-color:var(--ruby);border-radius:999px;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--muted)}.tiny{font-size:12px}@media (width<=560px){.btn-row .btn,.approval .actions{width:100%}.approval .actions .btn{flex:auto}}.legal-footer{max-width:1040px;color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin:0 auto;padding:20px 20px 34px;font-size:11px;display:flex}.legal-footer a{color:var(--muted);text-decoration:none}.legal-footer a:hover{text-decoration:underline}.legal-footer span{color:var(--muted);opacity:.55}
