/* NexIoT shared theme tokens, theme switcher UI, custom cursor */
/* ---------------- THEMES (switch via html[data-theme]) ---------------- */
:root {
  --t-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  /* asphalt · amber (default) */
  --t-bg:#0B0F17; --t-deep:#05070A; --t-panel:#111723; --t-line:#1F2836; --t-line2:#3A4353; --t-dim:#8E99AD; --t-text:#EEF1F6;
  --t-amber:#FFB627; --t-amber-rgb:255,182,39; --t-amber-hi:#FFC65A; --t-amber-d:#D98E04; --t-on:#1A1305;
  --t-green:#3BE3A5; --t-green-rgb:59,227,165; --t-blue:#6AA9FF; --t-blue-rgb:106,169,255;
  --p-bg:#F5F3EE; --p-line:#E4E1D8; --p-line2:#D2CEC2; --p-mute:#D8D4C9; --p-hover:#FBFAF6;
}
html[data-theme="neon"] {
  --t-bg:#0B0714; --t-deep:#06030C; --t-panel:#150E24; --t-line:#2A1E42; --t-line2:#463368; --t-dim:#9C90B8; --t-text:#F4EFFF;
  --t-amber:#FF3D9A; --t-amber-rgb:255,61,154; --t-amber-hi:#FF6BB3; --t-amber-d:#D6207B; --t-on:#1A0210;
  --t-green:#00E5FF; --t-green-rgb:0,229,255; --t-blue:#B388FF; --t-blue-rgb:179,136,255;
  --p-bg:#F6F1F8; --p-line:#E6DEEB; --p-line2:#D5C9DE; --p-mute:#DAD0E2; --p-hover:#FBF8FD;
}
html[data-theme="forest"] {
  --t-bg:#08120D; --t-deep:#030906; --t-panel:#0E1C15; --t-line:#1A3025; --t-line2:#2E4E3E; --t-dim:#8AA396; --t-text:#EAF5EE;
  --t-amber:#C6F432; --t-amber-rgb:198,244,50; --t-amber-hi:#D8FA6A; --t-amber-d:#5E8A00; --t-on:#0F1A03;
  --t-green:#4ADE80; --t-green-rgb:74,222,128; --t-blue:#38BDF8; --t-blue-rgb:56,189,248;
  --p-bg:#F1F5EC; --p-line:#DFE6D6; --p-line2:#CBD5BE; --p-mute:#D3DCC8; --p-hover:#F8FAF4;
}
html[data-theme="arctic"] {
  --t-bg:#06121A; --t-deep:#030A10; --t-panel:#0B1C28; --t-line:#15303F; --t-line2:#28495C; --t-dim:#86A0B3; --t-text:#EAF4FA;
  --t-amber:#38BDF8; --t-amber-rgb:56,189,248; --t-amber-hi:#6FD0FB; --t-amber-d:#0B7FB5; --t-on:#031520;
  --t-green:#2DD4BF; --t-green-rgb:45,212,191; --t-blue:#FFB627; --t-blue-rgb:255,182,39;
  --p-bg:#F0F5F8; --p-line:#DCE6EC; --p-line2:#C6D5DE; --p-mute:#D0DCE4; --p-hover:#F7FAFC;
}
html[data-theme="ember"] {
  --t-bg:#130B08; --t-deep:#090403; --t-panel:#1E120D; --t-line:#3A2318; --t-line2:#5A382A; --t-dim:#B09284; --t-text:#FBF0EA;
  --t-amber:#FF5A36; --t-amber-rgb:255,90,54; --t-amber-hi:#FF7D5E; --t-amber-d:#D13A17; --t-on:#1F0803;
  --t-green:#FFD166; --t-green-rgb:255,209,102; --t-blue:#6AA9FF; --t-blue-rgb:106,169,255;
  --p-bg:#F8F2EE; --p-line:#EBE0D9; --p-line2:#DACBC1; --p-mute:#E0D3CA; --p-hover:#FCF8F5;
}
html[data-theme="mono"] {
  --t-bg:#0C0C0D; --t-deep:#050505; --t-panel:#151516; --t-line:#252527; --t-line2:#3F3F42; --t-dim:#9A9AA0; --t-text:#F4F4F5;
  --t-amber:#F4F4F5; --t-amber-rgb:244,244,245; --t-amber-hi:#FFFFFF; --t-amber-d:#3F3F46; --t-on:#0C0C0D;
  --t-green:#A1A1AA; --t-green-rgb:161,161,170; --t-blue:#71717A; --t-blue-rgb:113,113,122;
  --p-bg:#F4F4F5; --p-line:#E4E4E7; --p-line2:#D4D4D8; --p-mute:#D9D9DD; --p-hover:#FAFAFA;
}

/* ---------------- theme switcher UI ---------------- */
.themer { position: fixed; left: 18px; bottom: 18px; z-index: 1100; display: flex; align-items: center; gap: 10px; padding: 8px 10px 8px 14px; border-radius: 999px;
  background: rgba(11,15,23,.88); border: 1px solid rgba(255,255,255,.14); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  font-family: var(--t-mono); font-size: 10.5px; letter-spacing: .12em; color: #9aa3b2; box-shadow: 0 18px 40px -16px rgba(0,0,0,.6); }
.themer .sw { width: 22px; height: 22px; border-radius: 50%; border: 2px solid transparent; cursor: pointer; padding: 0; position: relative; transition: transform .2s ease; }
.themer .sw:hover { transform: scale(1.18); }
.themer .sw.on { border-color: #fff; }
.themer kbd { font-family: inherit; border: 1px solid rgba(255,255,255,.2); border-radius: 4px; padding: 1px 5px; font-size: 10px; color: #cbd2de; }
@media (max-width: 700px) { .themer span.lbl, .themer kbd { display: none; } .themer { left: 10px; bottom: 10px; } }

/* ---------------- custom cursor ---------------- */
.cur-dot, .cur-ring { position: fixed; top: 0; left: 0; pointer-events: none; z-index: 4000; border-radius: 50%; opacity: 0; transition: opacity .3s; }
.cur-dot { width: 6px; height: 6px; margin: -3px 0 0 -3px; background: var(--t-amber); }
.cur-ring { width: 38px; height: 38px; margin: -19px 0 0 -19px; border: 1.5px solid rgba(var(--t-amber-rgb), .7); transition: width .25s ease, height .25s ease, margin .25s ease, background .25s ease, opacity .3s, border-color .25s; mix-blend-mode: normal; }
.cur-ring.hov { width: 64px; height: 64px; margin: -32px 0 0 -32px; background: rgba(var(--t-amber-rgb), .12); }
.cur-ring.down { width: 26px; height: 26px; margin: -13px 0 0 -13px; }
body.has-cursor, body.has-cursor a, body.has-cursor button, body.has-cursor .hero-globe { cursor: none; }
body.has-cursor input, body.has-cursor textarea, body.has-cursor select { cursor: text; }
body.has-cursor.cur-on .cur-dot, body.has-cursor.cur-on .cur-ring { opacity: 1; }

