/* AnyLabs sobre o template Corona (BootstrapDash) — tema único claro. O Corona é escuro por padrão: os overrides abaixo o convertem. */
:root {
  --bg: #f3f5f9; --surface: #ffffff; --surface2: #eef2f7; --input: #ffffff; --line: #e2e7ef;
  --text: #1c2333; --muted: #5a6478; --soft: #3c4559;
  --primary: #0066a8; --success: #007a37; --info: #6a3fca; --warning: #855500; --danger: #c01f28;
  --code-bg: #f6f8fb; --code-fg: #1c2333; --term-bg: #f2faf5; --term-fg: #0d5b32;
  --shadow: 0 8px 24px rgba(28,35,51,.10);
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  color-scheme: light;
}
body { font-family: "Rubik", system-ui, -apple-system, "Segoe UI", sans-serif; background: var(--bg); color: var(--text); }
[hidden] { display: none !important; }
.muted { color: var(--muted); } .small { font-size: .86rem; } .ok { color: var(--success); } .warn { color: var(--warning); } .bad, .err { color: var(--danger); }
code { font-family: var(--mono); font-size: .86em; color: var(--primary); background: var(--surface2); padding: .1em .35em; border-radius: 4px; }
h1 { font-size: 1.45rem; font-weight: 500; margin: 0 0 1rem; }
h2 { font-size: 1.15rem; font-weight: 500; margin: 1.6rem 0 .8rem; }
.card h3 { font-size: 1.05rem; font-weight: 500; margin: 0 0 .9rem; color: var(--text); }
h4 { font-size: .95rem; font-weight: 500; margin: 1rem 0 .5rem; }

/* ---------- Conversão do Corona (escuro) para claro ---------- */
:root .content-wrapper, :root .footer, :root .main-panel, :root .page-body-wrapper { background: var(--bg); }
:root .sidebar, :root .sidebar .sidebar-brand-wrapper, :root .navbar, :root .navbar .navbar-brand-wrapper,
:root .navbar .navbar-menu-wrapper, :root .card, :root .dropdown-menu { background: var(--surface); color: var(--text); }
:root .sidebar { border-right: 1px solid var(--line); }
:root .navbar { border-bottom: 1px solid var(--line); }
:root .card { border: 1px solid var(--line); box-shadow: 0 1px 2px rgba(28,35,51,.04); }
:root .sidebar .nav .nav-item .nav-link, :root .sidebar .nav .nav-item .menu-title { color: var(--soft); }
:root .sidebar .nav .nav-item.active > .nav-link, :root .sidebar .nav:not(.sub-menu) > .nav-item:hover:not(.nav-category):not(.account-dropdown) > .nav-link { background: var(--surface2); }
:root .sidebar .nav .nav-item.active > .nav-link .menu-title, :root .sidebar .nav .nav-item.active > .nav-link i { color: var(--text); }
:root .sidebar .nav .nav-item .menu-icon { background: var(--surface2); }
:root .sidebar .nav .nav-item.profile .profile-desc .profile-name h5, :root .navbar .navbar-profile-name, :root .navbar .nav-link, :root .navbar .navbar-toggler { color: var(--text); }
:root .form-control, :root .navbar .navbar-menu-wrapper .search input { background: var(--input); border-color: var(--line); color: var(--text); }
:root .form-control:focus { background: var(--input); color: var(--text); }
:root .table, :root .table td { color: var(--text); border-color: var(--line); }
:root .table > :not(:last-child) > :last-child > * { border-bottom-color: var(--line); }
:root .dropdown-menu { border-color: var(--line); box-shadow: var(--shadow); }
:root .preview-list .preview-item .preview-thumbnail .preview-icon.bg-dark { background: var(--surface2) !important; }
:root .dropdown-item:hover { background: var(--surface2); }
:root .card .card-title, :root h1, :root h2, :root h3, :root h5, :root h6 { color: var(--text); }
:root .text-muted { color: var(--muted) !important; }
:root .btn-inverse-primary { background: rgba(0,144,231,.10); }
:root .btn-outline-secondary { color: var(--soft); border-color: var(--line); }
:root .btn-outline-secondary:hover { background: var(--surface2); color: var(--text); }
:root .progress { background: var(--surface2); }

