/* =====================================================================
   PROJECT OBSIDIAN v1.0.0 — Design System
   Dark futuristic interface: glassmorphism, nebulas, neon energy.
   ===================================================================== */

@font-face { font-family:'Orbitron'; font-style:normal; font-weight:500 900; font-display:swap;
  src:url('../fonts/orbitron.woff2') format('woff2'); }
@font-face { font-family:'Rajdhani'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/rajdhani-400.woff2') format('woff2'); }
@font-face { font-family:'Rajdhani'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/rajdhani-500.woff2') format('woff2'); }
@font-face { font-family:'Rajdhani'; font-style:normal; font-weight:600; font-display:swap;
  src:url('../fonts/rajdhani-600.woff2') format('woff2'); }
@font-face { font-family:'Rajdhani'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/rajdhani-700.woff2') format('woff2'); }

:root {
  --bg-0:#030509; --bg-1:#060b14; --bg-2:#0a1220;
  --panel:rgba(13,20,36,.66); --panel-solid:rgba(10,16,30,.92);
  --line:rgba(120,160,220,.13); --line-strong:rgba(140,180,240,.30);
  --text:#dbe7f5; --dim:#8fa3bd; --faint:#5c7190;
  --cyan:#27d5f2; --cyan-soft:rgba(39,213,242,.12); --cyan-glow:rgba(39,213,242,.35);
  --violet:#8b5cf6; --violet-soft:rgba(139,92,246,.14);
  --gold:#e8c66a; --gold-soft:rgba(232,198,106,.13);
  --amber:#f5b72c; --green:#2fd57e; --green-soft:rgba(47,213,126,.12);
  --red:#f4546b; --red-soft:rgba(244,84,107,.12);
  --blue:#4f8ef7; --blue-soft:rgba(79,142,247,.12);
  --r-sm:8px; --r:12px; --r-lg:16px;
  --font-display:'Orbitron',system-ui,sans-serif;
  --font-body:'Rajdhani','Segoe UI',system-ui,sans-serif;
  --sidebar-w:242px;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scrollbar-color:rgba(120,160,220,.25) transparent; }
body {
  font-family:var(--font-body); font-size:15.5px; line-height:1.55;
  color:var(--text); background:var(--bg-0);
  min-height:100vh; overflow-x:hidden;
}
::selection { background:var(--cyan-glow); color:#fff; }
a { color:var(--cyan); text-decoration:none; }
a:hover { color:#7ee7fa; }
img { max-width:100%; }

/* ---------- backgrounds ---------- */
#starfield { position:fixed; inset:0; z-index:0; pointer-events:none; }
.nebula { position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.8;
  background:
    radial-gradient(52% 44% at 78% 8%, rgba(64,40,140,.22), transparent 62%),
    radial-gradient(46% 42% at 12% 26%, rgba(14,90,120,.20), transparent 64%),
    radial-gradient(60% 55% at 55% 96%, rgba(120,50,110,.14), transparent 66%),
    linear-gradient(180deg, var(--bg-1) 0%, var(--bg-0) 55%, #020409 100%);
  animation: nebulaDrift 46s ease-in-out infinite alternate;
}
@keyframes nebulaDrift {
  0% { transform:translate3d(0,0,0) scale(1); }
  100% { transform:translate3d(-1.4%, -2%, 0) scale(1.06); }
}

/* ---------- shell layout ---------- */
.shell { position:relative; z-index:1; display:flex; min-height:100vh; }
.main { flex:1; min-width:0; display:flex; flex-direction:column; }
/* full-width layout — adjusts fluidly down to tablets & phones */
.content { flex:1; padding:22px 28px 48px; width:100%;
  animation:fadeUp .38s ease both; }
@keyframes fadeUp { from { opacity:0; transform:translateY(10px);} to { opacity:1; transform:none;} }

/* ---------- sidebar ---------- */
.sidebar { width:var(--sidebar-w); flex-shrink:0; position:sticky; top:0; height:100vh;
  display:flex; flex-direction:column; background:linear-gradient(180deg, rgba(9,14,26,.92), rgba(6,9,18,.88));
  border-right:1px solid var(--line); backdrop-filter:blur(16px); z-index:30;
  transition:transform .28s ease; }
.brand { display:flex; align-items:center; gap:11px; padding:18px 18px 16px; border-bottom:1px solid var(--line); color:var(--text); }
.brand:hover { color:#fff; }
.brand-mark { width:34px; height:34px; flex-shrink:0; filter:drop-shadow(0 0 10px var(--cyan-glow)); }
.brand-mark svg { width:100%; height:100%; display:block; }
.brand-text { font-family:var(--font-display); font-weight:700; font-size:15px; letter-spacing:.14em; line-height:1.15; display:flex; flex-direction:column; }
.brand-sub { font-size:8.5px; letter-spacing:.34em; color:var(--cyan); font-weight:500; }
.nav { flex:1; overflow-y:auto; padding:12px 10px; }
.nav-section { font-family:var(--font-display); font-size:9.5px; letter-spacing:.26em; color:var(--faint);
  padding:16px 10px 7px; text-transform:uppercase; }
.nav-item { display:flex; align-items:center; gap:11px; padding:8.5px 10px; margin:1px 0;
  color:var(--dim); border-radius:var(--r-sm); font-weight:500; font-size:14.5px;
  border:1px solid transparent; transition:all .16s ease; position:relative; }
.nav-item:hover { color:var(--text); background:rgba(120,160,220,.07); }
.nav-item.active { color:#fff; background:linear-gradient(90deg, var(--cyan-soft), rgba(39,213,242,.03));
  border-color:rgba(39,213,242,.22); box-shadow:inset 0 0 18px rgba(39,213,242,.05); }
.nav-item.active::before { content:''; position:absolute; left:-10px; top:20%; bottom:20%; width:2.5px;
  background:var(--cyan); border-radius:2px; box-shadow:0 0 10px var(--cyan-glow); }
.nav-item .icon { opacity:.9; }
.nav-badge { margin-left:auto; background:var(--cyan); color:#021018; font-weight:700; font-size:10.5px;
  min-width:18px; height:18px; border-radius:9px; display:flex; align-items:center; justify-content:center; padding:0 5px; }
.sidebar-foot { border-top:1px solid var(--line); padding:11px 16px; font-size:11.5px; color:var(--faint);
  display:flex; align-items:center; justify-content:space-between; }
.sidebar-version { font-family:var(--font-display); letter-spacing:.1em; }

/* ---------- topbar ---------- */
.topbar { position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:14px;
  padding:10px 22px; background:rgba(5,8,15,.72); backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line); }
.topbar-title { font-family:var(--font-display); font-size:12.5px; letter-spacing:.18em; color:var(--dim); text-transform:uppercase; }
.topbar-right { margin-left:auto; display:flex; align-items:center; gap:8px; }
.sidebar-toggle { display:none; }

.char-switcher { position:relative; }
.chip { display:flex; align-items:center; gap:9px; background:var(--panel); border:1px solid var(--line);
  color:var(--text); padding:5px 11px 5px 6px; border-radius:20px; cursor:pointer; font-family:var(--font-body);
  font-size:14px; font-weight:600; transition:border-color .15s; }
.chip:hover { border-color:var(--line-strong); }
.dropdown { position:absolute; right:0; top:calc(100% + 8px); min-width:264px; background:var(--panel-solid);
  border:1px solid var(--line-strong); border-radius:var(--r); padding:6px; display:none; z-index:60;
  box-shadow:0 18px 50px rgba(0,0,0,.55), 0 0 30px rgba(39,213,242,.06); backdrop-filter:blur(20px); }
.dropdown.open { display:block; animation:fadeUp .18s ease; }
.dropdown-item { display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:none;
  border:0; color:var(--text); padding:9px 10px; border-radius:var(--r-sm); cursor:pointer; font-size:14px; font-family:var(--font-body); }
.dropdown-item:hover { background:rgba(120,160,220,.1); }
.dropdown-item.active { background:var(--cyan-soft); }
.dropdown-item .icon:last-child { margin-left:auto; color:var(--cyan); }

.icon-btn { position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:10px; border:1px solid var(--line); background:var(--panel);
  color:var(--dim); cursor:pointer; transition:all .15s; }
.icon-btn:hover { color:#fff; border-color:var(--line-strong); background:rgba(120,160,220,.08); }
.bell-dot { position:absolute; top:-4px; right:-4px; background:var(--red); color:#fff; font-size:10px; font-weight:700;
  min-width:16px; height:16px; border-radius:8px; display:flex; align-items:center; justify-content:center; padding:0 4px; }

/* ---------- glass panels & cards ---------- */
.glass { background:var(--panel); border:1px solid var(--line); border-radius:var(--r-lg);
  backdrop-filter:blur(14px) saturate(140%); position:relative; }
.glass::before { content:''; position:absolute; inset:0 0 auto 0; height:1px; border-radius:var(--r-lg) var(--r-lg) 0 0;
  background:linear-gradient(90deg, transparent, rgba(150,200,255,.28), transparent); pointer-events:none; }
.panel { background:var(--panel); border:1px solid var(--line); border-radius:var(--r-lg); padding:20px; position:relative; }
.panel-title { font-family:var(--font-display); font-size:13px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--dim); margin-bottom:14px; display:flex; align-items:center; gap:9px; }
.panel-title .icon { color:var(--cyan); }
.panel-title .right { margin-left:auto; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:var(--r); padding:16px;
  transition:all .2s ease; position:relative; }
.card:hover { border-color:var(--line-strong); transform:translateY(-2px);
  box-shadow:0 10px 34px rgba(0,0,0,.4), 0 0 24px rgba(39,213,242,.05); }
.card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(252px,1fr)); gap:14px; }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }

/* stat cards */
.stat-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--r-lg); padding:17px 18px;
  position:relative; overflow:hidden; transition:all .2s; }
.stat-card:hover { border-color:var(--line-strong); box-shadow:0 0 26px rgba(39,213,242,.06); }
.stat-label { font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); font-weight:600; }
.stat-value { font-family:var(--font-display); font-size:21px; font-weight:700; margin-top:5px; letter-spacing:.02em;
  word-break:break-word; }
