:root{color-scheme:dark;--bg:#080d17;--panel:#101829;--panel2:#151f31;--panel3:#1a2940;--line:#283449;--line2:#35465e;--text:#e9f0fb;--muted:#8b9ab2;--faint:#6a7890;--accent:#76e6d4;--accent2:#b4f76b;--red:#ff7c91;--orange:#f5bb73;--blue:#8bbaff;--shadow:0 20px 80px #0005}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}.sidebar{background:#0b1321;border-right:1px solid #243045;padding:28px 16px;display:flex;flex-direction:column;gap:20px;position:sticky;top:0;max-height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;padding:4px 12px 24px;border-bottom:1px solid var(--line)}.brand-mark{width:37px;height:37px;border:1px solid #7af0d4;border-radius:11px;display:grid;place-items:center;color:var(--accent);background:linear-gradient(150deg,#203e48,#0b1c2d);box-shadow:0 0 26px #5bf0cc25;font-size:22px;font-weight:900}.brand-name{font-size:18px;font-weight:850;letter-spacing:.095em;line-height:1}.brand-small{color:var(--muted);font-size:10px;letter-spacing:.22em;margin-top:6px}.nav-group{color:#71839b;font-size:10px;text-transform:uppercase;letter-spacing:.18em;font-weight:800;margin:10px 14px 6px}.nav-item{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid transparent;background:none;color:#a8b6c9;padding:12px 14px;border-radius:11px;transition:.15s;font-weight:600}.nav-item:hover{background:#172235;color:#fff}.nav-item.active{background:#183332;border-color:#296e65;color:#a3f5e8}.nav-icon{font-size:18px;opacity:.95;width:22px;text-align:center}.side-foot{margin-top:auto;border-top:1px solid var(--line);padding:18px 12px 4px;color:#8d9bb0}.avatar{width:34px;height:34px;background:#284c4b;border:1px solid #477971;display:grid;place-items:center;border-radius:10px;color:#c9fff0;font-weight:850}.user-chip{display:flex;align-items:center;gap:10px;min-width:0}.user-chip .small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.content{min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:23px clamp(22px,3.4vw,55px);border-bottom:1px solid #202d40;min-height:88px;background:#0b1220a6}.top-title{font-size:13px;color:#8698ad}.top-title b{color:#e6edf8}.top-actions{display:flex;align-items:center;gap:10px}.live-indicator{display:inline-flex;align-items:center;gap:7px;color:#a8b8cd;font-size:12px}.dot{width:7px;height:7px;background:var(--accent2);box-shadow:0 0 10px #b4f76b88;border-radius:50%}.workspace{max-width:1470px;margin:auto;padding:36px clamp(22px,3.4vw,55px) 70px}.eyebrow{color:var(--accent);font-weight:850;letter-spacing:.17em;font-size:10px;text-transform:uppercase;margin:0 0 10px}.h1{font-size:clamp(28px,3.2vw,42px);margin:0 0 10px;letter-spacing:-.045em;font-weight:800;line-height:1.14}.subtitle{color:var(--muted);font-size:15px;line-height:1.65;margin:0;max-width:720px}.page-heading{display:flex;justify-content:space-between;gap:22px;align-items:center;margin-bottom:28px;flex-wrap:wrap}.btn{border:1px solid #42526b;background:#1a2840;color:#e7f1fb;border-radius:9px;padding:10px 16px;font-weight:750;transition:all .15s;display:inline-flex;gap:8px;align-items:center;justify-content:center;white-space:nowrap}.btn:hover{background:#243753;border-color:#6c839e}.btn.primary{background:var(--accent);color:#092420;border-color:var(--accent)}.btn.primary:hover{background:#a3f6e7}.btn.danger{border-color:#6e3542;color:#ffa6af;background:#3b1e2b}.btn.small{font-size:12px;padding:7px 11px}.btn.ghost{border-color:transparent;background:transparent;color:#9cacbf}.btn.ghost:hover{background:#1b293c;color:#fff}.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}.space{justify-content:space-between}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{background:var(--panel);border:1px solid var(--line);border-radius:15px;overflow:hidden}.panel.pad{padding:23px}.panel+.panel{margin-top:16px}.stat-card{padding:23px;background:linear-gradient(130deg,#142132,#101928);border:1px solid #2a3a4c;border-radius:14px;min-height:135px}.stat-label{color:var(--muted);font-size:12px;font-weight:700}.stat-number{font-size:36px;font-weight:850;letter-spacing:-.06em;margin-top:13px}.stat-bottom{color:var(--faint);font-size:11px;margin-top:6px}.wide-banner{padding:28px;background:radial-gradient(circle at 86% 0%,#22584e 0,#102a2e 30%,#12202e 66%,#121e2e 100%);border:1px solid #2d625b;border-radius:16px;margin-bottom:26px;position:relative;overflow:hidden}.wide-banner:after{content:'< / >';position:absolute;font-size:130px;font-weight:900;letter-spacing:-.09em;color:#88eac70b;right:25px;top:5px}.wide-banner h2{font-size:25px;letter-spacing:-.035em;margin:0 0 8px}.wide-banner p{max-width:650px;color:#a8c4c5;line-height:1.65}.section-title{margin:30px 0 16px;display:flex;align-items:center;justify-content:space-between;gap:14px}.section-title h2{font-size:17px;margin:0;letter-spacing:-.025em}.section-title small{color:var(--muted)}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;min-width:680px}.data-table th{text-align:left;padding:14px 20px;color:#8b9bb1;font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:800;background:#121e2e;border-bottom:1px solid var(--line)}.data-table td{padding:15px 20px;border-bottom:1px solid #243047;color:#bcc9db;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#152237}.data-table .maincell{color:#ecf4fd;font-weight:750}.data-table .muted{font-size:11px;color:#8b9bb1;margin-top:5px}.tag{display:inline-flex;gap:6px;align-items:center;padding:5px 9px;border-radius:7px;border:1px solid #40536a;color:#bfd0e3;background:#1e2b3e;font-size:11px;font-weight:800;white-space:nowrap;text-transform:capitalize}.tag.passed,.tag.online,.tag.merged{color:#8be9cc;border-color:#28574c;background:#12352f}.tag.failed,.tag.offline,.tag.closed{color:#ff9da9;border-color:#6b3643;background:#3b2433}.tag.queued,.tag.running,.tag.open{color:#b7ccff;border-color:#3c527e;background:#1e2d4a}.tag.cancelled{color:#d5b9b9}.repo-card{background:#111b2a;border:1px solid #304056;border-radius:15px;padding:21px;cursor:pointer;transition:background .16s,border .16s;min-height:185px}.repo-card:hover{border-color:#66bbaf;background:#172638}.repo-card h3{font-size:16px;margin:13px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.repo-card p{color:#8999b1;line-height:1.5;min-height:36px;overflow:hidden;font-size:12px}.repo-card .meta{display:flex;justify-content:space-between;color:#8191a9;font-size:11px;margin-top:18px;gap:5px}.small-muted{color:var(--muted);font-size:12px}.muted{color:var(--muted)}.link{color:#91efe1;cursor:pointer}.link:hover{text-decoration:underline}.tabs{display:flex;gap:7px;overflow-x:auto;white-space:nowrap;border-bottom:1px solid #2b3b52;margin:20px 0}.tab{background:none;border:0;border-bottom:2px solid transparent;padding:12px 16px;color:#9eb0c5;font-weight:700}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab:hover{color:white}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:20px}.info-list{display:grid;gap:14px}.info-line{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #25364a;padding:10px 0;font-size:12px}.info-line span:first-child{color:var(--muted)}.code-box{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#090f18;padding:19px;border:1px solid #27364a;border-radius:10px;overflow:auto;white-space:pre;line-height:1.65;font-size:12px;max-height:500px;color:#c1e9e4}.form-group{display:grid;gap:7px}.form-group label{font-size:12px;color:#b8c7d9;font-weight:700}.field{width:100%;padding:12px 13px;background:#0c1523;color:#eff6fc;border:1px solid #35485e;border-radius:9px;outline:none;min-height:43px}.field:focus{border-color:#85dcca;box-shadow:0 0 0 2px #4bcdc122}textarea.field{min-height:100px;resize:vertical}.form-grid{display:grid;gap:15px}.modal-backdrop{position:fixed;z-index:99;inset:0;background:#02060dbd;backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:min(100%,580px);max-height:88vh;overflow-y:auto;background:#142035;border:1px solid #456176;border-radius:16px;box-shadow:var(--shadow);padding:25px}.modal h2{font-size:22px;margin:0 0 6px}.modal p{color:#96a9be;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.empty{padding:45px 25px;text-align:center;color:#9aabc0}.empty-icon{font-size:37px;opacity:.8;margin-bottom:12px}.empty b{display:block;color:#e0e9f5;font-size:17px;margin-bottom:8px}.empty p{margin:0 0 17px}.list-item{padding:15px 18px;border-bottom:1px solid #29384b;display:flex;align-items:center;justify-content:space-between;gap:20px}.list-item:last-child{border-bottom:0}.list-item:hover{background:#162339}.lineage{font-family:ui-monospace,Consolas,monospace;font-size:11px;letter-spacing:.02em}.auth-page{min-height:100vh;display:grid;grid-template-columns:1fr 510px}.auth-hero{background:radial-gradient(circle at 15% 85%,#194e48,#0a1725 60%,#0a1020);padding:8vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.auth-hero:after{content:'FORGE';font-size:28vw;position:absolute;bottom:-5vw;left:4vw;color:#70e0c508;font-weight:900;letter-spacing:-.1em}.auth-hero h1{font-size:clamp(42px,6vw,92px);letter-spacing:-.07em;line-height:1;max-width:790px;margin:25px 0}.auth-hero p{max-width:620px;color:#9dbcb9;font-size:18px;line-height:1.7}.auth-card{padding:75px 45px;display:flex;justify-content:center;flex-direction:column;background:#101929}.auth-card h2{font-size:28px;letter-spacing:-.04em}.auth-card .form-grid{margin-top:24px}.auth-foot{font-size:11px;color:#68798f;margin-top:24px}.log-output{max-height:520px;overflow:auto;white-space:pre-wrap;word-break:break-word}.badge-outline{border:1px solid #356b61;color:#8fe7db;font-size:11px;border-radius:6px;padding:4px 7px;background:#17342f}.rule{height:1px;background:var(--line);margin:20px 0}.callout{border:1px solid #3b5e65;background:#102a32;padding:17px;border-radius:10px;color:#b0d4d1;font-size:12px;line-height:1.6}.warn{border-color:#71533b;background:#30251d;color:#f2c995}#toast{position:fixed;bottom:27px;right:27px;z-index:120;max-width:430px;pointer-events:none}.toast{padding:13px 18px;background:#18352f;border:1px solid #468b78;color:#d7fff2;border-radius:10px;box-shadow:var(--shadow);font-weight:650}.toast.error{background:#432430;border-color:#a04c63;color:#ffd0d8}.loading{padding:60px;color:#8fbcb5}.icon-circle{display:grid;place-items:center;width:41px;height:41px;background:#1b393c;color:#96e5d9;border:1px solid #376762;border-radius:11px;font-size:22px}.mobile-nav{display:none}.file-list{max-height:570px;overflow:auto}.file-entry{width:100%;display:flex;align-items:center;gap:12px;padding:12px 18px;border:0;border-bottom:1px solid #213046;background:none;color:#d1deeb;text-align:left}.file-entry:hover{background:#203045}.mini-bar{display:flex;align-items:center;gap:5px}.mini-bar span{height:5px;border-radius:8px;display:block;background:#6fe0ce}@media(max-width:1050px){.grid.four{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;max-height:none;display:none}.mobile-nav{display:flex;background:#101c2d;padding:14px 17px;gap:7px;overflow-x:auto;border-bottom:1px solid var(--line)}.mobile-nav .btn{font-size:11px;padding:8px 10px}.workspace{padding:27px 18px 50px}.topbar{padding:16px 18px;min-height:65px}.topbar .live-indicator{display:none}.grid,.grid.two,.grid.four{grid-template-columns:1fr}.auth-page{grid-template-columns:1fr}.auth-hero{display:none}.auth-card{min-height:100vh;padding:30px 25px}.page-heading{align-items:flex-start}.h1{font-size:30px}.wide-banner:after{display:none}.row.wrap{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

:focus-visible{outline:3px solid #8deada!important;outline-offset:3px}.link-button{border:0;background:transparent;font:inherit;cursor:pointer;padding:0;text-decoration:underline}.modal-backdrop .modal{overscroll-behavior:contain}

/* Factory DAG, execution reports and operational telemetry */
.factory-job{background:#101c2c;border:1px solid #263a50;padding:15px;border-radius:11px;margin:11px 0}
.factory-job details{margin-top:12px}
.factory-job summary{cursor:pointer;color:#67d4c4;font-weight:600}
.factory-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:17px 0}
.factory-metrics>div{border:1px solid #294054;background:#0d1c2c;border-radius:9px;padding:12px;text-align:center}
.factory-metrics b{font-size:21px;display:block;color:#e9f7ff}
.factory-metrics small{display:block;font-size:11px;color:#8da3b7;margin-top:3px}
@media(max-width:650px){.factory-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
