/* ============================================
   AIVPS CYBERPUNK THEME — Shared Styles
   ============================================ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

:root, [data-theme="dark"] {
  --bg:#02020a;
  --bg-2:#0a0a18;
  --panel:rgba(10,10,26,.6);
  --panel-2:rgba(16,16,40,.7);
  --border:rgba(0,255,255,.25);
  --text:#e0f4ff;
  --text-dim:#6ba5c0;
  --text-faint:#3a5a70;
  --neon:#00ffff;
  --neon-2:#ff00ff;
  --success:#00ff88;
  --warning:#ffb300;
  --glow:0 0 20px rgba(0,255,255,.5), 0 0 40px rgba(0,255,255,.2);
  --glow-magenta:0 0 20px rgba(255,0,255,.5), 0 0 40px rgba(255,0,255,.2);
  --glow-success:0 0 12px rgba(0,255,136,.6);
}
[data-theme="light"] {
  --bg:#eef4f9;
  --bg-2:#dce7f0;
  --panel:rgba(255,255,255,.75);
  --panel-2:rgba(255,255,255,.9);
  --border:rgba(0,100,140,.25);
  --text:#061420;
  --text-dim:#3d5a70;
  --text-faint:#7a90a0;
  --neon:#00778a;
  --neon-2:#b3008a;
  --success:#008854;
  --warning:#996600;
  --glow:0 0 12px rgba(0,119,138,.3);
  --glow-magenta:0 0 12px rgba(179,0,138,.3);
  --glow-success:0 0 8px rgba(0,136,84,.4);
}

html { scroll-behavior:smooth; }
body {
  font-family:'Rajdhani',sans-serif;
  background:var(--bg); color:var(--text);
  line-height:1.6; -webkit-font-smoothing:antialiased;
  overflow-x:hidden; position:relative;
  transition:background-color .4s, color .4s;
  min-height:100vh;
}
a { color:inherit; text-decoration:none; }
button { font-family:inherit; }

body::before {
  content:''; position:fixed; inset:0; z-index:1; pointer-events:none;
  background:repeating-linear-gradient(0deg,
    rgba(0,255,255,.03) 0px,
    rgba(0,255,255,.03) 1px,
    transparent 1px, transparent 3px);
  opacity:.6;
}
[data-theme="light"] body::before { opacity:.15; }
body::after {
  content:''; position:fixed; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,.6) 100%);
}
[data-theme="light"] body::after {
  background:radial-gradient(ellipse at center, transparent 50%, rgba(0,50,80,.15) 100%);
}

.container { max-width:1280px; margin:0 auto; padding:0 32px; position:relative; z-index:2; }
.container-narrow { max-width:920px; margin:0 auto; padding:0 32px; position:relative; z-index:2; }

/* CORNER BRACKETS */
.corner-brackets { position:fixed; inset:20px; z-index:3; pointer-events:none; }
.corner { position:absolute; width:32px; height:32px; border-color:var(--neon); border-style:solid; border-width:0; }
.corner.tl { top:0; left:0; border-top-width:2px; border-left-width:2px; }
.corner.tr { top:0; right:0; border-top-width:2px; border-right-width:2px; }
.corner.bl { bottom:0; left:0; border-bottom-width:2px; border-left-width:2px; }
.corner.br { bottom:0; right:0; border-bottom-width:2px; border-right-width:2px; }

/* HEADER */
.header {
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(2,2,10,.85); backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
  padding:16px 0; transition:all .4s;
}
[data-theme="light"] .header { background:rgba(238,244,249,.85); }
.header-inner { display:flex; align-items:center; justify-content:space-between; max-width:1280px; margin:0 auto; padding:0 32px; }
.logo {
  display:flex; align-items:center; gap:12px;
  font-family:'Orbitron',sans-serif; font-weight:800;
  font-size:20px; letter-spacing:.15em;
  color:var(--neon); text-shadow:var(--glow);
}
.logo-mark {
  width:34px; height:34px; border:2px solid var(--neon);
  display:grid; place-items:center; color:var(--neon);
  font-size:18px; font-weight:900;
  box-shadow:var(--glow), inset 0 0 12px rgba(0,255,255,.3);
  transform:rotate(45deg); transition:all .3s;
}
.logo-mark > span { transform:rotate(-45deg); }
.logo:hover .logo-mark { transform:rotate(45deg) scale(1.1); }

