:root{
  --bg: #060911;
  --surface-1: #0d1520;
  --surface-2: #101b29;
  --surface-3: #16233a;
  --border: #1c2c40;
  --border-soft: #131f2e;
  --text: #eef4fa;
  --text-secondary: #8497ad;
  --text-tertiary: #4a5b70;
  --accent: #5fd4ec;
  --accent-deep: #2f8fc9;
  --accent-soft: rgba(95, 212, 236, 0.12);
  --glow: rgba(95, 212, 236, 0.3);
  --live: #4ade80;

  --font-wordmark: 'Orbitron', sans-serif;
  --font-sans: 'Geist', 'Inter', sans-serif;
  --font-mono: 'Geist Mono', 'JetBrains Mono', monospace;

  --sidebar-w: 224px;
  --sidebar-w-collapsed: 68px;
  --topbar-h: 56px;
  --radius: 10px;
  --radius-lg: 14px;
}

*{ margin:0; padding:0; box-sizing:border-box; }

html, body{ height:100%; }

body{
  background: var(--bg); color: var(--text); font-family: var(--font-sans);
  line-height:1.55; -webkit-font-smoothing:antialiased; overflow:hidden;
}

a{ color:inherit; text-decoration:none; }
button{ font:inherit; }
::selection{ background: var(--accent-soft); color: var(--text); }

