:root{color-scheme:light dark;--bg:#f4f6f9;--panel:#fff;--text:#222b39;--heading:#182436;--muted:#647184;--blue:#0066d6;--primary:#007aff;--line:#e3e8ef;--soft:#f8fafc;--green:#15764c;--amber:#a25c0b;--red:#bc363b;--shadow:0 6px 18px rgba(0,0,0,.025),0 16px 40px rgba(0,0,0,.025)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button,a{transition:background-color .15s,color .15s}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:10px 15px;min-height:44px;font-weight:600;white-space:nowrap}button:hover{background:var(--soft)}button:disabled{opacity:.6;cursor:wait}button.primary{color:#fff;background:var(--primary);border-color:var(--primary);box-shadow:0 4px 8px rgba(0,122,255,.12)}button.primary:hover{background:#005ecb}.quiet{background:transparent;border-color:transparent;color:var(--muted)}.danger{color:var(--red)}.icon-button{padding:5px 9px;background:transparent;border:0;min-width:36px;min-height:36px;font-size:20px}.muted{color:var(--muted)}.small{font-size:13px}:focus-visible{outline:3px solid var(--primary);outline-offset:3px}input,select{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:8px;padding:10px 12px;min-height:44px;min-width:0}input{width:100%}input::placeholder{color:var(--muted)}.topbar{max-width:1440px;margin:auto;padding:21px 44px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:12px;font-weight:750;color:var(--heading);font-size:18px;letter-spacing:-.4px}.brand:hover{text-decoration:none}.brand-icon{background:var(--primary);color:white;width:34px;height:34px;border-radius:10px;display:grid;place-content:center;position:relative}.brand-icon span{position:absolute;right:0;bottom:-3px;color:#7aefb1;font-size:22px}.brand-divider{color:#b1bac5;font-weight:400;margin:0 3px}.brand-org{color:var(--muted);font-size:14px;font-weight:500;letter-spacing:0}.topbar nav{display:flex;align-items:center;gap:20px}.topbar nav a{color:var(--muted);font-size:14px}main{max-width:1440px;margin:auto;padding:48px 44px 0}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.6px;color:var(--blue);margin:0 0 9px}h1{font-size:clamp(28px,3.3vw,42px);line-height:1.2;letter-spacing:-1.5px;color:var(--heading);margin:0 0 10px}h2,h3,h4,p{margin-top:0}.intro{color:var(--muted);margin:0;font-size:16px}.stats{display:grid;grid-template-columns:repeat(4,1fr);padding:22px 0;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow);margin-bottom:28px}.stats>div{padding:0 28px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:1px;color:var(--muted);font-size:12px}.stats>div:last-child{border:0}.stat-value{font-size:29px;line-height:1.2;letter-spacing:-1px;font-weight:700;color:var(--heading);font-variant-numeric:tabular-nums}.success{color:var(--green)}.warning{color:var(--amber)}.toolbar{display:flex;gap:12px;margin:0 0 30px;align-items:center}.search-input{display:flex;flex:1;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:0 5px 0 14px;min-width:0}.search-input>span{color:var(--muted);font-size:24px}.search-input input{border:0;background:transparent;flex:1;width:100px;padding-left:12px}.search-input button{font-size:12px;padding:6px 10px;min-height:36px}.toolbar select{max-width:230px}.list-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px;gap:16px}.list-label h2{font-size:16px;margin:0;font-weight:650}.list-label h2 span{font-size:12px;border:1px solid var(--line);padding:2px 7px;border-radius:6px;margin-left:6px;color:var(--muted)}.list-label p{font-size:12px;color:var(--muted);margin:0}.application-list{display:grid;gap:22px}.application{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);content-visibility:auto;contain-intrinsic-size:auto 400px}.application-heading{display:flex;align-items:center;gap:14px;padding:23px 25px}.app-avatar{display:grid;place-content:center;flex-shrink:0;width:42px;height:42px;background:color-mix(in srgb,var(--primary) 9%,var(--panel));color:var(--blue);font-weight:700;border:1px solid color-mix(in srgb,var(--primary) 13%,var(--line));border-radius:12px;text-transform:uppercase}.app-title{min-width:0;flex:1}.app-title h3{font-size:18px;letter-spacing:-.3px;line-height:1.3;margin:0 0 3px;overflow-wrap:anywhere}.app-title p{font-size:12px;color:var(--muted);margin:0;overflow-wrap:anywhere}.application-actions{display:flex;align-items:center;gap:16px;font-size:12px}.application-actions button{font-size:12px}.repo-link{color:var(--muted)}.stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding:0 25px 23px}.stage{border:1px solid var(--line);border-radius:11px;padding:16px 14px 12px;min-width:0;background:var(--soft)}.stage-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:7px;margin-bottom:11px}.stage h4{font-size:12px;font-weight:650;margin:0;display:flex;align-items:center;gap:7px;overflow-wrap:anywhere;min-width:0}.stage-marker{width:7px;height:7px;border-radius:2px;flex-shrink:0;background:#7f8b9d}.development .stage-marker{background:#4c8be8}.staging .stage-marker{background:#b28b29}.production .stage-marker{background:#279875}.badge{font-size:10px;line-height:1.5;padding:2px 7px;white-space:nowrap;border-radius:5px;font-weight:650;color:var(--muted);background:color-mix(in srgb,var(--muted) 9%,transparent)}.badge.ok{color:var(--green);background:color-mix(in srgb,var(--green) 9%,transparent)}.badge.error,.badge.stale{color:var(--red);background:color-mix(in srgb,var(--red) 8%,transparent)}.stage-url{font-size:12px;color:var(--muted);display:block;overflow-wrap:anywhere;min-height:39px}.stage-url:hover{color:var(--blue)}dl{margin:15px 0 16px}dl>div{margin-bottom:11px}dt{font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin-bottom:3px}dd{margin:0;min-height:23px;font-size:11px;display:flex;align-items:center;gap:5px}.hash,code{font:600 16px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:-.3px}.copy{font-size:16px;min-height:30px;min-width:30px;color:var(--muted);padding:0;line-height:1}.stage-footer{font-size:9px;color:var(--muted);padding-top:10px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px}.stage-footer a{flex-shrink:0;padding:5px 0;color:var(--muted)}.stage-error{font-size:11px;color:var(--red);overflow-wrap:anywhere}.application-footer{border-top:1px solid var(--line);padding:10px 25px;font-size:10px;color:var(--muted);display:flex;justify-content:space-between}.data-note{font-size:12px;color:var(--muted);margin:20px 0 0}.empty-state{text-align:center;border:1px dashed var(--line);border-radius:15px;padding:45px 20px;background:var(--panel)}.empty-state p{color:var(--muted)}.empty-icon{font-size:32px;color:var(--muted)}.empty-stages{padding:20px;color:var(--muted);grid-column:1/-1}.pagination{display:flex;justify-content:center;gap:22px;margin-top:25px;font-size:14px}main>footer{margin-top:45px;padding:22px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;font-size:11px;color:var(--muted)}main>footer>span{display:flex;align-items:center;gap:8px}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.footer-sep{color:var(--line)}main>footer a{margin-left:10px;color:var(--muted)}dialog{width:min(850px,calc(100% - 32px));max-height:90dvh;border:1px solid var(--line);border-radius:17px;background:var(--panel);color:var(--text);box-shadow:0 30px 100px #0004;padding:28px}dialog::backdrop{background:#0c17236b;backdrop-filter:blur(3px)}#login-dialog,#confirm-dialog{max-width:460px}.dialog-heading{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:18px}.dialog-heading h2{font-size:22px;letter-spacing:-.5px;margin:0}label{display:block;font-size:12px;font-weight:600}label input,label select{display:block;margin-top:6px;width:100%}#token{margin-top:6px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid>div>input{margin-top:6px}.form-grid .full{grid-column:1/-1}.required{color:var(--red)}.stage-editor-heading{display:flex;justify-content:space-between;align-items:center;margin:24px 0 6px}.stage-editor-heading h3{margin:0}.stage-input{padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--soft);margin:0 0 16px;min-width:0}.stage-input-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.stage-input legend{font-size:13px;font-weight:650}details{margin-top:15px}summary{cursor:pointer;font-size:12px;color:var(--blue);padding:5px 0}details>p{margin:8px 0 12px}.dialog-actions{display:flex;gap:10px;align-items:center;margin-top:24px;padding-top:18px;border-top:1px solid var(--line);flex-wrap:wrap}.dialog-actions a{font-size:12px}.spacer{flex:1}.form-error{color:var(--red);font-size:13px;margin:12px 0 0}.notice,#notice{padding:13px 17px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:8px;margin:0 0 20px;font-size:13px}#notice.error{border-left-color:var(--red)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){.stage h4{font-size:13px}}@media(max-width:1100px){.stages{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.stage-url{min-height:0}.stage-footer{font-size:10px}dd{font-size:12px}}@media(max-width:650px){.topbar{padding:13px 18px}.brand{gap:8px;font-size:16px}.brand-org,.brand-divider{display:none}.topbar nav{gap:5px}.topbar nav a{font-size:12px}.topbar nav button{font-size:12px;padding:8px}.page-heading{align-items:start;flex-direction:column;gap:20px;margin-bottom:24px}.page-heading>button{width:100%}main{padding:30px 18px 0}h1{letter-spacing:-1px;font-size:30px}.intro{font-size:14px}.stats{grid-template-columns:repeat(2,1fr);padding:0}.stats>div{padding:17px 20px}.stats>div:nth-child(2){border:0}.stats>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.stat-value{font-size:27px}.toolbar{flex-wrap:wrap;gap:9px;margin-bottom:23px}.search-input{flex-basis:100%}.toolbar select{flex:1;max-width:none;width:120px}.toolbar>button{font-size:12px}.list-label{align-items:start}.list-label p{font-size:10px;max-width:160px;text-align:right}.application-heading{padding:18px 16px;gap:10px;flex-wrap:wrap}.application-actions{margin-left:auto;gap:4px}.app-title{flex-basis:calc(100% - 65px)}.application-actions .quiet{min-height:36px;padding:4px 8px}.stages{grid-template-columns:1fr;padding:0 16px 16px;gap:12px}.stage{padding:16px}.stage h4{font-size:13px}.badge{font-size:11px}.stage-url{font-size:13px}.stage dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}dt{font-size:10px}dd{font-size:11px}.hash{font-size:16px}.stage-footer{font-size:10px}.application-footer{padding:10px 16px}main>footer{flex-direction:column;align-items:center;margin-top:32px}dialog{padding:20px;max-height:94dvh}.form-grid{grid-template-columns:1fr;gap:13px}.dialog-actions button{font-size:12px;padding:9px 11px}.dialog-actions #export-link{display:none}.dialog-heading h2{font-size:20px}}@media(prefers-color-scheme:dark){:root{--bg:#1a1c20;--panel:#25282e;--text:#e0e6eb;--heading:#fff;--muted:#b0b8c4;--blue:#70baff;--primary:#007aff;--line:#3a3f48;--soft:#202329;--green:#69d79e;--amber:#e5b765;--red:#ff9297;--shadow:0 16px 40px #0001}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
dd:has(.build-source){display:block}.build-source{display:block;font-size:9px;color:var(--muted);margin-top:3px}
/* Review pass: keep version details comfortable to read at desktop sizes. */
.stage h4{font-size:13px}.stage-url{font-size:13px}dt{font-size:11px}dd{font-size:13px}.stage-footer{font-size:11px}.build-source{font-size:10px}.app-title p{font-size:13px}.application-footer{font-size:11px}
@media(max-width:650px){dd{font-size:12px}.stage-footer{font-size:10px}.application-footer{font-size:10px}.build-source{font-size:10px}}

.stage{display:flex;flex-direction:column}.stage-footer{margin-top:auto}.stage-input-top{justify-content:flex-end}