.nav-links { display:flex; gap:32px; font-size:14px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; }
.nav-links a { color:var(--text-dim); transition:all .25s; position:relative; padding:4px 0; }
.nav-links a::after {
  content:''; position:absolute; bottom:-2px; left:0;
  width:0; height:1px; background:var(--neon);
  box-shadow:var(--glow); transition:width .3s;
}
.nav-links a:hover { color:var(--neon); }
.nav-links a:hover::after { width:100%; }

.header-actions { display:flex; align-items:center; gap:12px; }
.icon-btn {
  width:38px; height:38px; background:transparent;
  border:1px solid var(--border); color:var(--text);
  cursor:pointer; display:grid; place-items:center;
  font-size:16px; transition:all .25s;
}
.icon-btn:hover { border-color:var(--neon); color:var(--neon); box-shadow:var(--glow); }
.header-login {
  padding:8px 16px; font-family:'Share Tech Mono',monospace;
  font-size:12px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--text-dim); border:1px solid var(--border);
  transition:all .25s;
}
.header-login:hover { color:var(--neon); border-color:var(--neon); }
.header-cta {
  padding:10px 22px; background:transparent;
  border:2px solid var(--neon); color:var(--neon);
  font-family:'Orbitron',sans-serif; font-weight:600; font-size:12px;
  letter-spacing:.15em; text-transform:uppercase;
  cursor:pointer; transition:all .3s;
  clip-path:polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
}
.header-cta:hover { background:var(--neon); color:#000; box-shadow:var(--glow); }

/* PAGE HEADER */
.page-header {
  padding:160px 0 60px;
  border-bottom:1px solid var(--border);
  position:relative;
}
.page-label {
  font-family:'Share Tech Mono',monospace;
  font-size:12px; letter-spacing:.3em;
  text-transform:uppercase; color:var(--neon);
  margin-bottom:16px;
}
.page-title {
  font-family:'Orbitron',sans-serif;
  font-size:clamp(32px, 5vw, 56px);
  line-height:1.05; font-weight:800;
  letter-spacing:-.02em; color:var(--text);
  margin-bottom:16px; text-transform:uppercase;
}
.page-title .accent { color:var(--neon); text-shadow:var(--glow); }
.page-title .magenta { color:var(--neon-2); text-shadow:var(--glow-magenta); }
.page-desc { font-size:16.5px; color:var(--text-dim); max-width:640px; font-weight:500; }

/* BUTTONS */
.btn-cyber {
  padding:14px 32px; background:transparent;
  border:2px solid var(--neon); color:var(--neon);
  font-family:'Orbitron',sans-serif; font-weight:600; font-size:13px;
  letter-spacing:.2em; text-transform:uppercase;
  cursor:pointer; transition:all .3s;
  position:relative; overflow:hidden;
  clip-path:polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
  display:inline-flex; align-items:center; justify-content:center;
  text-decoration:none;
}
.btn-cyber::before {
  content:''; position:absolute; inset:0;
  background:var(--neon); transform:translateX(-100%);
  transition:transform .35s ease; z-index:-1;
}
.btn-cyber:hover { color:#000; box-shadow:var(--glow); }
.btn-cyber:hover::before { transform:translateX(0); }
.btn-cyber.magenta { border-color:var(--neon-2); color:var(--neon-2); }
.btn-cyber.magenta:hover { color:#000; box-shadow:var(--glow-magenta); }
.btn-cyber.magenta::before { background:var(--neon-2); }
.btn-cyber.small { padding:10px 20px; font-size:11px; letter-spacing:.15em; }

/* PANELS */
.panel {
  background:var(--panel); border:1px solid var(--border);
  backdrop-filter:blur(10px); position:relative;
  padding:32px;
}
.panel::before, .panel::after {
  content:''; position:absolute;
  width:16px; height:16px;
  border-color:var(--neon); border-style:solid; border-width:0;
}
.panel::before { top:-1px; left:-1px; border-top-width:2px; border-left-width:2px; }
.panel::after { bottom:-1px; right:-1px; border-bottom-width:2px; border-right-width:2px; }

.panel-title {
  font-family:'Orbitron',sans-serif;
  font-size:14px; letter-spacing:.15em;
  color:var(--neon); text-transform:uppercase;
  margin-bottom:20px; padding-bottom:12px;
  border-bottom:1px dashed var(--border);
  display:flex; align-items:center; justify-content:space-between;
}

/* STATUS PILLS */
.status-pill {
  display:inline-flex; align-items:center; gap:6px;
  font-family:'Share Tech Mono',monospace; font-size:11px;
  letter-spacing:.15em; text-transform:uppercase;
  padding:4px 10px; width:fit-content;
  clip-path:polygon(5px 0, 100% 0, 100% calc(100% - 5px), calc(100% - 5px) 100%, 0 100%, 0 5px);
}
.status-pill .dot {
  width:5px; height:5px; border-radius:50%;
  background:currentColor; box-shadow:0 0 6px currentColor;
}
.status-pill.active { border:1px solid var(--success); color:var(--success); background:rgba(0,255,136,.06); }
.status-pill.pending { border:1px solid var(--warning); color:var(--warning); background:rgba(255,179,0,.06); }
.status-pill.rejected { border:1px solid var(--neon-2); color:var(--neon-2); background:rgba(255,0,255,.06); }
.status-pill.active .dot, .status-pill.pending .dot, .status-pill.rejected .dot {
  animation:cyberPulse 2s ease-in-out infinite;
}
@keyframes cyberPulse { 0%,100% { opacity:1; } 50% { opacity:.3; } }

/* FORMS */
.form-group { margin-bottom:20px; }
.form-label {
  display:block;
  font-family:'Share Tech Mono',monospace;
  font-size:11px; letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--text-dim);
  margin-bottom:8px;
}
.form-input, .form-select, .form-textarea {
  width:100%;
  padding:12px 16px;
  background:rgba(0,255,255,.03);
  border:1px solid var(--border);
  color:var(--text);
  font-family:'Rajdhani',sans-serif;
  font-size:14.5px;
  font-weight:500;
  transition:all .25s;
  outline:none;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
  border-color:var(--neon);
  box-shadow:var(--glow);
  background:rgba(0,255,255,.05);
}
.form-textarea { resize:vertical; min-height:100px; font-family:'Share Tech Mono',monospace; font-size:13px; }

/* UPLOAD ZONE */
.upload-zone {
  border:2px dashed var(--border);
  padding:32px 20px;
  text-align:center;
  cursor:pointer;
  transition:all .25s;
  background:rgba(0,255,255,.02);
}
.upload-zone:hover, .upload-zone.dragover {
  border-color:var(--neon);
  background:rgba(0,255,255,.05);
  box-shadow:var(--glow);
}
.upload-zone.has-file {
  border-color:var(--success);
  border-style:solid;
  background:rgba(0,255,136,.04);
}
.upload-icon { font-size:32px; margin-bottom:10px; }
.upload-text {
  font-family:'Orbitron',sans-serif; font-size:12px;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--text);
}
.upload-hint {
  font-family:'Share Tech Mono',monospace; font-size:11px;
  color:var(--text-faint); letter-spacing:.08em; margin-top:6px;
}
.upload-name {
  font-family:'Share Tech Mono',monospace; font-size:12px;
  color:var(--success); margin-top:10px; display:none;
}

/* STATS */
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border); border:1px solid var(--border); margin-bottom:24px; }
.stat-card { padding:20px 22px; background:var(--panel); backdrop-filter:blur(10px); position:relative; overflow:hidden; }
.stat-card::before {
  content:''; position:absolute; left:0; top:0; bottom:0;
  width:2px; background:var(--neon); box-shadow:var(--glow);
}
.stat-card:nth-child(2)::before { background:var(--neon-2); box-shadow:var(--glow-magenta); }
.stat-card:nth-child(3)::before { background:var(--success); box-shadow:var(--glow-success); }
.stat-card:nth-child(4)::before { background:var(--warning); }
.stat-label { font-family:'Share Tech Mono',monospace; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--text-faint); margin-bottom:6px; }
.stat-value { font-family:'Orbitron',sans-serif; font-size:26px; font-weight:800; color:var(--text); letter-spacing:-.01em; line-height:1; font-variant-numeric:tabular-nums; }
.stat-value.accent { color:var(--neon); text-shadow:var(--glow); }
.stat-value.magenta { color:var(--neon-2); text-shadow:var(--glow-magenta); }
.stat-value.success { color:var(--success); text-shadow:var(--glow-success); }
.stat-value .unit { font-size:13px; color:var(--text-dim); margin-left:4px; font-weight:500; }