.stat-delta { font-size:12.5px; margin-top:4px; font-weight:600; }
.stat-delta.up { color:var(--green); } .stat-delta.down { color:var(--red); } .stat-delta.flat { color:var(--faint); }
.stat-icon { position:absolute; right:14px; top:14px; color:var(--cyan); opacity:.55; }

/* ---------- buttons ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--font-body);
  font-weight:700; font-size:14.5px; letter-spacing:.02em; padding:9px 18px; border-radius:10px; border:1px solid var(--line-strong);
  background:var(--panel); color:var(--text); cursor:pointer; transition:all .18s ease; text-decoration:none; }
.btn:hover { transform:translateY(-1px); }
.btn:active { transform:translateY(0); }
.btn-sm { padding:6px 12px; font-size:13px; border-radius:8px; }
.btn-lg { padding:13px 26px; font-size:16px; border-radius:12px; }
.btn-block { width:100%; }
.btn-primary { background:linear-gradient(135deg,#17c3ea,#0e7fd6 55%,#1a6ddb); border-color:rgba(39,213,242,.5);
  color:#02121c; box-shadow:0 0 18px rgba(39,213,242,.28), inset 0 1px 0 rgba(255,255,255,.35); }
.btn-primary:hover { box-shadow:0 0 30px rgba(39,213,242,.5), inset 0 1px 0 rgba(255,255,255,.4); color:#01101a; }
.btn-gold { background:linear-gradient(135deg,#f3d488,#c9962e); border-color:rgba(232,198,106,.55); color:#1a1002;
  box-shadow:0 0 16px rgba(232,198,106,.22); }
.btn-danger { background:var(--red-soft); border-color:rgba(244,84,107,.45); color:#ffb3c0; }
.btn-danger:hover { background:rgba(244,84,107,.22); }
.btn-ghost { background:transparent; border-color:var(--line); color:var(--dim); }
.btn-ghost:hover { color:#fff; border-color:var(--line-strong); background:rgba(120,160,220,.07); }
.btn-success { background:var(--green-soft); border-color:rgba(47,213,126,.45); color:#a7f3cd; }

/* ---------- forms ---------- */
.label { display:block; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--faint);
  font-weight:700; margin:14px 0 6px; }
