@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f7f7f5;--surface: #ffffff;--text: #121211;--muted: #575752;--border: #d4d3ce;--accent: #2f5bd3;--ok: #1f7a46;--ok-bg: #e3f3e9;--run: #2f5bd3;--run-bg: #e5ecfb;--bad: #b42318;--bad-bg: #fbe9e7;--new: #6d3fc0;--new-bg: #f1ebfb;--warn: #9a6200;--warn-bg: #fdf1dc;--neutral-bg: #e9e8e3;--log-bg: #16171a;--log-text: #d7d9de;--log-step: #8fb4ff;--repo: #4d7a5a;--sticky: #0f7b8a;--radius: 8px;--mono: "JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, Consolas, monospace;color-scheme:light}:root[data-theme=dark]{--bg: #0e0f11;--surface: #1a1b1e;--text: #f0f0ed;--muted: #adada8;--border: #37383d;--accent: #8fb4ff;--ok: #6fd39a;--ok-bg: #173324;--run: #8fb4ff;--run-bg: #1c2840;--bad: #ff8a7a;--bad-bg: #3a1c19;--new: #c4a6ff;--new-bg: #2a2140;--warn: #f1bf62;--warn-bg: #3a2c12;--neutral-bg: #2b2c31;--log-bg: #0c0d0f;--repo: #8fc29d;--sticky: #6fd0dc;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:13px/1.5 var(--mono)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--mono);font-size:.92em}.topbar{display:flex;align-items:center;gap:24px;padding:0 24px 0 10px;height:52px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1}.logo{display:flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:8px;background:#00b451;color:#fff}.logo svg{width:20px;height:auto}.topbar nav{display:flex;gap:16px}.topbar nav a{color:var(--muted)}.topbar nav a.active{color:var(--text);font-weight:600}.spacer{flex:1}.user{color:var(--muted)}.theme-toggle{display:inline-flex;padding:6px;color:var(--muted)}.theme-toggle:hover{color:var(--text)}main{max-width:1600px;margin:0 auto;padding:24px}h1{font-size:22px;margin:0 0 6px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}h2{font-size:15px;margin:28px 0 10px}.repo:first-child h2{margin-top:0}.repo-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin:28px 0 10px}.repo:first-child .repo-head{margin-top:0}.repo-head h2{margin:0}.repo-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px}.build-branch-open{display:inline-flex;align-items:center;gap:6px}.build-branch{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px}.build-branch input{font:inherit;font-family:var(--mono);font-size:13px;width:16rem;max-width:100%;padding:3px 8px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.build-branch .error{flex-basis:100%;text-align:right;font-size:13px}.repo-name{color:var(--repo)}.repo-empty{color:var(--muted);font-size:13px;padding:10px 14px}.crumbs{color:var(--muted);margin-bottom:12px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:16px}.sub{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;color:var(--muted);font-size:13px;margin-top:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:top}tr:last-child td{border-bottom:none}table.stack td{vertical-align:middle}th{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.right{text-align:right}.mono{font-family:var(--mono);font-size:13px}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--bg)}table.stack{table-layout:fixed}.col-branch{width:20%;padding-right:1rem}td.col-branch .named{max-width:18rem}.named-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-status{width:9rem;white-space:nowrap}td.cell-status{white-space:nowrap}.col-status,td.cell-status{padding-right:0}.col-fit{width:1%;white-space:nowrap}.col-link{width:28%}.col-deps{width:5rem;padding-left:2rem}.no-deps{color:var(--muted)}td.col-link .urls,td.col-link .named{max-width:100%}td.col-link .url-long{min-width:0;overflow:hidden;text-overflow:ellipsis}td.col-fit{vertical-align:middle}.col-fit .urls,.col-fit .actions{flex-wrap:nowrap}.named{display:inline-flex;align-items:center;gap:.4em}.named svg{flex:none;color:var(--muted)}.sticky-tag,.prod-tag{flex:none;font-size:11px;font-weight:600;color:var(--sticky)}.prod-tag{color:var(--warn)}.branch-name{font-weight:600;color:var(--text)}.build-stack{display:flex;flex-direction:column;gap:6px}.build-line{display:flex;align-items:center;gap:10px;min-height:22px;min-width:0;color:inherit;white-space:nowrap}.build-line:hover{text-decoration:none}.build-role{flex:none;color:var(--muted)}.build-line .commit{align-items:center}.commit{display:inline-flex;align-items:baseline;gap:8px;min-width:0}.commit code{color:var(--muted)}.commit .msg{color:var(--text);max-width:36ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commit-text{display:inline-flex;align-items:baseline;gap:8px;min-width:0}.cell-commit .commit-text{min-width:16ch;max-width:60ch}.cell-commit .commit .msg{max-width:none}.commit .author,.commit .time{color:var(--muted);font-size:13px;white-space:nowrap}.col-meta{width:11rem;min-width:11rem;white-space:nowrap}.commit-meta{gap:8px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.commit-meta .author{flex:none;width:2.5ch}.col-deps,.deps-line{justify-content:flex-end;text-align:right}.deps-label{flex:none;display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--muted);cursor:default;border-radius:4px}.deps-label:hover,.deps-label:focus-visible{color:var(--text)}.deps-label.outdated{color:var(--bad);font-weight:600}.deps-panel{position:fixed;z-index:20;width:min(360px,calc(100vw - 32px));max-height:60vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #00000029;padding:4px 14px;text-align:left}.dep-newer{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:8px 10px;background:var(--new-bg);border-left:3px solid var(--new);border-radius:6px}.dep-newer-title{display:flex;align-items:center;gap:6px;color:var(--new);font-size:12px;font-weight:600}.dep-rebuilding{display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-size:12px;font-weight:600;color:var(--new)}.dep-rebuild{display:flex;align-items:center;gap:8px;margin-top:4px}.dep-rebuild button{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--new);border-color:var(--new)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spin{animation:none}}.dep-details{padding:10px 0;display:flex;flex-direction:column;gap:4px;min-width:0}.dep-details+.dep-details{border-top:1px solid var(--border)}.dep-head{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;font-size:13px}.dep-head code{color:var(--muted)}.dep-commit{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px}.dep-msg{overflow-wrap:anywhere}.dep-commit .author,.dep-commit .time{color:var(--muted);font-size:13px;white-space:nowrap}.deps-section{margin-bottom:16px}.deps-section h2{font-size:14px;margin:0 0 8px}.deps-card{padding-block:2px}.urls{display:inline-flex;flex-wrap:wrap;gap:4px 12px}.col-link .urls{flex-direction:column;gap:4px}.urls-card{margin-bottom:8px;display:grid;grid-template-columns:max-content 1fr;gap:4px 24px}.url-row{display:contents}.builds-card{margin-bottom:16px;display:grid;grid-template-columns:max-content max-content max-content 1fr;align-items:center;gap:8px 16px}.builds-row{display:contents}.builds-role{color:var(--muted)}.builds-commit{min-width:0;color:inherit}.builds-commit:hover .msg{text-decoration:underline}.builds-empty{grid-column:3 / -1}.builds-error{grid-column:2 / -1;color:var(--bad);font-size:13px;overflow-wrap:anywhere}.url-short{display:none}.url-full{color:var(--muted);overflow-wrap:anywhere}.badge{display:inline-flex;align-items:center;gap:6px;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:20px;white-space:nowrap;background:var(--neutral-bg);color:var(--muted)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.run{background:var(--run-bg);color:var(--run)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.sleep{background:var(--new-bg);color:var(--new)}.badge.outline{background:none;border:1px solid currentColor;line-height:18px;font-weight:500}.badge svg{flex:none}.badge.fixed{box-sizing:border-box;min-width:calc(8ch + 37px)}.pulse{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.pulse{animation:none}}.actions{display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}.actions button{display:inline-flex;align-items:center;gap:6px}button{font:inherit;font-size:13px;padding:4px 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.5;cursor:default}button.ghost{border-color:transparent;background:none}button.danger{color:var(--bad)}.confirm{font-size:13px;color:var(--muted)}.error,.error-inline{color:var(--bad);font-size:13px}.error-inline{margin-top:4px;white-space:pre-wrap}.error-note{background:var(--bad-bg);color:var(--bad);border-radius:var(--radius);padding:10px 14px;margin-bottom:16px;white-space:pre-wrap}.muted-text{color:var(--muted);font-weight:400}.empty{text-align:center;color:var(--muted);padding:64px 16px;border:1px dashed var(--border);border-radius:var(--radius)}.log{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.log-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:var(--surface);border-bottom:1px solid var(--border);font-weight:600;font-size:13px}.log pre{margin:0;padding:14px;background:var(--log-bg);color:var(--log-text);font:12.5px/1.55 var(--mono);height:calc(100vh - 280px);min-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-all}.log .step{color:var(--log-step);font-weight:700}.log .log-error{color:var(--bad)}.log-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 14px;background:var(--surface);border-bottom:1px solid var(--border)}.log-filters input[type=search]{flex:1 1 200px;min-width:0}.log-filters input[type=search],.log-filters select{font:inherit;font-size:13px;padding:3px 8px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.log-filters label{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.seg{display:inline-flex}.seg button{border-radius:0}.seg button+button{margin-left:-1px}.seg button:first-child{border-radius:6px 0 0 6px}.seg button:last-child{border-radius:0 6px 6px 0}.seg button.on{background:var(--neutral-bg);font-weight:600}@media(max-width:640px){.builds-card{grid-template-columns:max-content max-content 1fr}.builds-commit,.builds-empty,.builds-error{grid-column:1 / -1}.topbar{padding:0 16px 0 10px;gap:16px}.user{display:none}main{padding:16px}.commit .msg{max-width:20ch}table.stack thead,table.stack td.col-branch,table.stack td.col-meta,table.stack td.col-deps{display:none}table.stack,table.stack tbody{display:block}table.stack tr{display:flex;flex-wrap:wrap;column-gap:12px;padding:10px 14px;border-bottom:1px solid var(--border)}table.stack tr:last-child{border-bottom:none}table.stack td{padding:2px 0;border:none;text-align:left}table.stack td.col-link{flex:1 1 100%;width:auto;min-width:0;margin-bottom:6px;white-space:normal}table.stack td.col-link .urls{flex-wrap:wrap}table.stack td.col-link:empty{display:none}table.stack td.col-link .url-long{display:none}table.stack td.col-link .url-short{display:inline}table.stack td.cell-status,table.stack td.cell-commit,table.stack td.cell-status .build-stack,table.stack td.cell-commit .build-stack{display:contents}table.stack td.cell-status .build-line,table.stack td.cell-commit .build-line{flex:1 1 100%;min-width:0;order:1}table.stack td.cell-commit .build-line{order:2}table.stack td.cell-status .build-line:nth-child(2){order:3;margin-top:6px}table.stack td.cell-commit .build-line:nth-child(2){order:4}table.stack td.cell-commit .commit-text{min-width:0;max-width:100%}table.stack td.cell-commit .build-line,table.stack td.cell-commit .commit .msg{white-space:normal}table.stack td.cell-commit .commit .msg{min-width:0;overflow-wrap:anywhere}table.stack td.cell-commit .commit code{display:none}table.stack td.repo-empty{flex:1 1 100%}}
