/* Sentinela Prisma. The original SVG eye, chart/bolt and blink remain intact. */
:root, body[data-mercado="demo"] {
  --bg:#101216; --bg-card:#1a1d23; --bg-elevated:#15181d; --border:#30343d;
  --text:#f0f1f5; --text-dim:#a7aebb; --accent:#b49bf5; --accent-strong:#cfbcff;
  --accent-soft:rgba(180,155,245,.10); --long:#77d9a4; --short:#fa9298; --danger:#fa9298;
  --radius:14px;
}
body[data-mercado="real"] {
  --bg:#101715; --bg-card:#192522; --bg-elevated:#14201d; --border:#2d403a;
  --text:#eef6f3; --text-dim:#a6bcb4; --accent:#72dcc4; --accent-strong:#a7f3e0;
  --accent-soft:rgba(114,220,196,.09); --long:#77d9a4; --short:#fa9298; --danger:#fa9298;
}
body { font-family:'Segoe UI',system-ui,sans-serif; font-size:14px; background:var(--bg); }
[hidden] { display:none !important; }
button,input,select { font:inherit; }
button,a,input,select,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
button:disabled { opacity:.48; cursor:not-allowed; }
.topbar, body[data-mercado="real"] .topbar { background:var(--bg); padding:18px max(28px,calc((100vw - 1360px)/2)); gap:24px; position:relative; }
.topbar-logo { width:50px; height:50px; }
.topbar-title,.login-title { color:var(--accent); font-size:23px; letter-spacing:.065em; }
.topbar-subtitle { font-size:10px; letter-spacing:.14em; margin-top:3px; }
.topbar-badges { gap:14px; }
.topbar-badges #account-balance-badge,.topbar-badges #account-pnl-badge { display:none; }
.version-pill { background:var(--accent-soft); color:var(--text-dim); border:1px solid var(--border); font-weight:500; font-size:10px; margin-left:6px; }
.account-switch { display:flex; padding:4px; border:1px solid var(--border); border-radius:10px; gap:3px; background:var(--bg-elevated); }
.account-switch a { text-decoration:none; color:var(--text-dim); padding:8px 31px; border-radius:7px; font-size:13px; font-weight:600; }
.account-switch a[aria-current] { color:#101716; background:var(--accent); }
.tabs, body[data-mercado="real"] .tabs { padding:0 max(28px,calc((100vw - 1360px)/2)); gap:30px; background:var(--bg); }
.tab-button { padding:14px 2px; color:var(--text-dim); font-weight:500; font-size:13px; }
.tab-button.active { color:var(--accent); border-bottom-color:var(--accent); }
main { max-width:1416px; padding:30px 28px 34px; margin:0 auto; }
.panel-header { margin-bottom:23px; gap:20px; }
h1 { font-size:26px; font-weight:650; letter-spacing:-.03em; display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.section-eyebrow { font-size:9px; letter-spacing:.17em; margin-bottom:6px; color:var(--text-dim); }
.account-tag { display:inline-flex; align-items:center; border:1px solid var(--border); color:var(--accent); background:var(--accent-soft); border-radius:7px; padding:5px 9px; font:500 10px 'Segoe UI',sans-serif; letter-spacing:.025em; white-space:nowrap; }
.panel-header-actions { gap:9px; }
.btn { border-radius:8px; min-height:39px; padding:9px 15px; background:transparent; color:var(--text); border:1px solid var(--border); font-weight:600; font-size:12px; box-shadow:none; }
.btn:hover { border-color:var(--accent); background:var(--accent-soft); }
.btn-primary { background:var(--accent); border-color:var(--accent); color:#11171a; }
.btn-primary:hover { background:var(--accent-strong); color:#11171a; }
.btn-danger-outline { color:var(--danger); border-color:var(--border); }
#delete-all-bots { font-size:11px; opacity:.75; }
#stop-start-all-bots { color:var(--text-dim); font-size:11px; }
#stop-start-all-bots.btn-primary { color:#11171a; }
#refresh-countdown { font:11px 'Segoe UI',sans-serif; border:0; background:transparent; padding:5px; }
.prisma-overview { display:grid; grid-template-columns:1fr 1.45fr; gap:16px; margin-bottom:16px; }
.balance-card,.performance-card { padding:22px 25px; background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); min-width:0; }
.balance-label { color:var(--text-dim); display:flex; align-items:center; gap:10px; font-size:13px; }
.wallet-icon { font-size:23px; color:var(--accent); line-height:1; }
.balance-value { display:flex; align-items:baseline; gap:9px; margin:14px 0 14px; font-variant-numeric:tabular-nums; }
.balance-value strong { font-size:35px; font-weight:600; line-height:1.2; letter-spacing:-.035em; }
.balance-value>span { font-size:17px; color:var(--text-dim); }
.balance-meta { display:flex; gap:8px; align-items:center; font-size:11px; color:var(--text-dim); flex-wrap:wrap; }
.balance-meta .account-tag { margin-left:auto; font-size:9px; }
.connection-dot { width:6px; height:6px; border-radius:50%; background:var(--text-dim); }
.connection-dot.connected { background:var(--long); }
.performance-card { padding:19px 24px 14px; }
.performance-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:13px; }
.chart-period,.chart-caption { color:var(--text-dim); font-size:10px; }
.chart-period { border:1px solid var(--border); border-radius:5px; padding:4px 7px; }
.overview-chart { height:84px; display:flex; gap:12px; margin-top:10px; }
.overview-chart svg { width:100%; height:100%; min-width:0; }
.chart-grid { stroke:var(--border); stroke-width:1; opacity:.8; fill:none; }
.chart-scale { display:flex; flex-direction:column; justify-content:space-between; padding:10px 0 12px; font-size:9px; color:var(--text-dim); min-width:43px; }
.chart-caption { margin-top:4px; text-align:right; font-size:9px; }
.chart-empty { color:var(--text-dim); font-size:12px; margin:auto; text-align:center; }
.account-overview { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:12px; }
.account-tile { background:var(--bg-card); padding:15px 20px; gap:5px; border-radius:11px; }
.account-tile-primary { background:var(--bg-card); border-color:var(--border); }
.account-tile>span { font-size:11px; color:var(--text-dim); }
.account-tile>strong { font-family:inherit; font-variant-numeric:tabular-nums; font-weight:600; font-size:24px; letter-spacing:-.03em; }
.account-tile small { font-size:9px; color:var(--text-dim); }
.account-detail { background:transparent; border:1px solid var(--border); border-radius:9px; padding:10px 14px; margin:0 0 23px; font-size:11px; color:var(--text-dim); }
.account-detail>summary { font-size:11px; font-weight:400; color:var(--text-dim); }
.account-detail>summary span { font-size:10px; }
.fleet-heading { margin:22px 0 17px; align-items:center; display:flex; flex-wrap:wrap; gap:15px; }
.fleet-title { display:flex; align-items:center; gap:17px; }
.fleet-title h2 { margin:0; font-size:19px; font-weight:600; }
#fleet-status { font-size:11px; color:var(--text-dim); }
.fleet-controls { display:flex; align-items:center; gap:12px; margin-left:auto; }
.robot-filters,.view-switch { display:flex; gap:3px; background:var(--bg-elevated); padding:3px; border:1px solid var(--border); border-radius:8px; }
.robot-filters button,.view-switch button { border:0; background:transparent; color:var(--text-dim); font-size:11px; padding:8px 14px; border-radius:5px; cursor:pointer; }
.robot-filters button.active,.view-switch button.active { background:var(--accent); color:#11171a; }
.view-switch button { padding:5px 10px; font-size:17px; }
.bots-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:18px; }
.prisma-bot { border:1px solid var(--border); border-radius:13px; padding:20px 23px; background:var(--bg-card); min-width:0; }
.prisma-bot-head { display:flex; align-items:center; gap:12px; }
.robot-icon { color:var(--accent); width:31px; height:31px; flex-shrink:0; }
.robot-icon svg { width:100%; height:100%; }
.robot-identity { min-width:0; }
.robot-identity h3 { font-size:15px; font-weight:650; margin:0 0 2px; overflow-wrap:anywhere; }
.robot-identity>span { color:var(--text-dim); font-size:11px; }
.bot-fav-toggle { margin-left:auto; flex-shrink:0; border:0; background:transparent; color:var(--text-dim); font-size:18px; line-height:1; padding:6px; border-radius:6px; cursor:pointer; opacity:.6; }
.bot-fav-toggle:hover { opacity:1; background:var(--accent-soft); }
.bot-fav-toggle.is-fav { color:#f0b429; opacity:1; }
.bot-menu { margin-left:0; position:relative; flex-shrink:0; }
.bot-menu>summary { color:var(--text-dim); cursor:pointer; list-style:none; padding:8px; line-height:1; letter-spacing:2px; }
.bot-menu>summary::-webkit-details-marker { display:none; }
.bot-menu>div { position:absolute; right:0; z-index:10; background:var(--bg-elevated); border:1px solid var(--border); border-radius:8px; padding:5px; width:190px; box-shadow:0 12px 24px #0006; }
.bot-menu button { display:block; width:100%; border:0; background:transparent; color:var(--text); text-align:left; padding:10px; font-size:12px; border-radius:5px; cursor:pointer; }
.bot-menu button:hover { background:var(--accent-soft); }
.bot-menu .delete-action { color:var(--danger); }
.robot-state { display:flex; align-items:center; justify-content:space-between; margin:16px 0 18px; gap:8px; }
.state-pill { display:inline-flex; gap:6px; align-items:center; border:1px solid var(--border); padding:3px 8px; border-radius:20px; font-size:10px; color:var(--text-dim); }
.state-pill i { width:5px; height:5px; border-radius:50%; background:currentColor; }
.state-pill.is-running { color:var(--long); border-color:#77d9a435; background:#77d9a408; }
.robot-heartbeat { color:var(--text-dim); font-size:10px; }
.robot-performance { display:grid; grid-template-columns:auto 1fr auto; gap:24px; align-items:center; }
.metric-label { font-size:10px; color:var(--text-dim); display:block; margin-bottom:4px; }
.robot-result { font-size:25px; font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums; letter-spacing:-.035em; }
.robot-result small { font-size:10px; font-weight:400; color:var(--text-dim); letter-spacing:0; }
.robot-spark { width:100%; height:38px; min-width:0; color:var(--accent); opacity:.8; }
.robot-slots { border-left:1px solid var(--border); padding-left:21px; }
.robot-slots>strong { font-size:17px; font-weight:500; }
.robot-slots strong>span { color:var(--text-dim); font-size:13px; }
.robot-strategy { font-size:11px; color:var(--text-dim); margin:14px 0 17px; }
.robot-timeframe { display:inline-block; margin-left:8px; padding:2px 8px; border-radius:999px; border:1px solid var(--border); background:var(--accent-soft); color:var(--accent); font-size:10px; font-weight:600; letter-spacing:.02em; white-space:nowrap; vertical-align:middle; }
.prisma-bot-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.prisma-bot-actions .btn { min-height:36px; padding:8px; font-size:11px; }
.prisma-stop { background:var(--accent-soft); }
.prisma-bot-details { border-top:1px solid var(--border); padding-top:17px; margin-top:17px; }
.detail-title { display:flex; justify-content:space-between; align-items:center; font-size:12px; gap:10px; margin-bottom:10px; }
.detail-title span { color:var(--accent); font-size:10px; }
.prisma-bot-details .hint { font-size:11px; }
.prisma-bot-details .nm-feed { background:var(--bg-elevated); max-height:170px; height:auto; margin-top:12px; border-radius:8px; font-size:11px; }
.prisma-bot-details .nm-idle { font-size:11px; }
.list-view { grid-template-columns:1fr; }
.list-view .prisma-bot { display:grid; grid-template-columns:1fr 1.1fr 220px; align-items:center; gap:10px 24px; }
.list-view .prisma-bot-head { grid-column:1; grid-row:1; }
.list-view .robot-state { grid-column:1; grid-row:2; margin:0; }
.list-view .robot-performance { grid-column:2; grid-row:1 / 3; }
.list-view .robot-strategy { grid-column:3; grid-row:1; margin:0; }
.list-view .prisma-bot-actions { grid-column:3; grid-row:2; }
.list-view .prisma-bot-details { grid-column:1 / -1; }
.card { background:var(--bg-card); border-color:var(--border); border-radius:14px; padding:23px; }
.card h2 { font-size:18px; font-weight:600; }
.hint { color:var(--text-dim); }
input,select { border:1px solid var(--border); background:var(--bg-elevated); color:var(--text); border-radius:7px; padding:10px; min-width:0; }
.modal { background:var(--bg-card); border:1px solid var(--border); border-radius:16px; box-shadow:0 24px 80px #0008; }
.modal h2 { color:var(--text); font-size:22px; }
.modal-backdrop { background:#06090ddd; backdrop-filter:blur(4px); }
.site-footer { max-width:1360px; margin:0 auto; padding:20px 0 28px; border-top:1px solid var(--border); font-size:10px; color:var(--text-dim); gap:15px; }
.site-footer-warning { color:var(--text-dim); font-size:10px; }
.empty-state { border:1px dashed var(--border); background:var(--bg-card); border-radius:14px; padding:45px; color:var(--text-dim); text-align:center; }
.orphan-alert { border:1px solid var(--border); border-left:1px solid var(--border); background:var(--bg-card); border-radius:12px; }
.orphan-alert-title,.orphan-alert strong { color:var(--danger); }
.login-page { min-height:100vh; background:radial-gradient(ellipse at 50% 30%,#b49bf510,transparent 65%),var(--bg); }
.login-card.card { max-width:410px; padding:35px; border-radius:20px; }
.login-brand { justify-content:flex-start; }
.login-logo { width:52px; height:52px; }
.login-intro { font-size:18px; margin:23px 0 28px; }
.login-intro span { color:var(--text-dim); font-size:12px; }
.login-title { font-size:22px; }
@media(min-width:1700px) { main { padding-top:34px; } .prisma-bot { padding:23px 26px; } }
@media(max-width:1000px) {
  .topbar { padding:16px 22px; } .tabs { padding:0 22px; } main { padding:22px; }
  .panel-header { align-items:flex-start; } h1 { font-size:23px; gap:10px; }
  .panel-header-actions { flex-wrap:wrap; justify-content:flex-end; }
  #delete-all-bots { display:none; }
  .prisma-bot { padding:17px; } .robot-performance { gap:12px; } .robot-result { font-size:22px; } .robot-slots { padding-left:12px; }
  .list-view .prisma-bot { grid-template-columns:1fr 1fr; } .list-view .prisma-bot-actions { grid-column:2; grid-row:3; } .list-view .robot-strategy { grid-column:1; grid-row:3; }
  .site-footer { margin:0 22px; }
}
@media(max-width:700px) {
  .topbar,body[data-mercado="real"] .topbar { padding:13px 16px; gap:12px; flex-wrap:nowrap; }
  .topbar-brand { gap:8px; } .topbar-logo { width:39px; height:39px; } .topbar-title { font-size:17px; } .version-pill { display:none; } .topbar-subtitle { font-size:8px; letter-spacing:.09em; }
  .topbar-badges { gap:7px; } .account-switch a { padding:7px 13px; font-size:11px; } #logout-btn { padding:6px 8px; min-height:32px; font-size:10px; }
  .tabs,body[data-mercado="real"] .tabs { padding:0 16px; gap:25px; }
  main { padding:22px 16px; } h1 { font-size:22px; } h1 .account-tag { font-size:8px; padding:4px 6px; }
  .panel-header { display:block; margin-bottom:18px; } .panel-header-actions { margin-top:16px; display:flex; justify-content:space-between; }
  .prisma-overview { grid-template-columns:1fr; gap:12px; } .balance-card { padding:20px; } .balance-value strong { font-size:33px; } .performance-card { padding:16px 19px 12px; }
  .account-overview { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .account-tile { padding:14px; } .account-tile strong { font-size:21px; } .account-tile small { font-size:9px; }
  .account-detail>summary { display:block; } .account-detail>summary span { display:block; margin-top:5px; }
  .fleet-heading { margin-top:23px; gap:13px; } .fleet-title { width:100%; justify-content:space-between; } .fleet-controls { margin:0; width:100%; justify-content:space-between; }
  .robot-filters button { padding:8px 11px; font-size:10px; } .view-switch button { padding:4px 9px; }
  .bots-grid,.list-view { grid-template-columns:1fr; gap:13px; }
  .prisma-bot,.list-view .prisma-bot { display:block; padding:20px; }
  .robot-state,.list-view .robot-state { margin:15px 0; }
  .robot-strategy,.list-view .robot-strategy { margin:13px 0 16px; }
  .robot-performance { gap:17px; } .robot-result { font-size:24px; }
  .site-footer { margin:0 16px; display:flex; flex-direction:column; align-items:flex-start; gap:7px; font-size:10px; }
  .form-grid { grid-template-columns:1fr; } .modal { width:calc(100vw - 24px); max-height:90vh; padding:21px; }
  .reports-breakdown-grid { grid-template-columns:1fr; } .card { padding:18px; }
  .login-card.card { padding:27px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }

.tabs { top: 0; }

/* Configurações Prisma */
.prisma-page-heading { grid-column:1/-1; display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:2px; }
.prisma-page-heading h1 { margin:0; }
.prisma-page-heading>p { color:var(--text-dim); font-size:12px; max-width:510px; margin:0 0 3px; text-align:right; }
#tab-settings.active { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
#tab-settings>.card { margin:0; position:relative; overflow:hidden; padding:25px; }
#tab-settings>.card::after { content:""; position:absolute; inset:0 auto auto 0; width:100%; height:2px; background:linear-gradient(90deg,var(--accent),transparent 55%); opacity:.42; }
#tab-settings>.card:has(#binance-status),#tab-settings>.card:has(#risk-profile-table),#tab-settings>.card:has(#screening-criteria) { grid-column:1/-1; }
#tab-settings>.card h2 { display:flex; align-items:center; gap:10px; margin:0 0 8px; }
#tab-settings>.card h2::before { display:grid; place-items:center; width:30px; height:30px; flex:0 0 30px; border:1px solid var(--border); border-radius:8px; color:var(--accent); background:var(--accent-soft); font-size:14px; }
#tab-settings>.card:has(#binance-status) h2::before { content:"⛓"; }
#tab-settings>.card:has(#operating-capital-summary) h2::before { content:"◈"; }
#tab-settings>.card:has(#max-bots-summary) h2::before { content:"▦"; }
#tab-settings>.card:has(#risk-profile-table) h2::before { content:"⌁"; }
#tab-settings>.card:has(#screening-criteria) h2::before { content:"◎"; }
#tab-settings>.card>.hint { max-width:920px; margin:0 0 18px; font-size:12px; line-height:1.65; }
#tab-settings a { color:var(--accent); text-underline-offset:3px; }
#binance-status { display:inline-flex; align-items:center; gap:8px; min-height:28px; padding:5px 10px; margin:0 0 17px; border:1px solid var(--border); border-radius:999px; background:var(--bg-elevated); color:var(--text-dim); font-size:11px; }
#binance-status::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--text-dim); }
#binance-status.ok::before { background:var(--long); box-shadow:0 0 0 4px color-mix(in srgb,var(--long) 12%,transparent); }
#binance-form { max-width:none; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px 16px; }
#binance-form .form-actions { grid-column:1/-1; }
#tab-settings .form-grid label { color:var(--text-dim); font-size:11px; font-weight:600; gap:7px; }
#tab-settings input { min-height:42px; }
#tab-settings .form-actions { align-items:center; gap:8px; }
#operating-capital-summary,#max-bots-summary { min-height:46px; display:flex; align-items:center; padding:11px 13px; margin:14px 0!important; border:1px solid var(--border); border-radius:9px; background:var(--bg-elevated); color:var(--text-dim); font-size:11px!important; }
#operating-capital-form,#max-bots-form { max-width:none!important; }
#tab-settings .stepper { display:grid; grid-template-columns:34px minmax(0,1fr) 34px; gap:7px; width:100%; }
#tab-settings .stepper input { width:100%; text-align:center; padding:8px; }
#tab-settings .stepper-btn { width:34px; height:42px; border-radius:7px; color:var(--accent); }
#risk-profile-table { grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; margin-top:16px; }
#risk-profile-table .risk-profile-row { padding:18px; border-radius:11px; background:var(--bg-elevated); min-width:0; }
#risk-profile-table .risk-profile-row h3 { color:var(--accent); font-size:16px; margin-bottom:6px; }
#risk-profile-table .risk-profile-row>p:not(.rp-error) { min-height:58px; font-size:11px; line-height:1.55; }
#risk-profile-table .stats-edit { gap:9px; margin:14px 0; }
#risk-profile-table .rp-field-label { display:block; font-size:10px; }
#risk-profile-table .rp-field-label .stepper { margin-top:5px; }
#risk-profile-table .form-actions { padding-top:11px; border-top:1px solid var(--border); }
#screening-criteria .risk-profile-row { padding:0; border:0; background:transparent; }
#screening-criteria .stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
#screening-criteria .stats span { padding:11px 13px; border:1px solid var(--border); border-radius:8px; background:var(--bg-elevated); color:var(--text-dim); }
#screening-list { min-height:37px; display:flex; gap:7px; flex-wrap:wrap; align-items:center; padding-top:2px; }
#screening-list .chip { background:var(--accent-soft); border-color:var(--border); color:var(--accent); }

/* Relatórios Prisma */
#tab-reports>.panel-header { align-items:flex-end; padding-bottom:18px; margin-bottom:16px; border-bottom:1px solid var(--border); }
.report-intro { color:var(--text-dim); font-size:12px; margin:7px 0 0; }
#tab-reports .panel-header-actions { display:flex; align-items:flex-end; }
.report-bot-label { display:flex; flex-direction:column; gap:5px; color:var(--text-dim); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; }
#report-bot-filter { min-width:190px; min-height:38px; text-transform:none; letter-spacing:0; }
#period-switcher { display:flex; flex-wrap:wrap; padding:4px; border:1px solid var(--border); border-radius:9px; background:var(--bg-elevated); }
#period-switcher button { min-height:29px; padding:6px 11px; border:0; border-radius:6px; background:transparent; color:var(--text-dim); font-size:10px; }
#period-switcher button.active { background:var(--accent); color:#111716; }
#period-custom-card { border-style:dashed; }
#tab-reports>.card { margin-bottom:16px; }
#tab-reports>.card:has(#reports-summary) { padding:17px 20px 20px; }
.report-actions { justify-content:flex-end; margin:0 0 14px; }
.report-actions #reports-refresh::before { content:"↻ "; }
.report-actions #reports-download::before { content:"↓ "; }
.reports-summary { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin:0; padding:0; }
.report-summary-tile { min-width:0; padding:14px; border:1px solid var(--border); border-radius:10px; background:var(--bg-elevated); }
.report-summary-tile>span { display:block; color:var(--text-dim); font-size:10px; }
.report-summary-tile>strong { display:block; margin-top:6px; color:var(--text); font:600 22px/1.2 'Segoe UI',sans-serif; letter-spacing:-.025em; overflow-wrap:anywhere; }
.report-summary-tile>small { display:block; margin-top:6px; color:var(--text-dim); font-size:9px; }
.report-summary-primary { background:var(--accent-soft); border-color:color-mix(in srgb,var(--accent) 38%,var(--border)); }
.report-summary-primary>span { color:var(--accent); }
#report-account-ledger { margin:14px 0 0; padding:17px; background:transparent; }
.account-ledger-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:13px; }
.account-ledger-heading>div,.report-section-title>div { display:flex; align-items:center; gap:10px; }
.account-ledger-heading h3,.report-section-title h2 { margin:0; }
.account-ledger-heading p,.report-section-title p { margin:0; color:var(--text-dim); font-size:10px; }
.ledger-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
.report-section-title { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:14px; }
.report-section-icon { display:grid; place-items:center; width:28px; height:28px; border:1px solid var(--border); border-radius:8px; background:var(--accent-soft); color:var(--accent); }
#reports-chart { min-height:205px; border:1px solid var(--border); border-radius:10px; padding:13px; background:linear-gradient(180deg,var(--accent-soft),transparent 70%); }
#reports-chart>p { min-height:175px; display:grid; place-items:center; margin:0; text-align:center; }
#reports-chart svg { height:190px; }
#reports-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
#reports-metrics .metric-tile { padding:14px; border-radius:10px; background:var(--bg-elevated); }
#reports-metrics .metric-label { font-size:10px; }
#reports-metrics .metric-value { font-family:inherit; font-size:19px; }
.reports-breakdown-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.reports-breakdown-grid .card { margin:0; padding:19px; }
.reports-breakdown-grid h2 { font-size:15px; margin:0 0 16px; }
.breakdown-row-head { gap:12px; align-items:flex-start; }
.breakdown-row-head>span { min-width:0; overflow-wrap:anywhere; }
.breakdown-bar-track { background:var(--bg-elevated); }
.table-scroll { border:1px solid var(--border); border-radius:10px; }
.trades-table th { position:sticky; top:0; z-index:1; padding:11px 12px; background:var(--bg-elevated); font-size:9px; text-transform:uppercase; letter-spacing:.06em; }
.trades-table td { padding:12px; font-size:11px; }
.trades-table tbody tr:last-child td { border-bottom:0; }
.trades-table tbody tr:hover { background:var(--accent-soft); }
.report-net-value { font-weight:700; }
.report-empty-row td { height:110px; text-align:center; color:var(--text-dim); }

@media(max-width:1000px) {
  #risk-profile-table { grid-template-columns:1fr; }
  #risk-profile-table .risk-profile-row>p:not(.rp-error) { min-height:0; }
  #risk-profile-table .stats-edit { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reports-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
  #reports-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .reports-breakdown-grid { grid-template-columns:1fr; }
}
@media(max-width:700px) {
  .prisma-page-heading { display:block; }
  .prisma-page-heading>p { text-align:left; margin-top:9px; }
  #tab-settings.active { grid-template-columns:1fr; }
  #tab-settings>.card { grid-column:1!important; padding:20px; }
  #binance-form { grid-template-columns:1fr; }
  #binance-form .form-actions { grid-column:1; }
  #tab-settings .form-actions .btn { flex:1 1 auto; }
  #risk-profile-table .stats-edit { grid-template-columns:1fr; }
  #screening-criteria .stats { grid-template-columns:1fr 1fr; }
  #tab-reports>.panel-header { display:block; }
  #tab-reports .panel-header-actions { margin-top:16px; display:grid; gap:9px; }
  #report-bot-filter { width:100%; }
  #period-switcher { display:grid; grid-template-columns:repeat(3,1fr); }
  .report-actions { display:grid; grid-template-columns:1fr 1fr; }
  .report-actions #reports-reset-today,.report-actions #reports-reset { grid-column:auto; }
  .reports-summary { grid-template-columns:1fr 1fr; }
  .report-summary-tile { padding:12px; }
  .report-summary-tile>strong { font-size:20px; }
  .ledger-summary { grid-template-columns:1fr 1fr; }
  .account-ledger-heading,.report-section-title { display:block; }
  .account-ledger-heading>p,.report-section-title>p { margin-top:8px; }
  #reports-metrics { grid-template-columns:1fr 1fr; }
  .table-scroll { overflow:visible; border:0; }
  .trades-table,.trades-table tbody,.trades-table tr,.trades-table td { display:block; width:100%; }
  .trades-table thead { display:none; }
  .trades-table tr { margin-bottom:12px; padding:10px 13px; border:1px solid var(--border); border-radius:10px; background:var(--bg-elevated); }
  .trades-table td { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; padding:7px 0; border:0; white-space:normal; text-align:right; }
  .trades-table td::before { content:attr(data-label); color:var(--text-dim); font-size:9px; text-transform:uppercase; letter-spacing:.06em; text-align:left; }
  .trades-table .report-empty-row { padding:0; }
  .trades-table .report-empty-row td { display:grid; place-items:center; text-align:center; }
  .trades-table .report-empty-row td::before { display:none; }
}

/* Carregando (27/09/2026): barra fina no topo + aviso até chegar o primeiro dado do servidor. */
.version-pill:empty { display:none; }
.page-loading { position:fixed; top:0; left:0; right:0; height:3px; z-index:9999; overflow:hidden; background:transparent; }
.page-loading i { display:block; height:100%; width:40%; background:var(--accent, #b49bf5); border-radius:0 2px 2px 0; animation:page-loading-slide 1.1s ease-in-out infinite; }
@keyframes page-loading-slide { 0% { transform:translateX(-100%); } 100% { transform:translateX(260%); } }
@media (prefers-reduced-motion: reduce) { .page-loading i { animation-duration:3s; } }

/* Olho carregando (27/09/2026): o mesmo olho da logo, usado na abertura do painel e nas ações "processando...". */
.eye-loader { width:170px; max-width:60vw; height:auto; display:block; margin:0 auto; overflow:visible; }
.el-ring, .el-ring2, .el-sweep, .el-eye, .el-c { transform-origin:100px 60px; }
.el-ring { animation:el-spin 3s linear infinite; }
.el-ring2 { animation:el-spin 5s linear infinite reverse; }
.el-sweep { animation:el-spin 2.2s linear infinite; }
.el-eye { animation:el-blink 4.4s ease-in-out infinite; }
.el-look { animation:el-look 4.4s ease-in-out infinite; }
.el-pupil { transition:filter .35s ease; filter:blur(1.6px); }
.is-focused .el-pupil { filter:blur(0); }
.el-c { transform-box:fill-box; transform-origin:center bottom; animation:el-grow 1.4s ease-in-out infinite; }
.el-c2 { animation-delay:.2s; } .el-c3 { animation-delay:.4s; } .el-c4 { animation-delay:.6s; }
@keyframes el-spin { to { transform:rotate(360deg); } }
@keyframes el-blink { 0%,86%,100% { transform:scaleY(1); } 90% { transform:scaleY(.06); } 94% { transform:scaleY(1); } }
@keyframes el-look { 0%,100% { transform:translate(0,0); } 20% { transform:translate(-8px,-1px); } 45% { transform:translate(9px,1px); } 70% { transform:translate(0,-3px); } }
@keyframes el-grow { 0%,100% { transform:scaleY(.35); } 50% { transform:scaleY(1); } }
@media (prefers-reduced-motion: reduce) { .el-ring, .el-ring2, .el-sweep, .el-eye, .el-look, .el-c { animation-duration:8s; } }
.initial-loader { display:flex; flex-direction:column; align-items:center; gap:10px; padding:28px 0 36px; transition:opacity .4s ease, transform .4s ease; }
.initial-loader p { margin:0; color:var(--text-dim, #9aa0ad); font-size:14px; min-height:1.4em; }
.initial-loader.is-leaving { opacity:0; transform:scale(.94); }
.processing-box .eye-loader { width:130px; }

/* Cores do olho seguem a conta: roxo na Demo, verde-água na Real (variáveis --accent do body[data-mercado]). */
.eye-loader [stroke="#b49bf5"] { stroke:var(--accent); } .eye-loader [fill="#b49bf5"] { fill:var(--accent); }
.eye-loader [stroke="#dacafa"] { stroke:var(--accent-strong); }
.eye-loader [fill="#f0e9ff"] { fill:var(--accent-strong); }
.eye-loader [fill="#121216"] { fill:var(--bg); }
.report-loader { grid-column:1 / -1; }

/* Faixa de bloqueio da Binance + olho vermelho de alerta (27/09/2026). */
.ban-banner { display:flex; align-items:center; gap:14px; margin:0 0 18px; padding:10px 16px; border:1px solid var(--danger); border-radius:12px; background:rgba(250,146,152,.08); }
.ban-banner .eye-loader { width:72px; flex:none; margin:0; }
.ban-banner strong { display:block; color:var(--danger); margin-bottom:2px; }
.ban-banner span { color:var(--text-dim); font-size:13.5px; line-height:1.5; }
.eye-loader.is-alert [fill="#b49bf5"], .eye-loader.is-alert [fill="#f0e9ff"] { fill:var(--danger); }
.eye-loader.is-alert [stroke="#b49bf5"], .eye-loader.is-alert [stroke="#dacafa"] { stroke:var(--danger); }
.eye-loader.is-alert .el-pupil circle { transform:scaleX(.4); transform-origin:100px 60px; }
.eye-loader.is-alert .el-ring { animation-duration:1.2s; } .eye-loader.is-alert .el-sweep { animation-duration:.9s; }
.ranking-table { width:100%; border-collapse:collapse; font-size:14px; }
.ranking-table th { text-align:left; color:var(--text-dim); font-weight:500; font-size:12px; padding:6px 8px; border-bottom:1px solid var(--border); }
.ranking-table td { padding:9px 8px; border-bottom:1px solid var(--border); }
.ranking-table tbody tr:first-child td:first-child { color:var(--accent); font-weight:600; }
@media (max-width:640px) {
  .ranking-table thead { display:none; }
  .ranking-table tr { display:grid; grid-template-columns:1fr 1fr; gap:2px 12px; padding:8px 0; border-bottom:1px solid var(--border); }
  .ranking-table td { border:0; padding:2px 0; }
  .ranking-table td::before { content:attr(data-label) ": "; color:var(--text-dim); font-size:12px; }
  .ranking-table td:nth-child(2) { grid-column:1 / -1; }
  .ranking-table td:nth-child(2)::before { content:""; }
}

.push-steps { margin:8px 0 14px; padding-left:20px; color:var(--text-dim); font-size:13.5px; line-height:1.6; }
.push-steps li { margin:4px 0; }

/* Relatório (v3.0.2): lista de operações escondida + paginada */
#reports-trades-toggle { margin: 4px 0 12px; }
.reports-pager { display:flex; align-items:center; justify-content:center; gap:14px; margin-top:12px; flex-wrap:wrap; }
.reports-pager span { color: var(--text-dim); font-size: 13px; }
.ledger-split { margin-top: 10px; }
.ledger-outside-alert { border-color: var(--danger) !important; }
.robot-warnings { margin: 6px 0 2px; }
.robot-warnings p { margin: 4px 0; font-size: 12.5px; line-height: 1.45; color: #f5c46b; }
.capital-warning { margin: 0 0 14px; padding: 10px 14px; border: 1px solid #f5c46b; border-radius: 10px; color: #f5c46b; background: rgba(245,196,107,.07); font-size: 13.5px; line-height: 1.5; }
.compare-table { width:100%; border-collapse:collapse; font-size:13.5px; }
.compare-table th { text-align:left; color:var(--text-dim); font-weight:500; font-size:12px; padding:6px 8px; border-bottom:1px solid var(--border); }
.compare-table td { padding:8px; border-bottom:1px solid var(--border); vertical-align:top; }

/* ---------- Configurações estilo app (v3.0.2, 28/09/2026) ----------
   Celular: uma lista agrupada; tocar num item abre a página dele deslizando, com "‹ Configurações" pra voltar
   (o voltar do aparelho também funciona). PC (>= 900px): duas colunas — lista à esquerda, página à direita. */
.settings-shell { position: relative; }
.settings-nav { display: flex; flex-direction: column; gap: 18px; }
.settings-group-title { margin: 0 0 6px 6px; font-size: 11.5px; letter-spacing: .09em; text-transform: uppercase; color: var(--text-dim); }
.settings-group-rows { background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; }
.settings-row { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 64px; padding: 10px 14px; background: none; border: 0; border-top: 1px solid var(--border); border-radius: 0; color: var(--text); text-align: left; cursor: pointer; font: inherit; -webkit-tap-highlight-color: transparent; transition: background .15s ease; }
.settings-row:first-child { border-top: 0; }
.settings-row:hover, .settings-row.active { background: var(--accent-soft); }
.settings-row:active { background: var(--accent-soft); }
.settings-row-icon { width: 38px; height: 38px; flex: none; display: grid; place-items: center; border-radius: 11px; background: var(--accent-soft); color: var(--accent); }
.settings-row-icon svg { width: 20px; height: 20px; }
.settings-row-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.settings-row-text strong { font-weight: 600; font-size: 15px; line-height: 1.25; }
.settings-row-text small { color: var(--text-dim); font-size: 12.5px; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.settings-row-chevron { color: var(--text-dim); font-size: 24px; line-height: 1; }
.status-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; vertical-align: 1px; background: var(--text-dim); }
.status-dot.ok { background: var(--long); } .status-dot.warn { background: #f5c46b; } .status-dot.bad { background: var(--danger); }
.settings-page-header { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; min-height: 40px; }
.settings-page-header h2 { margin: 0; font-size: 20px; line-height: 1.2; }
.settings-back { display: inline-flex; align-items: center; gap: 2px; background: none; border: 0; color: var(--accent); font: inherit; font-size: 16px; padding: 8px 6px 8px 0; cursor: pointer; white-space: nowrap; }
.settings-back span { font-size: 14.5px; }
.settings-page .card { margin: 0; }
.settings-subtitle { font-size: 13px; font-weight: 600; color: var(--text); margin: 18px 0 8px; }
.settings-help { margin-top: 16px; border-top: 1px solid var(--border); padding-top: 12px; }
.settings-help summary { cursor: pointer; color: var(--accent); font-size: 14px; }
.settings-help .push-steps { margin-top: 10px; }
@keyframes settings-slide-in { from { transform: translateX(28px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes settings-fade { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 899px) {
  .settings-shell.page-open .settings-nav { display: none; }
  #tab-settings.page-open .prisma-page-heading { display: none; }
  .settings-page:not([hidden]) { animation: settings-slide-in .28s cubic-bezier(.2,.8,.2,1); }
  .settings-shell.back-anim .settings-nav { animation: settings-fade .22s ease; }
}
@media (min-width: 900px) {
  .settings-shell { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 24px; align-items: start; }
  .settings-nav { position: sticky; top: calc(var(--head-h, 0px) + 16px); }
  .settings-back { display: none; }
  .settings-page:not([hidden]) { animation: settings-fade .18s ease; }
}
@media (prefers-reduced-motion: reduce) { .settings-page:not([hidden]), .settings-shell.back-anim .settings-nav { animation: none; } }

/* Interruptores (avisos) */
.settings-toggles { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border-top: 1px solid var(--border); font-size: 14px; cursor: pointer; }
.toggle-row:first-child { border-top: 0; }
.switch { appearance: none; -webkit-appearance: none; flex: none; width: 44px; height: 26px; border-radius: 13px; background: var(--border); position: relative; cursor: pointer; transition: background .18s ease; margin: 0; }
.switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform .18s ease; }
.switch:checked { background: var(--accent); }
.switch:checked::after { transform: translateX(18px); }
.switch:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Saúde do sistema */
.health-list { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.health-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; padding: 12px 14px; border-top: 1px solid var(--border); }
.health-row:first-child { border-top: 0; }
.health-row span { color: var(--text-dim); font-size: 13.5px; }
.health-row strong { font-weight: 500; font-size: 14px; text-align: right; }
.health-row small { display: block; color: var(--text-dim); font-size: 12px; font-weight: 400; margin-top: 2px; }
.health-meter { display: block; height: 6px; border-radius: 3px; background: var(--border); margin-top: 6px; overflow: hidden; min-width: 120px; }
.health-meter i { display: block; height: 100%; background: var(--long); border-radius: 3px; }
@media (max-width: 520px) { .health-row { flex-direction: column; gap: 4px; } .health-row strong { text-align: left; } }

/* Cores */
.theme-options { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 10px; }
.theme-swatch { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 6px; border-radius: 12px; border: 1px solid var(--border); background: var(--bg-elevated); color: var(--text); font: inherit; font-size: 12.5px; cursor: pointer; }
.theme-swatch i { width: 34px; height: 34px; border-radius: 50%; box-shadow: inset 0 0 0 6px rgba(0,0,0,.25); }
.theme-swatch[aria-pressed="true"] { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent) inset; }
.theme-swatch:disabled { opacity: .35; cursor: not-allowed; }

/* Sobre */
.about-head { display: flex; align-items: center; gap: 14px; }
.about-logo { width: 52px; height: 52px; border-radius: 14px; }
.about-head strong { display: block; font-size: 17px; }
.about-head small { color: var(--text-dim); font-size: 12.5px; }
.about-changes { margin: 6px 0 12px; padding-left: 18px; color: var(--text-dim); font-size: 13.5px; line-height: 1.55; }
.about-changes li { margin: 3px 0; }

/* ---------- Troca de conta com animação (v3.0.2) ---------- */
.switch-overlay { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; background: var(--bg); color: var(--text); }
.switch-overlay.entering { animation: switch-reveal .54s cubic-bezier(.65, 0, .35, 1) both; }
.switch-overlay.entering-reduced { animation: settings-fade .12s ease both; }
@keyframes switch-reveal { from { clip-path: circle(0px at var(--sx, 50%) var(--sy, 50%)); } to { clip-path: circle(150vmax at var(--sx, 50%) var(--sy, 50%)); } }
.switch-card { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; padding: 0 16px; }
.switch-overlay.entering .switch-card { animation: switch-card-in .34s .2s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes switch-card-in { from { opacity: 0; transform: translateY(12px) scale(.94); } to { opacity: 1; transform: none; } }
.switch-card .eye-loader { width: 150px; margin-bottom: 4px; }
.switch-card strong { font-size: 28px; font-weight: 700; letter-spacing: .02em; color: var(--accent); }
.switch-card small { color: var(--text-dim); font-size: 13.5px; }
.switch-overlay.leaving { pointer-events: none; animation: switch-leave .44s cubic-bezier(.4, 0, .2, 1) both; }
.switch-overlay.leaving .switch-card { animation: switch-card-out .28s ease both; }
@keyframes switch-leave { to { opacity: 0; } }
@keyframes switch-card-out { to { opacity: 0; transform: translateY(-10px) scale(.97); } }
@media (prefers-reduced-motion: reduce) { .switch-overlay.leaving, .switch-overlay.leaving .switch-card { animation-duration: .01s; } }
/* o painel de abas é grid: sem min-width:0 o resumo longo (nowrap) alargava a tela no celular */
.settings-shell, .settings-nav, .settings-group, .settings-group-rows, .settings-pages, .settings-page { min-width: 0; max-width: 100%; }
#tab-settings.active { grid-template-columns: minmax(0, 1fr); }
.settings-page > .card { position: relative; overflow: hidden; padding: 22px; }
.settings-page > .card::after { content: ""; position: absolute; inset: 0 auto auto 0; width: 100%; height: 2px; background: linear-gradient(90deg, var(--accent), transparent 55%); opacity: .42; }
@media (max-width: 520px) { .settings-page > .card { padding: 16px; } }
/* logo do topo desenhado na página (v3.0.2): pisca como o favicon e segue a cor da conta */
svg.topbar-logo { display: block; flex: none; }
.logo-eye { transform-origin: 256px 256px; animation: sentinela-blink 5.5s ease-in-out infinite; }
@keyframes sentinela-blink { 0%, 91%, 100% { transform: scaleY(1); } 94% { transform: scaleY(.05); } 97% { transform: scaleY(1); } }
@media (prefers-reduced-motion: reduce) { .logo-eye { animation: none; } }

/* Janelas flutuantes (28/09/2026) — só PC com mouse (classe posta pelo app.js). Pega pela barra do nome e arrasta. */
body.bots-draggable .prisma-bot { position:relative; transition:box-shadow .2s, border-color .2s; }
body.bots-draggable .prisma-bot::before { content:""; position:absolute; top:7px; left:50%; width:34px; height:4px; margin-left:-17px; border-radius:4px; background:var(--border); opacity:0; transition:opacity .2s, background .2s; }
body.bots-draggable .prisma-bot:hover { box-shadow:0 14px 34px #0005; border-color:color-mix(in srgb, var(--accent) 35%, var(--border)); }
body.bots-draggable .prisma-bot:hover::before { opacity:1; background:color-mix(in srgb, var(--accent) 60%, transparent); }
body.bots-draggable .prisma-bot-head { cursor:grab; user-select:none; }
body.bots-draggable .prisma-bot-head :is(button, summary) { cursor:pointer; }
.prisma-bot.is-floating { z-index:60; pointer-events:none; cursor:grabbing; border-color:var(--accent); box-shadow:0 30px 70px #000a, 0 0 0 1px var(--accent), 0 0 40px color-mix(in srgb, var(--accent) 22%, transparent); }
.prisma-bot.is-floating::before { opacity:1; background:var(--accent); }
.bot-drop-slot { border:2px dashed color-mix(in srgb, var(--accent) 55%, transparent); background:var(--accent-soft); border-radius:13px; min-width:0; }
body.bot-dragging, body.bot-dragging * { cursor:grabbing !important; user-select:none; }
@media (prefers-reduced-motion: reduce) { .prisma-bot.is-floating { transition:none !important; } }

/* Escolha rápida dentro da caixa de diálogo (prazo do drenar, 28/09/2026). */
.dialog-choices { display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 14px; }
.dialog-choices .btn { flex:1 1 calc(33% - 8px); min-width:88px; min-height:42px; }

/* ---------- Animações (28/09/2026) ---------- */
/* Menu •••: cresce a partir do canto do botão. */
.bot-menu[open] > div { transform-origin: top right; animation: menu-pop .17s cubic-bezier(.2,.8,.2,1); }
@keyframes menu-pop { from { opacity: 0; transform: translateY(-4px) scale(.94); } to { opacity: 1; transform: none; } }
/* Caixas de diálogo e janelas: o fundo escurece e a caixa sobe um pouco. */
.modal-backdrop:not([hidden]) { animation: backdrop-in .18s ease-out; }
.modal-backdrop:not([hidden]) > .modal { animation: modal-in .26s cubic-bezier(.2,.8,.2,1); }
@keyframes backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes modal-in { from { opacity: 0; transform: translateY(14px) scale(.97); } to { opacity: 1; transform: none; } }
/* Troca de aba (Robôs / Configurações / Relatórios). */
.tab-panel.active { animation: tab-in .26s ease-out; }
@keyframes tab-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
/* Resultado do robô mudou desde a última atualização: pisca na cor do sentido. */
.robot-result.result-bump-up { animation: result-bump-up 1.1s ease-out; }
.robot-result.result-bump-down { animation: result-bump-down 1.1s ease-out; }
@keyframes result-bump-up { 0% { text-shadow: 0 0 0 transparent; transform: scale(1); } 18% { text-shadow: 0 0 14px var(--long); transform: scale(1.07); } 100% { text-shadow: 0 0 0 transparent; transform: scale(1); } }
@keyframes result-bump-down { 0% { text-shadow: 0 0 0 transparent; transform: scale(1); } 18% { text-shadow: 0 0 14px var(--danger); transform: scale(1.07); } 100% { text-shadow: 0 0 0 transparent; transform: scale(1); } }
.robot-result { display: inline-block; transform-origin: left center; }
/* Botões respondem ao toque. */
.btn { transition: transform .12s ease, background-color .18s, border-color .18s, color .18s, box-shadow .18s; }
.btn:active:not(:disabled) { transform: scale(.97); }
@media (prefers-reduced-motion: reduce) {
  .bot-menu[open] > div, .modal-backdrop:not([hidden]), .modal-backdrop:not([hidden]) > .modal, .tab-panel.active,
  .robot-result.result-bump-up, .robot-result.result-bump-down { animation: none !important; }
  .btn:active:not(:disabled) { transform: none; }
}

/* Resultado por hora do dia (01/10/2026) */
.hour-bars { display:grid; grid-template-columns:repeat(24,minmax(0,1fr)); gap:3px; height:170px; align-items:stretch; margin:6px 0 4px; }
.hour-col { display:grid; grid-template-rows:1fr 1fr auto; cursor:pointer; min-width:0; }
.hour-half { position:relative; }
.hour-half.pos { border-bottom:1px solid var(--border); }
.hour-bar { position:absolute; left:0; right:0; border-radius:3px; }
.hour-bar.up { bottom:0; background:var(--long); }
.hour-bar.down { top:0; background:var(--danger); }
.hour-col span { font-size:9px; color:var(--text-dim); text-align:center; padding-top:3px; height:14px; }
.hour-col:hover .hour-bar { filter:brightness(1.2); }
@media (max-width:700px) { .hour-bars { gap:1px; height:140px; } }

/* Barra do ciclo aberto (01/10/2026): stop ← entrada · agora → alvo */
.cycle-bar { margin:2px 0 10px 16px; }
.cb-track { position:relative; height:8px; border-radius:6px; background:linear-gradient(90deg, color-mix(in srgb, var(--danger) 22%, transparent), var(--bg-elevated) 45%, color-mix(in srgb, var(--long) 22%, transparent)); border:1px solid var(--border); }
.cb-fill { position:absolute; top:1px; bottom:1px; border-radius:4px; opacity:.85; }
.cb-fill.gain { background:var(--long); } .cb-fill.loss { background:var(--danger); }
.cb-entry { position:absolute; top:-3px; width:2px; height:14px; margin-left:-1px; background:var(--text-dim); border-radius:1px; }
.cb-now { position:absolute; top:-4px; width:12px; height:12px; margin-left:-6px; border-radius:50%; border:2px solid var(--bg-card); box-shadow:0 0 0 1px var(--border); transition:left .6s ease; }
.cb-now.gain { background:var(--long); } .cb-now.loss { background:var(--danger); }
.cb-labels { display:flex; justify-content:space-between; gap:8px; font-size:10px; color:var(--text-dim); margin-top:4px; font-variant-numeric:tabular-nums; }
@media (prefers-reduced-motion: reduce) { .cb-now { transition:none; } }

/* Modo atualização (01/10/2026) */
.update-banner { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; max-width:1360px; margin:12px auto 0; padding:12px 18px; border:1px solid color-mix(in srgb, var(--accent) 45%, var(--border)); background:var(--accent-soft); border-radius:12px; font-size:13px; }
.update-banner[hidden] { display:none; }
.update-banner.is-ready { border-color:color-mix(in srgb, var(--long) 55%, var(--border)); background:color-mix(in srgb, var(--long) 10%, transparent); }
.update-banner strong { margin-right:6px; }
.update-box { border-top:1px solid var(--border); margin-top:16px; padding-top:14px; }
@media (max-width:700px) { .update-banner { margin:10px 16px 0; } }

/* Usuários (multiusuário, 01/10/2026) */
.users-list { display: grid; gap: 10px; margin: 12px 0 6px; }
.user-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; padding: 12px 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg-elevated); }
.user-row.disabled { opacity: .6; }
.user-row-main { display: grid; gap: 2px; min-width: 0; }
.user-row-main small { color: var(--text-dim); }
.user-row-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.user-row-actions .user-new-pass { width: 140px; min-width: 0; }
@media (max-width: 520px) { .user-row-actions { width: 100%; } .user-row-actions .user-new-pass { flex: 1 1 100%; width: auto; } }
.settings-row[hidden] { display: none; }

/* Robôs validados (01/10/2026) */
.catalog-rules { margin-bottom: 22px; }
.catalog-rule-list { margin: 8px 0 12px; padding-left: 20px; display: grid; gap: 4px; font-size: 13px; color: var(--text); }
.catalog-warning { border-left: 2px solid var(--accent); padding-left: 10px; }
.catalog-heading { font-size: 16px; font-weight: 600; margin: 22px 0 12px; display: flex; gap: 8px; align-items: baseline; }
.catalog-heading small, .catalog-count { color: var(--text-dim); font-weight: 400; font-size: 12px; }
.catalog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.catalog-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; padding: 16px; display: grid; gap: 12px; align-content: start; animation: catalog-in .32s ease both; }
.catalog-card header { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.catalog-title { display: grid; gap: 3px; min-width: 0; }
.catalog-title strong { overflow-wrap: anywhere; }
.catalog-title small { color: var(--text-dim); font-size: 11px; }
.catalog-badge { font-size: 10px; font-weight: 600; letter-spacing: .03em; padding: 4px 8px; border-radius: 999px; border: 1px solid var(--border); white-space: nowrap; }
.catalog-badge.ok { color: var(--long); border-color: color-mix(in srgb, var(--long) 45%, transparent); background: color-mix(in srgb, var(--long) 12%, transparent); }
.catalog-badge.bad { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 45%, transparent); background: color-mix(in srgb, var(--danger) 10%, transparent); }
.catalog-badge.wait { color: var(--text-dim); }
.catalog-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.catalog-stats div { background: var(--bg-elevated); border-radius: 9px; padding: 8px; display: grid; gap: 3px; min-width: 0; }
.catalog-stats small { color: var(--text-dim); font-size: 10px; }
.catalog-stats b { font-size: 14px; font-weight: 600; }
.catalog-stats b.pos { color: var(--long); }
.catalog-stats b.neg { color: var(--danger); }
.catalog-period, .catalog-extra { margin: 0; font-size: 11px; }
.catalog-context { margin: 0; font-size: 11px; }
.catalog-context-queda { color: var(--bad, #c0392b); }
.catalog-context-alta { color: var(--good, #1e8e5a); }
.catalog-checks summary { cursor: pointer; font-size: 12px; color: var(--accent); }
.catalog-checks ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 5px; font-size: 12px; }
.catalog-checks li { display: grid; grid-template-columns: 16px 1fr auto; gap: 6px; align-items: baseline; }
.catalog-checks li em { font-style: normal; color: var(--text-dim); white-space: nowrap; }
.catalog-checks li.ok > span:first-child { color: var(--long); }
.catalog-checks li.no > span:first-child { color: var(--danger); }
.catalog-clone { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; border-top: 1px solid var(--border); padding-top: 12px; }
.catalog-clone label { display: grid; gap: 4px; font-size: 11px; color: var(--text-dim); flex: 0 1 120px; }
.catalog-clone input { width: 100%; }
.catalog-clone .btn { flex: 1 1 auto; }
.catalog-empty { grid-column: 1 / -1; }
@keyframes catalog-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .catalog-card { animation: none; } }
@media (max-width: 520px) {
  .tabs, body[data-mercado="real"] .tabs { gap: 18px; padding: 0 16px; overflow-x: auto; scrollbar-width: none; }
  .tab-button { white-space: nowrap; }
  .catalog-grid { grid-template-columns: 1fr; }
  .catalog-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Sábado sagrado: recado ao abrir o site (02/10/2026) */
.sabbath-overlay { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 16px; background: color-mix(in srgb, var(--bg) 78%, transparent); backdrop-filter: blur(6px); animation: sabbath-fade .35s ease both; }
.sabbath-overlay.is-leaving { animation: sabbath-fade .26s ease reverse both; }
.sabbath-card { width: min(460px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; background: var(--bg-card); border: 1px solid var(--border); border-radius: 18px; padding: 28px 26px 24px; text-align: center; box-shadow: 0 24px 60px rgba(0, 0, 0, .35); animation: sabbath-rise .45s cubic-bezier(.2, .8, .2, 1) both; }
.sabbath-icon { width: 64px; height: 40px; color: var(--accent); margin: 0 auto 10px; display: block; }
.sabbath-card h2 { margin: 0 0 12px; font-size: 22px; font-weight: 650; letter-spacing: -.02em; color: var(--text); }
.sabbath-intro { margin: 0 0 18px; color: var(--text-dim); font-size: 14px; line-height: 1.55; }
.sabbath-verse { margin: 0 0 18px; padding: 16px 18px; border-radius: 12px; background: var(--accent-soft); border-left: 3px solid var(--accent); text-align: left; }
.sabbath-verse p { margin: 0 0 8px; font-size: 16px; line-height: 1.55; color: var(--text); font-style: italic; }
.sabbath-verse cite { display: block; text-align: right; font-style: normal; font-size: 12px; font-weight: 600; color: var(--accent); }
.sabbath-back { margin: 0 0 18px; font-size: 12px; color: var(--text-dim); }
.sabbath-close { min-width: 140px; }
@keyframes sabbath-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sabbath-rise { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .sabbath-overlay, .sabbath-overlay.is-leaving, .sabbath-card { animation: none; } }

/* Gráfico do relatório com cursor (12/10/2026) */
.rc { display:block; }
.rc-plot { position:relative; touch-action:pan-y; cursor:crosshair; border-radius:10px; }
.rc-plot svg { display:block; }
.rc-eixo { position:absolute; left:8px; font-size:10px; color:var(--text-dim); background:color-mix(in srgb,var(--bg-card) 78%,transparent); padding:1px 5px; border-radius:5px; pointer-events:none; line-height:1.4; }
.rc-eixo-max { top:4px; } .rc-eixo-min { bottom:4px; } .rc-eixo-zero { transform:translateY(-50%); }
.rc-linha { position:absolute; top:0; bottom:0; width:1px; background:var(--text-dim); opacity:.55; pointer-events:none; }
.rc-ponto { position:absolute; width:11px; height:11px; margin:-5.5px 0 0 -5.5px; border-radius:50%; background:var(--bg-card); border:2px solid var(--long); box-shadow:0 0 0 3px color-mix(in srgb,var(--long) 18%,transparent); pointer-events:none; }
.rc[data-cor="short"] .rc-ponto { border-color:var(--short); box-shadow:0 0 0 3px color-mix(in srgb,var(--short) 18%,transparent); }
.rc-dica { position:absolute; z-index:5; min-width:196px; max-width:260px; padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:var(--bg-elevated); box-shadow:0 8px 24px rgba(0,0,0,.4); font-size:12px; line-height:1.35; pointer-events:none; }
.rc-quando { color:var(--text); font-weight:600; margin-bottom:6px; text-transform:capitalize; }
.rc-linha-dica { display:flex; justify-content:space-between; gap:14px; padding:2px 0; }
.rc-linha-dica span { color:var(--text-dim); } .rc-linha-dica b { font-weight:600; text-align:right; } .rc-linha-dica em { font-style:normal; }
.rc-n { margin-top:6px; padding-top:6px; border-top:1px solid var(--border); color:var(--text-dim); font-size:10.5px; }
.rc-datas { display:flex; justify-content:space-between; margin-top:8px; font-size:12px; color:var(--text-dim); }
.rc-ajuda { margin:8px 0 0; font-size:11px; }
@media (max-width: 640px) { .rc-dica { min-width:170px; font-size:11.5px; } }

.breakdown-gap { text-align:center; color:var(--text-dim); font-size:11px; letter-spacing:.08em; padding:6px 0 10px; }
.breakdown-resumo { margin:0 0 10px; font-size:11px; }
.breakdown-toggle { margin-top:10px; }

/* ===== Painel de abertura (13/10/2026) — padrão visual do site: kicker pequeno, número grande, detalhes pequenos, gráfico em degraus ===== */
.hero { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,2.18fr); gap:16px; padding:14px 16px; margin:0 0 16px; background:var(--bg-card); border:1px solid var(--border); border-radius:16px; }
.hero-main { display:flex; flex-direction:column; gap:10px; min-width:0; }
.hero-kicker { font-size:12px; color:var(--text-dim); }
.hero-number { display:flex; flex-direction:column; gap:2px; }
#ledger-net { font-size:clamp(32px,3.7vw,42px); line-height:1.02; font-weight:600; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.hero-number span { font-family:'JetBrains Mono',ui-monospace,monospace; font-size:11px; color:var(--text-dim); }
.hero-stats { margin:0; display:flex; flex-direction:column; gap:4px; font-size:12px; }
.hero-stats>div { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.hero-stats dt { color:var(--text-dim); } .hero-stats dt small { color:var(--text-dim); opacity:.75; font-size:11px; margin-left:4px; }
.hero-stats dd { margin:0; font-variant-numeric:tabular-nums; font-weight:500; }
.hero-balance { margin-top:auto; padding-top:9px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:1px; }
.hero-balance-label { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:11px; color:var(--text-dim); }
.hero-conn { display:inline-flex; align-items:center; gap:6px; font-size:10.5px; }
.hero-balance-value { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.hero-balance-value strong { font-size:19px; font-weight:600; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.hero-balance-value em { font-style:normal; font-size:11px; color:var(--text-dim); }
.hero-info { font-size:11px; color:var(--text-dim); }
.hero-info>summary { cursor:pointer; list-style:none; display:flex; flex-wrap:wrap; gap:4px 8px; align-items:baseline; }
.hero-info>summary::-webkit-details-marker { display:none; }
.hero-info>summary #ledger-status { margin-left:auto; font-size:10px; opacity:.8; }
.hero-info:not([open])>summary #ledger-status { display:none; }
.hero-info p { margin:8px 0 0; line-height:1.45; }
.hero-chart { background:var(--bg-elevated); border:1px solid var(--border); border-radius:12px; padding:12px 16px 10px; min-width:0; display:flex; flex-direction:column; }
.hero-chart-head { display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; }
.hero-chart-head h2 { margin:0; font-size:15px; font-weight:600; }
.hero-chart-head span { font-family:'JetBrains Mono',ui-monospace,monospace; font-size:10.5px; color:var(--text-dim); }
.hero-plot { position:relative; margin-top:4px; touch-action:pan-y; min-height:158px; cursor:crosshair; }
.hero-plot svg { display:block; width:100%; }
.hero-tip { position:absolute; top:6px; z-index:4; min-width:160px; padding:8px 10px; border:1px solid var(--border); border-radius:9px; background:var(--bg-card); box-shadow:0 8px 24px rgba(0,0,0,.4); font-size:12px; line-height:1.55; pointer-events:none; }
.hero-tip-time { font-weight:600; margin-bottom:3px; }
.hero-tip-row { display:flex; justify-content:space-between; gap:14px; }
.hero-legend { display:flex; flex-wrap:wrap; gap:6px 20px; margin-top:6px; padding-top:8px; border-top:1px solid var(--border); }
.hero-legend button { all:unset; cursor:pointer; display:flex; flex-direction:column; gap:1px; padding:2px 0; }
.hero-legend button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }
.hero-legend button[aria-pressed="false"] { opacity:.38; }
.hero-legend .lg-name { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--text-dim); }
.hero-legend .lg-dot { width:9px; height:9px; border-radius:2px; display:inline-block; }
.hero-legend .lg-dot.total { background:transparent; border-top:2px dashed var(--text); height:0; width:11px; border-radius:0; }
.hero-legend .lg-val { font-size:14px; font-weight:600; padding-left:15px; font-variant-numeric:tabular-nums; }
.menu-more { position:relative; display:inline-block; }
.menu-more>summary { list-style:none; cursor:pointer; padding:0 12px; }
.menu-more>summary::-webkit-details-marker { display:none; }
.menu-more-list { position:absolute; right:0; top:calc(100% + 6px); z-index:30; min-width:170px; display:flex; flex-direction:column; gap:6px; padding:8px; background:var(--bg-card); border:1px solid var(--border); border-radius:10px; box-shadow:0 12px 30px rgba(0,0,0,.45); }
.menu-more-list .btn { width:100%; justify-content:flex-start; }
@media (max-width: 900px) { .hero { grid-template-columns:1fr; gap:16px; padding:16px; } .hero-balance { margin-top:0; } }
@media (max-width: 520px) { .hero-legend { display:grid; grid-template-columns:1fr 1fr; gap:8px 14px; } .hero-chart-head span { display:none; } #ledger-net { font-size:38px; } }

/* Carregamento do site inteiro (13/10/2026): tela cheia, site esmaecido atrás, olho no centro. Some sozinho em 25 s se algo travar. */
.boot-overlay { position:fixed; inset:0; z-index:9999; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:0;
  background:color-mix(in srgb, var(--bg) 84%, transparent); -webkit-backdrop-filter:blur(7px); backdrop-filter:blur(7px);
  animation:boot-fallback .4s ease 25s forwards; }
.boot-overlay .eye-loader { width:150px; max-width:46vw; }
.boot-overlay p { font-size:14px; letter-spacing:.02em; }
.boot-overlay.is-leaving { opacity:0; transform:none; pointer-events:none; }
@keyframes boot-fallback { to { opacity:0; visibility:hidden; pointer-events:none; } }

/* Relatório no mesmo padrão do painel de abertura (13/10/2026) */
.hero-notes { font-size:11px; }
.hero-notes:empty { display:none; }
.hero-notes .reports-truncado { margin:0 0 6px; }
.hero-toolbar { display:flex; gap:6px; align-items:center; margin-top:2px; }
details.collapse { padding:0; }
details.collapse>summary { list-style:none; cursor:pointer; padding:14px 18px; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; font-weight:600; font-size:14px; }
details.collapse>summary::-webkit-details-marker { display:none; }
details.collapse>summary::after { content:"＋"; margin-left:auto; color:var(--text-dim); font-weight:400; }
details.collapse[open]>summary::after { content:"−"; }
details.collapse>summary small { font-weight:400; color:var(--text-dim); font-size:11px; }
details.collapse>:not(summary) { margin-left:18px; margin-right:18px; }
details.collapse[open]>:last-child { margin-bottom:16px; }
.seg { display:inline-flex; gap:4px; padding:3px; border:1px solid var(--border); border-radius:10px; background:var(--bg-elevated); margin-bottom:14px; flex-wrap:wrap; }
.seg button { all:unset; cursor:pointer; padding:6px 14px; border-radius:7px; font-size:12.5px; color:var(--text-dim); }
.seg button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.seg button.active { background:var(--accent); color:#101216; font-weight:600; }
.report-hero #rh-net { font-size:clamp(32px,3.7vw,42px); line-height:1.02; font-weight:600; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.hero-tip { max-width:300px; }
.hero-tip-sub { color:var(--text-dim); }
.hero-tip-op { margin-top:6px; padding-top:6px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:1px; line-height:1.4; }
.hero-tip-op span, .hero-tip-op small { color:var(--text-dim); font-size:11px; }
.hero-tip-op b { font-weight:600; } .hero-tip-op em { font-style:normal; }

.hero-note { margin:0; font-size:12px; color:var(--text-dim); line-height:1.45; }
.catalog-hero .hero-chart { justify-content:flex-start; gap:6px; }
.catalog-hero .catalog-rule-list { margin:8px 0 6px; padding-left:18px; display:flex; flex-direction:column; gap:5px; font-size:13px; }
.catalog-hero #catalog-hero-count { font-size:clamp(40px,5vw,56px); line-height:1; font-weight:600; letter-spacing:-.03em; }

/* Gráfico do relatório com modos: Geral / Robô por robô / Personalizado (17/10/2026) */
.chart-modes { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:2px 0 4px; }
.seg-mini { margin-bottom:0; }
.seg-mini button { padding:4px 11px; font-size:12px; }
.chart-picker { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.chart-picker button { all:unset; cursor:pointer; display:inline-flex; align-items:center; gap:6px; padding:3px 10px; border:1px solid var(--border); border-radius:999px; font-size:12px; color:var(--text-dim); }
.chart-picker button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.chart-picker button i { width:8px; height:8px; border-radius:2px; background:var(--c, var(--text-dim)); opacity:.5; }
.chart-picker button[aria-pressed="true"] { color:var(--text); border-color:var(--c, var(--accent)); background:color-mix(in srgb, var(--c, var(--accent)) 14%, transparent); }
.chart-picker button[aria-pressed="true"] i { opacity:1; }
.chart-picker .pk-ctl { border-style:dashed; font-size:11.5px; }
.hero-legend button[data-static] { cursor:default; pointer-events:none; }
.hero-legend .lg-dot.solid { background:var(--accent); }

/* "Rumo à validação" no card do robô (17/10/2026) */
.robot-validation { margin:2px 0 4px; padding:8px 10px; border:1px solid var(--border); border-radius:10px; background:color-mix(in srgb, var(--bg-elevated) 70%, transparent); display:flex; flex-direction:column; gap:5px; }
.robot-validation .rv-head { display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.robot-validation .rv-head b { font-size:12px; font-weight:600; }
.robot-validation .rv-head span { font-size:10.5px; color:var(--text-dim); }
.robot-validation .rv-row { display:grid; grid-template-columns:92px 1fr auto; align-items:center; gap:8px; font-size:11.5px; color:var(--text-dim); }
.robot-validation .rv-row em { font-style:normal; color:var(--text); font-variant-numeric:tabular-nums; min-width:46px; text-align:right; }
.robot-validation .rv-track { height:5px; border-radius:3px; background:var(--border); overflow:hidden; }
.robot-validation .rv-track i { display:block; height:100%; background:var(--accent); border-radius:3px; }
.robot-validation p { margin:0; font-size:11.5px; line-height:1.4; color:var(--text-dim); }
.robot-validation.ok .rv-head b { color:var(--long, #77d9a4); }
.robot-validation.ok { border-color:color-mix(in srgb, var(--long, #77d9a4) 40%, var(--border)); }
.robot-validation.warn .rv-head b { color:#f5c46b; }
.robot-validation.bad .rv-head b { color:var(--short, #fa9298); }
.robot-validation.bad { border-color:color-mix(in srgb, var(--short, #fa9298) 40%, var(--border)); }
.list-view .robot-validation { grid-column:1 / -1; }

/* Cabeçalho: saúde do sistema + sino de avisos; marcas no gráfico; cards reduzidos (17/10/2026) */
.health-pill { all:unset; cursor:pointer; display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border:1px solid var(--border); border-radius:999px; font-size:12px; color:var(--text-dim); }
.health-pill:focus-visible, .bell-btn:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.health-pill { padding:3px 11px 3px 6px; gap:6px; }
.health-bot { width:26px; height:26px; flex:none; --hb:var(--text-dim); }
.health-pill.ok .health-bot { --hb:var(--long); }
.health-pill.warn .health-bot { --hb:#f5c46b; }
.health-pill.bad .health-bot { --hb:var(--danger); }
.health-bot .hb-mouth { display:none; }
.health-pill.ok .hb-m-ok, .health-pill.warn .hb-m-warn, .health-pill.bad .hb-m-bad, .health-pill.unknown .hb-m-warn { display:inline; }
.health-pill.warn { border-color:color-mix(in srgb, #f5c46b 50%, var(--border)); color:var(--text); }
.health-pill.bad { border-color:color-mix(in srgb, var(--danger) 55%, var(--border)); color:var(--text); }
.health-pill.ok { color:var(--text); }
@keyframes hb-blink { 0%, 92%, 100% { transform:scaleY(1); } 95% { transform:scaleY(.1); } }
@keyframes hb-alert { 0%, 100% { transform:translateX(0); } 25% { transform:translateX(-1px); } 75% { transform:translateX(1px); } }
@media (prefers-reduced-motion: no-preference) {
  .health-pill.ok .hb-eye { transform-box:fill-box; transform-origin:center; animation:hb-blink 5.5s infinite; }
  .health-pill.bad .health-bot { animation:hb-alert .5s ease-in-out 3; }
}
.bell-wrap { position:relative; display:inline-flex; }
.bell-btn { all:unset; cursor:pointer; position:relative; display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border:1px solid var(--border); border-radius:10px; color:var(--text-dim); }
.bell-btn svg { width:18px; height:18px; }
.bell-btn:hover, .bell-btn[aria-expanded="true"] { color:var(--text); background:var(--bg-elevated); }
.bell-badge { position:absolute; top:-5px; right:-5px; min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:var(--accent); color:#101216; font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center; box-sizing:border-box; }
.bell-panel { position:absolute; right:0; top:calc(100% + 8px); width:360px; max-width:92vw; max-height:70vh; overflow:auto; z-index:60; background:var(--bg-card); border:1px solid var(--border); border-radius:14px; box-shadow:0 14px 40px rgba(0,0,0,.45); }
.bell-panel[hidden] { display:none; }
.bell-head { display:flex; justify-content:space-between; align-items:baseline; padding:12px 14px 8px; font-weight:600; font-size:14px; }
.bell-head small { font-weight:400; color:var(--text-dim); font-size:11px; }
.bell-item { display:grid; grid-template-columns:10px 1fr; gap:8px; padding:9px 14px; border-top:1px solid var(--border); }
.bell-item.is-new { background:color-mix(in srgb, var(--accent) 8%, transparent); }
.bell-dot { width:8px; height:8px; border-radius:50%; margin-top:5px; background:var(--text-dim); }
.bell-dot.ok { background:var(--long); } .bell-dot.bad { background:var(--danger); } .bell-dot.warn { background:#f5c46b; }
.bell-item b { display:block; font-size:12.5px; font-weight:600; line-height:1.35; }
.bell-item p { margin:2px 0 0; font-size:12px; color:var(--text-dim); line-height:1.4; }
.bell-item time { display:block; margin-top:3px; font-size:10.5px; color:var(--text-dim); }
.bell-empty { padding:18px 14px; font-size:12.5px; color:var(--text-dim); }
.bell-foot { padding:10px 14px; border-top:1px solid var(--border); }
.bell-foot button { all:unset; cursor:pointer; font-size:12px; color:var(--accent); }
.bell-foot button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
@media (max-width: 640px) {
  .health-pill-text { display:none; } .health-pill { padding:3px 5px; }
  .bell-wrap { position:static; } .bell-panel { position:fixed; left:10px; right:10px; top:60px; width:auto; max-width:none; }
}
.hero-legend .lg-note { flex-basis:100%; font-size:10.5px; color:var(--text-dim); }
.hero-tip-cfg b { font-weight:500; white-space:normal; display:block; }
.robot-sort { font:inherit; font-size:12px; color:var(--text); background:var(--bg-elevated); border:1px solid var(--border); border-radius:8px; padding:6px 8px; }
.robot-compact-toggle { all:unset; cursor:pointer; font-size:12px; padding:6px 10px; border:1px solid var(--border); border-radius:8px; color:var(--text-dim); }
.robot-compact-toggle[aria-pressed="true"] { color:var(--text); border-color:var(--accent); background:color-mix(in srgb, var(--accent) 12%, transparent); }
.robot-compact-toggle:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.fleet-controls { flex-wrap:wrap; row-gap:8px; }
.prisma-bot.compact { gap:8px; }
.prisma-bot.compact .compact-line { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; font-size:12px; color:var(--text-dim); }
.prisma-bot.compact .compact-res { margin-left:auto; font-variant-numeric:tabular-nums; }
@media (max-width: 520px) {
  /* cabeçalho em uma linha só: com o robô de saúde e o sino cabe se a versão sai (ela continua no rodapé e em Sobre) */
  .topbar .version-pill { display:none; }
  .topbar-badges { gap:5px; }
  .topbar-badges .account-switch a { padding:7px 10px; }
  .bell-btn { width:32px; height:32px; }
  #logout-btn { display:none; } /* no celular o Sair fica em Configurações → Sobre */
}

/* Laboratório (18/10/2026) */
.lab-steps { margin:8px 0 6px; padding-left:20px; display:flex; flex-direction:column; gap:6px; font-size:13px; line-height:1.45; }
.lab-controls { display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px 14px; margin:4px 0 12px; }
.lab-controls label { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--text-dim); }
.lab-controls input, .lab-controls select { font:inherit; font-size:13px; color:var(--text); background:var(--bg-elevated); border:1px solid var(--border); border-radius:8px; padding:6px 8px; min-width:96px; }
.lab-table { width:100%; border-collapse:collapse; font-size:12.5px; }
.lab-table th { text-align:left; font-weight:500; color:var(--text-dim); font-size:11px; padding:6px 8px; border-bottom:1px solid var(--border); white-space:nowrap; }
.lab-table td { padding:8px; border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent); vertical-align:top; }
.lab-table td.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.lab-table .sym { font-weight:600; }
.lab-table .state { color:var(--text-dim); min-width:220px; line-height:1.35; }
.lab-badge { display:inline-block; padding:2px 8px; border-radius:999px; font-size:11px; font-weight:600; border:1px solid var(--border); }
.lab-badge.ready { color:var(--long); border-color:color-mix(in srgb, var(--long) 55%, var(--border)); background:color-mix(in srgb, var(--long) 12%, transparent); }
.lab-badge.wait { color:var(--text-dim); }
.lab-rejected { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--text-dim); padding:8px 0 2px; }
details.collapse-inline > summary { cursor:pointer; font-size:12.5px; color:var(--text-dim); padding:8px 0; }
#lab-movers { overflow-x:auto; }
@media (max-width: 640px) { .lab-table .state { min-width:150px; } .lab-table .hm { display:none; } .tabs { gap:8px; } }

/* Cabeçalho que acompanha a rolagem (20/10/2026, pedido do usuário): o bloco inteiro (barra de cima + abas) fica grudado no topo.
   Ao rolar, só a logo grande e o nome somem; Conta Demo/Real, saúde dos robôs, sino e Sair continuam à mão (a logo vira um ícone pequeno).
   O espaço que o cabeçalho encolhe é devolvido por uma margem (medida em app.js), então o conteúdo nunca "pula" ao rolar. */
.site-head { position: sticky; top: 0; z-index: 30; background: var(--bg); }
.site-head .topbar { position: relative; z-index: auto; }
.site-head .tabs { position: static; }
body.head-compact .site-head { box-shadow: 0 6px 18px rgba(0, 0, 0, .28); }
body.head-compact .site-head .topbar { padding-top: 7px; padding-bottom: 7px; }
body.head-compact .site-head .topbar-brand > div { display: none; }
body.head-compact .site-head .topbar-logo { width: 30px; height: 30px; }

/* Faixa "Disponível para Meus Ativos" (Conta Real, aba Robôs, logo abaixo do resumo do dia) */
.wallet-strip { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin:0 0 16px; padding:11px 16px; background:var(--bg-card); border:1px solid var(--border); border-radius:12px; }
.wallet-strip[hidden] { display:none; }
.wallet-strip-text { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; min-width:0; }
.wallet-strip-label { font-size:12px; color:var(--text-dim); letter-spacing:.04em; }
.wallet-strip-text strong { font-size:19px; }
.wallet-strip-text small { font-size:12px; color:var(--text-dim); }
.wallet-strip.is-idle .wallet-strip-text strong { color:var(--text-dim); }
@media (max-width: 640px) { .wallet-strip .btn { width:100%; } }

/* Atalho da Sala de Operações (29/10/2026) — os robôs de moeda fixa só aparecem na página /sala. */
.sala-link { display:flex; align-items:center; gap:12px; margin:0 0 16px; padding:11px 16px; border:1px solid var(--border); border-radius:12px; background:var(--panel, rgba(255,255,255,.03)); color:var(--text); text-decoration:none; }
.sala-link[hidden] { display:none; }
.sala-link:hover { border-color:color-mix(in srgb, var(--accent, #7dd3fc) 60%, var(--border)); }
.sala-link-ico { font-size:20px; }
.sala-link strong { font-weight:650; }
.sala-link-go { margin-left:auto; font-size:12.5px; color:var(--text-dim); white-space:nowrap; }
@media (max-width: 640px) { .sala-link { flex-wrap:wrap; } .sala-link-go { margin-left:0; } }
