/* ══════════════════════════════════════════════
   SPACESHIELD AI v5.2 · modules.css
   Estilos para: Treinamento · Autorização · Backup
                 Riscos · Auditoria
══════════════════════════════════════════════ */

/* ══════════════════════════════════
   UTILITÁRIOS COMUNS
══════════════════════════════════ */
.d-none      { display: none !important; }
.text-green  { color: var(--green); }
.text-red    { color: var(--red); }
.text-yellow { color: var(--yellow); }
.text-accent { color: var(--accent); }

/* ══════════════════════════════════════════════
   NC-CRIT-03 · Estilos movidos do HTML inline
   (eliminam a necessidade de unsafe-inline no CSP)
══════════════════════════════════════════════ */
.corp-section-title-flex { display: flex; align-items: center; justify-content: space-between; }

.iso-execute-all-btn {
    font-family:  'Share Tech Mono', monospace;
    font-size:    9px;
    padding:      4px 10px;
    background:   rgba(255,214,0,.08);
    color:        var(--iso-gold);
    border:       1px solid rgba(255,214,0,.3);
    border-radius:3px;
    cursor:       pointer;
    letter-spacing: .5px;
    transition:   background .2s;
}
.iso-execute-all-btn:hover { background: rgba(255,214,0,.18); }

/* ══════════════════════════════════════════════
   NC-CRIT-02 · Campo TOTP no login modal
══════════════════════════════════════════════ */
.adm-hidden { display: none !important; }

.adm-totp-hint {
    font-family:   'Share Tech Mono', monospace;
    font-size:     10px;
    color:         var(--yellow);
    background:    rgba(255,214,0,.06);
    border:        1px solid rgba(255,214,0,.2);
    border-radius: 4px;
    padding:       8px 10px;
    margin-bottom: 10px;
    line-height:   1.5;
}

/* ══════════════════════════════════════════════
   BADGES AO VIVO · 3D NEON
══════════════════════════════════════════════ */
.live-badge {
    font-family:    var(--three-d-font);
    font-size:      6px;
    letter-spacing: 1px;
    color:          var(--green);
    background:     rgba(0,255,65,.08);
    border:         1px solid rgba(0,255,65,.5);
    padding:        4px 8px;
    box-shadow:     0 0 8px rgba(0,255,65,0.3);
    animation:      livePulse 1.5s steps(2,end) infinite;
    transform-style: preserve-3d;
}

@keyframes livePulse {
    0%, 100% { opacity: 1; box-shadow: 0 0 8px rgba(0,255,65,0.3); }
    50%       { opacity: .6; box-shadow: none; }
}

.live-tag {
    font-family:    var(--three-d-font);
    font-size:      5px;
    letter-spacing: .5px;
    color:          var(--green);
    background:     rgba(0,255,65,.06);
    border:         1px solid rgba(0,255,65,.3);
    padding:        2px 5px;
    box-shadow:     0 0 4px rgba(0,255,65,0.2);
    animation:      livePulse 1.5s steps(2,end) infinite;
    vertical-align: middle;
}

/* ══════════════════════════════════════════════
   NC-MED-04 · DEMO MODE badge (mantido oculto)
══════════════════════════════════════════════ */
.demo-badge {
    font-family:    'Share Tech Mono', monospace;
    font-size:      9px;
    letter-spacing: 1px;
    color:          var(--orange);
    border:         1px solid rgba(255,140,0,.4);
    background:     rgba(255,140,0,.08);
    border-radius:  3px;
    padding:        3px 8px;
    cursor:         help;
    white-space:    nowrap;
}

.demo-tag {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    color:          var(--orange);
    border:         1px solid rgba(255,140,0,.3);
    background:     rgba(255,140,0,.07);
    border-radius:  2px;
    padding:        1px 4px;
    vertical-align: middle;
    letter-spacing: .5px;
}

/* ══════════════════════════════════
   SUB-TABS (Backup / Risco / Auditoria / Java)
══════════════════════════════════ */
.bk-subtab-bar {
    display:       flex;
    gap:           6px;
    flex-wrap:     wrap;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--border);
    padding-bottom:10px;
}
.bk-subtab {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    padding:        5px 12px;
    background:     rgba(0,212,255,.06);
    color:          var(--text2);
    border:         1px solid rgba(0,212,255,.15);
    border-radius:  3px;
    cursor:         pointer;
    letter-spacing: .5px;
    transition:     background .2s, color .2s;
}
.bk-subtab.active, .bk-subtab:hover {
    background: rgba(0,212,255,.15);
    color:      var(--accent);
    border-color: rgba(0,212,255,.4);
}
.bk-sub          { display: none; }
.bk-sub.visible  { display: block; }

/* ════════════════════════════════════════
   ISO TREINAMENTO
════════════════════════════════════════ */
.tr-panel        { padding: 0 2px; }

.tr-header {
    display:         flex;
    align-items:     flex-start;
    justify-content: space-between;
    gap:             16px;
    margin-bottom:   16px;
}
.tr-main-title  { font-family: 'Share Tech Mono',monospace; font-size:14px; color:var(--iso-gold); letter-spacing:1px; margin-bottom:4px; }
.tr-subtitle    { font-size:11px; color:var(--text2); margin-bottom:3px; }
.tr-cert-info   { font-size:10px; color:var(--text3); }
.tr-pct-wrap    { text-align:center; background:rgba(255,214,0,.07); border:1px solid rgba(255,214,0,.2); border-radius:6px; padding:10px 18px; flex-shrink:0; }
.tr-pct-val     { font-family:'Share Tech Mono',monospace; font-size:24px; color:var(--iso-gold); }
.tr-pct-lbl     { font-size:9px; color:var(--text3); letter-spacing:1px; }