/* SERVICE CARDS */
.service-card {
  background:var(--panel); border:1px solid var(--border);
  padding:24px; margin-bottom:16px; backdrop-filter:blur(10px);
  position:relative; transition:all .25s;
}
.service-card::before {
  content:''; position:absolute; left:0; top:0; bottom:0;
  width:2px; background:var(--neon); box-shadow:var(--glow);
}
.service-card:hover { background:rgba(0,255,255,.03); border-color:var(--neon); }
.service-header { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.service-name { font-family:'Orbitron',sans-serif; font-size:16px; font-weight:700; letter-spacing:.03em; color:var(--text); margin-bottom:4px; text-transform:uppercase; }
.service-host { font-family:'Share Tech Mono',monospace; font-size:12px; color:var(--text-dim); letter-spacing:.05em; }
.service-specs {
  display:grid; grid-template-columns:repeat(5, 1fr); gap:12px;
  padding:16px 0; border-top:1px dashed var(--border); border-bottom:1px dashed var(--border);
  margin-bottom:18px;
}
.spec-item { text-align:center; }
.spec-label { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--text-faint); letter-spacing:.15em; text-transform:uppercase; margin-bottom:4px; }
.spec-value { font-family:'Orbitron',sans-serif; font-size:14px; font-weight:700; color:var(--text); }
.service-footer { display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; }
.service-meta { display:flex; gap:20px; flex-wrap:wrap; font-family:'Share Tech Mono',monospace; font-size:12px; color:var(--text-dim); letter-spacing:.03em; }
.service-meta strong { color:var(--text); }