/* ---------- Shell ---------- */
.content-wrapper { min-height: calc(100vh - 70px - 60px); }
.avatar { display: inline-grid; place-items: center; width: 35px; height: 35px; background: linear-gradient(135deg, var(--primary), var(--info)); color: #fff; font-size: .8rem; font-weight: 500; }
.navbar-profile .avatar { margin-right: .4rem; }
.sidebar-brand svg, .navbar-brand svg, .brand-auth svg { color: var(--text); }
.navbar .dropdown-menu.show { display: block; position: absolute; right: 0; left: auto; top: 100%; }
.fab { position: fixed; right: 1rem; bottom: 1rem; z-index: 1030; box-shadow: var(--shadow); }
body.chat-open .fab { display: none; }

/* ---------- Componentes ---------- */
.card { margin-bottom: 1.25rem; }
.card:not(.stat):not(.skel-card) { padding: 1.5rem 1.5625rem; }
a.card { display: block; color: var(--text); text-decoration: none; transition: transform .15s, box-shadow .15s; }
a.card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.card.stat { margin: 0; } .card.stat h3 { font-size: 1.6rem; font-weight: 500; }
.grid { display: grid; gap: 1.25rem; } .grid > .card { margin: 0; }
.grid.two { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); margin-bottom: 1.25rem; }
.grid.stats { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-bottom: 1.25rem; }
.grid.cards { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.btn { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; }
.btn .mdi { font-size: 1.05em; line-height: 1; }
.actions { display: flex; gap: .5rem; flex-wrap: wrap; margin: .9rem 0; }
.row-inline, form.card.row, .card.row { display: flex; gap: .6rem; align-items: flex-end; flex-wrap: wrap; margin-left: 0; margin-right: 0; }
.card.row > *, form.card.row > * { width: auto; flex: 0 1 auto; }
.card.row > input, .card.row > select, .card.row label { flex: 1 1 180px; margin: 0; }
.row.actions-row, .card .row:not(.g-0) { --bs-gutter-x: 0; }
input:not([type=checkbox]):not([type=radio]):not([type=file]):not(.form-control), select, textarea {
  font: inherit; color: var(--text); background: var(--input); border: 1px solid var(--line); border-radius: 2px; padding: .55rem .75rem; width: 100%; font-size: .875rem; }
input[type=file] { color: var(--muted); font-size: .85rem; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--primary); }
label { display: block; font-size: .85rem; color: var(--muted); margin-bottom: .8rem; }
label > input, label > select, label > textarea { margin-top: .3rem; }
fieldset { border: 1px solid var(--line); border-radius: 4px; margin: 0 0 1rem; padding: .6rem 1rem; } legend { color: var(--muted); padding: 0 .3rem; font-size: .9rem; float: none; width: auto; }
.crumb { color: var(--muted); font-size: .85rem; margin-bottom: .3rem; }
.tag { display: inline-block; font-size: .7rem; font-weight: 500; padding: .2rem .55rem; border-radius: 4px; text-transform: uppercase; letter-spacing: .04em; border: 1px solid currentColor; }
.t-theory { color: var(--primary); } .t-lab { color: var(--success); } .t-tshoot { color: var(--warning); } .t-quiz { color: var(--info); } .t-demo { color: var(--danger); }
.badge.live { background: var(--surface2); color: var(--muted); border: 1px solid var(--line); } .badge.live.on { background: rgba(252,66,74,.15); color: var(--danger); border-color: var(--danger); }
.empty { padding: 2.5rem; text-align: center; color: var(--muted); border: 1px dashed var(--line); border-radius: 4px; background: var(--surface); }
.tabs { display: flex; gap: .2rem; flex-wrap: wrap; border-bottom: 1px solid var(--line); margin-bottom: 1.25rem; }
.tabs button, .tabs a { background: none; border: 0; color: var(--muted); padding: .65rem 1rem; font: inherit; font-size: .9rem; cursor: pointer; border-bottom: 2px solid transparent; text-decoration: none; }
.tabs button:hover, .tabs a:hover { color: var(--text); }
.tabs .on { color: var(--primary); border-bottom-color: var(--primary); font-weight: 500; }
.tbl { font-size: .875rem; margin-bottom: 1rem; } .tbl td, .tbl th { vertical-align: top; }
.scroll-x { overflow-x: auto; }
.matrix td { text-align: center; } .matrix td:first-child { text-align: left; }
.code-big { font-size: 1rem; letter-spacing: .12em; }
pre.code, pre.term { position: relative; background: var(--code-bg); border: 1px solid var(--line); border-radius: 4px; padding: .9rem 1rem; overflow-x: auto; font-family: var(--mono); font-size: .82rem; line-height: 1.55; margin: .6rem 0; color: var(--code-fg); }
pre.code code { background: none; padding: 0; color: inherit; white-space: pre; }
pre.term { background: var(--term-bg); color: var(--term-fg); border-color: #cfe9da; white-space: pre; }
.copy { position: absolute; top: .45rem; right: .45rem; background: #ffffff; color: var(--muted); border: 1px solid var(--line); border-radius: 3px; font-size: .7rem; padding: .15rem .5rem; cursor: pointer; }
.fb { border-radius: 4px; padding: .75rem 1rem; margin: .9rem 0; background: var(--surface2); border-left: 3px solid var(--primary); }
.fb.ok { border-left-color: var(--success); } .fb.bad { border-left-color: var(--danger); }
.progress-md { height: 8px; }
.ring { --p: 0; width: 120px; height: 120px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 1rem; background: conic-gradient(var(--c, var(--primary)) calc(var(--p) * 1%), var(--surface2) 0); position: relative; flex-shrink: 0; }
.ring::before { content: ""; position: absolute; inset: 10px; border-radius: 50%; background: var(--surface); }
.ring b { position: relative; font-size: 1.5rem; font-weight: 500; } .ring.ok { --c: var(--success); } .ring.bad { --c: var(--warning); }
.center { text-align: center; } .center .actions { justify-content: center; }
.chk { display: flex; gap: .5rem; align-items: center; color: var(--text); margin: .35rem 0; } .chk input { width: auto; }
.checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .2rem 1rem; margin-bottom: 1rem; }
#toasts { position: fixed; top: 80px; right: 1rem; z-index: 2000; display: flex; flex-direction: column; gap: .5rem; max-width: 380px; }
.al-toast { display: block; opacity: 1; background: var(--surface); color: var(--text); border: 1px solid var(--line); border-left: 3px solid var(--primary); padding: .75rem 1rem; border-radius: 4px; box-shadow: var(--shadow); transition: opacity .4s, transform .4s; }
.al-toast.error { border-left-color: var(--danger); } .al-toast.ok { border-left-color: var(--success); } .al-toast.out { opacity: 0; transform: translateY(-6px); }
.pager { display: flex; gap: .6rem; align-items: center; margin: 1rem 0; color: var(--muted); font-size: .88rem; }
.search-bar { display: flex; gap: .6rem; margin-bottom: 1.25rem; } .search-bar select { max-width: 280px; }

/* Skeleton */
.skel { height: 14px; border-radius: 3px; margin: .65rem 0; background: linear-gradient(90deg, var(--surface) 25%, var(--surface2) 37%, var(--surface) 63%); background-size: 400% 100%; animation: sh 1.3s ease infinite; }
.skel-wrap { background: var(--surface); padding: 1.2rem 1.5rem; border-radius: 4px; }
.skel-card { min-height: 120px; padding: 1.5rem; } .boot { padding: 3rem; max-width: 600px; margin: auto; }
@keyframes sh { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
@media (prefers-reduced-motion: reduce) { .skel { animation: none; } * { transition: none !important; } }

/* Agenda */
.day-head { margin-bottom: 1rem; }
.timeline { display: flex; flex-direction: column; gap: .6rem; }
.slot { display: grid; grid-template-columns: 120px 1fr; gap: 1rem; background: var(--surface); border-radius: 4px; padding: .8rem 1.2rem; border: 1px solid transparent; }
:root .slot { border-color: var(--line); }
.slot time { color: var(--muted); font-family: var(--mono); font-size: .82rem; padding-top: .4rem; }
.slot.pause { background: transparent; border: 1px dashed var(--line); color: var(--muted); padding: .45rem 1.2rem; }
.slot.pause .mdi { color: var(--warning); }
.items { display: flex; flex-direction: column; gap: .2rem; }
.item { display: grid; grid-template-columns: 82px 1fr auto; gap: .7rem; align-items: center; padding: .4rem .55rem; border-radius: 4px; color: var(--text); text-decoration: none; }
a.item:hover { background: var(--surface2); color: var(--text); }
.item .min { color: var(--muted); font-size: .8rem; }

/* Módulos e labs */
.mod .num { font-family: var(--mono); color: var(--primary); font-weight: 500; font-size: .85rem; }
.mod h3 { margin: .35rem 0 .6rem; font-size: 1rem; }
.meta { display: flex; gap: .7rem; flex-wrap: wrap; font-size: .8rem; color: var(--muted); }
.row-link { display: block; padding: .55rem .2rem; border: 0; border-bottom: 1px solid var(--line); color: var(--text); background: none; width: 100%; text-align: left; font: inherit; font-size: .9rem; cursor: pointer; text-decoration: none; }
.row-link:hover { color: var(--primary); }
.deck { margin-bottom: .8rem; } .deck .row-inline { align-items: center; }
.strip { display: flex; gap: .5rem; overflow-x: auto; padding: .5rem 0; } .strip img { border-radius: 3px; border: 1px solid var(--line); height: 140px; width: auto; }
.concept-link { border-left: 3px solid var(--info); }
.goal { border-left: 3px solid var(--success); }
.progress-line { display: flex; gap: 1rem; align-items: center; font-size: .88rem; color: var(--muted); margin-bottom: .5rem; }
.steps { list-style: none; padding: 0; margin: 1rem 0; }
.step { background: var(--surface); border-radius: 4px; margin-bottom: .6rem; overflow: hidden; scroll-margin-top: 90px; border: 1px solid transparent; }
:root .step { border-color: var(--line); }
.step.done { border-color: rgba(0,210,91,.35); }
.step-h { display: flex; gap: .9rem; align-items: center; width: 100%; background: none; border: 0; color: var(--text); font: inherit; font-weight: 500; padding: .9rem 1.2rem; cursor: pointer; text-align: left; }
.step-h .n { width: 30px; height: 30px; border-radius: 7px; display: grid; place-items: center; background: rgba(0,144,231,.11); color: var(--primary); font-size: .85rem; flex-shrink: 0; }
.step.done .n { background: rgba(0,210,91,.15); color: var(--success); } .step-h .chev { margin-left: auto; color: var(--muted); }
.step-b { padding: 0 1.4rem 1.1rem 3.9rem; color: var(--soft); }
.step-b b { color: var(--text); font-weight: 500; }
.why { background: var(--surface2); padding: .7rem .9rem; border-radius: 4px; }
.verify { border-left: 3px solid var(--success); padding-left: .8rem; }
.pit { background: rgba(255,171,0,.08); border: 1px solid rgba(255,171,0,.3); border-radius: 4px; padding: .55rem 1rem; margin: .7rem 0; }
.pit ul { margin: .3rem 0 0; padding-left: 1.2rem; }
.drop { display: grid; place-items: center; border: 2px dashed var(--line); border-radius: 4px; padding: 2rem; cursor: pointer; color: var(--muted); margin: .9rem 0; text-align: center; }
.drop .mdi { font-size: 2rem; display: block; color: var(--primary); }
.drop.over, .drop:hover { border-color: var(--primary); color: var(--primary); }
.result { display: flex; gap: 1.2rem; align-items: center; margin: 1rem 0; } .result .ring { margin: 0; width: 96px; height: 96px; }
.checks-res { list-style: none; padding: 0; margin: .5rem 0 1rem; }
.checks-res li { display: flex; gap: .75rem; padding: .55rem .3rem; border-bottom: 1px solid var(--line); }
.checks-res li > .mdi { font-size: 1.15rem; line-height: 1.3; }
.checks-res li.ok > .mdi { color: var(--success); } .checks-res li.bad > .mdi { color: var(--danger); } .checks-res li.warn > .mdi { color: var(--warning); }
.checks-res b { font-weight: 500; } .checks-res small { display: block; color: var(--muted); }
.hit p { margin: .3rem 0 0; color: var(--muted); } .hit .row-inline { justify-content: space-between; }

/* Quiz e TSHOOT */
.quiz { max-width: 860px; } .qhead { display: flex; justify-content: space-between; font-size: .85rem; color: var(--muted); }
.q { font-size: 1.15rem; line-height: 1.5; margin: .6rem 0; }
.opts { display: flex; flex-direction: column; gap: .5rem; margin: 1rem 0; }
.opt { position: relative; text-align: left; background: var(--surface2); border: 1px solid var(--line); color: var(--text); border-radius: 4px; padding: .8rem 1rem; font: inherit; font-size: .92rem; cursor: pointer; overflow: hidden; }
.opt b { color: var(--primary); margin-right: .45rem; font-weight: 500; } .opt:hover:not(:disabled) { border-color: var(--primary); }
.opt.sel { border-color: var(--info); } .opt.right { border-color: var(--success); background: rgba(0,210,91,.09); } .opt.wrong { border-color: var(--danger); background: rgba(252,66,74,.09); }
.opt:disabled { cursor: default; opacity: 1; }
.pbar { position: absolute; inset: 0 auto 0 0; background: rgba(0,144,231,.14); z-index: 0; } .opt em { float: right; font-style: normal; color: var(--muted); position: relative; } .opt > b { position: relative; }
.symptom { border-left: 3px solid var(--warning); }
.trail-step { color: var(--success); font-size: .88rem; margin: .25rem 0; }
.done { border-color: rgba(0,210,91,.45); }

/* Conceitos */
.history { list-style: none; padding: 0; border-left: 2px solid var(--line); margin-left: .6rem; }
.history li { display: grid; grid-template-columns: 110px 1fr; gap: 1rem; padding: 0 0 1.4rem 1.3rem; position: relative; }
.history li::before { content: ""; position: absolute; left: -7px; top: .45rem; width: 12px; height: 12px; border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 4px rgba(0,144,231,.18); }
.history time { font-family: var(--mono); color: var(--primary); font-weight: 500; } .history p { margin: .25rem 0 0; color: var(--soft); }
.sp3 { display: grid; grid-template-columns: 1fr 1.4fr; gap: 1.25rem; margin: 1rem 0 1.25rem; align-items: start; }
.sp3 > div { background: var(--surface); border-radius: 4px; padding: 1.2rem; }
.eng { background: var(--surface2); border-radius: 4px; padding: .55rem .8rem; text-align: center; } .eng small { display: block; color: var(--warning); font-size: .72rem; }
.eng.big { background: rgba(0,144,231,.12); color: var(--primary); font-weight: 500; padding: 1rem; } .arrow { text-align: center; color: var(--muted); }
.planes { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: .8rem; }
.plane { border-radius: 4px; padding: .8rem; font-size: .85rem; color: var(--muted); } .plane b { display: block; color: var(--text); font-weight: 500; }
.plane.dp { background: rgba(0,144,231,.10); border: 1px solid rgba(0,144,231,.3); } .plane.mp { background: rgba(143,95,232,.10); border: 1px solid rgba(143,95,232,.3); }
.flow-wrap { display: grid; grid-template-columns: 330px 1fr; gap: 1.25rem; align-items: start; }
.flow { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .35rem; }
.fstep { width: 100%; text-align: left; background: var(--surface); border: 1px solid transparent; border-left: 4px solid var(--primary); color: var(--text); border-radius: 4px; padding: .5rem .85rem; font: inherit; font-size: .88rem; cursor: pointer; }
:root .fstep { border-color: var(--line); border-left-color: var(--primary); }
.fstep small { display: block; color: var(--muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; }
.fstep.on { background: var(--surface2); box-shadow: inset 0 0 0 1px var(--primary); }
.fstep.ph-sessão { border-left-color: var(--warning); } .fstep.ph-slowpath { border-left-color: var(--info); } .fstep.ph-inspeção { border-left-color: var(--danger); } .fstep.ph-egresso { border-left-color: var(--success); }
.branch { font-size: .78rem; color: var(--warning); padding: .3rem .6rem .3rem 1rem; border-left: 2px dashed var(--warning); margin: .2rem 0 .2rem .8rem; }
.flow-detail { position: sticky; top: 90px; }
.kc { display: grid; grid-template-columns: repeat(7, minmax(185px, 1fr)); gap: .6rem; overflow-x: auto; padding-bottom: .5rem; margin-bottom: 1.25rem; }
.kc-stage { background: var(--surface); border-radius: 4px; padding: .8rem; display: flex; flex-direction: column; gap: .55rem; min-width: 185px; }
:root .kc-stage { border: 1px solid var(--line); }
.kc-h { display: flex; gap: .45rem; align-items: center; font-size: .9rem; } .kc-h b { font-weight: 500; }
.kc-n { width: 22px; height: 22px; border-radius: 50%; background: var(--danger); color: #fff; display: grid; place-items: center; font-size: .72rem; font-weight: 500; flex-shrink: 0; }
.kc-i { color: var(--danger); font-size: 1.1rem; }
.kc-att { font-size: .8rem; color: var(--danger); background: rgba(252,66,74,.08); border-radius: 4px; padding: .45rem .55rem; margin: 0; }
.kc-ctl { display: flex; flex-direction: column; gap: .35rem; }
.ctl { display: block; background: rgba(0,210,91,.07); border: 1px solid rgba(0,210,91,.25); border-radius: 4px; padding: .45rem .55rem; color: var(--text); font-size: .82rem; text-decoration: none; }
.ctl b { font-weight: 500; } .ctl .mdi { color: var(--success); }
.ctl small { display: block; color: var(--muted); font-size: .75rem; line-height: 1.35; } .ctl:hover { border-color: var(--success); color: var(--text); }
.tp td { font-size: .84rem; }

/* Aula ao vivo */
.live-top { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; } .live-top h1 { margin: 0; }
.stage { background: #e9edf4; border-radius: 4px; aspect-ratio: 16 / 9; display: grid; place-items: center; overflow: hidden; margin: 1rem 0 .7rem; border: 1px solid var(--line); }
.stage img { width: 100%; height: 100%; object-fit: contain; } .stage .empty { border: 0; background: transparent; }
.stage:fullscreen { border-radius: 0; border: 0; }
.live-bar { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; } .live-bar #sn { flex: 1; color: var(--muted); font-size: .88rem; }
.poll { margin-top: 1rem; border-left: 3px solid var(--info); }
.ctl-grid { display: grid; grid-template-columns: 1fr 360px; gap: 1.25rem; align-items: start; }
.thumbs { display: flex; gap: .4rem; overflow-x: auto; padding: .6rem 0; }
.thumbs img { height: 70px; width: auto; border-radius: 3px; border: 2px solid transparent; cursor: pointer; opacity: .65; } .thumbs img.on { border-color: var(--primary); opacity: 1; }
.qlist { max-height: 260px; overflow-y: auto; margin: .5rem 0; font-size: .86rem; }
.hand { border-bottom: 1px solid var(--line); padding: .45rem 0; } .hand p { margin: .2rem 0; color: var(--text); }

/* Chat do mentor */
.chat { position: fixed; top: 0; right: 0; bottom: 0; width: min(480px, 100vw); background: var(--surface); border-left: 1px solid var(--line); z-index: 1040; display: flex; flex-direction: column; box-shadow: -10px 0 30px rgba(28,35,51,.12); color: var(--text); }
.chat header { display: flex; justify-content: space-between; align-items: center; padding: .9rem 1.1rem; border-bottom: 1px solid var(--line); }
.chat header strong { font-weight: 500; } .chat header strong .mdi { color: var(--success); }
.chat header small { display: block; color: var(--muted); font-size: .78rem; }
.icon-btn { background: none; border: 0; color: var(--muted); font-size: 1.3rem; cursor: pointer; }
.msgs { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: .75rem; overscroll-behavior: contain; }
.msg { max-width: 92%; } .msg .body { padding: .65rem .9rem; border-radius: 6px; font-size: .9rem; overflow-wrap: anywhere; }
.msg.user { align-self: flex-end; } .msg.user .body { background: var(--primary); color: #fff; }
.msg.assistant .body { background: var(--surface2); border: 1px solid var(--line); }
.msg.sys { color: var(--muted); font-size: .85rem; text-align: center; align-self: center; }
.msg .body p { margin: .3rem 0; } .msg .body ul, .msg .body ol { margin: .3rem 0; padding-left: 1.2rem; }
.refs { font-size: .76rem; color: var(--muted); padding: .35rem .4rem; } .refs a { color: var(--primary); }
.sugg { display: flex; gap: .4rem; flex-wrap: wrap; padding: 0 1rem .5rem; }
.chip { background: var(--surface2); border: 1px solid var(--line); color: var(--text); border-radius: 999px; padding: .3rem .75rem; font-size: .8rem; cursor: pointer; }
.chip:hover { border-color: var(--primary); }
.ask { display: flex; gap: .5rem; padding: .85rem 1rem; border-top: 1px solid var(--line); } .ask textarea { resize: none; }
.typing i { display: inline-block; width: 6px; height: 6px; margin: 0 2px; border-radius: 50%; background: var(--muted); animation: tp 1s infinite; }
.typing i:nth-child(2) { animation-delay: .15s; } .typing i:nth-child(3) { animation-delay: .3s; }
@keyframes tp { 0%, 80%, 100% { opacity: .2; } 40% { opacity: 1; } }

/* Celular */
@media (max-width: 991px) {
  .flow-wrap, .sp3, .ctl-grid { grid-template-columns: 1fr; } .flow-detail { position: static; }
  .history li { grid-template-columns: 1fr; gap: .2rem; }
  .step-b { padding: 0 1rem 1rem; }
  .search-bar { flex-direction: column; } .search-bar select { max-width: none; }
}
@media (max-width: 600px) {
  .slot { grid-template-columns: 1fr; gap: .3rem; } .item { grid-template-columns: 72px 1fr; } .item .min { grid-column: 2; }
  h1 { font-size: 1.3rem; } .content-wrapper { padding: 1.25rem .9rem; }
}

/* Ajustes de integração com o Corona */
.card:not(.stat):not(.skel-card) { display: block; }
.card.row-inline { display: flex; flex-direction: row; align-items: flex-end; flex-wrap: wrap; gap: .75rem; }
.row-inline { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.row-inline > input, .row-inline > select, .row-inline > label { flex: 1 1 180px; width: auto; margin: 0; }
.row-inline > .btn, .row-inline > .badge, .row-inline > span { flex: 0 0 auto; }
:root select:not(.form-control), :root input:not([type=checkbox]):not([type=radio]):not([type=file]):not(.form-control), :root textarea { background-color: var(--input) !important; color: var(--text) !important; border-color: var(--line) !important; }
:root .navbar { box-shadow: none !important; }
#mentorTop { background: var(--success); border-color: var(--success); color: #fff !important; border-radius: 4px; padding: .5rem .95rem; margin: auto .75rem auto 0; height: auto; line-height: 1.2; display: inline-flex; align-items: center; gap: .35rem; }
#mentorTop:hover { filter: brightness(1.08); }
:root .navbar .navbar-menu-wrapper { box-shadow: none !important; -webkit-box-shadow: none !important; }

/* Contraste AA nos componentes do Corona (texto branco sobre cor ≥ 4.5:1) */
.btn-primary, .btn-primary:focus { background-color: var(--primary); border-color: var(--primary); color: #fff; }
.btn-primary:hover { background-color: #005f9e; border-color: #005f9e; color: #fff; }
.btn-success, #mentorTop { background-color: var(--success) !important; border-color: var(--success) !important; color: #fff !important; }
.btn-inverse-primary { color: var(--primary); background-color: rgba(0,116,194,.09); border: 1px solid rgba(0,116,194,.18); }
.btn-inverse-primary:hover { background-color: var(--primary); color: #fff; }
.text-success { color: var(--success) !important; } .text-danger { color: var(--danger) !important; } .text-warning { color: var(--warning) !important; } .text-primary { color: var(--primary) !important; }
a { color: var(--primary); }
.sidebar .nav .nav-item.active > .nav-link:before { background: var(--primary); }

/* Correções apontadas pela auditoria de contraste (WCAG AA) */
.btn.btn-inverse-primary { color: var(--primary) !important; background-color: rgba(0,102,168,.08) !important; border: 1px solid rgba(0,102,168,.22) !important; }
.btn.btn-inverse-primary:hover { background-color: var(--primary) !important; color: #fff !important; }
.btn-primary:hover { background-color: #00508a; border-color: #00508a; }
.table thead th, .table th { color: var(--muted) !important; }
.footer a, .sign-up a, .text-muted a { color: var(--primary) !important; }
.navbar .dropdown-menu .preview-subject, .dropdown-menu .dropdown-item, .navbar-dropdown h6 { color: var(--text) !important; }
.eng small { color: var(--warning); }


/* ================= Login ================= */
.auth-split { display: flex; min-height: 100vh; background: #fff; }
/* Painel do formulário: marca, cartão e destaques sobre um fundo claro com textura */
.auth-panel { flex: 1; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 3rem 2.5rem 4rem; overflow: hidden;
  background:
    radial-gradient(60% 50% at 100% 0%, rgba(0,144,231,.13), transparent 70%),
    radial-gradient(50% 45% at 0% 100%, rgba(122,79,214,.10), transparent 70%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Cpath d='M22 6 38 22 22 38 6 22z' fill='none' stroke='%230066a8' stroke-opacity='.06' stroke-width='1.2'/%3E%3C/svg%3E"),
    #f7f9fc; }
.auth-box { position: relative; width: 100%; max-width: 420px; }
.brand-auth { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.8rem; }
.brand-auth svg { height: 52px; width: 52px; color: var(--text); flex-shrink: 0; }
.brand-auth strong { display: block; font-size: 2rem; font-weight: 700; letter-spacing: -.02em; line-height: 1; color: var(--text);
  }
.brand-auth span { display: block; margin-top: .3rem; font-size: .88rem; color: var(--muted); }
.auth-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 2rem 2rem 1.6rem; box-shadow: 0 24px 48px -20px rgba(16,24,40,.22), 0 2px 6px rgba(16,24,40,.04); }
.auth-card h1 { font-size: 1.45rem; font-weight: 500; margin: 0 0 .3rem; }
.auth-card .lead-sub { color: var(--muted); margin: 0 0 1.5rem; font-size: .92rem; }
.auth-card .form-group { margin-bottom: 1.05rem; }
.auth-card label { color: var(--soft); font-size: .84rem; font-weight: 500; margin-bottom: .35rem; }
.auth-card .form-control { height: 46px; border-radius: 10px; font-size: .95rem; background: #fbfcfe !important; }
.auth-card .form-control:focus { border-color: var(--primary) !important; box-shadow: 0 0 0 4px rgba(0,102,168,.10); background: #fff !important; }
.auth-card .enter-btn { height: 48px; border-radius: 10px; font-size: 1rem; font-weight: 500; margin-top: .5rem; background: linear-gradient(90deg, #0066a8, #0873ba) !important; background-color: #0066a8 !important; border: 0 !important; box-shadow: 0 10px 20px -8px rgba(0,102,168,.55); transition: transform .15s, box-shadow .15s; }
.auth-card .enter-btn:hover { transform: translateY(-1px); box-shadow: 0 14px 24px -8px rgba(0,102,168,.6); }
.auth-card .sign-up { text-align: center; margin: 1.2rem 0 0; }
.auth-features { list-style: none; padding: 0; margin: 1.6rem 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.auth-features li { display: flex; flex-direction: column; gap: .35rem; padding: .7rem .75rem; border-radius: 12px; background: rgba(255,255,255,.7); border: 1px solid var(--line); font-size: .74rem; color: var(--muted); line-height: 1.35; }
.auth-features .mdi { font-size: 1.15rem; color: var(--primary); }
.auth-features li:nth-child(2) .mdi { color: var(--info); } .auth-features li:nth-child(3) .mdi { color: var(--danger); }
.auth-features b { display: block; color: var(--text); font-weight: 500; font-size: .8rem; }
.auth-foot { position: absolute; bottom: 1.2rem; left: 0; right: 0; text-align: center; font-size: .75rem; color: var(--muted); }
@media (max-width: 991px) {
  .auth-panel { padding: 2rem 1.1rem 4rem; }
  .brand-auth strong { font-size: 1.6rem; } .brand-auth svg { height: 42px; width: 42px; }
  .auth-card { padding: 1.5rem 1.25rem 1.3rem; }
  .auth-features { grid-template-columns: 1fr; }
  .auth-features li { flex-direction: row; align-items: center; gap: .6rem; }
}

/* ================= Painel ancorado (sem "ilhas" flutuando) ================= */
:root { --bg: #f4f6fa; --line: #e1e6ee; }
.page-body-wrapper, .main-panel, .content-wrapper { background: var(--bg) !important; }
/* linha superior contínua: marca da sidebar + navbar com a mesma borda inferior */
.sidebar .sidebar-brand-wrapper { background: #fff !important; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); height: 70px; }
.navbar { background: #fff !important; border-bottom: 1px solid var(--line) !important; }
.navbar .navbar-menu-wrapper, .navbar .navbar-brand-wrapper { background: #fff !important; }
.sidebar { background: #fff !important; border-right: 1px solid var(--line) !important; }
/* perfil como bloco com contorno */
.sidebar .nav .nav-item.profile { margin: 1rem .9rem .5rem; padding: 0 !important; }
.sidebar .nav .nav-item.profile .profile-desc { background: var(--surface2); border: 1px solid var(--line); border-radius: 10px; padding: .75rem .85rem !important; }
.sidebar .nav .nav-item.nav-category .nav-link { font-size: .8rem !important; text-transform: none !important; letter-spacing: 0; color: var(--muted) !important; padding-top: 1.1rem !important; }
/* itens de menu em largura total, com barra de destaque no ativo (sem pílulas soltas) */
.sidebar .nav .nav-item.menu-items { padding: 0 !important; margin: 0 !important; }
.sidebar .nav .nav-item.menu-items > .nav-link { border-radius: 0 !important; margin: 0 !important; padding: .62rem 1.35rem !important; border-left: 3px solid transparent; height: auto !important; }
.sidebar .nav .nav-item .menu-icon { background: transparent !important; width: 22px !important; height: 22px !important; margin-right: .75rem !important; }
.sidebar .nav .nav-item .menu-icon i { color: var(--muted) !important; font-size: 1.15rem !important; }
.sidebar .nav .nav-item .menu-title { color: var(--soft) !important; font-size: .9rem !important; }
.sidebar .nav:not(.sub-menu) > .nav-item.menu-items:hover > .nav-link { background: var(--surface2) !important; }
.sidebar .nav .nav-item.menu-items.active > .nav-link { background: rgba(0,102,168,.07) !important; border-left-color: var(--primary); }
.sidebar .nav .nav-item.menu-items.active > .nav-link .menu-title { color: var(--primary) !important; font-weight: 500; }
.sidebar .nav .nav-item.menu-items.active > .nav-link .menu-icon i { color: var(--primary) !important; }
.sidebar .nav .nav-item.active > .nav-link:before { display: none !important; }
/* cards com contorno e sombra leve: pertencem à página */
.card, .slot, .step, .kc-stage, .sp3 > div, .fstep, .empty, .skel-wrap { border: 1px solid var(--line) !important; border-radius: 10px !important; box-shadow: 0 1px 2px rgba(16,24,40,.04); }
.fstep { border-left-width: 4px !important; }
.slot.pause { box-shadow: none; border-style: dashed !important; }
.card.stat h3 { font-size: 1.55rem; }
.card.stat h3:not(:only-child), .card.stat .col-9 h3 { overflow-wrap: anywhere; }
.footer { border-top: 1px solid var(--line); background: var(--bg) !important; }
.card.stat h3.stat-text { font-size: 1.1rem !important; line-height: 1.35; padding-top: .3rem; }
.sidebar .nav .nav-item.profile .profile-desc .profile-name span { color: var(--muted) !important; }
.sidebar .nav .nav-item.profile .profile-desc .profile-name h5 { color: var(--text) !important; }
