/* MEGA TRACKER — identidade própria (violeta). Claro, alto contraste; lateral no computador, barra superior + abas no celular. */
:root {
  --bg:#F7F7FC; --surface:#FFFFFF; --ink:#1F2937; --ink-2:#5B6472; --line:#E3E1F0;
  --primary:#6D28D9; --primary-dark:#5B21B6; --primary-soft:#EDE9FE; --primary-ink:#4C1D95; --on-primary:#FFFFFF;
  --ok:#15803D; --ok-soft:#DCFCE7; --warn:#B45309; --warn-soft:#FEF3C7; --err:#B91C1C; --err-soft:#FEE2E2; --info:#6D28D9; --info-soft:#EDE9FE;
  --focus:#6D28D9;
  --font-display:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif; --font-body:"Inter","Segoe UI",system-ui,sans-serif; --raio:14px;
}
* { box-sizing:border-box } html,body { height:100% } body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--font-body); font-size:16px; line-height:1.45; -webkit-font-smoothing:antialiased }
button,input,select,textarea { font:inherit; color:inherit } h1,h2,h3 { font-family:var(--font-display); margin:0; line-height:1.15; letter-spacing:-.012em; color:var(--ink) }
h1 { font-size:1.45rem; font-weight:750; margin:0 0 .3em } h2 { font-size:1.15rem; margin:1.1em 0 .4em } h3 { font-size:1rem; margin:.8em 0 .3em } p { margin:0 0 .7em } a { color:var(--primary) }
:focus-visible { outline:3px solid var(--focus); outline-offset:2px; border-radius:6px } .mini { font-size:.84rem; color:var(--ink-2) } .sub { color:var(--ink-2); margin:0 0 1em }
.app { position:fixed; inset:0; display:flex } .side { display:none; flex:0 0 244px; background:var(--primary); color:#fff; flex-direction:column; padding:14px 10px; gap:4px; overflow-y:auto }
.brand { display:flex; align-items:center; gap:10px; padding:4px 6px 14px; border-bottom:1px solid rgba(255,255,255,.22); margin-bottom:8px }
.logo { width:38px; height:38px; border-radius:11px; background:#fff; color:var(--primary); font-family:var(--font-display); font-weight:800; display:flex; align-items:center; justify-content:center; flex:0 0 38px }
.brand b { display:block; font-family:var(--font-display); line-height:1.1; color:inherit } .brand small { display:block; font-size:.72rem; opacity:.85 }
.snav h4 { margin:12px 10px 4px; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:#fff; opacity:.75 }
.snav a { display:flex; align-items:center; gap:10px; color:#EDE9FE; padding:8px 10px; border-radius:10px; font-weight:600; font-size:.93rem; text-decoration:none }
.snav a:hover { background:rgba(255,255,255,.12); color:#fff } .snav a.ativo { background:#fff; color:var(--primary-ink) }
.sfoot { margin-top:auto; padding-top:10px; border-top:1px solid rgba(255,255,255,.22); font-size:.85rem } .sfoot button { background:transparent; border:1px solid rgba(255,255,255,.55); color:#fff; border-radius:9px; padding:6px 10px; margin-top:6px; cursor:pointer }
.main { flex:1; display:flex; flex-direction:column; min-width:0 } .top { display:flex; align-items:center; gap:10px; padding:10px 14px; background:var(--surface); border-bottom:1px solid var(--line) }
.top .t { font-family:var(--font-display); font-weight:700; flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis } .top select { max-width:46vw }
.view { flex:1; overflow:auto; padding:16px 14px 90px; max-width:1280px; width:100%; margin:0 auto }
.tabsb { position:fixed; left:0; right:0; bottom:0; display:flex; background:var(--surface); border-top:1px solid var(--line); z-index:5; overflow-x:auto }
.tabsb a { flex:1 0 64px; text-align:center; padding:8px 4px; font-size:.7rem; color:var(--ink-2); text-decoration:none; font-weight:600 } .tabsb a.ativo { color:var(--primary-ink); background:var(--primary-soft) }
@media (min-width:900px) { .side { display:flex } .tabsb { display:none } .view { padding-bottom:30px } }
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--raio); padding:14px; margin-bottom:12px } .grid { display:grid; gap:10px; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)) }
.kpi { background:var(--surface); border:1px solid var(--line); border-radius:var(--raio); padding:12px } .kpi small { display:block; color:var(--ink-2); font-size:.76rem; text-transform:uppercase; letter-spacing:.04em } .kpi b { font-family:var(--font-display); font-size:1.5rem; display:block; color:var(--primary-ink) } .kpi .n { font-size:.78rem; color:var(--ink-2) }
.tabs { display:flex; gap:6px; flex-wrap:wrap; margin:0 0 12px } .tabs button { border:1px solid var(--line); background:var(--surface); border-radius:999px; padding:6px 14px; cursor:pointer; font-weight:600 } .tabs button.ativo { background:var(--primary); color:#fff; border-color:var(--primary) }
.btn { border:1px solid var(--line); background:var(--surface); border-radius:10px; padding:8px 14px; cursor:pointer; font-weight:600 } .btn:hover { border-color:var(--primary) } .btn.pri { background:var(--primary); color:#fff; border-color:var(--primary) } .btn.pri:hover { background:var(--primary-dark) } .btn.perigo { color:var(--err); border-color:var(--err) } .btn.peq { padding:4px 10px; font-size:.85rem } .btn:disabled { opacity:.5; cursor:not-allowed }
.barra { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:0 0 12px } .barra input,.barra select { padding:7px 10px; border:1px solid var(--line); border-radius:9px; background:var(--surface) }
label { display:block; font-size:.85rem; font-weight:600; margin:10px 0 3px } input,select,textarea { width:100%; padding:9px 11px; border:1px solid #CFCBE6; border-radius:10px; background:var(--surface) } textarea { min-height:80px }
.tbl { width:100%; border-collapse:collapse; font-size:.88rem } .tbl th,.tbl td { padding:7px 8px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top } .tbl th { font-size:.74rem; text-transform:uppercase; color:var(--primary-ink); letter-spacing:.04em; position:sticky; top:0; background:var(--primary-soft) }
.scroll { overflow-x:auto } .tbl td.num,.tbl th.num { text-align:right; font-variant-numeric:tabular-nums }
.tag { display:inline-block; padding:2px 9px; border-radius:999px; font-size:.74rem; font-weight:700; background:var(--info-soft); color:var(--primary-ink); white-space:nowrap } .tag.ok { background:var(--ok-soft); color:var(--ok) } .tag.aviso { background:var(--warn-soft); color:var(--warn) } .tag.erro { background:var(--err-soft); color:var(--err) } .tag.cinza { background:#ECEBF3; color:var(--ink-2) }
.aviso-box { border-left:4px solid var(--warn); background:var(--warn-soft); color:#78350F; padding:10px 12px; border-radius:8px; margin:0 0 12px; font-size:.9rem } .aviso-box.ok { border-color:var(--ok); background:var(--ok-soft); color:#14532D } .aviso-box.erro { border-color:var(--err); background:var(--err-soft); color:#7F1D1D } .aviso-box.info { border-color:var(--primary); background:var(--primary-soft); color:var(--primary-ink) }
.vazio { text-align:center; color:var(--ink-2); padding:26px 10px; border:1px dashed #CFCBE6; border-radius:var(--raio); background:var(--surface) } .vazio b { display:block; color:var(--ink) }
.modal { position:fixed; inset:0; background:rgba(31,41,55,.55); display:flex; align-items:flex-end; justify-content:center; z-index:20 } .modal>div { background:var(--surface); width:100%; max-width:720px; max-height:92vh; overflow:auto; border-radius:18px 18px 0 0; padding:18px }
@media (min-width:700px) { .modal { align-items:center } .modal>div { border-radius:18px } }
.kanban { display:flex; gap:10px; overflow-x:auto; padding-bottom:8px } .col { flex:0 0 250px; background:var(--surface); border:1px solid var(--line); border-radius:var(--raio); padding:8px } .col h4 { margin:0 0 6px; font-size:.85rem; color:var(--primary-ink) } .cardn { border:1px solid var(--line); border-radius:10px; padding:8px; margin-bottom:6px; font-size:.84rem; background:var(--bg) }
.bars { display:flex; align-items:flex-end; gap:3px; height:110px } .bars i { flex:1; background:var(--primary); border-radius:3px 3px 0 0; min-height:2px } .chat { display:flex; flex-direction:column; gap:8px } .msg { padding:9px 12px; border-radius:12px; max-width:92% } .msg.eu { background:var(--primary-soft); align-self:flex-end } .msg.bot { background:var(--surface); border:1px solid var(--line) }
code { background:var(--primary-soft); color:var(--primary-ink); padding:1px 5px; border-radius:5px; font-size:.85em; word-break:break-all } .linha { display:flex; gap:8px; align-items:center; flex-wrap:wrap }
/* abertura: entrar / criar conta / esqueci */
.entrada { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px 14px; background:linear-gradient(160deg,#F7F7FC 0%,#EDE9FE 100%) }
.entrada .caixa { width:100%; max-width:430px } .entrada .marca { display:flex; align-items:center; gap:12px; justify-content:center; margin-bottom:18px } .entrada .marca .logo { background:var(--primary); color:#fff; width:46px; height:46px; flex-basis:46px; font-size:1.1rem }
.entrada .marca b { font-family:var(--font-display); font-size:1.5rem; color:var(--primary-ink) } .entrada .card { padding:20px; box-shadow:0 8px 28px rgba(109,40,217,.10) }
.entrada .abas { display:flex; background:var(--primary-soft); border-radius:12px; padding:4px; margin-bottom:14px } .entrada .abas button { flex:1; border:0; background:transparent; padding:9px 4px; border-radius:9px; font-weight:700; cursor:pointer; color:var(--primary-ink) } .entrada .abas button.ativo { background:var(--primary); color:#fff }
.senha { position:relative } .senha button { position:absolute; right:6px; top:50%; transform:translateY(-50%); border:0; background:transparent; color:var(--primary); font-weight:700; cursor:pointer; padding:6px 8px } .senha input { padding-right:76px }
.regras { list-style:none; margin:6px 0 0; padding:0; font-size:.82rem; color:var(--ink-2) } .regras li::before { content:"○ "; color:#9CA3AF } .regras li.ok { color:var(--ok) } .regras li.ok::before { content:"● "; color:var(--ok) }
.link-fraco { background:none; border:0; color:var(--primary); cursor:pointer; padding:4px 0; font-weight:600; text-decoration:underline }
