:root { 
    --bg-dark: #0f172a; 
    --bg-panel: #1e293b; 
    --text-main: #f8fafc; 
    --text-dim: #64748b;
    --text-muted: #94a3b8;
    --accent: #6366f1;
    --accent-hover: #4f46e5;
    --gradient: linear-gradient(135deg, #6366f1, #d946ef);
    --glass-bg: rgba(30, 41, 59, 0.7);
    --glass-border: rgba(255, 255, 255, 0.1);
}

/* Custom Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: rgba(15, 23, 42, 0.3); border-radius: 4px; }
::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.15); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent); }

* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Segoe UI', system-ui, sans-serif; background-color: var(--bg-dark); color: var(--text-main); height: 100vh; overflow: hidden; }
kbd { font-family: ui-monospace, monospace; background: var(--bg-dark); padding: 0.2rem 0.4rem; border-radius: 0.3rem; border: 1px solid var(--glass-border); font-size: 0.75rem; color: var(--text-muted); }

.nexus-app { display: flex; height: 100vh; }

/* Sidebar */
.nexus-sidebar { width: 260px; background-color: var(--bg-panel); border-right: 1px solid var(--glass-border); display: flex; flex-direction: column; transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); z-index: 20; }
.nexus-sidebar.collapsed { width: 75px; }
.sidebar-brand { padding: 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--glass-border); overflow: hidden; white-space: nowrap; }
.brand-logo { width: 40px; height: 40px; flex-shrink: 0; }
.sidebar-brand h2 { font-size: 1.2rem; background: var(--gradient); -webkit-background-clip: text; -webkit-text-fill-color: transparent; transition: opacity 0.2s; }
.sidebar-toggle-btn { background: transparent; border: none; color: var(--text-muted); font-size: 1.5rem; cursor: pointer; transition: transform 0.3s; display: flex; align-items: center; justify-content: center; }
.nexus-sidebar.collapsed .sidebar-toggle-btn { transform: rotate(180deg); }
.nexus-sidebar.collapsed .sidebar-brand h2 { opacity: 0; display: none; }
.nexus-sidebar.collapsed .brand-logo { margin-left: -5px; }
.sidebar-nav { padding: 1.5rem 1rem; display: flex; flex-direction: column; gap: 0.3rem; overflow-y: auto; overflow-x: hidden; scrollbar-width: none; -ms-overflow-style: none; }
.sidebar-nav::-webkit-scrollbar { width: 0; height: 0; display: none; }
.nav-category { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 1px; color: var(--text-dim); margin: 1rem 0 0.5rem 0.5rem; font-weight: bold; white-space: nowrap; transition: opacity 0.2s; }
.nexus-sidebar.collapsed .nav-category { opacity: 0; height: 0; margin: 0; overflow: hidden; }
.sidebar-nav a { display: flex; align-items: center; color: var(--text-muted); text-decoration: none; padding: 0.75rem 1rem; border-radius: 0.5rem; transition: all 0.2s; font-weight: 500; white-space: nowrap; }
.sidebar-nav a:hover, .sidebar-nav a.active { background-color: var(--accent); color: white; }
.sidebar-nav a.locked { opacity: 0.4; cursor: not-allowed; pointer-events: none; }
.nexus-sidebar.collapsed .sidebar-nav a { padding: 0.75rem; justify-content: center; }
.nexus-sidebar.collapsed .sidebar-nav a .nav-text { display: none; }
.sidebar-nav a .nav-icon { margin-right: 0.8rem; font-size: 1.2rem; display: inline-flex; justify-content: center; align-items: center; }
.nexus-sidebar.collapsed .sidebar-nav a .nav-icon { margin-right: 0; font-size: 1.4rem; }

/* Main Content */
.nexus-main { flex: 1; display: flex; flex-direction: column; overflow-y: auto; }
.nexus-topbar { height: 70px; border-bottom: 1px solid var(--glass-border); display: flex; align-items: center; justify-content: space-between; padding: 0 2rem; background: rgba(15, 23, 42, 0.8); backdrop-filter: blur(10px); position: sticky; top: 0; z-index: 10; gap: 1rem; }
.mobile-menu-btn { display: none; background: transparent; border: none; color: white; font-size: 1.8rem; cursor: pointer; padding: 0; }
.nexus-content { padding: 2rem; max-width: 1400px; width: 100%; margin: 0 auto; animation: fadeIn 0.4s ease-out; flex: 1; }

/* Expande a área do Studio para ocupar todo o espaço */
.nexus-content.studio-active {
    padding: 1rem;
    max-width: 100%;
    height: 100%;
}
.nexus-content.studio-active .elite-workspace {
    height: 100%;
}

.nexus-content.pp-active {
    padding: 0.75rem 1rem;
    max-width: 100%;
    height: calc(100vh - 70px);
    display: flex;
    flex-direction: column;
}
.nexus-content.pp-active #pp-module-root {
    flex: 1;
    min-height: 0;
}

html.nx-pp-focus .nexus-content.pp-active {
    padding: 0.35rem 0.5rem 0.5rem;
    height: calc(100vh - 3.5rem);
}

.sidebar-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 99; backdrop-filter: blur(4px); opacity: 0; transition: opacity 0.3s ease; }
.sidebar-overlay.active { display: block; opacity: 1; pointer-events: all; }
.user-profile { font-weight: bold; background: var(--glass-bg); padding: 0.5rem 1rem; border-radius: 2rem; border: 1px solid var(--glass-border); }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

/* Omnibar (Spotlight Search) */
.search-btn { background: var(--bg-dark); border: 1px solid var(--glass-border); color: var(--text-muted); padding: 0.6rem 1rem; border-radius: 0.5rem; width: 350px; display: flex; justify-content: space-between; align-items: center; cursor: text; transition: all 0.2s; }
.search-btn:hover { border-color: var(--accent); color: white; }
.omnibar-backdrop { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.8); backdrop-filter: blur(8px); z-index: 9999; display: flex; justify-content: center; align-items: flex-start; padding-top: 12vh; opacity: 1; transition: opacity 0.2s; }
.omnibar-backdrop.hidden { opacity: 0; pointer-events: none; }
.omnibar-modal { background: var(--bg-panel); width: 100%; max-width: 650px; border-radius: 1rem; border: 1px solid var(--glass-border); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); overflow: hidden; transform: scale(1); transition: transform 0.2s; }
.omnibar-backdrop.hidden .omnibar-modal { transform: scale(0.95); }
.omnibar-input-group { display: flex; align-items: center; padding: 1.2rem; border-bottom: 1px solid var(--glass-border); }
.omnibar-input-group input { flex: 1; background: transparent; border: none; color: white; font-size: 1.2rem; padding: 0 1rem; outline: none; }
.omnibar-results { max-height: 400px; overflow-y: auto; padding: 0.5rem; }
.omni-item { display: flex; align-items: center; gap: 1rem; padding: 1rem; border-radius: 0.5rem; cursor: pointer; color: var(--text-muted); transition: all 0.1s; }
.omni-item:hover, .omni-item.selected { background: var(--accent); color: white; }
.omni-item .icon { font-size: 1.5rem; }
.omni-item .details h4 { color: white; margin-bottom: 0.2rem; }
.omni-item:hover .details h4, .omni-item.selected .details h4 { color: white; }
.omni-item .details p { font-size: 0.85rem; }

/* Synapt Guardian (Login Glassmorphism) */
.guardian-backdrop { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.95); backdrop-filter: blur(20px); z-index: 10000; display: flex; justify-content: center; align-items: center; opacity: 1; transition: opacity 0.3s; }
.guardian-backdrop.hidden { opacity: 0; pointer-events: none; }
.guardian-modal { width: 100%; max-width: 420px; padding: 3rem 2.5rem; text-align: center; transform: translateY(0) scale(1); transition: transform 0.3s; }
.guardian-backdrop.hidden .guardian-modal { transform: translateY(20px) scale(0.95); }
.guardian-header h2 { font-size: 1.8rem; background: var(--gradient); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom: 0.5rem; }
.guardian-header p { color: var(--text-muted); font-size: 0.95rem; }
.guardian-form { display: flex; flex-direction: column; gap: 1.2rem; text-align: left; }
.guardian-form label { font-size: 0.75rem; color: var(--text-muted); font-weight: bold; text-transform: uppercase; letter-spacing: 1px; }
.guardian-form input { background: rgba(15, 23, 42, 0.8); border: 1px solid var(--glass-border); padding: 0.9rem 1rem; border-radius: 0.5rem; color: white; font-size: 1rem; outline: none; transition: all 0.2s; }
.guardian-form input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2); }
.w-100 { width: 100%; }
.auth-error { color: #f87171; font-size: 0.85rem; text-align: center; background: rgba(248, 113, 113, 0.1); padding: 0.75rem; border-radius: 0.5rem; border: 1px solid rgba(248, 113, 113, 0.3); }
.auth-error.hidden { display: none; }

/* App Launcher & Workspaces */
.workspaces-container { display: flex; flex-direction: column; gap: 2.5rem; margin-bottom: 3rem; }
.workspace-group { display: flex; flex-direction: column; gap: 1.2rem; }
.workspace-title { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 2px; color: var(--text-dim); border-bottom: 1px solid var(--glass-border); padding-bottom: 0.5rem; font-weight: bold; }
.app-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 1.5rem; }
.app-card { background: var(--glass-bg); backdrop-filter: blur(12px); border: 1px solid var(--glass-border); border-radius: 1.5rem; padding: 1.5rem 1rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.8rem; cursor: pointer; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); text-align: center; position: relative; }
.app-card:hover { transform: translateY(-5px); border-color: var(--accent); box-shadow: 0 10px 25px -5px rgba(0,0,0,0.3); background: rgba(30, 41, 59, 0.9); }
.app-card.locked { opacity: 0.4; filter: grayscale(0.8); cursor: not-allowed; }
.app-card.locked:hover { transform: none; border-color: var(--glass-border); box-shadow: none; background: var(--glass-bg); }
.app-icon { font-size: 2.8rem; display: flex; align-items: center; justify-content: center; text-shadow: 0 4px 10px rgba(0,0,0,0.3); transition: transform 0.2s; }
.app-card:hover .app-icon { transform: scale(1.1); }
.app-name { color: white; font-weight: 600; font-size: 0.9rem; line-height: 1.2; }
.app-badge { font-size: 0.6rem; background: var(--bg-dark); color: var(--accent); padding: 0.2rem 0.5rem; border-radius: 1rem; position: absolute; top: -10px; border: 1px solid var(--glass-border); font-weight: bold; text-transform: uppercase; }

/* Dashboard Elements */
.dashboard-header { margin-bottom: 2.5rem; }
.dashboard-header h1 { font-size: 2.5rem; margin-bottom: 0.5rem; }
.dashboard-header p { color: var(--text-muted); font-size: 1.1rem; }

.dashboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; }

.nexus-card { background: var(--bg-panel); padding: 2rem; border-radius: 1rem; border: 1px solid var(--glass-border); display: flex; flex-direction: column; gap: 1rem; }
.nexus-card.glass { background: var(--glass-bg); backdrop-filter: blur(12px); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); }
.nexus-card.glass:hover { border-color: var(--accent); }
.nexus-card.highlight { border: 1px solid var(--accent); position: relative; overflow: hidden; }
.nexus-card.highlight::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--gradient); }

.card-icon { font-size: 2.5rem; }
.nexus-card h3 { font-size: 1.25rem; color: white; }
.nexus-card p { color: var(--text-muted); line-height: 1.5; flex: 1; }

.nexus-btn { background: var(--accent); color: white; border: none; padding: 0.75rem 1.5rem; border-radius: 0.5rem; font-weight: bold; cursor: pointer; transition: background 0.2s; font-size: 1rem; }
.nexus-btn:hover { background: var(--accent-hover); }
.nexus-btn:disabled { opacity: 0.6; cursor: not-allowed; }

.api-console { background: var(--bg-dark); padding: 1rem; border-radius: 0.5rem; font-family: monospace; font-size: 0.9rem; color: var(--text-muted); border: 1px solid var(--glass-border); }

/* Studio Views */
.studio-view { animation: fadeIn 0.3s ease-out; }
.studio-view.hidden { display: none; }

/* Editor Panes (Abas Internas) */
.editor-pane { animation: fadeIn 0.3s ease-out; }
.editor-pane.hidden { display: none !important; }

@keyframes slideInRight { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }

/* Leaflet Custom Tooltips */
.leaflet-tooltip.isp-map-label { background: rgba(15, 23, 42, 0.9); border: 1px solid var(--accent); color: #f8fafc; border-radius: 4px; font-size: 0.7rem; font-weight: bold; padding: 2px 6px; box-shadow: 0 0 5px rgba(0,0,0,0.5); }
.leaflet-tooltip.isp-map-label::before { display: none; }

/* Media Queries (Mobile Elite) */
@media (max-width: 768px) {
    .nexus-sidebar { position: fixed; z-index: 100; height: 100vh; transform: translateX(-100%); transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 10px 0 25px rgba(0,0,0,0.5); }
    .nexus-sidebar.open { transform: translateX(0); }
    .mobile-menu-btn { display: block; }
    .nexus-topbar { padding: 0 1rem; }
    .search-btn { width: auto; flex: 1; font-size: 0.9rem; padding: 0.5rem; justify-content: center; }
    .search-btn .shortcut { display: none; }
    .search-btn .icon { display: none; }
    .user-profile { display: none; }
    .nexus-content { padding: 1.5rem 1rem; }
    .dashboard-header h1 { font-size: 1.8rem; }
    .app-grid { grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 1rem; }
    .app-card { padding: 1rem 0.5rem; border-radius: 1.2rem; }
    .app-icon { font-size: 2.2rem; }
    .omnibar-modal { max-width: 90%; margin: 0 1rem; }
    .omnibar-input-group input { font-size: 1rem; } /* Prevents iOS auto-zoom */
    .nexus-card { padding: 1.5rem; }
}

/* --- WAR ROOM ELITE DESIGN --- */
.elite-workspace { display: grid; grid-template-columns: 280px 1fr 350px; height: calc(100vh - 70px - 2rem); background: #0f172a; color: #e2e8f0; overflow: hidden; border-radius: 1rem; border: 1px solid #1e293b; box-shadow: 0 10px 30px rgba(0,0,0,0.5); }
.squad-panel, .deliberation-panel, .canvas-panel { display: flex; flex-direction: column; border-right: 1px solid #1e293b; background: rgba(15, 23, 42, 0.6); overflow: hidden; }
.canvas-panel { border-right: none; border-left: 1px solid #1e293b; background: #0b1120; }
.panel-title { font-size: 0.75rem; color: #64748b; letter-spacing: 1px; padding: 1.5rem 1rem 0.5rem; text-transform: uppercase; margin: 0; flex-shrink: 0; }
.squad-scroll-area { overflow-y: auto; padding-bottom: 1rem; }

.agent-card { display: flex; align-items: center; padding: 1rem; margin: 0.5rem 1rem; border-radius: 0.75rem; background: #1e293b; border: 1px solid transparent; transition: all 0.3s; position: relative; }
.agent-card.idle { opacity: 0.5; background: transparent; border-color: transparent; box-shadow: none; cursor: pointer; }
.agent-card.idle:hover { background: #1e293b; opacity: 1; }
.agent-card .avatar { font-size: 1.8rem; margin-right: 1rem; }
.agent-card h4 { margin: 0; font-size: 0.9rem; color: #f8fafc; }
.agent-card span { font-size: 0.75rem; color: #94a3b8; }
.agent-activity { font-size: 0.7rem; color: #38bdf8; margin-top: 0.3rem; font-style: italic; display: none; }
.processing .agent-activity { display: block; animation: pulseText 1.5s infinite alternate; }
@keyframes pulseText { from { opacity: 0.5; } to { opacity: 1; } }

.agent-card.ceo { border-color: rgba(251, 191, 36, 0.3); box-shadow: 0 0 15px rgba(251, 191, 36, 0.1); }
.agent-card.caio { border-color: rgba(192, 38, 211, 0.3); }
.agent-card.architect { border-color: rgba(56, 189, 248, 0.3); }
.agent-card.engineer { border-color: rgba(16, 185, 129, 0.3); }
.agent-card.auditor { border-color: rgba(244, 63, 94, 0.3); }

.processing .status-dot { position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); width: 10px; height: 10px; border-radius: 50%; background: currentColor; box-shadow: 0 0 10px currentColor; animation: pulse 0.8s infinite alternate; }
.caio .status-dot { color: #c026d3; }
.architect .status-dot { color: #38bdf8; }
.engineer .status-dot { color: #10b981; }
.auditor .status-dot { color: #f43f5e; }

@keyframes pulse { from { opacity: 0.2; transform: translateY(-50%) scale(0.8); } to { opacity: 1; transform: translateY(-50%) scale(1.2); } }

.room-header { padding: 1rem 1.5rem; border-bottom: 1px solid #1e293b; display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; }
.room-header h2 { margin: 0; font-size: 1.1rem; color: #f8fafc; }
.badge { padding: 0.2rem 0.6rem; border-radius: 1rem; font-size: 0.75rem; font-weight: bold; }
.badge.time { background: #334155; color: #cbd5e1; }
.badge.pending { background: rgba(245, 158, 11, 0.2); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.4); }

.chat-thread { flex: 1; padding: 1.5rem; overflow-y: auto; display: flex; flex-direction: column; gap: 1.5rem; scroll-behavior: smooth; }
.message { padding: 1rem 1.5rem; border-radius: 0 1rem 1rem 1rem; max-width: 85%; font-size: 0.95rem; line-height: 1.6; background: #1e293b; }
.msg-author { font-size: 0.75rem; font-weight: bold; margin-bottom: 0.5rem; text-transform: uppercase; letter-spacing: 0.5px; }

.ceo-msg { background: rgba(251, 191, 36, 0.1); border-left: 3px solid #fbbf24; align-self: flex-end; border-radius: 1rem 0 1rem 1rem; }
.ceo-msg .msg-author { color: #fbbf24; }

.caio-msg { background: rgba(192, 38, 211, 0.1); border-left: 3px solid #c026d3; align-self: flex-start; }
.caio-msg .msg-author { color: #e879f9; }

.architect-msg { background: rgba(56, 189, 248, 0.1); border-left: 3px solid #38bdf8; align-self: flex-start; }
.architect-msg .msg-author { color: #38bdf8; }

.system-event { align-self: center; font-size: 0.8rem; color: #94a3b8; background: #1e293b; padding: 0.4rem 1.2rem; border-radius: 1rem; border: 1px solid rgba(255,255,255,0.05); }
.system-event.alert { color: #38bdf8; border-color: rgba(56, 189, 248, 0.3); }

.input-area { padding: 1.5rem; background: #1e293b; border-top: 1px solid #334155; display: flex; gap: 1rem; flex-shrink: 0; }
.input-area textarea { flex: 1; background: #0f172a; border: 1px solid #334155; border-radius: 0.5rem; color: white; padding: 1rem; resize: none; outline: none; font-family: inherit; height: 50px; }
.input-area textarea:focus { border-color: #6366f1; }
.send-btn { background: #6366f1; color: white; border: none; padding: 0 1.5rem; border-radius: 0.5rem; font-weight: bold; cursor: pointer; transition: 0.2s; }
.send-btn:hover { background: #4f46e5; }

.canvas-tabs { display: flex; border-bottom: 1px solid #1e293b; flex-shrink: 0; }
.canvas-tabs button { flex: 1; background: transparent; border: none; color: #64748b; padding: 1rem; cursor: pointer; font-weight: bold; border-bottom: 2px solid transparent; }
.canvas-tabs button.active { color: #38bdf8; border-bottom-color: #38bdf8; background: rgba(56, 189, 248, 0.05); }
.canvas-content { flex: 1; overflow-y: auto; }
.canvas-pane { display: none; padding: 2rem; }
.canvas-pane.active { display: block; animation: fadeIn 0.3s; }
.checklist { list-style: none; padding: 0; margin: 1.5rem 0; display: flex; flex-direction: column; gap: 1rem; }
.checklist li { display: flex; align-items: center; gap: 0.8rem; background: #1e293b; padding: 1rem; border-radius: 0.5rem; font-size: 0.9rem; }

/* SYNAPT_NEXUS_LAUNCHER_EMBED */
/* Synapt Nexus OS — Launcher lateral (moedas flutuantes + onda) */

.nexus-sidebar.nx-launcher-rail {
  width: 108px;
  min-width: 108px;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.88) 0%, rgba(15, 23, 42, 0.55) 100%);
  backdrop-filter: blur(18px);
  border-right: 1px solid rgba(45, 212, 191, 0.12);
  box-shadow: 4px 0 32px rgba(0, 0, 0, 0.35);
}

.nexus-sidebar.nx-launcher-rail.collapsed {
  width: 108px;
}

.nexus-sidebar.nx-launcher-rail .sidebar-brand {
  flex-direction: column;
  padding: 1rem 0.5rem 0.75rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  gap: 0.35rem;
}

.nexus-sidebar.nx-launcher-rail .sidebar-brand h2 {
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
  opacity: 0.85;
  display: block !important;
  width: auto !important;
}

.nexus-sidebar.nx-launcher-rail.collapsed .sidebar-brand h2 {
  opacity: 0.85;
  display: block !important;
}

.nexus-sidebar.nx-launcher-rail .sidebar-toggle-btn {
  font-size: 1rem;
  opacity: 0.5;
}

.nx-coin-launcher {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
  padding: 0.85rem 0.35rem 2rem;
  overflow-x: visible;
  overflow-y: auto;
  scrollbar-width: thin;
}

.nx-coin-divider {
  width: 100%;
  text-align: center;
  margin: 0.35rem 0 0.15rem;
  pointer-events: none;
}

.nx-coin-divider span {
  display: inline-block;
  font-size: 0.58rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(148, 163, 184, 0.65);
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

/* Moeda */
.nx-coin {
  --wave-x: 0px;
  --wave-y: 0px;
  --wave-scale: 1;
  --wave-rot: 0deg;
  position: relative;
  width: 62px;
  height: 62px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  cursor: pointer;
  transform: translateX(var(--wave-x)) translateY(var(--wave-y)) scale(var(--wave-scale)) rotate(var(--wave-rot));
  transition: transform 0.2s cubic-bezier(0.34, 1.45, 0.64, 1), filter 0.25s;
  will-change: transform;
}

.nx-coin-glow {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(45, 212, 191, 0.45) 0%, rgba(99, 102, 241, 0.2) 45%, transparent 72%);
  opacity: 0;
  transition: opacity 0.25s;
  z-index: 0;
  animation: nxCoinFloat 4s ease-in-out infinite;
  animation-delay: calc(var(--i, 0) * 0.12s);
}

.nx-coin-face {
  position: relative;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 28%, #475569 0%, #1e293b 42%, #0f172a 100%);
  border: 2px solid rgba(99, 102, 241, 0.4);
  box-shadow:
    0 10px 22px rgba(0, 0, 0, 0.5),
    inset 0 2px 4px rgba(255, 255, 255, 0.15),
    inset 0 -3px 6px rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  z-index: 2;
  transition: border-color 0.25s, box-shadow 0.25s;
}

.nx-coin-ring {
  position: absolute;
  inset: 2px;
  border-radius: 50%;
  border: 1px dashed rgba(45, 212, 191, 0.25);
  z-index: 1;
  opacity: 0.6;
  animation: nxCoinSpin 18s linear infinite;
  animation-delay: calc(var(--i, 0) * -0.5s);
}

@keyframes nxCoinSpin {
  to { transform: rotate(360deg); }
}

@keyframes nxCoinFloat {
  0%, 100% { transform: scale(1); opacity: 0.35; }
  50% { transform: scale(1.08); opacity: 0.55; }
}

.nx-coin:hover .nx-coin-glow,
.nx-coin.active .nx-coin-glow,
.nx-coin.nx-coin-waving .nx-coin-glow {
  opacity: 1;
}

.nx-coin:hover .nx-coin-face,
.nx-coin.active .nx-coin-face {
  border-color: rgba(45, 212, 191, 0.75);
  box-shadow:
    0 14px 28px rgba(45, 212, 191, 0.25),
    inset 0 2px 4px rgba(255, 255, 255, 0.2);
}

.nx-coin.active .nx-coin-face {
  border-color: #2dd4bf;
  background: radial-gradient(circle at 32% 28%, #5eead4 0%, #1e293b 55%, #0f172a 100%);
}

.nx-coin.locked {
  opacity: 0.35;
  filter: grayscale(0.85);
  pointer-events: none;
}

.nx-coin-caio .nx-coin-face {
  background: url('/assets/caio-avatar.png') center/cover no-repeat;
  border-color: rgba(45, 212, 191, 0.55);
}

.nx-coin-caio.caio-nav-pulse .nx-coin-glow {
  opacity: 1;
  animation: caioAvatarPulse 1.5s ease-in-out infinite;
}

.nx-coin-label {
  position: absolute;
  left: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%) translateX(-8px);
  white-space: nowrap;
  padding: 0.4rem 0.75rem;
  background: rgba(10, 15, 28, 0.94);
  border: 1px solid rgba(45, 212, 191, 0.28);
  border-radius: 10px;
  font-size: 0.72rem;
  font-weight: 600;
  color: #f1f5f9;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s, transform 0.22s cubic-bezier(0.34, 1.4, 0.64, 1);
  z-index: 100;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}

.nx-coin:hover .nx-coin-label,
.nx-coin:focus-visible .nx-coin-label {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

.nx-coin-label::before {
  content: '';
  position: absolute;
  left: -5px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 8px;
  height: 8px;
  background: rgba(10, 15, 28, 0.94);
  border-left: 1px solid rgba(45, 212, 191, 0.28);
  border-bottom: 1px solid rgba(45, 212, 191, 0.28);
}

@media (min-width: 768px) {
  .nexus-sidebar.nx-launcher-rail + .nexus-main {
    margin-left: 0;
  }
}

body.nexus-tpl-premium .nexus-sidebar.nx-launcher-rail {
  background: rgba(8, 12, 24, 0.72);
  border-right-color: rgba(45, 212, 191, 0.18);
}

body.nexus-tpl-premium .nx-coin-face {
  box-shadow:
    0 12px 26px rgba(0, 0, 0, 0.55),
    0 0 20px rgba(99, 102, 241, 0.12),
    inset 0 2px 4px rgba(255, 255, 255, 0.18);
}

/* SYNAPT_NEXUS_TEMPLATES_EMBED */
/* Nexus OS — templates launcher */

body.nexus-tpl-premium {
  --nx-wall: linear-gradient(135deg, #0c1222 0%, #1a1f3a 35%, #0f172a 70%, #134e4a 100%);
  --nx-glass: rgba(15, 23, 42, 0.72);
  --nx-accent: #2dd4bf;
}

body.nexus-tpl-premium .nexus-app::before {
  content: '';
  position: fixed;
  inset: 0;
  background: var(--nx-wall);
  z-index: 0;
  pointer-events: none;
}

body.nexus-tpl-premium .nexus-app::after {
  content: '';
  position: fixed;
  inset: 0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(45, 212, 191, 0.08) 0%, transparent 45%),
    radial-gradient(circle at 80% 70%, rgba(99, 102, 241, 0.1) 0%, transparent 40%);
  z-index: 0;
  pointer-events: none;
  animation: nxWallPulse 12s ease-in-out infinite alternate;
}

@keyframes nxWallPulse {
  from { opacity: 0.6; }
  to { opacity: 1; }
}

body.nexus-tpl-premium .nexus-sidebar {
  background: var(--nx-glass) !important;
  backdrop-filter: blur(24px);
  border-right: 1px solid rgba(45, 212, 191, 0.15);
  z-index: 10;
}

body.nexus-tpl-premium .nexus-main {
  position: relative;
  z-index: 5;
}

body.nexus-tpl-premium .nexus-topbar {
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

body.nexus-tpl-premium .nexus-content {
  min-height: calc(100vh - 120px);
}

body.nexus-tpl-premium .webos-grid {
  max-width: 1100px;
  gap: 2rem;
}

body.nexus-tpl-premium .launcher-app .app-icon {
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(30, 41, 59, 0.9), rgba(15, 23, 42, 0.95));
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

body.nexus-tpl-premium .system-dock {
  bottom: 3.5rem;
  border-radius: 16px;
  border: 1px solid rgba(45, 212, 191, 0.2);
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.45);
}

/* Taskbar premium */
.nx-taskbar {
  display: none;
}

body.nexus-tpl-premium .nx-taskbar {
  display: flex;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 42px;
  background: rgba(10, 15, 28, 0.92);
  backdrop-filter: blur(20px);
  border-top: 1px solid rgba(45, 212, 191, 0.12);
  align-items: center;
  justify-content: space-between;
  padding: 0 1.25rem;
  z-index: 200;
  font-size: 0.75rem;
  color: #94a3b8;
}

body.nexus-tpl-premium .nx-taskbar-brand {
  color: var(--nx-accent);
  font-weight: 600;
  letter-spacing: 0.04em;
}

/* CAIO — avatar & dock */
.caio-nav-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: url('/assets/caio-avatar.png') center/cover no-repeat;
  display: inline-block;
  box-shadow: 0 0 0 2px rgba(45, 212, 191, 0.4);
}

#nav-caio-mind.active .caio-nav-avatar,
#nav-caio-mind:hover .caio-nav-avatar {
  box-shadow: 0 0 12px rgba(45, 212, 191, 0.6);
}

#nav-caio-mind.caio-nav-pulse .caio-nav-avatar {
  animation: caioAvatarPulse 1.5s ease-in-out infinite;
}

@keyframes caioAvatarPulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 2px rgba(45, 212, 191, 0.5); }
  50% { transform: scale(1.06); box-shadow: 0 0 16px rgba(99, 102, 241, 0.8); }
}

#global-caio-fab.caio-docked-hidden {
  opacity: 0;
  pointer-events: none;
  transform: scale(0.3) translateY(20px);
}

#global-caio-fab .caio-fab-avatar {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: url('/assets/caio-avatar.png') center/cover no-repeat;
  border: 2px solid rgba(45, 212, 191, 0.5);
}

#global-caio-fab.caio-fab-from-sidebar {
  animation: caioFabLand 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes caioFabLand {
  from { transform: scale(0.2); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

body.nexus-tpl-premium #global-caio-panel .gc-header-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: url('/assets/caio-avatar.png') center/cover no-repeat;
  border: 2px solid rgba(45, 212, 191, 0.45);
  flex-shrink: 0;
}

body.nexus-tpl-premium #global-caio-panel .gc-header-avatar.processing {
  animation: caioAvatarPulse 1.2s ease-in-out infinite;
}

body.nexus-tpl-premium #global-caio-panel {
  width: 400px;
  height: 520px;
  border-radius: 16px;
  border-color: rgba(45, 212, 191, 0.35);
}

#global-caio-fab.dock-to-sidebar-anim {
  animation: caioFabToSidebar 0.4s ease-in forwards;
}

@keyframes caioFabToSidebar {
  to {
    opacity: 0;
    transform: translate(-120px, -80vh) scale(0.15);
  }
}

.gc-btn-minimize {
  background: transparent;
  border: none;
  color: #94a3b8;
  cursor: pointer;
  font-size: 14px;
  padding: 4px 6px;
}

.gc-btn-minimize:hover { color: #2dd4bf; }

.tpl-card {
  cursor: pointer;
  transition: transform 0.2s, border-color 0.2s;
  border: 2px solid transparent;
}

.tpl-card.selected {
  border-color: #2dd4bf;
  transform: translateY(-2px);
}

.tpl-card .tpl-preview {
  font-size: 2.5rem;
  margin-bottom: 0.5rem;
}

/* SYNAPT_NEXUS_SANDBOX_25D */
/* Nexus OS — sandbox 2.5D (base vazia + profundidade) */

#nexus-sandbox.nx-sandbox-stage,
.nexus-content.nx-sandbox-stage {
  position: relative;
  isolation: isolate;
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
  min-height: calc(100vh - 70px);
  overflow: hidden;
  perspective: 1200px;
  perspective-origin: 50% 38%;
  background: #060a14;
}

.nx-sandbox-void {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(56, 189, 248, 0.07) 0%, transparent 55%),
    radial-gradient(ellipse 60% 40% at 80% 100%, rgba(99, 102, 241, 0.06) 0%, transparent 50%),
    linear-gradient(180deg, #060a14 0%, #0b1220 45%, #060a14 100%);
}

.nx-sandbox-void::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(148, 163, 184, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, 0.04) 1px, transparent 1px);
  background-size: 48px 48px;
  transform: rotateX(58deg) scale(1.2);
  transform-origin: 50% 100%;
  opacity: 0.35;
  mask-image: linear-gradient(180deg, transparent 0%, #000 35%, #000 85%, transparent 100%);
}

.nx-sandbox-plane {
  position: relative;
  z-index: 2;
  min-height: calc(100vh - 70px);
  padding: 2rem;
  max-width: 1400px;
  margin: 0 auto;
  transform: translateZ(0) rotateX(var(--nx-tilt-x, 0deg)) rotateY(var(--nx-tilt-y, 0deg));
  transform-style: preserve-3d;
  transition: transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
  will-change: transform;
}

#nexus-sandbox.nx-sandbox-stage.studio-active .nx-sandbox-plane,
#nexus-sandbox.nx-sandbox-stage.pp-active .nx-sandbox-plane {
  max-width: 100%;
  padding: 1rem;
}

#nexus-sandbox.nx-sandbox-stage.studio-active {
  min-height: calc(100vh - 70px);
}

#nexus-sandbox.nx-sandbox-stage.pp-active .nx-sandbox-plane {
  padding: 0.75rem 1rem;
  height: calc(100vh - 70px);
  display: flex;
  flex-direction: column;
}

/* Moedas do launcher (grid) — onda 8 vizinhos */
.nx-launch-grid .launcher-app,
.nx-launch-grid .launcher-category {
  --wave-x: 0px;
  --wave-y: 0px;
  --wave-scale: 1;
  --wave-rot: 0deg;
  transform: translate(var(--wave-x), var(--wave-y)) scale(var(--wave-scale)) rotate(var(--wave-rot));
  transition: transform 0.22s cubic-bezier(0.34, 1.45, 0.64, 1), filter 0.25s;
  will-change: transform;
}

.nx-launch-grid .launcher-app.nx-wave-neighbor .app-icon,
.nx-launch-grid .launcher-category.nx-wave-neighbor .app-icon {
  box-shadow: 0 10px 24px -6px rgba(56, 189, 248, 0.45);
  border-color: rgba(56, 189, 248, 0.45);
  transition-delay: var(--wave-delay, 0ms);
}

.nx-launch-grid .launcher-app.nx-wave-center .app-icon,
.nx-launch-grid .launcher-category.nx-wave-center .app-icon {
  box-shadow: 0 14px 32px -4px rgba(45, 212, 191, 0.55);
  border-color: rgba(45, 212, 191, 0.75);
}

@media (max-width: 767px) {
  .nx-sandbox-plane {
    padding: 1.5rem 1rem;
  }
  #nexus-sandbox.nx-sandbox-stage {
    perspective: 900px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nx-sandbox-plane,
  .nx-launch-grid .launcher-app,
  .nx-launch-grid .launcher-category {
    transition: none;
    transform: none !important;
  }
}

/* SYNAPT_NEXUS_UI_KIT */
/**
 * Synapt Nexus OS — UI Kit (tokens + primitivos)
 * Consumidores: NxUI.* — aliases nx-ld-* mantidos na Onda 0.
 */
:root {
    --nx-ui-bg: #0f172a;
    --nx-ui-panel: #1e293b;
    --nx-ui-text: #f8fafc;
    --nx-ui-text-dim: #94a3b8;
    --nx-ui-accent: #6366f1;
    --nx-ui-accent-glow: rgba(99, 102, 241, 0.45);
    --nx-ui-border: rgba(148, 163, 184, 0.25);
    --nx-ui-ok: #6ee7b7;
    --nx-ui-ok-border: rgba(52, 211, 153, 0.45);
    --nx-ui-warn: #fcd34d;
    --nx-ui-warn-border: rgba(251, 191, 36, 0.45);
    --nx-ui-error: #f87171;
    --nx-ui-radius-pill: 999px;
    --nx-ui-radius-tile: 14px;
    --nx-ui-z-loading: 2147483600;
    --nx-ui-z-dialog: 2147483640;
}

/* —— Chip —— */
.nx-ui-chip,
.nx-ld-chip {
    font-size: 0.66rem;
    padding: 0.28rem 0.6rem;
    border-radius: var(--nx-ui-radius-pill);
    background: rgba(30, 41, 59, 0.85);
    border: 1px solid var(--nx-ui-border);
    color: #cbd5e1;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    white-space: nowrap;
}

.nx-ui-chip.nx-ui-ok,
.nx-ld-chip.ok {
    border-color: var(--nx-ui-ok-border);
    color: var(--nx-ui-ok);
}

.nx-ui-chip.nx-ui-warn,
.nx-ld-chip.warn {
    border-color: var(--nx-ui-warn-border);
    color: var(--nx-ui-warn);
}

.nx-ui-chip.nx-ui-error {
    border-color: rgba(248, 113, 113, 0.45);
    color: var(--nx-ui-error);
}

.nx-ui-stat-row,
.nx-ld-stat-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.35rem;
}

/* —— Catalog tile —— */
.nx-ui-catalog-tile,
.nx-ld-catalog-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.65rem 0.45rem 0.5rem;
    border-radius: var(--nx-ui-radius-tile);
    background: rgba(30, 41, 59, 0.65);
    border: 1px solid rgba(71, 85, 105, 0.4);
    font-family: inherit;
    color: inherit;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    transition: transform 0.2s, border-color 0.2s, background 0.2s, box-shadow 0.2s;
    animation: nxUiTileIn 0.4s cubic-bezier(0.22, 1, 0.36, 1) backwards;
    position: relative;
    min-height: 72px;
}

.nx-ui-catalog-tile:nth-child(odd),
.nx-ld-catalog-tile:nth-child(odd) {
    animation-delay: 0.06s;
}

.nx-ui-catalog-tile:nth-child(even),
.nx-ld-catalog-tile:nth-child(even) {
    animation-delay: 0.1s;
}

@keyframes nxUiTileIn {
    from {
        opacity: 0;
        transform: translateY(6px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.nx-ui-catalog-tile:hover,
.nx-ld-catalog-tile:hover {
    transform: translateY(-2px);
    border-color: rgba(99, 102, 241, 0.45);
    background: rgba(51, 65, 85, 0.82);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

.nx-ui-catalog-icon,
.nx-ld-catalog-icon {
    font-size: 1.45rem;
    line-height: 1;
    margin-bottom: 0.25rem;
}

.nx-ui-catalog-label,
.nx-ld-catalog-label {
    font-size: 0.68rem;
    font-weight: 600;
    color: #cbd5e1;
    text-align: center;
    line-height: 1.15;
}

.nx-ui-catalog-fold,
.nx-ld-catalog-fold {
    margin-top: 0.2rem;
    opacity: 0.55;
}

.nx-ui-catalog-dots,
.nx-ld-catalog-dots {
    display: inline-block;
    width: 18px;
    height: 4px;
    border-radius: 2px;
    background: linear-gradient(
        90deg,
        #64748b 0 4px,
        transparent 4px 7px,
        #64748b 7px 11px,
        transparent 11px 14px,
        #64748b 14px 18px
    );
}

.nx-ui-catalog-tile .nx-ui-app-badge,
.nx-ui-catalog-tile .nx-ld-app-badge,
.nx-ld-catalog-tile .nx-ld-app-badge {
    margin-top: 0.15rem;
    font-size: 0.52rem;
    padding: 0.08rem 0.32rem;
    border-radius: 5px;
    background: rgba(251, 191, 36, 0.2);
    color: #fcd34d;
}

/* —— Buttons (próximas ondas) —— */
.nx-ui-btn {
    font-family: inherit;
    font-size: 0.82rem;
    padding: 0.5rem 0.85rem;
    border-radius: 10px;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background 0.2s, border-color 0.2s;
}

.nx-ui-btn-primary {
    background: linear-gradient(135deg, var(--nx-ui-accent), #c026d3);
    color: #fff;
    border-color: rgba(129, 140, 248, 0.4);
}

.nx-ui-btn-ghost {
    background: rgba(30, 41, 59, 0.6);
    color: #e2e8f0;
    border-color: var(--nx-ui-border);
}

.nx-ui-btn-ghost:hover {
    background: rgba(99, 102, 241, 0.2);
}

/* —— Empty state —— */
.nx-ui-empty {
    padding: 1.25rem;
    text-align: center;
    color: var(--nx-ui-text-dim);
    font-size: 0.88rem;
    line-height: 1.5;
}

.nx-ui-empty-title {
    color: var(--nx-ui-text);
    font-weight: 600;
    margin-bottom: 0.35rem;
}

/* —— Loading overlay —— */
.nx-ui-loading-root {
    position: absolute;
    inset: 0;
    z-index: var(--nx-ui-z-loading);
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.72);
    backdrop-filter: blur(4px);
}

.nx-ui-loading-root[data-scope='body'] {
    position: fixed;
}

.nx-ui-loading-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 1.25rem 1.5rem;
    border-radius: 14px;
    background: rgba(30, 41, 59, 0.95);
    border: 1px solid var(--nx-ui-border);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
}

.nx-ui-loading-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid rgba(148, 163, 184, 0.25);
    border-top-color: var(--nx-ui-accent);
    border-radius: 50%;
    animation: nxUiSpin 0.85s linear infinite;
}

@keyframes nxUiSpin {
    to {
        transform: rotate(360deg);
    }
}

.nx-ui-loading-label {
    font-size: 0.82rem;
    color: #cbd5e1;
}

/* SYNAPT_NEXUS_OS_GATE */
/* Nexus OS — gates PWA (install / mobile) */
html.nx-os-mobile-blocked .nexus-app,
html.nx-os-mobile-blocked #guardian-overlay { display: none !important; }

#nx-os-gate {
    position: fixed;
    inset: 0;
    z-index: 2147483640;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(ellipse at 50% 30%, rgba(79, 70, 229, 0.25), #020617 70%);
    padding: 1.5rem;
}

.nx-os-gate-card {
    max-width: 440px;
    padding: 2rem;
    border-radius: 16px;
    border: 1px solid rgba(99, 102, 241, 0.45);
    background: rgba(15, 23, 42, 0.92);
    text-align: center;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.45);
}

.nx-os-gate-logo {
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 0.5rem;
}

.nx-os-gate-card h1 {
    margin: 0 0 1rem;
    font-size: 1.65rem;
    background: linear-gradient(135deg, #818cf8, #38bdf8);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.nx-os-gate-card p {
    color: #cbd5e1;
    font-size: 0.92rem;
    line-height: 1.55;
    margin: 0 0 0.75rem;
}

.nx-os-gate-sub { color: #64748b !important; font-size: 0.85rem !important; }

.nx-os-gate-btn {
    display: inline-block;
    margin-top: 1rem;
    padding: 0.65rem 1.4rem;
    border: none;
    border-radius: 10px;
    background: linear-gradient(135deg, #4f46e5, #0ea5e9);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.nx-os-gate-link {
    display: block;
    margin-top: 0.75rem;
    background: none;
    border: none;
    color: #64748b;
    font-size: 0.8rem;
    cursor: pointer;
    text-decoration: underline;
}

/* Widget chrome (2.5D) */
.nx-widget {
    border-radius: 12px;
    border: 1px solid rgba(99, 102, 241, 0.35);
    background: rgba(15, 23, 42, 0.88);
    backdrop-filter: blur(12px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
    overflow: hidden;
}

.nx-widget-chrome {
    padding: 0.4rem 0.65rem;
    background: rgba(99, 102, 241, 0.15);
    border-bottom: 1px solid rgba(51, 65, 85, 0.8);
    font-size: 0.78rem;
    color: #e2e8f0;
    user-select: none;
}

.nx-widget-body {
    padding: 0.65rem;
    max-height: calc(100vh - 200px);
    overflow: auto;
}

/* SYNAPT_NEXUS_OS_SHELL */
/* Nexus OS — casca vazia (estética Ubuntu LTS / Yaru escuro) */

html.nx-shell-v2 {
    --nx-ubuntu-bg: #2c001e;
    --nx-ubuntu-panel: #1e1e2e;
    --nx-ubuntu-panel-top: #3d3d3d;
    --nx-ubuntu-accent: #e95420;
    --nx-ubuntu-text: #ffffff;
    --nx-ubuntu-muted: #aeaeb2;
}

html.nx-shell-v2 body {
    overflow: hidden;
}

html.nx-shell-v2 .nexus-sidebar {
    display: none !important;
}

html.nx-shell-v2 .nexus-topbar {
    display: none !important;
}

html.nx-shell-v2 .nexus-main {
    margin-left: 0 !important;
    height: 100vh;
    padding-bottom: 28px;
}

html.nx-shell-v2 #nexus-sandbox.nx-sandbox-stage {
    min-height: calc(100vh - 28px);
    background: radial-gradient(ellipse 120% 80% at 50% 0%, #3b1f4a 0%, var(--nx-ubuntu-bg) 45%, #0a0a12 100%);
}

html.nx-shell-v2 .nx-engine-root {
    position: relative;
    width: 100%;
    min-height: calc(100vh - 28px);
    overflow: hidden;
}

html.nx-shell-v2 .nx-engine-void {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

html.nx-shell-v2 .nx-engine-void::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        90deg,
        transparent,
        transparent 48px,
        rgba(255, 255, 255, 0.02) 48px,
        rgba(255, 255, 255, 0.02) 49px
    );
}

html.nx-shell-v2 .nx-taskbar {
    display: flex !important;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 28px;
    z-index: 2147483000;
    background: var(--nx-ubuntu-panel-top);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    align-items: center;
    padding: 0 0.65rem;
    font-size: 0.72rem;
    color: var(--nx-ubuntu-text);
    gap: 0.75rem;
    aria-hidden: false;
}

html.nx-shell-v2 .nx-taskbar-brand {
    font-weight: 600;
    color: var(--nx-ubuntu-accent);
}

html.nx-shell-v2 .nx-taskbar-spacer { flex: 1; }

html.nx-shell-v2 .nx-panel-session {
    color: var(--nx-ubuntu-muted);
    font-size: 0.7rem;
}

/* Notificações estilo Ubuntu */
#nx-notify-stack {
    position: fixed;
    top: 12px;
    right: 12px;
    z-index: 2147483646;
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-width: min(380px, calc(100vw - 24px));
    pointer-events: none;
}

.nx-notify-card {
    pointer-events: auto;
    display: flex;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 8px;
    background: rgba(30, 30, 46, 0.96);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
    color: #f8fafc;
    font-size: 0.88rem;
    animation: nxNotifyIn 0.28s ease-out;
}

.nx-notify-card.nx-notify-out { animation: nxNotifyOut 0.25s ease-in forwards; }

.nx-notify-icon { font-size: 1.1rem; line-height: 1; }
.nx-notify-title { font-weight: 600; margin-bottom: 2px; }
.nx-notify-body { color: #94a3b8; font-size: 0.82rem; line-height: 1.4; }

.nx-notify-info { border-left: 3px solid #38bdf8; }
.nx-notify-success { border-left: 3px solid #4ade80; }
.nx-notify-warning { border-left: 3px solid #fbbf24; }
.nx-notify-error { border-left: 3px solid #f87171; }
.nx-notify-hub { border-left: 3px solid var(--nx-ubuntu-accent); }

@keyframes nxNotifyIn {
    from { opacity: 0; transform: translateX(24px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes nxNotifyOut {
    to { opacity: 0; transform: translateX(24px); }
}

/* SYNAPT_NEXUS_OS_BOOT */
/* Nexus OS — boot loader (labels dinâmicos) */

.nx-os-boot-loader {
    position: fixed;
    inset: 0;
    z-index: 2147483645;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(ellipse 90% 70% at 50% 35%, #3b1f4a 0%, #2c001e 42%, #0a0a12 100%);
    opacity: 0;
    transition: opacity 0.45s ease;
    pointer-events: none;
}

.nx-os-boot-loader.nx-boot-active {
    opacity: 1;
    pointer-events: auto;
}

.nx-os-boot-loader.nx-boot-out {
    opacity: 0;
}

.nx-boot-glow {
    position: absolute;
    width: min(520px, 90vw);
    height: min(520px, 90vw);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(233, 84, 32, 0.18) 0%, transparent 68%);
    animation: nxBootGlow 3.2s ease-in-out infinite;
}

@keyframes nxBootGlow {
    0%, 100% { transform: scale(0.92); opacity: 0.65; }
    50% { transform: scale(1.06); opacity: 1; }
}

.nx-boot-panel {
    position: relative;
    z-index: 1;
    text-align: center;
    width: min(420px, calc(100vw - 2.5rem));
    padding: 2rem 1.5rem 1.75rem;
}

.nx-boot-logo-ring {
    width: 72px;
    height: 72px;
    margin: 0 auto 1.25rem;
    border-radius: 18px;
    background: linear-gradient(135deg, #4f46e5, #c026d3);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 32px rgba(79, 70, 229, 0.45);
    animation: nxBootLogoPulse 2s ease-in-out infinite;
}

@keyframes nxBootLogoPulse {
    0%, 100% { transform: scale(1); box-shadow: 0 0 24px rgba(233, 84, 32, 0.25); }
    50% { transform: scale(1.04); box-shadow: 0 0 40px rgba(233, 84, 32, 0.4); }
}

.nx-boot-logo {
    font-size: 2.2rem;
    font-weight: 800;
    color: #fff;
    font-family: system-ui, sans-serif;
}

.nx-boot-title {
    margin: 0 0 0.35rem;
    font-size: clamp(1.75rem, 5vw, 2.35rem);
    font-weight: 700;
    letter-spacing: 0.06em;
    background: linear-gradient(90deg, #e0f2fe, #a5b4fc, #f0abfc);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    text-shadow: 0 0 40px rgba(56, 189, 248, 0.25);
}

.nx-boot-caption {
    margin: 0 0 1.5rem;
    font-size: 0.8rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #94a3b8;
}

.nx-boot-label {
    min-height: 1.5rem;
    margin: 0 0 1.25rem;
    font-size: 0.95rem;
    color: #cbd5e1;
    line-height: 1.45;
    transition: opacity 0.14s ease, transform 0.14s ease;
}

.nx-boot-label-in {
    opacity: 1;
    transform: translateY(0);
}

.nx-boot-label-out {
    opacity: 0;
    transform: translateY(6px);
}

.nx-boot-progress {
    height: 4px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
    margin-bottom: 1rem;
}

.nx-boot-progress-fill {
    height: 100%;
    width: 0%;
    border-radius: 4px;
    background: linear-gradient(90deg, #e95420, #f97316, #a855f7);
    box-shadow: 0 0 12px rgba(233, 84, 32, 0.55);
    transition: width 0.12s linear;
}

.nx-boot-dots {
    display: flex;
    justify-content: center;
    gap: 6px;
}

.nx-boot-dots span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--nx-ubuntu-accent, #e95420);
    opacity: 0.35;
    animation: nxBootDot 1.1s ease-in-out infinite;
}

.nx-boot-dots span:nth-child(2) { animation-delay: 0.15s; }
.nx-boot-dots span:nth-child(3) { animation-delay: 0.3s; }

@keyframes nxBootDot {
    0%, 80%, 100% { opacity: 0.3; transform: scale(0.85); }
    40% { opacity: 1; transform: scale(1.15); }
}

/* SYNAPT_NEXUS_OS_LAUNCHER */
/* Nexus OS — launcher: moedas flutuantes + taskbar + widgets */

.nx-launcher-home-title {
    text-align: center;
    padding: 0.5rem 1rem;
    color: #e0f2fe;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.nx-launcher-role {
    text-align: center;
    font-size: 0.72rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #e95420;
    margin-top: 0.25rem;
}

.nx-launch-coin {
    cursor: pointer;
    user-select: none;
    text-align: center;
    padding: 0.65rem 0.5rem;
    border-radius: 14px;
    border: 1px solid rgba(233, 84, 32, 0.35);
    background: rgba(30, 30, 46, 0.92);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s;
    min-width: 72px;
}

.nx-launch-coin:hover {
    border-color: rgba(56, 189, 248, 0.55);
    box-shadow: 0 12px 32px rgba(79, 70, 229, 0.25);
}

.nx-launch-coin.locked {
    opacity: 0.45;
    cursor: not-allowed;
}

.nx-launch-coin .app-icon {
    font-size: 1.75rem;
    line-height: 1.2;
}

.nx-launch-coin .app-name {
    font-size: 0.68rem;
    color: #cbd5e1;
    margin-top: 0.35rem;
    line-height: 1.2;
    max-width: 88px;
}

.nx-launch-coin .launcher-cat-count {
    font-size: 0.58rem;
    color: #64748b;
    margin-top: 0.2rem;
}

.nx-launch-coin .nx-coin-badge {
    display: inline-block;
    margin-top: 0.25rem;
    font-size: 0.55rem;
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
    background: rgba(251, 191, 36, 0.2);
    color: #fde68a;
}

.nx-hub-panel {
    padding: 1rem 1.15rem;
    border-radius: 14px;
    border: 1px solid rgba(56, 189, 248, 0.4);
    background: rgba(15, 23, 42, 0.92);
    max-width: min(520px, 92vw);
    font-size: 0.85rem;
    color: #94a3b8;
}

.nx-hub-panel h3 {
    margin: 0 0 0.5rem;
    color: #e0f2fe;
    font-size: 0.95rem;
}

.nx-hub-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin: 0.5rem 0 0.75rem;
}

.nx-hub-stat {
    padding: 0.35rem 0.65rem;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid #334155;
    font-size: 0.78rem;
    color: #cbd5e1;
}

.nx-hub-stat.alert {
    border-color: #f59e0b;
    color: #fde68a;
}

.nx-hub-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.nx-hub-actions .nexus-btn {
    padding: 0.4rem 0.75rem;
    font-size: 0.78rem;
}

.nx-module-widget {
    border: 1px solid rgba(99, 102, 241, 0.45);
    border-radius: 14px;
    background: rgba(15, 23, 42, 0.96);
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    overflow: hidden;
}

.nx-module-chrome {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.85rem;
    background: rgba(30, 41, 59, 0.9);
    border-bottom: 1px solid #334155;
    font-size: 0.82rem;
    color: #e2e8f0;
}

.nx-module-back {
    background: transparent;
    border: 1px solid #475569;
    color: #94a3b8;
    border-radius: 6px;
    padding: 0.25rem 0.55rem;
    cursor: pointer;
    font-size: 0.75rem;
}

.nx-module-back:hover {
    color: #e0f2fe;
    border-color: #38bdf8;
}

.nx-module-body {
    padding: 1rem 1.15rem 1.25rem;
    max-height: min(72vh, 640px);
    overflow: auto;
    pointer-events: auto;
}

.nx-taskbar-favs {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: 1;
    padding: 0 0.5rem;
    overflow-x: auto;
}

.nx-taskbar-fav-coin {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    border: 1px solid rgba(233, 84, 32, 0.4);
    background: rgba(30, 30, 46, 0.95);
    font-size: 0.72rem;
    line-height: 20px;
    text-align: center;
    cursor: pointer;
    flex-shrink: 0;
}

.nx-taskbar-fav-coin:hover {
    transform: scale(1.12);
}

.nx-taskbar-reload {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #cbd5e1;
    border-radius: 4px;
    padding: 0 0.4rem;
    font-size: 0.85rem;
    cursor: pointer;
    margin-right: 0.35rem;
}

.nx-taskbar-reload:hover {
    color: #38bdf8;
    border-color: #38bdf8;
}

/* SYNAPT_NEXUS_OS_PLAZA */
/* Praça do Diretor — launcher inicial Nexus OS v2 */
.nx-plaza-center {
    text-align: center;
    padding: 1rem 1.25rem;
    border-radius: 16px;
    background: linear-gradient(145deg, rgba(15, 23, 42, 0.92), rgba(30, 41, 59, 0.75));
    border: 1px solid rgba(99, 102, 241, 0.35);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(12px);
}
.nx-plaza-center h2 {
    margin: 0 0 0.35rem;
    font-size: 1.35rem;
    font-weight: 700;
    color: #f1f5f9;
    letter-spacing: 0.02em;
}
.nx-plaza-center .nx-plaza-sub {
    font-size: 0.8rem;
    color: #94a3b8;
    margin-bottom: 0.75rem;
}
.nx-plaza-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    margin-top: 0.5rem;
}
.nx-plaza-stat {
    font-size: 0.72rem;
    padding: 0.25rem 0.6rem;
    border-radius: 999px;
    background: rgba(56, 189, 248, 0.12);
    color: #7dd3fc;
    border: 1px solid rgba(56, 189, 248, 0.25);
}
.nx-plaza-stat.alert {
    background: rgba(251, 191, 36, 0.15);
    color: #fcd34d;
    border-color: rgba(251, 191, 36, 0.35);
}
.nx-plaza-more {
    margin-top: 0.65rem;
}
.nx-plaza-more button {
    font-size: 0.75rem;
    padding: 0.35rem 0.85rem;
    border-radius: 8px;
    border: 1px dashed rgba(148, 163, 184, 0.5);
    background: transparent;
    color: #cbd5e1;
    cursor: pointer;
}
.nx-plaza-more button:hover {
    border-color: #6366f1;
    color: #e2e8f0;
}
.nx-plaza-coin .app-name {
    font-size: 0.68rem;
    line-height: 1.15;
}
.nx-plaza-coin .nx-coin-slot-sub {
    font-size: 0.58rem;
    opacity: 0.75;
    margin-top: 2px;
}
.nx-launcher-home-title.nx-plaza-welcome {
    font-size: 1.1rem;
}
#nx-taskbar .nx-taskbar-util {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
}
#nx-taskbar .nx-taskbar-icon-btn {
    position: relative;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 10px;
    background: rgba(51, 65, 85, 0.6);
    color: #e2e8f0;
    cursor: pointer;
    font-size: 1rem;
    transition: background 0.2s, transform 0.15s;
}
#nx-taskbar .nx-taskbar-icon-btn:hover {
    background: rgba(99, 102, 241, 0.45);
    transform: translateY(-1px);
}
#nx-taskbar .nx-taskbar-badge {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    font-size: 10px;
    line-height: 16px;
    text-align: center;
    border-radius: 8px;
    background: #f59e0b;
    color: #0f172a;
    font-weight: 700;
    display: none;
}
#nx-taskbar .nx-taskbar-badge.visible {
    display: block;
}
.nx-notify-tray {
    position: fixed;
    bottom: 56px;
    left: 50%;
    transform: translateX(-50%);
    width: min(360px, 92vw);
    max-height: 280px;
    overflow-y: auto;
    background: rgba(15, 23, 42, 0.97);
    border: 1px solid #334155;
    border-radius: 12px;
    padding: 12px;
    z-index: 2147483640;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.55);
    display: none;
}
.nx-notify-tray.open {
    display: block;
    animation: nxTrayIn 0.22s ease-out;
}
@keyframes nxTrayIn {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
}
.nx-notify-tray h4 {
    margin: 0 0 8px;
    font-size: 0.8rem;
    color: #94a3b8;
    font-weight: 600;
}
.nx-notify-tray-item {
    padding: 8px 10px;
    border-radius: 8px;
    background: rgba(30, 41, 59, 0.8);
    margin-bottom: 6px;
    font-size: 0.8rem;
    color: #e2e8f0;
    cursor: pointer;
}
.nx-notify-tray-item:hover {
    background: rgba(99, 102, 241, 0.25);
}
.nx-notify-tray-empty {
    font-size: 0.78rem;
    color: #64748b;
    text-align: center;
    padding: 1rem 0;
}

/* SYNAPT_NEXUS_OS_LAUNCHER_DESKTOP */
/* Launcher desktop — perfil Diretor (shell v2) */
html.nx-launcher-desktop-active #nx-engine-root {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 36px);
    padding: clamp(1.25rem, 3vh, 2.25rem) clamp(1.5rem, 4vw, 2.75rem)
        clamp(2.5rem, 5vh, 3.25rem);
    overflow: auto;
    box-sizing: border-box;
}

html.nx-launcher-desktop-active .nx-engine-plane,
html.nx-launcher-desktop-active .nx-node {
    display: none !important;
}

.nx-launcher-desktop {
    flex: 1;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 1024px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
    animation: nxDesktopIn 0.55s cubic-bezier(0.22, 1, 0.36, 1);
    min-height: min(640px, calc(100vh - 120px));
}

@keyframes nxDesktopIn {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.nx-ld-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: clamp(1rem, 2.5vh, 1.5rem);
    flex-wrap: wrap;
    flex-shrink: 0;
}

.nx-ld-brand {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.nx-ld-brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: linear-gradient(135deg, #6366f1, #c026d3);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 1.1rem;
    color: #fff;
    box-shadow: 0 4px 20px rgba(99, 102, 241, 0.45);
}

.nx-ld-brand h1 {
    margin: 0;
    font-size: 1.12rem;
    font-weight: 700;
    color: #f8fafc;
}

.nx-ld-brand p {
    margin: 0.15rem 0 0;
    font-size: 0.72rem;
    color: #94a3b8;
}

.nx-ld-status {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.nx-ld-chip {
    font-size: 0.66rem;
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    background: rgba(30, 41, 59, 0.85);
    border: 1px solid rgba(148, 163, 184, 0.25);
    color: #cbd5e1;
}

.nx-ld-chip.ok {
    border-color: rgba(52, 211, 153, 0.45);
    color: #6ee7b7;
}

.nx-ld-chip.warn {
    border-color: rgba(251, 191, 36, 0.45);
    color: #fcd34d;
}

.nx-ld-util {
    display: flex;
    gap: 0.35rem;
    position: relative;
}

.nx-ld-util-btn {
    width: 38px;
    height: 38px;
    border: none;
    border-radius: 10px;
    background: rgba(51, 65, 85, 0.75);
    color: #e2e8f0;
    cursor: pointer;
    font-size: 1.05rem;
    position: relative;
    transition: background 0.2s, transform 0.15s;
}

.nx-ld-util-btn:hover {
    background: rgba(99, 102, 241, 0.5);
    transform: translateY(-1px);
}

.nx-ld-util-badge {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 15px;
    height: 15px;
    font-size: 9px;
    line-height: 15px;
    text-align: center;
    border-radius: 8px;
    background: #f59e0b;
    color: #0f172a;
    font-weight: 700;
    display: none;
}

.nx-ld-util-badge.on {
    display: block;
}

.nx-ld-dropdown {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 220px;
    background: rgba(15, 23, 42, 0.98);
    border: 1px solid #334155;
    border-radius: 12px;
    padding: 0.5rem 0;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
    z-index: 100;
    display: none;
}

.nx-ld-dropdown.open {
    display: block;
    animation: nxDropIn 0.18s ease-out;
}

@keyframes nxDropIn {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.nx-ld-dropdown h4 {
    margin: 0;
    padding: 0.45rem 0.85rem 0.35rem;
    font-size: 0.68rem;
    color: #64748b;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.nx-ld-dropdown button,
.nx-ld-dropdown .nx-ld-drop-item {
    display: block;
    width: 100%;
    text-align: left;
    padding: 0.55rem 0.85rem;
    border: none;
    background: transparent;
    color: #e2e8f0;
    font-size: 0.82rem;
    cursor: pointer;
}

.nx-ld-dropdown button:hover,
.nx-ld-dropdown .nx-ld-drop-item:hover {
    background: rgba(99, 102, 241, 0.2);
}

/* Grid: Praça em destaque + catálogo compacto */
.nx-ld-grid {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(0.85rem, 2vw, 1.25rem);
    align-content: stretch;
    min-height: 0;
}

@media (min-width: 768px) {
    .nx-ld-grid {
        grid-template-columns: 1.35fr 0.9fr;
        grid-template-rows: 1fr;
        min-height: min(480px, calc(100vh - 200px));
    }
}

/* —— Praça (painel grande / canivete suíço) —— */
.nx-ld-praca {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    text-align: left;
    padding: clamp(1.1rem, 2.5vw, 1.5rem);
    border-radius: 22px;
    background: linear-gradient(165deg, rgba(99, 102, 241, 0.18) 0%, rgba(15, 23, 42, 0.92) 55%);
    border: 1px solid rgba(99, 102, 241, 0.38);
    box-shadow:
        0 28px 64px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.07);
    animation: nxTileIn 0.5s cubic-bezier(0.22, 1, 0.36, 1) backwards;
    animation-delay: 0.05s;
    min-height: 320px;
}

.nx-ld-praca.is-featured {
    border-color: rgba(129, 140, 248, 0.55);
}

.nx-ld-praca-head {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    margin-bottom: 0.85rem;
    flex-shrink: 0;
}

.nx-ld-praca-icon {
    font-size: 2.5rem;
    line-height: 1;
    filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.45));
    flex-shrink: 0;
}

.nx-ld-praca-head-text h2 {
    margin: 0 0 0.2rem;
    font-size: 1.45rem;
    font-weight: 800;
    color: #f1f5f9;
    letter-spacing: 0.01em;
}

.nx-ld-praca-head-text p {
    margin: 0;
    font-size: 0.8rem;
    color: #94a3b8;
    line-height: 1.4;
    max-width: 36em;
}

.nx-ld-praca-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
    flex-shrink: 0;
}

.nx-ld-praca-tool {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.7rem;
    border-radius: 999px;
    border: 1px solid rgba(71, 85, 105, 0.65);
    background: rgba(30, 41, 59, 0.65);
    color: #cbd5e1;
    font-size: 0.72rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.15s;
}

.nx-ld-praca-tool:hover {
    border-color: rgba(99, 102, 241, 0.5);
    color: #e2e8f0;
}

.nx-ld-praca-tool.is-active {
    background: rgba(99, 102, 241, 0.35);
    border-color: rgba(129, 140, 248, 0.7);
    color: #f8fafc;
    box-shadow: 0 0 0 1px rgba(99, 102, 241, 0.25);
}

.nx-ld-praca-tool-icon {
    font-size: 0.95rem;
}

.nx-ld-praca-body {
    flex: 1;
    min-height: 140px;
    overflow-y: auto;
    padding: 0.85rem 0.95rem;
    border-radius: 14px;
    background: rgba(2, 6, 23, 0.45);
    border: 1px solid rgba(51, 65, 85, 0.5);
}

.nx-ld-praca-panel {
    display: none;
    animation: nxPanelIn 0.22s ease-out;
}

.nx-ld-praca-panel.is-visible {
    display: block;
}

@keyframes nxPanelIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.nx-ld-praca-panel h3 {
    margin: 0 0 0.5rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: #e2e8f0;
}

.nx-ld-praca-panel p {
    margin: 0 0 0.65rem;
    font-size: 0.78rem;
    color: #94a3b8;
    line-height: 1.45;
}

.nx-ld-feed-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.nx-ld-feed-item {
    display: flex;
    gap: 0.55rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid rgba(51, 65, 85, 0.45);
    font-size: 0.78rem;
    color: #cbd5e1;
    line-height: 1.35;
}

.nx-ld-feed-item:last-child {
    border-bottom: none;
}

.nx-ld-feed-item time {
    flex-shrink: 0;
    font-size: 0.65rem;
    color: #64748b;
}

.nx-ld-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.5rem;
}

.nx-ld-action-btn {
    padding: 0.45rem 0.85rem;
    border-radius: 9px;
    border: none;
    font-size: 0.74rem;
    font-weight: 600;
    cursor: pointer;
    background: rgba(99, 102, 241, 0.85);
    color: #fff;
    transition: background 0.2s, transform 0.15s;
}

.nx-ld-action-btn:hover {
    background: #4f46e5;
    transform: translateY(-1px);
}

.nx-ld-action-btn.ghost {
    background: rgba(51, 65, 85, 0.8);
    color: #e2e8f0;
    border: 1px solid rgba(71, 85, 105, 0.6);
}

.nx-ld-stat-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.35rem;
}

/* Catálogo de apps — compacto enquanto Praça em destaque */
.nx-ld-apps {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(3, 1fr);
    gap: 0.55rem;
    grid-column: 1;
    align-content: start;
}

@media (min-width: 768px) {
    .nx-ld-apps {
        grid-column: 2;
        grid-row: 1;
    }
}

.nx-ld-apps.is-catalog-dim .nx-ld-app {
    opacity: 0.88;
    transform: scale(0.98);
}

.nx-ld-app {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 0.5rem;
    border-radius: 14px;
    background: rgba(30, 41, 59, 0.72);
    border: 1px solid rgba(71, 85, 105, 0.45);
    cursor: pointer;
    transition: transform 0.22s, border-color 0.22s, background 0.22s, opacity 0.22s;
    animation: nxTileIn 0.45s cubic-bezier(0.22, 1, 0.36, 1) backwards;
    min-height: 76px;
}

.nx-ld-app:nth-child(1) { animation-delay: 0.1s; }
.nx-ld-app:nth-child(2) { animation-delay: 0.14s; }
.nx-ld-app:nth-child(3) { animation-delay: 0.18s; }
.nx-ld-app:nth-child(4) { animation-delay: 0.22s; }
.nx-ld-app:nth-child(5) { animation-delay: 0.26s; }
.nx-ld-app:nth-child(6) { animation-delay: 0.3s; }

@keyframes nxTileIn {
    from {
        opacity: 0;
        transform: translateY(8px) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.nx-ld-app:hover {
    transform: translateY(-2px) scale(1.02);
    border-color: rgba(99, 102, 241, 0.5);
    background: rgba(51, 65, 85, 0.88);
    opacity: 1;
}

.nx-ld-app.is-selected {
    border-color: rgba(129, 140, 248, 0.75);
    background: rgba(99, 102, 241, 0.22);
    opacity: 1;
    transform: scale(1.03);
}

.nx-ld-app-icon {
    font-size: 1.55rem;
    margin-bottom: 0.3rem;
}

.nx-ld-app-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: #e2e8f0;
    text-align: center;
    line-height: 1.15;
}

.nx-ld-app-badge {
    margin-top: 0.2rem;
    font-size: 0.55rem;
    padding: 0.1rem 0.35rem;
    border-radius: 6px;
    background: rgba(251, 191, 36, 0.2);
    color: #fcd34d;
}

.nx-ld-footer-hint {
    margin-top: clamp(0.75rem, 2vh, 1.25rem);
    padding-bottom: 0.25rem;
    text-align: center;
    font-size: 0.68rem;
    color: #64748b;
    flex-shrink: 0;
}

/* SYNAPT_NEXUS_OS_OVERLAY */
/* Situações system overlay — hub pending, profile gate */
.nx-system-overlay {
    position: fixed;
    inset: 0;
    z-index: 2147483600;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(2, 6, 23, 0.72);
    backdrop-filter: blur(6px);
    padding: 1.5rem;
    box-sizing: border-box;
}
.nx-system-overlay-card {
    max-width: 440px;
    width: 100%;
    padding: 1.5rem 1.35rem;
    border-radius: 16px;
    background: linear-gradient(160deg, rgba(30, 41, 59, 0.98), rgba(15, 23, 42, 0.98));
    border: 1px solid rgba(99, 102, 241, 0.45);
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
    text-align: center;
}
.nx-system-overlay-card h2 {
    margin: 0 0 0.5rem;
    font-size: 1.15rem;
    color: #f1f5f9;
}
.nx-system-overlay-card p {
    margin: 0 0 1rem;
    font-size: 0.85rem;
    color: #94a3b8;
    line-height: 1.5;
}
.nx-system-overlay-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
}
.nx-system-overlay-actions button {
    padding: 0.5rem 1rem;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 600;
}
.nx-system-overlay-actions .nx-btn-primary {
    background: #6366f1;
    color: #fff;
}
.nx-system-overlay-actions .nx-btn-muted {
    background: rgba(51, 65, 85, 0.8);
    color: #e2e8f0;
}

/* SYNAPT_NEXUS_OS_SPATIAL_PLAZA */
/* Praça Diretor no palco 3D — hub central + órbita de apps */
.nx-spatial-plaza-hub {
    padding: 1rem 1.15rem 1.1rem;
    border-radius: 14px;
    background: linear-gradient(165deg, rgba(15, 23, 42, 0.92), rgba(30, 41, 59, 0.78));
    border: 1px solid rgba(56, 189, 248, 0.35);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
    color: #e2e8f0;
    text-align: left;
    pointer-events: auto;
}

.nx-spatial-plaza-hub h3 {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
    font-weight: 600;
}

.nx-spatial-plaza-tag {
    margin: 0 0 0.75rem;
    font-size: 0.82rem;
    color: #94a3b8;
    line-height: 1.45;
}

.nx-spatial-plaza-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.65rem;
    font-size: 0.78rem;
    margin-bottom: 0.85rem;
}

.nx-spatial-plaza-stats .alert {
    color: #fbbf24;
}

.nx-spatial-plaza-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.65rem;
}

.nx-spatial-plaza-btn {
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: rgba(15, 23, 42, 0.65);
    color: #e2e8f0;
    border-radius: 8px;
    padding: 0.35rem 0.55rem;
    font-size: 0.75rem;
    cursor: pointer;
    transition: border-color 0.15s, transform 0.15s;
}

.nx-spatial-plaza-btn:hover {
    border-color: #38bdf8;
    transform: translateY(-1px);
}

.nx-spatial-plaza-hint {
    margin: 0;
    font-size: 0.72rem;
    color: #64748b;
}

html.nx-spatial-atrium-active #nx-engine-root {
    display: block;
}

html.nx-spatial-atrium-active .nx-engine-plane,
html.nx-spatial-atrium-active .nx-sandbox-plane {
    display: block !important;
    opacity: 1;
}

html.nx-spatial-atrium-active .nx-launcher-desktop {
    display: none !important;
}

/* SYNAPT_NEXUS_OS_SPATIAL_WS */
/* Workspace Diretor — moedas curvas (esq.) · centro Nexus · CAIO presença (dir.) */

html.nx-spatial-workspace-active {
    --nx-ws-caio-w: min(360px, 32vw);
    --nx-ws-rail-w: 108px;
}

html.nx-spatial-workspace-active #nx-engine-root,
html.nx-spatial-workspace-active .nx-sandbox-plane {
    margin-left: var(--nx-ws-rail-w);
    margin-right: var(--nx-ws-caio-w);
    width: calc(100% - var(--nx-ws-rail-w) - var(--nx-ws-caio-w));
    box-sizing: border-box;
}

/* —— Barra de moedas curva flutuante —— */
.nx-coin-rail {
    position: fixed;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: var(--nx-ws-rail-w);
    height: min(78vh, 640px);
    z-index: 180;
    pointer-events: none;
}

.nx-coin-rail-glow {
    position: absolute;
    inset: 8% 0;
    left: 50%;
    width: 120%;
    transform: translateX(-42%);
    background: radial-gradient(
        ellipse 55% 70% at 60% 50%,
        rgba(56, 189, 248, 0.12) 0%,
        transparent 68%
    );
    pointer-events: none;
}

.nx-coin-rail-inner {
    position: relative;
    width: 100%;
    height: 100%;
    pointer-events: auto;
}

.nx-float-coin {
    position: absolute;
    width: 4.35rem;
    height: 4.35rem;
    padding: 0;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    transform: translate(-50%, -50%) rotate(var(--coin-tilt, 0deg));
    background: radial-gradient(
        circle at 35% 28%,
        rgba(148, 163, 184, 0.45) 0%,
        rgba(30, 41, 59, 0.95) 38%,
        rgba(15, 23, 42, 0.98) 62%,
        #020617 100%
    );
    border: 2px solid rgba(56, 189, 248, 0.38);
    box-shadow:
        0 14px 32px rgba(0, 0, 0, 0.55),
        inset 0 2px 6px rgba(255, 255, 255, 0.14),
        inset 0 -4px 10px rgba(0, 0, 0, 0.35),
        0 0 22px rgba(56, 189, 248, 0.12);
    transition:
        transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.25s ease,
        border-color 0.2s ease;
    animation: nx-coin-float 4.5s ease-in-out infinite;
}

.nx-float-coin:nth-child(odd) {
    animation-delay: -1.2s;
}

.nx-float-coin:nth-child(even) {
    animation-delay: -2.4s;
}

@keyframes nx-coin-float {
    0%,
    100% {
        translate: 0 0;
    }
    50% {
        translate: 0 -5px;
    }
}

.nx-float-coin-shine {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.22) 0%, transparent 42%);
    pointer-events: none;
}

.nx-float-coin-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.55rem;
    line-height: 1;
    margin-top: -0.15rem;
}

.nx-float-coin-label {
    position: absolute;
    left: 50%;
    bottom: -1.35rem;
    transform: translateX(-50%);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #94a3b8;
    white-space: nowrap;
    max-width: 5.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
}

.nx-float-coin:hover {
    border-color: rgba(125, 211, 252, 0.75);
    box-shadow:
        0 18px 40px rgba(0, 0, 0, 0.5),
        0 0 32px rgba(56, 189, 248, 0.28);
    z-index: 2;
}

.nx-float-coin.is-active {
    border-color: #7dd3fc;
    box-shadow:
        0 0 0 2px rgba(56, 189, 248, 0.35),
        0 20px 44px rgba(56, 189, 248, 0.25);
    scale: 1.06;
}

.nx-float-coin.locked {
    opacity: 0.4;
    cursor: not-allowed;
    filter: grayscale(0.6);
}

/* —— CAIO presença (direita) —— */
html.nx-spatial-caio-dock #global-caio-fab {
    display: none !important;
}

html.nx-spatial-caio-dock #global-caio-panel {
    display: flex !important;
    flex-direction: column;
    position: fixed;
    right: 0;
    left: auto;
    top: 0;
    bottom: 0;
    width: var(--nx-ws-caio-w);
    max-width: 100vw;
    height: 100vh;
    height: 100dvh;
    margin: 0;
    border-radius: 0;
    border-right: none;
    border-top: none;
    border-bottom: none;
    border-left: 1px solid rgba(56, 189, 248, 0.22);
    z-index: 2147483640;
    animation: none;
    box-shadow: -8px 0 40px rgba(0, 0, 0, 0.4);
    background: linear-gradient(180deg, rgba(10, 12, 22, 0.98), rgba(15, 23, 42, 0.96));
}

html.nx-spatial-caio-dock #global-caio-panel.nx-caio-presence-shell .gc-chat {
    flex: 1;
    min-height: 0;
    padding: 0.65rem 0.85rem;
    border-top: 1px solid rgba(51, 65, 85, 0.45);
}

html.nx-spatial-caio-dock #global-caio-panel .gc-input.nx-caio-composer {
    flex-shrink: 0;
    border-top: 1px solid rgba(51, 65, 85, 0.55);
    background: rgba(2, 6, 23, 0.65);
    padding: 0.65rem 0.75rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
}

html.nx-spatial-caio-dock #gc-btn-deploy-global {
    display: none !important;
}

.nx-caio-presence {
    flex-shrink: 0;
    padding: 1rem 0.75rem 0.5rem;
    text-align: center;
    border-bottom: 1px solid rgba(51, 65, 85, 0.4);
    background: radial-gradient(ellipse 90% 80% at 50% 0%, rgba(99, 102, 241, 0.12), transparent 70%);
}

.nx-caio-orbit-stage {
    position: relative;
    width: 9.5rem;
    height: 9.5rem;
    margin: 0 auto 0.35rem;
}

.nx-caio-orbit-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1px dashed rgba(56, 189, 248, 0.28);
    animation: nx-caio-orbit-spin 24s linear infinite;
}

@keyframes nx-caio-orbit-spin {
    to {
        transform: rotate(360deg);
    }
}

.nx-caio-avatar {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 4.5rem;
    height: 4.5rem;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at 40% 32%, #4f46e5, #1e1b4b 70%);
    border: 2px solid rgba(129, 140, 248, 0.55);
    box-shadow: 0 0 36px rgba(99, 102, 241, 0.45);
    z-index: 2;
}

.nx-caio-avatar-halo {
    position: absolute;
    inset: -8px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(56, 189, 248, 0.25), transparent 70%);
    animation: nx-caio-pulse 2.8s ease-in-out infinite;
}

@keyframes nx-caio-pulse {
    0%,
    100% {
        opacity: 0.5;
        scale: 1;
    }
    50% {
        opacity: 1;
        scale: 1.06;
    }
}

.nx-caio-avatar-face {
    font-size: 2rem;
    line-height: 1;
    z-index: 1;
}

.nx-caio-orbit-btn {
    position: absolute;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 50%;
    border: 1px solid rgba(148, 163, 184, 0.4);
    background: rgba(15, 23, 42, 0.92);
    color: #e2e8f0;
    font-size: 0.62rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: border-color 0.15s, transform 0.15s, background 0.15s;
    z-index: 3;
}

.nx-caio-orbit-btn span {
    pointer-events: none;
}

.nx-caio-orbit-btn:hover {
    border-color: #38bdf8;
    background: rgba(30, 41, 59, 0.95);
}

.nx-caio-orbit-btn.is-active {
    border-color: #4ade80;
    box-shadow: 0 0 16px rgba(74, 222, 128, 0.35);
}

.nx-caio-orbit-live {
    top: 0;
    left: 50%;
    transform: translate(-50%, -20%);
}

.nx-caio-orbit-mic {
    right: 0;
    top: 50%;
    transform: translate(20%, -50%);
}

.nx-caio-orbit-settings {
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 20%);
}

.nx-caio-orbit-voice {
    left: 0;
    top: 50%;
    transform: translate(-20%, -50%);
}

.nx-caio-presence-name {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #e0f2fe;
}

.nx-caio-presence-tag {
    margin: 0.15rem 0 0;
    font-size: 0.68rem;
    color: #64748b;
    letter-spacing: 0.08em;
}

/* —— Centro Nexus OS —— */
.nx-ws-center-panel .nx-node-body {
    pointer-events: auto;
    padding: 1.2rem 1.3rem 1.25rem;
    border-radius: 18px;
    background: linear-gradient(165deg, rgba(15, 23, 42, 0.96), rgba(30, 41, 59, 0.85));
    border: 1px solid rgba(56, 189, 248, 0.28);
    box-shadow: 0 20px 56px rgba(0, 0, 0, 0.48);
    backdrop-filter: blur(14px);
}

.nx-ws-default {
    text-align: center;
    color: #e2e8f0;
}

.nx-ws-default-eyebrow {
    display: block;
    font-size: 0.68rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #38bdf8;
    margin-bottom: 0.4rem;
}

.nx-ws-default-title {
    margin: 0 0 0.45rem;
    font-size: clamp(1.75rem, 4vw, 2.25rem);
    font-weight: 800;
    background: linear-gradient(180deg, #f8fafc 0%, #7dd3fc 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.nx-ws-default-sub {
    margin: 0 0 1rem;
    font-size: 0.88rem;
    color: #94a3b8;
    line-height: 1.5;
}

.nx-ws-default-meta {
    font-size: 0.8rem;
    color: #cbd5e1;
    margin-bottom: 1rem;
}

.nx-ws-dot {
    opacity: 0.5;
    margin: 0 0.35rem;
}

.nx-ws-default-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.nx-ws-stat {
    padding: 0.55rem 0.5rem;
    border-radius: 10px;
    background: rgba(15, 23, 42, 0.75);
    border: 1px solid rgba(56, 189, 248, 0.2);
}

.nx-ws-stat strong {
    display: block;
    font-size: 1.05rem;
    color: #f1f5f9;
}

.nx-ws-stat span {
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #64748b;
}

.nx-ws-default-hint {
    margin: 0;
    font-size: 0.78rem;
    color: #64748b;
    line-height: 1.5;
}

.nx-ws-panel-hidden {
    opacity: 0;
    pointer-events: none !important;
    transform: scale(0.97);
    transition: opacity 0.32s ease, transform 0.35s ease;
}

.nx-ws-panel-visible {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
    transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.nx-ws-module .nx-ws-back {
    border: none;
    background: transparent;
    color: #94a3b8;
    font-size: 0.78rem;
    cursor: pointer;
    padding: 0 0 0.65rem;
}

.nx-ws-module-head {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    margin-bottom: 1rem;
    text-align: left;
}

.nx-ws-module-icon {
    font-size: 1.75rem;
}

.nx-ws-module-head h2 {
    margin: 0 0 0.2rem;
    font-size: 1.15rem;
    color: #f1f5f9;
}

.nx-ws-module-head p {
    margin: 0;
    font-size: 0.82rem;
    color: #94a3b8;
}

.nx-ws-subtools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.nx-ws-subtool {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.7rem;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.28);
    background: rgba(15, 23, 42, 0.8);
    color: #e2e8f0;
    cursor: pointer;
    text-align: left;
}

.nx-ws-subtool:hover {
    border-color: #38bdf8;
}

.nx-ws-enter-full {
    width: 100%;
    padding: 0.55rem 1rem;
    border-radius: 10px;
    border: 1px solid rgba(56, 189, 248, 0.45);
    background: linear-gradient(180deg, rgba(56, 189, 248, 0.18), rgba(56, 189, 248, 0.06));
    color: #e0f2fe;
    font-weight: 600;
    font-size: 0.82rem;
    cursor: pointer;
}

@media (max-width: 960px) {
    html.nx-spatial-workspace-active {
        --nx-ws-caio-w: min(100vw, 360px);
        --nx-ws-rail-w: 80px;
    }

    .nx-float-coin {
        width: 3.6rem;
        height: 3.6rem;
    }

    .nx-float-coin-label {
        font-size: 0.5rem;
        max-width: 4rem;
    }
}

@media (max-width: 720px) {
    html.nx-spatial-workspace-active #nx-engine-root {
        margin-left: 0;
        margin-right: 0;
        margin-top: 38vh;
        width: 100%;
        height: 34vh;
    }

    .nx-coin-rail {
        top: auto;
        bottom: 38vh;
        transform: none;
        width: 100%;
        height: 64px;
        left: 0;
    }

    .nx-coin-rail-inner {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: 0.35rem;
        padding: 0 0.5rem;
        overflow-x: auto;
    }

    .nx-float-coin {
        position: relative !important;
        left: auto !important;
        top: auto !important;
        transform: none !important;
        flex-shrink: 0;
    }

    .nx-float-coin-label {
        display: none;
    }

    html.nx-spatial-caio-dock #global-caio-panel {
        width: 100%;
        height: 38vh;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nx-float-coin,
    .nx-caio-orbit-ring,
    .nx-caio-avatar-halo {
        animation: none;
    }
}

/* SYNAPT_NEXUS_OS_SPACE_MANIP */
/* Manipulação espacial — arrastar + scroll Z */
.nx-engine-node[data-nx-drag-mode='full'],
.nx-engine-node[data-nx-drag-mode='train-group'],
.nx-engine-node[data-nx-drag-mode='handle'] {
    cursor: grab;
    touch-action: none;
}

.nx-engine-node[data-nx-drag-mode='none'] {
    cursor: default;
    touch-action: auto;
}

.nx-engine-node[data-nx-drag-mode='none']::after {
    display: none;
}

.nx-engine-node.nx-space-grabbing {
    cursor: grabbing;
    z-index: 1200 !important;
    filter: drop-shadow(0 12px 28px rgba(56, 189, 248, 0.35));
}

.nx-engine-node[data-nx-drag-mode='full']::after,
.nx-engine-node[data-nx-drag-mode='train-group']::after {
    content: '⟡ arraste pela alça · scroll = Z';
    position: absolute;
    left: 50%;
    bottom: -1.1rem;
    transform: translateX(-50%);
    font-size: 0.62rem;
    color: #64748b;
    opacity: 0;
    pointer-events: none;
    white-space: nowrap;
    transition: opacity 0.15s;
}

.nx-engine-node[data-nx-drag-mode='full']:hover::after,
.nx-engine-node[data-nx-drag-mode='train-group']:hover::after {
    opacity: 0.85;
}

.nx-engine-node.nx-space-grabbing::after {
    content: 'nx://' attr(data-nx-x) ',' attr(data-nx-y) ',' attr(data-nx-z);
    opacity: 1;
    color: #38bdf8;
}

/* SYNAPT_NEXUS_OS_LAYOUT_TRAIN */
/* Modo treinamento de layout — grupos e elementos */
html.nx-layout-training-active .nx-engine-node[data-nx-drag-mode='none'] {
    cursor: default;
    touch-action: auto;
}

html.nx-layout-training-active .nx-ws-center-panel .nx-node-body {
    touch-action: auto;
}

.nx-layout-train-bar {
    position: fixed;
    bottom: 3.25rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10050;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.65rem;
    border-radius: 12px;
    border: 1px solid rgba(56, 189, 248, 0.45);
    background: rgba(15, 23, 42, 0.94);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(10px);
}

.nx-layout-train-title {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #7dd3fc;
    margin-right: 0.25rem;
}

.nx-layout-train-bar button {
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: rgba(30, 41, 59, 0.9);
    color: #e2e8f0;
    border-radius: 8px;
    padding: 0.35rem 0.65rem;
    font-size: 0.78rem;
    cursor: pointer;
}

.nx-layout-train-bar button.is-active,
.nx-layout-train-bar button.nx-layout-train-save {
    border-color: rgba(56, 189, 248, 0.55);
    color: #e0f2fe;
}

.nx-layout-train-close {
    font-size: 1rem;
    line-height: 1;
    padding: 0.2rem 0.45rem !important;
}

html.nx-layout-training-active #nx-taskbar-layout-train.is-active {
    box-shadow: 0 0 0 2px rgba(56, 189, 248, 0.55);
}

.nx-layout-group-decorated {
    outline: 1px dashed rgba(56, 189, 248, 0.35);
    outline-offset: 4px;
}

.nx-space-drag-handle.nx-layout-group-handle {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    margin: 0 0 0.65rem;
    padding: 0.4rem 0.55rem;
    border-radius: 8px;
    border: 1px solid rgba(56, 189, 248, 0.35);
    background: rgba(14, 165, 233, 0.12);
    color: #bae6fd;
    font-size: 0.72rem;
    cursor: grab;
    touch-action: none;
    user-select: none;
}

.nx-layout-handle-grip {
    letter-spacing: -0.12em;
    opacity: 0.85;
}

.nx-layout-resize-handle {
    position: absolute;
    right: 4px;
    bottom: 4px;
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1px solid rgba(56, 189, 248, 0.6);
    background: rgba(56, 189, 248, 0.25);
    cursor: nwse-resize;
    z-index: 20;
    touch-action: none;
}

.nx-layout-group-decorated.nx-engine-node,
#nx-coin-rail.nx-layout-group-decorated,
html.nx-spatial-caio-dock #global-caio-panel.nx-layout-group-decorated {
    position: relative;
}

[data-nx-train-block].nx-train-block-selectable {
    outline: 1px dashed rgba(148, 163, 184, 0.35);
    outline-offset: 2px;
    position: relative;
}

[data-nx-train-block].nx-train-block-selected {
    outline: 2px solid rgba(56, 189, 248, 0.75);
    outline-offset: 3px;
}

html:not(.nx-layout-training-active) .nx-layout-resize-handle,
html:not(.nx-layout-training-active) .nx-space-drag-handle.nx-layout-group-handle {
    display: none !important;
}

html.nx-layout-training-active .nx-engine-node[data-nx-drag-mode='train-group'] {
    cursor: default;
}

html.nx-layout-training-active .nx-engine-node[data-nx-drag-mode='train-group'] .nx-space-drag-handle {
    cursor: grab;
}

html.nx-layout-training-active[data-nx-train-scope='element'] .nx-ws-surface-body {
    touch-action: auto;
}

/* SYNAPT_NEXUS_OS_BOOT_ORCH */
/* Boot orquestração — drones no palco real */
html.nx-boot-orchestra-active #nx-engine-root,
html.nx-boot-orchestra-active .nx-sandbox-plane {
    opacity: 1;
    visibility: visible;
}

.nx-boot-nucleus-inner {
    text-align: center;
    padding: 0.65rem 1rem;
    border-radius: 12px;
    background: rgba(15, 23, 42, 0.88);
    border: 1px solid rgba(56, 189, 248, 0.45);
    box-shadow: 0 0 32px rgba(56, 189, 248, 0.25);
}

.nx-boot-nucleus-title {
    display: block;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: #e2e8f0;
}

.nx-boot-nucleus-sub {
    display: block;
    font-size: 0.72rem;
    color: #38bdf8;
    margin-top: 0.25rem;
}

.nx-boot-drone-chip {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.55rem;
    border-radius: 8px;
    background: rgba(15, 23, 42, 0.82);
    border: 1px solid rgba(148, 163, 184, 0.35);
    font-size: 0.72rem;
    color: #cbd5e1;
    pointer-events: none;
}

.nx-boot-drone-glyph {
    color: #38bdf8;
}

.nx-boot-orchestra-status .nx-node-body {
    text-align: center;
    font-size: 0.8rem;
    color: #f97316;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* SYNAPT_NEXUS_OS_PP_STUDIO */
/* Primeira Página Studio — shell imersivo (menu | palco | CAIO) */

html.nx-pp-studio-active {
    --nx-pp-rail-w: 248px;
    --nx-pp-caio-w: min(340px, 28vw);
    --nx-pp-bg: #070d18;
    --nx-pp-border: rgba(148, 163, 184, 0.12);
    --nx-pp-accent: #38bdf8;
}

html.nx-pp-studio-active.nx-pp-focus #nexus-sandbox.pp-active {
    overflow: hidden;
}

html.nx-pp-studio-active .nx-pp-studio {
    display: grid;
    grid-template-columns: var(--nx-pp-rail-w) minmax(0, 1fr) var(--nx-pp-caio-w);
    grid-template-rows: 1fr;
    gap: 0;
    width: 100%;
    height: calc(100vh - 4.5rem);
    min-height: 520px;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid var(--nx-pp-border);
    background: var(--nx-pp-bg);
    box-shadow: 0 32px 80px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.04);
    font-family: 'DM Sans', system-ui, sans-serif;
}

.nx-pp-studio__rail {
    border-right: 1px solid var(--nx-pp-border);
    background: linear-gradient(180deg, rgba(12, 20, 36, 0.98) 0%, rgba(7, 13, 24, 0.99) 100%);
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.nx-pp-studio__stage-wrap {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    background: radial-gradient(ellipse 80% 55% at 50% 0%, rgba(56, 189, 248, 0.07), transparent 58%),
        var(--nx-pp-bg);
}

.nx-pp-studio__stage-head {
    padding: 0.85rem 1.15rem 0.65rem;
    border-bottom: 1px solid var(--nx-pp-border);
}

.nx-pp-studio__stage-head h2 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: #f8fafc;
    letter-spacing: 0.02em;
}

.nx-pp-studio__stage-head p {
    margin: 0.2rem 0 0;
    font-size: 0.72rem;
    color: #64748b;
}

.nx-pp-studio__stage {
    flex: 1;
    min-height: 0;
    position: relative;
    overflow: hidden;
}

.nx-pp-studio__stage .nx-char-matrix-boot {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: transparent;
}

.nx-pp-studio__stage .nx-char-matrix-viewport {
    width: 100%;
    height: 100%;
}

.nx-pp-studio__placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    height: 100%;
    padding: 2rem;
    text-align: center;
    color: #94a3b8;
}

.nx-pp-studio__placeholder strong {
    font-size: 1rem;
    color: #e2e8f0;
    letter-spacing: 0.04em;
}

.nx-pp-studio__placeholder span {
    font-size: 0.8rem;
    max-width: 28rem;
    line-height: 1.5;
}

.nx-pp-studio__caio {
    border-left: 1px solid var(--nx-pp-border);
    background: linear-gradient(180deg, rgba(10, 16, 28, 0.98), rgba(7, 12, 22, 0.99));
    min-height: 0;
    display: flex;
    flex-direction: column;
    position: relative;
}

.nx-pp-studio__caio-label {
    padding: 0.65rem 0.85rem;
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #64748b;
    border-bottom: 1px solid var(--nx-pp-border);
}

.nx-pp-studio__caio-slot {
    flex: 1;
    min-height: 0;
    position: relative;
    padding: 0.5rem;
}

html.nx-pp-studio-active.nx-pp-studio-caio-dock #global-caio-fab {
    display: none !important;
}

html.nx-pp-studio-active.nx-pp-studio-caio-dock #global-caio-panel.nx-pp-studio-caio-panel {
    position: absolute !important;
    inset: 0.5rem !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    bottom: auto !important;
    right: auto !important;
    border-radius: 14px;
    border-color: rgba(56, 189, 248, 0.35);
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
    display: flex !important;
}

