
  :root{
    --bg:#0b1411; --bg-2:#0f1b17; --panel:#132420; --panel-2:#182b25;
    --line:#25392f; --line-soft:#1c2d26;
    --ink:#eef2ee; --muted:#8fa79b; --muted-2:#647a70;
    --gold:#cda349; --gold-soft:#e9c876;
    --up:#35c98f; --down:#e2564f; --blue:#5b8fd9;
    --mono:'IBM Plex Mono', ui-monospace, monospace;
    --sans:'Inter', system-ui, sans-serif;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:
      radial-gradient(1100px 600px at 15% -10%, rgba(205,163,73,.07), transparent 60%),
      radial-gradient(900px 500px at 100% 0%, rgba(91,143,217,.06), transparent 55%),
      var(--bg);
    color:var(--ink); font-family:var(--sans); font-size:14px; line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  ::selection{background:rgba(205,163,73,.35);}
  a{color:inherit;}
  button{font-family:inherit;}

  /* ---------- Ticker tape (signature element) ---------- */
  .tape-wrap{
    background:#081210; border-bottom:1px solid var(--line); overflow:hidden;
    white-space:nowrap; position:relative; height:34px;
  }
  .tape-wrap::before, .tape-wrap::after{
    content:''; position:absolute; top:0; bottom:0; width:60px; z-index:2; pointer-events:none;
  }
  .tape-wrap::before{left:0; background:linear-gradient(90deg, #081210, transparent);}
  .tape-wrap::after{right:0; background:linear-gradient(270deg, #081210, transparent);}
  .tape{
    display:inline-flex; align-items:center; height:34px; will-change:transform;
    animation:tape-scroll 235s linear infinite;
  }
  .tape-wrap:hover .tape{animation-play-state:paused;}
  .tape span{
    font-family:var(--mono); font-size:11.5px; letter-spacing:.3px; color:var(--muted);
    padding:0 18px; border-right:1px solid var(--line-soft);
  }
  .tape span b{color:var(--gold-soft); font-weight:600; margin-right:6px;}
  .tape span.up{color:var(--up);}
  .tape span.down{color:var(--down);}
  .tape span.blink{animation:cashBlink 1.3s ease-in-out infinite;}
  @media (prefers-reduced-motion: reduce){ .tape span.blink{animation:none;} }
  @keyframes tape-scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

  /* ---------- Header ---------- */
  header.brandbar{
    padding:26px 40px 20px; border-bottom:1px solid var(--line);
    display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap;
  }
  .brandmark{display:flex; align-items:center; gap:14px;}
  .brandmark .glyph{
    width:64px;height:64px;
    display:flex;align-items:center;justify-content:center; flex-shrink:0;
    filter:drop-shadow(0 6px 14px rgba(205,163,73,.3));
  }
  h1.brand{
    font-family:var(--mono); font-weight:700; font-size:23px; letter-spacing:1.2px;
    margin:0; text-transform:uppercase; color:var(--ink);
  }
  h1.brand .cash{color:var(--gold-soft);}
  .w-ton{color:#ff2b4d; text-shadow:0 0 6px rgba(255,43,77,.85), 0 0 16px rgba(255,43,77,.5);}
  .w-white{color:#fff; text-shadow:0 0 5px rgba(255,255,255,.4);}
  .w-black{color:#000; text-shadow:0 0 6px rgba(255,255,255,.5), 0 0 14px rgba(255,255,255,.28);}
  .cash.blink{color:var(--gold-soft); animation:cashBlink 1.3s ease-in-out infinite;}
  .glyph.blink{animation:cashBlink 1.3s ease-in-out infinite;}
  @keyframes cashBlink{ 0%, 100%{opacity:1;} 50%{opacity:.25;} }
  .ring-text{animation:ringSpin 12s linear infinite; transform-origin:70px 70px;}
  @keyframes ringSpin{ to{transform:rotate(360deg);} }
  @media (prefers-reduced-motion: reduce){ .cash.blink, .glyph.blink, .ring-text{animation:none;} }
  .ring-ton{fill:#ff4d5e; stroke:#0b1411; stroke-width:.5; paint-order:stroke fill;}
  .ring-white{fill:#fff; stroke:#0b1411; stroke-width:.5; paint-order:stroke fill;}
  .ring-black{fill:#050505; stroke:#f6f3e9; stroke-width:1.1; paint-order:stroke fill;}
  .ring-cash{fill:#ffd873; stroke:#0b1411; stroke-width:.6; paint-order:stroke fill;}
  .brand-sub{
    font-size:12.5px; color:var(--muted); margin-top:4px; letter-spacing:.2px;
  }
  .header-meta{text-align:right; font-family:var(--mono); font-size:12px; color:var(--muted);}
  .header-meta .idx-badge{
    display:inline-flex; align-items:center; gap:7px; background:var(--panel);
    border:1px solid var(--line); padding:5px 12px; border-radius:999px; margin-bottom:8px;
    font-size:11.5px; color:var(--gold-soft); letter-spacing:.5px;
  }
  .idx-badge .dot{width:6px;height:6px;border-radius:50%;background:var(--up);box-shadow:0 0 8px var(--up);}

  main{max-width:1360px; margin:0 auto; padding:28px 40px 60px;}

  /* ---------- KPI row ---------- */
  .kpi-row{display:grid; grid-template-columns:repeat(6,1fr); gap:14px; margin-bottom:26px;}
  @media (max-width:1180px){.kpi-row{grid-template-columns:repeat(3,1fr);}}
  @media (max-width:640px){.kpi-row{grid-template-columns:repeat(2,1fr);}}
  .kpi{
    background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:14px 16px;
    position:relative; overflow:hidden;
  }
  .kpi::before{
    content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--gold);
  }
  .kpi .lbl{font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted); margin-bottom:6px;}
  .kpi .val{font-family:var(--mono); font-size:21px; font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums;}
  .kpi .val.gold{color:var(--gold-soft);}
  .kpi .val.neon-red{color:#ff2b4d; text-shadow:0 0 6px rgba(255,43,77,.85), 0 0 16px rgba(255,43,77,.5);}
  .kpi .val.neon-green{color:#39ff14; text-shadow:0 0 6px rgba(57,255,20,.85), 0 0 16px rgba(57,255,20,.5);}
  .kpi .val.neon-yellow{color:#faff00; text-shadow:0 0 6px rgba(250,255,0,.85), 0 0 16px rgba(250,255,0,.5);}
  .kpi .sub.neon-blue-lg{
    color:#00e5ff; font-size:14px; font-weight:700; margin-top:5px;
    text-shadow:0 0 6px rgba(0,229,255,.85), 0 0 16px rgba(0,229,255,.5);
  }
  .kpi .sub.neon-yellow-lg{
    color:#faff00; font-size:14px; font-weight:700; margin-top:5px;
    text-shadow:0 0 6px rgba(250,255,0,.85), 0 0 16px rgba(250,255,0,.5);
  }
  .pf3d-month{
    font-family:var(--mono); font-size:15px; font-weight:700; letter-spacing:.6px;
    color:#00e5ff; text-shadow:0 0 6px rgba(0,229,255,.85), 0 0 16px rgba(0,229,255,.5);
    text-transform:uppercase; margin:-2px 0 14px;
    animation:neon-blink 1.1s ease-in-out infinite;
  }
  @keyframes neon-blink{ 0%,100%{opacity:1;} 50%{opacity:.3;} }
  .kpi .sub{font-size:10.5px; color:var(--muted-2); margin-top:4px;}

  /* ---------- Section headers ---------- */
  .sec-head{display:flex; align-items:baseline; justify-content:space-between; margin:34px 0 14px; gap:16px; flex-wrap:wrap;}
  .sec-head h2{
    font-family:var(--mono); font-size:12.5px; text-transform:uppercase; letter-spacing:1.4px;
    color:var(--gold-soft); margin:0; display:flex; align-items:center; gap:10px;
  }
  .sec-head h2::before{content:'';width:16px;height:1px;background:var(--gold);}
  .sec-head p{font-size:12px; color:var(--muted); margin:0;}

  /* ---------- Charts grid ---------- */
  .charts-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:16px;}
  @media (max-width:1100px){.charts-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:700px){.charts-grid{grid-template-columns:1fr;}}
  .card{
    background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:18px 20px;
  }
  .card h3{
    margin:0 0 14px; font-size:11.5px; letter-spacing:.5px; text-transform:uppercase;
    color:var(--muted); font-weight:600; display:flex; justify-content:space-between; align-items:center;
  }
  .card h3 .tag{font-family:var(--mono); font-size:10px; color:var(--muted-2); text-transform:none; letter-spacing:0;}
  .acct-stats{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:2px;}
  .acct-stat{background:var(--bg-2); border:1px solid var(--line-soft); border-radius:8px; padding:10px 12px;}
  .acct-stat .lbl{display:block; font-size:9.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-2); margin-bottom:5px;}
  .acct-stat .val{font-family:var(--mono); font-size:15px; font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums;}
  .acct-stat.res .val{color:var(--gold-soft);}
  .acct-note{font-size:11px; color:var(--muted-2); margin:10px 0 0;}
  .ir-note{display:none; color:var(--gold-soft); margin-top:8px;}
  .ir-note.show{display:block;}
  .acct-val-row{display:flex; align-items:center; gap:5px;}
  .acct-val-row .cur{font-family:var(--mono); font-size:13px; color:var(--muted-2); flex-shrink:0;}
  .acct-input{
    background:transparent; border:none; border-bottom:1px solid var(--line-soft); width:100%;
    padding:2px 0 3px; font-family:var(--mono); font-size:15px; font-weight:600; color:var(--ink);
    font-variant-numeric:tabular-nums;
  }
  .acct-stat.res .acct-input{color:var(--gold-soft);}
  .acct-input:focus{outline:none; border-bottom-color:var(--gold);}
  .acct-input::-webkit-outer-spin-button, .acct-input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0;}
  .acct-input[type=number]{-moz-appearance:textfield;}
  .acct-stat .acct-input.neg{color:#ff6b6b;}
  .acct-input[readonly]{cursor:default;}
  .acct-input[readonly]:focus{border-bottom-color:var(--line-soft);}
  .lbl .calc-tag{color:var(--muted-2); text-transform:none; letter-spacing:0; font-style:normal;}
  .ticker-warn{
    display:none; font-size:10.5px; color:#ff6b6b; background:rgba(226,86,79,.1);
    border:1px solid rgba(226,86,79,.35); border-radius:7px; padding:7px 9px; margin:8px 0 0; line-height:1.4;
  }
  .ticker-warn.show{display:block;}
  .h3-actions{display:flex; align-items:center; gap:7px;}
  .card-month{
    color:#00e5ff; margin-left:6px; font-weight:700;
    text-shadow:0 0 6px rgba(0,229,255,.85), 0 0 16px rgba(0,229,255,.5);
  }
  .icon-btn{
    background:transparent; border:1px solid var(--line); color:var(--muted); border-radius:6px;
    width:23px; height:23px; display:flex; align-items:center; justify-content:center;
    font-size:11.5px; line-height:1; cursor:pointer; padding:0;
  }
  .icon-btn:hover{border-color:var(--gold); color:var(--gold-soft);}
  .acct-stats, .ticker-section{transition:filter .15s ease;}
  .card.values-hidden .acct-stats, .card.values-hidden .ticker-section{
    filter:blur(7px); pointer-events:none; user-select:none;
  }
  .ticker-section{margin-top:16px; padding-top:14px; border-top:1px dashed var(--line);}
  .ticker-section .lbl-mini{font-size:9.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-2); margin-bottom:9px; display:block;}
  .ticker-section .lbl-mini b{color:var(--muted); font-weight:600;}
  .ticker-row{display:flex; gap:8px; margin-bottom:8px; flex-wrap:wrap; align-items:center;}
  .ticker-input, .ticker-invest-input, .ticker-val-input{
    background:var(--bg-2); border:1px solid var(--line); color:var(--ink); border-radius:6px;
    padding:8px 9px; font-size:12.5px; font-family:var(--mono);
  }
  .ticker-input{width:82px; flex-shrink:0; color:var(--gold-soft); text-transform:uppercase;}
  .ticker-invest-input, .ticker-val-input{flex:1 1 100px; min-width:100px;}
  .ticker-input::placeholder, .ticker-invest-input::placeholder, .ticker-val-input::placeholder{color:var(--muted-2); opacity:.8;}
  .ticker-input:focus, .ticker-invest-input:focus, .ticker-val-input:focus{outline:none; border-color:var(--gold);}
  .ticker-val-input.neg{color:#ff6b6b;}
  .ticker-pct{
    width:64px; flex-shrink:0; text-align:right; font-family:var(--mono); font-size:11.5px;
    color:var(--muted-2);
  }
  .ticker-pct.pos{color:#39ff14; text-shadow:0 0 5px rgba(57,255,20,.6);}
  .ticker-pct.neg{color:#ff6b6b; text-shadow:0 0 5px rgba(255,107,107,.55);}
  .ticker-chart-box{height:260px; margin-top:10px;}
  .ticker-chart-empty{
    display:flex; align-items:center; justify-content:center; height:100%; text-align:center;
    color:var(--muted-2); font-size:10.5px; padding:0 14px; border:1px dashed var(--line); border-radius:8px;
  }
  .chart-box{position:relative;}
  .span-2{grid-column:span 2;}
  @media (max-width:1100px){.span-2{grid-column:span 2;}}
  @media (max-width:700px){.span-2{grid-column:span 1;}}

  /* ---------- Filters ---------- */
  .filters{
    background:var(--panel); border:1px solid var(--line); border-radius:12px;
    padding:16px 18px; display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin-bottom:16px;
  }
  .filters .f-group{display:flex; flex-direction:column; gap:5px;}
  .filters label{font-size:10px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-2); font-weight:600;}
  .filters input[type=text], .filters input[type=date], .filters input[type=number]{
    background:var(--bg-2); border:1px solid var(--line); color:var(--ink); border-radius:7px;
    padding:8px 10px; font-size:13px; font-family:var(--sans); min-width:190px;
  }
  .filters input[type=date], .filters input[type=number]{min-width:0;}
  .filters input:focus, select:focus, .chip:focus-visible{outline:2px solid var(--blue); outline-offset:1px;}
  select{
    background:var(--bg-2); border:1px solid var(--line); color:var(--ink); border-radius:7px;
    padding:8px 10px; font-size:13px; font-family:var(--sans);
  }
  .chip-row{display:flex; gap:6px; flex-wrap:wrap;}
  .chip{
    background:var(--bg-2); border:1px solid var(--line); color:var(--muted); border-radius:999px;
    padding:7px 13px; font-size:12px; cursor:pointer; transition:.12s ease; font-weight:600;
  }
  .chip:hover{border-color:var(--gold); color:var(--ink);}
  .chip.active{background:var(--gold); border-color:var(--gold); color:#1a1408;}
  .range-wrap{display:flex; align-items:center; gap:8px;}
  .range-wrap input[type=range]{accent-color:var(--gold); width:130px;}
  .range-wrap .rv{font-family:var(--mono); font-size:12px; color:var(--gold-soft); min-width:38px;}
  .filters .f-count{margin-left:auto; font-family:var(--mono); font-size:12px; color:var(--muted);}
  .filters .f-count b{color:var(--gold-soft);}
  .clearbtn{
    background:transparent; border:1px solid var(--line); color:var(--muted); border-radius:7px;
    padding:8px 12px; font-size:12px; cursor:pointer; font-weight:600;
  }
  .clearbtn:hover{border-color:var(--down); color:var(--down);}

  /* ---------- Layout: table + portfolio ---------- */
  .worklayout{display:grid; grid-template-columns:1fr 380px; gap:20px; align-items:start;}
  @media (max-width:1050px){.worklayout{grid-template-columns:1fr;}}

  .table-card{background:var(--panel); border:1px solid var(--line); border-radius:12px; overflow:hidden;}
  .table-scroll{max-height:560px; overflow-y:auto;}
  table{width:100%; border-collapse:collapse; font-size:12.8px;}
  thead th{
    position:sticky; top:0; background:var(--panel-2); text-align:left; padding:10px 14px;
    font-size:10.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); font-weight:700;
    border-bottom:1px solid var(--line); z-index:1; cursor:pointer; user-select:none;
  }
  thead th:hover{color:var(--gold-soft);}
  thead th .arrow{margin-left:4px; opacity:.6;}
  tbody tr{border-bottom:1px solid var(--line-soft); transition:background .1s;}
  tbody tr:hover{background:rgba(205,163,73,.06);}
  tbody tr.selected{background:rgba(205,163,73,.12);}
  td{padding:9px 14px; vertical-align:middle;}
  td.num{font-family:var(--mono); font-variant-numeric:tabular-nums; text-align:right; color:var(--ink);}
  td.tk{font-family:var(--mono); font-weight:700; color:var(--gold-soft); letter-spacing:.3px;}
  td .company{color:var(--ink);}
  td .sector-tag{
    font-size:10.5px; color:var(--muted); background:var(--bg-2); border:1px solid var(--line-soft);
    padding:2px 8px; border-radius:999px; display:inline-block;
  }
  td .cl-tag{
    font-family:var(--mono); font-size:10.5px; padding:2px 7px; border-radius:5px; font-weight:700;
    background:var(--bg-2); border:1px solid var(--line-soft); color:var(--muted);
  }
  .weightbar-cell{display:flex; align-items:center; gap:8px;}
  .weightbar{flex:1; height:5px; background:var(--bg-2); border-radius:3px; overflow:hidden; min-width:50px;}
  .weightbar span{display:block; height:100%; background:linear-gradient(90deg, var(--gold), var(--gold-soft));}
  .addbtn{
    width:26px; height:26px; border-radius:7px; border:1px solid var(--line); background:var(--bg-2);
    color:var(--muted); cursor:pointer; font-size:15px; line-height:1; display:flex; align-items:center; justify-content:center;
    transition:.12s ease;
  }
  .addbtn:hover{border-color:var(--gold); color:var(--gold-soft);}
  .addbtn.added{background:var(--gold); border-color:var(--gold); color:#1a1408;}
  .addbtn:disabled{opacity:.3; cursor:not-allowed;}
  .empty-row td{text-align:center; color:var(--muted-2); padding:34px; font-size:13px;}

  /* ---------- Portfolio panel ---------- */
  .pf-panel{
    background:var(--panel); border:1px solid var(--gold); border-radius:12px; padding:18px 20px;
    position:sticky; top:16px; box-shadow:0 14px 34px rgba(0,0,0,.35);
  }
  .pf-panel h3{
    margin:0; font-family:var(--mono); font-size:13px; text-transform:uppercase; letter-spacing:.6px; color:var(--gold-soft);
    display:flex; justify-content:space-between; align-items:center;
  }
  .pf-panel .pf-count{font-family:var(--mono); font-size:12px; color:var(--muted);}
  .pf-panel .pf-count b{color:var(--ink);}
  .pf-sub{font-size:11.5px; color:var(--muted); margin:6px 0 14px;}
  .pf-slots{display:flex; flex-direction:column; gap:8px; margin-bottom:14px; min-height:40px;}
  .pf-slot{
    display:flex; flex-direction:column; gap:7px; background:var(--bg-2); border:1px solid var(--line-soft);
    border-radius:8px; padding:8px 10px;
  }
  .pf-slot-top{display:flex; align-items:center; gap:8px;}
  .pf-slot-top .tk{font-family:var(--mono); font-weight:700; color:var(--gold-soft); font-size:12.5px; min-width:56px;}
  .pf-slot-top .nm{flex:1; font-size:12px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .pf-slot-top .rm{background:none; border:none; color:var(--muted-2); cursor:pointer; font-size:14px; padding:0 2px;}
  .pf-slot-top .rm:hover{color:var(--down);}
  .pf-slot-bottom{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
  .pf-slot-bottom label{
    display:flex; align-items:center; gap:5px; font-size:9.5px; text-transform:uppercase;
    letter-spacing:.4px; color:var(--muted-2); font-weight:600;
  }
  .pf-slot-bottom input{
    width:54px; background:var(--bg); border:1px solid var(--line); color:var(--ink); border-radius:5px;
    padding:4px 6px; font-family:var(--mono); font-size:12px; text-align:right;
  }
  .pf-slot-bottom .pf-shares{font-family:var(--mono); font-size:11px; color:var(--gold-soft); white-space:nowrap;}
  .pf-slot-bottom .pf-lucro{font-family:var(--mono); font-size:11px; white-space:nowrap; color:var(--muted-2);}
  .pf-slot-bottom .pf-lucro.up{color:var(--up);}
  .pf-slot-bottom .pf-lucro.down{color:var(--down);}
  .pf-empty{
    border:1px dashed var(--line); border-radius:8px; padding:22px 14px; text-align:center;
    color:var(--muted-2); font-size:12px;
  }
  .pf-total-row{
    display:flex; justify-content:space-between; align-items:center; font-family:var(--mono);
    font-size:12.5px; padding:10px 0; border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);
    margin-bottom:14px;
  }
  .pf-total-row .amt{font-weight:700; font-size:15px;}
  .pf-total-row .amt.ok{color:var(--up);}
  .pf-total-row .amt.bad{color:var(--down);}
  .pf-actions{display:flex; gap:8px; margin-bottom:16px;}
  .btn{
    flex:1; border-radius:7px; padding:9px 10px; font-size:12px; font-weight:700; cursor:pointer;
    border:1px solid var(--line); background:var(--bg-2); color:var(--ink); transition:.12s ease;
  }
  .btn:hover{border-color:var(--gold); color:var(--gold-soft);}
  .btn.primary{background:var(--gold); border-color:var(--gold); color:#1a1408;}
  .btn.primary:hover{filter:brightness(1.08); color:#1a1408;}
  .pf-stats{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px;}
  .pf-stat{background:var(--bg-2); border:1px solid var(--line-soft); border-radius:8px; padding:9px 11px;}
  .pf-stat .l{font-size:9.5px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted-2); margin-bottom:3px;}
  .pf-stat .v{font-family:var(--mono); font-weight:700; font-size:14.5px; color:var(--ink);}
  .pf-mini-chart{height:190px; position:relative; margin-bottom:6px;}
  .pf-value-chart-title{
    margin:14px 0 8px; font-size:10.5px; text-transform:uppercase; letter-spacing:.5px;
    color:var(--muted); font-weight:600; display:flex; align-items:center; justify-content:space-between; gap:8px;
  }
  .pf-value-chart-title .tag{font-family:var(--mono); font-size:10px; color:var(--gold-soft); text-transform:none; letter-spacing:0;}

  footer{
    border-top:1px solid var(--line); padding:22px 40px 34px; max-width:1360px; margin:0 auto;
  }
  footer p{font-size:11.5px; color:var(--muted-2); max-width:900px; line-height:1.6; margin:0 0 6px;}
  footer .src{font-family:var(--mono); color:var(--muted);}

  @media (prefers-reduced-motion: reduce){
    .tape{animation:none;}
  }

  /* ---------- Tabs ---------- */
  .tabnav{
    display:flex; gap:6px; padding:14px 40px 0; max-width:1360px; margin:0 auto; border-bottom:1px solid var(--line);
  }
  .tabbtn{
    background:none; border:none; color:var(--muted); font-family:var(--mono); font-size:12px;
    text-transform:uppercase; letter-spacing:.6px; padding:10px 16px 13px; cursor:pointer;
    border-bottom:2px solid transparent; margin-bottom:-1px; font-weight:600; transition:.12s ease;
  }
  .tabbtn:hover{color:var(--ink);}
  .tabbtn.active{color:var(--gold-soft); border-bottom-color:var(--gold);}
  .tab-panel{display:none;}
  .tab-panel.active{display:block;}

  /* ---------- Sector distribution tab ---------- */
  .sector-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:16px;}
  @media (max-width:900px){.sector-grid{grid-template-columns:1fr;}}
  .sector-card{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px 18px; overflow:hidden;}
  .sector-card-head{display:flex; align-items:center; gap:10px; margin-bottom:10px;}
  .sector-card-head .swatch{width:11px;height:11px;border-radius:3px;flex:0 0 auto;}
  .sector-card-head h4{margin:0; font-size:13.5px; color:var(--ink); font-weight:700; flex:1;}
  .sector-card-head .sc-meta{font-family:var(--mono); font-size:11.5px; color:var(--muted); text-align:right; white-space:nowrap;}
  .sector-card-head .sc-meta b{color:var(--gold-soft); font-size:13px;}
  .sector-bar-track{height:5px; background:var(--bg-2); border-radius:3px; overflow:hidden; margin-bottom:12px;}
  .sector-bar-track span{display:block; height:100%;}
  .sector-ticker-list{display:flex; flex-direction:column; gap:0;}
  .sector-ticker-row{
    display:flex; align-items:center; gap:10px; padding:6px 0; border-bottom:1px solid var(--line-soft); font-size:12.3px;
  }
  .sector-ticker-row:last-child{border-bottom:none;}
  .sector-ticker-row .tk{font-family:var(--mono); font-weight:700; color:var(--gold-soft); min-width:60px;}
  .sector-ticker-row .nm{flex:1; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .sector-ticker-row .cl-tag{font-family:var(--mono); font-size:9.5px; padding:1px 6px; border-radius:4px; background:var(--bg-2); border:1px solid var(--line-soft); color:var(--muted-2);}
  .sector-ticker-row .px{font-family:var(--mono); font-variant-numeric:tabular-nums; color:var(--muted); min-width:78px; text-align:right;}
  .sector-ticker-row .w{font-family:var(--mono); font-variant-numeric:tabular-nums; color:var(--ink); min-width:50px; text-align:right;}

  /* ---------- Swing Trade MA (placeholder — no price data yet) ---------- */
  .empty-state{
    border:1px dashed var(--line); background:var(--panel); border-radius:12px;
    padding:34px 30px; text-align:center; margin-bottom:20px;
  }
  .empty-state .es-icon{
    width:46px;height:46px;border-radius:50%; margin:0 auto 14px; display:flex;align-items:center;justify-content:center;
    background:var(--bg-2); border:1px solid var(--line); color:var(--gold-soft); font-size:20px; font-family:var(--mono);
  }
  .empty-state h3{margin:0 0 8px; font-size:14.5px; color:var(--ink);}
  .empty-state p{margin:0 auto 16px; max-width:520px; font-size:12.5px; color:var(--muted); line-height:1.6;}
  .empty-state .fmt-hint{
    display:inline-block; background:var(--bg-2); border:1px solid var(--line); border-radius:7px;
    padding:9px 14px; font-family:var(--mono); font-size:11.5px; color:var(--gold-soft); text-align:left;
  }
  .swing-preview-head{display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:14px; flex-wrap:wrap;}
  .ma-legend{display:flex; gap:14px; flex-wrap:wrap;}
  .ma-legend span{font-size:11px; color:var(--muted); display:flex; align-items:center; gap:6px;}
  .ma-legend span i{width:16px;height:2px;display:inline-block;}
  select:disabled, input:disabled{opacity:.45; cursor:not-allowed;}
  .swing-chart-placeholder{
    height:260px; border:1px dashed var(--line); border-radius:10px; position:relative; overflow:hidden;
    background:
      repeating-linear-gradient(0deg, transparent, transparent 43px, var(--line-soft) 43px, var(--line-soft) 44px),
      repeating-linear-gradient(90deg, transparent, transparent 90px, var(--line-soft) 90px, var(--line-soft) 91px);
    display:flex; align-items:center; justify-content:center;
  }
  .swing-chart-placeholder span{
    font-family:var(--mono); font-size:12px; color:var(--muted-2); background:var(--panel);
    padding:6px 14px; border-radius:999px; border:1px solid var(--line);
  }
  table.swing-table td, table.swing-table th{color:var(--muted-2);}
  table.swing-table td.tk{color:var(--gold-soft);}
  table.swing-table tr.cat-row td{
    background:var(--panel-2); color:var(--gold-soft); font-family:var(--mono); font-size:10.5px;
    text-transform:uppercase; letter-spacing:.6px; font-weight:700; padding:8px 14px;
  }
  .dash{color:var(--muted-2);}

  /* ---------- Real quote cards ---------- */
  .quote-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
  @media (max-width:1100px){.quote-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:600px){.quote-grid{grid-template-columns:1fr;}}
  .quote-card{
    background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:14px 16px;
  }
  .quote-card .qc-top{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px;}
  .quote-card .qc-sym{font-family:var(--mono); font-weight:700; color:var(--gold-soft); font-size:13px;}
  .quote-card .qc-cat{font-size:9.5px; color:var(--muted-2); text-transform:uppercase; letter-spacing:.4px;}
  .quote-card .qc-name{font-size:11px; color:var(--muted); margin-bottom:8px;}
  .quote-card .qc-ma200{font-family:var(--mono); font-size:10.5px; color:var(--muted); margin-top:6px;}
  .quote-card .qc-price{font-family:var(--mono); font-size:19px; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums;}
  .quote-card .qc-chg{font-family:var(--mono); font-size:12px; font-weight:700; margin-left:8px;}
  .quote-card .qc-chg.up{color:var(--up);}
  .quote-card .qc-chg.down{color:var(--down);}
  .quote-card .qc-src{font-size:10px; color:var(--muted-2); margin-top:8px; line-height:1.5;}

  /* ---------- Market calendar (holidays / monetary policy / indicators) ---------- */
  .cal-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  @media (max-width:900px){.cal-grid{grid-template-columns:1fr;}}
  .cal-grid .span-2{grid-column:span 2;}
  @media (max-width:900px){.cal-grid .span-2{grid-column:span 1;}}

  .cal-hours{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:10px;}
  .cal-hours-box{flex:1; min-width:220px; background:var(--bg-2); border:1px solid var(--line-soft); border-radius:8px; padding:10px 12px;}
  .cal-hours-mkt{display:flex; align-items:center; gap:7px; font-size:12px; font-weight:700; color:var(--ink); margin-bottom:4px;}
  .cal-hours-mkt .dot{width:8px;height:8px;border-radius:50%; flex:0 0 auto;}
  .cal-hours-mkt .dot.br{background:var(--gold-soft); box-shadow:0 0 6px var(--gold-soft);}
  .cal-hours-mkt .dot.us{background:var(--blue); box-shadow:0 0 6px var(--blue);}
  .cal-hours-time{font-family:var(--mono); font-size:11px; color:var(--muted);}
  .cal-note{font-size:11px; color:var(--muted-2); line-height:1.6; margin:0 0 12px;}

  table.cal-table{width:100%; border-collapse:collapse; font-size:12.3px;}
  table.cal-table thead th{
    position:sticky; top:0; background:var(--panel-2); text-align:left; padding:8px 12px;
    font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); font-weight:700;
    border-bottom:1px solid var(--line);
  }
  table.cal-table td{padding:8px 12px; border-bottom:1px solid var(--line-soft); color:var(--muted); vertical-align:top;}
  table.cal-table td:first-child{font-family:var(--mono); color:var(--ink); white-space:nowrap;}
  table.cal-table tr:last-child td{border-bottom:none;}

  .cal-list{display:flex; flex-direction:column; gap:0;}
  .cal-list .cal-item{
    display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--line-soft); font-size:12.3px;
  }
  .cal-list .cal-item:last-child{border-bottom:none;}
  .cal-list .cal-item .cal-date{font-family:var(--mono); color:var(--ink); min-width:96px;}
  .cal-list .cal-item .cal-ref{flex:1; color:var(--muted); font-size:11.5px;}
  .cal-list .cal-item.next{background:rgba(205,163,73,.08); margin:0 -8px; padding:8px; border-radius:6px; border-bottom:1px solid transparent;}
  .cal-list .cal-item.past{opacity:.5;}
  .cal-badge-next{
    font-family:var(--mono); font-size:9px; text-transform:uppercase; letter-spacing:.4px; font-weight:700;
    color:#1a1408; background:var(--gold); padding:2px 7px; border-radius:5px; white-space:nowrap;
  }

  .cal-upcoming{display:flex; flex-direction:column; gap:0;}
  .cal-upcoming .cal-row{display:flex; align-items:center; gap:12px; padding:9px 0; border-bottom:1px solid var(--line-soft);}
  .cal-upcoming .cal-row:last-child{border-bottom:none;}
  .cal-upcoming .cal-date{font-family:var(--mono); font-size:12px; color:var(--gold-soft); min-width:82px;}
  .cal-upcoming .cal-tag{
    font-family:var(--mono); font-size:9.5px; padding:2px 7px; border-radius:5px; text-transform:uppercase;
    letter-spacing:.4px; font-weight:700; white-space:nowrap; border:1px solid transparent;
  }
  .cal-upcoming .cal-tag.br{background:rgba(205,163,73,.15); color:var(--gold-soft); border-color:rgba(205,163,73,.35);}
  .cal-upcoming .cal-tag.us{background:rgba(91,143,217,.15); color:var(--blue); border-color:rgba(91,143,217,.35);}
  .cal-upcoming .cal-tag.both{background:rgba(53,201,143,.15); color:var(--up); border-color:rgba(53,201,143,.35);}
  .cal-upcoming .cal-label{flex:1; font-size:12.5px; color:var(--ink);}
  .cal-upcoming .cal-days{font-family:var(--mono); font-size:11px; color:var(--muted-2); white-space:nowrap;}

  /* ---------- Anchor charts (real point data, not a full series) ---------- */
  .anchor-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:16px;}
  @media (max-width:900px){.anchor-grid{grid-template-columns:1fr;}}
  .anchor-card{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px 18px;}
  .anchor-card h4{margin:0 0 4px; font-size:13px; color:var(--ink); font-family:var(--mono);}
  .anchor-card .ac-sub{font-size:10.5px; color:var(--muted-2); margin-bottom:10px;}
  .anchor-card .chart-box{height:190px;}
  .anchor-card .ac-src{font-size:10px; color:var(--muted-2); margin-top:8px; line-height:1.5;}

  /* ---------- Login gate ---------- */
  #loginGate{
    position:fixed; inset:0; z-index:9999; background:var(--bg);
    display:flex; align-items:center; justify-content:center; padding:20px;
  }
  #loginGate::before{
    content:''; position:absolute; inset:0;
    background:
      radial-gradient(1100px 600px at 15% -10%, rgba(205,163,73,.08), transparent 60%),
      radial-gradient(900px 500px at 100% 100%, rgba(91,143,217,.06), transparent 55%);
  }
  .login-card{
    position:relative; z-index:1; width:100%; max-width:360px;
    background:var(--panel); border:1px solid var(--line); border-radius:14px;
    padding:32px 30px; box-shadow:0 20px 60px rgba(0,0,0,.5);
  }
  .login-card .glyph{
    width:100px;height:100px; margin:0 auto 18px;
    display:flex;align-items:center;justify-content:center;
    filter:drop-shadow(0 6px 14px rgba(205,163,73,.3));
  }
  .login-card h2{
    font-family:var(--mono); font-size:15.5px; text-transform:uppercase; letter-spacing:1px;
    text-align:center; margin:0 0 4px; color:var(--ink);
  }
  .login-card .login-sub{text-align:center; font-size:11.5px; color:var(--muted); margin:0 0 4px;}
  .login-card .login-emojis{text-align:center; font-size:20px; letter-spacing:6px; margin:0 0 22px;}
  .login-card label{display:block; font-size:10px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-2); font-weight:600; margin-bottom:6px;}
  .login-card .login-field{margin-bottom:16px;}
  .login-card input{
    width:100%; background:var(--bg-2); border:1px solid var(--line); color:var(--ink);
    border-radius:7px; padding:10px 12px; font-size:13.5px; font-family:var(--sans);
  }
  .login-card input:focus{
    outline:2px solid var(--blue); outline-offset:1px;
  }
  .pass-wrap{position:relative;}
  .pass-wrap input{padding-right:38px;}
  .pass-toggle{
    position:absolute; right:6px; top:50%; transform:translateY(-50%);
    background:none; border:none; cursor:pointer; font-size:15px; line-height:1;
    color:var(--muted); padding:4px 6px;
  }
  .pass-toggle:hover{color:var(--gold-soft);}
  #moneyCursorEl{
    position:fixed; left:0; top:0; pointer-events:none; z-index:10000;
    display:none; font-size:22px; transform:translate(4px, 4px);
  }
  .login-card .login-actions{display:flex; gap:10px; margin-top:6px;}
  .login-card .login-btn{
    flex:1; border-radius:7px; padding:11px; font-size:13px; font-weight:700;
    cursor:pointer; border:1px solid var(--gold); background:var(--gold); color:#1a1408;
  }
  .login-card .login-btn:hover{filter:brightness(1.08);}
  .login-card .login-clear{
    flex:1; border-radius:7px; padding:11px; font-size:13px; font-weight:700;
    cursor:pointer; border:1px solid var(--line); background:transparent; color:var(--muted);
  }
  .login-card .login-clear:hover{border-color:var(--down); color:var(--down);}
  .login-card .login-err{color:var(--down); font-size:11.5px; text-align:center; margin:0 0 14px; min-height:14px;}
  .logout-btn{
    background:transparent; border:1px solid var(--line); color:var(--muted); border-radius:7px;
    padding:6px 13px; font-size:11.5px; font-weight:600; cursor:pointer; font-family:var(--sans);
    margin-top:8px;
  }
  .logout-btn:hover{border-color:var(--down); color:var(--down);}

  /* ---------- Cadastro de novos usuários / aprovação ---------- */
  .login-switch{text-align:center; font-size:11.5px; color:var(--muted); margin-top:16px;}
  .login-switch button{
    background:none; border:none; color:var(--gold-soft); cursor:pointer;
    font-weight:700; font-size:11.5px; text-decoration:underline; padding:0; font-family:var(--sans);
  }
  .login-hint{font-size:10.5px; color:var(--muted-2); text-align:center; margin:0 0 16px; line-height:1.5;}
  .login-code-box{
    background:var(--bg-2); border:1px dashed var(--gold); border-radius:8px;
    padding:14px; text-align:center; margin-bottom:16px;
  }
  .login-code-box .code{
    font-family:var(--mono); font-size:26px; letter-spacing:5px; font-weight:800; color:var(--gold-soft);
  }
  .login-ok-msg{font-size:11.5px; color:var(--muted); text-align:center; margin-bottom:16px; line-height:1.6;}
  .login-back-btn{
    width:100%; border-radius:7px; padding:11px; font-size:13px; font-weight:700;
    cursor:pointer; border:1px solid var(--gold); background:var(--gold); color:#1a1408;
  }
  .login-back-btn:hover{filter:brightness(1.08);}
  .pending-badge{
    display:inline-flex; align-items:center; justify-content:center; min-width:16px; height:16px;
    padding:0 4px; border-radius:8px; background:var(--down); color:#fff; font-size:10px;
    font-weight:800; margin-left:6px; vertical-align:middle;
  }
  .modal-overlay{
    position:fixed; inset:0; z-index:9998; background:rgba(0,0,0,.6);
    display:flex; align-items:center; justify-content:center; padding:20px;
  }
  .approve-card{
    position:relative; width:100%; max-width:480px; max-height:80vh; overflow-y:auto;
    background:var(--panel); border:1px solid var(--line); border-radius:14px;
    padding:26px 24px; box-shadow:0 20px 60px rgba(0,0,0,.5);
  }
  .approve-card h3{margin:0 0 4px; font-family:var(--mono); font-size:14px; text-transform:uppercase; letter-spacing:.5px; color:var(--ink);}
  .approve-card h3.approve-section-title{margin-top:26px; padding-top:18px; border-top:1px solid var(--line);}
  .approve-card .approve-sub{font-size:11px; color:var(--muted); margin:0 0 18px; line-height:1.5;}
  .approve-empty{font-size:12px; color:var(--muted-2); text-align:center; padding:24px 0;}
  .approve-row{border:1px solid var(--line); border-radius:10px; padding:12px 14px; margin-bottom:10px;}
  .approve-row .au{font-weight:700; font-size:13px; color:var(--ink);}
  .approve-row .at{font-size:10.5px; color:var(--muted-2); margin-bottom:8px;}
  .approve-row .code-row{display:flex; gap:8px; margin-top:8px;}
  .approve-row input{
    flex:1; min-width:0; background:var(--bg-2); border:1px solid var(--line); color:var(--ink);
    border-radius:6px; padding:8px 10px; font-size:12.5px; font-family:var(--mono);
    letter-spacing:3px; text-align:center;
  }
  .approve-row .arow-btns{display:flex; gap:8px; margin-top:8px;}
  .approve-row .arow-btns button{
    flex:1; border-radius:6px; padding:8px; font-size:11.5px; font-weight:700; cursor:pointer; font-family:var(--sans);
  }
  .approve-btn{border:1px solid var(--gold); background:var(--gold); color:#1a1408;}
  .approve-btn:hover{filter:brightness(1.08);}
  .reject-btn{border:1px solid var(--line); background:transparent; color:var(--muted);}
  .reject-btn:hover{border-color:var(--down); color:var(--down);}
  .approve-row .arow-err{color:var(--down); font-size:10.5px; margin-top:6px; min-height:12px;}
  .approve-close{position:absolute; top:14px; right:16px; background:none; border:none; color:var(--muted); font-size:20px; cursor:pointer; line-height:1;}
  .approve-close:hover{color:var(--down);}

  /* ---- Operações do mês: toolbar de impressão/exportação e area de impressao ---- */
  .ops-toolbar{display:flex; gap:10px; margin-bottom:14px;}
  .print-only-title{display:none;}

  /* Resumo (Resultado Total + Qtd. de Operações por categoria) acima da tabela de operações */
  .ops-summary-row{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:14px;}
  .ops-summary-item{
    flex:1 1 140px; background:var(--bg-2); border:1px solid var(--line-soft); border-radius:8px;
    padding:8px 12px;
  }
  .ops-summary-item .lbl{display:block; font-size:9.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-2); margin-bottom:4px;}
  .ops-summary-item .val{font-family:var(--mono); font-size:15px; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums;}
  .ops-summary-item .qtd{font-family:var(--mono); font-size:11px; color:var(--muted); margin-left:6px;}
  .ops-summary-item.total{background:linear-gradient(135deg, rgba(205,163,73,.14), var(--bg-2)); border-color:var(--gold-soft);}
  .ops-summary-item.total .val{color:var(--gold-soft); font-size:16px;}
  .ops-summary-item .val.neg{color:var(--down);}
  .ops-summary-item .val.pos{color:var(--up);}

  @media print{
    body *{visibility:hidden;}
    #activtradesPrintArea, #activtradesPrintArea *{visibility:visible;}
    #activtradesPrintArea{position:absolute; left:0; top:0; width:100%;}
    #activtradesPrintArea .no-print{display:none !important;}
    #activtradesPrintArea .print-only-title{
      display:block; font-family:var(--mono); font-size:16px; font-weight:700; color:#000; margin-bottom:10px;
    }
    #activtradesPrintArea .card{background:#fff; border:1px solid #999; box-shadow:none;}
    #activtradesPrintArea table{color:#000;}
    #activtradesPrintArea th{color:#000; border-bottom:1px solid #999;}
    #activtradesPrintArea td{color:#000;}
    #activtradesPrintArea .acct-note{color:#333;}
    #activtradesPrintArea .table-scroll{max-height:none !important; overflow:visible !important;}
    #activtradesPrintArea .ops-summary-item{background:#f5f5f5; border-color:#bbb;}
    #activtradesPrintArea .ops-summary-item .lbl{color:#555;}
    #activtradesPrintArea .ops-summary-item .val{color:#000;}
    #activtradesPrintArea .ops-summary-item .val.neg{color:#b23434;}
    #activtradesPrintArea .ops-summary-item .val.pos{color:#1e7d3a;}
  }

  /* ---------- Carteira Swing Trade IBrX 100 (Visão Geral) ---------- */
  .sib-card{margin-bottom:10px;}
  .sib-top{display:flex; gap:16px; align-items:flex-end; flex-wrap:wrap; margin-bottom:16px;}
  .sib-mes{display:flex; flex-direction:column; gap:5px;}
  .sib-mes label{font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted);}
  .sib-mes select{min-width:190px;}
  .sib-summary{display:grid; grid-template-columns:repeat(5,minmax(110px,1fr)); gap:10px; flex:1; min-width:0;}
  @media (max-width:1100px){.sib-summary{grid-template-columns:repeat(3,1fr);}}
  @media (max-width:560px){.sib-summary{grid-template-columns:repeat(2,1fr);} .sib-mes, .sib-mes select{width:100%;}}
  .sib-stat{background:var(--bg-2); border:1px solid var(--line-soft); border-radius:8px; padding:9px 12px; min-width:0;}
  .sib-stat .lbl{display:block; font-size:9.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-2); margin-bottom:4px;}
  .sib-stat .val{font-family:var(--mono); font-size:16px; font-weight:600; font-variant-numeric:tabular-nums;}
  .sib-stat.total{border-color:var(--gold);}
  .sib-badge{display:inline-block; font-family:var(--mono); font-size:10px; padding:2px 8px; border-radius:999px; border:1px solid var(--line);}
  .sib-badge.open{color:var(--gold-soft); border-color:var(--gold);}
  .sib-badge.closed{color:var(--muted);}
  .sib-cols{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
  @media (max-width:900px){.sib-cols{grid-template-columns:1fr;}}
  .card h3.sib-side{justify-content:flex-start; gap:10px; margin-bottom:10px;}
  .card h3.sib-side.long{color:var(--up);}
  .card h3.sib-side.short{color:var(--down);}
  .sib-list{display:flex; flex-direction:column; gap:8px;}
  .sib-item{
    background:var(--bg-2); border:1px solid var(--line-soft); border-left:3px solid var(--up);
    border-radius:8px; padding:10px 12px; min-width:0;
  }
  .sib-item.short{border-left-color:var(--down);}
  .sib-head{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap;}
  .sib-rank{font-family:var(--mono); font-size:10.5px; color:var(--muted-2);}
  .sib-head b{font-family:var(--mono); font-size:14px; color:var(--gold-soft);}
  .sib-name{font-size:11.5px; color:var(--muted); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .sib-res{font-family:var(--mono); font-size:14px; font-weight:600; margin-left:auto; font-variant-numeric:tabular-nums;}
  .sib-px{font-family:var(--mono); font-size:11px; color:var(--muted); margin-top:4px;}
  .sib-metrics{display:flex; flex-wrap:wrap; gap:4px 12px; margin-top:6px; font-size:10.5px; color:var(--muted-2);}
  .sib-metrics span b{color:var(--ink); font-weight:600; font-family:var(--mono);}
  .sib-relax{font-size:9.5px; color:var(--gold-soft); border:1px dashed var(--gold); border-radius:4px; padding:0 5px;}
  .sib-up{color:var(--up);} .sib-down{color:var(--down);}
  .sib-empty{color:var(--muted); font-size:12px; padding:10px 0;}
  .sib-note{font-size:10.5px; color:var(--muted-2); margin:16px 0 0; line-height:1.6;}
  .sib-note b{color:var(--muted);}

  /* ---------- Celular: sem rolagem horizontal da página ---------- */
  @media (max-width:700px){
    header.brandbar{padding:18px 16px 14px;}
    main{padding:20px 16px 48px;}
    footer{padding:20px 16px 30px;}
    /* barra de abas rola dentro dela mesma, não empurra a página */
    .tabnav{padding:10px 16px 0; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
    .tabnav::-webkit-scrollbar{display:none;}
    .tabbtn{flex:0 0 auto; white-space:nowrap; padding:10px 12px 12px;}
    /* vários .charts-grid têm grid-template-columns:1fr 1fr inline no index.html */
    .charts-grid{grid-template-columns:1fr !important;}
    .charts-grid > *, .cal-grid > *, .worklayout > *, .sib-cols > *, .anchor-grid > *, .quote-grid > *, .sector-grid > *{min-width:0;}
    .card h3{flex-wrap:wrap; gap:8px;}
    .sector-card-head{flex-wrap:wrap;}
    .sector-card-head .sc-meta{white-space:normal; text-align:left;}
    select{max-width:100%;}
  }

  /* ---------- Mesa de Operações Semanal (Visão Geral) ---------- */
  .mesa-card{margin-bottom:10px;}
  .mesa-bar{display:flex; flex-wrap:wrap; gap:14px 18px; align-items:flex-end; margin-bottom:14px;}
  .mesa-semana{display:flex; align-items:center; gap:8px;}
  .mesa-semana .btn{padding:7px 11px;}
  .mesa-semana-txt{display:flex; flex-direction:column; min-width:170px;}
  .mesa-semana-txt .lbl, .mesa-user label, .mesa-cfg label{font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted);}
  .mesa-semana-txt b{font-family:var(--mono); font-size:14px; color:var(--gold-soft);}
  .mesa-user{display:flex; flex-direction:column; gap:5px;}
  .mesa-cfg{display:flex; flex-wrap:wrap; gap:10px; flex:1; min-width:0;}
  .mesa-cfg label{display:flex; flex-direction:column; gap:5px;}
  .mesa-cfg input, .mesa-op input{
    background:var(--bg-2); border:1px solid var(--line); color:var(--ink); border-radius:7px;
    padding:7px 9px; font-size:13px; font-family:var(--mono); width:130px; max-width:100%;
  }
  .mesa-cfg input:focus, .mesa-op input:focus{outline:none; border-color:var(--gold);}
  .mesa-actions{display:flex; gap:8px; margin-left:auto;}
  .mesa-msg{font-size:12px; min-height:0; margin-bottom:6px;}
  .mesa-msg.err{color:var(--down);} .mesa-msg.ok{color:var(--up);}

  .mesa-kpis{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; margin-bottom:10px;}
  @media (max-width:1180px){.mesa-kpis{grid-template-columns:repeat(4,minmax(0,1fr));}}
  @media (max-width:560px){.mesa-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}}
  .mesa-kpi{background:var(--bg-2); border:1px solid var(--line-soft); border-radius:8px; padding:9px 12px; min-width:0;}
  .mesa-kpi .lbl{display:block; font-size:9.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-2); margin-bottom:4px;}
  .mesa-kpi .val{font-family:var(--mono); font-size:15px; font-weight:600; font-variant-numeric:tabular-nums;}
  .mesa-kpi .sub{display:block; font-size:10.5px; color:var(--muted-2); margin-top:2px;}
  .mesa-bar-risco{height:5px; background:var(--line-soft); border-radius:3px; margin-top:6px; overflow:hidden;}
  .mesa-bar-risco span{display:block; height:100%; background:var(--up);}
  .mesa-bar-risco span.warn{background:var(--gold);} .mesa-bar-risco span.over{background:var(--down);}

  .mesa-alertas{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px;}
  .mesa-alerta{font-size:11px; padding:4px 10px; border-radius:999px; border:1px solid var(--line);}
  .mesa-alerta.warn{color:var(--gold-soft); border-color:var(--gold);}
  .mesa-alerta.bad{color:var(--down); border-color:var(--down);}
  .mesa-alerta.good{color:var(--up); border-color:var(--up);}

  .mesa-layout{display:grid; grid-template-columns:260px 1fr; gap:18px; align-items:start;}
  @media (max-width:1050px){.mesa-layout{grid-template-columns:1fr;}}
  .mesa-layout > *{min-width:0;}
  .mesa-pool{background:var(--bg-2); border:1px solid var(--line-soft); border-radius:10px; padding:12px;}
  .card .mesa-pool h3{margin-bottom:8px;}
  .mesa-pool-lbl{font-size:10.5px; font-weight:600; letter-spacing:.5px; margin:8px 0 6px;}
  .mesa-pool-lbl.long{color:var(--up);} .mesa-pool-lbl.short{color:var(--down);}
  .mesa-list{display:flex; flex-direction:column; gap:6px; min-height:44px;}
  .mesa-chip{
    background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--up); border-radius:7px;
    padding:7px 10px; cursor:grab; user-select:none; touch-action:none;
  }
  .mesa-chip.short{border-left-color:var(--down);}
  .mesa-chip:hover{border-color:var(--gold);}
  .mesa-chip.usada{opacity:.4; cursor:not-allowed;}
  .mesa-chip .top{display:flex; justify-content:space-between; gap:6px; align-items:baseline;}
  .mesa-chip b{font-family:var(--mono); color:var(--gold-soft);}
  .mesa-chip .px{font-family:var(--mono); font-size:12px;}
  .mesa-chip .info{font-size:10.5px; color:var(--muted-2); margin-top:2px;}

  .mesa-board{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  @media (max-width:900px){.mesa-board{grid-template-columns:1fr;}}
  .mesa-board > *{min-width:0;}
  .mesa-drop{
    min-height:120px; border:1px dashed var(--line); border-radius:10px; padding:8px; background:rgba(0,0,0,.12);
  }
  .mesa-drop:empty::before{content:'Solte aqui as ações'; display:block; text-align:center; color:var(--muted-2); font-size:12px; padding:36px 0;}
  .mesa-drop .mesa-chip{opacity:.7;}
  .sortable-ghost{opacity:.35 !important;}
  .sortable-chosen{box-shadow:0 0 0 1px var(--gold);}

  .mesa-op{
    background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--up); border-radius:8px; padding:10px 12px;
  }
  .mesa-op.short{border-left-color:var(--down);}
  .mesa-op.encerrada{opacity:.85;}
  .mesa-op-head{display:flex; align-items:center; gap:8px; flex-wrap:wrap; cursor:grab; margin-bottom:8px;}
  .mesa-op-head .grip{color:var(--muted-2); font-size:14px;}
  .mesa-op-head b{font-family:var(--mono); font-size:14px; color:var(--gold-soft);}
  .mesa-op-head .sib-name{flex:1; min-width:80px;}
  .mesa-op-head select{padding:4px 6px; font-size:11.5px;}
  .mesa-op-head .op-del{background:none; border:1px solid var(--line); color:var(--muted); border-radius:6px; padding:3px 8px; cursor:pointer;}
  .mesa-op-head .op-del:hover{color:var(--down); border-color:var(--down);}
  .mesa-op-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px 8px;}
  @media (max-width:560px){.mesa-op-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
  .mesa-op-grid label{display:flex; flex-direction:column; gap:3px; font-size:9.5px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted-2); min-width:0;}
  .mesa-op-grid input{width:100%; padding:6px 7px; font-size:12.5px;}
  .mesa-op-met{display:flex; flex-wrap:wrap; gap:3px 12px; margin-top:8px; font-size:10.5px; color:var(--muted-2);}
  .mesa-op-met b{color:var(--ink); font-family:var(--mono); font-weight:600;}
  .mesa-op-flags{display:flex; flex-wrap:wrap; gap:6px; margin-top:6px;}
  .mesa-op-flags:empty{display:none;}
  .mesa-op-flags button{font-size:11px; padding:4px 9px;}

  .mesa-setores{display:flex; flex-wrap:wrap; gap:6px 14px; margin:14px 0 4px; font-size:11px; color:var(--muted-2);}
  .mesa-setores b{color:var(--ink); font-family:var(--mono);}
  .card h3.mesa-hist-title{margin:18px 0 8px;}
  .mesa-hist{width:100%; font-size:12px;}
  .mesa-hist td, .mesa-hist th{white-space:nowrap;}
  .mesa-hist tr.atual td{color:var(--gold-soft);}

  /* ---------- Horários de Negociação ActivTrades ---------- */
  .hor-top{display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-bottom:14px;}
  @media (max-width:1100px){.hor-top{grid-template-columns:repeat(2,1fr);}}
  .hor-filtros{display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; padding:12px 16px;}
  .hor-chips{display:flex; flex-wrap:wrap; gap:6px;}
  .hor-chip{background:var(--bg-2); border:1px solid var(--line); color:var(--muted); border-radius:999px; padding:5px 13px; font-size:12px; cursor:pointer;}
  .hor-chip:hover{color:var(--ink);}
  .hor-chip.active{background:var(--gold); border-color:var(--gold); color:#1a1408; font-weight:600;}
  .hor-busca{flex:1 1 220px; min-width:0; background:var(--bg-2); border:1px solid var(--line); border-radius:8px; color:var(--ink); padding:7px 11px; font-size:13px;}
  .hor-busca:focus{outline:1px solid var(--gold); border-color:var(--gold);}
  .hor-check{display:flex; align-items:center; gap:6px; font-size:12.5px; color:var(--muted); cursor:pointer; white-space:nowrap;}
  .hor-scroll{overflow-x:auto;}
  table.hor-table{width:100%; border-collapse:collapse; font-size:12.5px;}
  table.hor-table th{position:sticky; top:0; background:var(--panel-2); color:var(--muted); text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.5px; font-weight:600; padding:9px 12px; border-bottom:1px solid var(--line); white-space:nowrap;}
  table.hor-table td{padding:8px 12px; border-bottom:1px solid var(--line-soft); vertical-align:top; color:var(--ink);}
  table.hor-table td.tk{font-family:var(--mono); color:var(--gold-soft); font-weight:600; white-space:nowrap;}
  table.hor-table tr.cat-row td{background:var(--panel-2); color:var(--gold-soft); font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; font-weight:700; padding:8px 12px;}
  table.hor-table tr.is-open td{background:rgba(53,201,143,.04);}
  .hor-grupo{display:block; color:var(--muted-2); font-size:10.5px;}
  .hor-tag{display:inline-block; font-family:var(--mono); font-size:10px; font-weight:700; padding:2px 7px; border-radius:4px; text-transform:uppercase; letter-spacing:.3px;}
  .hor-tag.cont{background:rgba(53,201,143,.12); color:var(--up);}
  .hor-tag.fut{background:rgba(205,163,73,.14); color:var(--gold-soft);}
  .hor-status{white-space:nowrap;}
  .hor-status small, .hor-venc small{display:block; color:var(--muted-2); font-size:10.5px;}
  .hor-st{font-weight:600; font-size:12px;}
  .hor-st.on{color:var(--up);}
  .hor-st.off{color:var(--down);}
  .hor-hr{font-family:var(--mono); font-size:12px; line-height:1.7; white-space:nowrap;}
  .hor-dias{display:inline-block; min-width:62px; color:var(--muted);}
  .hor-mais1{font-size:9px; color:var(--gold-soft); vertical-align:super; margin-left:1px;}
  .hor-venc{font-family:var(--mono); white-space:nowrap;}
  .hor-venc.alerta{color:var(--down); font-weight:600;}
  .hor-vazio{text-align:center; color:var(--muted-2); padding:22px !important;}
  @media (max-width:700px){
    .hor-top{grid-template-columns:1fr 1fr;}
    table.hor-table td, table.hor-table th{padding:7px 8px;}
  }
  table.hor-table td.tk.operado{color:#00e5ff; text-shadow:0 0 6px rgba(0,229,255,.85), 0 0 14px rgba(0,229,255,.45); animation:horPisca 1.2s ease-in-out infinite;}
  .hor-leg-op{color:#00e5ff; font-family:var(--mono); font-weight:700; text-shadow:0 0 6px rgba(0,229,255,.85); animation:horPisca 1.2s ease-in-out infinite;}
  @keyframes horPisca{0%,100%{opacity:1;} 50%{opacity:.25;}}
  @media (prefers-reduced-motion: reduce){ table.hor-table td.tk.operado, .hor-leg-op{animation:none;} }

  /* ===== Custos & Contratos — ActivTrades ===== */
  .cus-h3{margin:0 0 12px; font-size:13px; color:var(--gold-soft); font-family:var(--mono); text-transform:uppercase; letter-spacing:.5px;}
  .cus-calc-in{display:flex; flex-wrap:wrap; gap:10px 14px; align-items:flex-end;}
  .cus-calc-in label{display:flex; flex-direction:column; gap:4px; font-size:10.5px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted-2);}
  .cus-calc-in select, .cus-calc-in input{background:var(--bg-2); border:1px solid var(--line); border-radius:8px; color:var(--ink); padding:7px 10px; font-size:13px; font-family:var(--mono); min-width:0;}
  .cus-calc-in select#cusCalcAtivo{max-width:100%; width:280px;}
  .cus-calc-in input{width:110px;}
  .cus-calc-in select:focus, .cus-calc-in input:focus{outline:1px solid var(--gold); border-color:var(--gold);}
  .cus-atalhos{display:flex; flex-wrap:wrap; gap:6px;}
  .cus-atalhos button{background:var(--bg-2); border:1px solid var(--line); color:var(--muted); border-radius:999px; padding:6px 12px; font-size:12px; cursor:pointer;}
  .cus-atalhos button:hover{color:var(--ink); border-color:var(--gold);}
  .cus-calc-out{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:14px;}
  @media (max-width:1100px){.cus-calc-out{grid-template-columns:repeat(2,1fr);}}
  .cus-calc-out .acct-stat small{display:block; color:var(--muted-2); font-size:10.5px; margin-top:3px; font-family:var(--mono);}
  .cus-calc-out .acct-stat.neg .val{color:var(--down);}
  .cus-aviso{margin:10px 0 0; font-size:12px; color:var(--gold-soft);}
  .cus-aviso:empty{display:none;}
  table.cus-table th small{display:block; font-size:9.5px; text-transform:none; letter-spacing:0; color:var(--muted-2); font-weight:500;}
  table.cus-table td.tk small{font-family:var(--sans, inherit); font-weight:400;}
  table.cus-table td.cus-num{font-family:var(--mono); font-size:12px; white-space:nowrap; font-variant-numeric:tabular-nums;}
  table.cus-table td small{display:block; color:var(--muted-2); font-size:10.5px;}
  table.cus-table .hor-tag{margin-top:4px;}
  .cus-lt{display:flex; justify-content:space-between; gap:10px;}
  .cus-lt i{font-style:normal; color:var(--muted-2); font-size:10.5px;}
  .cus-lt b{font-weight:600;}
  .cus-lt b.neg{color:var(--down);}
  .cus-lt b.pos{color:var(--up);}
  .cus-cur{color:var(--muted); font-size:10.5px;}
  .cus-x3{font-family:var(--mono); color:var(--gold-soft); font-weight:700;}
  .cus-alto{color:var(--gold-soft);}
  @media (max-width:700px){ .cus-calc-out{grid-template-columns:1fr 1fr;} .cus-calc-in input{width:90px;} }
  /* 8 abas (30/09/2026): sem quebra de texto dentro do botão; se faltar espaço, a barra quebra linha */
  .tabnav{flex-wrap:wrap;}
  .tabnav{gap:2px;}
  .tabbtn{white-space:nowrap; padding-left:9px; padding-right:9px; letter-spacing:.3px; font-size:11.5px;}
  table.cus-table td.tk small{white-space:normal; max-width:150px;}
  @media (max-width:700px){ .tabnav{flex-wrap:nowrap;} }

  /* Seleção diária Swing IBrX: entradas/saídas vs pregão anterior (02/10/2026) */
  .sib-mudancas{display:flex; flex-wrap:wrap; gap:6px 16px; align-items:center; font-size:11px; color:var(--muted); margin:-6px 0 14px;}
  .sib-mudancas:empty{display:none;}
  .sib-mudancas .lbl{font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted-2);}
  .sib-chg{display:inline-block; font-family:var(--mono); font-size:11px; padding:1px 7px; margin-left:4px; border-radius:999px; border:1px solid var(--line);}
  .sib-chg.in{color:var(--up); border-color:var(--up);}
  .sib-chg.out{color:var(--down); border-color:var(--down); text-decoration:line-through;}
  .sib-chg-none{margin-left:4px; color:var(--muted-2);}

/* Mesa: limite 3+3, substitutos, lucro no alvo */
.mesa-chip.bloqueada{opacity:.45; cursor:not-allowed;}
.mesa-chip .chip-sub{font-size:9.5px; text-transform:uppercase; letter-spacing:.4px; color:var(--gold-soft); border:1px solid var(--gold); border-radius:999px; padding:0 6px; margin-right:auto; margin-left:6px;}
.mesa-chip .chip-foot{display:flex; justify-content:space-between; align-items:center; gap:6px; margin-top:4px;}
.mesa-chip .chip-lucro{font-size:10.5px; color:var(--muted-2);}
.mesa-chip .chip-lucro b{font-family:var(--mono); color:var(--up); font-weight:600;}
.mesa-chip .chip-trocar{background:none; border:1px solid var(--line); color:var(--muted); border-radius:6px; font-size:10.5px; padding:1px 7px; cursor:pointer; flex-shrink:0;}
.mesa-chip .chip-trocar:hover{border-color:var(--gold); color:var(--gold-soft);}
.mesa-chip .chip-trocar:disabled{opacity:.5; cursor:wait;}
.mesa-pool-foot{margin-top:10px;}
.mesa-pool-foot .btn{width:100%; font-size:11px; padding:5px 8px;}
.card h3 .tag.cheio{color:var(--gold-soft); font-weight:600;}
.mesa-user[hidden]{display:none;}

/* Índices IBrX 100 / Small Caps: seletor e selo "Small" */
.idx-switch{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 14px;}
.idx-switch .lbl{font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted);}
.idx-btn{background:var(--bg-2); border:1px solid var(--line); color:var(--muted); border-radius:999px; padding:6px 14px; font-size:12px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:6px;}
.idx-btn:hover:not(:disabled){border-color:var(--gold); color:var(--gold-soft);}
.idx-btn.active{background:var(--gold); border-color:var(--gold); color:#14201b;}
.idx-btn:disabled{opacity:.5; cursor:wait;}
.idx-fonte{font-size:11px; color:var(--muted-2);}
.small-tag{display:inline-block; margin-left:5px; padding:0 5px; border-radius:4px; font-family:var(--mono, monospace); font-size:9px; font-weight:700; letter-spacing:.3px; line-height:15px; vertical-align:1px; color:#14201b; background:#4fc3c9; text-transform:uppercase;}
.idx-btn.active .small-tag{background:#14201b; color:#4fc3c9;}
.tape span .small-tag{margin:0 6px 0 -2px;}
.mesa-idx{display:flex; gap:6px; margin:0 0 8px;}
.mesa-idx-btn{flex:1; background:var(--bg); border:1px solid var(--line); color:var(--muted); border-radius:999px; padding:4px 8px; font-size:11px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:4px;}
.mesa-idx-btn:hover{border-color:var(--gold); color:var(--gold-soft);}
.mesa-idx-btn.active{background:var(--gold); border-color:var(--gold); color:#14201b;}
.mesa-idx-btn.active .small-tag{background:#14201b; color:#4fc3c9;}
.mesa-op-idx{font-size:9.5px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted-2); border:1px solid var(--line); border-radius:999px; padding:0 6px;}
.mesa-chip .top .small-tag{margin-right:auto;}
/* Fita de preços: selo "Small" em vermelho fluorescente (mais legível em movimento) */
.tape span .small-tag{background:transparent; color:#ff1f4b; border:1px solid #ff1f4b; font-size:9.5px; line-height:14px;
  text-shadow:0 0 6px rgba(255,31,75,.85), 0 0 12px rgba(255,31,75,.45); box-shadow:0 0 6px rgba(255,31,75,.45);}

/* Marca "Perceptron $mart Trading" (03/10/2026): Perceptron pisca; Trading usa o .w-black original (preto com brilho branco) */
.w-ton.blink{animation:cashBlink 1.3s ease-in-out infinite;}
@media (prefers-reduced-motion: reduce){ .w-ton.blink{animation:none;} }
/* Chip da Mesa com os dois selos (Small + substituto): preço não quebra linha */
.mesa-chip .top{flex-wrap:wrap; row-gap:2px;}
.mesa-chip .top .px{white-space:nowrap; margin-left:auto;}
/* Histórico semanal: linha de título por mês/ano */
.mesa-hist tr.mes td{background:var(--bg-2); color:var(--gold-soft); font-size:11.5px; padding-top:7px; padding-bottom:7px; border-top:1px solid var(--line);}
.mesa-hist tr.mes td span{color:var(--muted-2); margin-left:10px; font-size:11px;}
/* Status "Cancelada": lista da semana e coluna do histórico */
.mesa-canceladas{display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:10px 0 0; font-size:11px;}
.mesa-canceladas:empty{display:none;}
.mesa-canceladas .lbl{color:var(--muted-2);}
.mesa-cancel{border:1px dashed var(--line); border-radius:999px; padding:2px 9px; color:var(--muted); text-decoration:line-through; text-decoration-color:var(--down);}
.mesa-cancel i{font-style:normal; font-size:9.5px; color:var(--muted-2); text-decoration:none; margin-left:3px;}
.mesa-cancel .small-tag{text-decoration:none;}
.mesa-hist td.hist-cancel{color:var(--down);}

/* Swing Trade MA ao vivo */
.qc-var{font-family:var(--mono); font-size:11.5px; font-weight:600; margin-left:8px;}
.qc-var.up{color:var(--up);} .qc-var.down{color:var(--down);}
.qc-mms{font-size:10.5px; color:var(--muted-2); margin-top:2px; font-family:var(--mono);}
.swing-live{display:inline-flex; align-items:center; gap:6px; margin-left:8px; font-size:11.5px; color:var(--muted);}
.live-dot{width:8px; height:8px; border-radius:50%; background:var(--up); box-shadow:0 0 6px var(--up); animation:cashBlink 1.6s ease-in-out infinite;}
.live-dot.off{background:var(--muted-2); box-shadow:none; animation:none;}
.ma-info{font-size:11px; color:var(--muted-2); margin-left:10px;}
.swing-table .qc-var{font-size:10.5px; margin-left:4px;}
@media (prefers-reduced-motion: reduce){ .live-dot{animation:none;} }
.swing-chart-placeholder[hidden], #swingMaBox[hidden]{display:none !important;}

/* Gráficos de pontos reais — card profissional */
.anchor-card.ac-pro{position:relative; overflow:hidden; padding:16px 18px 14px; background:linear-gradient(180deg, var(--panel-2) 0%, var(--panel) 55%);
  border:1px solid var(--line); border-radius:14px; box-shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 8px 24px rgba(0,0,0,.25); transition:border-color .2s;}
.anchor-card.ac-pro::before{content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--up);}
.anchor-card.ac-pro.down::before{background:var(--down);}
.anchor-card.ac-pro:hover{border-color:var(--gold);}
.ac-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:8px;}
.ac-id{min-width:0;}
.ac-sym{font-family:var(--mono); font-weight:700; font-size:14px; color:var(--gold-soft); letter-spacing:.3px; display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.ac-cat{font-family:var(--sans); font-weight:500; font-size:9.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted-2); border:1px solid var(--line); border-radius:999px; padding:1px 7px;}
.ac-name{font-size:11px; color:var(--muted); margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ac-px{text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:2px; flex-shrink:0;}
.ac-px b{font-family:var(--mono); font-size:17px; font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums;}
.ac-px .qc-var{margin-left:0;}
.ac-trend{font-size:9.5px; text-transform:uppercase; letter-spacing:.5px; padding:1px 7px; border-radius:999px;}
.ac-trend.up{color:var(--up); background:rgba(53,201,143,.1);} .ac-trend.down{color:var(--down); background:rgba(226,86,79,.1);}
.anchor-card.ac-pro .ac-chart{height:170px; margin:2px -4px 4px;}
.ac-legend{display:flex; flex-wrap:wrap; gap:4px 12px; font-size:10px; color:var(--muted-2); margin-bottom:10px;}
.ac-legend span{display:inline-flex; align-items:center; gap:5px;}
.ac-legend .ln{width:14px; height:2px; display:inline-block; background:var(--up);}
.ac-legend .ln.down{background:var(--down);}
.ac-legend .ln.mm{background:repeating-linear-gradient(90deg, rgba(233,200,118,.85) 0 4px, transparent 4px 7px);}
.ac-legend .pt{width:7px; height:7px; border-radius:50%; display:inline-block;}
.ac-legend .pt.min{background:var(--down);} .ac-legend .pt.max{background:var(--up);} .ac-legend .pt.last{background:var(--gold-soft);}
.ac-range{background:var(--bg-2); border:1px solid var(--line-soft); border-radius:9px; padding:8px 10px; margin-bottom:10px;}
.ac-range-top, .ac-range-lbl{display:flex; justify-content:space-between; gap:8px; font-size:10px; color:var(--muted-2);}
.ac-range-top span:first-child{text-transform:uppercase; letter-spacing:.5px;}
.ac-range-lbl{font-family:var(--mono); color:var(--muted); margin-top:5px;}
.ac-range-lbl i{font-style:normal; color:var(--muted-2); font-size:9.5px;}
.ac-bar{position:relative; height:6px; background:var(--line-soft); border-radius:3px; margin-top:6px;}
.ac-bar .fill{position:absolute; left:0; top:0; bottom:0; border-radius:3px; background:linear-gradient(90deg, rgba(226,86,79,.55), rgba(233,200,118,.6), rgba(53,201,143,.7));}
.ac-bar .mark{position:absolute; top:50%; width:11px; height:11px; border-radius:50%; background:var(--gold-soft); border:2px solid var(--bg); transform:translate(-50%,-50%); box-shadow:0 0 6px rgba(233,200,118,.6);}
.ac-stats{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:8px;}
@media (max-width:520px){ .ac-stats{grid-template-columns:repeat(2, minmax(0,1fr));} }
.ac-st{background:var(--bg-2); border:1px solid var(--line-soft); border-radius:8px; padding:6px 8px; min-width:0;}
.ac-st span{display:block; font-size:9px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-2);}
.ac-st b{display:block; font-family:var(--mono); font-size:11.5px; color:var(--ink); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ac-st i{font-style:normal; font-size:9.5px; color:var(--muted-2);}
.anchor-card.ac-pro .ac-src{font-size:9.5px; color:var(--muted-2); margin-top:9px;}

/* Swing Trade MA: painel-resumo do topo */
.sw-resumo{margin-bottom:6px;}
.sw-res-head h3{margin:0;}
.sw-res-sub{margin:4px 0 12px; font-size:12px; color:var(--muted);}
.sw-kpis{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; margin-bottom:12px;}
@media (max-width:900px){ .sw-kpis{grid-template-columns:repeat(2, minmax(0,1fr));} }
.sw-kpi{background:var(--bg-2); border:1px solid var(--line-soft); border-radius:10px; padding:10px 12px; min-width:0;}
.sw-kpi .lbl{display:block; font-size:9.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-2); margin-bottom:4px;}
.sw-kpi b{display:block; font-family:var(--mono); font-size:20px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.sw-kpi b i{font-style:normal; font-size:13px; color:var(--muted-2); font-weight:500;}
.sw-kpi b.up{color:var(--up);} .sw-kpi b.down{color:var(--down);}
.sw-kpi .sub{display:block; font-size:10.5px; color:var(--muted-2); margin-top:3px;}
.sw-breadth{height:5px; border-radius:3px; background:rgba(226,86,79,.55); margin-top:6px; overflow:hidden;}
.sw-breadth span{display:block; height:100%; background:var(--up);}
.sw-sinais{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px;}
@media (max-width:900px){ .sw-sinais{grid-template-columns:1fr;} }
.sw-sinal{background:var(--bg-2); border:1px solid var(--line-soft); border-radius:10px; padding:9px 12px;}
.sw-sinal .lbl, .sw-cats .lbl{display:block; font-size:10.5px; font-weight:600; margin-bottom:6px; color:var(--muted);}
.sw-sinal .lbl.up{color:var(--up);} .sw-sinal .lbl.down{color:var(--down);}
.sw-sinal .lbl i{font-style:normal; font-weight:400; color:var(--muted-2); margin-left:4px; font-family:var(--mono); font-size:9.5px;}
.sw-chip{display:inline-block; font-family:var(--mono); font-size:10.5px; padding:2px 8px; border-radius:999px; margin:0 5px 5px 0; border:1px solid var(--line);}
.sw-chip.up{color:var(--up); border-color:rgba(53,201,143,.45); background:rgba(53,201,143,.08);}
.sw-chip.down{color:var(--down); border-color:rgba(226,86,79,.45); background:rgba(226,86,79,.08);}
.sw-chip-none{font-size:11px; color:var(--muted-2);}
.sw-cats-grid{display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px;}
@media (max-width:900px){ .sw-cats-grid{grid-template-columns:repeat(2, minmax(0,1fr));} }
.sw-cat{background:var(--bg-2); border:1px solid var(--line-soft); border-radius:8px; padding:7px 10px;}
.sw-cat-top{display:flex; justify-content:space-between; gap:6px; font-size:10.5px; color:var(--muted);}
.sw-cat-top b{font-family:var(--mono); color:var(--ink);}
.sw-cat-bar{height:4px; border-radius:2px; background:rgba(226,86,79,.5); margin-top:6px; overflow:hidden;}
.sw-cat-bar span{display:block; height:100%; background:var(--up);}
.sw-res-nota{font-size:10.5px; color:var(--muted-2); margin:10px 0 0;}

/* Painel de médias: botões dos ativos, destaque piscante e janela do gráfico */
button.sw-chip{cursor:pointer; font-family:var(--mono); transition:transform .12s, box-shadow .12s, background .12s;}
button.sw-chip span{font-size:9px; opacity:.7;}
button.sw-chip.up:hover{background:rgba(53,201,143,.2); box-shadow:0 0 8px rgba(53,201,143,.45); transform:translateY(-1px);}
button.sw-chip.down:hover{background:rgba(226,86,79,.2); box-shadow:0 0 8px rgba(226,86,79,.45); transform:translateY(-1px);}
button.sw-chip:focus-visible, .sw-destaque:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
.sw-destaque{all:unset; cursor:pointer; font-family:var(--mono); font-weight:700; animation:swPisca 1.1s ease-in-out infinite;}
.sw-destaque.up{color:#39ff9a; text-shadow:0 0 6px rgba(57,255,154,.9), 0 0 16px rgba(57,255,154,.55);}
.sw-destaque.down{color:#ff3b5c; text-shadow:0 0 6px rgba(255,59,92,.9), 0 0 16px rgba(255,59,92,.55);}
@keyframes swPisca{0%,100%{opacity:1;} 50%{opacity:.25;}}
@media (prefers-reduced-motion: reduce){ .sw-destaque{animation:none;} }
.sw-modal{position:fixed; inset:0; z-index:9000; background:rgba(4,9,7,.72); backdrop-filter:blur(3px); display:flex; align-items:center; justify-content:center; padding:16px;}
.sw-modal[hidden]{display:none;}
body.sw-modal-aberto{overflow:hidden;}
.sw-modal-box{width:min(920px, 100%); max-height:calc(100vh - 32px); overflow:auto; background:linear-gradient(180deg, var(--panel-2), var(--panel)); border:1px solid var(--line); border-radius:16px; box-shadow:0 24px 60px rgba(0,0,0,.55); padding:18px 20px;}
.sw-modal-head{display:flex; align-items:flex-start; gap:14px;}
.sw-modal-head > div:first-child{flex:1; min-width:0;}
.sw-modal-tit{font-family:var(--mono); font-weight:700; font-size:18px; color:var(--gold-soft);}
.sw-modal-nome{font-size:12px; color:var(--muted); margin-top:2px;}
.sw-modal-px{text-align:right;}
.sw-modal-px b{display:block; font-family:var(--mono); font-size:20px; color:var(--ink);}
.sw-modal-x{background:var(--bg-2); border:1px solid var(--line); color:var(--muted); border-radius:8px; width:34px; height:34px; cursor:pointer; font-size:14px;}
.sw-modal-x:hover{border-color:var(--gold); color:var(--gold-soft);}
.sw-modal-bar{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; margin:12px 0 6px;}
.sw-modal-per{display:flex; gap:4px;}
.sw-modal-per button{background:var(--bg-2); border:1px solid var(--line); color:var(--muted); border-radius:999px; padding:3px 12px; font-size:11px; font-weight:600; cursor:pointer;}
.sw-modal-per button.active{background:var(--gold); border-color:var(--gold); color:#14201b;}
.sw-modal-leg{display:flex; flex-wrap:wrap; gap:4px 12px; font-size:10.5px; color:var(--muted-2);}
.sw-modal-leg span{display:inline-flex; align-items:center; gap:5px;}
.sw-modal-leg i{width:14px; height:2px; display:inline-block;}
.sw-modal-leg i.tr{background:repeating-linear-gradient(90deg, #8fa79b 0 4px, transparent 4px 7px);}
.sw-modal-chart{height:340px;}
@media (max-width:600px){ .sw-modal-chart{height:240px;} }
.sw-modal-stats{display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:8px; margin-top:12px;}
@media (max-width:760px){ .sw-modal-stats{grid-template-columns:repeat(3, minmax(0,1fr));} }
.sw-ms{background:var(--bg-2); border:1px solid var(--line-soft); border-radius:8px; padding:6px 9px; min-width:0;}
.sw-ms span{display:block; font-size:9px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-2);}
.sw-ms b{display:block; font-family:var(--mono); font-size:12px; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.sw-ms b.up{color:var(--up);} .sw-ms b.down{color:var(--down);}
.sw-modal-src{font-size:10px; color:var(--muted-2); margin-top:10px;}

/* Grade de cotações e tabela: botões que abrem a janela do gráfico */
.qc-sym-btn{background:none; border:0; padding:0; cursor:pointer; font:inherit; color:inherit; display:inline-flex; align-items:center; gap:4px;}
.qc-sym-btn span{font-size:10px; opacity:.6; transition:opacity .15s, transform .15s;}
.qc-sym-btn:hover{color:var(--gold); text-shadow:0 0 8px rgba(233,200,118,.5);}
.qc-sym-btn:hover span{opacity:1; transform:translate(1px,-1px);}
.qc-graf{margin-top:8px; width:100%; background:var(--bg-2); border:1px solid var(--line); color:var(--muted); border-radius:7px; padding:5px 8px; font-size:11px; font-weight:600; cursor:pointer; transition:border-color .15s, color .15s, box-shadow .15s;}
.qc-graf:hover{border-color:var(--gold); color:var(--gold-soft); box-shadow:0 0 8px rgba(233,200,118,.25);}
.tk-btn{background:none; border:0; padding:0; cursor:pointer; font:inherit; color:var(--gold-soft); font-family:var(--mono); font-weight:700;}
.tk-btn:hover{color:var(--gold); text-decoration:underline;}
.qc-sym-btn:focus-visible, .qc-graf:focus-visible, .tk-btn:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
.quote-card{display:flex; flex-direction:column;}
.quote-card .qc-graf{margin-top:auto;}
.quote-card .qc-src{margin-bottom:8px;}

/* Janela do gráfico: time frame Diário / Semanal */
.sw-modal-ctrl{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.sw-modal-tf{display:flex; background:var(--bg-2); border:1px solid var(--line); border-radius:8px; padding:2px;}
.sw-modal-tf button{background:none; border:0; color:var(--muted); padding:4px 12px; border-radius:6px; font-size:11px; font-weight:600; cursor:pointer;}
.sw-modal-tf button.active{background:var(--blue); color:#fff;}
.sw-modal-tf button:focus-visible, .sw-modal-per button:focus-visible{outline:2px solid var(--gold); outline-offset:1px;}
/* Gráficos de pontos reais: botões que abrem a janela do gráfico */
.anchor-card.ac-pro .ac-sym .qc-sym-btn{color:var(--gold-soft); font-family:var(--mono); font-weight:700; font-size:14px;}
.anchor-card.ac-pro .qc-graf{margin-top:10px;}

/* Cores fluorescentes da tabela Cotações & Médias Móveis + botão PDF do painel */
.neon-up{color:#39ff9a !important; text-shadow:0 0 5px rgba(57,255,154,.65), 0 0 12px rgba(57,255,154,.3);}
.neon-down{color:#ff3b5c !important; text-shadow:0 0 5px rgba(255,59,92,.65), 0 0 12px rgba(255,59,92,.3);}
.neon-up .qc-var, .neon-down .qc-var{color:inherit !important;}
.swing-table td.sinal-neon{font-size:11.5px; font-weight:700; white-space:nowrap;}
.sw-cores-leg{font-size:10.5px; color:var(--muted-2); margin:-4px 0 10px;}
.sw-res-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px;}
.sw-res-head .btn{flex-shrink:0;}
@media (max-width:600px){ .sw-res-head{flex-direction:column;} }
.card h3.sw-tab-head{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.card h3.sw-tab-head .btn{margin-left:auto; text-transform:none; letter-spacing:0;}

/* Card do Ibovespa na Visão Geral */
.ibov-card{margin-bottom:18px; background:linear-gradient(180deg, var(--panel-2), var(--panel));}
.ibov-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px;}
.card .ibov-head h3{margin:0;}
.ibov-sub{font-size:11.5px; color:var(--muted); margin-top:4px;}
.ibov-px{text-align:right; flex-shrink:0;}
.ibov-px b{display:block; font-family:var(--mono); font-size:22px; color:var(--ink); font-weight:600;}
.ibov-px .qc-var{margin-left:0; font-size:12.5px;}
.ibov-bar{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; margin:12px 0 6px;}
.ibov-ctrl{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.ibov-chart{height:300px;}
@media (max-width:600px){ .ibov-chart{height:230px;} .ibov-head{flex-direction:column;} .ibov-px{text-align:left;} }
.ibov-nota{font-size:10.5px; color:var(--muted-2); margin:10px 0 0;}

/* Abas Curva de Juros EUA e Mercados Globais */
.juros-status{font-size:11.5px; color:var(--muted); display:inline-flex; align-items:center; gap:6px; margin-left:6px;}
.juros-leg{margin:4px 0 6px;}
.juros-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media (max-width:1000px){ .juros-grid{grid-template-columns:1fr;} }
.juros-grid > *{min-width:0;}
.juros-sel{margin-left:auto; padding:4px 8px; font-size:12px; text-transform:none; letter-spacing:0;}
.juros-tab td, .juros-tab th{white-space:nowrap;}
.juros-stats{grid-template-columns:repeat(5, minmax(0,1fr));}
@media (max-width:600px){ .juros-stats{grid-template-columns:repeat(2, minmax(0,1fr));} }
.gl-pisca{animation:swPisca 1.1s ease-in-out infinite;}
.gl-amarelo{color:#ffd23f !important; text-shadow:0 0 5px rgba(255,210,63,.6);}
.gl-topo{display:grid; grid-template-columns:1fr 1.4fr; gap:18px; margin-bottom:18px;}
@media (max-width:1000px){ .gl-topo{grid-template-columns:1fr;} }
.gl-topo > *{min-width:0;}
.gl-topo .card h3, .gl-topo h3{margin:0 0 10px;}
.gl-risco-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
@media (max-width:520px){ .gl-risco-grid{grid-template-columns:1fr;} }
.gl-r{background:var(--bg-2); border:1px solid var(--line-soft); border-radius:10px; padding:10px 12px; min-width:0;}
.gl-r .lbl{display:block; font-size:10px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-2); margin-bottom:4px;}
.gl-r > b{display:block; font-family:var(--mono); font-size:22px; font-weight:600;}
.gl-r .sub{display:block; font-size:11px; color:var(--muted-2); margin-top:3px;}
.gl-vixbar{position:relative; height:6px; border-radius:3px; margin-top:8px; background:linear-gradient(90deg, #35c98f 0 37.5%, #ffd23f 37.5% 62.5%, #e2564f 62.5% 100%);}
.gl-vixbar span{position:absolute; top:50%; width:11px; height:11px; border-radius:50%; background:#fff; border:2px solid var(--bg); transform:translate(-50%,-50%); box-shadow:0 0 6px rgba(255,255,255,.7);}
.gl-vixleg{display:flex; justify-content:space-between; font-size:9px; color:var(--muted-2); margin-top:4px;}
.gl-vixleg i{font-style:normal;}
.gl-kpis{margin-bottom:0;}
.gl-regiao{margin-bottom:18px;}
.gl-reg-head{display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:10px; border-bottom:1px solid var(--line-soft); padding-bottom:6px;}
.gl-reg-head h3{margin:0; font-size:13px; text-transform:uppercase; letter-spacing:.8px; color:var(--gold-soft);}
.gl-reg-head span{font-size:11px; color:var(--muted-2);}
.gl-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:12px;}
.gl-card{position:relative; display:flex; flex-direction:column; gap:3px; background:linear-gradient(180deg, var(--panel-2), var(--panel)); border:1px solid var(--line); border-radius:12px; padding:12px 14px 12px 16px; overflow:hidden;}
.gl-card::before{content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--up);}
.gl-card.down::before{background:var(--down);}
.gl-card:hover{border-color:var(--gold);}
.gl-top{display:flex; justify-content:space-between; align-items:center; gap:6px;}
.gl-top .qc-sym-btn{font-family:var(--mono); font-weight:700; color:var(--gold-soft); font-size:13.5px;}
.gl-pais{font-size:9.5px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-2); border:1px solid var(--line); border-radius:999px; padding:1px 7px;}
.gl-nome{font-size:11px; color:var(--muted);}
.gl-px{display:flex; align-items:baseline; gap:8px; margin-top:2px;}
.gl-px b{font-family:var(--mono); font-size:18px; color:var(--ink); font-weight:600;}
.gl-px span{font-family:var(--mono); font-size:12px; font-weight:600;}
.gl-vars{display:flex; gap:12px; font-size:11px; color:var(--muted-2);}
.gl-vars b{font-family:var(--mono);}
.gl-mm{font-size:10.5px; font-weight:600;}
.gl-data{font-size:10px; color:var(--muted-2);}
.gl-card .qc-graf{margin-top:auto;}

/* Estudo de Mercados: cortina de opções e seções */
.tabbtn-cortina .caret{display:inline-block; font-size:10px; margin-left:3px; transition:transform .2s;}
.tabbtn-cortina.cortina-aberta .caret{transform:rotate(180deg);}
.estudo-cortina{max-width:1360px; margin:0 auto; padding:0 40px; overflow:hidden;}
.estudo-cortina[hidden]{display:none;}
.estudo-cortina-in{background:linear-gradient(180deg, var(--panel-2), var(--panel)); border:1px solid var(--line); border-top:2px solid var(--gold);
  border-radius:0 0 14px 14px; padding:14px 16px 16px; box-shadow:0 14px 34px rgba(0,0,0,.4); animation:cortinaDesce .28s ease-out;}
@keyframes cortinaDesce{from{transform:translateY(-14px); opacity:0;} to{transform:none; opacity:1;}}
@media (prefers-reduced-motion: reduce){ .estudo-cortina-in{animation:none;} }
.estudo-cortina-tit{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:var(--gold-soft); margin-bottom:10px;}
.estudo-cortina-tit span{font-weight:400; text-transform:none; letter-spacing:0; color:var(--muted-2); margin-left:6px;}
.estudo-opcoes{display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:8px;}
.estudo-op{display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; column-gap:10px; align-items:center; text-align:left;
  background:var(--bg-2); border:1px solid var(--line); border-radius:10px; padding:10px 12px; cursor:pointer; color:var(--ink); transition:border-color .15s, transform .15s, box-shadow .15s;}
.estudo-op .ic{grid-row:1 / 3; font-size:22px;}
.estudo-op b{font-size:12.5px;}
.estudo-op i{font-style:normal; font-size:10.5px; color:var(--muted-2);}
.estudo-op:hover, .estudo-op.active{border-color:var(--gold); box-shadow:0 0 10px rgba(233,200,118,.25); transform:translateY(-1px);}
.estudo-op.active b{color:var(--gold-soft);}
.estudo-op:focus-visible, .estudo-chip:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
.estudo-nav{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px;}
.estudo-chip{background:var(--bg-2); border:1px solid var(--line); color:var(--muted); border-radius:999px; padding:6px 12px; font-size:12px; font-weight:600; cursor:pointer;}
.estudo-chip:hover{border-color:var(--gold); color:var(--gold-soft);}
.estudo-chip.active{background:var(--gold); border-color:var(--gold); color:#14201b;}
.estudo-head{display:flex; align-items:center; gap:12px; margin-bottom:14px;}
.estudo-head .ic{font-size:30px;}
.card .estudo-head h3{margin:0; font-size:15px; color:var(--gold-soft);}
.estudo-head p{margin:2px 0 0; font-size:12px; color:var(--muted);}
.estudo-vazio{border:1px dashed var(--line); border-radius:10px; padding:28px 16px; text-align:center; color:var(--muted-2); font-size:13px;}
@media (max-width:700px){ .estudo-cortina{padding:0 16px;} }

/* Estudo de Mercados: ativos de cada mercado (mesmo visual dos cards de Mercados Globais) */
.estudo-ativos{margin-bottom:18px;}
.estudo-status{display:inline-flex; margin-bottom:10px;}
.estudo-kpis{margin-bottom:14px;}
.estudo-grupo{margin:16px 0 8px;}

/* Estudo de Mercados: títulos de juros e spreads de cada mercado */
.estudo-juros{margin-top:22px; padding-top:4px; border-top:1px dashed var(--line);}
.estudo-spread::before{background:var(--gold);}
.estudo-spread.down::before{background:var(--down);}
.estudo-delta{color:var(--muted); font-size:12px;}
.sw-pisca-txt{animation:swPisca 1.2s ease-in-out infinite;}
@media (prefers-reduced-motion: reduce){ .sw-pisca-txt{animation:none;} }
.estudo-juros-fonte{margin-top:10px; font-size:11px; color:var(--muted-2);}
.estudo-ativos .gl-top .qc-sym-btn{text-align:left;}

/* Estudo de Mercados: estudos (artigos) de cada mercado */
.estudo-lista-tit{display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin:6px 0 12px; border-bottom:1px solid var(--line-soft); padding-bottom:6px;}
.estudo-lista-tit h3{margin:0; font-size:13px; text-transform:uppercase; letter-spacing:.8px; color:var(--gold-soft);}
.estudo-lista-tit span{font-size:11px; color:var(--muted-2);}
.estudo-artigo{display:grid; grid-template-columns:minmax(0, 1.5fr) minmax(0, 1fr); gap:18px; align-items:start;
  background:linear-gradient(180deg, var(--panel-2), var(--panel)); border:1px solid var(--line); border-left:3px solid var(--gold); border-radius:12px; padding:18px 20px; margin-bottom:14px;}
.estudo-kicker{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:1px; color:#e08a5c;}
.card .estudo-titulo{margin:6px 0 10px; font-family:Georgia, 'Times New Roman', serif; font-size:26px; line-height:1.15; font-weight:700; color:var(--ink);}
.estudo-lead{margin:0 0 12px; font-family:Georgia, 'Times New Roman', serif; font-size:15.5px; line-height:1.55; color:var(--muted);}
.estudo-hoje{display:flex; flex-wrap:wrap; gap:6px 14px; align-items:baseline; background:var(--bg-2); border:1px solid var(--line); border-radius:8px; padding:8px 12px; margin-bottom:12px; font-size:12.5px;}
.estudo-hoje:empty{display:none;}
.estudo-hoje .lbl{width:100%; font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted-2);}
.estudo-hoje-it b{font-family:var(--mono); color:var(--gold-soft);}
.estudo-hoje-it i{font-style:normal; font-size:11px;}
.estudo-acoes{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px;}
.estudo-acoes .qc-graf{width:auto; margin-top:0; padding:6px 12px; text-decoration:none; display:inline-flex; align-items:center;}
.estudo-artigo-img{display:block; width:100%; padding:0; cursor:pointer; background:none; border-radius:8px; overflow:hidden; border:1px solid var(--line);}
.estudo-artigo-img:focus-visible, .estudo-indice button:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
.estudo-indice{list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:2px;}
.estudo-indice button{width:100%; text-align:left; background:none; border:0; border-bottom:1px solid var(--line-soft); color:var(--muted); font-size:12.5px; padding:6px 2px; cursor:pointer;}
.estudo-indice button:hover{color:var(--gold-soft);}
.estudo-indice span{font-family:var(--mono); font-size:11px; color:#e08a5c; margin-right:6px;}
.estudo-ler{border-color:var(--gold); color:var(--gold-soft);}
.estudo-leitor{position:fixed; inset:0; z-index:1000; background:rgba(4,10,9,.78); display:flex; align-items:center; justify-content:center; padding:18px;}
.estudo-leitor[hidden]{display:none;}
.estudo-leitor-box{width:min(1120px, 100%); height:100%; display:flex; flex-direction:column; background:var(--panel); border:1px solid var(--line); border-top:2px solid var(--gold); border-radius:12px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.6);}
.estudo-leitor-bar{display:flex; align-items:center; gap:10px; padding:8px 12px; border-bottom:1px solid var(--line);}
.estudo-leitor-bar b{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; color:var(--gold-soft);}
.estudo-leitor-bar .qc-graf{width:auto; margin:0; text-decoration:none;}
.estudo-leitor-x{background:var(--bg-2); border:1px solid var(--line); color:var(--ink); border-radius:7px; width:32px; height:30px; cursor:pointer;}
.estudo-leitor-x:hover{border-color:var(--gold);}
.estudo-leitor iframe{flex:1; width:100%; border:0; background:#eee7d8;}
@media (max-width:700px){ .estudo-leitor{padding:0;} .estudo-leitor-box{border-radius:0;} }
.estudo-artigo-img img{display:block; width:100%; height:auto; transition:transform .2s;}
.estudo-artigo-img:hover img{transform:scale(1.02);}
@media (max-width:800px){ .estudo-artigo{grid-template-columns:1fr; padding:14px;} .card .estudo-titulo{font-size:21px;} }
.estudo-snap{display:flex; flex-wrap:wrap; gap:6px 16px; font-family:var(--mono); font-size:11.5px; color:var(--muted-2); border-top:1px solid var(--line-soft); padding-top:8px; margin-bottom:12px;}
.estudo-snap b{color:var(--ink); font-weight:500;}
.estudo-artigo-lado .estudo-indice:first-child{margin-top:0;}
.estudo-nota{margin:0; font-size:11.5px; color:var(--muted-2);}
.estudo-nota b{color:var(--muted);}
.estudo-zona{width:100%; font-size:12px; color:var(--muted); border-top:1px dashed var(--line); padding-top:6px; margin-top:2px;}
.estudo-zona b{color:var(--gold-soft); font-weight:600;}
/* checklist de confluência ao vivo (guia intermarket do BTC) */
.estudo-confluencia{display:flex; flex-wrap:wrap; gap:6px; align-items:stretch; background:var(--bg-2); border:1px solid var(--line); border-radius:8px; padding:8px 12px; margin-bottom:12px; font-size:12.5px;}
.estudo-confluencia .lbl{width:100%; font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted-2);}
.estudo-conf-it{flex:1 1 150px; display:flex; flex-direction:column; gap:1px; border:1px solid var(--line); border-left-width:3px; border-radius:6px; padding:5px 8px;}
.estudo-conf-it b{font-family:var(--mono); color:var(--gold-soft);}
.estudo-conf-it i{font-style:normal; font-size:11px; color:var(--muted);}
.estudo-conf-it em{font-style:normal; font-size:11px; font-weight:700;}
.estudo-conf-it.fav{border-left-color:#39ff9a;} .estudo-conf-it.fav em{color:#39ff9a;}
.estudo-conf-it.des{border-left-color:#ff3b5c;} .estudo-conf-it.des em{color:#ff3b5c;}
.estudo-conf-it.neutro{border-left-color:var(--muted-2);} .estudo-conf-it.neutro em{color:var(--muted);}
.estudo-conf-res{width:100%; margin-top:4px; padding-top:6px; border-top:1px dashed var(--line); color:var(--muted);}
.estudo-conf-res b{color:var(--ink);}
.estudo-conf-res.bull b{color:#39ff9a;} .estudo-conf-res.bear b{color:#ff3b5c;}
.estudo-conf-res i{display:block; font-size:11px; color:var(--muted-2); margin-top:2px;}
/* correlações-chave medidas ao vivo (guia de Forex) */
.estudo-correl{display:flex; flex-wrap:wrap; gap:6px; background:var(--bg-2); border:1px solid var(--line); border-radius:8px; padding:8px 12px; margin-bottom:12px; font-size:12.5px;}
.estudo-correl .lbl{width:100%; font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted-2);}
.estudo-cor-it{flex:1 1 190px; display:flex; flex-direction:column; gap:1px; border:1px solid var(--line); border-left-width:3px; border-radius:6px; padding:5px 8px;}
.estudo-cor-it b{font-family:var(--mono); color:var(--gold-soft); font-size:12px;}
.estudo-cor-it strong{font-family:var(--mono); font-size:16px; color:var(--ink);}
.estudo-cor-it i{font-style:normal; font-size:11px; color:var(--muted);}
.estudo-cor-it em{font-style:normal; font-size:11px; font-weight:700;}
.estudo-cor-it.dentro{border-left-color:#39ff9a;} .estudo-cor-it.dentro em{color:#39ff9a;}
.estudo-cor-it.fraca, .estudo-cor-it.forte{border-left-color:var(--gold);} .estudo-cor-it.fraca em, .estudo-cor-it.forte em{color:var(--gold-soft);}
.estudo-cor-it.quebrou{border-left-color:#ff3b5c;} .estudo-cor-it.quebrou em{color:#ff3b5c;}
.estudo-cor-nota{width:100%; font-size:11px; color:var(--muted-2); border-top:1px dashed var(--line); padding-top:6px; margin-top:2px;}
/* razão ouro/prata ao vivo (estudo de metais) */
.estudo-razao{background:var(--bg-2); border:1px solid var(--line); border-radius:8px; padding:8px 12px; margin-bottom:12px; font-size:12.5px;}
.estudo-razao .lbl{display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted-2); margin-bottom:4px;}
.estudo-razao-num{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px;}
.estudo-razao-num strong{font-family:var(--mono); font-size:22px; color:var(--gold-soft);}
.estudo-razao-num i{font-style:normal; font-size:11.5px; color:var(--muted);}
.estudo-razao-escala{position:relative; height:8px; margin:10px 0 4px; border:1px solid var(--line); border-radius:4px; background:linear-gradient(90deg, rgba(198,203,209,.18), rgba(212,175,55,.25));}
.estudo-razao-escala span{position:absolute; top:-5px; width:3px; height:16px; margin-left:-1px; background:var(--gold); border-radius:2px;}
.estudo-razao-rot{display:flex; justify-content:space-between; gap:8px; font-family:var(--mono); font-size:10.5px; color:var(--muted-2);}
/* nota sobre referências sem cotação gratuita (estudo Mandato de Commodities) */
.estudo-nota-ref{font-size:11.5px; color:var(--muted-2); margin:8px 0 0; line-height:1.5;}
