:root{color:#172033;--navy:#111b31;--blue:#3267e3;--border:#dfe4ec;--muted:#697386;--danger:#c73d4d;--shadow:0 10px 30px #111b3112;background:#f4f6fa;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,textarea,select{font:inherit}button,a{transition:all .18s}a{color:inherit;text-decoration:none}h1,h2,p{margin-top:0}h1,h2,.brand{font-family:Space Grotesk,sans-serif}h1{margin-bottom:.45rem;font-size:2rem;line-height:1.15}h2{margin-bottom:.25rem;font-size:1.12rem}code,.mono{font-family:ui-monospace,Consolas,monospace}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--navy);color:#fff;z-index:30;flex-direction:column;width:252px;display:flex;position:fixed;inset:0 auto 0 0}.brand-row{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;height:76px;padding:0 22px;display:flex}.brand{letter-spacing:.04em;align-items:center;gap:12px;font-weight:700;display:flex}.brand small{color:#9aa7be;margin-top:2px;font-family:DM Sans;font-size:.68rem;font-weight:500;display:block}.brand-mark{color:#fff;background:linear-gradient(145deg,#3976f3,#6b4ee9);border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.brand.large{font-size:1.2rem}.brand.large .brand-mark{width:46px;height:46px}.main-nav{padding:22px 14px}.main-nav a{color:#b6c0d3;border-radius:9px;align-items:center;gap:11px;padding:11px 13px;font-weight:600;display:flex}.main-nav a:hover,.main-nav a.active{color:#fff;background:#ffffff12}.sidebar-user{background:#ffffff0b;border:1px solid #ffffff12;border-radius:12px;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;margin:auto 14px 18px;padding:13px;display:grid}.sidebar-user strong,.sidebar-user span{text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:.78rem;display:block;overflow:hidden}.sidebar-user span{color:#9aa7be;font-size:.68rem}.avatar{background:#2f64dc;border-radius:10px;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.sidebar .icon-button{color:#aab5ca}.app-main{width:calc(100% - 252px);min-width:0;margin-left:252px}.topbar{border-bottom:1px solid var(--border);z-index:20;background:#fff;align-items:center;height:76px;padding:0 34px;display:flex;position:sticky;top:0}.topbar-title{font-weight:700}.topbar-role{color:#526079;background:#f0f3f8;border-radius:99px;margin-left:auto;padding:6px 10px;font-size:.72rem;font-weight:700}.content{max-width:1480px;margin:auto;padding:34px}.mobile-only{display:none}.page-header{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:25px;display:flex}.page-header p,.project-banner p,.panel-heading p,.login-card p{color:var(--muted);margin-bottom:0}.page-actions,.card-actions,.row-actions,.inline-control{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.eyebrow{text-transform:uppercase;color:#5370ab;letter-spacing:.13em;margin-bottom:7px;font-size:.68rem;font-weight:700}.button{border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:8px 14px;font-size:.82rem;font-weight:700;display:inline-flex}.button:disabled{opacity:.48}.button.primary{background:var(--blue);color:#fff}.button.secondary{border:1px solid var(--border);color:#27334a;background:#fff}.button.ghost{color:#43506a;background:#f4f6fa}.button.danger{color:#fff;background:#c63d4d}.button.small{min-height:31px;padding:5px 9px;font-size:.75rem}.large-button{width:100%;min-height:46px}.icon-button{color:#5e687a;background:0 0;border:0;border-radius:8px;place-items:center;width:34px;height:34px;display:grid}.icon-button:hover{background:#eef1f6}.text-link{color:#2f64dc;background:0 0;border:0;padding:0;font-size:.82rem;font-weight:700}.danger-text{color:var(--danger)!important}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.project-card{border:1px solid var(--border);text-align:left;color:#25304a;background:#fff;border-radius:13px;grid-template-columns:45px 1fr auto;align-items:center;gap:13px;padding:19px;display:grid}.project-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.project-card-icon{color:#3566d4;background:#edf2ff;border-radius:11px;place-items:center;width:45px;height:45px;display:grid}.project-card strong,.project-card small{display:block}.project-card small{color:var(--muted);margin-top:4px}.project-banner{color:#fff;background:linear-gradient(110deg,#17233c,#253d6e);border-radius:15px;justify-content:space-between;align-items:flex-end;margin-bottom:15px;padding:24px 27px;display:flex}.project-banner h1{color:#fff;margin:0}.project-title{align-items:center;gap:12px;display:flex}.project-meta{gap:10px;display:flex}.project-meta span,.project-meta code{background:#ffffff12;border:1px solid #ffffff18;border-radius:7px;padding:6px 9px;font-size:.75rem}.project-nav{border-bottom:1px solid var(--border);gap:4px;margin-bottom:27px;display:flex;overflow:auto}.project-nav a{color:#667086;white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:7px;padding:12px 14px;font-size:.82rem;font-weight:700;display:flex}.project-nav a.active{color:#285ccb;border-bottom-color:#285ccb}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px;display:grid}.metric{border:1px solid var(--border);background:#fff;border-radius:11px;min-height:91px;padding:16px}.metric>span{color:var(--muted);margin-bottom:12px;font-size:.75rem;display:block}.metric>strong{align-items:center;gap:6px;font-size:.9rem;display:flex}.content-grid{gap:18px;margin-bottom:18px;display:grid}.content-grid.two-one{grid-template-columns:2fr 1fr}.panel{border:1px solid var(--border);background:#fff;border-radius:12px;min-width:0;padding:20px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:18px;display:flex}.panel-heading p{font-size:.8rem}.detail-list,.compact-details{margin:0}.detail-list>div{border-top:1px solid #edf0f4;grid-template-columns:150px 1fr;padding:12px 0;display:grid}.detail-list dt,.compact-details dt{color:var(--muted);font-size:.76rem}.detail-list dd,.compact-details dd{min-width:0;margin:0;font-size:.84rem;font-weight:600}.detail-list a{color:#2f64dc;overflow-wrap:anywhere;align-items:center;gap:6px;display:flex}.mono-wrap,.compact-text{overflow-wrap:anywhere}.deployment-summary{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.deployment-summary>span:not(.status),.muted-copy,.panel-footnote{color:var(--muted);font-size:.8rem}.environment-summary{grid-template-columns:repeat(3,1fr);gap:11px;display:grid}.environment-summary>div{background:#f7f8fb;border-radius:9px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px;display:grid}.environment-summary strong,.environment-summary small{display:block}.environment-summary small{color:var(--muted)}.environment-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.environment-card .compact-details{gap:10px;display:grid}.compact-details>div{grid-template-columns:90px minmax(0,1fr);gap:8px;display:grid}.compact-details dd{overflow-wrap:anywhere}.field{flex-direction:column;gap:7px;font-size:.8rem;font-weight:700;display:flex}.field input,.field textarea,.field select{color:#172033;background:#fff;border:1px solid #ccd3df;border-radius:8px;outline:none;width:100%;padding:10px 11px}.field input:focus,.field textarea:focus,.field select:focus{border-color:#4a73d5;box-shadow:0 0 0 3px #3267e318}.field small{color:var(--muted);font-weight:400}.inline-control input{flex:1;min-width:0}.latest-row,.progress-block>div{color:var(--muted);justify-content:space-between;gap:10px;font-size:.72rem;display:flex}.progress-block progress{accent-color:#3267e3;width:100%;height:7px}.card-actions{border-top:1px solid #edf0f4;padding-top:14px}.table-wrap{border:1px solid var(--border);background:#fff;border-radius:12px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:800px}th{text-align:left;color:#5f6a7e;text-transform:uppercase;background:#f7f8fb;font-size:.68rem}th,td{border-bottom:1px solid #edf0f4;padding:13px 14px}td{font-size:.8rem}td small{color:var(--muted);margin-top:5px;display:block}.status{white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:5px 8px;font-size:.65rem;font-weight:800;display:inline-flex}.status-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.status.success{color:#167750;background:#e8f6f0}.status.danger{color:#b52d3e;background:#fdecef}.status.info{color:#2e5fcb;background:#eaf0ff}.status.warning{color:#9a6710;background:#fff5d9}.status.muted{color:#687286;background:#edf0f4}.state-panel{min-height:180px;color:var(--muted);text-align:center;background:#fff;border:1px dashed #cfd6e2;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:28px;display:flex}.state-panel.state-empty,.state-panel.state-error{flex-direction:column}.state-panel p{margin:0}.state-error{color:#8f3541}.spinner{border:2px solid #d9deea;border-top-color:#3267e3;border-radius:50%;width:20px;height:20px;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.inline-error{color:#a62d3c;background:#fdecef;border-radius:8px;margin:12px 0;padding:10px 12px;font-size:.8rem}.form-grid{gap:16px;display:grid}.form-row{grid-template-columns:1fr 1fr;gap:13px;display:grid}.check-field{background:#f7f8fb;border-radius:9px;align-items:flex-start;gap:11px;padding:12px;display:flex}.check-field strong,.check-field small{display:block}.check-field small{color:var(--muted)}.modal-backdrop{z-index:60;background:#1118279c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:15px;width:min(560px,100%);max-height:92vh;padding:23px;overflow:auto;box-shadow:0 25px 70px #0004}.modal.compact{width:min(460px,100%)}.modal-header,.modal-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-header{margin-bottom:20px}.modal-actions{justify-content:flex-end}.secret-cell{align-items:center;gap:6px;display:flex}.back-link{color:#58667f;margin-bottom:14px;font-size:.8rem;font-weight:700;display:inline-block}.log-panel{color:#d6e0ef;background:#0f1727;border-radius:12px;overflow:hidden}.log-toolbar{background:#17233a;justify-content:space-between;align-items:center;padding:12px 16px;font-size:.8rem;display:flex}.log-panel pre,.data-view{white-space:pre-wrap;margin:0;padding:17px;font:12px/1.65 ui-monospace,monospace;overflow:auto}.log-panel>pre{height:480px}.connection{color:#97a8c2;text-transform:capitalize;font-size:.67rem}.connection.connected{color:#70d6a5}.connection.reconnecting{color:#ffd076}.deployment-details{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.standalone-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:30px;display:flex}.state-code{color:#3566d4;font:700 4rem Space Grotesk}.login-page{background:#fff;grid-template-columns:1.2fr .8fr;min-height:100vh;display:grid}.login-intro{color:#fff;background:linear-gradient(145deg,#121d34,#203c70);flex-direction:column;justify-content:space-between;padding:clamp(30px,7vw,100px);display:flex}.login-intro h1{max-width:700px;font-size:clamp(2.3rem,5vw,4.2rem)}.login-intro p{color:#bcc8dc;max-width:580px;font-size:1.05rem;line-height:1.7}.login-intro>small{color:#8fa0bb}.login-card{flex-direction:column;justify-content:center;width:100%;max-width:600px;margin:auto;padding:clamp(30px,7vw,90px);display:flex}.login-card h2{font-size:1.8rem}.sr-only{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=1100px){.project-grid,.environment-grid,.metric-grid{grid-template-columns:repeat(2,1fr)}.content-grid.two-one,.environment-summary{grid-template-columns:1fr}.login-page{grid-template-columns:1fr 1fr}.login-intro{padding:45px}.login-intro h1{font-size:2.7rem}}@media (width<=760px){.mobile-only{display:grid}.sidebar{transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:none}.sidebar-scrim{z-index:25;background:#11182770;border:0;position:fixed;inset:0}.app-main{width:100%;margin-left:0}.topbar{gap:12px;height:64px;padding:0 17px}.content{padding:20px 15px}.page-header{flex-direction:column;align-items:flex-start}.project-grid,.environment-grid,.metric-grid{grid-template-columns:1fr}.project-banner{flex-direction:column;align-items:flex-start;gap:18px}.project-title{flex-direction:column;align-items:flex-start}.form-row,.login-page{grid-template-columns:1fr}.login-intro{display:none}.login-card{min-height:100vh;padding:26px}.deployment-details{grid-template-columns:1fr 1fr}.modal-backdrop{padding:10px}.modal{padding:18px}}