@media (max-width: 1100px) {
    html.nx-pp-studio-active .nx-pp-studio {
        grid-template-columns: var(--nx-pp-rail-w) minmax(0, 1fr);
        grid-template-rows: 1fr min(42vh, 380px);
    }
    .nx-pp-studio__caio {
        grid-column: 1 / -1;
        border-left: none;
        border-top: 1px solid var(--nx-pp-border);
    }
}

@media (max-width: 720px) {
    html.nx-pp-studio-active .nx-pp-studio {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr auto;
        height: auto;
        min-height: calc(100vh - 5rem);
    }
    .nx-pp-studio__rail {
        max-height: 42vh;
        overflow-y: auto;
    }
}

/* SYNAPT_NEXUS_OS_ATRIUM_MEMBER */
/* Átrio membro — destaque Primeira Página (sem hub frota) */

.nx-member-atrium-card {
    padding: 1.25rem 1.35rem;
    border-radius: 16px;
    background: linear-gradient(165deg, rgba(15, 23, 42, 0.96), rgba(30, 41, 59, 0.88));
    border: 1px solid rgba(56, 189, 248, 0.35);
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.45);
    text-align: left;
    color: #e2e8f0;
}

.nx-member-atrium-card h3 {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
    font-weight: 600;
    color: #f8fafc;
}