.input, .select, .textarea { width:100%; background:rgba(6,10,20,.7); border:1px solid var(--line); color:var(--text);
  border-radius:10px; padding:9.5px 13px; font-family:var(--font-body); font-size:15px; transition:all .15s; }
.input:focus, .select:focus, .textarea:focus { outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(39,213,242,.14); }
.textarea { min-height:110px; resize:vertical; line-height:1.5; }
.select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238fa3bd' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; padding-right:34px; }
.form-row { display:flex; gap:12px; flex-wrap:wrap; }
.form-row > * { flex:1; min-width:150px; }
.form-actions { display:flex; gap:10px; margin-top:18px; align-items:center; }
.hint { font-size:12.5px; color:var(--faint); margin-top:6px; }

/* ---------- tables ---------- */
.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:var(--r); background:rgba(8,13,24,.5); }
table.table { width:100%; border-collapse:collapse; font-size:14.5px; }
.table th { text-align:left; font-family:var(--font-display); font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--faint); padding:11px 14px; border-bottom:1px solid var(--line); white-space:nowrap; background:rgba(10,16,30,.6); }
.table td { padding:10.5px 14px; border-bottom:1px solid rgba(120,160,220,.07); vertical-align:middle; }
.table tbody tr { transition:background .12s; }
.table tbody tr:hover { background:rgba(120,160,220,.06); }
.table tbody tr:last-child td { border-bottom:0; }
.num { font-variant-numeric:tabular-nums; font-weight:600; }
.mono { font-family:'Consolas','SF Mono',monospace; font-size:13px; }

/* ---------- badges & chips ---------- */
.badge { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700; letter-spacing:.06em;
  padding:2.5px 9px; border-radius:20px; border:1px solid transparent; white-space:nowrap; }