.tr-kpi-row     { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.tr-kpi         { flex:1; min-width:100px; background:var(--bg3); border:1px solid var(--border); border-radius:5px; padding:10px; text-align:center; }
.tr-kpi-val     { font-family:'Share Tech Mono',monospace; font-size:20px; font-weight:700; }
.tr-kpi-lbl     { font-size:9px; color:var(--text3); letter-spacing:.5px; margin-top:3px; }
.tr-kpi-gold   .tr-kpi-val { color:var(--iso-gold); }
.tr-kpi-yellow .tr-kpi-val { color:var(--yellow); }
.tr-kpi-green  .tr-kpi-val { color:var(--green); }
.tr-kpi-red    .tr-kpi-val { color:var(--red); }

.tr-bar-wrap    { height:4px; background:var(--bg4); border-radius:2px; margin-bottom:16px; }
.tr-bar-fill    { height:100%; background:var(--iso-gold); border-radius:2px; transition:width .6s; }

.tr-grid        { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:12px; }

.tr-card {
    background:   var(--bg3);
    border:       1px solid var(--border);
    border-radius:6px;
    padding:      14px;
    transition:   border-color .2s;
}
.tr-card-done   { border-color:rgba(0,255,136,.25); background:rgba(0,255,136,.03); }
.tr-card-active { border-color:rgba(255,214,0,.25); background:rgba(255,214,0,.03); }
.tr-card:hover  { border-color:rgba(0,212,255,.3); }

.tr-card-head   { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
.tr-code        { font-family:'Share Tech Mono',monospace; font-size:9px; color:var(--text3); }
.tr-badge       { font-size:9px; padding:2px 6px; border-radius:3px; }
.tr-badge-pending  { color:var(--text3); border:1px solid var(--border); }
.tr-badge-progress { color:var(--yellow); border:1px solid rgba(255,214,0,.3); background:rgba(255,214,0,.06); }
.tr-badge-done     { color:var(--green);  border:1px solid rgba(0,255,136,.3); background:rgba(0,255,136,.06); }
.tr-mandatory   { font-size:8px; color:var(--red);    border:1px solid rgba(255,43,85,.3); padding:1px 5px; border-radius:3px; margin-left:auto; }
.tr-optional    { font-size:8px; color:var(--text3);  border:1px solid var(--border);      padding:1px 5px; border-radius:3px; margin-left:auto; }

.tr-card-title  { font-size:12px; font-weight:600; color:var(--text1); margin-bottom:7px; }
.tr-card-meta   { display:flex; gap:8px; align-items:center; margin-bottom:7px; flex-wrap:wrap; }
.tr-cat         { font-size:9px; color:var(--accent); background:rgba(0,212,255,.08); padding:2px 6px; border-radius:3px; }
.tr-level       { font-size:9px; font-weight:600; }
.tr-level-green  { color:var(--green); }
.tr-level-yellow { color:var(--yellow); }
.tr-level-orange { color:var(--orange); }
.tr-level-red    { color:var(--red); }
.tr-dur         { font-size:9px; color:var(--text3); }
.tr-desc        { font-size:10px; color:var(--text2); margin-bottom:10px; line-height:1.5; }
.tr-prog-bar    { height:3px; background:var(--bg4); border-radius:2px; margin-bottom:4px; }
.tr-prog-fill   { height:100%; background:var(--iso-gold); border-radius:2px; transition:width .4s; }
.tr-prog-pct    { font-size:9px; color:var(--text3); margin-bottom:8px; }
.tr-score       { font-size:10px; color:var(--text2); margin-bottom:8px; }
.tr-score-val   { color:var(--green); font-weight:700; }

.tr-actions     { display:flex; gap:6px; }
.tr-btn         { font-family:'Share Tech Mono',monospace; font-size:9px; padding:5px 10px; border-radius:3px; cursor:pointer; letter-spacing:.5px; border:1px solid; transition:background .2s; }
.tr-btn-start    { color:var(--accent);   border-color:rgba(0,212,255,.4); background:rgba(0,212,255,.08); }
.tr-btn-complete { color:var(--green);    border-color:rgba(0,255,136,.4); background:rgba(0,255,136,.08); }
.tr-btn-cert     { color:var(--iso-gold); border-color:rgba(255,214,0,.4); background:rgba(255,214,0,.08); }
.tr-btn:hover    { filter:brightness(1.2); }

/* Certificado modal */
.cert-tr-modal  { text-align:center; padding:10px 0; }
.ctm-seal       { font-size:48px; margin-bottom:8px; }
.ctm-title      { font-family:'Share Tech Mono',monospace; font-size:16px; color:var(--iso-gold); letter-spacing:2px; margin-bottom:4px; }
.ctm-org        { font-size:10px; color:var(--text3); margin-bottom:16px; }
.ctm-sep        { height:1px; background:var(--border); margin:12px 0; }
.ctm-text       { font-size:11px; color:var(--text2); margin-bottom:4px; }
.ctm-name       { font-size:16px; font-weight:700; color:var(--text1); margin-bottom:8px; }
.ctm-course     { font-size:13px; color:var(--accent); margin-bottom:16px; font-weight:600; }
.ctm-grid       { display:grid; grid-template-columns:1fr 1fr; gap:8px; text-align:left; margin-bottom:16px; }
.ctm-item       { display:flex; flex-direction:column; background:var(--bg3); padding:6px 10px; border-radius:4px; }
.ctm-lbl        { font-size:9px; color:var(--text3); margin-bottom:2px; }
.ctm-val        { font-size:11px; color:var(--text1); font-weight:600; }
.ctm-signature-line { height:1px; background:var(--text3); width:60%; margin:16px auto 6px; }
.ctm-sig-name   { font-size:12px; color:var(--text1); }
.ctm-sig-role   { font-size:10px; color:var(--text3); margin-bottom:4px; }
.ctm-num        { font-family:'Share Tech Mono',monospace; font-size:9px; color:var(--text3); }

/* ════════════════════════════════════════
   AUTORIZAÇÃO DE ALTERAÇÃO (CHANGE AUTH)
════════════════════════════════════════ */
.ca-panel       { padding:0 2px; }
.ca-header      { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.ca-header-left { flex:1; }
.ca-main-title  { font-family:'Share Tech Mono',monospace; font-size:14px; color:var(--accent); letter-spacing:1px; margin-bottom:4px; }
.ca-subtitle    { font-size:11px; color:var(--text2); margin-bottom:3px; }
.ca-info        { font-size:10px; color:var(--text3); }
.ca-status-badge{ font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--green); border:1px solid rgba(0,255,136,.3); background:rgba(0,255,136,.06); padding:6px 12px; border-radius:4px; white-space:nowrap; }

.ca-kpi-row     { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.ca-kpi         { flex:1; min-width:100px; background:var(--bg3); border:1px solid var(--border); border-radius:5px; padding:10px; text-align:center; }
.ca-kpi-val     { font-family:'Share Tech Mono',monospace; font-size:20px; font-weight:700; }
.ca-kpi-lbl     { font-size:9px; color:var(--text3); letter-spacing:.5px; margin-top:3px; }
.ca-kpi-accent .ca-kpi-val { color:var(--accent); }
.ca-kpi-green  .ca-kpi-val { color:var(--green); }
.ca-kpi-yellow .ca-kpi-val { color:var(--yellow); }
.ca-kpi-red    .ca-kpi-val { color:var(--red); }

.ca-form-wrap   { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:14px; margin-bottom:16px; }
.ca-form-grid   { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
.ca-field       { display:flex; flex-direction:column; gap:4px; }
.ca-field-full  { grid-column:1/-1; }
.ca-label       { font-family:'Share Tech Mono',monospace; font-size:9px; color:var(--text3); letter-spacing:.5px; }
.ca-input, .ca-select, .ca-textarea {
    background:  var(--bg4);
    border:      1px solid var(--border);
    color:       var(--text1);
    font-family: 'Share Tech Mono',monospace;
    font-size:   11px;
    padding:     6px 8px;
    border-radius:3px;
    outline:     none;
    transition:  border-color .2s;
}
.ca-input:focus, .ca-select:focus, .ca-textarea:focus { border-color:var(--accent); }
.ca-textarea    { resize:vertical; }
.ca-submit-btn  {
    font-family:'Share Tech Mono',monospace; font-size:10px; width:100%;
    padding:9px; background:rgba(0,212,255,.1); color:var(--accent);
    border:1px solid rgba(0,212,255,.3); border-radius:3px; cursor:pointer; letter-spacing:.5px;
    transition:background .2s;
}
.ca-submit-btn:hover { background:rgba(0,212,255,.2); }

.ca-auth-panel  { background:var(--bg3); border:1px solid rgba(255,214,0,.2); border-radius:6px; padding:16px; margin-bottom:16px; text-align:center; }
.ca-auth-icon   { font-size:32px; margin-bottom:8px; }
.ca-auth-title  { font-family:'Share Tech Mono',monospace; font-size:13px; color:var(--iso-gold); letter-spacing:1px; margin-bottom:4px; }
.ca-auth-subtitle { font-size:10px; color:var(--text3); margin-bottom:16px; }
.ca-auth-form   { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; text-align:left; }
.ca-auth-field  { display:flex; flex-direction:column; gap:4px; }
.ca-auth-field-full { grid-column:1/-1; }
.ca-auth-btn    {
    font-family:'Share Tech Mono',monospace; font-size:10px; width:100%; padding:9px;
    background:rgba(255,214,0,.1); color:var(--iso-gold);
    border:1px solid rgba(255,214,0,.3); border-radius:3px; cursor:pointer; letter-spacing:.5px;
    transition:background .2s;
}
.ca-auth-btn:hover { background:rgba(255,214,0,.2); }
.ca-auth-msg    { margin-top:8px; font-size:11px; min-height:20px; }
.ca-msg-success { color:var(--green); }
.ca-msg-error   { color:var(--red); }
.ca-msg-warning { color:var(--yellow); }

.ca-rfc-list    { display:flex; flex-direction:column; gap:10px; }
.ca-rfc-card    { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:12px; }
.ca-rfc-approved { border-left:3px solid var(--green); }
.ca-rfc-pending  { border-left:3px solid var(--yellow); }
.ca-rfc-rejected { border-left:3px solid var(--red); }
.ca-rfc-head    { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.ca-rfc-id      { font-family:'Share Tech Mono',monospace; font-size:11px; color:var(--accent); }
.ca-rfc-type    { font-size:10px; color:var(--text2); }
.ca-rfc-status  { font-size:10px; font-weight:700; margin-left:auto; }
.ca-rfc-risk    { font-size:10px; }
.ca-rfc-title   { font-size:12px; font-weight:600; color:var(--text1); margin-bottom:6px; }
.ca-rfc-meta    { display:flex; gap:12px; flex-wrap:wrap; font-size:10px; color:var(--text3); margin-bottom:6px; }
.ca-rfc-impact  { font-size:10px; color:var(--text2); margin-bottom:4px; }
.ca-rfc-just    { font-size:10px; color:var(--text3); font-style:italic; }

/* ════════════════════════════════════════
   BACKUP & RECOVERY
════════════════════════════════════════ */
.bk-panel       { padding:0 2px; }
.bk-header      { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.bk-header-left { flex:1; }
.bk-main-title  { font-family:'Share Tech Mono',monospace; font-size:14px; color:var(--accent); letter-spacing:1px; margin-bottom:4px; }
.bk-subtitle    { font-size:11px; color:var(--text2); margin-bottom:3px; }
.bk-info        { font-size:10px; color:var(--text3); }
.bk-status-badge{ font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--green); border:1px solid rgba(0,255,136,.3); background:rgba(0,255,136,.06); padding:6px 12px; border-radius:4px; white-space:nowrap; }

.bk-kpi-row     { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.bk-kpi         { flex:1; min-width:100px; background:var(--bg3); border:1px solid var(--border); border-radius:5px; padding:10px; text-align:center; }
.bk-kpi-val     { font-family:'Share Tech Mono',monospace; font-size:20px; font-weight:700; }
.bk-kpi-lbl     { font-size:9px; color:var(--text3); letter-spacing:.5px; margin-top:3px; }
.bk-kpi-green  .bk-kpi-val { color:var(--green); }
.bk-kpi-accent .bk-kpi-val { color:var(--accent); }
.bk-kpi-gold   .bk-kpi-val { color:var(--iso-gold); }
.bk-kpi-purple .bk-kpi-val { color:var(--purple); }

.bk-policy-list { display:flex; flex-direction:column; gap:12px; }
.bk-policy-card { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:14px; }
.bk-pol-head    { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.bk-pol-id      { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--text3); }
.bk-pol-name    { font-size:12px; font-weight:700; color:var(--text1); flex:1; }
.bk-pol-status  { font-size:10px; padding:2px 8px; border-radius:3px; }
.bk-pol-active  { color:var(--green); border:1px solid rgba(0,255,136,.3); background:rgba(0,255,136,.06); }
.bk-pol-testing { color:var(--yellow); border:1px solid rgba(255,214,0,.3); background:rgba(255,214,0,.06); }
.bk-pol-inactive{ color:var(--text3); border:1px solid var(--border); }
.bk-pol-control { font-family:'Share Tech Mono',monospace; font-size:9px; color:var(--text3); }
.bk-pol-grid    { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:8px; margin-bottom:10px; }
.bk-pol-item    { display:flex; flex-direction:column; background:var(--bg4); padding:6px 8px; border-radius:3px; }
.bk-pol-lbl     { font-size:9px; color:var(--text3); margin-bottom:2px; }
.bk-pol-val     { font-size:11px; color:var(--text1); }
.rto-val        { color:var(--green); font-weight:700; }
.rpo-val        { color:var(--yellow); font-weight:700; }
.bk-pol-scope   { font-size:10px; color:var(--text2); margin-bottom:4px; }
.bk-pol-storage { font-size:10px; color:var(--text3); }

.bk-exec-wrap   { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:14px; }
.bk-exec-form   { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px; }
.bk-exec-btn    {
    font-family:'Share Tech Mono',monospace; font-size:11px; width:100%; padding:10px;
    background:rgba(0,255,136,.1); color:var(--green); border:1px solid rgba(0,255,136,.3);
    border-radius:3px; cursor:pointer; letter-spacing:.5px; margin-bottom:14px; transition:background .2s;
}
.bk-exec-btn:hover { background:rgba(0,255,136,.2); }
.bk-exec-progress   { padding-top:8px; }
.bk-exec-prog-label { display:flex; justify-content:space-between; font-size:10px; color:var(--text2); margin-bottom:6px; }
.bk-exec-prog-bar   { height:6px; background:var(--bg4); border-radius:3px; margin-bottom:10px; }
.bk-exec-prog-fill  { height:100%; background:var(--green); border-radius:3px; transition:width .5s; }
.bk-exec-steps      { display:flex; flex-direction:column; gap:3px; }
.bk-step-done       { font-size:10px; color:var(--green); }

.bk-recovery-list   { display:flex; flex-direction:column; gap:12px; }
.bk-rcp-card        { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:14px; }
.bk-rcp-head        { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.bk-rcp-id          { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--text3); }
.bk-rcp-name        { font-size:12px; font-weight:700; color:var(--text1); flex:1; }
.bk-rcp-priority    { font-size:10px; padding:2px 8px; border-radius:3px; }
.rcp-critical { color:var(--red);    border:1px solid rgba(255,43,85,.3); background:rgba(255,43,85,.08); }
.rcp-high     { color:var(--orange); border:1px solid rgba(255,140,0,.3); background:rgba(255,140,0,.08); }
.rcp-medium   { color:var(--yellow); border:1px solid rgba(255,214,0,.3); background:rgba(255,214,0,.08); }
.rcp-low      { color:var(--green);  border:1px solid rgba(0,255,136,.3); background:rgba(0,255,136,.08); }
.bk-rcp-time  { font-size:10px; color:var(--text3); }
.bk-rcp-steps { margin:0 0 12px 16px; display:flex; flex-direction:column; gap:5px; }
.bk-rcp-step  { font-size:11px; color:var(--text2); padding:4px 8px; border-radius:3px; transition:background .3s,color .3s; }
.rcp-step-done { background:rgba(0,255,136,.08); color:var(--green); text-decoration:none; }
.rcp-step-done::before { content:'✓ '; }
.bk-rcp-btn   {
    font-family:'Share Tech Mono',monospace; font-size:10px; padding:6px 14px;
    background:rgba(0,212,255,.08); color:var(--accent); border:1px solid rgba(0,212,255,.3);
    border-radius:3px; cursor:pointer; transition:background .2s;
}
.bk-rcp-btn:hover { background:rgba(0,212,255,.18); }

.bk-log-list   { display:flex; flex-direction:column; gap:4px; }
.bk-log-row    { display:flex; align-items:center; gap:10px; padding:7px 10px; background:var(--bg3); border-radius:3px; flex-wrap:wrap; font-size:10px; }
.bk-log-ok     { border-left:3px solid var(--green); }
.bk-log-err    { border-left:3px solid var(--red); }
.bk-log-run    { border-left:3px solid var(--yellow); }
.bk-log-id     { font-family:'Share Tech Mono',monospace; color:var(--accent); min-width:75px; }
.bk-log-type   { color:var(--text2); min-width:80px; font-weight:600; }
.bk-log-date   { color:var(--text3); min-width:120px; }
.bk-log-size   { color:var(--text1); min-width:60px; }
.bk-log-dur    { color:var(--text3); }
.bk-log-int    { color:var(--green); flex:1; }
.bk-log-status { font-weight:700; }
.bk-empty      { font-size:11px; color:var(--text3); padding:16px; text-align:center; }

/* ════════════════════════════════════════
   GESTÃO DE RISCOS
════════════════════════════════════════ */
.risk-panel     { padding:0 2px; }
.risk-header    { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.risk-header-left { flex:1; }
.risk-main-title { font-family:'Share Tech Mono',monospace; font-size:14px; color:var(--yellow); letter-spacing:1px; margin-bottom:4px; }
.risk-subtitle  { font-size:11px; color:var(--text2); margin-bottom:3px; }
.risk-info      { font-size:10px; color:var(--text3); }
.risk-status-badge { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--orange); border:1px solid rgba(255,140,0,.3); background:rgba(255,140,0,.06); padding:6px 12px; border-radius:4px; white-space:nowrap; }

.risk-kpi-row   { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.risk-kpi       { flex:1; min-width:100px; background:var(--bg3); border:1px solid var(--border); border-radius:5px; padding:10px; text-align:center; }
.risk-kpi-val   { font-family:'Share Tech Mono',monospace; font-size:20px; font-weight:700; }
.risk-kpi-lbl   { font-size:9px; color:var(--text3); letter-spacing:.5px; margin-top:3px; }
.risk-kpi-accent .risk-kpi-val { color:var(--accent); }
.risk-kpi-red   .risk-kpi-val  { color:var(--red); }
.risk-kpi-orange .risk-kpi-val { color:var(--orange); }
.risk-kpi-green  .risk-kpi-val { color:var(--green); }
.risk-kpi-yellow .risk-kpi-val { color:var(--yellow); }

.risk-list      { display:flex; flex-direction:column; gap:12px; }
.risk-card      { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:14px; }
.rm-critical-border { border-left:4px solid var(--red); }
.rm-high-border     { border-left:4px solid var(--orange); }
.rm-medium-border   { border-left:4px solid var(--yellow); }
.rm-low-border      { border-left:4px solid var(--green); }

.risk-card-head { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.risk-id        { font-family:'Share Tech Mono',monospace; font-size:11px; color:var(--text3); }
.risk-level     { font-size:10px; padding:2px 8px; border-radius:3px; font-weight:700; }
.rm-critical { color:var(--red);    background:rgba(255,43,85,.1);  border:1px solid rgba(255,43,85,.3); }
.rm-high     { color:var(--orange); background:rgba(255,140,0,.1); border:1px solid rgba(255,140,0,.3); }
.rm-medium   { color:var(--yellow); background:rgba(255,214,0,.1); border:1px solid rgba(255,214,0,.3); }
.rm-low      { color:var(--green);  background:rgba(0,255,136,.1); border:1px solid rgba(0,255,136,.3); }

.risk-treat-badge { font-size:10px; color:var(--accent); }
.risk-status    { font-size:10px; margin-left:auto; }
.risk-st-done     { color:var(--green); }
.risk-st-progress { color:var(--yellow); }
.risk-st-accept   { color:var(--accent); }
.risk-st-pending  { color:var(--text3); }

.risk-asset     { font-size:12px; font-weight:700; color:var(--text1); margin-bottom:4px; }
.risk-threat    { font-size:11px; color:var(--text2); margin-bottom:10px; }
.risk-scores    { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.risk-score-item { display:flex; flex-direction:column; align-items:center; background:var(--bg4); padding:6px 12px; border-radius:4px; }
.risk-score-lbl  { font-size:9px; color:var(--text3); margin-bottom:2px; }
.risk-score-val  { font-family:'Share Tech Mono',monospace; font-size:18px; font-weight:700; }
.risk-score-detail { font-size:9px; color:var(--text3); }
.risk-score-arrow { font-size:18px; color:var(--text3); }
.risk-controls  { font-size:10px; color:var(--text2); margin-bottom:8px; }
.risk-meta      { display:flex; gap:16px; font-size:10px; color:var(--text3); flex-wrap:wrap; margin-bottom:8px; }
.risk-impl-btn  {
    font-family:'Share Tech Mono',monospace; font-size:10px; padding:6px 14px;
    background:rgba(0,255,136,.08); color:var(--green); border:1px solid rgba(0,255,136,.3);
    border-radius:3px; cursor:pointer; transition:background .2s;
}
.risk-impl-btn:hover { background:rgba(0,255,136,.18); }
.risk-add-wrap  { margin-top:14px; }
.risk-add-btn   {
    font-family:'Share Tech Mono',monospace; font-size:10px; padding:7px 16px;
    background:rgba(0,212,255,.08); color:var(--accent); border:1px solid rgba(0,212,255,.3);
    border-radius:3px; cursor:pointer; transition:background .2s;
}
.risk-add-btn:hover { background:rgba(0,212,255,.18); }
.risk-add-form  { display:flex; flex-direction:column; gap:10px; }

/* Matriz de risco */
.risk-matrix    { overflow-x:auto; margin-bottom:16px; }
.rm-table       { border-collapse:collapse; width:100%; }
.rm-table th, .rm-table td { border:1px solid var(--border); text-align:center; padding:8px 6px; font-size:10px; }
.rm-corner      { background:var(--bg4); font-size:9px; color:var(--text3); }
.rm-head-i, .rm-head-p { background:var(--bg4); color:var(--text2); font-size:9px; }
.rm-cell        { position:relative; min-width:60px; }
.rm-score       { font-family:'Share Tech Mono',monospace; font-size:13px; font-weight:700; display:block; }
.rm-dot         { display:inline-block; font-size:9px; background:var(--bg2); border:1px solid var(--border); border-radius:3px; padding:1px 3px; margin:2px 1px; }
.rm-critical    { background:rgba(255,43,85,.2); }
.rm-high        { background:rgba(255,140,0,.2); }
.rm-medium      { background:rgba(255,214,0,.15); }
.rm-low         { background:rgba(0,255,136,.12); }
.risk-legend    { display:flex; gap:10px; flex-wrap:wrap; font-size:10px; margin-top:8px; }
.rl-item        { padding:3px 10px; border-radius:3px; font-weight:700; }

/* Treatment Plan */
.treatment-card { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:14px; margin-bottom:12px; }
.tc-head        { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.tc-asset       { font-size:11px; color:var(--text1); flex:1; }
.tc-treat       { display:flex; align-items:center; gap:8px; background:var(--bg4); padding:6px 10px; border-radius:4px; margin-bottom:8px; }
.tc-treat-icon  { font-size:16px; }
.tc-treat-name  { font-weight:700; color:var(--accent); font-size:11px; }
.tc-treat-desc  { font-size:10px; color:var(--text3); }
.tc-threat      { font-size:11px; color:var(--text2); margin-bottom:8px; }
.tc-controls-title { font-size:10px; color:var(--text3); margin-bottom:6px; }
.tc-controls-list  { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.tc-control-item   { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--text2); }
.tc-ctrl-check  { color:var(--text3); }
.tc-checked     { color:var(--green); }
.tc-progress-row { display:flex; align-items:center; gap:10px; font-size:10px; color:var(--text2); margin-bottom:8px; }
.tc-prog-bar    { flex:1; height:4px; background:var(--bg4); border-radius:2px; }
.tc-prog-fill   { height:100%; background:var(--green); border-radius:2px; transition:width .5s; }
.tc-residual    { font-size:10px; color:var(--text3); }

/* ════════════════════════════════════════
   AUDITORIA
════════════════════════════════════════ */
.audit-panel     { padding:0 2px; }
.audit-header    { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.audit-header-left { flex:1; }
.audit-main-title { font-family:'Share Tech Mono',monospace; font-size:14px; color:var(--accent); letter-spacing:1px; margin-bottom:4px; }
.audit-subtitle  { font-size:11px; color:var(--text2); margin-bottom:3px; }
.audit-info      { font-size:10px; color:var(--text3); }
.audit-pct-wrap  { text-align:center; background:rgba(0,212,255,.07); border:1px solid rgba(0,212,255,.2); border-radius:6px; padding:10px 18px; flex-shrink:0; }
.audit-pct-val   { font-family:'Share Tech Mono',monospace; font-size:24px; color:var(--accent); }
.audit-pct-lbl   { font-size:9px; color:var(--text3); letter-spacing:1px; }

.audit-kpi-row  { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.audit-kpi      { flex:1; min-width:100px; background:var(--bg3); border:1px solid var(--border); border-radius:5px; padding:10px; text-align:center; }
.audit-kpi-val  { font-family:'Share Tech Mono',monospace; font-size:20px; font-weight:700; }
.audit-kpi-lbl  { font-size:9px; color:var(--text3); letter-spacing:.5px; margin-top:3px; }
.audit-kpi-accent .audit-kpi-val { color:var(--accent); }
.audit-kpi-red   .audit-kpi-val  { color:var(--red); }
.audit-kpi-orange .audit-kpi-val { color:var(--orange); }
.audit-kpi-yellow .audit-kpi-val { color:var(--yellow); }
.audit-kpi-green  .audit-kpi-val { color:var(--green); }

.audit-program-card { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:14px; margin-bottom:16px; display:flex; flex-direction:column; gap:5px; }
.apc-row        { font-size:11px; color:var(--text2); }

/* NC Cards */
.nc-card        { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:12px; margin-bottom:10px; }
.nc-major       { border-left:4px solid var(--red); }
.nc-minor       { border-left:4px solid var(--yellow); }
.nc-obs         { border-left:4px solid var(--accent); }
.nc-ofi         { border-left:4px solid var(--green); }
.nc-head        { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.nc-id          { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--text3); }
.nc-type        { font-size:10px; padding:2px 6px; border-radius:3px; }
.nc-clause      { font-size:10px; color:var(--accent); }
.nc-phase       { font-size:10px; color:var(--purple); }
.nc-status      { font-size:10px; margin-left:auto; font-weight:700; }
.nc-open        { color:var(--red); }
.nc-closed      { color:var(--green); }
.nc-title       { font-size:12px; font-weight:700; color:var(--text1); margin-bottom:6px; }
.nc-desc        { font-size:11px; color:var(--text2); margin-bottom:6px; }
.nc-corrective  { font-size:10px; color:var(--text2); margin-bottom:6px; background:var(--bg4); padding:6px; border-radius:3px; }
.nc-meta        { display:flex; gap:12px; flex-wrap:wrap; font-size:10px; color:var(--text3); margin-bottom:8px; }
.nc-close-btn   {
    font-family:'Share Tech Mono',monospace; font-size:10px; padding:5px 12px;
    background:rgba(0,255,136,.08); color:var(--green); border:1px solid rgba(0,255,136,.3);
    border-radius:3px; cursor:pointer; transition:background .2s;
}
.nc-close-btn:hover { background:rgba(0,255,136,.18); }

/* Certificação phases */
.audit-cert-phases { display:flex; flex-direction:column; gap:12px; margin-bottom:16px; }
.cert-phase-card { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:14px; }
.cert-phase-done    { border-left:4px solid var(--green); }
.cert-phase-planned { border-left:4px solid var(--yellow); }
.cert-phase-active  { border-left:4px solid var(--accent); }
.cph-head       { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.cph-phase      { font-family:'Share Tech Mono',monospace; font-size:12px; color:var(--iso-gold); }
.cph-title      { font-size:12px; font-weight:700; color:var(--text1); flex:1; }
.cph-date       { font-size:10px; color:var(--text3); }
.cph-status     { font-size:10px; font-weight:700; color:var(--accent); }
.cph-scope      { font-size:11px; color:var(--text2); margin-bottom:6px; }
.cph-result     { font-size:11px; color:var(--text3); font-style:italic; }

/* ISO Checklist */
.cl-toolbar     { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.cl-btn         { font-family:'Share Tech Mono',monospace; font-size:10px; padding:6px 12px; border-radius:3px; cursor:pointer; transition:background .2s; background:rgba(0,212,255,.08); color:var(--accent); border:1px solid rgba(0,212,255,.3); }
.cl-btn-sec     { background:rgba(255,255,255,.04); color:var(--text2); border:1px solid var(--border); }
.cl-btn:hover   { filter:brightness(1.2); }
.cl-pct-lbl     { font-size:11px; color:var(--text2); margin-left:auto; }
.cl-bar-wrap    { height:5px; background:var(--bg4); border-radius:3px; margin-bottom:16px; }
.cl-bar-fill    { height:100%; background:var(--accent); border-radius:3px; transition:width .5s; }

.cl-section     { background:var(--bg3); border:1px solid var(--border); border-radius:6px; margin-bottom:8px; overflow:hidden; }
.cl-collapsed .cl-items { display:none; }
.cl-collapsed .cl-toggle { transform:rotate(-90deg); }
.cl-section-head { display:flex; align-items:center; gap:10px; padding:10px 14px; cursor:pointer; transition:background .2s; }
.cl-section-head:hover { background:var(--bg4); }
.cl-clause      { font-family:'Share Tech Mono',monospace; font-size:11px; color:var(--iso-gold); min-width:70px; }
.cl-clause-title { font-size:11px; font-weight:600; color:var(--text1); flex:1; }
.cl-clause-pct  { font-size:10px; color:var(--text3); }
.cl-clause-bar  { width:80px; height:4px; background:var(--bg4); border-radius:2px; }
.cl-clause-fill { height:100%; background:var(--green); border-radius:2px; transition:width .5s; }
.cl-toggle      { color:var(--text3); font-size:10px; transition:transform .2s; }

.cl-items       { padding:6px 0; border-top:1px solid var(--border); }
.cl-item        { display:flex; align-items:center; padding:5px 14px; transition:background .15s; }
.cl-item:hover  { background:var(--bg4); }
.cl-item-done   { background:rgba(0,255,136,.03); }
.cl-item-label  { display:flex; align-items:center; gap:8px; cursor:pointer; width:100%; }
.cl-checkbox    { accent-color:var(--green); width:14px; height:14px; cursor:pointer; }
.cl-item-text   { font-size:11px; color:var(--text2); flex:1; }
.cl-impl-badge  { font-size:9px; color:var(--green); background:rgba(0,255,136,.08); border:1px solid rgba(0,255,136,.2); padding:1px 6px; border-radius:3px; white-space:nowrap; }

/* Botões de ação — auditoria */
.audit-actions-row  { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.audit-action-btn   { font-family:'Share Tech Mono',monospace; font-size:10px; padding:7px 14px; border-radius:3px; cursor:pointer; border:1px solid; transition:background .2s; letter-spacing:.5px; color:var(--accent); border-color:rgba(0,212,255,.35); background:rgba(0,212,255,.08); }
.audit-action-secondary { color:var(--text2); border-color:var(--border); background:var(--bg3); }
.audit-action-btn:hover { filter:brightness(1.25); }
.mt4 { margin-top:14px; }

/* ════════════════════════════════════════
   BUREAU VERITAS · CICLO DE CERTIFICAÇÃO
════════════════════════════════════════ */
.bvcert-card       { background:var(--bg3); border:1px solid rgba(0,212,255,.25); border-radius:8px; padding:16px; margin-bottom:4px; }
.bvcert-logo-row   { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid var(--border); }
.bvcert-logo-box   { background:var(--bg4); border:2px solid var(--accent); border-radius:6px; padding:10px 14px; text-align:center; min-width:90px; flex-shrink:0; }
.bvcert-logo-text  { font-family:'Share Tech Mono',monospace; font-size:13px; font-weight:700; color:var(--accent); line-height:1.2; }
.bvcert-logo-sub   { font-size:9px; color:var(--text3); margin-top:3px; }
.bvcert-cert-info  { flex:1; }
.bvcert-norma      { font-family:'Share Tech Mono',monospace; font-size:14px; color:var(--iso-gold); font-weight:700; letter-spacing:1px; margin-bottom:4px; }
.bvcert-org        { font-size:12px; font-weight:700; color:var(--text1); margin-bottom:3px; }
.bvcert-cnpj       { font-size:10px; color:var(--text3); }
.bvcert-status-badge { font-family:'Share Tech Mono',monospace; font-size:10px; padding:4px 10px; border-radius:3px; margin-top:6px; display:inline-block; }
.bvcert-pending    { background:rgba(255,140,0,.1); border:1px solid rgba(255,140,0,.3); color:var(--orange); }
.bvcert-issued     { background:rgba(0,255,136,.1); border:1px solid rgba(0,255,136,.3); color:var(--green); }
.bvcert-acred-box  { text-align:center; background:var(--bg4); border:1px solid var(--border); border-radius:6px; padding:10px 14px; flex-shrink:0; }
.bvcert-acred-title { font-size:9px; color:var(--text3); letter-spacing:1px; margin-bottom:4px; }
.bvcert-acred-val  { font-family:'Share Tech Mono',monospace; font-size:12px; color:var(--purple); font-weight:700; }
.bvcert-acred-num  { font-size:9px; color:var(--text3); margin-top:3px; }
.bvcert-escopo-row { font-size:11px; color:var(--text2); margin-bottom:12px; line-height:1.5; }
.bvcert-meta-grid  { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:8px; }
.bvcert-meta-item  { display:flex; flex-direction:column; background:var(--bg4); padding:6px 10px; border-radius:3px; }
.bvcert-meta-lbl   { font-size:9px; color:var(--text3); margin-bottom:2px; letter-spacing:.5px; }
.bvcert-meta-val   { font-size:10px; color:var(--text1); }

.bvcert-timeline   { display:flex; flex-direction:column; gap:10px; margin-bottom:6px; }
.bvcert-fase-card  { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:13px; }
.bvcert-fase-done      { border-left:4px solid var(--green); }
.bvcert-fase-scheduled { border-left:4px solid var(--accent); }
.bvcert-fase-planned   { border-left:4px solid var(--text3); }
.bvcert-fase-head  { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.bvcert-fase-num   { font-family:'Share Tech Mono',monospace; font-size:11px; font-weight:700; min-width:90px; }
.bvcert-fase-title { font-size:11px; font-weight:700; color:var(--text1); flex:1; }
.bvcert-fase-date  { font-size:10px; color:var(--text3); }
.bvcert-fase-status { font-family:'Share Tech Mono',monospace; font-size:10px; font-weight:700; }
.bvcert-st-concluída  { color:var(--green); }
.bvcert-st-agendada   { color:var(--accent); }
.bvcert-st-programada { color:var(--text3); }
.bvcert-fase-body  { display:flex; flex-direction:column; gap:5px; }
.bvcert-fase-row   { font-size:11px; color:var(--text2); line-height:1.5; }
.bvcert-obs        { background:rgba(255,140,0,.06); border-left:2px solid rgba(255,140,0,.4); padding:5px 8px; border-radius:2px; color:var(--orange); }

/* ════════════════════════════════════════
   GOV.BR · RECEITA FEDERAL · ICP-BRASIL · LGPD
════════════════════════════════════════ */
.gb-header         { display:flex; align-items:center; gap:16px; flex-wrap:wrap; background:var(--bg3); border:1px solid var(--border); border-radius:8px; padding:14px; margin-bottom:4px; }
.gb-gov-logo       { flex-shrink:0; }
.gb-gov-name       { font-family:'Share Tech Mono',monospace; font-size:22px; font-weight:900; color:var(--text1); letter-spacing:-1px; }
.gb-gov-dot        { color:var(--accent); }
.gb-gov-sub        { font-size:9px; color:var(--text3); letter-spacing:.5px; }
.gb-gov-nivel      { flex:1; }
.gb-nivel-badge    { font-family:'Share Tech Mono',monospace; font-size:12px; color:var(--iso-gold); font-weight:700; margin-bottom:4px; }
.gb-nivel-desc     { font-size:10px; color:var(--text3); }
.gb-gov-actions    { display:flex; flex-direction:column; gap:6px; flex-shrink:0; }

.gb-cnpj-card      { background:var(--bg3); border:1px solid rgba(0,212,255,.2); border-radius:8px; padding:14px; margin-bottom:4px; }
.gb-cnpj-head      { display:flex; align-items:center; gap:12px; margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid var(--border); }
.gb-cnpj-number    { font-family:'Share Tech Mono',monospace; font-size:18px; font-weight:700; color:var(--text1); }
.gb-cnpj-status    { font-family:'Share Tech Mono',monospace; font-size:11px; font-weight:700; padding:4px 12px; border-radius:3px; }
.gb-status-ativa   { color:var(--green); background:rgba(0,255,136,.08); border:1px solid rgba(0,255,136,.25); }
.gb-cnpj-grid      { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px; margin-bottom:10px; }
.gb-cnpj-full      { grid-column:1/-1; }
.gb-cnpj-item      { display:flex; flex-direction:column; background:var(--bg4); padding:6px 10px; border-radius:3px; }
.gb-lbl            { font-size:9px; color:var(--text3); letter-spacing:.5px; margin-bottom:2px; }
.gb-val            { font-size:11px; color:var(--text1); }
.gb-ok             { color:var(--green); }
.gb-mono           { font-family:'Share Tech Mono',monospace; font-size:10px; }
.gb-simples-badge  { display:flex; gap:14px; flex-wrap:wrap; background:rgba(0,255,136,.05); border:1px solid rgba(0,255,136,.2); border-radius:4px; padding:8px 12px; font-size:10px; color:var(--text2); }

.gb-icp-card       { background:var(--bg3); border:1px solid rgba(255,140,0,.2); border-radius:8px; padding:14px; margin-bottom:4px; }
.gb-icp-head       { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid var(--border); }
.gb-icp-icon       { font-size:28px; flex-shrink:0; }
.gb-icp-title-wrap { flex:1; }
.gb-icp-title      { font-family:'Share Tech Mono',monospace; font-size:12px; color:var(--orange); font-weight:700; margin-bottom:4px; }
.gb-icp-titular    { font-size:11px; color:var(--text2); }
.gb-icp-valid-badge { font-family:'Share Tech Mono',monospace; font-size:11px; font-weight:700; padding:5px 12px; border-radius:4px; flex-shrink:0; }
.gb-icp-valid      { color:var(--green); background:rgba(0,255,136,.1); border:1px solid rgba(0,255,136,.3); }
.gb-icp-revoked    { color:var(--red); background:rgba(255,43,85,.1); border:1px solid rgba(255,43,85,.3); }
.gb-icp-grid       { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px; }
.gb-icp-full       { grid-column:1/-1; }
.gb-icp-item       { display:flex; flex-direction:column; background:var(--bg4); padding:6px 10px; border-radius:3px; }

.gb-lgpd-card      { background:var(--bg3); border:1px solid rgba(155,89,255,.2); border-radius:8px; padding:14px; margin-bottom:4px; }
.gb-lgpd-grid      { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px; margin-bottom:12px; }
.gb-lgpd-item      { display:flex; flex-direction:column; background:var(--bg4); padding:6px 10px; border-radius:3px; }
.gb-lgpd-bases     { background:var(--bg4); border:1px solid var(--border); border-radius:4px; padding:10px; }
.gb-lgpd-base-title { font-size:9px; color:var(--text3); letter-spacing:.5px; margin-bottom:8px; }
.gb-lgpd-base-grid { display:flex; flex-wrap:wrap; gap:6px; }
.gb-base-chip      { font-size:10px; color:var(--purple); background:rgba(155,89,255,.08); border:1px solid rgba(155,89,255,.2); padding:3px 8px; border-radius:3px; }

.gb-certidoes-table { background:var(--bg3); border:1px solid var(--border); border-radius:6px; overflow:hidden; }
.gb-cert-header-row { display:grid; grid-template-columns:2.5fr 1.5fr 1.2fr .8fr .7fr .6fr; gap:8px; padding:8px 12px; background:var(--bg4); border-bottom:1px solid var(--border); font-size:9px; color:var(--text3); letter-spacing:.5px; font-weight:700; }
.gb-cert-row        { display:grid; grid-template-columns:2.5fr 1.5fr 1.2fr .8fr .7fr .6fr; gap:8px; padding:9px 12px; border-bottom:1px solid var(--border); font-size:10px; color:var(--text2); align-items:center; transition:background .15s; }
.gb-cert-row:hover  { background:var(--bg4); }
.gb-cert-row:last-child { border-bottom:none; }
.gb-cert-nome       { color:var(--text1); font-size:10px; }
.gb-cert-cod        { font-size:9px; color:var(--text3); }
.gb-cert-status     { font-family:'Share Tech Mono',monospace; font-size:10px; font-weight:700; }
.gb-cert-ok         { color:var(--green); }
.gb-cert-nok        { color:var(--red); }

/* ════════════════════════════════════════
   INMETRO · CGCRE · CALIBRAÇÃO
════════════════════════════════════════ */
.inm-header        { display:flex; align-items:center; gap:16px; flex-wrap:wrap; background:var(--bg3); border:1px solid var(--border); border-radius:8px; padding:14px; margin-bottom:4px; }
.inm-logo-wrap     { flex-shrink:0; }
.inm-logo-text     { font-family:'Share Tech Mono',monospace; font-size:18px; font-weight:900; color:var(--green); letter-spacing:2px; }
.inm-logo-sub      { font-size:9px; color:var(--text3); line-height:1.4; }
.inm-cgcre-badge   { flex:1; }
.inm-cgcre-title   { font-family:'Share Tech Mono',monospace; font-size:13px; color:var(--accent); font-weight:700; margin-bottom:3px; }
.inm-cgcre-sub     { font-size:9px; color:var(--text3); margin-bottom:4px; }
.inm-cgcre-num     { font-family:'Share Tech Mono',monospace; font-size:11px; color:var(--iso-gold); }

.inm-acred-card    { background:var(--bg3); border:1px solid rgba(0,255,136,.2); border-radius:8px; padding:14px; margin-bottom:4px; }
.inm-acred-head    { display:flex; align-items:flex-start; gap:14px; flex-wrap:wrap; margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid var(--border); }
.inm-acred-num-wrap { flex-shrink:0; }
.inm-acred-num     { font-family:'Share Tech Mono',monospace; font-size:16px; color:var(--green); font-weight:700; }
.inm-acred-rev     { font-size:9px; color:var(--text3); margin-top:3px; }
.inm-acred-info    { flex:1; }
.inm-acred-titular { font-size:13px; font-weight:700; color:var(--text1); margin-bottom:3px; }
.inm-acred-cnpj    { font-size:10px; color:var(--text3); }
.inm-acred-status-badge { font-family:'Share Tech Mono',monospace; font-size:11px; font-weight:700; padding:5px 12px; border-radius:4px; flex-shrink:0; }
.inm-acredited     { color:var(--green); background:rgba(0,255,136,.1); border:1px solid rgba(0,255,136,.3); }
.inm-acred-grid    { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px; }

.inm-normas-table  { background:var(--bg3); border:1px solid var(--border); border-radius:6px; overflow:hidden; margin-bottom:4px; }
.inm-normas-header { display:grid; grid-template-columns:1.6fr 2fr .6fr 1.8fr .7fr; gap:8px; padding:8px 12px; background:var(--bg4); border-bottom:1px solid var(--border); font-size:9px; color:var(--text3); letter-spacing:.5px; font-weight:700; }
.inm-norma-row     { display:grid; grid-template-columns:1.6fr 2fr .6fr 1.8fr .7fr; gap:8px; padding:9px 12px; border-bottom:1px solid var(--border); font-size:10px; color:var(--text2); align-items:center; transition:background .15s; }
.inm-norma-row:hover { background:var(--bg4); }
.inm-norma-row:last-child { border-bottom:none; }
.inm-norma-highlight { background:rgba(0,255,136,.03); }
.inm-norma-code    { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--accent); }
.inm-norma-main    { color:var(--green); font-weight:700; }
.inm-norma-titulo  { color:var(--text1); }
.inm-norma-setores { color:var(--text3); font-size:9px; }
.inm-norma-status  { font-family:'Share Tech Mono',monospace; font-size:10px; font-weight:700; }
.inm-status-ok     { color:var(--green); }
.inm-status-warn   { color:var(--yellow); }

.inm-abnt-grid     { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:8px; margin-bottom:4px; }
.inm-abnt-card     { background:var(--bg3); border:1px solid var(--border); border-radius:5px; padding:10px; }
.inm-abnt-highlight { border-color:rgba(0,255,136,.3); background:rgba(0,255,136,.03); }
.inm-abnt-norma    { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--accent); margin-bottom:5px; }
.inm-abnt-titulo   { font-size:10px; color:var(--text2); flex:1; margin-bottom:8px; line-height:1.4; }
.inm-abnt-foot     { display:flex; justify-content:space-between; }
.inm-abnt-pub      { font-size:9px; color:var(--text3); }
.inm-abnt-status   { font-size:9px; color:var(--green); }

.inm-calib-table   { background:var(--bg3); border:1px solid var(--border); border-radius:6px; overflow:hidden; margin-bottom:4px; }
.inm-calib-header  { display:grid; grid-template-columns:2fr .5fr 1.1fr 1.2fr .7fr 1.5fr .6fr; gap:6px; padding:8px 12px; background:var(--bg4); border-bottom:1px solid var(--border); font-size:9px; color:var(--text3); letter-spacing:.5px; font-weight:700; }
.inm-calib-row     { display:grid; grid-template-columns:2fr .5fr 1.1fr 1.2fr .7fr 1.5fr .6fr; gap:6px; padding:9px 12px; border-bottom:1px solid var(--border); font-size:10px; color:var(--text2); align-items:center; transition:background .15s; }
.inm-calib-row:hover { background:var(--bg4); }
.inm-calib-row:last-child { border-bottom:none; }
.inm-calib-warn    { background:rgba(255,214,0,.04); }
.inm-calib-equip   { color:var(--text1); font-size:10px; }
.inm-calib-cert    { font-size:9px; color:var(--text3); }
.inm-calib-param   { font-size:9px; color:var(--text3); }
.inm-calib-status  { font-family:'Share Tech Mono',monospace; font-size:10px; font-weight:700; }
.inm-val-ok        { color:var(--green); }
.inm-val-warn      { color:var(--yellow); font-weight:700; }

/* ════════════════════════════════════════
   CONTROLES FÍSICOS · A.7
════════════════════════════════════════ */
.phys-summary-bar  { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.phys-summary-kpi  { flex:1; min-width:90px; background:var(--bg3); border:1px solid var(--border); border-radius:5px; padding:10px; text-align:center; }
.phys-kpi-val      { font-family:'Share Tech Mono',monospace; font-size:16px; font-weight:700; }
.phys-kpi-lbl      { font-size:9px; color:var(--text3); letter-spacing:.5px; margin-top:3px; }
.phys-kpi-green  .phys-kpi-val { color:var(--green); }
.phys-kpi-accent .phys-kpi-val { color:var(--accent); }
.phys-kpi-purple .phys-kpi-val { color:var(--purple); }
.phys-kpi-orange .phys-kpi-val { color:var(--orange); }

.phys-context-box  { background:var(--bg3); border:1px solid rgba(0,212,255,.2); border-left:4px solid var(--accent); border-radius:4px; padding:10px 14px; font-size:11px; color:var(--text2); line-height:1.6; margin-bottom:14px; }

.phys-grid         { display:flex; flex-direction:column; gap:8px; margin-bottom:4px; }
.phys-card         { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:12px; }
.phys-card-ok      { border-left:4px solid var(--green); }
.phys-card-gap     { border-left:4px solid var(--red); }
.phys-card-head    { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:7px; }
.phys-ctrl-id      { font-family:'Share Tech Mono',monospace; font-size:11px; color:var(--iso-gold); min-width:50px; font-weight:700; }
.phys-ctrl-title   { font-size:11px; font-weight:700; color:var(--text1); flex:1; }
.phys-ctrl-status  { font-family:'Share Tech Mono',monospace; font-size:10px; font-weight:700; flex-shrink:0; }
.phys-st-ok        { color:var(--green); }
.phys-st-gap       { color:var(--red); }
.phys-card-evidencia { font-size:11px; color:var(--text2); line-height:1.5; }
.phys-ev-lbl       { font-weight:700; color:var(--text3); }

/* Tab buttons for new modules — cores e estado active */
.tab-btn-training        { color: var(--iso-gold) !important; }
.tab-btn-training.active { border-color: var(--iso-gold) !important; background: rgba(255,214,0,.08) !important; }

.tab-btn-auth        { color: var(--accent) !important; }
.tab-btn-auth.active { border-color: var(--accent) !important; background: rgba(0,212,255,.08) !important; }

.tab-btn-backup        { color: var(--green) !important; }
.tab-btn-backup.active { border-color: var(--green) !important; background: rgba(0,255,136,.08) !important; }

.tab-btn-risk        { color: var(--yellow) !important; }
.tab-btn-risk.active { border-color: var(--yellow) !important; background: rgba(255,214,0,.08) !important; }

.tab-btn-audit        { color: var(--purple) !important; }
.tab-btn-audit.active { border-color: var(--purple) !important; background: rgba(155,89,255,.08) !important; }


/* ══════════════════════════════════════════════
   ADMIN AUTH · Login Modal + Admin Panel
══════════════════════════════════════════════ */

.signin-btn {
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    letter-spacing: 1.5px;
    padding: 5px 14px;
    background: rgba(0,212,255,.06);
    color: var(--accent);
    border: 1px solid rgba(0,212,255,.3);
    border-radius: 3px;
    cursor: pointer;
    transition: background .2s, border-color .2s;
    white-space: nowrap;
}
.signin-btn:hover { background: rgba(0,212,255,.16); border-color: var(--accent); }
.signin-btn.active { background: rgba(0,255,136,.08); color: var(--green); border-color: rgba(0,255,136,.35); }

/* ── Login modal ── */
.adm-login-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(5,10,15,.92);
    z-index: 9100;
    align-items: center;
    justify-content: center;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}
.adm-login-overlay.visible { display: flex; }

.adm-login-box {
    background: var(--bg2);
    border: 1px solid rgba(0,212,255,.28);
    border-radius: 6px;
    padding: 36px 32px 28px;
    width: 400px;
    max-width: calc(100vw - 32px);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    box-shadow: 0 0 60px rgba(0,212,255,.1), 0 0 120px rgba(0,0,0,.9);
    animation: adm-drop-in .22s ease;
}
@keyframes adm-drop-in {
    from { opacity:0; transform: translateY(-18px) scale(.97); }
    to   { opacity:1; transform: none; }
}
.adm-login-icon { font-size: 44px; line-height:1; filter: drop-shadow(0 0 14px rgba(0,212,255,.5)); }
.adm-login-title {
    font-family: 'Share Tech Mono', monospace;
    font-size: 15px;
    color: var(--accent);
    letter-spacing: 3px;
}
.adm-login-subtitle { font-size: 10px; color: var(--text2); letter-spacing: 1px; text-align: center; }
.adm-login-divider { width:100%; height:1px; background: var(--border); margin: 4px 0; }
.adm-login-form { width:100%; display:flex; flex-direction:column; gap:12px; }
.adm-field { display:flex; flex-direction:column; gap:5px; }
.adm-label { font-family:'Share Tech Mono',monospace; font-size:9px; letter-spacing:1.5px; color:var(--text2); }
.adm-select, .adm-input {
    background: var(--bg3);
    border: 1px solid rgba(0,212,255,.18);
    color: var(--text1);
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    padding: 9px 10px;
    border-radius: 3px;
    outline: none;
    width: 100%;
    transition: border-color .2s;
}
.adm-select:focus, .adm-input:focus { border-color: var(--accent); }
.adm-select option { background: var(--bg2); }
.adm-error {
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    color: var(--red);
    text-align: center;
    min-height: 16px;
    letter-spacing: .5px;
}
.adm-login-btn {
    font-family: 'Share Tech Mono', monospace;
    font-size: 11px;
    letter-spacing: 1.5px;
    padding: 12px;
    background: rgba(0,212,255,.09);
    color: var(--accent);
    border: 1px solid rgba(0,212,255,.4);
    border-radius: 3px;
    cursor: pointer;
    width: 100%;
    transition: background .2s, box-shadow .2s;
    margin-top: 4px;
}
.adm-login-btn:hover { background: rgba(0,212,255,.2); box-shadow: 0 0 18px rgba(0,212,255,.2); }
.adm-login-footer { font-size: 9px; color: var(--text3); letter-spacing:1px; margin-top:4px; }

/* ── Admin panel (tela cheia) ── */
.adm-panel-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: var(--bg);
    z-index: 8000;
    flex-direction: column;
    overflow: hidden;
}
.adm-panel-overlay.visible { display: flex; }

.adm-panel-header {
    display:      flex;
    align-items:  center;
    gap:          16px;
    padding:      0 16px;
    height:       46px;
    background:   linear-gradient(90deg, #0a001e 0%, #04000f 100%);
    border-bottom: 2px solid var(--pink);
    box-shadow:   0 2px 15px rgba(255,0,170,0.15);
    flex-shrink:  0;
    position:     relative;
}
.adm-panel-header::before {
    content:    '';
    position:   absolute;
    top: 0; left: 0; right: 0;
    height:     2px;
    background: linear-gradient(90deg, var(--pink), var(--accent), var(--purple));
}
.adm-panel-logo {
    font-family: var(--three-d-font);
    font-size:   8px;
    color:       var(--pink);
    letter-spacing: 1px;
    text-shadow: var(--glow-pink);
}
.adm-panel-badge {
    font-family:    var(--three-d-font);
    font-size:      6px;
    background:     rgba(255,0,170,.1);
    color:          var(--pink);
    border:         1px solid rgba(255,0,170,.4);
    padding:        3px 7px;
    letter-spacing: .5px;
    box-shadow:     var(--glow-pink);
}
.adm-panel-user {
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    color: var(--green);
    margin-left: auto;
}
.adm-signout-btn {
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    letter-spacing: 1px;
    padding: 5px 14px;
    background: rgba(255,43,85,.06);
    color: var(--red);
    border: 1px solid rgba(255,43,85,.28);
    border-radius: 3px;
    cursor: pointer;
    transition: background .2s;
}
.adm-signout-btn:hover { background: rgba(255,43,85,.18); }

/* ══════════════════════════════════════════════
   ADMIN PANEL · COMPANY INFO + SALDO BAR
══════════════════════════════════════════════ */
.adm-company-bar {
    background:    linear-gradient(135deg, rgba(0,212,255,.04), rgba(0,255,136,.03));
    border-bottom: 1px solid rgba(0,212,255,.15);
    padding:       12px 18px;
    flex-shrink:   0;
}

.adm-co-inner {
    display:   flex;
    gap:       20px;
    flex-wrap: wrap;
    align-items: flex-start;
    max-width: 1500px;
}

/* Bloco identidade */
.adm-co-identity {
    display:     flex;
    gap:         12px;
    align-items: center;
    flex-shrink: 0;
}
.adm-co-logo {
    font-size:  26px;
    flex-shrink: 0;
}
.adm-co-name {
    font-family:    'Share Tech Mono', monospace;
    font-size:      14px;
    font-weight:    700;
    color:          var(--accent);
    letter-spacing: 1.5px;
}
.adm-co-razao {
    font-size:  9px;
    color:      var(--text3);
    margin-top: 2px;
    max-width:  240px;
    line-height: 1.4;
}
.adm-co-tags {
    display:    flex;
    gap:        5px;
    flex-wrap:  wrap;
    margin-top: 5px;
}
.adm-co-tag {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    padding:        2px 6px;
    border-radius:  2px;
    background:     rgba(0,212,255,.08);
    color:          var(--text2);
    border:         1px solid var(--border);
    letter-spacing: .3px;
}
.adm-co-tag-green { background: rgba(0,255,136,.1); color: var(--green); border-color: rgba(0,255,136,.3); }

/* Grid de dados cadastrais */
.adm-co-grid {
    display:               grid;
    grid-template-columns: repeat(2, 1fr);
    gap:                   4px 16px;
    flex:                  1;
    min-width:             260px;
}
.adm-co-field {
    display:     flex;
    gap:         6px;
    align-items: baseline;
}
.adm-co-lbl {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    color:          var(--text3);
    letter-spacing: .5px;
    white-space:    nowrap;
    flex-shrink:    0;
}
.adm-co-val {
    font-size:   9px;
    color:       var(--text2);
    line-height: 1.4;
}

/* Bloco saldo */
.adm-co-saldo {
    flex-shrink: 0;
    min-width:   260px;
}
.adm-co-saldo-title {
    font-family:    'Share Tech Mono', monospace;
    font-size:      9px;
    color:          var(--text3);
    letter-spacing: .5px;
    margin-bottom:  8px;
}
.adm-co-saldo-row {
    display:   flex;
    gap:       7px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.adm-co-saldo-card {
    background:    var(--bg3);
    border:        1px solid var(--border);
    border-radius: 5px;
    padding:       7px 10px;
    text-align:    center;
    min-width:     70px;
}
.adm-saldo-gold   { border-color: rgba(255,214,0,.3); }
.adm-saldo-accent { border-color: rgba(0,212,255,.25); }
.adm-saldo-green  { border-color: rgba(0,255,136,.25); }
.adm-saldo-iso    { border-color: rgba(255,214,0,.2); }

.adm-saldo-val {
    font-family: 'Share Tech Mono', monospace;
    font-size:   13px;
    font-weight: 700;
    color:       var(--iso-gold);
}
.adm-saldo-gold  .adm-saldo-val { color: var(--iso-gold); }
.adm-saldo-accent .adm-saldo-val { color: var(--accent); }
.adm-saldo-green  .adm-saldo-val { color: var(--green); }

.adm-saldo-lbl {
    font-family:    'Share Tech Mono', monospace;
    font-size:      7px;
    color:          var(--text3);
    letter-spacing: .4px;
    margin-top:     3px;
    white-space:    nowrap;
}

/* Linha PIX / registros */
.adm-co-pix-row {
    display:     flex;
    gap:         10px;
    flex-wrap:   wrap;
    align-items: center;
    padding:     6px 0 0;
    border-top:  1px solid rgba(0,212,255,.08);
}
.adm-co-pix-val {
    font-family: 'Share Tech Mono', monospace;
    font-size:   9px;
    color:       var(--accent);
}

.adm-panel-tabbar {
    display:        flex;
    flex-direction: column;
    gap:            0;
    padding:        0;
    background:     var(--bg2);
    border-bottom:  1px solid rgba(0,212,255,.2);
    flex-shrink:    0;
}
.adm-tab-btn {
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    letter-spacing: 1px;
    padding: 7px 20px;
    background: transparent;
    color: var(--text2);
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: 3px 3px 0 0;
    cursor: pointer;
    transition: color .2s, background .2s;
}
.adm-tab-btn:hover { color: var(--text1); background: rgba(0,212,255,.05); }
.adm-tab-btn.active { background: var(--bg3); color: var(--accent); border-color: rgba(0,212,255,.22); }

.adm-panel-body {
    flex: 1;
    min-height: 0;           /* impede flex-child de crescer além do espaço disponível */
    overflow-y: auto;
    overflow-x: hidden;
    padding: 22px 32px;
    background: var(--bg);
    box-sizing: border-box;
}
.adm-tab-content { display: none; }
.adm-tab-content.visible {
    display:         block;
    padding-left:    10px;
    border-left:     3px solid rgba(0,212,255,.18);
    overflow-x:      hidden;
    max-width:       100%;
    box-sizing:      border-box;
    animation:       admTabIn .2s ease;
}
@keyframes admTabIn {
    from { opacity: 0; transform: translateX(-4px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ══════════════════════════════════════════════
   MÓDULO A.8 CONTROLES TECNOLÓGICOS
══════════════════════════════════════════════ */

.tc-panel            { padding: 0 2px; }
.tc-header           { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.tc-header-left      { flex:1; }
.tc-main-title       { font-family:'Share Tech Mono',monospace; font-size:14px; color:var(--accent); letter-spacing:1px; margin-bottom:4px; }
.tc-subtitle         { font-size:11px; color:var(--text2); margin-bottom:3px; }
.tc-info             { font-size:10px; color:var(--text3); }
.tc-pct-wrap         { text-align:center; background:rgba(0,212,255,.07); border:1px solid rgba(0,212,255,.2); border-radius:6px; padding:10px 18px; flex-shrink:0; }
.tc-pct-val          { font-family:'Share Tech Mono',monospace; font-size:24px; color:var(--accent); font-weight:700; }
.tc-pct-lbl          { font-size:9px; color:var(--text3); letter-spacing:1px; }

.tc-kpi-row          { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.tc-kpi              { flex:1; min-width:90px; background:var(--bg3); border:1px solid var(--border); border-radius:5px; padding:10px; text-align:center; }
.tc-kpi-val          { font-family:'Share Tech Mono',monospace; font-size:20px; font-weight:700; }
.tc-kpi-lbl          { font-size:9px; color:var(--text3); letter-spacing:.5px; margin-top:3px; }
.tc-kpi-green  .tc-kpi-val  { color:var(--green); }
.tc-kpi-yellow .tc-kpi-val  { color:var(--yellow); }
.tc-kpi-accent .tc-kpi-val  { color:var(--accent); }
.tc-kpi-gray   .tc-kpi-val  { color:var(--text3); }
.tc-kpi-total  .tc-kpi-val  { color:var(--iso-gold); }

.tc-bar-wrap         { height:6px; background:var(--bg4); border-radius:3px; margin-bottom:6px; display:flex; overflow:hidden; }
.tc-bar-impl         { background:var(--green); transition:width .6s; }
.tc-bar-part         { background:var(--yellow); transition:width .6s; }
.tc-bar-plan         { background:var(--accent); transition:width .6s; }
.tc-bar-legend       { display:flex; gap:16px; font-size:9px; margin-bottom:14px; font-family:'Share Tech Mono',monospace; }
.tc-leg-green        { color:var(--green); }
.tc-leg-yellow       { color:var(--yellow); }
.tc-leg-accent       { color:var(--accent); }

.tc-filter-row       { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.tc-filter-btn       { font-family:'Share Tech Mono',monospace; font-size:9px; padding:5px 12px; background:transparent; color:var(--text2); border:1px solid var(--border); border-radius:3px; cursor:pointer; transition:all .2s; letter-spacing:.5px; }
.tc-filter-btn:hover { background:rgba(0,212,255,.07); color:var(--accent); border-color:rgba(0,212,255,.3); }
.tc-filter-active    { background:rgba(0,212,255,.1) !important; color:var(--accent) !important; border-color:rgba(0,212,255,.4) !important; }
.tc-filter-cnt       { background:rgba(0,212,255,.15); padding:1px 5px; border-radius:2px; margin-left:4px; }

.tc-grid             { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:10px; margin-bottom:20px; }

.tc-card             { background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:12px; transition:border-color .2s; }
.tc-card:hover       { border-color:rgba(0,212,255,.3); }
.tc-card-implemented { border-left:3px solid var(--green); }
.tc-card-partial     { border-left:3px solid var(--yellow); }
.tc-card-planned     { border-left:3px solid var(--accent); }
.tc-card-not_applicable { border-left:3px solid var(--border); }

.tc-card-head        { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.tc-ctrl-id          { font-family:'Share Tech Mono',monospace; font-size:11px; color:var(--accent); font-weight:700; }
.tc-status-badge     { font-size:8px; padding:2px 6px; border-radius:3px; font-family:'Share Tech Mono',monospace; }
.tc-status-impl      { color:var(--green);  background:rgba(0,255,136,.08); border:1px solid rgba(0,255,136,.25); }
.tc-status-part      { color:var(--yellow); background:rgba(255,214,0,.08); border:1px solid rgba(255,214,0,.25); }
.tc-status-plan      { color:var(--accent); background:rgba(0,212,255,.08); border:1px solid rgba(0,212,255,.25); }
.tc-status-na        { color:var(--text3);  background:rgba(255,255,255,.04); border:1px solid var(--border); }

.tc-ctrl-title       { font-size:11px; color:var(--text1); font-weight:600; margin-bottom:4px; }
.tc-ctrl-desc        { font-size:10px; color:var(--text3); margin-bottom:8px; line-height:1.5; }
.tc-evidence-lbl     { font-family:'Share Tech Mono',monospace; font-size:8px; color:var(--text3); letter-spacing:.5px; margin-bottom:3px; }
.tc-evidence-val     { font-size:9px; color:var(--text2); background:var(--bg4); padding:5px 8px; border-radius:3px; border:1px solid var(--border); line-height:1.5; }
.tc-card-foot        { display:flex; align-items:center; margin-top:8px; padding-top:6px; border-top:1px solid var(--border); }
.tc-resp             { font-size:9px; color:var(--text3); }

.tc-summary          { background:rgba(0,212,255,.03); border:1px solid rgba(0,212,255,.15); border-radius:6px; padding:14px; margin-top:4px; }
.tc-sum-title        { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--accent); letter-spacing:1px; margin-bottom:12px; }
.tc-sum-grid         { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.tc-sum-item         { display:flex; flex-direction:column; gap:2px; }
.tc-sum-lbl          { font-size:8px; color:var(--text3); font-family:'Share Tech Mono',monospace; letter-spacing:.5px; }
.tc-sum-val          { font-size:10px; color:var(--text2); }

/* ══════════════════════════════════════════════
   MÓDULO PRODUTOS & PIX
══════════════════════════════════════════════ */

/* Header */
.prod-header            { text-align:center; padding:18px 0 10px; border-bottom:1px solid rgba(0,212,255,.15); margin-bottom:14px; }
.prod-header-title      { font-size:13px; color:var(--accent); letter-spacing:2px; font-weight:700; }
.prod-header-sub        { font-size:9px; color:var(--text2); margin-top:4px; letter-spacing:1px; }

/* Barra PIX topo */
.prod-pix-bar           { display:flex; align-items:center; gap:10px; background:rgba(0,255,136,.06); border:1px solid rgba(0,255,136,.2); border-radius:4px; padding:8px 14px; margin-bottom:16px; flex-wrap:wrap; }
.prod-pix-icon          { color:var(--green); font-size:14px; }
.prod-pix-label         { font-size:9px; color:var(--green); letter-spacing:2px; font-weight:700; }
.prod-pix-chave         { font-size:10px; color:var(--text1); }
.prod-pix-chave strong  { color:var(--green); }
.prod-pix-sep           { color:var(--text2); }
.prod-pix-benef         { font-size:9px; color:var(--text2); letter-spacing:.5px; }

/* Grid de produtos */
.prod-grid              { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:14px; margin-bottom:22px; }

/* Card de produto */
.prod-card              { background:rgba(255,255,255,.03); border:1px solid rgba(0,212,255,.15); border-radius:6px; padding:16px 14px 14px; display:flex; flex-direction:column; gap:10px; position:relative; transition:border-color .2s; }
.prod-card:hover        { border-color:rgba(0,212,255,.4); }
.prod-card-destaque     { border-color:rgba(255,215,0,.4); background:rgba(255,215,0,.04); }
.prod-destaque-ribbon   { position:absolute; top:-1px; right:12px; background:#ffd700; color:#000; font-size:7px; font-weight:700; letter-spacing:1.5px; padding:3px 8px; border-radius:0 0 4px 4px; }
.prod-card-top          { display:flex; justify-content:space-between; align-items:flex-start; }
.prod-card-icon         { font-size:22px; }
.prod-badge             { font-size:7px; font-weight:700; letter-spacing:1.5px; border:1px solid; border-radius:3px; padding:2px 6px; }
.prod-card-nome         { font-size:10px; color:var(--accent); font-weight:700; letter-spacing:1px; }
.prod-card-descricao    { font-size:9px; color:var(--text2); line-height:1.5; }
.prod-card-preco        { display:flex; align-items:baseline; gap:4px; }
.prod-preco-val         { font-size:18px; color:var(--text1); font-weight:700; }
.prod-preco-periodo     { font-size:9px; color:var(--text2); }
.prod-features          { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:5px; flex:1; }
.prod-feat              { font-size:9px; line-height:1.4; }
.prod-feat-ok           { color:var(--text2); }
.prod-feat-ok::before   { content:''; }
.prod-feat-no           { color:#555; text-decoration:line-through; }
.prod-pix-btn           { width:100%; padding:8px; background:rgba(0,255,136,.1); border:1px solid rgba(0,255,136,.35); color:var(--green); font-family:'Share Tech Mono',monospace; font-size:9px; font-weight:700; letter-spacing:1.5px; cursor:pointer; border-radius:4px; transition:background .2s; margin-top:auto; }
.prod-pix-btn:hover     { background:rgba(0,255,136,.22); }
.prod-pix-btn-consulta  { background:rgba(0,212,255,.08); border-color:rgba(0,212,255,.3); color:var(--accent); }
.prod-pix-btn-consulta:hover { background:rgba(0,212,255,.2); }

/* Seção PIX passo a passo */
.prod-pix-section       { background:rgba(0,255,136,.04); border:1px solid rgba(0,255,136,.15); border-radius:6px; padding:16px; margin-bottom:14px; }
.prod-pix-title         { font-size:10px; color:var(--green); letter-spacing:2px; font-weight:700; margin-bottom:14px; }
.prod-pix-steps         { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:10px; margin-bottom:14px; }
.prod-pix-step          { display:flex; gap:10px; align-items:flex-start; }
.prod-pix-step-num      { width:22px; height:22px; border-radius:50%; background:var(--green); color:#000; font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.prod-pix-step-txt      { font-size:9px; color:var(--text2); line-height:1.5; }
.prod-pix-step-txt strong { color:var(--text1); }
.prod-pix-code          { background:rgba(0,255,136,.12); color:var(--green); padding:1px 5px; border-radius:2px; font-family:'Share Tech Mono',monospace; font-size:9px; }
.prod-pix-info          { background:rgba(0,0,0,.3); border-radius:4px; padding:10px 12px; }
.prod-pix-info-row      { display:flex; justify-content:space-between; padding:4px 0; border-bottom:1px solid rgba(255,255,255,.05); font-size:9px; }
.prod-pix-info-row:last-child { border-bottom:none; }
.prod-pix-info-lbl      { color:var(--text2); letter-spacing:.5px; }
.prod-pix-info-val      { color:var(--text1); text-align:right; }

/* Legal */
.prod-legal             { font-size:8px; color:#444; text-align:center; padding:8px 0 4px; border-top:1px solid rgba(255,255,255,.05); letter-spacing:.5px; }

/* Tab button PRODUTOS */
.tab-btn-products       { color: #00ff88; }
.tab-btn-products:hover,
.tab-btn-products.active { background:rgba(0,255,136,.15); color:#00ff88; border-color:rgba(0,255,136,.4); }

/* Modal PIX */
.pix-modal-produto      { display:flex; align-items:center; gap:14px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:14px; }
.pix-modal-icon         { font-size:28px; }
.pix-modal-nome         { font-size:12px; color:var(--accent); font-weight:700; letter-spacing:1px; }
.pix-modal-preco        { font-size:18px; color:var(--green); font-weight:700; margin-top:4px; }
.pix-modal-qr           { display:flex; justify-content:center; margin:14px 0; }
.pix-qr-placeholder     { width:110px; height:110px; border:2px dashed rgba(0,255,136,.3); border-radius:6px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
.pix-qr-icon            { font-size:24px; color:var(--green); }
.pix-qr-txt             { font-size:8px; color:var(--green); font-weight:700; letter-spacing:1.5px; }
.pix-qr-sub             { font-size:7px; color:var(--text2); }
.pix-modal-dados        { background:rgba(0,0,0,.3); border-radius:4px; padding:10px 14px; margin-bottom:12px; }
.pix-dado-row           { display:flex; justify-content:space-between; align-items:center; padding:5px 0; border-bottom:1px solid rgba(255,255,255,.05); font-size:9px; }
.pix-dado-row:last-child { border-bottom:none; }
.pix-dado-lbl           { color:var(--text2); letter-spacing:.5px; }
.pix-dado-val           { color:var(--text1); text-align:right; }
.pix-copyable           { cursor:pointer; color:var(--green); }
.pix-copyable:hover     { text-decoration:underline; }
.pix-copy-icon          { font-size:10px; opacity:.7; }
.pix-valor              { color:var(--green); font-size:13px; font-weight:700; }
.pix-modal-aviso        { font-size:9px; color:var(--text2); background:rgba(0,212,255,.06); border:1px solid rgba(0,212,255,.15); border-radius:4px; padding:10px 12px; margin-bottom:12px; line-height:1.6; }
.pix-modal-aviso strong { color:var(--text1); }

/* QR Code canvas gerado pelo qrcodejs */
.pix-qr-canvas          { display:flex; justify-content:center; align-items:center; }
.pix-qr-canvas canvas,
.pix-qr-canvas img      { border-radius:6px; border:4px solid #fff; box-shadow:0 0 16px rgba(0,0,0,.5); display:block; }
.pix-qr-banco           { text-align:center; font-size:9px; color:var(--text2); margin-top:6px; letter-spacing:1px; }

/* Banco Santander na barra PIX */
.prod-pix-banco         { font-size:9px; color:#ec0000; font-weight:700; letter-spacing:.5px; }

/* PIX inline no aporte */
.pix-inline-label       { font-size:9px; color:var(--text2); }
.pix-inline-chave       { color:var(--green); font-size:11px; }
.pix-inline-benef       { font-size:8px; color:var(--text2); display:block; margin-top:4px; }
.pix-copy-btn           { font-size:8px; color:var(--accent); cursor:pointer; border:1px solid rgba(0,212,255,.3); border-radius:2px; padding:1px 5px; }
.pix-copy-btn:hover     { background:rgba(0,212,255,.15); }

/* ══════════════════════════════════════════════
   IA DEPARTAMENTAL · RoleAI Module
   Diretoria · Marketing · Jurídico · Compliance
   Marketing Digital · CTO
══════════════════════════════════════════════ */

/* Tab de IA no painel admin */
.adm-tab-btn-ai                { background:rgba(160,64,255,.08) !important; color:#b040ff !important; border-color:rgba(160,64,255,.3) !important; }
.adm-tab-btn-ai:hover,
.adm-tab-btn-ai.active         { background:rgba(160,64,255,.22) !important; color:#cc80ff !important; border-color:rgba(160,64,255,.6) !important; box-shadow:0 0 10px rgba(160,64,255,.25); }

/* Layout principal */
.rai-layout                    { display:flex; gap:0; height:100%; min-height:600px; }

/* Sidebar de cargos */
.rai-sidebar                   { width:160px; min-width:160px; background:rgba(0,0,0,.25); border-right:1px solid rgba(255,255,255,.07); display:flex; flex-direction:column; padding:16px 0; }
.rai-sidebar-title             { font-size:8px; color:var(--text2); letter-spacing:2px; font-weight:700; padding:0 14px 12px; border-bottom:1px solid rgba(255,255,255,.06); margin-bottom:10px; }
.rai-role-nav                  { display:flex; flex-direction:column; gap:4px; padding:0 8px; flex:1; }
.rai-role-btn                  { display:flex; flex-direction:column; align-items:center; gap:5px; padding:10px 6px; border-radius:6px; border:1px solid transparent; background:transparent; color:var(--text2); cursor:pointer; transition:all .2s; font-family:inherit; }
.rai-role-btn:hover            { background:rgba(255,255,255,.05); color:var(--text1); border-color:rgba(255,255,255,.1); }
.rai-role-btn.active           { background:color-mix(in srgb, var(--role-color) 15%, transparent); color:var(--role-color); border-color:var(--role-color); box-shadow:0 0 12px color-mix(in srgb, var(--role-color) 20%, transparent); }
.rai-role-icon                 { font-size:20px; }
.rai-role-name                 { font-size:7.5px; font-weight:700; letter-spacing:1px; text-align:center; }
.rai-sidebar-info              { padding:12px 14px 4px; border-top:1px solid rgba(255,255,255,.06); margin-top:10px; }
.rai-info-label                { font-size:7px; color:var(--accent); font-weight:700; letter-spacing:1.5px; }
.rai-info-sub                  { font-size:7px; color:var(--text2); margin-top:2px; }

/* Área principal */
.rai-main                      { flex:1; overflow-y:auto; padding:20px 22px; display:flex; flex-direction:column; gap:18px; }

/* Header do cargo */
.rai-role-header               { display:flex; align-items:center; gap:14px; padding:14px 18px; background:rgba(255,255,255,.03); border-radius:8px; border:1px solid rgba(255,255,255,.08); padding-left:15px; }
.rai-role-header-icon          { font-size:28px; }
.rai-role-header-title         { font-size:14px; font-weight:700; letter-spacing:2px; }
.rai-role-header-desc          { font-size:9px; color:var(--text2); margin-top:3px; letter-spacing:.5px; }
.rai-role-badge                { margin-left:auto; font-size:8px; font-weight:700; letter-spacing:1.5px; padding:4px 10px; border-radius:12px; border:1px solid; }

/* Títulos de seção */
.rai-section-title             { font-size:9px; color:var(--text2); letter-spacing:2px; font-weight:700; margin-bottom:10px; display:flex; align-items:center; justify-content:space-between; }

/* Grade de KPIs */
.rai-kpi-section               { background:rgba(0,0,0,.15); border:1px solid rgba(255,255,255,.06); border-radius:8px; padding:14px 16px; }
.rai-kpi-grid                  { display:grid; grid-template-columns:repeat(6,1fr); gap:8px; }
.rai-kpi-card                  { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.07); border-radius:6px; padding:10px 8px; text-align:center; transition:border-color .2s; }
.rai-kpi-card:hover            { border-color:rgba(255,255,255,.15); }
.rai-kpi-val                   { font-size:13px; font-weight:700; line-height:1.2; }
.rai-kpi-lbl                   { font-size:7px; color:var(--text2); letter-spacing:.8px; margin-top:4px; text-transform:uppercase; }
.rai-kpi-trend                 { font-size:8px; font-weight:700; margin-top:3px; }
.rai-kpi-trend.up              { color:var(--green); }
.rai-kpi-trend.down            { color:var(--accent); }

/* Ações rápidas */
.rai-actions-section           { background:rgba(0,0,0,.15); border:1px solid rgba(255,255,255,.06); border-radius:8px; padding:14px 16px; }
.rai-actions-grid              { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.rai-action-btn                { padding:10px 14px; border-radius:6px; border:1px solid var(--role-color); background:color-mix(in srgb, var(--role-color) 8%, transparent); color:var(--text1); font-family:inherit; font-size:9px; font-weight:700; letter-spacing:.8px; cursor:pointer; text-align:left; transition:all .2s; }
.rai-action-btn:hover          { background:color-mix(in srgb, var(--role-color) 18%, transparent); color:var(--role-color); box-shadow:0 0 10px color-mix(in srgb, var(--role-color) 20%, transparent); }

/* Chat */
.rai-chat-section              { background:rgba(0,0,0,.15); border:1px solid rgba(255,255,255,.06); border-radius:8px; padding:14px 16px; display:flex; flex-direction:column; gap:10px; min-height:380px; }
.rai-clear-btn                 { font-size:8px; color:var(--text2); background:transparent; border:1px solid rgba(255,255,255,.1); border-radius:3px; padding:2px 8px; cursor:pointer; font-family:inherit; transition:all .2s; }
.rai-clear-btn:hover           { color:var(--red); border-color:rgba(255,43,85,.4); }
.rai-chat-messages             { flex:1; overflow-y:auto; display:flex; flex-direction:column; gap:10px; max-height:340px; padding-right:4px; }
.rai-chat-messages::-webkit-scrollbar       { width:3px; }
.rai-chat-messages::-webkit-scrollbar-track { background:transparent; }
.rai-chat-messages::-webkit-scrollbar-thumb { background:rgba(255,255,255,.1); border-radius:2px; }

/* Mensagem de boas-vindas */
.rai-chat-welcome              { display:flex; align-items:center; gap:12px; padding:14px 16px; background:rgba(255,255,255,.02); border-radius:8px; border:1px solid rgba(255,255,255,.06); padding-left:15px; }
.rai-welcome-icon              { font-size:22px; }
.rai-welcome-title             { font-size:11px; font-weight:700; letter-spacing:1px; }
.rai-welcome-sub               { font-size:9px; color:var(--text2); margin-top:3px; }

/* Mensagens do chat */
.rai-msg                       { display:flex; gap:10px; }
.rai-msg-user                  { flex-direction:row-reverse; }
.rai-msg-avatar                { width:28px; height:28px; border-radius:50%; background:rgba(255,255,255,.07); display:flex; align-items:center; justify-content:center; font-size:14px; flex-shrink:0; }
.rai-msg-body                  { max-width:82%; }
.rai-msg-user .rai-msg-body    { align-items:flex-end; display:flex; flex-direction:column; }
.rai-msg-header                { display:flex; align-items:center; gap:8px; margin-bottom:4px; }
.rai-msg-user .rai-msg-header  { flex-direction:row-reverse; }
.rai-msg-from                  { font-size:8px; font-weight:700; letter-spacing:1px; }
.rai-msg-ts                    { font-size:7px; color:var(--text2); }
.rai-msg-text                  { font-size:10px; line-height:1.65; color:var(--text1); background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.07); border-radius:6px; padding:10px 12px; }
.rai-msg-ai   .rai-msg-text    { border-radius:2px 8px 8px 8px; }
.rai-msg-user .rai-msg-text    { background:rgba(0,212,255,.06); border-color:rgba(0,212,255,.15); border-radius:8px 2px 8px 8px; color:var(--accent); }

/* Barra de envio */
.rai-chat-bar                  { display:flex; gap:8px; align-items:flex-end; }
.rai-chat-input                { flex:1; background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.1); border-radius:6px; color:var(--text1); font-family:inherit; font-size:10px; padding:9px 12px; resize:none; outline:none; transition:border-color .2s; line-height:1.5; }
.rai-chat-input:focus          { border-color:rgba(0,212,255,.4); }
.rai-send-btn                  { padding:9px 16px; border-radius:6px; border:1px solid; font-family:inherit; font-size:8px; font-weight:700; letter-spacing:1.5px; cursor:pointer; white-space:nowrap; transition:all .2s; }
.rai-send-btn:hover            { filter:brightness(1.3); }

/* Indicador de processamento */
.rai-thinking                  { display:flex; align-items:center; gap:8px; font-size:9px; color:var(--text2); }

/* Responsivo: grade de KPIs em telas menores */
@media (max-width:1400px) {
    .rai-kpi-grid              { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:900px) {
    .rai-layout                { flex-direction:column; }
    .rai-sidebar               { width:100%; min-width:0; flex-direction:row; padding:10px; overflow-x:auto; }
    .rai-role-nav              { flex-direction:row; padding:0; gap:6px; }
    .rai-sidebar-info          { display:none; }
    .rai-kpi-grid              { grid-template-columns:repeat(2,1fr); }
    .rai-actions-grid          { grid-template-columns:1fr; }
}

/* ══════════════════════════════════════════════
   DASHBOARD SECTIONS — telas específicas por cargo
   Diretoria · Marketing · Jurídico · Compliance
   Marketing Digital · CTO
══════════════════════════════════════════════ */

/* Container principal do dashboard */
.rai-dashboard-section         { display:flex; flex-direction:column; gap:0; }

/* Row (linha com 2 colunas) */
.rai-dash-row                  { display:flex; gap:8px; }
.rai-dash-wide                 { flex:1.6; min-width:0; }
.rai-dash-narrow               { flex:1; min-width:0; }

/* Card genérico */
.rai-dash-card                 { background:rgba(0,0,0,.18); border:1px solid rgba(255,255,255,.07); border-radius:8px; padding:14px 16px; }
.rai-dash-hdr                  { font-size:8.5px; font-weight:700; letter-spacing:1.5px; margin-bottom:12px; }

/* ── SVG: bar chart ── */
.rai-bar-chart-svg             { width:100%; height:auto; display:block; margin-top:4px; overflow:visible; }

/* ── SVG: gauge ── */
.rai-gauge-svg                 { width:100%; max-width:130px; height:auto; display:block; margin:0 auto; }
.rai-gauge-note                { font-size:7.5px; color:var(--text2); text-align:center; margin-top:4px; letter-spacing:.5px; }

/* Gauge em linha (4 gauges side-by-side para CTO) */
.rai-gauge-row                 { display:flex; gap:6px; justify-content:center; align-items:flex-start; flex-wrap:wrap; }
.rai-gauge-item                { flex:1; min-width:80px; max-width:120px; text-align:center; }
.rai-gauge-item-lbl            { font-size:7px; color:var(--text2); letter-spacing:1.5px; margin-top:2px; font-weight:700; }

/* ── Iniciativas (barras de progresso horizontais) ── */
.rai-initiatives               { display:flex; flex-direction:column; gap:8px; }
.rai-init-row                  { display:flex; align-items:center; gap:8px; }
.rai-init-lbl                  { font-size:8.5px; color:var(--text1); white-space:nowrap; min-width:170px; }
.rai-init-track                { flex:1; height:5px; background:rgba(255,255,255,.08); border-radius:3px; overflow:hidden; }
.rai-init-fill                 { height:100%; border-radius:3px; transition:width .6s ease; }
.rai-init-val                  { font-size:9px; font-weight:700; min-width:30px; text-align:right; }

/* ── Agenda / calendário ── */
.rai-agenda                    { display:flex; flex-direction:column; gap:6px; }
.rai-agenda-row                { display:flex; align-items:center; gap:8px; padding:6px 8px; background:rgba(255,255,255,.02); border-radius:5px; border:1px solid rgba(255,255,255,.05); }
.rai-agenda-lbl                { flex:1; font-size:9px; color:var(--text1); }
.rai-agenda-date               { font-size:8px; color:var(--text2); white-space:nowrap; font-weight:700; }

/* ── Badges de prioridade / status ── */
.rai-badge                     { font-size:7px; font-weight:700; letter-spacing:1px; padding:2px 7px; border-radius:10px; white-space:nowrap; border:1px solid; flex-shrink:0; }
.rai-badge-green               { color:#00ff88; background:rgba(0,255,136,.1);  border-color:rgba(0,255,136,.3);  }
.rai-badge-yellow              { color:#ffd600; background:rgba(255,214,0,.1);  border-color:rgba(255,214,0,.3);  }
.rai-badge-red                 { color:#ff2b55; background:rgba(255,43,85,.1);  border-color:rgba(255,43,85,.3);  }

/* ── Barras horizontais (hbars) ── */
.rai-hbar-row                  { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.rai-hbar-row:last-child       { margin-bottom:0; }
.rai-hbar-lbl                  { font-size:8px; color:var(--text2); white-space:nowrap; min-width:90px; }
.rai-hbar-track                { flex:1; height:5px; background:rgba(255,255,255,.07); border-radius:3px; overflow:hidden; }
.rai-hbar-fill                 { height:100%; border-radius:3px; transition:width .6s ease; }
.rai-hbar-val                  { font-size:8px; font-weight:700; white-space:nowrap; min-width:80px; text-align:right; }

/* ── Campanhas (Marketing) ── */
.rai-camp-grid                 { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.rai-camp-card                 { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.07); border-radius:6px; padding:10px 12px; display:flex; flex-direction:column; gap:5px; }
.rai-camp-name                 { font-size:9px; color:var(--text1); font-weight:600; }
.rai-camp-stats                { display:flex; gap:10px; font-size:8px; }
.rai-camp-leads                { color:var(--text2); }

/* ── Riscos (Jurídico / Compliance) ── */
.rai-risk-row                  { display:flex; align-items:center; gap:8px; padding:5px 0; border-bottom:1px solid rgba(255,255,255,.04); }
.rai-risk-row:last-child       { border-bottom:none; }
.rai-risk-lbl                  { font-size:8.5px; color:var(--text1); }

/* ── Tabela de contratos (Jurídico) ── */
.rai-contract-table            { display:flex; flex-direction:column; gap:4px; }
.rai-ct-hdr                    { display:grid; grid-template-columns:1.5fr 1.5fr 80px 70px; gap:8px; padding:4px 8px; font-size:7px; color:var(--text2); letter-spacing:1px; font-weight:700; border-bottom:1px solid rgba(255,255,255,.08); }
.rai-ct-row                    { display:grid; grid-template-columns:1.5fr 1.5fr 80px 70px; gap:8px; align-items:center; padding:6px 8px; background:rgba(255,255,255,.02); border-radius:4px; }
.rai-ct-client                 { font-size:9px; color:var(--text1); font-weight:600; }
.rai-ct-type                   { font-size:8px; color:var(--text2); }
.rai-ct-days                   { font-size:8px; color:var(--text2); font-weight:700; text-align:right; }
.rai-days-urgent               { color:#ff2b55 !important; }

/* ── Funil de conversão (MKT Digital) ── */
.rai-funnel                    { display:flex; flex-direction:column; gap:4px; padding-top:4px; }
.rai-funnel-step               { display:flex; flex-direction:column; gap:3px; }
.rai-funnel-bar                { width:var(--fw); height:14px; background:rgba(0,212,255,.35); border-radius:2px; border-left:2px solid rgba(0,212,255,.7); transition:width .4s ease; margin:0 auto; }
.rai-funnel-meta               { display:flex; justify-content:space-between; padding:0 4px; }
.rai-funnel-lbl                { font-size:7.5px; color:var(--text2); letter-spacing:1px; font-weight:700; }
.rai-funnel-val                { font-size:8px; color:#00d4ff; font-weight:700; }
.rai-channel-total             { font-size:7.5px; color:var(--text2); margin-top:10px; text-align:right; letter-spacing:.5px; }

/* ── Tech Stack (CTO) ── */
.rai-stack-grid                { display:grid; grid-template-columns:repeat(2,1fr); gap:6px; }
.rai-stack-item                { display:flex; align-items:center; gap:7px; padding:5px 8px; background:rgba(255,255,255,.02); border-radius:4px; }
.rai-stack-dot                 { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.rai-dot-green                 { background:#00ff88; box-shadow:0 0 6px rgba(0,255,136,.5); }
.rai-dot-yellow                { background:#ffd600; box-shadow:0 0 6px rgba(255,214,0,.5); }
.rai-dot-red                   { background:#ff2b55; box-shadow:0 0 6px rgba(255,43,85,.5); }
.rai-stack-lbl                 { flex:1; font-size:8.5px; color:var(--text1); }

/* ── Deploys recentes (CTO) ── */
.rai-deploys                   { display:flex; flex-direction:column; gap:6px; }
.rai-deploy-row                { display:flex; flex-direction:column; gap:2px; padding:7px 10px; background:rgba(255,255,255,.02); border-left:2px solid rgba(255,107,53,.4); border-radius:0 4px 4px 0; }
.rai-deploy-ver                { font-size:9px; font-weight:700; color:#ff6b35; }
.rai-deploy-msg                { font-size:8px; color:var(--text1); }
.rai-deploy-date               { font-size:7.5px; color:var(--text2); }

/* ── Responsivo: dashboard ── */
@media (max-width:1100px) {
    .rai-dash-row              { flex-direction:column; }
    .rai-dash-wide,
    .rai-dash-narrow           { flex:none; width:100%; }
    .rai-ct-hdr,
    .rai-ct-row                { grid-template-columns:1.5fr 1.5fr 70px 60px; }
    .rai-gauge-row             { gap:4px; }
    .rai-camp-grid             { grid-template-columns:1fr; }
    .rai-stack-grid            { grid-template-columns:1fr; }
}

/* Cookie-banner LGPD: ver style/components/cookie-banner.css */

/* ══════════════════════════════════════════════
   TUTORIAL · GAME-STYLE OVERLAY
══════════════════════════════════════════════ */
.tut-overlay {
    position: fixed; inset: 0; z-index: 9998;
    background: rgba(0,0,0,.86); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
    display: flex; align-items: center; justify-content: center;
    animation: tutFadeIn .3s ease;
}
.tut-overlay.tut-hidden { display: none; }
@keyframes tutFadeIn { from { opacity: 0; } to { opacity: 1; } }
.tut-modal {
    background: var(--bg2); border: 1px solid var(--border); border-radius: 12px;
    width: min(92vw, 500px); overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,.6), 0 0 0 1px rgba(0,212,255,.08);
    animation: tutSlideUp .35s cubic-bezier(.2,.8,.3,1) backwards;
}
@keyframes tutSlideUp { from { transform: translateY(24px); opacity: 0; } }
.tut-topbar {
    display: flex; align-items: center; gap: 10px;
    padding: 9px 14px; background: var(--bg3); border-bottom: 1px solid var(--border);
}
.tut-phase-badge {
    font-family: 'Share Tech Mono', monospace; font-size: 8px;
    padding: 3px 9px; border-radius: 3px; letter-spacing: .6px; flex-shrink: 0;
}
.tut-phase-1 { background: rgba(0,212,255,.12);  color: var(--accent); border: 1px solid rgba(0,212,255,.3); }
.tut-phase-2 { background: rgba(255,214,0,.12);  color: var(--yellow); border: 1px solid rgba(255,214,0,.3); }
.tut-progress-wrap  { flex: 1; }
.tut-progress-track { height: 3px; background: var(--bg4); border-radius: 2px; overflow: hidden; }
.tut-progress-fill  { height: 100%; border-radius: 2px; transition: width .4s ease; }
.tut-fill-sec { background: var(--accent); }
.tut-fill-fin { background: var(--yellow); }
.tut-step-counter { font-family: 'Share Tech Mono', monospace; font-size: 8px; color: var(--text3); flex-shrink: 0; }
.tut-close-btn {
    background: none; border: none; color: var(--text3); cursor: pointer;
    font-size: 14px; padding: 0 2px; line-height: 1; transition: color .15s;
}
.tut-close-btn:hover { color: var(--text1); }
.tut-body { padding: 22px 20px 16px; }
.tut-icon-row { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.tut-icon-wrap {
    width: 50px; height: 50px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0;
    animation: tutPop .4s cubic-bezier(.2,.8,.3,1) backwards;
}
@keyframes tutPop { from { transform: scale(.6); opacity: 0; } }
.tut-icon-sec  { background: rgba(0,212,255,.1);  border: 1px solid rgba(0,212,255,.3); }
.tut-icon-fin  { background: rgba(255,214,0,.1);  border: 1px solid rgba(255,214,0,.3); }
.tut-icon-done { background: rgba(0,255,136,.1);  border: 1px solid rgba(0,255,136,.3); }
.tut-heading { font-family: 'Share Tech Mono', monospace; font-size: 13px; font-weight: 700; color: var(--text1); letter-spacing: .06em; line-height: 1.3; }
.tut-heading-sub { font-family: 'Share Tech Mono', monospace; font-size: 8px; color: var(--text3); letter-spacing: .04em; margin-top: 3px; }
.tut-desc { font-size: 10.5px; color: var(--text2); line-height: 1.65; margin-bottom: 12px; }
.tut-tip {
    display: flex; gap: 9px; align-items: flex-start;
    background: rgba(0,212,255,.04); border: 1px solid rgba(0,212,255,.12);
    border-radius: 5px; padding: 8px 11px;
}
.tut-tip.tut-tip-gold { background: rgba(255,214,0,.04); border-color: rgba(255,214,0,.12); }
.tut-tip.tut-tip-green { background: rgba(0,255,136,.04); border-color: rgba(0,255,136,.12); }
.tut-tip-icon { font-size: 12px; flex-shrink: 0; margin-top: 1px; }
.tut-tip-text { font-size: 9px; color: var(--text3); line-height: 1.6; }
.tut-tip-text strong { color: var(--accent); }
.tut-tip.tut-tip-gold  .tut-tip-text strong { color: var(--yellow); }
.tut-tip.tut-tip-green .tut-tip-text strong { color: var(--green); }
.tut-footer {
    display: flex; align-items: center; justify-content: space-between;
    padding: 11px 20px; border-top: 1px solid var(--border); background: var(--bg3); gap: 10px;
}
.tut-dots { display: flex; gap: 5px; }
.tut-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--bg4); transition: background .25s, transform .25s; }
.tut-dot.active { background: var(--accent); transform: scale(1.35); }
.tut-dot.done   { background: var(--text3); }
.tut-btn-row { display: flex; gap: 8px; }
.tut-btn {
    font-family: 'Share Tech Mono', monospace; font-size: 9px; letter-spacing: .5px;
    padding: 7px 13px; border-radius: 4px; cursor: pointer; border: 1px solid;
    transition: all .15s; font-weight: 700;
}
.tut-btn-prev { background: transparent; color: var(--text3); border-color: var(--border); }
.tut-btn-prev:hover { color: var(--text1); border-color: var(--text3); }
.tut-btn-next { background: rgba(0,212,255,.1); color: var(--accent); border-color: rgba(0,212,255,.35); }
.tut-btn-next:hover { background: rgba(0,212,255,.2); box-shadow: 0 0 10px rgba(0,212,255,.18); }
.tut-btn-finish { background: rgba(0,255,136,.1); color: var(--green); border-color: rgba(0,255,136,.35); }
.tut-btn-finish:hover { background: rgba(0,255,136,.2); box-shadow: 0 0 10px rgba(0,255,136,.14); }
.tut-skip-link {
    font-family: 'Share Tech Mono', monospace; font-size: 8px; color: var(--text3);
    background: none; border: none; cursor: pointer; text-decoration: underline;
    text-underline-offset: 2px; padding: 0; letter-spacing: .3px;
}
.tut-skip-link:hover { color: var(--text2); }
.tut-trigger-btn {
    font-family: 'Share Tech Mono', monospace; font-size: 8.5px; letter-spacing: .5px;
    padding: 4px 10px; background: rgba(0,212,255,.07); color: var(--accent);
    border: 1px solid rgba(0,212,255,.25); border-radius: 3px; cursor: pointer;
    transition: all .15s; white-space: nowrap;
}
.tut-trigger-btn:hover { background: rgba(0,212,255,.16); border-color: rgba(0,212,255,.5); }

/* ══════════════════════════════════════════════
   ADMIN PANEL · MODAL REDIMENSIONÁVEL
══════════════════════════════════════════════ */
.adm-panel-overlay {
    background: rgba(0,0,0,.7) !important;
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    align-items: center;
    justify-content: center;
}
.adm-panel-box {
    background:     linear-gradient(180deg, #08001c 0%, #04000f 100%);
    border:         2px solid var(--purple);
    box-shadow:     var(--glow-purple), 0 24px 60px rgba(0,0,0,.8);
    overflow:       hidden;
    display:        flex;
    flex-direction: column;
    width:          min(98vw, 1200px);
    height:         min(92vh, 880px);
    clip-path:      polygon(10px 0%, 100% 0%, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0% 100%, 0% 10px);
    min-width:      360px;
    min-height:     300px;
    resize:         both;
    animation:      admBoxIn .25s ease;
}
@keyframes admBoxIn { from { transform: scale(.97); opacity: 0; } }
.adm-panel-box > .adm-panel-body { overflow-y: auto; flex: 1; }
.adm-panel-minimized .adm-panel-box {
    height: 46px !important;
    min-height: 46px;
    resize: horizontal;
    overflow: hidden;
}
.adm-minimize-btn {
    font-family: 'Share Tech Mono', monospace; font-size: 11px;
    background: none; border: none; color: var(--text3); cursor: pointer;
    padding: 0 6px; line-height: 1; transition: color .15s;
}
.adm-minimize-btn:hover { color: var(--yellow); }

/* Estado minimizado: painel flutuante 400×300 no canto inferior direito */
.adm-panel-overlay.adm-min {
    width:         400px;
    height:        300px;
    inset:         auto;
    bottom:        20px;
    right:         20px;
    border-radius: 10px;
    border:        1px solid rgba(0,212,255,.35);
    box-shadow:    0 8px 32px rgba(0,0,0,.6), 0 0 0 1px rgba(0,212,255,.12);
    overflow:      hidden;
    align-items:   flex-start;
    justify-content: flex-start;
    background:    var(--bg);
}
/* No estado minimizado o box preenche o overlay */
.adm-panel-overlay.adm-min .adm-panel-box {
    width:         100%;
    height:        100%;
    border-radius: 0;
    box-shadow:    none;
    resize:        none;
    min-width:     unset;
    min-height:    unset;
    animation:     none;
}
.adm-maximize-btn {
    font-family: 'Share Tech Mono', monospace; font-size: 11px;
    background: none; border: none; color: var(--text3); cursor: pointer;
    padding: 0 6px; line-height: 1; transition: color .15s;
}
.adm-maximize-btn:hover { color: var(--accent); }
.adm-panel-overlay.adm-min .adm-panel-header { cursor: grab; -webkit-user-select: none; user-select: none; }
.adm-panel-overlay.adm-min .adm-panel-header:active { cursor: grabbing; }

/* ── Ocultar preview da assinatura manuscrita (substituindo style="display:none") ── */
.iso-hand-sig-hidden { display: none; }

/* ── Cores dos botões do pad de assinatura (substituindo inline style="background:...") ── */
.sig-color-btn[data-color="#00d4ff"] { background: #00d4ff; }
.sig-color-btn[data-color="#ffffff"]  { background: #ffffff; }
.sig-color-btn[data-color="#00ff88"]  { background: #00ff88; }
.sig-color-btn[data-color="#ffd600"]  { background: #ffd600; }
.sig-color-btn[data-color="#1a1a2e"]  { background: #1a1a2e; border: 1px solid rgba(255,255,255,.25); }

/* ══════════════════════════════════════════════════════════════
   BOTÃO "DESENHAR ASSINATURA" · painel ISO
══════════════════════════════════════════════════════════════ */
.cert-draw-sig-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    letter-spacing: .6px;
    padding:        9px 16px;
    border:         1px solid rgba(155,89,255,.45);
    background:     rgba(155,89,255,.08);
    color:          #9b59ff;
    border-radius:  4px;
    cursor:         pointer;
    transition:     background .2s, border-color .2s, color .2s;
}
.cert-draw-sig-btn:hover {
    background:   rgba(155,89,255,.2);
    border-color: rgba(155,89,255,.7);
    color:        #c084fc;
}
.cert-draw-auditor-btn {
    border-color: rgba(255,214,0,.45);
    background:   rgba(255,214,0,.07);
    color:        #ffd600;
}
.cert-draw-auditor-btn:hover {
    background:   rgba(255,214,0,.18);
    border-color: rgba(255,214,0,.75);
    color:        #ffe566;
}

/* ── Preview da assinatura manuscrita no painel ISO ── */
.iso-hand-sig-preview {
    margin-top:    16px;
    border:        1px solid rgba(155,89,255,.3);
    border-radius: 6px;
    padding:       14px 16px;
    background:    rgba(155,89,255,.04);
}
.iso-hand-sig-label {
    display:        flex;
    align-items:    center;
    gap:            10px;
    font-family:    'Share Tech Mono', monospace;
    font-size:      9px;
    letter-spacing: .8px;
    color:          #9b59ff;
    margin-bottom:  10px;
}
.iso-hand-sig-label span { flex: 1; }
.cert-redraw-btn, .cert-clear-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    letter-spacing: .5px;
    padding:        4px 8px;
    border-radius:  3px;
    cursor:         pointer;
    transition:     background .15s;
}
.cert-redraw-btn {
    border:     1px solid rgba(0,212,255,.3);
    background: rgba(0,212,255,.06);
    color:      var(--accent);
}
.cert-redraw-btn:hover  { background: rgba(0,212,255,.15); }
.cert-clear-btn {
    border:     1px solid rgba(255,43,85,.3);
    background: rgba(255,43,85,.06);
    color:      var(--red);
}
.cert-clear-btn:hover   { background: rgba(255,43,85,.15); }
.iso-hand-sig-img-wrap  {
    background:    rgba(0,0,0,.35);
    border:        1px solid rgba(155,89,255,.2);
    border-radius: 4px;
    padding:       8px;
    display:       flex;
    justify-content: center;
    min-height:    80px;
}
.iso-hand-sig-img {
    max-width:  100%;
    max-height: 100px;
    object-fit: contain;
}
.iso-hand-sig-meta {
    margin-top:  8px;
    font-family: 'Share Tech Mono', monospace;
    font-size:   8px;
    color:       var(--text3);
    letter-spacing: .5px;
}

/* ══════════════════════════════════════════════════════════════
   MODAL: PAD DE ASSINATURA
══════════════════════════════════════════════════════════════ */
.sig-pad-overlay {
    position:                fixed;
    inset:                   0;
    background:              rgba(0,5,12,.88);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter:         blur(6px);
    display:         flex;
    align-items:     center;
    justify-content: center;
    z-index:         9999;
    opacity:         0;
    pointer-events:  none;
    transition:      opacity .2s;
}
.sig-pad-overlay.sig-pad-visible {
    opacity:        1;
    pointer-events: all;
}
.sig-pad-box {
    background:    var(--bg2, #0d1620);
    border:        1px solid rgba(155,89,255,.45);
    border-radius: 10px;
    box-shadow:    0 24px 64px rgba(0,0,0,.8), 0 0 0 1px rgba(155,89,255,.12);
    width:         min(680px, 96vw);
    display:       flex;
    flex-direction: column;
    overflow:      hidden;
    transition:    transform .25s;
}
.sig-pad-box.sig-shake {
    animation: sigShake .45s;
}
@keyframes sigShake {
    0%,100%  { transform: translateX(0); }
    20%,60%  { transform: translateX(-6px); }
    40%,80%  { transform: translateX(6px); }
}

/* ── Header ── */
.sig-pad-header {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    padding:         14px 18px;
    border-bottom:   1px solid rgba(155,89,255,.18);
    background:      rgba(155,89,255,.05);
}
.sig-pad-title {
    display:     flex;
    align-items: center;
    gap:         12px;
}
.sig-pad-icon {
    font-size:  22px;
    line-height: 1;
}
.sig-pad-title-text {
    font-family:    'Share Tech Mono', monospace;
    font-size:      13px;
    letter-spacing: 1px;
    color:          #c084fc;
}
.sig-pad-subtitle {
    font-family: 'Share Tech Mono', monospace;
    font-size:   9px;
    color:       var(--text3);
    margin-top:  2px;
    letter-spacing: .5px;
}
.sig-pad-close {
    background:  none;
    border:      none;
    color:       var(--text3);
    font-size:   16px;
    cursor:      pointer;
    padding:     4px 8px;
    border-radius: 4px;
    transition:  color .15s, background .15s;
}
.sig-pad-close:hover { color: var(--red); background: rgba(255,43,85,.1); }

/* ── Toolbar ── */
.sig-pad-toolbar {
    display:        flex;
    align-items:    center;
    gap:            20px;
    padding:        10px 18px;
    border-bottom:  1px solid rgba(155,89,255,.1);
    background:     rgba(0,0,0,.15);
    flex-wrap:      wrap;
}
.sig-pad-toolbar-group {
    display:     flex;
    align-items: center;
    gap:         6px;
}
.sig-pad-toolbar-label {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    letter-spacing: .8px;
    color:          var(--text3);
    margin-right:   2px;
}
.sig-color-btn {
    width:         20px;
    height:        20px;
    border-radius: 50%;
    border:        2px solid rgba(255,255,255,.15);
    cursor:        pointer;
    transition:    border-color .15s, transform .1s;
}
.sig-color-btn:hover   { transform: scale(1.15); }
.sig-color-btn.active  { border-color: #fff; box-shadow: 0 0 0 2px rgba(155,89,255,.6); }
.sig-width-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    padding:        3px 8px;
    border:         1px solid rgba(155,89,255,.25);
    border-radius:  4px;
    background:     rgba(155,89,255,.06);
    color:          var(--text2);
    cursor:         pointer;
    transition:     background .15s, border-color .15s;
    letter-spacing: -1px;
}
.sig-width-btn.active  { background: rgba(155,89,255,.22); border-color: rgba(155,89,255,.55); color: #c084fc; }
.sig-width-btn:hover   { background: rgba(155,89,255,.14); }
.sig-pad-toolbar-actions { margin-left: auto; }
.sig-action-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      9px;
    letter-spacing: .5px;
    padding:        5px 10px;
    border-radius:  4px;
    cursor:         pointer;
    transition:     background .15s, opacity .15s;
}
.sig-action-btn:disabled { opacity: .35; cursor: not-allowed; }
.sig-undo-btn  { border: 1px solid rgba(0,212,255,.3); background: rgba(0,212,255,.06); color: var(--accent); }
.sig-undo-btn:not(:disabled):hover  { background: rgba(0,212,255,.15); }
.sig-clear-btn { border: 1px solid rgba(255,43,85,.3);  background: rgba(255,43,85,.06);  color: var(--red); }
.sig-clear-btn:not(:disabled):hover { background: rgba(255,43,85,.15); }

/* ── Canvas ── */
.sig-pad-canvas-wrap {
    padding:  16px 18px;
    flex:     1;
}
.sig-pad-canvas {
    display:       block;
    width:         100%;
    height:        200px;
    border:        1px solid rgba(155,89,255,.3);
    border-radius: 6px;
    cursor:        crosshair;
    touch-action:  none;
    background:    rgba(0,10,20,.97);
}

/* ── Footer ── */
.sig-pad-footer {
    padding:        14px 18px;
    border-top:     1px solid rgba(155,89,255,.12);
    background:     rgba(0,0,0,.1);
    display:        flex;
    align-items:    center;
    justify-content: space-between;
    gap:            12px;
    flex-wrap:      wrap;
}
.sig-pad-hint {
    font-family: 'Share Tech Mono', monospace;
    font-size:   9px;
    color:       var(--text3);
    letter-spacing: .4px;
}
.sig-pad-footer-btns { display: flex; gap: 10px; }
.sig-btn-cancel {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    letter-spacing: .5px;
    padding:        8px 16px;
    border:         1px solid rgba(255,255,255,.12);
    background:     rgba(255,255,255,.04);
    color:          var(--text2);
    border-radius:  4px;
    cursor:         pointer;
    transition:     background .15s;
}
.sig-btn-cancel:hover { background: rgba(255,255,255,.1); }
.sig-btn-save {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    letter-spacing: .5px;
    padding:        8px 18px;
    border:         1px solid rgba(155,89,255,.55);
    background:     rgba(155,89,255,.15);
    color:          #c084fc;
    border-radius:  4px;
    cursor:         pointer;
    transition:     background .15s, opacity .15s;
}
.sig-btn-save:not(:disabled):hover { background: rgba(155,89,255,.3); }

/* ══════════════════════════════════════════════
   TAB PAGINATION — barra de navegação por páginas
   Usada em: SecBot, Pendências, RoleAI, Sender
══════════════════════════════════════════════ */
.tab-pagination {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}
.tab-pg-btn {
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    letter-spacing: .06em;
    padding: 5px 10px;
    background: var(--bg3);
    color: var(--text3);
    border: 1px solid var(--border);
    border-radius: 4px;
    cursor: pointer;
    transition: all .15s;
    white-space: nowrap;
}
.tab-pg-btn:hover  { color: var(--accent); border-color: rgba(0,212,255,.3); background: rgba(0,212,255,.05); }
.tab-pg-btn.active { color: var(--accent); border-color: rgba(0,212,255,.5); background: rgba(0,212,255,.1); font-weight: 700; }
.tab-pg-prev, .tab-pg-next {
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
    padding: 5px 10px;
    background: var(--bg2);
    color: var(--text2);
    border: 1px solid var(--border);
    border-radius: 4px;
    cursor: pointer;
    transition: all .15s;
    white-space: nowrap;
}
.tab-pg-prev:hover, .tab-pg-next:hover { color: var(--accent); border-color: rgba(0,212,255,.3); }
.tab-pg-prev:disabled, .tab-pg-next:disabled { opacity: .3; cursor: default; pointer-events: none; }

/* ── Conteúdo paginado ── */
.pend-page   { display: none; }
.pend-page.active { display: block; }
.sender-page { display: none; }
.sender-page.active { display: block; }
.sig-btn-save:disabled { opacity: .35; cursor: not-allowed; }

/* ══════════════════════════════════════════════
   MODAL GLOBAL · Overlay + Box
══════════════════════════════════════════════ */
.modal-overlay {
    display:         none;
    position:        fixed;
    inset:           0;
    background:      rgba(2,0,15,.85);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    z-index:         9000;
    align-items:     center;
    justify-content: center;
    padding:         20px;
}
.modal-overlay.open { display: flex; }
.modal-box {
    background: linear-gradient(180deg, #0d0028 0%, #07001a 100%);
    border:     2px solid var(--pink);
    width:      min(700px, 100%);
    max-height: 90vh;
    overflow-y: auto;
    padding:    22px 24px 20px;
    box-shadow: var(--glow-pink), 0 0 80px rgba(0,0,0,.8);
    position:   relative;
    clip-path:  polygon(8px 0%, 100% 0%, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0% 100%, 0% 8px);
}
.modal-box::before {
    content:    '';
    position:   absolute;
    top: 0; left: 0; right: 0;
    height:     2px;
    background: linear-gradient(90deg, var(--pink), var(--accent), var(--purple));
}
.modal-header {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    margin-bottom:   18px;
    padding-bottom:  12px;
    border-bottom:   1px solid rgba(255,0,170,0.2);
}
.modal-title {
    font-family:    var(--three-d-font);
    font-size:      9px;
    color:          var(--pink);
    letter-spacing: 1px;
    text-shadow:    var(--glow-pink);
}
.modal-close {
    background:     none;
    border:         none;
    color:          var(--text3);
    font-size:      14px;
    cursor:         pointer;
    padding:        2px 6px;
    border-radius:  4px;
    line-height:    1;
    transition:     color .15s, background .15s;
    flex-shrink:    0;
    margin-left:    auto;
}
.modal-close:hover { color: var(--accent); background: rgba(0,212,255,.08); }
.modal-body { display: flex; flex-direction: column; gap: 14px; }

/* Form inside modal */
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.form-row.one { grid-template-columns: 1fr; }
.fgroup { display: flex; flex-direction: column; gap: 5px; }
.flbl {
    font-family:    'Share Tech Mono', monospace;
    font-size:      9px;
    color:          var(--text3);
    letter-spacing: 1px;
    font-weight:    700;
}
.finput {
    font-family:    'Share Tech Mono', monospace;
    font-size:      11px;
    color:          var(--text1);
    background:     rgba(0,0,0,.35);
    border:         1px solid rgba(0,212,255,.2);
    border-radius:  4px;
    padding:        8px 10px;
    width:          100%;
    outline:        none;
    transition:     border-color .2s;
    resize:         vertical;
}
.finput:focus { border-color: rgba(0,212,255,.55); box-shadow: 0 0 8px rgba(0,212,255,.12); }
.modal-msg {
    display:       none;
    font-size:     10px;
    padding:       8px 12px;
    border-radius: 4px;
    font-family:   'Share Tech Mono', monospace;
}
.modal-msg.error   { color:var(--red);   background:rgba(255,43,85,.08);  border:1px solid rgba(255,43,85,.25); }
.modal-msg.success { color:var(--green); background:rgba(0,255,136,.07); border:1px solid rgba(0,255,136,.25); }
.confirm-btn {
    width:          100%;
    font-family:    'Share Tech Mono', monospace;
    font-size:      11px;
    font-weight:    700;
    letter-spacing: 2px;
    padding:        12px;
    background:     rgba(0,212,255,.1);
    color:          var(--accent);
    border:         1px solid rgba(0,212,255,.45);
    border-radius:  4px;
    cursor:         pointer;
    transition:     all .2s;
}
.confirm-btn:hover {
    background: rgba(0,212,255,.22);
    box-shadow: 0 0 18px rgba(0,212,255,.3);
}
.prod-contato-intro {
    font-size:     10px;
    color:         var(--text2);
    padding:       10px 12px;
    background:    rgba(0,212,255,.04);
    border-radius: 4px;
    border:        1px solid rgba(0,212,255,.12);
    line-height:   1.6;
}
.prod-contato-intro strong { color: var(--accent); }
.prod-contato-footer {
    font-size:  9px;
    color:      var(--text3);
    text-align: center;
    padding-top: 6px;
    line-height: 1.6;
}
.prod-contato-footer strong { color: var(--text2); }

/* ══════════════════════════════════════════════
   CATÁLOGO DE PRODUTOS · ProductsModule
══════════════════════════════════════════════ */
.prod-panel  { padding: 10px 14px; display: flex; flex-direction: column; gap: 12px; }

/* ─────────────────────────────────────────────
   PANEL HEADER · pph-*
   Header global do painel de produtos
───────────────────────────────────────────── */
.pph-wrap {
    background:    linear-gradient(135deg, rgba(0,212,255,.04) 0%, rgba(0,0,0,.18) 100%);
    border:        1px solid rgba(0,212,255,.15);
    border-radius: 8px;
    overflow:      hidden;
    margin-bottom: 2px;
}

/* Topo: marca + stats */
.pph-top {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    gap:             12px;
    padding:         14px 18px 10px;
    border-bottom:   1px solid rgba(0,212,255,.1);
    flex-wrap:       wrap;
}
.pph-brand-logo {
    font-family:    'Share Tech Mono', monospace;
    font-size:      15px;
    font-weight:    700;
    color:          var(--accent);
    letter-spacing: 3px;
    text-shadow:    0 0 14px rgba(0,212,255,.35);
}
.pph-brand-sub {
    font-size:  8.5px;
    color:      var(--text3);
    margin-top: 3px;
    letter-spacing: .4px;
}
.pph-stats {
    display: flex;
    gap:     16px;
    align-items: center;
    flex-shrink: 0;
}
.pph-stat {
    text-align: center;
    min-width:  36px;
}
.pph-stat-val {
    font-family: 'Share Tech Mono', monospace;
    font-size:   18px;
    font-weight: 700;
    color:       var(--accent);
    line-height: 1;
}
.pph-stat-lbl {
    font-size:      7px;
    color:          var(--text3);
    letter-spacing: .5px;
    margin-top:     3px;
}
.pph-pix-dot { color: var(--green) !important; font-size: 11px !important; }

/* Linha de chips CNAE */
.pph-cnae-row {
    display:     flex;
    align-items: center;
    gap:         6px;
    padding:     10px 18px;
    border-bottom: 1px solid rgba(0,212,255,.08);
    flex-wrap:   wrap;
}
.pph-cnae-lbl {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    color:          var(--text3);
    letter-spacing: 1px;
    flex-shrink:    0;
}
.pph-cnae-chip {
    display:        inline-flex;
    align-items:    center;
    gap:            4px;
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    padding:        3px 8px;
    border-radius:  3px;
    border:         1px solid rgba(0,212,255,.15);
    background:     rgba(0,0,0,.2);
    color:          var(--text2);
    cursor:         pointer;
    transition:     background .15s, border-color .15s, color .15s;
    letter-spacing: .4px;
    white-space:    nowrap;
}
.pph-cnae-chip:hover  { background: rgba(0,212,255,.08); color: var(--accent); border-color: rgba(0,212,255,.35); }
.pph-chip-icon { font-size: 10px; }
.pph-chip-code { font-size: 8px; }

/* Cores específicas por CNAE */
.pph-chip-accent:hover { color: var(--accent) !important; border-color: rgba(0,212,255,.4) !important; }
.pph-chip-purple:hover { color: var(--purple) !important; border-color: rgba(155,89,255,.4) !important; }
.pph-chip-green:hover  { color: var(--green)  !important; border-color: rgba(0,255,136,.4) !important; }
.pph-chip-gold:hover   { color: var(--yellow) !important; border-color: rgba(255,214,0,.4) !important; }
.pph-chip-red:hover    { color: var(--red)    !important; border-color: rgba(255,43,85,.4) !important; }
.pph-chip-orange:hover { color: var(--orange) !important; border-color: rgba(255,140,0,.4) !important; }
.pph-chip-teal:hover   { color: #00cfcf       !important; border-color: rgba(0,207,207,.4) !important; }
.pph-chip-ai:hover     { color: var(--purple) !important; border-color: rgba(155,89,255,.4) !important; }

/* Linha de destaques */
.pph-destaques-row {
    display:     flex;
    align-items: flex-start;
    gap:         10px;
    padding:     10px 18px;
    border-bottom: 1px solid rgba(0,212,255,.08);
    flex-wrap:   wrap;
}
.pph-dest-lbl {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    color:          var(--yellow);
    letter-spacing: 1px;
    flex-shrink:    0;
    padding-top:    4px;
}
.pph-destaques-grid {
    display:  flex;
    gap:      8px;
    flex-wrap:wrap;
    flex:     1;
}
.pph-destaque-card {
    background:    rgba(0,0,0,.25);
    border:        1px solid rgba(0,212,255,.15);
    border-radius: 5px;
    padding:       8px 12px;
    cursor:        pointer;
    transition:    border-color .15s, background .15s;
    min-width:     130px;
}
.pph-destaque-card:hover { background: rgba(0,212,255,.06); border-color: rgba(0,212,255,.35); }
.pph-dc-nome {
    font-family:   'Share Tech Mono', monospace;
    font-size:     9px;
    font-weight:   700;
    margin-bottom: 2px;
}
.pph-dc-preco {
    font-family:   'Share Tech Mono', monospace;
    font-size:     8px;
    color:         var(--green);
    margin-bottom: 2px;
}
.pph-dc-sub {
    font-size:   8px;
    color:       var(--text3);
    line-height: 1.4;
}

/* Cores do nome por CNAE */
.pph-dc-accent .pph-dc-nome { color: var(--accent); }
.pph-dc-purple .pph-dc-nome { color: var(--purple); }
.pph-dc-green  .pph-dc-nome { color: var(--green); }
.pph-dc-gold   .pph-dc-nome { color: var(--yellow); }
.pph-dc-red    .pph-dc-nome { color: var(--red); }
.pph-dc-orange .pph-dc-nome { color: var(--orange); }
.pph-dc-teal   .pph-dc-nome { color: #00cfcf; }

/* Barra PIX */
.pph-pix-bar {
    display:     flex;
    align-items: center;
    gap:         6px;
    padding:     8px 18px;
    background:  rgba(0,255,136,.04);
    flex-wrap:   wrap;
    font-size:   8.5px;
}
.pph-pix-icon  { color: var(--green); font-size: 12px; }
.pph-pix-label { font-family:'Share Tech Mono',monospace; color: var(--green); letter-spacing:1.5px; font-size:8px; font-weight:700; }
.pph-pix-chave { color: var(--text2); }
.pph-pix-chave strong { color: var(--green); }
.pph-pix-sep   { color: var(--text3); }
.pph-pix-fav   { color: var(--text2); }
.pph-pix-fav strong { color: var(--text2); }
.pph-pix-nf    { color: var(--text3); }
.pph-pix-ssl   { color: var(--accent); font-family:'Share Tech Mono',monospace; font-size:8px; margin-left:auto; }

/* Header por CNAE · destaque inline */
.prod-cnae-hdr-feat {
    display:     flex;
    align-items: center;
    gap:         6px;
    margin-top:  6px;
    flex-wrap:   wrap;
}
.pch-feat-lbl   { font-family:'Share Tech Mono',monospace; font-size:7.5px; color:var(--yellow); letter-spacing:.5px; }
.pch-feat-nome  { font-family:'Share Tech Mono',monospace; font-size:9px; color:var(--text1); font-weight:700; }
.pch-feat-preco { font-family:'Share Tech Mono',monospace; font-size:8.5px; color:var(--green); }

/* Responsive */
@media (max-width:640px) {
    .pph-top           { flex-direction: column; align-items: flex-start; }
    .pph-stats         { gap: 10px; }
    .pph-destaques-row { flex-direction: column; }
    .pph-destaques-grid{ gap: 6px; }
    .pph-pix-bar       { gap: 4px; flex-direction: column; align-items: flex-start; }
    .pph-pix-ssl       { margin-left: 0; }
}

/* Paginação por CNAE */
.prod-pagination {
    display:     flex;
    align-items: center;
    gap:         5px;
    flex-wrap:   wrap;
    padding:     0;
    margin:      0;
}
.prod-pg-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8.5px;
    letter-spacing: .5px;
    padding:        5px 10px;
    background:     var(--bg3);
    color:          var(--text3);
    border:         1px solid var(--border);
    border-radius:  3px;
    cursor:         pointer;
    white-space:    nowrap;
    transition:     all .15s;
}
.prod-pg-btn:hover  { color:var(--accent); border-color:rgba(0,212,255,.35); background:rgba(0,212,255,.07); }
.prod-pg-btn.active { color:var(--accent); border-color:rgba(0,212,255,.55); background:rgba(0,212,255,.12); font-weight:700; }
.prod-pg-prev, .prod-pg-next {
    font-family:  'Share Tech Mono', monospace;
    font-size:    10px;
    padding:      5px 10px;
    background:   var(--bg2);
    color:        var(--text2);
    border:       1px solid var(--border);
    border-radius:3px;
    cursor:       pointer;
    transition:   all .15s;
    flex-shrink:  0;
}
.prod-pg-prev:hover, .prod-pg-next:hover { color:var(--accent); border-color:rgba(0,212,255,.35); }
.prod-pg-prev:disabled, .prod-pg-next:disabled { opacity:.3; cursor:default; pointer-events:none; }

/* Página invisível/visível */
.prod-page        { display: none; }
.prod-page.active { display: block; }

/* Cabeçalho de CNAE */
.prod-cnae-hdr {
    display:       flex;
    align-items:   center;
    gap:           14px;
    padding:       14px 16px;
    border-radius: 6px;
    margin-bottom: 14px;
    border:        1px solid rgba(255,255,255,.08);
    background:    rgba(0,0,0,.2);
}
.prod-cnae-icon  { font-size: 28px; flex-shrink: 0; }
.prod-cnae-meta  { flex: 1; min-width: 0; }
.prod-cnae-code  { font-family:'Share Tech Mono',monospace; font-size:11px; font-weight:700; letter-spacing:1.5px; margin-bottom:3px; }
.prod-cnae-desc  { font-size:9px; color:var(--text2); line-height:1.4; }
.prod-cnae-tags  { display:flex; gap:6px; align-items:center; margin-top:6px; flex-wrap:wrap; }
.prod-cnae-badge { font-size:7.5px; font-weight:700; letter-spacing:1.5px; padding:2px 7px; border-radius:3px; }
.prod-cnae-badge-main { background:rgba(0,212,255,.15); color:var(--accent); border:1px solid rgba(0,212,255,.3); }
.prod-cnae-badge-sec  { background:rgba(255,255,255,.06); color:var(--text2); border:1px solid rgba(255,255,255,.12); }
.prod-cnae-badge-ai   { background:rgba(155,89,255,.15); color:var(--purple); border:1px solid rgba(155,89,255,.3); }
.prod-cnae-count { font-size:8px; color:var(--text3); }
.prod-cnae-pg    { font-size:8px; color:var(--text3); margin-left:auto; }

/* Cores por CNAE */
.prod-cnae-accent .prod-cnae-code { color:var(--accent); }
.prod-cnae-purple .prod-cnae-code { color:var(--purple); }
.prod-cnae-green  .prod-cnae-code { color:var(--green); }
.prod-cnae-gold   .prod-cnae-code { color:var(--iso-gold); }
.prod-cnae-red    .prod-cnae-code { color:var(--red); }
.prod-cnae-orange .prod-cnae-code { color:var(--orange); }
.prod-cnae-teal   .prod-cnae-code { color:#00cfcf; }
.prod-cnae-ai     .prod-cnae-code { color:var(--purple); }

/* Grid de cards */
.prod-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:14px; margin-bottom:10px; }

/* Card de produto */
.prod-card {
    background:    rgba(255,255,255,.025);
    border:        1px solid rgba(0,212,255,.14);
    border-radius: 6px;
    padding:       14px;
    display:       flex;
    flex-direction:column;
    gap:           9px;
    position:      relative;
    transition:    border-color .2s, box-shadow .2s;
}
.prod-card:hover { border-color:rgba(0,212,255,.4); box-shadow: 0 0 14px rgba(0,212,255,.08); }
.prod-card-destaque { border-color:rgba(255,215,0,.4); background:rgba(255,215,0,.03); }
.prod-card-destaque:hover { border-color:rgba(255,215,0,.7); box-shadow:0 0 16px rgba(255,215,0,.12); }

/* Cor de borda por CNAE */
.prod-card-accent  { border-color:rgba(0,212,255,.2); }
.prod-card-purple  { border-color:rgba(155,89,255,.2); }
.prod-card-green   { border-color:rgba(0,255,136,.2); }
.prod-card-gold    { border-color:rgba(255,214,0,.2); }
.prod-card-red     { border-color:rgba(255,43,85,.2); }
.prod-card-orange  { border-color:rgba(255,140,0,.2); }
.prod-card-teal    { border-color:rgba(0,207,207,.2); }

.prod-destaque-badge {
    position:       absolute;
    top:            -1px;
    right:          12px;
    background:     #ffd700;
    color:          #000;
    font-size:      7px;
    font-weight:    700;
    letter-spacing: 1.5px;
    padding:        3px 8px;
    border-radius:  0 0 4px 4px;
    font-family:    'Share Tech Mono', monospace;
}

.prod-card-hdr   { display:flex; flex-direction:column; gap:4px; }
.prod-card-nome  { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--accent); font-weight:700; letter-spacing:1px; }
.prod-card-sub   { font-size:8.5px; color:var(--text2); }
.prod-status-ok   { font-size:8px; color:var(--green);  letter-spacing:.5px; }
.prod-status-soon { font-size:8px; color:var(--yellow); letter-spacing:.5px; }
.prod-card-desc   { font-size:9px; color:var(--text2); line-height:1.5; }
.prod-card-preco  { font-family:'Share Tech Mono',monospace; font-size:14px; color:var(--green); font-weight:700; }
.prod-card-modelo { font-size:8.5px; color:var(--text3); }
.prod-card-features { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:4px; flex:1; }
.prod-card-features li { font-size:8.5px; color:var(--text2); line-height:1.4; }
.prod-card-actions { display:flex; gap:7px; margin-top:auto; }
.prod-card-btn {
    flex:           1;
    font-family:    'Share Tech Mono', monospace;
    font-size:      9px;
    font-weight:    700;
    letter-spacing: 1px;
    padding:        8px 4px;
    background:     rgba(0,212,255,.08);
    color:          var(--accent);
    border:         1px solid rgba(0,212,255,.35);
    border-radius:  4px;
    cursor:         pointer;
    transition:     all .2s;
    text-align:     center;
}
.prod-card-btn:hover { background:rgba(0,212,255,.2); box-shadow:0 0 12px rgba(0,212,255,.2); }
.prod-card-btn-consulta {
    background:  rgba(155,89,255,.08);
    color:       var(--purple);
    border-color:rgba(155,89,255,.3);
}
.prod-card-btn-consulta:hover { background:rgba(155,89,255,.2); box-shadow:0 0 12px rgba(155,89,255,.2); }

/* Página IA */
.prod-ai-wrap  { display:flex; flex-direction:column; gap:14px; }
.prod-ai-btns  { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.prod-ai-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    font-weight:    700;
    letter-spacing: 1px;
    padding:        9px 16px;
    border-radius:  4px;
    cursor:         pointer;
    transition:     all .2s;
    border:         1px solid;
}
.prod-ai-btn-accent { background:rgba(0,212,255,.09);  color:var(--accent);   border-color:rgba(0,212,255,.35); }
.prod-ai-btn-gold   { background:rgba(255,214,0,.08);  color:var(--iso-gold); border-color:rgba(255,214,0,.3); }
.prod-ai-btn-green  { background:rgba(0,255,136,.07);  color:var(--green);    border-color:rgba(0,255,136,.3); }
.prod-ai-btn:hover  { filter:brightness(1.25); box-shadow:0 0 14px rgba(0,212,255,.18); }

/* ══════════════════════════════════════════════
   PAINEL DE PENDÊNCIAS · PendenciasModule
══════════════════════════════════════════════ */
.pend-panel    { padding:14px; display:flex; flex-direction:column; gap:12px; }
.pend-header   { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.pend-header-left { display:flex; flex-direction:column; gap:3px; }
.pend-title    { font-family:'Share Tech Mono',monospace; font-size:13px; color:var(--accent); font-weight:700; letter-spacing:2px; }
.pend-sub      { font-size:9px; color:var(--text3); letter-spacing:.5px; }
.pend-header-badge { display:flex; align-items:center; gap:6px; font-family:'Share Tech Mono',monospace; font-size:9px; color:var(--green); font-weight:700; letter-spacing:1.5px; }
.pend-badge-dot { width:7px; height:7px; border-radius:50%; background:var(--green); animation:livePulse 2s ease-in-out infinite; flex-shrink:0; }

/* KPIs */
.pend-kpi-row { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.pend-kpi     { background:rgba(0,0,0,.2); border-radius:6px; padding:10px 8px; text-align:center; border:1px solid rgba(255,255,255,.07); }
.pend-kpi-val { font-family:'Share Tech Mono',monospace; font-size:22px; font-weight:700; line-height:1; }
.pend-kpi-lbl { font-size:7.5px; color:var(--text3); letter-spacing:.5px; margin-top:4px; }
.pend-kpi-red    .pend-kpi-val { color:var(--red); }
.pend-kpi-yellow .pend-kpi-val { color:var(--yellow); }
.pend-kpi-green  .pend-kpi-val { color:var(--green); }
.pend-kpi-gold   .pend-kpi-val { color:var(--iso-gold); }
.pend-kpi-accent .pend-kpi-val { color:var(--accent); }

/* Paginação de pendências */
.pend-pagination { margin-bottom:0; }

/* Título de seção */
.pend-section-title { font-family:'Share Tech Mono',monospace; font-size:10px; font-weight:700; letter-spacing:2px; padding:8px 0; margin-bottom:10px; border-bottom:1px solid rgba(255,255,255,.06); }
.pend-sec-red    { color:var(--red);      border-color:rgba(255,43,85,.2); }
.pend-sec-gold   { color:var(--iso-gold); border-color:rgba(255,214,0,.2); }
.pend-sec-accent { color:var(--accent);   border-color:rgba(0,212,255,.2); }

/* Grid de itens */
.pend-grid-single { display:flex; flex-direction:column; gap:8px; }

/* Item individual */
.pend-item {
    background:    rgba(0,0,0,.2);
    border:        1px solid rgba(255,255,255,.07);
    border-radius: 6px;
    padding:       12px 14px;
    display:       flex;
    flex-direction:column;
    gap:           8px;
    transition:    border-color .2s;
}
.pend-item:hover { border-color:rgba(0,212,255,.25); }
.pend-item-prod  { border-left:2px solid rgba(255,214,0,.3); }
.pend-item-header { display:flex; align-items:flex-start; gap:10px; }
.pend-item-icon   { font-size:20px; flex-shrink:0; }
.pend-item-info   { flex:1; min-width:0; }
.pend-item-id     { font-family:'Share Tech Mono',monospace; font-size:8.5px; color:var(--text3); letter-spacing:.5px; margin-bottom:3px; }
.pend-item-title  { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--text1); font-weight:700; letter-spacing:.5px; }
.pend-item-meta   { display:flex; gap:6px; flex-wrap:wrap; }
.pend-meta-chip   { font-size:8px; color:var(--text3); background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.08); border-radius:3px; padding:2px 7px; }
.pend-item-desc   { font-size:9px; color:var(--text2); line-height:1.5; }
.pend-item-acao   { font-size:9px; color:var(--accent); font-style:italic; line-height:1.4; }
.pend-item-footer { display:flex; align-items:center; justify-content:flex-end; }

/* Status badges */
.pend-status { font-family:'Share Tech Mono',monospace; font-size:8px; font-weight:700; letter-spacing:1px; padding:3px 8px; border-radius:3px; white-space:nowrap; flex-shrink:0; }
.pend-status-red    { background:rgba(255,43,85,.12);  color:var(--red);      border:1px solid rgba(255,43,85,.25); }
.pend-status-yellow { background:rgba(255,214,0,.1);   color:var(--yellow);   border:1px solid rgba(255,214,0,.25); }
.pend-status-orange { background:rgba(255,140,0,.1);   color:var(--orange);   border:1px solid rgba(255,140,0,.25); }
.pend-status-accent { background:rgba(0,212,255,.08);  color:var(--accent);   border:1px solid rgba(0,212,255,.25); }
.pend-status-green  { background:rgba(0,255,136,.09);  color:var(--green);    border:1px solid rgba(0,255,136,.3); }

/* Botão resolver */
.pend-resolve-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    font-weight:    700;
    letter-spacing: 1px;
    padding:        4px 12px;
    background:     rgba(0,255,136,.07);
    color:          var(--green);
    border:         1px solid rgba(0,255,136,.3);
    border-radius:  3px;
    cursor:         pointer;
    transition:     all .2s;
}
.pend-resolve-btn:hover { background:rgba(0,255,136,.18); box-shadow:0 0 10px rgba(0,255,136,.2); }
.pend-resolve-btn:disabled { opacity:.4; cursor:default; pointer-events:none; }

/* Grid de próximas ações */
.pend-actions-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:8px; }
.pend-action-card  { display:flex; align-items:center; gap:10px; background:rgba(0,0,0,.2); border:1px solid rgba(255,255,255,.07); border-radius:6px; padding:10px 12px; }
.pend-act-icon     { font-size:20px; flex-shrink:0; }
.pend-act-body     { flex:1; min-width:0; }
.pend-act-label    { font-family:'Share Tech Mono',monospace; font-size:9.5px; color:var(--text1); font-weight:700; margin-bottom:3px; }
.pend-act-meta     { font-size:8px; color:var(--text3); }
.pend-act-prio     { font-family:'Share Tech Mono',monospace; font-size:8px; font-weight:700; letter-spacing:1px; padding:3px 7px; border-radius:3px; flex-shrink:0; }
.pend-act-alta  .pend-act-prio { background:rgba(255,43,85,.12);  color:var(--red);      border:1px solid rgba(255,43,85,.25); }
.pend-act-media .pend-act-prio { background:rgba(255,214,0,.1);   color:var(--yellow);   border:1px solid rgba(255,214,0,.25); }
.pend-act-baixa .pend-act-prio { background:rgba(0,255,136,.08);  color:var(--green);    border:1px solid rgba(0,255,136,.2); }
.pend-act-alta  { border-left:2px solid rgba(255,43,85,.4); }
.pend-act-media { border-left:2px solid rgba(255,214,0,.3); }
.pend-act-baixa { border-left:2px solid rgba(0,255,136,.3); }

.pend-item-resolvida { opacity:.75; border-color:rgba(0,255,136,.2); }
.pend-item-resolvida:hover { border-color:rgba(0,255,136,.4); opacity:1; }
.pend-item-resolucao {
    font-size:     9px;
    color:         var(--green);
    background:    rgba(0,255,136,.05);
    border:        1px solid rgba(0,255,136,.2);
    border-radius: 3px;
    padding:       6px 10px;
    line-height:   1.4;
}
.pend-footer { font-size:8.5px; color:var(--text3); text-align:center; padding-top:6px; border-top:1px solid rgba(255,255,255,.05); }

/* ══════════════════════════════════════════════
   SECBOT CHATBOT · Layout estilo Claude
   Threat Intelligence · CVEs · LGPD · ISO 27001
══════════════════════════════════════════════ */

/* Panel wrapper */
.secnews-panel {
    display:        flex;
    flex-direction: column;
    gap:            10px;
    padding:        10px 14px 8px;
}

/* ── Header ── */
.secnews-header {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    flex-wrap:       wrap;
    gap:             10px;
    padding:         10px 14px;
    background:      linear-gradient(135deg, rgba(255,43,85,.05), rgba(0,212,255,.03));
    border:          1px solid var(--border);
    border-radius:   8px;
    flex-shrink:     0;
}
.sn-chatbot-info { display:flex; align-items:center; gap:12px; }
.sn-avatar-wrap  {
    width:36px; height:36px; border-radius:50%;
    background:rgba(0,212,255,.1); border:1px solid rgba(0,212,255,.25);
    display:flex; align-items:center; justify-content:center;
    font-size:18px; flex-shrink:0;
}
.sn-main-title  { font-family:'Share Tech Mono',monospace; font-size:12px; color:var(--red); letter-spacing:1.5px; font-weight:700; }
.sn-subtitle    { font-size:8.5px; color:var(--text3); margin-top:3px; letter-spacing:.3px; }
.sn-status-pill {
    display:     flex;
    align-items: center;
    gap:         6px;
    font-family: 'Share Tech Mono', monospace;
    font-size:   8.5px;
    color:       var(--green);
    background:  rgba(0,255,136,.07);
    border:      1px solid rgba(0,255,136,.2);
    border-radius:20px;
    padding:     4px 12px;
    letter-spacing: .8px;
}
.sn-status-dot {
    width:6px; height:6px; border-radius:50%;
    background:var(--green);
    animation: livePulse 2s ease-in-out infinite;
}

/* ── Área de mensagens ── */
.sna-chat-area {
    height:          calc(100vh - 44px - 54px - 32px - 170px);
    min-height:      320px;
    overflow-y:      auto;
    display:         flex;
    flex-direction:  column;
    gap:             2px;
    padding:         18px 16px 10px;
    background:      var(--bg);
    border:          1px solid var(--border);
    border-radius:   10px;
    scroll-behavior: smooth;
}
.sna-chat-area::-webkit-scrollbar       { width:3px; }
.sna-chat-area::-webkit-scrollbar-track { background:transparent; }
.sna-chat-area::-webkit-scrollbar-thumb { background:rgba(0,212,255,.2); border-radius:2px; }

/* ── Mensagens — estrutura Claude-like ── */
.sna-msg {
    display:   flex;
    gap:       10px;
    padding:   10px 0;
    border-bottom: 1px solid rgba(255,255,255,.04);
    animation: snaFadeIn .25s ease;
}
.sna-msg:last-child { border-bottom: none; }
@keyframes snaFadeIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }

/* Usuário: linha à direita */
.sna-msg-user {
    flex-direction:  row-reverse;
    align-items:     flex-start;
}

/* Chatbot: linha à esquerda */
.sna-msg-chatbot,
.sna-msg-error {
    flex-direction: row;
    align-items:    flex-start;
}

/* Avatar do chatbot */
.sna-msg-avatar {
    width:32px; height:32px; border-radius:50%;
    background:rgba(0,212,255,.08); border:1px solid rgba(0,212,255,.2);
    display:flex; align-items:center; justify-content:center;
    font-size:16px; flex-shrink:0; margin-top:2px;
}

/* Conteúdo da mensagem (meta + bubble) */
.sna-msg-content {
    display:        flex;
    flex-direction: column;
    gap:            5px;
    max-width:      82%;
}
.sna-msg-user .sna-msg-content { align-items: flex-end; }

/* Metadados (role + timestamp) */
.sna-msg-meta {
    display:     flex;
    align-items: center;
    gap:         8px;
}
.sna-msg-user .sna-msg-meta { flex-direction: row-reverse; }
.sna-msg-role-lbl {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    font-weight:    700;
    letter-spacing: 1px;
    color:          var(--text3);
}
.sna-role-chatbot { color: var(--accent); }
.sna-msg-ts {
    font-family: 'Share Tech Mono', monospace;
    font-size:   8px;
    color:       var(--text3);
    opacity:     .6;
}

/* Bolhas */
.sna-bubble {
    padding:     11px 16px;
    border-radius: 12px;
    font-family: 'Share Tech Mono', monospace;
    font-size:   11px;
    line-height: 1.72;
    word-break:  break-word;
}
.sna-bubble-user {
    background:          rgba(0,212,255,.1);
    border:              1px solid rgba(0,212,255,.22);
    color:               var(--accent);
    border-top-right-radius: 3px;
}
.sna-bubble-chatbot {
    background:         rgba(255,255,255,.03);
    border:             1px solid rgba(255,255,255,.08);
    color:              var(--text1);
    border-top-left-radius: 3px;
}
.sna-bubble-error {
    background:         rgba(255,43,85,.06);
    border:             1px solid rgba(255,43,85,.22);
    color:              var(--red);
    border-top-left-radius: 3px;
}

/* ── Typing indicator ── */
.sna-typing-dots {
    display:       flex;
    gap:           5px;
    align-items:   center;
    padding:       10px 14px;
    background:    rgba(255,255,255,.03);
    border:        1px solid rgba(255,255,255,.08);
    border-radius: 12px;
    border-top-left-radius: 3px;
    width:         fit-content;
}
.sna-typing-dots span {
    width:6px; height:6px; border-radius:50%;
    background:var(--accent); opacity:.35;
    animation: snaBounce 1.3s ease-in-out infinite;
}
.sna-typing-dots span:nth-child(2) { animation-delay:.2s; }
.sna-typing-dots span:nth-child(3) { animation-delay:.4s; }
@keyframes snaBounce {
    0%,60%,100% { opacity:.35; transform:translateY(0); }
    30%          { opacity:1;  transform:translateY(-5px); }
}

/* ── Composer (textarea + send) — estilo Claude ── */
.sna-composer {
    position:        relative;
    display:         flex;
    align-items:     flex-end;
    gap:             0;
    background:      var(--bg2);
    border:          1px solid rgba(0,212,255,.25);
    border-radius:   12px;
    padding:         6px 6px 6px 14px;
    transition:      border-color .2s, box-shadow .2s;
    flex-shrink:     0;
}
.sna-composer:focus-within {
    border-color: rgba(0,212,255,.55);
    box-shadow:   0 0 16px rgba(0,212,255,.1);
}
.sna-textarea {
    flex:         1;
    background:   transparent;
    border:       none;
    outline:      none;
    resize:       none;
    font-family:  'Share Tech Mono', monospace;
    font-size:    11px;
    color:        var(--text1);
    line-height:  1.6;
    padding:      6px 0;
    max-height:   140px;
    overflow-y:   auto;
}
.sna-textarea::placeholder { color:var(--text3); }
.sna-textarea::-webkit-scrollbar       { width:3px; }
.sna-textarea::-webkit-scrollbar-thumb { background:rgba(0,212,255,.2); border-radius:2px; }

.sna-send-icon {
    width:34px; height:34px; border-radius:8px; flex-shrink:0;
    background:rgba(0,212,255,.12); border:1px solid rgba(0,212,255,.3);
    color:var(--accent); display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:background .15s, border-color .15s, box-shadow .15s;
    align-self: flex-end;
    margin-bottom: 1px;
}
.sna-send-icon:hover {
    background:  rgba(0,212,255,.25);
    border-color:var(--accent);
    box-shadow:  0 0 12px rgba(0,212,255,.25);
}

/* ── Footer note ── */
.sna-footer-note {
    font-family: 'Share Tech Mono', monospace;
    font-size:   8px;
    color:       var(--text3);
    text-align:  center;
    flex-shrink: 0;
}

/* ── Botões de ação no header (exportar, limpar) ── */
.sna-action-btn {
    width:        28px;
    height:       28px;
    border-radius:6px;
    border:       1px solid var(--border);
    background:   rgba(0,212,255,.04);
    color:        var(--text3);
    cursor:       pointer;
    font-size:    13px;
    display:      flex;
    align-items:  center;
    justify-content: center;
    transition:   background .2s, color .2s, border-color .2s;
    flex-shrink:  0;
    line-height:  1;
}
.sna-action-btn:hover { background: rgba(0,212,255,.12); color: var(--accent); border-color: rgba(0,212,255,.3); }

/* ── Botão copiar mensagem ── */
.sna-copy-btn {
    background:   none;
    border:       none;
    color:        var(--text3);
    cursor:       pointer;
    font-size:    10px;
    padding:      0 3px;
    line-height:  1;
    opacity:      0;
    transition:   opacity .15s, color .15s;
}
.sna-msg:hover .sna-copy-btn { opacity: 1; }
.sna-copy-btn:hover { color: var(--accent); }
.sna-copy-btn.copied { color: var(--green); }

/* ── Reações (👍 / 👎) ── */
.sna-reaction-wrap {
    display:      flex;
    gap:          2px;
    opacity:      0;
    transition:   opacity .15s;
}
.sna-msg:hover .sna-reaction-wrap { opacity: 1; }
.sna-react-btn {
    background:   none;
    border:       none;
    cursor:       pointer;
    font-size:    11px;
    padding:      0 2px;
    opacity:      .5;
    transition:   opacity .15s, transform .15s;
}
.sna-react-btn:hover  { opacity: 1; transform: scale(1.2); }
.sna-react-btn.active { opacity: 1; }

/* ── Wrapper textarea + contador de caracteres ── */
.sna-textarea-wrap {
    flex:          1;
    display:       flex;
    flex-direction:column;
    gap:           2px;
}
.sna-char-count {
    font-family:  'Share Tech Mono', monospace;
    font-size:    7.5px;
    color:        var(--text3);
    text-align:   right;
    padding-right:2px;
    opacity:      .6;
}

/* ══════════════════════════════════════════════
   SECBOT v5.2 · Backend + VUI + Métricas + UX Writing
   Novos componentes adicionados ao chatbot
══════════════════════════════════════════════ */

/* ── Ajuste de altura da área de chat com novos elementos ── */
.secnews-panel .sna-chat-area {
    height:     calc(100vh - 44px - 54px - 32px - 250px);
    min-height: 240px;
}
.sna-metrics-container {
    height:     calc(100vh - 44px - 54px - 32px - 250px);
    min-height: 240px;
    overflow-y: auto;
    border:     1px solid var(--border);
    border-radius: 10px;
    background: var(--bg);
    display:    none;
}
.sna-metrics-container::-webkit-scrollbar       { width:3px; }
.sna-metrics-container::-webkit-scrollbar-thumb { background:rgba(0,212,255,.2); border-radius:2px; }

/* ── Seletor de modo (Segurança / UX Writing / Métricas) ── */
.sna-mode-tabs {
    display:     flex;
    gap:         5px;
    flex-shrink: 0;
}
.sna-mode-btn {
    flex:        1;
    font-family: 'Share Tech Mono', monospace;
    font-size:   8.5px;
    letter-spacing: .7px;
    padding:     6px 8px;
    background:  rgba(0,212,255,.03);
    color:       var(--text3);
    border:      1px solid var(--border);
    border-radius: 5px;
    cursor:      pointer;
    transition:  background .2s, color .2s, border-color .2s;
    white-space: nowrap;
}
.sna-mode-btn:hover  { background: rgba(0,212,255,.09); color: var(--text1); }
.sna-mode-btn.active {
    background:    rgba(0,212,255,.12);
    color:         var(--accent);
    border-color:  rgba(0,212,255,.35);
}

/* ── Header direito (ações) ── */
.sna-hdr-right {
    display:     flex;
    align-items: center;
    gap:         8px;
    flex-shrink: 0;
}

/* ── Botão de saída de voz (VUI TTS) ── */
.sna-speak-btn {
    width:        28px;
    height:       28px;
    border-radius:50%;
    border:       1px solid var(--border);
    background:   rgba(0,212,255,.04);
    color:        var(--text3);
    cursor:       pointer;
    font-size:    13px;
    display:      flex;
    align-items:  center;
    justify-content: center;
    transition:   background .2s, color .2s, border-color .2s;
    flex-shrink:  0;
    line-height:  1;
}
.sna-speak-btn:hover { background: rgba(0,212,255,.12); color: var(--accent); }
.sna-speak-btn.active {
    background:   rgba(0,255,136,.12);
    border-color: rgba(0,255,136,.35);
    color:        var(--green);
    animation:    livePulse 2s ease-in-out infinite;
}

/* ── Quick prompts (chips horizontais roláveis) ── */
.sna-quick-wrap {
    display:       flex;
    gap:           5px;
    overflow-x:    auto;
    padding:       2px 0 4px;
    flex-shrink:   0;
}
.sna-quick-wrap::-webkit-scrollbar { display:none; }

.sna-qp-btn {
    font-family:   'Share Tech Mono', monospace;
    font-size:     8px;
    letter-spacing:.3px;
    padding:       5px 10px;
    white-space:   nowrap;
    background:    rgba(0,212,255,.04);
    color:         var(--text2);
    border:        1px solid var(--border);
    border-radius: 20px;
    cursor:        pointer;
    transition:    background .18s, color .18s, border-color .18s;
    flex-shrink:   0;
}
.sna-qp-btn:hover {
    background:    rgba(0,212,255,.12);
    color:         var(--accent);
    border-color:  rgba(0,212,255,.3);
}

/* ── Botão de microfone (VUI entrada) ── */
.sna-mic-btn {
    width:        34px;
    height:       34px;
    border-radius:50%;
    border:       1px solid var(--border);
    background:   rgba(0,212,255,.04);
    color:        var(--text3);
    cursor:       pointer;
    font-size:    14px;
    display:      flex;
    align-items:  center;
    justify-content: center;
    transition:   background .2s, color .2s, border-color .2s;
    flex-shrink:  0;
    line-height:  1;
}
.sna-mic-btn:hover { background: rgba(0,212,255,.12); color: var(--accent); }
.sna-mic-btn.recording {
    background:   rgba(255,43,85,.15);
    border-color: rgba(255,43,85,.5);
    color:        var(--red);
    animation:    micPulse 1s ease-in-out infinite;
}
@keyframes micPulse {
    0%,100% { transform: scale(1);    opacity: 1;   }
    50%     { transform: scale(1.14); opacity: 0.75; }
}

/* ══ PAINEL DE MÉTRICAS ══ */
.sna-metrics-panel {
    padding:        14px 16px;
    display:        flex;
    flex-direction: column;
    gap:            12px;
}

.sna-mhead {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    font-weight:    700;
    letter-spacing: 1.2px;
    color:          var(--accent);
    padding-bottom: 8px;
    border-bottom:  1px solid var(--border);
}

/* Grid 2×2 de cards */
.sna-metrics-grid {
    display:               grid;
    grid-template-columns: 1fr 1fr;
    gap:                   7px;
}
.sna-mcard {
    background:    rgba(0,212,255,.04);
    border:        1px solid var(--border);
    border-radius: 8px;
    padding:       11px 13px;
    display:       flex;
    flex-direction:column;
    gap:           3px;
    transition:    background .2s;
}
.sna-mcard:hover  { background: rgba(0,212,255,.07); }
.sna-mcard-warn   { border-color: rgba(255,43,85,.3); background: rgba(255,43,85,.04) !important; }

.sna-mval {
    font-family: 'Share Tech Mono', monospace;
    font-size:   20px;
    font-weight: 700;
    color:       var(--accent);
    line-height: 1;
}
.sna-mval.sna-red   { color: var(--red); }
.sna-mval.sna-green { color: var(--green); }

.sna-mlbl {
    font-size:      8px;
    color:          var(--text3);
    letter-spacing: .3px;
}

/* Título de seção interna */
.sna-msec-title {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8.5px;
    color:          var(--text3);
    letter-spacing: .7px;
    padding-top:    4px;
    border-top:     1px solid rgba(255,255,255,.04);
}

/* Distribuição de tópicos */
.sna-topics-list {
    display:        flex;
    flex-direction: column;
    gap:            5px;
}
.sna-tp-row {
    display:     flex;
    align-items: center;
    gap:         8px;
}
.sna-tp-lbl {
    font-family: 'Share Tech Mono', monospace;
    font-size:   8px;
    color:       var(--text2);
    width:       76px;
    flex-shrink: 0;
}
.sna-tp-bar-bg {
    flex:         1;
    height:       5px;
    background:   rgba(0,212,255,.08);
    border-radius:3px;
    overflow:     hidden;
}
.sna-tp-bar {
    height:       100%;
    background:   linear-gradient(90deg, rgba(0,212,255,.5), var(--accent));
    border-radius:3px;
    transition:   width .4s ease;
    min-width:    3px;
}
.sna-tp-n {
    font-family: 'Share Tech Mono', monospace;
    font-size:   8px;
    color:       var(--text3);
    width:       18px;
    text-align:  right;
    flex-shrink: 0;
}
.sna-m-empty {
    font-size:  8.5px;
    color:      var(--text3);
    text-align: center;
    padding:    10px 0;
    font-style: italic;
}

/* API stats chips */
.sna-api-stats {
    display:   flex;
    gap:       6px;
    flex-wrap: wrap;
}
.sna-api-chip {
    display:       flex;
    flex-direction:column;
    align-items:   center;
    gap:           2px;
    background:    rgba(0,212,255,.04);
    border:        1px solid var(--border);
    border-radius: 6px;
    padding:       7px 10px;
    min-width:     56px;
}
.sna-api-val {
    font-family: 'Share Tech Mono', monospace;
    font-size:   13px;
    font-weight: 700;
    color:       var(--accent);
}
.sna-api-val.sna-green { color: var(--green); }
.sna-api-val.sna-red   { color: var(--red); }
.sna-api-lbl {
    font-size:      7px;
    color:          var(--text3);
    letter-spacing: .2px;
}

/* Botão de refresh de métricas */
.sna-m-refresh {
    display:         flex;
    justify-content: flex-end;
    padding-top:     2px;
}
.sna-mrefresh-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    letter-spacing: .5px;
    padding:        5px 14px;
    background:     rgba(0,212,255,.05);
    color:          var(--accent);
    border:         1px solid rgba(0,212,255,.22);
    border-radius:  4px;
    cursor:         pointer;
    transition:     background .2s;
}
.sna-mrefresh-btn:hover { background: rgba(0,212,255,.13); }

/* ══════════════════════════════════════════════
   PAGAMENTOS PIX — PAINEL ADMIN (payments.js)
══════════════════════════════════════════════ */
.pay-panel {
    font-family: 'Share Tech Mono', monospace;
    padding:     16px;
    max-width:   900px;
}

.pay-header   { margin-bottom: 16px; }
.pay-title    { font-size: 14px; color: var(--accent); letter-spacing: 2px; margin-bottom: 4px; }
.pay-subtitle { font-size: 10px; color: var(--text3); }

/* Estatísticas */
.pay-stats-row {
    display:               grid;
    grid-template-columns: repeat(4, 1fr);
    gap:                   8px;
    margin-bottom:         16px;
}

.pay-stat {
    border:        1px solid var(--border);
    border-radius: 4px;
    padding:       10px;
    text-align:    center;
    background:    var(--bg2);
}
.pay-stat-val  { font-size: 22px; font-weight: 700; color: var(--text1); }
.pay-stat-lbl  { font-size: 8px;  color: var(--text3); letter-spacing: 1px; margin-top: 2px; }
.pay-stat-total .pay-stat-val { color: var(--accent); }
.pay-stat-pend  .pay-stat-val { color: var(--yellow); }
.pay-stat-ok    .pay-stat-val { color: var(--green); }
.pay-stat-rej   .pay-stat-val { color: var(--red); }

/* Config email */
.pay-email-status {
    border-radius: 4px;
    padding:       10px 14px;
    font-size:     10px;
    margin-bottom: 16px;
    line-height:   1.7;
}
.pay-email-ok   { background: rgba(0,255,136,.06); border: 1px solid rgba(0,255,136,.2); color: var(--green); }
.pay-email-warn { background: rgba(255,214,0,.06); border: 1px solid rgba(255,214,0,.2); color: var(--yellow); }
.pay-email-status code { background: rgba(0,212,255,.1); padding: 1px 5px; border-radius: 2px; font-size: 9px; }
.pay-email-status a    { color: var(--accent); }

/* Cards de pagamento */
.pay-empty {
    text-align:  center;
    color:       var(--text3);
    font-size:   11px;
    padding:     32px 20px;
    border:      1px dashed var(--border);
    border-radius: 4px;
    line-height: 1.8;
}

.pay-list    { display: flex; flex-direction: column; gap: 12px; }

.pay-card {
    border:        1px solid var(--border);
    border-radius: 4px;
    padding:       14px;
    background:    var(--bg2);
    transition:    border-color .2s;
}
.pay-card.pay-status-pend { border-left: 3px solid var(--yellow); }
.pay-card.pay-status-ok   { border-left: 3px solid var(--green); }
.pay-card.pay-status-rej  { border-left: 3px solid var(--red); opacity: .7; }

.pay-card-top    { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.pay-card-info   { flex: 1; min-width: 0; }
.pay-card-side   { flex-shrink: 0; text-align: right; }

.pay-card-produto { font-size: 13px; color: var(--text1); font-weight: 700; margin-bottom: 4px; }
.pay-card-cliente { font-size: 10px; color: var(--text2); margin-bottom: 2px; }
.pay-card-email   { font-size: 10px; color: var(--accent); margin-bottom: 2px; }
.pay-card-tel     { font-size: 10px; color: var(--text3); }

.pay-card-valor   { font-size: 15px; color: var(--green); font-weight: 700; margin-bottom: 3px; }
.pay-card-nf      { font-size: 9px;  color: var(--text3); letter-spacing: 1px; }
.pay-card-data    { font-size: 9px;  color: var(--text3); margin-bottom: 6px; }

.pay-card-status   { display: inline-block; font-size: 8px; padding: 2px 8px; border-radius: 10px; letter-spacing: 1px; }
.pay-status-pend   { background: rgba(255,214,0,.12); color: var(--yellow); border: 1px solid rgba(255,214,0,.3); }
.pay-status-ok     { background: rgba(0,255,136,.08); color: var(--green);  border: 1px solid rgba(0,255,136,.2); }
.pay-status-rej    { background: rgba(255,59,59,.08);  color: var(--red);    border: 1px solid rgba(255,59,59,.2); }

/* Ações */
.pay-card-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.pay-btn {
    font-family:   'Share Tech Mono', monospace;
    font-size:     9px;
    padding:       8px 14px;
    border-radius: 3px;
    border:        none;
    cursor:        pointer;
    letter-spacing: .5px;
    transition:    all .2s;
}
.pay-btn-confirm {
    background: rgba(0,255,136,.12);
    color:      var(--green);
    border:     1px solid rgba(0,255,136,.3);
}
.pay-btn-confirm:hover { background: rgba(0,255,136,.22); }
.pay-btn-reject {
    background: rgba(255,59,59,.1);
    color:      var(--red);
    border:     1px solid rgba(255,59,59,.25);
}
.pay-btn-reject:hover  { background: rgba(255,59,59,.2); }
.pay-btn-resend {
    background: rgba(0,212,255,.1);
    color:      var(--accent);
    border:     1px solid rgba(0,212,255,.25);
}
.pay-btn-resend:hover  { background: rgba(0,212,255,.2); }

.pay-email-sent {
    margin-top: 8px;
    font-size:  9px;
    color:      var(--green);
    opacity:    .8;
}

/* Badge no botão da aba */
.pay-tab-badge {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    min-width:       16px;
    height:          16px;
    border-radius:   8px;
    background:      var(--yellow);
    color:           #050a0f;
    font-size:       8px;
    font-weight:     700;
    padding:         0 4px;
    margin-left:     4px;
    vertical-align:  middle;
    animation:       pulse 2s infinite;
}

/* ══════════════════════════════════════════════
   QR CODE PIX — MELHORADO
══════════════════════════════════════════════ */
.pix-qr-wrap {
    display:        flex;
    flex-direction: column;
    align-items:    center;
    gap:            6px;
}

.pix-qr-canvas {
    background:    #fff;
    padding:       8px;
    border-radius: 6px;
    border:        2px solid var(--accent);
    box-shadow:    0 0 16px rgba(0,212,255,.2);
    display:       inline-block;
}

.pix-qr-label {
    font-size:      9px;
    color:          var(--text3);
    letter-spacing: .5px;
}

.pix-copy-btn {
    font-family:   'Share Tech Mono', monospace;
    font-size:     9px;
    padding:       7px 14px;
    background:    rgba(0,212,255,.1);
    color:         var(--accent);
    border:        1px solid rgba(0,212,255,.3);
    border-radius: 3px;
    cursor:        pointer;
    letter-spacing: .5px;
    transition:    all .2s;
    width:         100%;
    margin:        6px 0;
}
.pix-copy-btn:hover, .pix-copy-btn.pix-copy-ok {
    background: rgba(0,255,136,.12);
    color:      var(--green);
    border-color: rgba(0,255,136,.3);
}

.nf-pix-key-val {
    font-weight: 700;
    letter-spacing: .5px;
    color:          var(--accent);
}

/* ══════════════════════════════════════════════
   AVISO PAGAMENTO PENDENTE (nota fiscal)
══════════════════════════════════════════════ */
.nf-pending-notice {
    background:    rgba(255,214,0,.07);
    border:        1px solid rgba(255,214,0,.25);
    border-radius: 4px;
    padding:       10px 14px;
    font-size:     10px;
    color:         var(--yellow);
    margin-bottom: 12px;
    line-height:   1.7;
}
.nf-pending-notice small { opacity: .8; }