.nx-member-atrium-card p {
    margin: 0 0 1rem;
    font-size: 0.8rem;
    line-height: 1.45;
    color: #94a3b8;
}

.nx-member-atrium-card .nx-member-atrium-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.nx-member-atrium-card .nx-member-pp-primary {
    padding: 0.65rem 1.1rem;
    border-radius: 999px;
    border: none;
    background: linear-gradient(135deg, #0ea5e9, #0284c7);
    color: #fff;
    font-weight: 600;
    font-size: 0.8rem;
    cursor: pointer;
    font-family: inherit;
}

.nx-member-atrium-card .nx-member-pp-secondary {
    padding: 0.65rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: rgba(15, 23, 42, 0.5);
    color: #cbd5e1;
    font-size: 0.78rem;
    cursor: pointer;
    font-family: inherit;
}

html.nx-atrium-fault-active .nx-hub-home-panel,
html.nx-atrium-fault-active .nx-cat-coin {
    display: none !important;
}

/* SYNAPT_NEXUS_OS_UNIVERSE_PRES */
/* Apresentação Universo Synapt — singularidade → Nexus OS → metrópole do repositório */

html.nx-universe-presentation-active #nx-engine-root,
html.nx-universe-presentation-active .nx-sandbox-plane {
    opacity: 0;
    visibility: hidden;
}

html.nx-universe-presentation-active #nexus-sandbox {
    overflow: hidden;
}