.badge-cyan { background:var(--cyan-soft); color:#7ee7fa; border-color:rgba(39,213,242,.35); }
.badge-green { background:var(--green-soft); color:#8ef0c0; border-color:rgba(47,213,126,.35); }
.badge-red { background:var(--red-soft); color:#ffa9b8; border-color:rgba(244,84,107,.4); }
.badge-amber { background:rgba(245,183,44,.12); color:#ffd98a; border-color:rgba(245,183,44,.35); }
.badge-violet { background:var(--violet-soft); color:#c9b1ff; border-color:rgba(139,92,246,.4); }
.badge-blue { background:var(--blue-soft); color:#a9c8ff; border-color:rgba(79,142,247,.4); }
.badge-gold { background:var(--gold-soft); color:#f3d488; border-color:rgba(232,198,106,.4); }
.badge-neutral { background:rgba(120,160,220,.09); color:var(--dim); border-color:var(--line); }
.tag { display:inline-block; font-size:11.5px; font-weight:600; color:var(--dim); background:rgba(120,160,220,.08);
  border:1px solid var(--line); border-radius:6px; padding:1.5px 7px; margin:0 4px 4px 0; }
.pill { display:inline-flex; align-items:center; gap:6px; padding:3px 11px; border-radius:20px; font-size:12.5px; font-weight:700; }

/* ---------- misc ---------- */
.text-dim { color:var(--dim); } .text-faint { color:var(--faint); } .text-green { color:var(--green); }
.text-red { color:var(--red); } .text-cyan { color:var(--cyan); } .text-gold { color:var(--gold); }
.center { text-align:center; } .small { font-size:12.5px; } .bold { font-weight:700; }
.mt-8 { margin-top:8px; } .mt-16 { margin-top:16px; } .mt-24 { margin-top:24px; } .mb-8 { margin-bottom:8px; }
.mb-16 { margin-bottom:16px; } .flex { display:flex; } .items-center { align-items:center; } .gap-8 { gap:8px; }
.gap-12 { gap:12px; } .gap-16 { gap:16px; } .between { justify-content:space-between; } .wrap { flex-wrap:wrap; }
.divider { display:flex; align-items:center; gap:12px; color:var(--faint); font-size:12px; margin:16px 0; }
.divider::before, .divider::after { content:''; flex:1; height:1px; background:var(--line); }

.avatar { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%;
  font-family:var(--font-display); font-weight:700; font-size:14px; color:#fff; flex-shrink:0;
  background:linear-gradient(135deg, hsl(var(--hue,200) 70% 42%), hsl(calc(var(--hue,200) + 40) 70% 22%));
  border:1.5px solid rgba(255,255,255,.22); box-shadow:0 0 12px hsl(var(--hue,200) 80% 45% / .25); }
.avatar.sm { width:26px; height:26px; font-size:11px; }
.avatar.lg { width:64px; height:64px; font-size:24px; }

.dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; }
.dot-ok { background:var(--green); box-shadow:0 0 8px rgba(47,213,126,.7); }
.dot-warn { background:var(--amber); box-shadow:0 0 8px rgba(245,183,44,.7); }
.dot-err { background:var(--red); box-shadow:0 0 8px rgba(244,84,107,.7); }
.dot-idle { background:var(--faint); }

.progress { height:6px; background:rgba(120,160,220,.12); border-radius:3px; overflow:hidden; }
.progress > span { display:block; height:100%; border-radius:3px; background:linear-gradient(90deg,#17c3ea,#8b5cf6);
  box-shadow:0 0 10px rgba(39,213,242,.5); transition:width .5s ease; }

.empty-state { text-align:center; padding:56px 20px; color:var(--dim); }
.empty-icon { display:inline-flex; align-items:center; justify-content:center; width:84px; height:84px; border-radius:50%;
  background:var(--cyan-soft); border:1px solid rgba(39,213,242,.3); color:var(--cyan); margin-bottom:18px;
  box-shadow:0 0 40px rgba(39,213,242,.12); }
.empty-state h2 { font-family:var(--font-display); font-size:17px; letter-spacing:.1em; color:var(--text); margin-bottom:8px; }
.page-404 { padding-top:90px; }

/* toasts */
.toast { display:flex; align-items:center; gap:9px; padding:11px 16px; border-radius:10px; margin-bottom:10px;
  font-weight:600; font-size:14px; border:1px solid; animation:fadeUp .3s ease; }
.toast-success { background:var(--green-soft); border-color:rgba(47,213,126,.4); color:#b9f5d8; }
.toast-error { background:var(--red-soft); border-color:rgba(244,84,107,.4); color:#ffc4cd; }
.toast-info { background:var(--cyan-soft); border-color:rgba(39,213,242,.35); color:#a9ecf8; }

/* tabs */
.tabs { display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:18px; overflow-x:auto; }
.tab { padding:9px 16px; color:var(--dim); font-weight:600; font-size:14px; border:0; background:none; cursor:pointer;
  border-bottom:2px solid transparent; white-space:nowrap; font-family:var(--font-body); }
.tab:hover { color:var(--text); }
.tab.active { color:var(--cyan); border-bottom-color:var(--cyan); text-shadow:0 0 14px var(--cyan-glow); }

/* kanban */
.kanban { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; align-items:start; }
.kanban-col { background:rgba(9,14,26,.5); border:1px solid var(--line); border-radius:var(--r); padding:12px; min-height:220px; }
.kanban-col.drag-over { border-color:var(--cyan); box-shadow:inset 0 0 24px rgba(39,213,242,.08); }
.kanban-col h3 { font-family:var(--font-display); font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--dim); margin-bottom:11px; display:flex; align-items:center; gap:8px; }
.kanban-count { margin-left:auto; background:rgba(120,160,220,.1); border-radius:10px; font-size:11px; padding:1px 8px; color:var(--faint); }
.kanban-card { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:12px 13px; margin-bottom:9px;
  cursor:grab; transition:all .15s; }
.kanban-card:hover { border-color:var(--line-strong); }
.kanban-card.dragging { opacity:.5; }
.kanban-card h4 { font-size:15px; font-weight:700; margin-bottom:3px; }
.kanban-meta { display:flex; gap:8px; align-items:center; margin-top:7px; flex-wrap:wrap; }

/* timeline */
.timeline { position:relative; padding-left:22px; }
.timeline::before { content:''; position:absolute; left:7px; top:6px; bottom:6px; width:1px; background:var(--line); }
.tl-item { position:relative; padding:7px 0 12px; }
.tl-item::before { content:''; position:absolute; left:-19.5px; top:13px; width:8px; height:8px; border-radius:50%;
  background:var(--cyan); box-shadow:0 0 9px var(--cyan-glow); }
.tl-title { font-weight:700; font-size:14.5px; }
.tl-meta { font-size:12px; color:var(--faint); }

/* wiki / markdown */
.md-body h1, .md-body h2, .md-body h3 { font-family:var(--font-display); color:#fff; margin:22px 0 10px; letter-spacing:.04em; }
.md-body h1 { font-size:20px; } .md-body h2 { font-size:16.5px; } .md-body h3 { font-size:14px; color:var(--cyan); }
.md-body p { margin:10px 0; }
.md-body ul, .md-body ol { margin:10px 0 10px 22px; }
.md-body code { background:rgba(120,160,220,.12); border:1px solid var(--line); padding:1.5px 7px; border-radius:5px; font-size:13px; }
.md-body pre { background:#05080f; border:1px solid var(--line); border-radius:10px; padding:14px; overflow-x:auto; margin:12px 0; }
.md-body pre code { background:none; border:0; padding:0; }
.md-body blockquote { border-left:2px solid var(--cyan); padding:4px 14px; margin:12px 0; color:var(--dim); background:var(--cyan-soft); border-radius:0 8px 8px 0; }
.md-body hr { border:0; border-top:1px solid var(--line); margin:18px 0; }
.md-table { width:100%; border-collapse:collapse; margin:14px 0; font-size:14px; }
.md-table th, .md-table td { border:1px solid var(--line); padding:7px 11px; text-align:left; }
.md-table th { background:rgba(10,16,30,.6); color:var(--faint); font-family:var(--font-display); font-size:10px; letter-spacing:.14em; text-transform:uppercase; }

/* fit block (doctrine viewer) */
.fit-block { font-family:'Consolas','SF Mono',monospace; font-size:13.5px; background:#05080f; border:1px solid var(--line);
  border-radius:10px; padding:15px 17px; white-space:pre-wrap; color:#b8d4e8; }
.fit-line-ship { color:var(--cyan); font-weight:700; }

/* landing */
.landing { position:relative; z-index:1; max-width:1180px; margin:0 auto; padding:0 26px 50px; }
.landing-top { display:flex; align-items:center; justify-content:space-between; padding:20px 0; }
.landing-hero { text-align:center; padding:64px 0 30px; position:relative; }
.hero-glow { position:absolute; left:50%; top:-40px; transform:translateX(-50%); width:640px; height:340px;
  background:radial-gradient(50% 55% at 50% 45%, rgba(39,213,242,.13), rgba(139,92,246,.07) 55%, transparent 75%); pointer-events:none; }
.hero-shard { width:104px; height:104px; margin:0 auto 26px; filter:drop-shadow(0 0 34px rgba(39,213,242,.45));
  animation:shardFloat 7s ease-in-out infinite; }
.hero-shard svg { width:100%; height:100%; }
@keyframes shardFloat { 0%,100% { transform:translateY(0) rotate(-2deg);} 50% { transform:translateY(-12px) rotate(2deg);} }
.hero-eyebrow { font-family:var(--font-display); font-size:10.5px; letter-spacing:.42em; color:var(--cyan); margin-bottom:16px; }
.hero-title { font-family:var(--font-display); font-weight:900; font-size:clamp(27px,5vw,46px); line-height:1.14; letter-spacing:.03em; }
.grad-text { background:linear-gradient(100deg,#27d5f2 10%,#8b5cf6 60%,#e8c66a 100%); -webkit-background-clip:text;
  background-clip:text; color:transparent; }
.hero-sub { color:var(--dim); max-width:640px; margin:18px auto 28px; font-size:16.5px; }
.hero-actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.demo-creds { margin-top:18px; display:flex; gap:8px; justify-content:center; align-items:center; flex-wrap:wrap; font-size:12.5px; }
.demo-creds code { background:rgba(120,160,220,.1); border:1px solid var(--line); border-radius:6px; padding:2px 8px; color:var(--cyan); }
.landing-features { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:56px; }
.feature-card { padding:24px; }
.feature-card .icon { color:var(--cyan); margin-bottom:12px; }
.feature-card h3 { font-family:var(--font-display); font-size:13.5px; letter-spacing:.1em; margin-bottom:8px; color:#fff; }
.feature-card p { color:var(--dim); font-size:14.5px; }
.landing-foot { margin-top:60px; padding-top:20px; border-top:1px solid var(--line); display:flex;
  justify-content:space-between; font-size:12.5px; color:var(--faint); flex-wrap:wrap; gap:8px; }

.login-wrap { position:relative; z-index:1; min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.login-card { width:100%; max-width:400px; padding:34px 32px; }
.login-logo { width:72px; height:72px; margin:0 auto 16px; filter:drop-shadow(0 0 24px rgba(39,213,242,.4)); }
.login-logo svg { width:100%; height:100%; }
.login-title { font-family:var(--font-display); font-size:19px; letter-spacing:.16em; text-align:center; margin-bottom:6px; }
.login-back { display:block; text-align:center; margin-top:20px; font-size:13px; color:var(--faint); }
.denied-icon { display:flex; justify-content:center; color:var(--red); margin-bottom:14px; filter:drop-shadow(0 0 18px rgba(244,84,107,.5)); }
.denied-meta { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:18px 0; }
.denied-meta div { background:rgba(8,13,24,.6); border:1px solid var(--line); border-radius:10px; padding:10px 12px; }
.denied-meta span { display:block; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; }
.denied-meta strong { font-size:14px; word-break:break-word; }

/* fleet countdown */
.countdown { font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--amber); }

/* item icon tile */
.tile { width:34px; height:34px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, hsl(var(--hue,200) 45% 20%), hsl(calc(var(--hue,200) + 50) 45% 12%));
  border:1px solid var(--line-strong); font-family:var(--font-display); font-size:12px; color:#fff; overflow:hidden; flex-shrink:0; }
.tile img { width:100%; height:100%; object-fit:cover; }

/* modal */
.modal-backdrop { position:fixed; inset:0; background:rgba(2,4,9,.75); backdrop-filter:blur(6px); z-index:80;
  display:flex; align-items:center; justify-content:center; padding:20px; }
.modal { background:var(--panel-solid); border:1px solid var(--line-strong); border-radius:var(--r-lg);
  max-width:560px; width:100%; max-height:86vh; overflow-y:auto; padding:24px;
  animation:fadeUp .25s ease; box-shadow:0 30px 90px rgba(0,0,0,.6); }

/* killboard */
.kill-row { display:flex; align-items:center; gap:14px; padding:13px 16px; border-bottom:1px solid rgba(120,160,220,.07); }
.kill-row:hover { background:rgba(120,160,220,.05); }
.kill-victim { flex:1; min-width:0; }
.kill-victim .name { font-weight:700; }
.kill-victim .meta { font-size:12.5px; color:var(--faint); }

/* wormhole chain */
.chain-node { display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius:10px; background:rgba(8,13,24,.55);
  border:1px solid var(--line); margin-bottom:8px; flex-wrap:wrap; }
.chain-link { display:flex; align-items:center; gap:8px; color:var(--faint); font-size:13px; padding:2px 14px; }

/* ---------- landing: recruitment sections ---------- */
.landing-nav { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.landing-nav a { color:var(--dim); font-weight:600; font-size:14px; }
.landing-nav a:hover { color:var(--cyan); }
.stat-band { display:flex; justify-content:center; gap:0; padding:22px 18px; margin-top:26px; flex-wrap:wrap; }
.stat-band-item { text-align:center; padding:6px 34px; border-right:1px solid var(--line); }
.stat-band-item:last-child { border-right:0; }
.stat-band-value { font-family:var(--font-display); font-weight:700; font-size:23px; color:#fff; text-shadow:0 0 18px var(--cyan-glow); }
.stat-band-label { font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--faint); margin-top:4px; font-weight:600; }
.landing-section { padding:52px 0 6px; }
.landing-h2 { font-family:var(--font-display); font-size:16px; letter-spacing:.12em; color:#fff; margin-bottom:18px;
  display:flex; align-items:center; gap:10px; text-transform:uppercase; }
.landing-h2 .icon { color:var(--cyan); }
.checklist { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:12px 26px; padding:6px 8px; }
.checklist li { display:flex; gap:10px; align-items:flex-start; color:var(--text); font-size:15px; }
.checklist .icon { color:var(--green); margin-top:3px; flex-shrink:0; }
.join-steps { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.join-step { padding:20px 18px; text-align:center; }
.join-step-num { font-family:var(--font-display); font-weight:900; font-size:22px; color:var(--cyan);
  width:42px; height:42px; line-height:42px; margin:0 auto 12px; border-radius:50%;
  border:1px solid rgba(39,213,242,.45); background:var(--cyan-soft); box-shadow:0 0 16px rgba(39,213,242,.15); }
.join-step p { font-size:14px; color:var(--dim); line-height:1.5; }
.join-step strong { color:var(--text); }

/* refer banner */
.refer-banner { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.refer-banner-icon { width:60px; height:60px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  color:var(--gold); background:var(--gold-soft); border:1px solid rgba(232,198,106,.4); box-shadow:0 0 22px rgba(232,198,106,.12); flex-shrink:0; }
.refer-banner-text { flex:1; min-width:220px; }
.refer-banner-text p { margin:2px 0; }

/* ---------- store ---------- */
.store-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(236px,1fr)); gap:14px; }
.store-card { padding:18px; display:flex; flex-direction:column; }
.store-emoji { font-size:36px; line-height:1; margin-bottom:10px; filter:drop-shadow(0 0 12px rgba(39,213,242,.25)); }
.store-img { width:100%; height:150px; object-fit:cover; border-radius:10px; border:1px solid var(--line);
  margin-bottom:12px; transition:transform .3s ease; }
.store-card:hover .store-img { transform:scale(1.03); }
.store-teaser { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.locked-panel { text-align:center; padding:44px 26px; border-style:dashed; border-color:rgba(244,84,107,.4); }
.locked-icon { display:inline-flex; align-items:center; justify-content:center; width:76px; height:76px; border-radius:50%;
  color:var(--red); background:var(--red-soft); border:1px solid rgba(244,84,107,.4); margin-bottom:16px;
  box-shadow:0 0 34px rgba(244,84,107,.15); }
.locked-panel h3 { font-family:var(--font-display); font-size:15px; letter-spacing:.16em; margin-bottom:8px; color:#fff; }
.locked-panel p { max-width:520px; margin:0 auto 20px; }

/* ---------- privacy / locked panels ---------- */
.locked-mini { display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:10px;
  background:var(--red-soft); border:1px solid rgba(244,84,107,.35); color:var(--red); }
.locked-mini .icon { flex-shrink:0; }
.locked-mini .bold { color:var(--text); }
.vis-options { display:flex; gap:6px; flex-wrap:wrap; }
.vis-option { position:relative; cursor:pointer; }
.vis-option input { position:absolute; opacity:0; pointer-events:none; }
.vis-option span { display:inline-block; padding:6px 12px; border-radius:18px; border:1px solid var(--line);
  font-size:12.5px; font-weight:600; color:var(--dim); background:rgba(9,14,26,.5); transition:all .14s ease; }
.vis-option:hover span { border-color:var(--line-strong); color:var(--text); }
.vis-option.active span { border-color:var(--cyan); color:#fff; background:var(--cyan-soft);
  box-shadow:0 0 14px rgba(39,213,242,.15); }
.vis-option input:checked + span::before { content:'✓ '; color:var(--cyan); }

/* ---------- dashboard module grid ---------- */
.module-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(165px,1fr)); gap:11px; }
.module-card { display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px;
  padding:16px 10px; background:rgba(9,14,26,.5); border:1px solid var(--line); border-radius:var(--r);
  color:var(--text); transition:all .18s ease; }
.module-card:hover { border-color:var(--cyan); color:#fff; transform:translateY(-2px);
  box-shadow:0 8px 26px rgba(0,0,0,.4), 0 0 20px rgba(39,213,242,.08); }
.module-icon { color:var(--cyan); }
.module-label { font-weight:700; font-size:14px; line-height:1.25; }
.module-sub { font-size:11.5px; color:var(--faint); letter-spacing:.04em; }

/* ---------- NEXUS AI chat widget ---------- */
.chat-fab { position:fixed; right:22px; bottom:22px; width:58px; height:58px; border-radius:50%; z-index:90;
  background:linear-gradient(135deg,#17c3ea,#8b5cf6); color:#02121c; display:flex; align-items:center; justify-content:center;
  cursor:pointer; border:1px solid rgba(150,225,255,.65); box-shadow:0 0 26px rgba(39,213,242,.5);
  transition:transform .2s ease; }
.chat-fab:hover { transform:scale(1.07); }
.chat-fab.active { background:linear-gradient(135deg,#8b5cf6,#f4546b); }
.chat-fab::before, .chat-fab::after { content:''; position:absolute; inset:-4px; border-radius:50%;
  border:2px solid rgba(39,213,242,.75); animation:chatPulse 2.2s ease-out infinite; }
.chat-fab::after { inset:-11px; border:2px solid rgba(139,92,246,.45); animation-delay:.55s; }
@keyframes chatPulse {
  0% { transform:scale(.82); opacity:.95; }
  70% { transform:scale(1.3); opacity:0; }
  100% { transform:scale(1.3); opacity:0; }
}
.chat-panel { position:fixed; right:22px; bottom:92px; width:min(372px, calc(100vw - 28px)); z-index:89;
  display:none; flex-direction:column; max-height:min(560px, calc(100vh - 130px));
  background:rgba(8,13,24,.96); border:1px solid var(--line-strong); border-radius:16px; overflow:hidden;
  box-shadow:0 26px 80px rgba(0,0,0,.65), 0 0 36px rgba(39,213,242,.12); backdrop-filter:blur(18px); }
.chat-panel.open { display:flex; animation:fadeUp .24s ease; }
.chat-head { display:flex; gap:10px; align-items:center; padding:12px 14px;
  background:rgba(10,16,30,.9); border-bottom:1px solid var(--line); }
.chat-messages { flex:1; overflow-y:auto; padding:14px 14px 6px; display:flex; flex-direction:column; gap:9px; min-height:180px; }
.chat-msg { max-width:86%; padding:9px 13px; border-radius:12px; font-size:14px; line-height:1.5; word-wrap:break-word; }
.chat-user { align-self:flex-end; background:linear-gradient(135deg,#0e7fd6,#155a9e); color:#eaf6ff; border-bottom-right-radius:4px; }
.chat-bot { align-self:flex-start; background:rgba(120,160,220,.10); border:1px solid var(--line); color:var(--text); border-bottom-left-radius:4px; }
.chat-msg.typing { display:flex; gap:4px; padding:12px 14px; }
.chat-msg.typing span { width:6px; height:6px; border-radius:50%; background:var(--cyan); animation:chatTyping 1s infinite; }
.chat-msg.typing span:nth-child(2) { animation-delay:.15s; }
.chat-msg.typing span:nth-child(3) { animation-delay:.3s; }
@keyframes chatTyping { 0%,60%,100% { opacity:.3; transform:translateY(0); } 30% { opacity:1; transform:translateY(-3px); } }
.chat-suggestions { display:flex; gap:6px; flex-wrap:wrap; padding:4px 12px 8px; }
.chat-suggestion { font-size:12px; padding:4px 11px; border-radius:14px; border:1px solid var(--line);
  color:var(--dim); background:none; cursor:pointer; font-family:var(--font-body); transition:all .15s; }
.chat-suggestion:hover { color:var(--cyan); border-color:var(--cyan); }
.chat-form { display:flex; gap:8px; padding:10px 12px 13px; border-top:1px solid var(--line); }

/* ---------- interactive wormhole map ---------- */
.map-node { position:absolute; width:150px; height:52px; display:flex; align-items:center; padding:0 10px;
  background:rgba(10,16,30,.94); border:1.6px solid #5c7190; border-radius:12px; cursor:grab;
  box-shadow:0 6px 18px rgba(0,0,0,.45); user-select:none; z-index:2; transition:box-shadow .15s; }
.map-node:active { cursor:grabbing; }
.map-node.map-selected { box-shadow:0 0 0 2px var(--cyan), 0 0 22px rgba(39,213,242,.4); }

/* ---------- landing: space scene backgrounds ---------- */
.hero-bg { position:absolute; inset:0; z-index:0; background-size:cover; background-position:center 30%;
  opacity:.32; -webkit-mask-image:linear-gradient(180deg,#000 25%, transparent 96%);
  mask-image:linear-gradient(180deg,#000 25%, transparent 96%); pointer-events:none; }
.landing-hero > *:not(.hero-bg) { position:relative; z-index:1; }
.scene-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.scene-card { position:relative; border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line);
  min-height:240px; background:#05070f; }
.scene-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.92;
  transition:transform .5s ease; }
.scene-card:hover img { transform:scale(1.04); }
.scene-caption { position:absolute; left:0; right:0; bottom:0; padding:30px 16px 12px;
  background:linear-gradient(180deg, transparent, rgba(3,5,9,.92)); font-weight:700; font-size:14.5px;
  color:#fff; display:flex; align-items:center; gap:8px; }
.scene-caption .icon { color:var(--cyan); }
.scene-caption small { display:block; font-weight:500; color:var(--dim); font-size:12px; }

/* responsive */
@media (max-width:1080px) {
  .grid-3, .grid-4 { grid-template-columns:1fr 1fr; }
  .landing-features { grid-template-columns:1fr 1fr; }
  .kanban { grid-template-columns:1fr; }
  .join-steps { grid-template-columns:1fr 1fr; }
  .checklist { grid-template-columns:1fr; }
  .stat-band-item { border-right:0; padding:6px 18px; }
  .scene-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px) {
  .scene-grid { grid-template-columns:1fr; }
  .content { padding:14px 12px 36px; }
}
@media (max-width:860px) {
  .sidebar { position:fixed; left:0; top:0; transform:translateX(-105%); box-shadow:30px 0 80px rgba(0,0,0,.6); }
  .sidebar.open { transform:translateX(0); }
  .sidebar-overlay { position:fixed; inset:0; background:rgba(2,4,9,.6); z-index:25; display:none; }
  .sidebar-overlay.open { display:block; }
  .sidebar-toggle { display:inline-flex; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns:1fr; }
  .landing-features { grid-template-columns:1fr; }
  .content { padding:16px 14px 40px; }
  .chip-name { display:none; }
}

/* ---------------------------------------------------------------- site footer (v1.6.1) */
.site-footer { margin-top:48px; border-top:1px solid var(--line); background:rgba(4,8,15,.78); position:relative; z-index:1; }
.site-footer-inner { max-width:1180px; margin:0 auto; padding:34px 28px 6px; }
.site-footer-grid { display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr; gap:30px; }
.sf-brand { min-width:200px; }
.sf-logo { width:54px; height:54px; margin-bottom:10px; filter:drop-shadow(0 0 18px rgba(39,213,242,.35)); }
.sf-logo svg { width:100%; height:100%; }
.sf-name { font-family:var(--font-display); font-size:15px; letter-spacing:.14em; color:var(--text); margin-bottom:8px; }
.sf-about { font-size:12.5px; color:var(--faint); line-height:1.75; max-width:360px; margin:0 0 12px; }
.sf-about strong { color:var(--dim); }
.sf-meta { display:flex; flex-direction:column; gap:7px; font-size:12.5px; color:var(--faint); }
.sf-meta a { color:var(--cyan); }
.sf-meta a:hover { color:#7ee7fa; text-decoration:underline; }
.sf-meta .icon { margin-right:2px; }
.sf-col h4 { font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--faint); margin:0 0 13px; font-weight:600; }
.sf-col ul { list-style:none; display:flex; flex-direction:column; gap:9px; }
.sf-col a { display:inline-flex; align-items:center; gap:7px; color:var(--dim); font-size:13px; }
.sf-col a:hover { color:var(--cyan); }
.sf-col .icon { color:var(--faint); }
.sf-dim { color:var(--faint); font-size:13px; }
.sf-legal { border-top:1px solid var(--line); }
.sf-legal-inner { max-width:1180px; margin:0 auto; padding:15px 28px; display:flex; flex-wrap:wrap; gap:8px 26px; align-items:center; font-size:11.5px; color:var(--faint); }
.sf-copy { color:var(--dim); font-weight:600; }
.sf-ccp { flex:1; min-width:280px; line-height:1.6; }
.sf-ver { white-space:nowrap; }
.sf-ver a { color:var(--cyan); }
@media (max-width:980px) { .site-footer-grid { grid-template-columns:1fr 1fr; } .sf-brand { grid-column:1 / -1; } }
@media (max-width:560px) { .site-footer-grid { grid-template-columns:1fr; } }