/* TABLE */
.data-table { width:100%; border-collapse:collapse; background:var(--panel); backdrop-filter:blur(10px); border:1px solid var(--border); }
.data-table th {
  padding:14px 18px; text-align:left;
  font-family:'Share Tech Mono',monospace; font-size:10.5px;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--text-faint); background:var(--panel-2);
  border-bottom:1px solid var(--border);
}
.data-table td {
  padding:14px 18px; font-size:13.5px; color:var(--text-dim);
  border-bottom:1px solid rgba(0,255,255,.06);
}
.data-table tr:last-child td { border-bottom:none; }
.data-table tr:hover td { background:rgba(0,255,255,.03); }
.data-table td strong { color:var(--text); font-weight:600; }

/* LEGAL CONTENT */
.legal-body { padding:60px 0 100px; }
.legal-body h2 {
  font-family:'Orbitron',sans-serif; font-size:18px;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--neon); margin:42px 0 16px;
  padding-bottom:10px; border-bottom:1px dashed var(--border);
}
.legal-body h3 {
  font-family:'Orbitron',sans-serif; font-size:14px;
  letter-spacing:.06em; color:var(--text);
  margin:24px 0 10px; text-transform:uppercase;
}
.legal-body p { color:var(--text-dim); font-size:14.5px; margin-bottom:14px; line-height:1.75; }
.legal-body ul, .legal-body ol { padding-left:24px; margin-bottom:18px; }
.legal-body li { color:var(--text-dim); font-size:14px; margin-bottom:8px; line-height:1.7; }
.legal-body strong { color:var(--text); }
.legal-body a { color:var(--neon); }
.legal-body a:hover { text-decoration:underline; }
.legal-body table { width:100%; border-collapse:collapse; margin:20px 0; border:1px solid var(--border); }
.legal-body table th {
  padding:12px 14px; text-align:left;
  font-family:'Share Tech Mono',monospace; font-size:11px;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--neon); background:var(--panel-2);
  border-bottom:1px solid var(--border);
}
.legal-body table td {
  padding:12px 14px; font-size:13.5px; color:var(--text-dim);
  border-bottom:1px solid rgba(0,255,255,.06);
}
.legal-body table tr:last-child td { border-bottom:none; }

.callout {
  background:rgba(0,255,255,.04);
  border-left:3px solid var(--neon);
  padding:16px 20px; margin:20px 0;
  font-size:14px; color:var(--text-dim);
  font-family:'Share Tech Mono',monospace;
  line-height:1.7;
}
.callout strong { color:var(--neon); }
.callout.magenta { border-left-color:var(--neon-2); background:rgba(255,0,255,.04); }
.callout.magenta strong { color:var(--neon-2); }
.callout.warning { border-left-color:var(--warning); background:rgba(255,179,0,.04); }
.callout.warning strong { color:var(--warning); }