html.nx-universe-presentation-active #nx-taskbar,
html.nx-universe-presentation-active #global-caio-panel {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.nx-universe-pres {
    position: fixed;
    inset: 0;
    z-index: 2147483600;
    background: #030508;
    overflow: hidden;
    font-family: 'Outfit', system-ui, sans-serif;
    color: #e2e8f0;
}

.nx-universe-pres__canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
}

.nx-universe-pres__core {
    position: absolute;
    left: 50%;
    top: 44%;
    transform: translate(-50%, -50%);
    text-align: center;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease, transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 2;
}

.nx-universe-pres__core.is-visible {
    opacity: 1;
}

.nx-universe-pres__core.is-disintegrating {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.12);
    filter: blur(6px);
}

.nx-universe-pres__word-main {
    display: block;
    font-size: clamp(2.2rem, 6vw, 3.6rem);
    font-weight: 800;
    letter-spacing: 0.28em;
    margin-right: -0.28em;
    background: linear-gradient(135deg, #e8d5a3 0%, #38bdf8 45%, #a78bfa 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    text-shadow: 0 0 48px rgba(56, 189, 248, 0.35);
}

.nx-universe-pres__word-sub {
    display: block;
    font-size: clamp(1rem, 3vw, 1.35rem);
    font-weight: 600;
    letter-spacing: 0.42em;
    margin-right: -0.42em;
    color: rgba(148, 163, 184, 0.9);
    margin-top: 0.35rem;
}

.nx-universe-pres__hud {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 4;
    padding: 1.25rem 1.5rem 1.75rem;
    background: linear-gradient(0deg, rgba(3, 5, 8, 0.92) 0%, transparent 100%);
    pointer-events: auto;
}

.nx-universe-pres__status {
    margin: 0 0 0.65rem;
    font-size: 0.82rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(148, 163, 184, 0.95);
}

.nx-universe-pres__track {
    height: 3px;
    border-radius: 99px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
}

.nx-universe-pres__fill {
    height: 100%;
    width: 0%;
    border-radius: inherit;
    background: linear-gradient(90deg, #38bdf8, #a78bfa, #c9a227);
    transition: width 0.12s linear;
}

.nx-universe-pres__actions {
    display: flex;
    gap: 0.75rem;
    margin-top: 1rem;
    flex-wrap: wrap;
}

.nx-universe-pres__btn {
    appearance: none;
    border: 1px solid rgba(56, 189, 248, 0.45);
    background: rgba(15, 23, 42, 0.75);
    color: #f0f9ff;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.5rem 1rem;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
}

.nx-universe-pres__btn:hover {
    background: rgba(56, 189, 248, 0.2);
    border-color: #38bdf8;
}

.nx-universe-pres__btn--primary {
    background: linear-gradient(135deg, rgba(56, 189, 248, 0.35), rgba(167, 139, 250, 0.35));
}

.nx-universe-pres__legend {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 3;
    font-size: 0.7rem;
    color: rgba(148, 163, 184, 0.75);
    text-align: right;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.5s ease;
}

.nx-universe-pres__legend.is-visible {
    opacity: 1;
}

/* Modo demo exclusivo (?universe=1) — nunca montar praça Diretor por baixo */
html.nx-universe-demo-exclusive #nx-taskbar,
html.nx-universe-demo-exclusive #global-caio-panel,
html.nx-universe-demo-exclusive .nx-engine-node,
html.nx-universe-demo-exclusive #nexus-sandbox,
html.nx-universe-demo-exclusive .nx-sandbox-plane,
html.nx-universe-demo-exclusive #nx-engine-root {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

html.nx-universe-demo-exclusive.nx-universe-presentation-active .nx-universe-pres {
    pointer-events: auto;
}

.nx-universe-pres--end {
    background: radial-gradient(ellipse 80% 60% at 50% 40%, rgba(15, 23, 42, 0.95), #030508);
    z-index: 2147483601;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.nx-universe-pres__end-card {
    max-width: 420px;
    text-align: center;
    padding: 2rem 1.75rem;
    border: 1px solid rgba(56, 189, 248, 0.35);
    border-radius: 16px;
    background: rgba(8, 13, 24, 0.88);
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.5);
}

.nx-universe-pres__end-eyebrow {
    margin: 0 0 0.5rem;
    font-size: 0.72rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #c9a227;
}

.nx-universe-pres__end-title {
    margin: 0 0 0.75rem;
    font-size: 1.65rem;
    font-weight: 700;
    color: #f0f9ff;
}

.nx-universe-pres__end-lead {
    margin: 0 0 1.5rem;
    font-size: 0.9rem;
    line-height: 1.55;
    color: #94a3b8;
}

@media (prefers-reduced-motion: reduce) {
    .nx-universe-pres__core {
        transition: none;
    }
}

/* SYNAPT_NEXUS_OS_ENV_REVEAL */
/* Handoff boot → átrio espacial — continuidade visual no palco */

html.nx-atrium-reveal-pending #nx-engine-root,
html.nx-atrium-reveal-pending .nx-sandbox-plane {
    opacity: 1;
    transition:
        filter 0.85s ease,
        opacity 0.5s ease;
}

html.nx-atrium-reveal-pending .nx-sandbox-plane {
    filter: brightness(0.78) saturate(0.92);
}

html.nx-atrium-reveal-active .nx-sandbox-plane {
    filter: brightness(1) saturate(1);
    transition: filter 1s ease;
}

html.nx-atrium-reveal-active #nx-engine-root::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 44%;
    width: min(420px, 72vw);
    height: min(280px, 48vh);
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 2;
    background: radial-gradient(
        ellipse 70% 60% at 50% 50%,
        rgba(56, 189, 248, 0.14) 0%,
        transparent 68%
    );
    animation: nx-atrium-reveal-glow 1.2s ease-out forwards;
}

@keyframes nx-atrium-reveal-glow {
    from {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.85);
    }
    40% {
        opacity: 1;
    }
    to {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1.08);
    }
}

