@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-color: #f7f7f7;--text-primary: #111111;--text-secondary: #555555;--text-tertiary: #999999;--accent: #4a756b;--accent-deploying: #5c7996;--accent-pending: #c8ac50;--border: #dddddd;--hover-bg: #eaeaea}body{margin:0;padding:0;background-color:var(--bg-color);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-moz-selection{background-color:var(--text-primary);color:var(--bg-color)}::selection{background-color:var(--text-primary);color:var(--bg-color)}.mono{font-family:JetBrains Mono,Courier New,monospace}.layout{min-height:100vh;display:flex;flex-direction:column;padding:2rem 3rem;max-width:1400px;margin:0 auto}@media (max-width: 768px){.layout{padding:1rem 1.5rem}}.header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:3rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}@media (max-width: 768px){.header{flex-direction:column;gap:1.5rem}}.system-label{display:flex;flex-direction:column;gap:.25rem;color:var(--text-secondary);font-size:.75rem;letter-spacing:.05em}.system-metrics{display:flex;gap:1.5rem;margin-top:.75rem;font-size:.65rem;color:var(--text-tertiary);text-transform:uppercase}.metric-val{color:var(--text-primary);font-weight:500}.nav{display:flex;flex-wrap:wrap;gap:1.5rem}.nav button{background:none;border:none;border-bottom:1px solid transparent;padding:0 0 .25rem;font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--text-secondary);cursor:pointer;letter-spacing:-.02em}.nav button:hover{background-color:transparent;color:var(--text-primary)}.nav button.active{color:var(--text-primary);border-bottom-color:var(--text-primary)}.nav button:focus{outline:none}.main{flex-grow:1;display:flex;flex-direction:column}.section-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:2rem;font-weight:500;font-family:JetBrains Mono,monospace}.network-container{display:grid;grid-template-columns:minmax(300px,1fr) 1.5fr;gap:4rem}@media (max-width: 1024px){.network-container{grid-template-columns:1fr}}.node-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--border)}.node-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--border);transition:background-color 0s ease}.node-item:hover{background-color:var(--hover-bg);padding-left:.5rem;padding-right:.5rem;margin-left:-.5rem;margin-right:-.5rem}.node-name{font-weight:500;font-size:.95rem}.node-loc{font-size:.75rem;color:var(--text-secondary);margin-top:.25rem;font-family:JetBrains Mono,monospace}.status-indicator{display:flex;align-items:center;font-size:.7rem;letter-spacing:.03em;text-transform:uppercase;color:var(--text-secondary);font-family:JetBrains Mono,monospace}.dot{width:6px;height:6px;background-color:var(--text-tertiary);margin-right:8px;border-radius:0}.dot.active{background-color:var(--accent)}.dot.deploying{background-color:var(--accent-deploying)}.dot.pending{background-color:var(--accent-pending)}.map-container{border:1px solid var(--border);position:relative;width:100%;aspect-ratio:16 / 10;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--bg-color)}.pulse-svg{transform-origin:center;transform-box:fill-box;animation:svg-pulse 2s infinite}@keyframes svg-pulse{0%{transform:scale(1);opacity:.8;stroke-width:1px}to{transform:scale(3);opacity:0;stroke-width:.5px}}.map-node-svg-label-group{opacity:0;transition:opacity .1s ease;pointer-events:none}marker:hover .map-node-svg-label-group,g:hover .map-node-svg-label-group{opacity:1}.deployments-table{width:100%;border-collapse:collapse;text-align:left}.deployments-table th{font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:400;color:var(--text-tertiary);border-bottom:1px solid var(--border);padding:.75rem .5rem;text-transform:uppercase}.deployments-table td{padding:1rem .5rem;border-bottom:1px solid var(--hover-bg);font-size:.85rem;color:var(--text-secondary)}.deployments-table tr:hover td{background-color:var(--hover-bg);color:var(--text-primary)}.deploy-status{font-family:JetBrains Mono,monospace;font-size:.7rem;text-transform:uppercase}.deploy-status.completed{color:#888}.deploy-status.live{color:var(--accent)}.deploy-status.scheduled{color:var(--accent-deploying)}@media (max-width: 768px){.hide-mobile{display:none}}.nodes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem}.node-card{border:1px solid var(--border);padding:1.25rem;background-color:transparent;transition:background-color 0s}.node-card.active{border-color:var(--accent)}.node-card.pending{border-color:var(--accent-pending)}.node-card:hover{background-color:var(--hover-bg)}.card-name{font-weight:500;font-size:.95rem;color:var(--text-primary);margin-bottom:.25rem}.card-school{font-size:.75rem;color:var(--text-secondary);margin-bottom:1.5rem;font-family:JetBrains Mono,monospace}.card-meta{display:flex;justify-content:space-between;font-size:.65rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-family:JetBrains Mono,monospace;border-top:1px dotted var(--border);padding-top:.75rem}.logs-container{background-color:#fcfcfc;border:1px solid var(--border);padding:1.5rem;font-family:JetBrains Mono,monospace;font-size:.75rem;height:60vh;min-height:400px;overflow-y:auto;color:#666;line-height:1.8}.log-entry{margin-bottom:.25rem;display:flex;gap:.75rem}.log-time{color:var(--text-tertiary);max-width:140px;flex-shrink:0}.log-highlight{color:var(--text-primary)}.log-accent{color:var(--accent)}.log-alert{color:var(--accent-deploying)}.cursor{display:inline-block;width:8px;height:14px;background-color:var(--text-secondary);vertical-align:middle;animation:blink 1s step-end infinite}.access-container{max-width:480px;margin:0;padding:0;border:1px solid var(--border);padding:2rem;background:#fdfdfd}.access-header{margin-bottom:2rem;font-family:JetBrains Mono,monospace;font-size:.8rem;text-transform:uppercase;color:var(--text-primary);border-bottom:1px dotted var(--border);padding-bottom:1rem}.access-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--text-secondary);text-transform:lowercase}.form-input{background:transparent;border:1px solid var(--border);padding:.65rem .75rem;font-size:.85rem;color:var(--text-primary);font-family:JetBrains Mono,monospace;outline:none;border-radius:0;transition:border-color 0s}.form-input:focus{border-color:var(--text-primary);background:var(--hover-bg)}select.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.btn-submit{background:var(--text-primary);color:var(--bg-color);border:none;padding:.85rem;font-family:JetBrains Mono,monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;margin-top:1rem;transition:opacity .1s}.btn-submit:hover{opacity:.8}.btn-submit:active{transform:translateY(1px)}.footer{margin-top:auto;padding-top:3rem;padding-bottom:1rem;display:grid;grid-template-columns:1fr 1fr 1fr;font-family:JetBrains Mono,monospace;font-size:.65rem;text-transform:uppercase;color:var(--text-tertiary);letter-spacing:.05em}@media (max-width: 768px){.footer{grid-template-columns:1fr;gap:1rem}}.footer a{color:var(--text-tertiary);text-decoration:none;border-bottom:1px dotted transparent}.footer a:hover{color:var(--text-secondary);border-bottom-color:var(--text-secondary)}.text-right{text-align:right}@media (max-width: 768px){.text-right{text-align:left}}.text-center{text-align:center}@media (max-width: 768px){.text-center{text-align:left}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes pulse{0%{transform:scale(1);opacity:1}to{transform:scale(2);opacity:0}}@keyframes pulse-slow{0%{transform:scale(1);opacity:1}to{transform:scale(2.5);opacity:0}}.flicker-data{animation:occasional-flicker 10s infinite}@keyframes occasional-flicker{0%,94%,96%,to{opacity:1}95%{opacity:.1}97%{opacity:.7}98%{opacity:.2}}
