/* ACE OS — home. Tokens de cor/fonte vêm do ace.css (Urbanist + paleta). */
:root { --os-bg:#141019; --os-bg2:#1b1524; --os-line:rgba(255,255,255,.08); --os-muted:rgba(255,255,255,.55); }
body[data-page="os"] { background:var(--os-bg); color:#fff; margin:0; min-height:100vh; }
body[data-page="os"].mapa { overflow:hidden; }
.os-topbar { position:fixed; inset:0 0 auto 0; height:60px; z-index:20; gap:14px;
  border-bottom:0; padding:0 24px; flex-wrap:nowrap;
  background:linear-gradient(180deg,rgba(20,16,25,.95),rgba(20,16,25,.6) 70%,transparent); }
.os-topbar .ace-mark { display:flex; align-items:center; gap:10px; color:#fff; text-decoration:none; font-size:20px; }
.os-topbar .word.os { font-weight:300; color:var(--ace-purple-100); margin-left:-4px; letter-spacing:.02em; }
.os-topbar #quem { font-size:14px; color:var(--os-muted); }
.os-topbar .linkbtn { background:var(--ace-purple); color:#fff; border:0; padding:8px 16px; border-radius:8px; font:inherit; font-weight:700; font-size:13px; cursor:pointer; }
.os-topbar .linkbtn:hover { background:var(--ace-purple-400); }
.viewswitch { display:flex; gap:2px; padding:3px; border-radius:999px; border:1px solid var(--os-line); background:rgba(255,255,255,.04); }
.viewswitch[hidden], .search[hidden] { display:none; }
.os-topbar .viewswitch button { font:inherit; font-weight:700; font-size:12px; padding:6px 14px; border-radius:999px; border:0; background:transparent; color:var(--os-muted); cursor:pointer; transition:.15s; }
.viewswitch button:hover { color:#fff; }
.viewswitch button.on { background:var(--ace-purple); color:#fff; }
.os-topbar .search { display:flex; align-items:center; gap:10px; height:36px; padding:0 14px; border-radius:999px; border:1px solid var(--os-line);
  background:rgba(255,255,255,.04); color:var(--os-muted); font:inherit; font-size:13px; cursor:text; min-width:260px; }
.os-topbar .search kbd { margin-left:auto; font-family:inherit; font-size:11px; font-weight:700; padding:2px 7px; border-radius:5px; background:rgba(255,255,255,.08); color:#fff; }

/* ── Mapa ── */
#mapa { position:fixed; inset:0; }
#mapa canvas { position:absolute; inset:0; width:100%; height:100%; }
.leftcol { position:absolute; left:32px; top:60px; bottom:0; width:340px; display:flex; flex-direction:column; justify-content:center; gap:24px; pointer-events:none; }
.leftcol > * { pointer-events:auto; }
.hint h1 { margin:6px 0 8px; font-size:40px; font-weight:900; line-height:1; }
.hint p { margin:0; font-size:13px; color:var(--os-muted); line-height:1.55; }
.legend { display:flex; flex-direction:column; gap:2px; margin-left:-8px; }
.legend .it { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--os-muted); cursor:pointer; padding:5px 8px; border-radius:6px; }
.legend .it:hover { background:rgba(255,255,255,.05); color:#fff; }
.legend .dot { width:9px; height:9px; border-radius:50%; box-shadow:0 0 10px currentColor; }
.legend .n { margin-left:auto; font-size:12px; opacity:.5; }
.legend .tot { margin-top:6px; font-size:11px; color:var(--ace-gray-500); cursor:default; }
.signals { display:flex; flex-direction:column; gap:9px; font-size:12px; color:var(--os-muted); padding-top:18px; border-top:1px solid var(--os-line); }
.signals:empty { display:none; }
.signals b { color:#fff; font-weight:700; }
.signals .s { display:flex; align-items:center; gap:8px; }
.signals .s::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--ace-purple-100); box-shadow:0 0 8px var(--ace-purple-100); }
.tools { display:flex; gap:8px; flex-wrap:wrap; }
.tools a { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:var(--os-muted); text-decoration:none; padding:5px 9px; border-radius:999px; border:1px solid var(--os-line); }
.tools a:hover { color:#fff; background:rgba(255,255,255,.05); }
.tools img { width:14px; height:14px; border-radius:3px; }
.rightcol { position:absolute; right:32px; top:60px; bottom:0; width:250px; display:flex; flex-direction:column; justify-content:center; gap:26px; }
.rc-hd { display:flex; align-items:center; gap:8px; font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--ace-gray-500); margin-bottom:8px; }
.rc-hd .cnt { margin-left:auto; font-weight:600; letter-spacing:0; text-transform:none; opacity:.7; }
.rc-item { display:flex; align-items:center; gap:10px; padding:7px 8px; margin:0 -8px; border-radius:8px; color:rgba(255,255,255,.85); font-size:13px; text-decoration:none; transition:background .12s; }
.rc-item:hover { background:rgba(255,255,255,.05); color:#fff; }
.rc-item .dot { width:8px; height:8px; border-radius:50%; flex:none; box-shadow:0 0 8px currentColor; }
.rc-item .lb { flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rc-item .meta { font-size:12px; color:var(--ace-gray-500); font-weight:600; white-space:nowrap; }
.rc-item .star { font-size:13px; color:var(--ace-purple-100); background:none; border:0; cursor:pointer; padding:0 2px; }
.rc-item .bar { width:38px; height:3px; border-radius:2px; background:rgba(255,255,255,.08); overflow:hidden; flex:none; }
.rc-item .bar i { display:block; height:100%; background:currentColor; opacity:.85; }
.rc-empty, .rc-tip { font-size:12px; color:var(--ace-gray-500); line-height:1.5; }
.rc-tip { margin-top:6px; }
/* Próximos eventos (agenda do Intelligence): nome em cima, quando embaixo */
.rc-link { color:inherit; text-decoration:none; }
.rc-link:hover { color:#fff; }
.rc-item .ev-txt { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.rc-item .ev-quando { font-size:11px; color:var(--ace-gray-500); }
.rc-item.ev-cancelado .lb { text-decoration:line-through; opacity:.6; }
.tip { position:absolute; z-index:62; /* acima do Buildinho (.buddy z=60) */ pointer-events:none; opacity:0; transform:translate(-50%,-100%) translateY(-14px); transition:opacity .12s;
  background:rgba(27,21,36,.96); border:1px solid var(--os-line); border-radius:8px; padding:10px 12px; min-width:170px; box-shadow:0 8px 30px rgba(0,0,0,.5); }
.tip.on { opacity:1; }
.tip .d { font-size:10px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.tip .n { font-size:15px; font-weight:700; margin:2px 0; }
.tip .m { font-size:12px; color:var(--os-muted); }
.tip .lock { display:inline-block; margin-left:6px; font-size:10px; color:var(--ace-purple-100); }

/* intro vindo do login: colunas entram em fade enquanto o cérebro desliza pro lugar */
.leftcol, .rightcol { transition:opacity .5s ease; }
body.intro .leftcol, body.intro .rightcol { opacity:0; }

/* chip "Faça uma pergunta" (coluna esquerda) */
.ask-chip { display:flex; flex-direction:column; align-items:flex-start; gap:2px; text-align:left; font:inherit; font-weight:700; font-size:14px; color:#fff;
  background:linear-gradient(135deg, rgba(91,58,151,.55), rgba(91,58,151,.25)); border:1px solid rgba(184,155,238,.35); border-radius:12px; padding:12px 14px; cursor:pointer; transition:.15s; }
.ask-chip span { font-weight:400; font-size:12px; color:var(--os-muted); }
.ask-chip:hover { border-color:var(--ace-purple-100); background:linear-gradient(135deg, rgba(91,58,151,.7), rgba(91,58,151,.35)); }

/* caixa de resposta do Buildinho */
.ia-box { position:fixed; right:24px; bottom:24px; left:auto; transform:none; width:min(400px, 92vw); z-index:45;
  background:rgba(27,21,36,.98); border:1px solid rgba(184,155,238,.4); border-radius:16px; padding:14px 16px 16px; box-shadow:0 20px 60px rgba(0,0,0,.6);
  animation:iaPop .22s ease both; }
@keyframes iaPop { from { opacity:0; transform:translateY(10px) scale(.98); } to { opacity:1; transform:none; } }
.ia-r { max-height:min(52vh, 460px); overflow:auto; }
.ia-box[hidden] { display:none; }
.ia-hd { display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.ia-quem { font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--ace-purple-100); }
.ia-status { font-size:12px; color:var(--os-muted); flex:1; }
.ia-x { background:none; border:0; color:var(--os-muted); font-size:20px; line-height:1; cursor:pointer; padding:0 4px; }
.ia-x:hover { color:#fff; }
.ia-q { font-size:12px; color:var(--os-muted); margin-bottom:8px; }
.ia-q b { color:#fff; font-weight:600; }
.ia-r { font-size:15px; line-height:1.55; color:#fff; white-space:pre-wrap; }
.ia-r a { color:var(--ace-purple-100); }
.ia-r.pensando { color:var(--os-muted); font-style:italic; }
.ia-acoes { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.ia-acoes:empty { display:none; }
.ia-acoes a, .ia-acoes button { font:inherit; font-weight:700; font-size:13px; padding:8px 14px; border-radius:999px; text-decoration:none; cursor:pointer; border:1px solid var(--os-line); background:rgba(255,255,255,.05); color:#fff; }
.ia-acoes a.principal { background:var(--ace-purple); border-color:var(--ace-purple); }
.ia-acoes a.principal:hover { background:var(--ace-purple-400); }
/* Buildinho "pensando": antena pisca rápido */
.buddy.pensando .b-antenna { animation:blip .35s ease-in-out infinite; }

/* ── Lista ── */
#lista { padding:80px 0 60px; }
.hero { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; max-width:1240px; margin:0 auto; padding:10px 24px 0; min-height:340px; }
.hero h1 { font-size:56px; font-weight:900; line-height:.95; margin:10px 0 14px; }
.hero p { font-size:16px; color:var(--os-muted); max-width:420px; line-height:1.55; margin:0 0 22px; }
.brainwrap { position:relative; height:340px; }
.brainwrap canvas { position:absolute; inset:0; width:100%; height:100%; }
.chips { display:flex; gap:10px; flex-wrap:wrap; }
.chip { font-size:12px; font-weight:600; padding:8px 12px; border-radius:999px; border:1px solid var(--os-line); background:rgba(255,255,255,.03); color:var(--os-muted); }
.chip b { color:#fff; }
.domains { max-width:1240px; margin:20px auto 0; padding:0 24px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.dcard { background:var(--os-bg2); border:1px solid var(--os-line); border-radius:12px; padding:18px 20px 14px; position:relative; overflow:hidden; }
.dcard::before { content:''; position:absolute; left:0; right:0; top:0; height:3px; background:var(--c); }
.dcard .hd { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.dcard .hd .dot { width:10px; height:10px; border-radius:50%; background:var(--c); box-shadow:0 0 12px var(--c); }
.dcard .hd h3 { margin:0; font-size:18px; font-weight:700; flex:1; }
.dcard .hd .cnt { font-size:12px; color:var(--ace-gray-500); font-weight:600; }
.dcard ul { list-style:none; margin:0; padding:0; }
.dcard li a { display:flex; align-items:center; gap:8px; padding:8px 6px; border-radius:6px; font-size:14px; color:rgba(255,255,255,.85); text-decoration:none; }
.dcard li a:hover { background:rgba(255,255,255,.05); color:#fff; }
.dcard li a .sub { font-size:12px; color:var(--ace-gray-500); }
.dcard li a .bar { margin-left:auto; width:46px; height:3px; border-radius:2px; background:rgba(255,255,255,.08); overflow:hidden; flex:none; }
.dcard li a .bar i { display:block; height:100%; background:var(--c); opacity:.8; }
.dcard .more { margin-top:6px; font-size:12px; color:var(--ace-purple-100); font-weight:600; padding:6px; background:none; border:0; cursor:pointer; font-family:inherit; }
.dcard .lock { font-size:12px; color:var(--ace-purple-100); }
.tools-lista { max-width:1240px; margin:22px auto 0; padding:0 24px; }

/* ── comuns ── */
.os-empty, .os-warn { max-width:1240px; margin:120px auto 0; padding:0 24px; color:var(--os-muted); font-size:15px; }
.os-warn { color:var(--ace-purple-100); font-size:12px; margin-top:8px; }
.os-foot { position:fixed; left:32px; bottom:16px; display:flex; gap:18px; font-size:12px; z-index:15; }
.os-foot a { color:var(--ace-gray-500); text-decoration:none; }
.os-foot a:hover { color:#fff; }
.pal { position:fixed; inset:0; z-index:40; display:flex; align-items:flex-start; justify-content:center; padding-top:14vh; background:rgba(10,8,14,.6); backdrop-filter:blur(6px); }
.pal[hidden] { display:none; }
.palbox { width:560px; max-width:92vw; background:var(--os-bg2); border:1px solid var(--os-line); border-radius:14px; box-shadow:0 30px 80px rgba(0,0,0,.6); overflow:hidden; }
.palbox input { width:100%; font:inherit; font-size:18px; font-weight:600; padding:18px 20px; border:0; outline:0; background:transparent; color:#fff; }
.palbox input::placeholder { color:var(--os-muted); font-weight:400; }
.palbox ul { list-style:none; margin:0; padding:6px; border-top:1px solid var(--os-line); max-height:50vh; overflow:auto; }
.palbox li { display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:8px; font-size:14px; cursor:pointer; }
.palbox li.sel, .palbox li:hover { background:rgba(255,255,255,.06); }
.palbox li .dot { width:8px; height:8px; border-radius:50%; }
.palbox li .dm { margin-left:auto; font-size:11px; color:var(--ace-gray-500); font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.toast { position:fixed; left:50%; bottom:80px; transform:translateX(-50%) translateY(20px); opacity:0; z-index:50; transition:.2s;
  background:#fff; color:var(--ace-black); font-size:13px; font-weight:600; padding:10px 16px; border-radius:8px; box-shadow:0 10px 30px rgba(0,0,0,.4); }
.toast.on { opacity:1; transform:translateX(-50%); }

/* ── responsivo ── */
@media (max-width: 1100px) { .domains { grid-template-columns:repeat(2,1fr); } .hero { grid-template-columns:1fr; } .brainwrap { height:240px; } }
@media (max-width: 899px) {
  .viewswitch, .search { display:none; }                 /* mobile: só Lista; busca fica no teclado `/` de quem tiver */
  .domains { grid-template-columns:1fr; }
  .hero h1 { font-size:40px; }
  .brainwrap { display:none; }                            /* deco brain não é criado no mobile — some o vazio */
  .os-foot { position:static; padding:24px; }
}
@media (prefers-reduced-motion: reduce) { .tip, .viewswitch button, .toast { transition:none; } }

/* Notificações (25/09): sininho no topo + bloco "Pra você" na coluna da direita */
.nt-wrap { position:relative; }
.os-topbar .nt-bell { padding:0; position:relative; display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:999px; border:1px solid var(--os-line); background:transparent; color:var(--os-muted); cursor:pointer; transition:color .15s, border-color .15s; }
.os-topbar .nt-bell:hover, .os-topbar .nt-bell[aria-expanded="true"] { color:#fff; border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.06); }
.os-topbar .nt-bell svg { flex:none; }
.nt-badge { position:absolute; top:-4px; right:-4px; min-width:17px; height:17px; padding:0 4px; box-sizing:border-box; border-radius:999px; background:var(--ace-purple); color:#fff; font-size:10px; font-weight:800; line-height:17px; text-align:center; box-shadow:0 0 0 2px var(--os-bg); }
.nt-panel { position:absolute; right:0; top:46px; width:340px; max-height:70vh; overflow:auto; background:rgba(27,21,36,.98); border:1px solid var(--os-line); border-radius:12px; padding:10px 16px 12px; box-shadow:0 12px 40px rgba(0,0,0,.55); z-index:70; }
.nt-panel-hd { font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--ace-gray-500); margin:4px 0 6px; }
.rc-item.nt-item { align-items:flex-start; }
.rc-item .nt-dot { margin-top:6px; }
.nt-txt { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.nt-lb { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.3; }
.nt-meta { font-size:11px; color:var(--ace-gray-500); }
.nt-ponto { width:6px; height:6px; border-radius:50%; background:var(--ace-purple-100); flex:none; margin-top:7px; }
.rc-item.nt-item:not(.nt-nova) .nt-lb { color:rgba(255,255,255,.6); }
.os-topbar.nt-aberto { z-index:65; } /* painel aberto passa por cima do Buildinho (.buddy z=60) */
@media (max-width: 899px) { .nt-panel { position:fixed; left:12px; right:12px; top:64px; width:auto; } }

/* MCP do portal no Claude (teste, 25/09): chip na coluna da esquerda / hero da Lista + diálogo */
.mcp-chip { display:flex; flex-direction:column; align-items:flex-start; gap:2px; text-align:left; font:inherit; font-weight:700; font-size:13px; color:#fff;
  width:100%; box-sizing:border-box; padding:10px 14px; border-radius:10px; border:1px dashed rgba(184,155,238,.45); background:rgba(255,255,255,.02); cursor:pointer; transition:border-color .15s, background .15s; }
.mcp-chip span:not(.mcp-tag) { font-weight:400; font-size:12px; color:var(--os-muted); }
.mcp-chip:hover { border-color:var(--ace-purple-100); background:rgba(91,58,151,.18); }
.mcp-chip-lista { width:auto; margin-top:14px; }
.mcp-tag { display:inline-block; font-size:9px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#141019; background:var(--ace-purple-100); border-radius:4px; padding:2px 6px; margin-bottom:4px; }
.mcp-dlg { width:min(520px, calc(100vw - 32px)); box-sizing:border-box; padding:26px 28px 22px; border-radius:14px; border:1px solid var(--os-line); background:#1b1524; color:#fff; box-shadow:0 20px 60px rgba(0,0,0,.6); }
.mcp-dlg::backdrop { background:rgba(10,8,14,.65); }
.mcp-x { position:absolute; top:12px; right:14px; background:none; border:0; color:var(--os-muted); font-size:22px; line-height:1; cursor:pointer; }
.mcp-x:hover { color:#fff; }
.mcp-eyebrow { display:flex; align-items:center; gap:8px; font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--ace-purple-100); }
.mcp-eyebrow .mcp-tag { margin:0; }
.mcp-dlg h2 { margin:8px 0 6px; font-size:22px; font-weight:800; }
.mcp-lead { margin:0 0 16px; font-size:14px; line-height:1.5; color:rgba(255,255,255,.75); }
.mcp-passos { margin:0; padding-left:20px; display:flex; flex-direction:column; gap:10px; font-size:14px; line-height:1.5; color:rgba(255,255,255,.9); }
.mcp-passos b { color:#fff; }
.mcp-passos i { color:var(--ace-purple-100); font-style:normal; }
.mcp-url { display:flex; align-items:center; gap:8px; margin-top:8px; padding:6px 6px 6px 12px; border-radius:8px; border:1px solid var(--os-line); background:rgba(255,255,255,.04); }
.mcp-url code { flex:1; min-width:0; font-size:13px; color:#fff; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mcp-url button { flex:none; font:inherit; font-size:12px; font-weight:700; color:#fff; background:var(--ace-purple); border:0; border-radius:6px; padding:6px 12px; cursor:pointer; }
.mcp-url button:hover { background:var(--ace-purple-400); }
.mcp-nota { margin:16px 0 0; font-size:12px; color:var(--os-muted); }
.ask-chip + .mcp-chip { margin-top:-12px; } /* colado no "Faça uma pergunta" (o gap da coluna é 24px) */
/* Tela baixa (notebook ~700px de altura): a coluna da esquerda não cabe inteira — compacta. */
@media (max-height: 820px) {
  .leftcol { gap:14px; }
  .hint p { display:none; }
  .ask-chip + .mcp-chip { margin-top:-6px; }
  .mcp-chip { padding:8px 12px; }
  .leftcol .mcp-chip span:not(.mcp-tag) { display:none; }
}