html.nx-phase-enter.nx-atrium-reveal-active .nx-hub-home-panel.nx-spatial-hub .nx-node-body {
    box-shadow:
        0 0 0 1px rgba(56, 189, 248, 0.25),
        0 16px 48px rgba(0, 0, 0, 0.45),
        0 0 40px rgba(56, 189, 248, 0.12);
}

/* SYNAPT_NEXUS_OS_ORCHESTRATE */
/* Orquestração — animação no .nx-node-body (posição 3D intacta no pai) */

html.nx-scene-transitioning .nx-engine-node {
    pointer-events: none;
}

html.nx-phase-exit .nx-engine-node:not(.nx-scene-enter-pending) {
    pointer-events: none;
}

html.nx-phase-mount .nx-scene-enter-pending {
    visibility: hidden;
}

html.nx-phase-enter .nx-scene-enter-pending {
    visibility: visible;
}

.nx-node-body {
    transform-origin: center center;
    will-change: transform, opacity;
}

.nx-node-body-text {
    text-align: center;
}

.nx-engine-node.nx-scene-enter-pending .nx-node-body {
    opacity: 0;
}

/* —— Saída —— */
@keyframes nxBodyExitUp {
    to { opacity: 0; filter: blur(5px); transform: translateY(-55vh) scale(0.5); }
}
@keyframes nxBodyExitDown {
    to { opacity: 0; filter: blur(5px); transform: translateY(55vh) scale(0.5); }
}
@keyframes nxBodyExitLeft {
    to { opacity: 0; filter: blur(4px); transform: translateX(-48vw) scale(0.55); }
}
@keyframes nxBodyExitRight {
    to { opacity: 0; filter: blur(4px); transform: translateX(48vw) scale(0.55); }
}
@keyframes nxBodyExitDepthFar {
    to { opacity: 0; filter: blur(8px); transform: scale(0.1); }
}
@keyframes nxBodyExitDepthNear {
    to { opacity: 0; filter: blur(4px); transform: scale(1.25); }
}