/* FOOTER */
.footer { border-top:1px solid var(--border); padding:50px 0 30px; background:var(--panel); position:relative; z-index:2; margin-top:60px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; margin-bottom:40px; }
.footer-brand h4 { font-family:'Orbitron',sans-serif; font-size:16px; color:var(--neon); text-shadow:var(--glow); margin-bottom:12px; letter-spacing:.1em; }
.footer-brand p { font-size:13.5px; color:var(--text-dim); line-height:1.7; max-width:320px; }
.footer-col h5 { font-family:'Share Tech Mono',monospace; font-size:11px; color:var(--text-faint); letter-spacing:.2em; text-transform:uppercase; margin-bottom:14px; }
.footer-col a { display:block; font-size:13.5px; color:var(--text-dim); padding:4px 0; transition:all .25s; }
.footer-col a:hover { color:var(--neon); padding-left:4px; }
.footer-bottom {
  border-top:1px solid var(--border); padding-top:24px;
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:16px;
  font-family:'Share Tech Mono',monospace; font-size:11.5px;
  color:var(--text-faint); letter-spacing:.08em; text-transform:uppercase;
}
.footer-legal { display:flex; gap:20px; flex-wrap:wrap; }
.footer-legal a { color:var(--text-faint); transition:color .25s; }
.footer-legal a:hover { color:var(--neon); }

/* MODAL */
.modal-overlay {
  position:fixed; inset:0; z-index:9999;
  background:rgba(2,2,10,.9); backdrop-filter:blur(8px);
  display:none; align-items:center; justify-content:center; padding:24px;
}
.modal-overlay.show { display:flex; animation:fadeIn .3s ease; }
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
.modal-box {
  background:var(--panel); border:1px solid var(--border);
  padding:44px; max-width:600px; width:100%;
  position:relative;
  clip-path:polygon(24px 0, 100% 0, 100% calc(100% - 24px), calc(100% - 24px) 100%, 0 100%, 0 24px);
  box-shadow:var(--glow);
}
.modal-box h2 { font-family:'Orbitron',sans-serif; font-size:22px; color:var(--text); margin-bottom:14px; letter-spacing:.05em; text-transform:uppercase; }
.modal-box p { color:var(--text-dim); font-size:14.5px; margin-bottom:18px; line-height:1.7; }

/* BACK TO TOP */
.back-top {
  position:fixed; bottom:28px; right:28px;
  width:44px; height:44px; background:var(--panel);
  border:1px solid var(--border); color:var(--neon);
  cursor:pointer; display:grid; place-items:center;
  font-size:16px; font-family:'Orbitron',sans-serif;
  backdrop-filter:blur(10px); z-index:9998;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:all .4s;
}
.back-top.show { opacity:1; visibility:visible; transform:translateY(0); }
.back-top:hover { border-color:var(--neon); box-shadow:var(--glow); }

/* UTILITIES */
.text-neon { color:var(--neon); text-shadow:var(--glow); }
.text-magenta { color:var(--neon-2); text-shadow:var(--glow-magenta); }
.text-success { color:var(--success); }
.text-dim { color:var(--text-dim); }
.mono { font-family:'Share Tech Mono',monospace; }
.orbitron { font-family:'Orbitron',sans-serif; }
.mb-0 { margin-bottom:0; }
.mt-20 { margin-top:20px; }
.mt-30 { margin-top:30px; }

/* RESPONSIVE */
@media (max-width:900px) {
  .nav-links { display:none; }
  .header-inner { padding:0 20px; }
  .container, .container-narrow { padding:0 20px; }
  .page-header { padding:130px 0 40px; }
  .stats-grid { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .service-specs { grid-template-columns:repeat(2, 1fr); }
  .corner-brackets { inset:10px; }
  .corner { width:20px; height:20px; }
  .header-login { display:none; }
}
@media (max-width:600px) {
  .footer-grid { grid-template-columns:1fr; }
  .stats-grid { grid-template-columns:1fr; }
  .modal-box { padding:28px 24px; }
}