:root{color:#19231f;background:#f3f5f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;letter-spacing:0}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}.auth-loading{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:10px;color:#53635d;background:#f3f5f4;font-size:12px}.auth-loading svg{color:#2a7b64}button{color:inherit;font:inherit;letter-spacing:0}button:focus-visible{outline:2px solid #2a7b64;outline-offset:2px}.app-shell{min-height:100vh;display:grid;grid-template-columns:232px minmax(0,1fr)}.sidebar{min-height:100vh;padding:20px 14px;color:#e9efec;background:#18221f;border-right:1px solid #26332f;display:flex;flex-direction:column}.brand-block{min-height:52px;padding:0 8px;display:flex;align-items:center;gap:11px}.brand-mark{width:34px;height:34px;border-radius:6px;display:grid;place-items:center;color:#13201b;background:#65c6a5;font-size:17px;font-weight:800}.brand-name,.brand-caption{display:block}.brand-name{font-size:14px;font-weight:700}.brand-caption{margin-top:3px;color:#91a39d;font-size:11px}.primary-nav{margin-top:30px;display:grid;gap:5px}.nav-item{width:100%;min-height:42px;padding:0 12px;border:0;border-radius:6px;display:flex;align-items:center;gap:10px;color:#9caea8;background:transparent;cursor:pointer;text-align:left;font-size:13px}.nav-item:hover{color:#f1f5f3;background:#202d29}.nav-item.active{color:#eafff7;background:#263731}.nav-item.active svg{color:#65c6a5}.sidebar-status{margin-top:auto;padding:13px 10px;border-top:1px solid #2c3935;display:flex;align-items:flex-start;gap:9px}.status-dot{width:7px;height:7px;margin-top:5px;border-radius:50%;background:#65c6a5;box-shadow:0 0 0 3px #65c6a51f}.status-dot.unavailable,.connection-dot.unavailable{background:#dc765b;box-shadow:0 0 0 3px #dc765b1f}.sidebar-status strong,.sidebar-status span{display:block}.sidebar-status strong{font-size:11px;font-weight:650}.sidebar-status div>span{margin-top:4px;color:#81958e;font-size:10px}.main-content{min-width:0}.topbar{min-height:106px;padding:22px clamp(20px,4vw,48px);border-bottom:1px solid #dce2df;display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fafbfa}.eyebrow{display:flex;align-items:center;gap:6px;color:#64736e;font-size:11px;font-weight:650;text-transform:uppercase}h1,h2,p{margin:0}h1{margin-top:5px;color:#15201c;font-size:27px;line-height:1.2;font-weight:720;overflow-wrap:anywhere}.topbar-meta{display:flex;align-items:center;gap:13px;flex-wrap:wrap;justify-content:flex-end}.environment-badge{min-height:27px;padding:0 9px;border:1px solid #b8d5ca;border-radius:4px;display:inline-flex;align-items:center;color:#23634f;background:#ecf7f2;font-size:11px;font-weight:700}.environment-badge.unavailable{color:#94472f;border-color:#e2b5a6;background:#fff1ec}.updated-label{color:#75817d;font-size:11px}.current-user{max-width:180px;color:#34443e;font-size:11px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.refresh-button{width:31px;height:31px;border:1px solid #d3dad7;border-radius:5px;display:grid;place-items:center;color:#5c6b66;background:#fff;cursor:pointer}.refresh-button:hover:not(:disabled){color:#245e4c;border-color:#a8c7bb;background:#f2f8f5}.refresh-button:disabled,.log-icon-button:disabled{cursor:wait;opacity:.65}.spinning{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.workspace{width:min(1240px,100%);margin:0 auto;padding:28px clamp(20px,4vw,48px) 42px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card{min-width:0;min-height:92px;padding:17px;border:1px solid #dce2df;border-radius:6px;display:flex;align-items:center;gap:13px;background:#fff}.metric-icon{width:38px;height:38px;flex:0 0 38px;border-radius:6px;display:grid;place-items:center}.metric-icon.green{color:#24745c;background:#e9f5f0}.metric-icon.blue{color:#396e9f;background:#edf3f8}.metric-icon.orange{color:#aa5b35;background:#fbf0e9}.metric-icon.slate{color:#566461;background:#eef1f0}.metric-icon.red{color:#a14a32;background:#fbece7}.metric-card div>span,.metric-card strong{display:block}.metric-card div>span{color:#71807b;font-size:11px}.metric-card strong{margin-top:4px;color:#18231f;font-size:22px;line-height:1;overflow-wrap:anywhere}.status-error{min-height:48px;margin-top:12px;padding:10px 13px;border:1px solid #edc2b5;border-radius:6px;display:flex;align-items:center;gap:10px;color:#873f2c;background:#fff3ef}.status-error strong,.status-error span{display:block}.status-error strong{font-size:11px}.status-error span{margin-top:2px;color:#a05c49;font-size:10px;overflow-wrap:anywhere}.panel,.file-panel,.code-panel{border:1px solid #dce2df;border-radius:6px;background:#fff}.route-panel{margin-top:16px;padding:22px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.section-heading.compact{align-items:center}.section-heading.compact>svg{color:#74817c}.section-kicker{color:#7b8883;font-size:10px;font-weight:700;text-transform:uppercase}.section-heading h2{margin-top:4px;color:#1c2824;font-size:16px;font-weight:700}.configured-state{display:inline-flex;align-items:center;gap:5px;color:#29735b;font-size:11px;font-weight:700}.configured-state.invalid{color:#a14a32}.route-flow{margin-top:28px;padding:8px 6px 10px;display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:12px}.route-node{min-width:0;min-height:100px;padding:16px;border:1px solid #dce2df;border-radius:6px;display:flex;align-items:center;gap:12px;background:#fafbfa}.route-node.accent{border-color:#a9cfc1;background:#f0f8f5}.route-icon{width:39px;height:39px;flex:0 0 39px;border-radius:6px;display:grid;place-items:center;color:#346e5b;background:#e2f1eb}.route-node div{min-width:0}.route-node div>span,.route-node strong,.route-node small{display:block}.route-node div>span{color:#7e8a86;font-size:10px;text-transform:uppercase}.route-node strong{margin-top:4px;font-size:13px;overflow-wrap:anywhere}.route-node small{margin-top:5px;color:#67746f;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;overflow-wrap:anywhere}.route-arrow{color:#93a09b}.overview-grid{margin-top:16px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px}.directive-panel,.locations-panel{min-width:0;padding:20px}.directive-list{margin:18px 0 0}.directive-list>div{min-height:43px;border-top:1px solid #edf0ef;display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:12px}.directive-list dt{color:#76837e;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.directive-list dd{min-width:0;margin:0;color:#24302c;font-size:12px;text-align:right;overflow-wrap:anywhere}.directive-list dd.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px}.location-list{margin-top:18px}.location-row{min-height:53px;padding:8px 0;border-top:1px solid #edf0ef;display:grid;grid-template-columns:34px minmax(90px,1fr) minmax(100px,1.1fr);align-items:center;gap:12px}.location-index{color:#a0aaa6;font-size:10px;font-weight:700}.location-row code{min-width:0;color:#275e4d;font-size:10px;overflow-wrap:anywhere}.location-row>span:last-child{color:#67746f;font-size:11px;text-align:right}.source-workspace{display:grid;grid-template-columns:240px minmax(0,1fr);gap:14px;min-height:calc(100vh - 106px)}.file-panel{align-self:start;overflow:hidden}.file-panel-title{min-height:46px;padding:0 14px;border-bottom:1px solid #e5e9e7;display:flex;align-items:center;gap:8px;color:#4b5a55;background:#f9faf9;font-size:12px;font-weight:700}.file-list{padding:7px}.file-item{width:100%;min-height:37px;padding:0 8px;border:0;border-radius:4px;display:flex;align-items:center;gap:8px;color:#68756f;background:transparent;cursor:pointer;font-size:11px;text-align:left}.file-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item:hover{background:#f0f4f2}.file-item.selected{color:#205b48;background:#eaf4f0;font-weight:650}.code-panel{min-width:0;overflow:hidden}.code-toolbar{min-height:56px;padding:0 14px 0 17px;border-bottom:1px solid #2f3b37;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#dce6e2;background:#202a27}.code-toolbar strong,.code-toolbar span{display:block}.code-toolbar strong{font-size:12px}.code-toolbar span{margin-top:3px;color:#81918b;font-size:9px}.icon-button{width:32px;height:32px;border:1px solid #46534f;border-radius:5px;display:grid;place-items:center;color:#c2cfca;background:#28332f;cursor:pointer}.icon-button:hover{color:#fff;background:#34413d}.code-view{min-height:560px;max-height:calc(100vh - 220px);margin:0;padding:14px 0 24px;overflow:auto;color:#d9e2df;background:#202a27;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.7;-moz-tab-size:4;tab-size:4}.code-line{min-width:max-content;padding-right:24px;display:grid;grid-template-columns:48px minmax(0,1fr)}.code-line:hover{background:#25312d}.line-number{padding-right:15px;color:#63716c;text-align:right;-webkit-user-select:none;user-select:none}.logs-workspace{min-height:calc(100vh - 106px)}.log-panel{min-width:0;border:1px solid #303b37;border-radius:6px;overflow:hidden;background:#1d2724}.log-toolbar{min-height:70px;padding:12px 14px 12px 17px;border-bottom:1px solid #35413d;display:flex;align-items:center;justify-content:space-between;gap:18px;color:#e3ebe8;background:#222d29}.log-heading{min-width:0;display:flex;align-items:center;gap:16px}.log-title{min-width:0;display:flex;align-items:center;gap:9px}.log-title>svg{color:#72bda3}.log-title strong,.log-title span{display:block}.log-title strong{font-size:12px}.log-title span{max-width:360px;margin-top:3px;color:#84928d;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-connection{display:inline-flex;align-items:center;gap:6px;color:#9caaa5;font-size:10px}.connection-dot{width:6px;height:6px;border-radius:50%;background:#65c6a5;box-shadow:0 0 0 3px #65c6a51a}.log-controls{display:flex;align-items:center;gap:6px}.log-type-control{height:32px;padding:3px;border:1px solid #46524e;border-radius:5px;display:flex;background:#1b2421}.log-type-control button{min-width:58px;padding:0 10px;border:0;border-radius:3px;color:#889690;background:transparent;cursor:pointer;font-size:10px}.log-type-control button:hover{color:#d9e2df}.log-type-control button.selected{color:#eafff7;background:#35453f}.log-icon-button{width:32px;height:32px;border:1px solid #46524e;border-radius:5px;display:grid;place-items:center;color:#9eaba6;background:#28332f;cursor:pointer}.log-icon-button:hover,.log-icon-button.active{color:#dff9ef;border-color:#4f7467;background:#32433d}.log-error{min-height:38px;padding:8px 16px;border-bottom:1px solid #704638;display:flex;align-items:center;gap:8px;color:#f0b6a4;background:#3b2b26;font-size:10px}.log-error span{min-width:0;overflow-wrap:anywhere}.log-viewer{height:calc(100vh - 270px);min-height:480px;margin:0;padding:14px 0;overflow:auto;color:#d7e0dd;background:#1d2724;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.65;-moz-tab-size:4;tab-size:4}.log-line{min-width:max-content;padding-right:24px;display:grid;grid-template-columns:54px minmax(0,1fr)}.log-line:hover{background:#24312d}.log-line>span:first-child{padding-right:15px;color:#5d6b66;text-align:right;-webkit-user-select:none;user-select:none}.log-empty{padding:0 18px;color:#74827d}.log-footer{min-height:35px;padding:0 15px;border-top:1px solid #35413d;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#74827d;background:#222d29;font-size:9px}@media (max-width: 980px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-flow{grid-template-columns:1fr}.route-arrow{margin:-2px auto;transform:rotate(90deg)}.overview-grid{grid-template-columns:1fr}}@media (max-width: 760px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto;padding:12px 14px;display:grid;grid-template-columns:minmax(170px,1fr) auto;align-items:center;gap:12px}.brand-block{padding:0}.primary-nav{margin:0;display:flex}.nav-item{width:40px;min-height:40px;padding:0;justify-content:center}.nav-item span,.sidebar-status{display:none}.topbar{min-height:98px;align-items:flex-start}h1{font-size:22px}.updated-label{display:none}.source-workspace{min-height:auto;grid-template-columns:1fr}.log-toolbar{align-items:flex-start;flex-direction:column}.log-controls{width:100%}.log-type-control{margin-right:auto}.file-list{display:flex;overflow-x:auto}.file-item{width:auto;flex:0 0 auto}}@media (max-width: 520px){.brand-caption{display:none}.topbar{padding:18px;display:block}.topbar-meta{margin-top:12px;justify-content:flex-start}.workspace{padding:18px 14px 30px}.metric-grid{grid-template-columns:1fr 1fr;gap:8px}.metric-card{min-height:80px;padding:12px}.metric-icon{width:32px;height:32px;flex-basis:32px}.route-panel,.directive-panel,.locations-panel{padding:16px}.configured-state{display:none}.location-row{grid-template-columns:28px minmax(0,1fr)}.location-row>span:last-child{grid-column:2;text-align:left}.code-view{min-height:460px;max-height:none;font-size:11px}.log-heading{width:100%;justify-content:space-between}.log-title span{max-width:200px}.log-viewer{height:60vh;min-height:420px;font-size:10px}}