/* —— Entrada —— */
@keyframes nxBodyEnterUp {
    from { opacity: 0; transform: translateY(-48vh) scale(0.55); }
    to { opacity: 1; filter: none; transform: none; }
}
@keyframes nxBodyEnterDown {
    from { opacity: 0; transform: translateY(48vh) scale(0.55); }
    to { opacity: 1; filter: none; transform: none; }
}
@keyframes nxBodyEnterLeft {
    from { opacity: 0; transform: translateX(-42vw) scale(0.55); }
    to { opacity: 1; filter: none; transform: none; }
}
@keyframes nxBodyEnterRight {
    from { opacity: 0; transform: translateX(42vw) scale(0.55); }
    to { opacity: 1; filter: none; transform: none; }
}
@keyframes nxBodyEnterDepthFar {
    from { opacity: 0; transform: scale(0.12); }
    to { opacity: 1; filter: none; transform: none; }
}
@keyframes nxBodyEnterDepthNear {
    from { opacity: 0; transform: scale(1.15); }
    to { opacity: 1; filter: none; transform: none; }
}

.nx-motion-exit.nx-axis-exit-up { animation: nxBodyExitUp 0.42s cubic-bezier(0.55, 0, 1, 0.4) forwards; }
.nx-motion-exit.nx-axis-exit-down { animation: nxBodyExitDown 0.42s cubic-bezier(0.55, 0, 1, 0.4) forwards; }
.nx-motion-exit.nx-axis-exit-left { animation: nxBodyExitLeft 0.4s cubic-bezier(0.55, 0, 1, 0.4) forwards; }
.nx-motion-exit.nx-axis-exit-right { animation: nxBodyExitRight 0.4s cubic-bezier(0.55, 0, 1, 0.4) forwards; }
.nx-motion-exit.nx-axis-exit-depth-far { animation: nxBodyExitDepthFar 0.46s cubic-bezier(0.45, 0, 0.9, 0.35) forwards; }
.nx-motion-exit.nx-axis-exit-depth-near { animation: nxBodyExitDepthNear 0.38s cubic-bezier(0.45, 0, 0.9, 0.35) forwards; }

.nx-motion-enter.nx-axis-enter-up { animation: nxBodyEnterUp 0.48s cubic-bezier(0.16, 1, 0.3, 1) both; }
.nx-motion-enter.nx-axis-enter-down { animation: nxBodyEnterDown 0.48s cubic-bezier(0.16, 1, 0.3, 1) both; }
.nx-motion-enter.nx-axis-enter-left { animation: nxBodyEnterLeft 0.46s cubic-bezier(0.16, 1, 0.3, 1) both; }
.nx-motion-enter.nx-axis-enter-right { animation: nxBodyEnterRight 0.46s cubic-bezier(0.16, 1, 0.3, 1) both; }
.nx-motion-enter.nx-axis-enter-depth-far { animation: nxBodyEnterDepthFar 0.52s cubic-bezier(0.16, 1, 0.3, 1) both; }
.nx-motion-enter.nx-axis-enter-depth-near { animation: nxBodyEnterDepthNear 0.44s cubic-bezier(0.16, 1, 0.3, 1) both; }

@media (prefers-reduced-motion: reduce) {
    .nx-motion-exit,
    .nx-motion-enter {
        animation-duration: 0.01ms !important;
    }
}

/* SYNAPT_NEXUS_OS_SCENE */
/* Nexus OS — realms (átrio / prateleira / foco) */

.nx-scene-veil {
    position: fixed;
    inset: 0;
    z-index: 2147482000;
    pointer-events: none;
    background: radial-gradient(ellipse 60% 50% at 50% 45%, rgba(233, 84, 32, 0.12), transparent 65%);
    opacity: 0;
    transition: opacity 0.28s ease;
}

.nx-scene-veil.nx-scene-veil-active {
    opacity: 1;
}

html.nx-realm-focus .nx-taskbar-favs .nx-taskbar-fav-coin {
    box-shadow: 0 0 0 1px rgba(56, 189, 248, 0.45);
}

html.nx-realm-shelf .nx-hub-panel h3::after {
    content: ' · prateleira';
    font-size: 0.65em;
    color: #94a3b8;
    font-weight: 400;
}

.nx-hub-quick-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.75rem;
    justify-content: center;
}

.nx-hub-quick-btn {
    border: 1px solid rgba(233, 84, 32, 0.4);
    background: rgba(15, 23, 42, 0.85);
    color: #e2e8f0;
    border-radius: 10px;
    padding: 0.35rem 0.55rem;
    font-size: 0.68rem;
    cursor: pointer;
    transition: transform 0.15s ease, border-color 0.15s;
}

.nx-hub-quick-btn:hover {
    border-color: rgba(56, 189, 248, 0.55);
    transform: translateY(-1px);
}

.nx-shelf-hint {
    text-align: center;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #94a3b8;
    padding: 0.25rem 0.5rem;
}

.nx-cat-coin.is-active-ring .nx-launch-coin {
    border-color: rgba(56, 189, 248, 0.75);
    box-shadow: 0 0 20px rgba(56, 189, 248, 0.35);
}

html.nx-scene-transitioning .nx-sandbox-plane {
    cursor: wait;
}

html.nx-realm-atrium .nx-sandbox-plane,
html.nx-realm-shelf .nx-sandbox-plane {
    cursor: default;
}

/* SYNAPT_NEXUS_CAIO_RESEARCH */
/* CAIO Pesquisa — palco central + CAIO dock fixo à direita (sem float spatial) */
html.nx-caio-research-mode {
    --nx-cr-caio-rail: min(400px, 34vw);
}
html.nx-caio-research-mode #global-caio-fab {
    display: none !important;
}
html.nx-caio-research-mode #global-caio-panel,
html.nx-caio-research-mode.nx-caio-invoke-minimized #global-caio-panel,
html.nx-caio-research-mode.nx-caio-invoke-expanded #global-caio-panel,
html.nx-caio-research-mode.nx-spatial-caio-dock #global-caio-panel {
    position: fixed !important;
    top: 72px !important;
    right: 12px !important;
    bottom: 20px !important;
    left: auto !important;
    width: min(360px, calc(var(--nx-cr-caio-rail) - 28px)) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100vh - 96px) !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    visibility: visible !important;
    flex-direction: column !important;
    pointer-events: auto !important;
    overflow: hidden !important;
    transform: none !important;
    z-index: 2147483645 !important;
    border: 1px solid rgba(99, 102, 241, 0.45) !important;
    border-radius: 16px !important;
    background: rgba(15, 23, 42, 0.96) !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(99, 102, 241, 0.2) !important;
    backdrop-filter: blur(12px) !important;
    animation: none !important;
}
html.nx-caio-research-mode #global-caio-panel .gc-header,
html.nx-caio-research-mode #global-caio-panel .gc-chat,
html.nx-caio-research-mode #global-caio-panel .gc-input,
html.nx-caio-research-mode #global-caio-panel .gc-status,
html.nx-caio-research-mode #global-caio-panel .gc-caio-presence-block {
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: auto !important;
    max-width: none !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    transform: none !important;
    animation: none !important;
    pointer-events: auto !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