/* ---------- BACKGROUND ---------- */
#netbg{
  position:fixed; inset:0; z-index:0; display:block; background: var(--bg);
}
@media (prefers-reduced-motion: reduce){ #netbg{ display:none; } }

/* ---------- SHELL ---------- */
.shell{ display:flex; height:100vh; overflow:hidden; position:relative; }

.sidebar-overlay{
  position:fixed; inset:0; background: rgba(0,0,0,0.55); z-index:35;
  opacity:0; pointer-events:none; transition: opacity .2s ease;
}
.sidebar-overlay.show{ opacity:1; pointer-events:auto; }

/* ---------- SIDEBAR ---------- */
.sidebar{
  width: var(--sidebar-w); flex-shrink:0; display:flex; flex-direction:column;
  background: var(--surface-1); border-right:1px solid var(--border);
  position:fixed; inset-block:0; left:0; z-index:40;
  transition: width .22s ease, transform .22s ease;
}
.sidebar.collapsed{ width: var(--sidebar-w-collapsed); }

.sidebar-top{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:16px 14px; border-bottom:1px solid var(--border-soft); min-height:65px;
}
.brand{ display:flex; align-items:center; gap:12px; overflow:hidden; min-width:0; }
.brand img{ width:36px; height:36px; object-fit:contain; flex-shrink:0; filter: drop-shadow(0 0 8px var(--glow)); }
.wordmark{
  font-family: var(--font-wordmark); font-weight:700; font-size:1.1rem; letter-spacing:.06em;
  white-space:nowrap; transition: opacity .18s ease, width .18s ease;
}
.sidebar.collapsed .wordmark,
.sidebar.collapsed .sidebar-text{ opacity:0; width:0; overflow:hidden; }

.icon-btn{
  width:30px; height:30px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  border:1px solid transparent; border-radius:8px; background:none; color: var(--text-tertiary);
  cursor:pointer; transition: all .15s ease;
}
.icon-btn:hover{ background: var(--surface-2); color: var(--text); border-color: var(--border); }
.icon-btn svg{ width:16px; height:16px; }
#sidebarToggle{ transition: transform .25s ease, background .15s ease, color .15s ease; }
.sidebar.collapsed #sidebarToggle{ transform: rotate(180deg); }
.mobile-only{ display:none; }

.sidebar-nav{ flex:1; overflow-y:auto; overflow-x:hidden; padding:14px 10px; }
.nav-label{
  font-family: var(--font-mono); font-size:0.64rem; font-weight:600; text-transform:uppercase;
  letter-spacing:.12em; color: var(--text-tertiary); padding:4px 10px 8px; white-space:nowrap;
}
.nav-link{
  display:flex; align-items:center; gap:11px; padding:9px 10px; border-radius:8px;
  font-family: var(--font-mono); font-size:0.82rem; color: var(--text-secondary);
  border:1px solid transparent; transition: all .15s ease; margin-bottom:2px; white-space:nowrap; overflow:hidden;
}
.nav-link:hover{ background: var(--surface-2); color: var(--text); border-color: var(--border); }
.nav-link.active{ background: var(--surface-3); color: var(--text); border-color: var(--border); }
.nav-icon{ width:18px; height:18px; flex-shrink:0; display:flex; align-items:center; justify-content:center; color: var(--text-tertiary); transition: color .15s ease; }
.nav-link:hover .nav-icon{ color: var(--text-secondary); }
.nav-link.active .nav-icon{ color: var(--accent); }
.nav-icon svg{ width:16px; height:16px; }
.nav-count{
  margin-left:auto; font-family: var(--font-mono); font-size:0.66rem; font-weight:600;
  color: var(--text-tertiary); background: var(--surface-2); border:1px solid var(--border);
  padding:1px 7px; border-radius:99px; flex-shrink:0;
}
.nav-external{ width:12px; height:12px; margin-left:auto; opacity:0; color: var(--text-tertiary); transition: opacity .15s ease; flex-shrink:0; }
.nav-link:hover .nav-external{ opacity:.6; }

.nav-divider{ height:1px; background: var(--border-soft); margin:12px 8px; }

.sidebar-bottom{ padding:12px 14px 16px; border-top:1px solid var(--border-soft); }
.status-pill{
  display:flex; align-items:center; gap:7px; font-family: var(--font-mono); font-size:0.68rem;
  color: var(--live); background: rgba(74,222,128,0.08); border:1px solid rgba(74,222,128,0.25);
  border-radius:99px; padding:6px 10px; white-space:nowrap; overflow:hidden;
}
.status-pill .led{ width:6px; height:6px; border-radius:50%; background: var(--live); box-shadow: 0 0 0 3px rgba(74,222,128,0.16); flex-shrink:0; }

/* ---------- MAIN ---------- */
.main{
  flex:1; min-width:0; margin-left: var(--sidebar-w); display:flex; flex-direction:column;
  height:100vh; overflow:hidden; transition: margin-left .22s ease; position:relative; z-index:1;
}
.sidebar.collapsed ~ .main{ margin-left: var(--sidebar-w-collapsed); }

.topbar{
  height: var(--topbar-h); flex-shrink:0; display:flex; align-items:center; gap:14px;
  padding:0 24px; border-bottom:1px solid var(--border-soft);
  background: rgba(6,9,17,0.72); backdrop-filter: blur(14px);
}
.topbar-crumb{ font-family: var(--font-mono); font-size:0.78rem; color: var(--text-secondary); white-space:nowrap; }
.topbar-crumb span{ color: var(--text-tertiary); }
.topbar-back{
  margin-left:auto; font-family: var(--font-mono); font-size:0.76rem; color: var(--text-secondary);
  padding:7px 12px; border:1px solid var(--border); border-radius:8px; transition: all .15s ease; white-space:nowrap;
}
.topbar-back:hover{ color: var(--text); border-color: var(--accent-deep); background: var(--surface-2); }

.search-box{
  display:flex; align-items:center; gap:9px; flex:1; max-width:440px;
  border:1px solid var(--border); border-radius:8px; padding:0 12px; height:38px;
  background: var(--surface-1); transition: border-color .15s ease;
}
.search-box:focus-within{ border-color: var(--accent-deep); }
.search-box .prompt{ font-family: var(--font-mono); color: var(--accent); font-size:0.85rem; flex-shrink:0; }
.search-box input{
  flex:1; min-width:0; background:none; border:none; outline:none; color: var(--text);
  font-family: var(--font-mono); font-size:0.82rem;
}
.search-box input::placeholder{ color: var(--text-tertiary); }
.search-box kbd{
  font-family: var(--font-mono); font-size:0.65rem; font-weight:600; color: var(--text-tertiary);
  border:1px solid var(--border); background: var(--surface-2); border-radius:5px; padding:2px 6px; flex-shrink:0;
}

.content{ flex:1; overflow-y:auto; position:relative; }
.content-inner{ max-width:1180px; margin:0 auto; padding:36px 32px 64px; position:relative; z-index:1; }

/* ---------- PAGE INTRO ---------- */
.eyebrow{
  font-family: var(--font-mono); font-size:0.72rem; letter-spacing:.14em; text-transform:uppercase;
  color: var(--accent); display:flex; align-items:center; gap:10px; margin-bottom:14px;
}
.eyebrow::before{ content:""; width:20px; height:1px; background: var(--accent-deep); }
.page-intro h1{
  font-family: var(--font-sans); font-weight:700; font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing:-0.01em;
}
.page-intro .meta{
  font-family: var(--font-mono); font-size:0.74rem; color: var(--text-tertiary); letter-spacing:.05em; margin-top:8px;
}
.page-intro p{ color: var(--text-secondary); font-size:0.95rem; max-width:48ch; margin-top:12px; }

/* ---------- MODULE GRID / CARDS ---------- */
.section{ padding-top:24px; }
.modules{ display:grid; grid-template-columns: repeat(3, 1fr); gap:16px; }
@media (max-width:980px){ .modules{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:640px){ .modules{ grid-template-columns:1fr; } }

.module{
  background: var(--surface-1); border:1px solid var(--border); border-radius: var(--radius-lg);
  display:flex; flex-direction:column; overflow:hidden;
  transition: border-color .18s ease, transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.module:hover{
  border-color: var(--accent-deep); background: var(--surface-2); transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.35);
}

.preview{ aspect-ratio: 16/10; position:relative; background: #0a1119; border-bottom:1px solid var(--border); overflow:hidden; }
.preview .chrome{ height:20px; background:#0e1622; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:4px; padding:0 8px; }
.preview .chrome i{ width:5px; height:5px; border-radius:50%; background: var(--border); }
.preview-ui{ padding: 10px 12px; }
.preview-ui .stat-row{ display:flex; gap:6px; margin-bottom:8px; }
.preview-ui .stat{ flex:1; background: #101b28; border:1px solid var(--border-soft); border-radius:6px; padding:6px 8px; }
.preview-ui .stat .n{ font-family: var(--font-mono); font-size:0.72rem; color: var(--accent); font-weight:600; }
.preview-ui .stat .l{ font-family: var(--font-mono); font-size:0.5rem; color: var(--text-tertiary); letter-spacing:.04em; margin-top:2px; }
.preview-ui svg{ width:100%; height:36px; display:block; }

.module-info{ padding:14px 16px 16px; display:flex; flex-direction:column; gap:8px; }
.status{
  display:inline-flex; align-items:center; gap:6px; align-self:flex-start;
  font-family: var(--font-mono); font-size:0.64rem; letter-spacing:.06em; text-transform:uppercase;
  color: var(--live); background: rgba(74,222,128,0.08); border:1px solid rgba(74,222,128,0.25);
  border-radius:99px; padding:3px 9px;
}
.status .led{ width:6px; height:6px; border-radius:50%; background: var(--live); box-shadow: 0 0 0 3px rgba(74,222,128,0.16); }

.module h3{ font-family: var(--font-sans); font-weight:700; font-size:1.05rem; }
.module p{ color: var(--text-secondary); font-size:0.82rem; }

.tag-row{ display:flex; gap:6px; flex-wrap:wrap; margin-top:2px; }
.tag{
  font-family: var(--font-mono); font-size:0.62rem; color: var(--text-tertiary);
  border:1px solid var(--border); background: var(--surface-2); padding:3px 9px; border-radius:99px;
}

.empty-state{ text-align:center; padding: 50px 20px; color: var(--text-tertiary); font-family: var(--font-mono); font-size:0.85rem; display:none; }

/* ---------- CONTACT FORM ---------- */
.contact-grid{ display:grid; grid-template-columns: 0.9fr 1.1fr; gap:52px; align-items:start; }
@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; gap:28px; } }

form{
  background: var(--surface-1); border:1px solid var(--border); border-radius: var(--radius-lg);
  padding: 26px; display:flex; flex-direction:column; gap:18px;
}
.field label{
  display:block; font-family: var(--font-mono); font-size:0.7rem; letter-spacing:.06em;
  text-transform:uppercase; color: var(--text-tertiary); margin-bottom:7px;
}
.field input, .field textarea{
  width:100%; background: #0a1119; border:1px solid var(--border); border-radius: var(--radius);
  color: var(--text); font-family: var(--font-sans); font-size:0.95rem; padding: 11px 13px;
  outline:none; transition: border-color .15s ease; resize: vertical;
}
.field input:focus, .field textarea:focus{ border-color: var(--accent-deep); }
.field textarea{ min-height: 120px; }

.submit-btn{
  align-self:flex-start; font-family: var(--font-sans); font-weight:600; font-size:0.92rem;
  background: var(--accent); color:#04141a; border:none; padding: 12px 22px; border-radius: var(--radius);
  cursor:pointer; transition: transform .15s ease, background .2s ease;
}
.submit-btn:hover{ transform: translateY(-1px); background:#7fe0f4; }
.form-note{ font-family: var(--font-mono); font-size:0.7rem; color: var(--text-tertiary); }

/* ---------- FOOTER ---------- */
footer{ border-top:1px solid var(--border-soft); padding:22px 32px; max-width:1180px; margin:0 auto; width:100%; }
.footer-row{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; font-size:0.82rem; color: var(--text-secondary); }
.footer-row a:hover{ color: var(--text); }
.footer-fine{ font-family: var(--font-mono); font-size:0.68rem; color: var(--text-tertiary); margin-top:14px; letter-spacing:.03em; }

/* ---------- RESPONSIVE (mobile sidebar) ---------- */
@media (max-width:860px){
  .sidebar{ transform: translateX(-100%); }
  .sidebar.mobile-open{ transform: translateX(0); width: var(--sidebar-w); }
  .main, .sidebar.collapsed ~ .main{ margin-left:0; }
  .mobile-only{ display:flex; }
  #sidebarToggle{ display:none; }
  .contact-grid{ margin-top:4px; }
}
