:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#e8edf7;background:#0b1020;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 80% -10%,#183659 0,transparent 35%),#0b1020}button,input{font:inherit}button{cursor:pointer}.shell{max-width:1600px;margin:auto}.topbar{height:76px;padding:0 40px;border-bottom:1px solid #263249;display:flex;align-items:center;justify-content:space-between;background:#0d1524b8}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:37px;height:37px;border-radius:10px;background:#64d6c7;color:#062425;display:grid;place-items:center;font-size:22px}.brand strong,.brand small{display:block}.brand strong{font-size:15px}.brand small,.top-note{font-size:12px;color:#94a4bd}.intro{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:48px 40px 35px}.eyebrow{color:#6cdbcb;font-size:11px;letter-spacing:.17em;font-weight:800;margin:0 0 10px}.intro h1{font-size:clamp(30px,3vw,45px);line-height:1.1;margin:0 0 12px;letter-spacing:-.035em}.intro p:not(.eyebrow){color:#9aaac3;max-width:600px;margin:0;line-height:1.55}.stats{display:flex;gap:8px}.stats div{min-width:115px;padding:16px;border:1px solid #29384d;border-radius:14px;background:#111c2d}.stats strong{font-size:25px;display:block}.stats span{color:#95a8bf;font-size:11px}.workspace{margin:0 40px 50px;border:1px solid #2b3b51;border-radius:17px;background:#101a2a;display:grid;grid-template-columns:320px minmax(0,1fr);min-height:680px;overflow:hidden}.sidebar{border-right:1px solid #2b3b51;padding:23px 16px}.search-label{font-size:13px;font-weight:700;display:block;margin:0 7px 9px}.sidebar input{width:100%;background:#0b1423;border:1px solid #34445b;border-radius:9px;color:#edf4fa;padding:12px 13px;outline:none}.sidebar input:focus{border-color:#72d8c9;box-shadow:0 0 0 3px #72d8c924}.filters{display:flex;flex-wrap:wrap;gap:6px;margin:17px 0 24px}.filters button{border:1px solid #34445b;color:#a7b6ca;background:#172336;padding:7px 10px;border-radius:7px;font-size:12px}.filters button.active{background:#64d6c7;color:#092a2d;border-color:#64d6c7;font-weight:700}.list-caption{display:flex;justify-content:space-between;color:#71859c;font-size:10px;letter-spacing:.13em;font-weight:800;margin:0 8px 8px}.entity-list{max-height:560px;overflow:auto;padding-right:2px}.entity{width:100%;border:0;background:transparent;color:#dde7f3;padding:11px 10px;display:flex;align-items:center;text-align:left;gap:10px;border-radius:9px}.entity:hover,.entity.active{background:#1a3044}.entity.active{box-shadow:inset 3px 0 #6cdbcb}.entity-icon{width:30px;height:30px;flex:none;border-radius:8px;display:grid;place-items:center;background:#234958;color:#80eadb;font-size:13px}.entity[data-kind=database] .entity-icon{background:#3e335c;color:#c5aaff}.entity[data-kind=endpoint] .entity-icon{background:#493a2a;color:#e9be7b}.entity-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-type{display:block;color:#8296aa;font-size:11px;margin-top:2px}.content{min-width:0;padding:28px 30px}.panel-head{display:flex;justify-content:space-between;gap:15px;align-items:start}.panel-head h2{font-size:26px;letter-spacing:-.02em;margin:0 0 4px;overflow-wrap:anywhere}.panel-head p:not(.eyebrow){color:#91a6bc;font-size:13px;margin:0}.kind-pill{border:1px solid #3d5962;border-radius:50px;color:#8ce7d8;padding:6px 11px;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.graph-wrap{margin:25px 0 20px;min-height:260px;border:1px solid #253a4d;border-radius:13px;background:radial-gradient(#1e3447 1px,transparent 1px) 0 0/18px 18px,#0d1928;overflow:auto;display:grid;place-items:center}.graph-wrap svg{min-width:650px;width:100%;height:300px}.graph-wrap p{color:#9cafc0}.details-head{display:flex;align-items:center;justify-content:space-between;margin:5px 0 10px}.details-head h3{font-size:15px;margin:0}.details-head span{color:#8599b0;font-size:12px}.connections{display:grid;gap:8px}.connection{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:15px;border:1px solid #28394e;border-radius:9px;background:#131f30;padding:12px 14px}.connection-main{display:flex;align-items:center;gap:11px;min-width:0}.connection-direction{color:#64d6c7;font-size:19px}.connection strong{font-size:13px;display:block;overflow-wrap:anywhere}.connection small{color:#8ea3b9;font-size:11px;display:block;margin-top:3px;overflow-wrap:anywhere}.evidence{font-size:11px;padding:5px 8px;border-radius:6px;color:#8be2d3;background:#20433f}.evidence.config{color:#e6bc7e;background:#453827}.legend{display:flex;gap:20px;flex-wrap:wrap;color:#9aacc0;font-size:11px;margin-top:17px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.dot.code{background:#75decf}.dot.config{background:#e6bc7e}.disclaimer{font-size:11px;color:#8094aa;line-height:1.5;margin:22px 0 0}@media(max-width:900px){.intro{align-items:start;flex-direction:column}.workspace{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid #2b3b51}.entity-list{max-height:220px}.content{padding:24px}.stats{width:100%}.stats div{flex:1}}@media(max-width:600px){.topbar{padding:0 18px}.top-note{display:none}.intro{padding:35px 18px 24px}.workspace{margin:0 12px 30px}.stats strong{font-size:20px}.stats div{min-width:0;padding:11px}.stats span{font-size:10px}.content{padding:18px}.panel-head h2{font-size:21px}}
.project-metadata{margin:18px 0 0;padding:16px;border:1px solid #293e50;border-radius:12px;background:#0d1928;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:13px}.project-metadata[hidden]{display:none}.project-metadata small{display:block;color:#8fa7bc;font-size:11px;margin-bottom:4px}.project-metadata strong,.project-metadata a{display:block;color:#e6f4f4;font-size:12px;font-weight:600;overflow-wrap:anywhere}.project-metadata a{color:#7cddd0}.environment-label{display:flex;align-items:center;gap:10px;margin:18px 0 0;color:#9ab1c4;font-size:12px}.environment-label select{background:#132437;border:1px solid #40576b;color:#eaf1f5;padding:6px 8px;border-radius:6px}
.connection-address{font-size:12px!important;color:#b9d9dd!important;margin-top:5px!important}.connection-address a{color:#81e1d6;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:2px}.graph-wrap svg{min-width:760px}
.shell{padding-top:76px;padding-bottom:56px}.topbar{position:fixed;top:0;left:0;right:0;z-index:20;background:#0d1524f2;backdrop-filter:blur(12px);box-shadow:0 4px 20px #0003}.header-meta{display:flex;align-items:center;gap:18px;font-size:12px;color:#dceaf2}.header-meta time{color:#9fb8c9;white-space:nowrap}.header-meta a{color:#80e5d7;text-decoration:none;border:1px solid #3a6067;border-radius:7px;padding:7px 10px}.header-meta a:hover{text-decoration:underline}.site-footer{height:56px;position:fixed;bottom:0;left:0;right:0;z-index:20;background:#0d1524f2;backdrop-filter:blur(12px);border-top:1px solid #263249;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 40px;color:#92a9ba;font-size:11px;box-shadow:0 -4px 20px #0003}@media(max-width:700px){.header-meta{gap:8px;font-size:11px}.header-meta time{font-size:10px}.topbar{padding:0 12px}.brand small{display:none}.site-footer{padding:0 14px;font-size:10px}}@media(max-width:480px){.topbar{height:70px}.shell{padding-top:70px}.brand strong{font-size:12px}.brand-mark{width:28px;height:28px;font-size:17px}.header-meta time{max-width:85px;white-space:normal;line-height:1.1}.header-meta a{padding:5px}}
.footer-ownership{display:flex;align-items:center;gap:10px}.footer-icon{width:27px;height:27px;flex:none;border-radius:9px;display:grid;place-items:center;background:linear-gradient(145deg,#79e8d4,#629de8);color:#0b2032;font-size:17px;box-shadow:0 0 15px #68d9cf55;transform:rotate(-8deg)}.footer-developer strong{color:#d7f5ef;font-weight:700}.graph-wrap{transition:border-color .22s ease,box-shadow .22s ease}.graph-wrap:hover{border-color:#497d8d;box-shadow:0 0 24px #54c9c62a,inset 0 0 26px #54c9c616}#graph g rect,#graph g text,#graph path{transition:filter .2s ease,stroke .2s ease,stroke-width .2s ease,opacity .2s ease,fill .2s ease}#graph g:hover rect,#graph g:focus-visible rect{stroke:#9ffff1;stroke-width:3;filter:drop-shadow(0 0 9px #71f2dc)}#graph g:hover text,#graph g:focus-visible text{fill:#fff;filter:drop-shadow(0 0 4px #73e5d3)}#graph:hover path{filter:drop-shadow(0 0 5px #69d9c9);opacity:1}.entity,.connection{transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}.entity:hover,.entity:focus-visible{background:#214056;box-shadow:inset 3px 0 #83f5e2,0 0 16px #55d7ca30;transform:translateX(2px)}.connection:hover{border-color:#558c91;box-shadow:0 0 18px #5cdbcc2e;background:#172b3a}@media(max-width:600px){.site-footer{gap:8px}.footer-developer{max-width:110px;text-align:right;line-height:1.2}}@media(prefers-reduced-motion:reduce){.graph-wrap,#graph g rect,#graph g text,#graph path,.entity,.connection{transition:none}}
.login-page{min-height:100vh;display:grid;place-items:center;padding:32px;position:relative;overflow:hidden;background:radial-gradient(circle at 18% 28%,#20586966,transparent 34%),radial-gradient(circle at 85% 80%,#3d2c6c88,transparent 38%),#0b1020}.login-page[hidden],.shell[hidden],.site-footer[hidden]{display:none}.login-card{position:relative;z-index:2;width:min(100%,430px);padding:38px;border:1px solid #45687988;border-radius:24px;background:#121e30ed;box-shadow:0 28px 90px #0008,0 0 35px #64d6c71a;backdrop-filter:blur(18px)}.login-symbol{width:48px;height:48px;display:grid;place-items:center;margin-bottom:26px;border-radius:13px;background:linear-gradient(145deg,#77e6d5,#77a7e8);color:#0d2530;font-size:26px;box-shadow:0 0 30px #63d6ce66}.login-card h1{font-size:34px;letter-spacing:-.04em;margin:0 0 10px}.login-card>p:not(.eyebrow){color:#a4b8ca;line-height:1.6;font-size:14px}.login-card button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 18px;margin-top:28px;border:1px solid #81e8da;border-radius:11px;background:#77dfd1;color:#092527;font-weight:800;box-shadow:0 8px 24px #41d8c333}.login-card button:hover:not(:disabled){background:#a4f8ea;box-shadow:0 0 26px #71e8d577}.login-card button:disabled{opacity:.55;cursor:wait}.google-g{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#fff;color:#4285f4;font-weight:900}.login-card small{display:block;margin-top:20px;color:#718ba2;line-height:1.5}.login-status{min-height:20px;color:#efb991!important;font-size:12px!important}.login-art{position:absolute;inset:0;pointer-events:none}.login-orbit{position:absolute;left:50%;top:50%;width:650px;height:650px;border:1px solid #71e8d522;border-radius:50%;transform:translate(-50%,-50%)}.orbit-two{width:900px;height:900px;border-color:#7d9eec18}.login-node{position:absolute;padding:10px 15px;border:1px solid #69d9ca77;border-radius:10px;background:#1d3c4b99;color:#98f2df;box-shadow:0 0 24px #60dec633;font-size:12px;font-weight:700}.node-one{top:18%;left:19%}.node-two{bottom:19%;right:18%}.node-three{top:30%;right:24%}.header-meta button{color:#80e5d7;border:1px solid #3a6067;border-radius:7px;padding:7px 10px;background:transparent}.header-meta button:hover{background:#1a3b43}
.denied-page{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 15% 18%,#23526455,transparent 32%),radial-gradient(circle at 88% 75%,#653b6260,transparent 35%),#0b1020}.denied-page[hidden]{display:none}.denied-header{display:flex;align-items:center;gap:12px;padding:22px 42px;border-bottom:1px solid #294053;background:#0d1524b8}.denied-header strong,.denied-header small{display:block}.denied-header strong{font-size:16px}.denied-header small{margin-top:3px;color:#8ba7bb;font-size:11px;letter-spacing:.12em}.denied-main{flex:1;display:grid;place-items:center;padding:42px 24px}.denied-panel{width:min(100%,720px);padding:clamp(28px,5vw,56px);border:1px solid #765963;border-radius:26px;background:linear-gradient(145deg,#192335f2,#121c2ded);box-shadow:0 28px 90px #0008,0 0 60px #e4917c18}.denied-symbol{width:64px;height:64px;display:grid;place-items:center;border-radius:19px;background:#704052;color:#ffd5c8;font-size:42px;font-weight:800;box-shadow:0 0 32px #ef9b8655}.denied-code{margin:29px 0 10px;color:#f2ad9b;font-size:12px;font-weight:800;letter-spacing:.18em}.denied-panel h1{margin:0;font-size:clamp(32px,5vw,50px);line-height:1.1;letter-spacing:-.04em}.denied-description{max-width:550px;color:#b7c7d7;line-height:1.65}.denied-email{display:grid;gap:7px;margin:28px 0;padding:18px 20px;border:1px solid #617286;border-radius:13px;background:#0c192a}.denied-email span{color:#8ea9ba;font-size:12px}.denied-email strong{font-size:18px;overflow-wrap:anywhere}.denied-help{color:#99aec0;line-height:1.6;font-size:14px}.denied-panel button{display:inline-flex;align-items:center;gap:16px;margin-top:15px;padding:13px 18px;border:1px solid #83e8da;border-radius:10px;background:#73dfd1;color:#0b292b;font-weight:800}.denied-panel button:hover{background:#a3f4e9;box-shadow:0 0 24px #73e8d555}.denied-footer{display:flex;justify-content:space-between;gap:20px;padding:18px 42px;border-top:1px solid #294053;color:#8fa8ba;font-size:11px}.denied-footer strong{color:#d7f5ef}@media(max-width:600px){.denied-header,.denied-footer{padding:18px 22px}.denied-footer{flex-wrap:wrap}.denied-main{padding:24px 16px}.denied-panel{padding:28px 24px}.denied-email strong{font-size:15px}}
@media(min-width:601px) and (max-height:850px){.denied-header{padding:15px 32px}.denied-main{padding:15px 24px}.denied-panel{padding:28px 38px}.denied-symbol{width:48px;height:48px;font-size:32px}.denied-code{margin:17px 0 8px}.denied-description{margin:12px 0}.denied-email{margin:17px 0;padding:12px 16px}.denied-help{margin:0}.denied-panel button{margin-top:14px}.denied-footer{padding:11px 32px}}
.denied-actions{display:flex;flex-wrap:wrap;gap:12px}.denied-panel .secondary-button{background:transparent;color:#a7f3e8;border-color:#466678}.denied-panel .secondary-button:hover{background:#1e3543}.access-request-status{min-height:20px;color:#a5e8d8;font-size:13px}.access-request-status.error{color:#f4b8a8}.denied-panel button:disabled{opacity:.55;cursor:wait}.access-review{margin:28px 40px 0;padding:25px;border:1px solid #376774;border-radius:17px;background:#102535}.access-review[hidden]{display:none}.review-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.review-heading h2{margin:0 0 8px}.review-heading p:not(.eyebrow){margin:0;color:#9bb2c4}.review-heading button,.review-actions button{border:1px solid #66cdbf;border-radius:8px;background:#1c454d;color:#c7fff5;padding:9px 12px}.review-heading button:hover,.review-actions button:hover{background:#285967}.review-list{display:grid;gap:10px;margin-top:18px}.review-row{display:flex;justify-content:space-between;align-items:center;gap:20px;border:1px solid #335362;border-radius:11px;padding:14px;background:#122d3c}.review-row strong,.review-row small{display:block;overflow-wrap:anywhere}.review-row small{margin-top:4px;color:#8eacbc}.review-actions{display:flex;gap:8px;flex-wrap:wrap}.review-actions button.reject{border-color:#a86b70;color:#ffd4ce;background:#4b303b}.review-actions button:disabled{opacity:.5;cursor:wait}#reviewStatus{color:#a8e9dc;font-size:13px}@media(max-width:700px){.access-review{margin:16px 12px;padding:17px}.review-row{align-items:start;flex-direction:column}}
.graph-scroll-hint{display:none}
@media(max-width:700px){
  .topbar{height:112px;padding:10px 16px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:7px}
  .shell{padding-top:112px;padding-bottom:66px}
  .brand-mark{width:30px;height:30px;font-size:18px}
  .brand strong{font-size:14px}.brand small{display:block;font-size:10px}
  .header-meta{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px 8px;align-items:center;font-size:11px}
  .header-meta #greeting{grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .header-meta time{grid-column:1;min-width:0;max-width:none;font-size:10px;line-height:1.2;white-space:normal}
  .header-meta button{padding:6px 9px;white-space:nowrap}
  .site-footer{height:66px;padding:8px 14px;align-items:center;line-height:1.35}
  .intro{padding:28px 16px 22px;gap:20px}.intro h1{font-size:clamp(27px,7vw,36px)}
  .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .stats div{min-width:0;padding:12px 10px}.stats span{line-height:1.3;display:block}
  .workspace{margin:0 10px 24px;min-height:0}
  .sidebar{padding:18px 14px}.entity-list{max-height:190px}
  .content{padding:20px 16px}.panel-head{flex-wrap:wrap}.panel-head h2{font-size:22px}
  .project-metadata{grid-template-columns:minmax(0,1fr)}.environment-label{flex-wrap:wrap}
  .graph-scroll-hint{display:block;margin:18px 0 -10px;color:#91b5c4;font-size:11px}
  .graph-wrap{max-width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  .graph-wrap svg{min-width:680px}
  .connection{grid-template-columns:minmax(0,1fr);gap:9px}.connection-main{align-items:flex-start}.connection-main>div{min-width:0}.evidence{justify-self:start}
  .access-review{margin:16px 10px 0}.review-heading{flex-direction:column;gap:12px}.review-actions{width:100%}.review-actions button{min-height:40px}
  .login-page{min-height:100dvh;padding:16px}.login-card{padding:28px 24px}.login-card h1{font-size:30px}
  .denied-page{min-height:100dvh}.denied-main{padding:20px 12px}.denied-panel{padding:28px 22px}
  .denied-actions{display:grid;grid-template-columns:1fr}.denied-actions button{width:100%;justify-content:center}
}
@media(max-width:390px){
  .topbar{height:106px;padding:8px 12px}.shell{padding-top:106px}
  .brand small{display:none}.brand strong{font-size:13px}
  .header-meta{gap:4px 6px}.header-meta button{font-size:10px;padding:6px 7px}
  .site-footer{font-size:9px;gap:6px}.footer-icon{width:22px;height:22px;font-size:14px}.footer-developer{max-width:95px}
  .intro{padding:23px 12px 19px}.stats{gap:5px}.stats div{padding:9px 7px}.stats strong{font-size:19px}.stats span{font-size:9px}
  .workspace{margin:0 8px 20px}.content{padding:17px 13px}.sidebar{padding:16px 12px}
  .filters{gap:5px}.filters button{padding:7px 8px;font-size:11px}
  .denied-header,.denied-footer{padding:14px 16px}.denied-panel{padding:24px 18px}.denied-panel h1{font-size:30px}
}