html.nx-caio-research-mode #global-caio-panel .gc-chat {
    flex: 1 1 auto !important;
    overflow-y: auto !important;
    min-height: 120px !important;
}
html.nx-caio-research-mode #nx-os-shell .nexus-app,
html.nx-caio-research-mode #dynamic-content,
html.nx-caio-research-mode #nexus-sandbox {
    max-width: calc(100vw - var(--nx-cr-caio-rail)) !important;
}
html.nx-caio-research-mode #nx-os-shell .nexus-app,
html.nx-caio-research-mode #dynamic-content {
    background: transparent !important;
}
html.nx-caio-research-mode #nexus-sandbox .nx-cr-root {
    max-width: 100% !important;
}
html.nx-caio-research-mode #nexus-sandbox,
html.nx-caio-research-mode #nexus-sandbox .nx-sandbox-plane {
    overflow: hidden !important;
    height: calc(100vh - var(--nx-taskbar-h, 52px)) !important;
    max-height: calc(100vh - var(--nx-taskbar-h, 52px)) !important;
}
html.nx-caio-research-mode .nx-cr-root {
    height: 100%;
    min-height: 0;
    max-height: 100%;
}
html.nx-caio-research-mode .nx-cr-stage {
    height: 100%;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
}
html.nx-caio-research-mode .nx-cr-results.is-visible {
    display: block;
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    scrollbar-gutter: stable;
    padding: 1rem 1.25rem 2.5rem 1.5rem;
}
html.nx-caio-research-mode .nx-cr-results.is-visible::-webkit-scrollbar {
    width: 8px;
}
html.nx-caio-research-mode .nx-cr-results.is-visible::-webkit-scrollbar-thumb {
    background: rgba(99, 102, 241, 0.45);
    border-radius: 8px;
}
html.nx-caio-research-mode .nx-cr-results.is-visible::-webkit-scrollbar-track {
    background: rgba(15, 23, 42, 0.35);
}
@media (max-width: 900px) {
    html.nx-caio-research-mode {
        --nx-cr-caio-rail: min(340px, 42vw);
    }
    html.nx-caio-research-mode #global-caio-panel {
        top: auto !important;
        bottom: 12px !important;
        max-height: 46vh !important;
    }
}
.nx-cr-root {
    position: relative;
    display: flex;
    flex-direction: row;
    width: 100%;
    max-width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: radial-gradient(ellipse 80% 60% at 38% 45%, rgba(30, 41, 59, 0.5), #030508 70%);
}
.nx-cr-stage {
    flex: 1;
    min-width: 0;
    width: 100%;
    max-width: calc(100vw - var(--nx-cr-caio-rail, min(400px, 34vw)));
    margin-right: 0;
    padding-right: 0.5rem;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    box-sizing: border-box;
}
.nx-cr-orbital-wrap {
    flex: 1;
    position: relative;
    min-height: 420px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}
.nx-cr-orbital-viz {
    flex: 1 1 auto;
    position: relative;
    width: 100%;
    min-height: 300px;
}
#nx-cr-orbital-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
}
.nx-cr-orbital-copy {
    flex: 0 0 auto;
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    padding: 0.5rem 1.5rem 2.75rem;
    text-align: center;
    pointer-events: none;
}
.nx-cr-orbital-tagline {
    margin: 0 0 0.9rem;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    color: #f1f5f9;
    text-shadow: 0 0 24px rgba(99, 102, 241, 0.45), 0 2px 12px #000;
    background: linear-gradient(135deg, #e2e8f0 0%, #a5b4fc 55%, #38bdf8 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.nx-cr-orbital-lead {
    margin: 0;
    text-align: center;
    pointer-events: none;
    color: #94a3b8;
    font-size: 0.84rem;
    max-width: 440px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.65;
    text-shadow: 0 2px 16px #000;
}
/* legado — mantido para compat */
.nx-cr-orbital-hint {
    position: absolute;
    left: 50%;
    top: 58%;
    transform: translate(-50%, -50%);
    text-align: center;
    pointer-events: none;
    color: #94a3b8;
    font-size: 0.9rem;
    max-width: 420px;
    line-height: 1.5;
    text-shadow: 0 2px 20px #000;
}
.nx-cr-orbital-hint strong {
    display: block;
    font-size: 1.1rem;
    color: #e2e8f0;
    margin-bottom: 0.35rem;
}
.nx-cr-results {
    flex: 1;
    overflow: auto;
    padding: 1.25rem 1.5rem 2rem;
    display: none;
}
.nx-cr-results.is-visible {
    display: block;
}
.nx-cr-results-inner {
    max-width: 960px;
    margin: 0 auto;
}
.nx-cr-query-head {
    margin-bottom: 1.25rem;
}
.nx-cr-query-head h2 {
    margin: 0 0 0.35rem;
    font-size: 1.45rem;
    color: #f8fafc;
    font-weight: 600;
}
.nx-cr-query-meta {
    margin: 0;
    font-size: 0.8rem;
    color: #64748b;
    letter-spacing: 0.04em;
}
.nx-cr-bi-stage {
    margin-bottom: 1.5rem;
}
.nx-cr-bi-spatial {
    position: relative;
}
.nx-cr-float-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.nx-cr-float-card {
    grid-column: span 3;
    padding: 1rem 1.1rem;
    border-radius: 16px;
    border: 1px solid rgba(99, 102, 241, 0.28);
    background: linear-gradient(145deg, rgba(15, 23, 42, 0.92), rgba(30, 41, 59, 0.55));
    box-shadow:
        0 18px 40px rgba(0, 0, 0, 0.45),
        0 0 0 1px rgba(255, 255, 255, 0.04) inset;
    animation: nx-cr-float-in 0.55s ease-out both;
    position: relative;
    overflow: hidden;
}
.nx-cr-float-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 80% 60% at 20% 0%, rgba(99, 102, 241, 0.12), transparent 70%);
    pointer-events: none;
}
.nx-cr-float-hero {
    grid-column: span 6;
    padding: 1.35rem 1.5rem;
}
.nx-cr-float-chart-wide {
    grid-column: span 8;
}
.nx-cr-float-chart {
    grid-column: span 4;
}
.nx-cr-float-forecast {
    grid-column: span 3;
}
.nx-cr-float-source {
    grid-column: span 4;
    min-height: 9rem;
}
.nx-cr-float-source .nx-cr-float-value {
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.35;
}
.nx-cr-float-source .nx-cr-float-sub {
    margin-top: 0.5rem;
    line-height: 1.45;
    color: #94a3b8;
}
.nx-cr-float-notice {
    grid-column: span 6;
    border-color: rgba(251, 191, 36, 0.35);
    background: linear-gradient(145deg, rgba(69, 26, 3, 0.55), rgba(30, 41, 59, 0.55));
}
.nx-cr-float-link {
    display: inline-block;
    margin-top: 0.65rem;
    font-size: 0.78rem;
    color: #a5b4fc;
    text-decoration: none;
}
.nx-cr-float-link:hover {
    color: #c7d2fe;
    text-decoration: underline;
}
.nx-cr-float-table {
    grid-column: span 12;
}
.nx-cr-table-wrap {
    margin-top: 0.75rem;
    overflow: auto;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.12);
    background: rgba(2, 6, 23, 0.35);
}
.nx-cr-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 560px;
}
.nx-cr-table th,
.nx-cr-table td {
    padding: 0.55rem 0.65rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.12);
    font-size: 0.8rem;
    color: #cbd5e1;
    text-align: left;
    vertical-align: top;
}
.nx-cr-table th {
    position: sticky;
    top: 0;
    background: rgba(15, 23, 42, 0.95);
    color: #e2e8f0;
    font-weight: 700;
    letter-spacing: 0.02em;
}
.nx-cr-float-carousel {
    grid-column: span 12;
}
.nx-cr-carousel-strip {
    display: flex;
    gap: 0.75rem;
    overflow-x: auto;
    padding: 0.65rem 0.1rem 0.2rem;
    margin-top: 0.65rem;
}
.nx-cr-carousel-item {
    display: block;
    min-width: 180px;
    max-width: 220px;
    text-decoration: none;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(99, 102, 241, 0.28);
    background: rgba(2, 6, 23, 0.35);
}
.nx-cr-carousel-item img {
    display: block;
    width: 100%;
    height: 130px;
    object-fit: cover;
}
.nx-cr-carousel-cap {
    display: block;
    padding: 0.45rem 0.6rem 0.55rem;
    font-size: 0.75rem;
    color: #c7d2fe;
}
.nx-cr-image-frame {
    margin-top: 0.65rem;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, 0.14);
    background: rgba(2, 6, 23, 0.35);
}
.nx-cr-image-frame img {
    display: block;
    width: 100%;
    height: 180px;
    object-fit: cover;
}
.nx-cr-accent-up .nx-cr-float-value {
    color: #86efac;
}
.nx-cr-accent-down .nx-cr-float-value {
    color: #fca5a5;
}
.nx-cr-accent-primary .nx-cr-float-value {
    color: #e0e7ff;
}
.nx-cr-float-hero .nx-cr-float-value {
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.45;
}
.nx-cr-float-hero-metric .nx-cr-float-value {
    font-size: 2rem;
    font-weight: 700;
}
.nx-cr-float-label {
    display: block;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #94a3b8;
    margin-bottom: 0.35rem;
}
.nx-cr-float-value {
    font-size: 1.35rem;
    font-weight: 700;
    color: #f1f5f9;
    line-height: 1.2;
}
.nx-cr-float-sub {
    margin-top: 0.35rem;
    font-size: 0.78rem;
    color: #64748b;
}
.nx-cr-spark {
    display: block;
    width: 100%;
    height: 72px;
    margin-top: 0.65rem;
    opacity: 0.95;
}
.nx-cr-insights-float,
.nx-cr-related-float {
    padding: 1rem 1.15rem;
    border-radius: 14px;
    border: 1px solid rgba(56, 189, 248, 0.22);
    background: rgba(8, 47, 73, 0.35);
    margin-bottom: 1rem;
    animation: nx-cr-float-in 0.6s ease-out 0.2s both;
}
.nx-cr-insights-float h3,
.nx-cr-related-float h3 {
    margin: 0 0 0.65rem;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #7dd3fc;
}
.nx-cr-insights-float ul,
.nx-cr-related-float ul {
    margin: 0;
    padding-left: 1.1rem;
    color: #cbd5e1;
    font-size: 0.88rem;
    line-height: 1.55;
}
.nx-cr-related-float {
    border-color: rgba(99, 102, 241, 0.25);
    background: rgba(30, 27, 75, 0.35);
}
.nx-cr-report-secondary {
    opacity: 0.92;
    font-size: 0.9rem;
}
.nx-cr-feedback {
    margin: 1.25rem 0 1rem;
    padding: 1.1rem 1.2rem;
    border-radius: 14px;
    border: 1px solid rgba(99, 102, 241, 0.35);
    background: rgba(15, 23, 42, 0.65);
}
.nx-cr-feedback h3 {
    margin: 0 0 0.5rem;
    font-size: 0.95rem;
    color: #e2e8f0;
}
.nx-cr-feedback-opt {
    font-weight: 400;
    color: #64748b;
    font-size: 0.8rem;
}
.nx-cr-feedback-lead {
    margin: 0 0 0.85rem;
    font-size: 0.82rem;
    color: #94a3b8;
    line-height: 1.45;
}
.nx-cr-feedback-quick {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.85rem;
}
.nx-cr-feedback-quick-label {
    font-size: 0.78rem;
    color: #64748b;
}
.nx-cr-fb-chip {
    border: 1px solid rgba(99, 102, 241, 0.4);
    background: rgba(30, 41, 59, 0.8);
    color: #cbd5e1;
    border-radius: 999px;
    padding: 0.35rem 0.75rem;
    font-size: 0.8rem;
    cursor: pointer;
}
.nx-cr-fb-chip.is-active {
    border-color: #818cf8;
    background: rgba(99, 102, 241, 0.25);
    color: #e0e7ff;
}
.nx-cr-feedback label {
    display: block;
    margin: 0.55rem 0 0.25rem;
    font-size: 0.78rem;
    color: #94a3b8;
}
.nx-cr-feedback textarea {
    width: 100%;
    box-sizing: border-box;
    border-radius: 10px;
    border: 1px solid rgba(71, 85, 105, 0.6);
    background: rgba(2, 6, 23, 0.5);
    color: #f1f5f9;
    padding: 0.5rem 0.65rem;
    font-size: 0.85rem;
    resize: vertical;
}
.nx-cr-fb-check {
    display: flex !important;
    align-items: flex-start;
    gap: 0.5rem;
    margin-top: 0.65rem !important;
    font-size: 0.8rem !important;
    color: #cbd5e1 !important;
    cursor: pointer;
}
.nx-cr-feedback-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.85rem;
}
.nx-cr-feedback-note {
    margin: 0.5rem 0 0;
    font-size: 0.78rem;
    color: #fbbf24;
}
.nx-cr-feedback-done {
    border-color: rgba(74, 222, 128, 0.35);
}
.nx-cr-feedback-thanks {
    margin: 0;
    color: #86efac;
    font-size: 0.88rem;
}
.nx-cr-feedback-caio {
    margin-top: 0.75rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    background: rgba(30, 27, 75, 0.45);
    font-size: 0.84rem;
    color: #c7d2fe;
    line-height: 1.5;
}
.nx-cr-feedback-skipped {
    margin: 1rem 0;
    font-size: 0.82rem;
    color: #64748b;
}
@keyframes nx-cr-float-in {
    from {
        opacity: 0;
        transform: translateY(14px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}
@media (max-width: 1100px) {
    .nx-cr-float-card,
    .nx-cr-float-hero,
    .nx-cr-float-chart-wide,
    .nx-cr-float-chart {
        grid-column: span 6;
    }
}
@media (max-width: 700px) {
    .nx-cr-float-card,
    .nx-cr-float-hero,
    .nx-cr-float-chart-wide,
    .nx-cr-float-chart,
    .nx-cr-float-forecast {
        grid-column: span 12;
    }
}
.nx-cr-results h2 {
    margin: 0 0 0.75rem;
    font-size: 1.35rem;
    color: #f1f5f9;
}
.nx-cr-report {
    background: rgba(15, 23, 42, 0.85);
    border: 1px solid #334155;
    border-radius: 14px;
    padding: 1.25rem 1.5rem;
    color: #cbd5e1;
    font-size: 0.92rem;
    line-height: 1.55;
    margin-bottom: 1rem;
}
.nx-cr-report h1,
.nx-cr-report h2,
.nx-cr-report h3 {
    color: #e2e8f0;
    margin: 1rem 0 0.5rem;
}
.nx-cr-bi-slot {
    margin: 1rem 0;
}
.nx-cr-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 1rem;
}
.nx-cr-history {
    border-top: 1px solid #1e293b;
    padding-top: 1rem;
    margin-top: 1.5rem;
}
.nx-cr-history h3 {
    font-size: 0.85rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.nx-cr-history-item {
    padding: 0.5rem 0;
    border-bottom: 1px solid #1e293b;
    cursor: pointer;
    color: #94a3b8;
    font-size: 0.85rem;
}
.nx-cr-history-item:hover {
    color: #e2e8f0;
}
.nx-cr-badge {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    border-radius: 6px;
    font-size: 0.72rem;
    background: rgba(99, 102, 241, 0.2);
    color: #a5b4fc;
    margin-left: 0.35rem;
}
.nx-cr-clarify-box {
    background: rgba(99, 102, 241, 0.08);
    border: 1px solid rgba(99, 102, 241, 0.35);
    border-radius: 12px;
    padding: 1rem;
    margin-bottom: 1rem;
}
html.nx-caio-research-public .nx-cr-orbital-copy::before {
    content: 'Demo público · sem login';
    display: block;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #86efac;
    margin-bottom: 0.35rem;
}
