/* ══════════════════════════════════════════════
   SPACESHIELD AI v5.2 · pentest.css
   Painel completo de Testes de Intrusão (PENTEST)
   Fases · Tipos · Ferramentas · Frameworks · Labs
   Seletores: pt-*
   Versão 2.0 · LinkedIn Ads B2B ready
══════════════════════════════════════════════ */

/* ──────────────────────────────────────────────
   PANEL WRAPPER
────────────────────────────────────────────── */
.pt-panel {
    padding:    0 2px;
    min-height: 500px;
}

/* ──────────────────────────────────────────────
   HEADER
────────────────────────────────────────────── */
.pt-header {
    display:         flex;
    align-items:     flex-start;
    justify-content: space-between;
    gap:             16px;
    margin-bottom:   18px;
    padding:         14px 16px;
    background:      linear-gradient(135deg, rgba(239,68,68,.08), rgba(0,212,255,.04));
    border:          1px solid rgba(239,68,68,.25);
    border-radius:   8px;
}

.pt-header-left { flex: 1; }

.pt-title {
    font-family:    'Share Tech Mono', monospace;
    font-size:      16px;
    color:          #ef4444;
    letter-spacing: 2px;
    margin-bottom:  4px;
    text-shadow:    0 0 12px rgba(239,68,68,.35);
}

.pt-subtitle {
    font-size:    11px;
    color:        var(--text2);
    margin-bottom:4px;
}

.pt-compliance {
    font-size: 9px;
    color:     var(--text3);
    letter-spacing: .5px;
}

.pt-header-kpis {
    display: flex;
    gap:     12px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.pt-kpi {
    background:    rgba(239,68,68,.08);
    border:        1px solid rgba(239,68,68,.2);
    border-radius: 6px;
    padding:       10px 14px;
    text-align:    center;
    min-width:     60px;
}

.pt-kpi-val {
    font-family: 'Share Tech Mono', monospace;
    font-size:   22px;
    font-weight: 700;
    color:       #ef4444;
    line-height: 1;
}

.pt-kpi-lbl {
    font-size:   8px;
    color:       var(--text3);
    letter-spacing: .5px;
    margin-top:  4px;
}

/* ──────────────────────────────────────────────
   NAV TABS (FASES / TIPOS / FERRAMENTAS / etc.)
────────────────────────────────────────────── */
.pt-nav {
    display:       flex;
    gap:           6px;
    flex-wrap:     wrap;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--border);
    padding-bottom:10px;
}

.pt-nav-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    padding:        6px 14px;
    background:     rgba(0,212,255,.05);
    color:          var(--text2);
    border:         1px solid rgba(0,212,255,.15);
    border-radius:  3px;
    cursor:         pointer;
    letter-spacing: .5px;
    transition:     background .2s, color .2s, border-color .2s;
}

.pt-nav-btn:hover {
    background:   rgba(239,68,68,.1);
    color:        #ef4444;
    border-color: rgba(239,68,68,.3);
}

.pt-nav-btn.active {
    background:   rgba(239,68,68,.15);
    color:        #ef4444;
    border-color: rgba(239,68,68,.4);
}

/* ──────────────────────────────────────────────
   CONTENT AREAS
────────────────────────────────────────────── */
.pt-content  { display: block; animation: ptFadeIn .25s ease; }
.pt-hidden   { display: none !important; }

@keyframes ptFadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.pt-section-title {
    font-family:    'Share Tech Mono', monospace;
    font-size:      11px;
    color:          #ef4444;
    letter-spacing: 1px;
    margin-bottom:  12px;
    padding-bottom: 6px;
    border-bottom:  1px solid rgba(239,68,68,.2);
}

/* ──────────────────────────────────────────────
   FASES — CARDS GRID
────────────────────────────────────────────── */
.pt-phases-grid {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap:                   14px;
    margin-bottom:         24px;
}

.pt-phase-card {
    background:    var(--bg3);
    border:        1px solid var(--border);
    border-radius: 8px;
    padding:       14px;
    transition:    border-color .2s, transform .15s;
}

.pt-phase-card:hover {
    transform:    translateY(-2px);
    border-color: rgba(239,68,68,.3);
}

.pt-phase-head {
    display:       flex;
    align-items:   center;
    gap:           8px;
    margin-bottom: 8px;
    padding-bottom:8px;
    border-bottom: 1px solid;
    border-color:  inherit;
}

.pt-phase-icon  { font-size: 20px; }

.pt-phase-label {
    font-family:    'Share Tech Mono', monospace;
    font-size:      11px;
    font-weight:    700;
    letter-spacing: .5px;
}

.pt-phase-desc {
    font-size:     10px;
    color:         var(--text2);
    line-height:   1.6;
    margin-bottom: 10px;
}

.pt-phase-steps { margin-bottom: 12px; }

.pt-step {
    font-size:     9px;
    color:         var(--text2);
    padding:       3px 0;
    border-bottom: 1px solid rgba(0,212,255,.06);
    line-height:   1.5;
}

.pt-step:last-child { border-bottom: none; }

.pt-phase-footer { margin-top: 10px; }

.pt-phase-tools {
    display:       flex;
    flex-wrap:     wrap;
    gap:           5px;
    margin-bottom: 8px;
}

.pt-tool-chip {
    font-family:   'Share Tech Mono', monospace;
    font-size:     8px;
    padding:       2px 7px;
    background:    rgba(239,68,68,.08);
    color:         #ef4444;
    border:        1px solid rgba(239,68,68,.2);
    border-radius: 3px;
}

.pt-phase-deliverable {
    font-size:   9px;
    color:       var(--text3);
    line-height: 1.5;
}

.pt-deliverable-lbl {
    font-family: 'Share Tech Mono', monospace;
    color:       var(--iso-gold);
    margin-right:4px;
}

/* ──────────────────────────────────────────────
   KILL CHAIN FLOW
────────────────────────────────────────────── */
.pt-kill-chain {
    background:    var(--bg3);
    border:        1px solid rgba(239,68,68,.2);
    border-radius: 8px;
    padding:       16px;
    margin-top:    8px;
}

.pt-kc-title {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    color:          #ef4444;
    letter-spacing: 1px;
    margin-bottom:  12px;
}

.pt-kc-flow {
    display:     flex;
    align-items: center;
    flex-wrap:   wrap;
    gap:         8px;
}

.pt-kc-step {
    display:        flex;
    flex-direction: column;
    align-items:    center;
    gap:            4px;
    padding:        8px 12px;
    background:     rgba(0,0,0,.3);
    border:         1px solid var(--phase-color, rgba(239,68,68,.3));
    border-radius:  6px;
    min-width:      70px;
}

.pt-kc-num {
    font-family: 'Share Tech Mono', monospace;
    font-size:   8px;
    color:       var(--text3);
}

.pt-kc-icon { font-size: 18px; }

.pt-kc-name {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    color:          var(--text2);
    text-align:     center;
    letter-spacing: .3px;
}

.pt-kc-arrow {
    font-size:  18px;
    color:      rgba(239,68,68,.4);
    font-weight:700;
}

/* ──────────────────────────────────────────────
   TIPOS — CARDS
────────────────────────────────────────────── */
.pt-types-grid {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap:                   14px;
}

.pt-type-card {
    background:    var(--bg3);
    border:        1px solid var(--border);
    border-radius: 8px;
    padding:       14px;
    transition:    border-color .2s, transform .15s;
}

.pt-type-card:hover {
    transform:    translateY(-2px);
    border-color: rgba(0,212,255,.25);
}

.pt-type-head {
    display:       flex;
    align-items:   center;
    gap:           8px;
    margin-bottom: 10px;
    padding-bottom:8px;
    border-bottom: 1px solid var(--border);
}

.pt-type-icon  { font-size: 20px; }

.pt-type-label {
    font-family:    'Share Tech Mono', monospace;
    font-size:      12px;
    font-weight:    700;
    flex:           1;
    letter-spacing: .3px;
}

.pt-type-price {
    font-family:    'Share Tech Mono', monospace;
    font-size:      11px;
    color:          var(--green);
    background:     rgba(0,255,136,.08);
    border:         1px solid rgba(0,255,136,.2);
    border-radius:  3px;
    padding:        2px 7px;
    white-space:    nowrap;
}

.pt-type-meta { margin-bottom: 10px; }

.pt-type-row {
    display:       flex;
    gap:           6px;
    font-size:     9px;
    color:         var(--text2);
    padding:       3px 0;
    border-bottom: 1px solid rgba(0,212,255,.05);
}

.pt-meta-lbl {
    font-family:    'Share Tech Mono', monospace;
    color:          var(--text3);
    min-width:      55px;
    flex-shrink:    0;
}

.pt-meta-val { color: var(--text1); }

.pt-type-vulns {
    display:       flex;
    flex-wrap:     wrap;
    gap:           5px;
    margin-bottom: 10px;
}

.pt-vuln-chip {
    font-family:   'Share Tech Mono', monospace;
    font-size:     8px;
    padding:       2px 6px;
    background:    rgba(255,43,85,.08);
    color:         var(--red);
    border:        1px solid rgba(255,43,85,.2);
    border-radius: 3px;
}

.pt-type-tools-row {
    display:   flex;
    flex-wrap: wrap;
    gap:       5px;
}

.pt-tool-chip-sm {
    font-family:   'Share Tech Mono', monospace;
    font-size:     8px;
    padding:       2px 6px;
    background:    rgba(0,212,255,.06);
    color:         var(--accent);
    border:        1px solid rgba(0,212,255,.15);
    border-radius: 3px;
}

/* ──────────────────────────────────────────────
   FERRAMENTAS — MATRIX
────────────────────────────────────────────── */
.pt-tools-matrix { display: flex; flex-direction: column; gap: 20px; }

.pt-tools-legend {
    display:       flex;
    align-items:   center;
    gap:           10px;
    font-size:     9px;
    color:         var(--text3);
    margin-bottom: 4px;
}

.pt-free-badge {
    font-family:   'Share Tech Mono', monospace;
    font-size:     8px;
    padding:       1px 6px;
    background:    rgba(0,255,136,.1);
    color:         var(--green);
    border:        1px solid rgba(0,255,136,.3);
    border-radius: 3px;
}

.pt-paid-badge {
    font-family:   'Share Tech Mono', monospace;
    font-size:     8px;
    padding:       1px 6px;
    background:    rgba(255,214,0,.1);
    color:         var(--iso-gold);
    border:        1px solid rgba(255,214,0,.3);
    border-radius: 3px;
}

.pt-tools-section { margin-bottom: 16px; }

.pt-tools-cat-hdr {
    font-family:    'Share Tech Mono', monospace;
    font-size:      11px;
    font-weight:    700;
    letter-spacing: 1px;
    margin-bottom:  10px;
    padding:        6px 10px;
    background:     rgba(0,0,0,.25);
    border-left:    3px solid currentColor;
    border-radius:  0 4px 4px 0;
}

.pt-tools-grid {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap:                   10px;
}

.pt-tool-card {
    background:    var(--bg3);
    border:        1px solid var(--border);
    border-radius: 6px;
    padding:       12px;
    transition:    border-color .2s;
}

.pt-tool-card:hover { border-color: rgba(0,212,255,.3); }

.pt-tool-name {
    font-family:    'Share Tech Mono', monospace;
    font-size:      11px;
    color:          var(--text1);
    font-weight:    700;
    margin-bottom:  5px;
    display:        flex;
    align-items:    center;
    gap:            6px;
}

.pt-tool-desc {
    font-size:     9px;
    color:         var(--text2);
    line-height:   1.5;
    margin-bottom: 6px;
}

.pt-tool-url {
    font-family:   'Share Tech Mono', monospace;
    font-size:     8px;
    color:         var(--accent);
    opacity:       .6;
}

/* ──────────────────────────────────────────────
   FRAMEWORKS — COMPARISON TABLE + CARDS
────────────────────────────────────────────── */
.pt-fw-comparison {
    margin-bottom: 20px;
}

.pt-fw-table {
    background:    var(--bg3);
    border:        1px solid var(--border);
    border-radius: 6px;
    overflow:      hidden;
    font-size:     10px;
}

.pt-fw-table-head {
    display:     grid;
    grid-template-columns: 1.2fr 1fr .8fr 1.5fr;
    padding:     8px 12px;
    background:  rgba(239,68,68,.1);
    color:       #ef4444;
    font-family: 'Share Tech Mono', monospace;
    font-size:   9px;
    letter-spacing: .5px;
    font-weight: 700;
}

.pt-fw-table-row {
    display:     grid;
    grid-template-columns: 1.2fr 1fr .8fr 1.5fr;
    padding:     7px 12px;
    border-top:  1px solid var(--border);
    color:       var(--text1);
    font-size:   10px;
    transition:  background .15s;
}

.pt-fw-table-row:hover { background: rgba(0,212,255,.04); }

.pt-badge-green  { font-size:8px; padding:1px 6px; background:rgba(0,255,136,.1);  color:var(--green);    border:1px solid rgba(0,255,136,.3);  border-radius:3px; }
.pt-badge-gold   { font-size:8px; padding:1px 6px; background:rgba(255,214,0,.1);  color:var(--iso-gold); border:1px solid rgba(255,214,0,.3);  border-radius:3px; }
.pt-badge-purple { font-size:8px; padding:1px 6px; background:rgba(155,89,255,.1); color:var(--purple);   border:1px solid rgba(155,89,255,.3); border-radius:3px; }
.pt-badge-red    { font-size:8px; padding:1px 6px; background:rgba(239,68,68,.1);  color:#ef4444;         border:1px solid rgba(239,68,68,.3);  border-radius:3px; }
.pt-badge-blue   { font-size:8px; padding:1px 6px; background:rgba(6,182,212,.1);  color:#06b6d4;         border:1px solid rgba(6,182,212,.3);  border-radius:3px; }

.pt-fw-grid {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap:                   14px;
}

.pt-fw-card {
    background:    var(--bg3);
    border:        1px solid var(--border);
    border-radius: 8px;
    padding:       14px;
    transition:    border-color .2s;
}

.pt-fw-card:hover { border-color: rgba(0,212,255,.3); }

.pt-fw-head {
    display:       flex;
    align-items:   center;
    gap:           10px;
    margin-bottom: 10px;
    padding-bottom:8px;
    border-bottom: 2px solid;
}

.pt-fw-icon { font-size: 20px; }

.pt-fw-name {
    font-family:    'Share Tech Mono', monospace;
    font-size:      13px;
    font-weight:    700;
    letter-spacing: .5px;
}

.pt-fw-full {
    font-size:   9px;
    color:       var(--text3);
    margin-top:  2px;
}

.pt-fw-desc {
    font-size:     10px;
    color:         var(--text2);
    line-height:   1.6;
    margin-bottom: 10px;
}

.pt-fw-phases {
    margin-bottom: 10px;
}

.pt-fw-phases-lbl {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    color:          var(--text3);
    letter-spacing: .5px;
    margin-bottom:  6px;
}

.pt-fw-phases-flow {
    display:   flex;
    flex-wrap: wrap;
    gap:       5px;
}

.pt-fw-phase-chip {
    font-family:   'Share Tech Mono', monospace;
    font-size:     8px;
    padding:       2px 7px;
    background:    rgba(0,212,255,.06);
    color:         var(--accent);
    border:        1px solid rgba(0,212,255,.15);
    border-radius: 3px;
}

.pt-fw-iso {
    font-size: 9px;
    color:     var(--text3);
    padding:   6px 8px;
    background:rgba(255,214,0,.04);
    border:    1px solid rgba(255,214,0,.1);
    border-radius: 3px;
}

.pt-fw-iso-lbl {
    font-family:    'Share Tech Mono', monospace;
    color:          var(--iso-gold);
    margin-right:   5px;
}

/* ──────────────────────────────────────────────
   LABS — CARDS + TERMINAL
────────────────────────────────────────────── */
.pt-labs-disclaimer {
    font-size:     10px;
    color:         var(--yellow);
    background:    rgba(255,214,0,.06);
    border:        1px solid rgba(255,214,0,.2);
    border-radius: 6px;
    padding:       10px 14px;
    margin-bottom: 16px;
    line-height:   1.5;
}

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

.pt-lab-card {
    background:    var(--bg3);
    border:        1px solid var(--border);
    border-radius: 8px;
    padding:       14px;
    transition:    border-color .2s, transform .15s;
}

.pt-lab-card:hover {
    transform:    translateY(-2px);
    border-color: rgba(239,68,68,.3);
}

.pt-lab-head {
    display:       flex;
    align-items:   flex-start;
    gap:           10px;
    margin-bottom: 10px;
}

.pt-lab-icon { font-size: 22px; }

.pt-lab-title-wrap { flex: 1; }

.pt-lab-title {
    font-family:    'Share Tech Mono', monospace;
    font-size:      12px;
    color:          var(--text1);
    font-weight:    700;
    margin-bottom:  4px;
}

.pt-lab-meta { display: flex; gap: 8px; align-items: center; }

.pt-lab-diff {
    font-family:   'Share Tech Mono', monospace;
    font-size:     8px;
    font-weight:   700;
    letter-spacing:.5px;
}

.pt-lab-dur {
    font-size: 9px;
    color:     var(--text3);
}

.pt-lab-objective {
    font-size:     10px;
    color:         var(--text2);
    margin-bottom: 8px;
    line-height:   1.5;
}

.pt-lab-scenario {
    font-size:     9px;
    color:         var(--text3);
    background:    rgba(0,0,0,.2);
    border:        1px solid var(--border);
    border-radius: 4px;
    padding:       8px;
    margin-bottom: 12px;
    line-height:   1.5;
    font-style:    italic;
}

.pt-lab-start-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    width:          100%;
    padding:        8px;
    background:     rgba(239,68,68,.1);
    color:          #ef4444;
    border:         1px solid rgba(239,68,68,.3);
    border-radius:  4px;
    cursor:         pointer;
    letter-spacing: .5px;
    transition:     background .2s;
}

.pt-lab-start-btn:hover { background: rgba(239,68,68,.2); }

/* TERMINAL */
.pt-lab-terminal {
    background:    var(--bg2);
    border:        2px solid rgba(239,68,68,.3);
    border-radius: 8px;
    overflow:      hidden;
    margin-top:    16px;
}

.pt-term-header {
    display:         flex;
    align-items:     center;
    gap:             12px;
    padding:         8px 14px;
    background:      linear-gradient(90deg, rgba(239,68,68,.15), rgba(0,0,0,.4));
    border-bottom:   1px solid rgba(239,68,68,.2);
}

.pt-term-title {
    font-family:    'Share Tech Mono', monospace;
    font-size:      11px;
    color:          #ef4444;
    font-weight:    700;
    letter-spacing: 1px;
    flex:           1;
}

.pt-term-score {
    font-family:   'Share Tech Mono', monospace;
    font-size:     10px;
    color:         var(--iso-gold);
    background:    rgba(255,214,0,.08);
    border:        1px solid rgba(255,214,0,.2);
    border-radius: 3px;
    padding:       3px 10px;
}

.pt-term-close {
    font-family:   'Share Tech Mono', monospace;
    font-size:     9px;
    padding:       4px 10px;
    background:    rgba(255,43,85,.1);
    color:         var(--red);
    border:        1px solid rgba(255,43,85,.3);
    border-radius: 3px;
    cursor:        pointer;
    letter-spacing:.5px;
}

.pt-term-scenario {
    font-size:   10px;
    color:       var(--text2);
    padding:     10px 14px;
    background:  rgba(0,0,0,.2);
    border-bottom:1px solid var(--border);
    line-height: 1.5;
    font-style:  italic;
}

.pt-term-steps {
    padding:   8px 14px;
    border-bottom: 1px solid var(--border);
    display:   flex;
    flex-direction: column;
    gap:       4px;
}

.pt-term-step {
    display:     flex;
    align-items: center;
    gap:         8px;
    font-size:   9px;
    color:       var(--text3);
    padding:     3px 0;
}

.pt-ts-num {
    font-family:   'Share Tech Mono', monospace;
    font-size:     9px;
    color:         var(--text3);
    min-width:     16px;
    height:        16px;
    display:       flex;
    align-items:   center;
    justify-content: center;
    background:    var(--bg4);
    border:        1px solid var(--border);
    border-radius: 50%;
}

.pt-ts-desc { flex: 1; }

.pt-ts-status {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    color:          var(--text3);
    min-width:      16px;
    text-align:     center;
}

.pt-term-step.pt-ts-done .pt-ts-status { color: var(--green); }
.pt-term-step.pt-ts-done .pt-ts-num    { border-color: rgba(0,255,136,.4); color: var(--green); }
.pt-term-step.pt-ts-done .pt-ts-desc   { color: var(--text1); }

.pt-term-body {
    min-height:  180px;
    max-height:  260px;
    overflow-y:  auto;
    padding:     10px 14px;
    font-family: 'Share Tech Mono', monospace;
    font-size:   10px;
    line-height: 1.6;
    scrollbar-width: thin;
    scrollbar-color: rgba(239,68,68,.3) transparent;
}

.pt-term-line          { margin-bottom: 3px; white-space: pre-wrap; word-break: break-all; }
.pt-term-cmd           { color: var(--green); }
.pt-term-output        { color: var(--text2); padding-left: 10px; }
.pt-term-success       { color: var(--green); font-weight: 700; }
.pt-term-error         { color: var(--red); }
.pt-term-info          { color: var(--accent); }
.pt-term-muted         { color: var(--text3); }
.pt-term-flag          { color: var(--iso-gold); font-weight: 700; font-size: 11px; }

.pt-term-input-row {
    display:     flex;
    align-items: flex-start;
    gap:         8px;
    padding:     10px 14px;
    border-top:  1px solid var(--border);
    background:  rgba(0,0,0,.2);
}

.pt-term-prompt {
    font-family: 'Share Tech Mono', monospace;
    font-size:   9px;
    color:       var(--green);
    white-space: pre;
    line-height: 1.4;
    padding-top: 4px;
}

.pt-term-input {
    flex:        1;
    background:  transparent;
    border:      none;
    border-bottom: 1px solid rgba(0,212,255,.3);
    color:       var(--text1);
    font-family: 'Share Tech Mono', monospace;
    font-size:   10px;
    padding:     4px 0;
    outline:     none;
    align-self:  flex-end;
}

.pt-term-input:focus { border-bottom-color: var(--accent); }

.pt-term-exec {
    font-family:    'Share Tech Mono', monospace;
    font-size:      9px;
    padding:        5px 12px;
    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;
    align-self:     flex-end;
    transition:     background .2s;
}

.pt-term-exec:hover { background: rgba(0,255,136,.2); }

/* FINDINGS */
.pt-term-findings {
    margin:        10px 14px 14px;
    background:    rgba(239,68,68,.06);
    border:        1px solid rgba(239,68,68,.2);
    border-radius: 6px;
    padding:       12px;
}

.pt-findings-title {
    font-family:    'Share Tech Mono', monospace;
    font-size:      11px;
    color:          #ef4444;
    font-weight:    700;
    margin-bottom:  10px;
    letter-spacing: 1px;
}

.pt-findings-list { margin-bottom: 12px; }

.pt-finding-item {
    font-size:     9px;
    color:         var(--yellow);
    padding:       4px 0;
    border-bottom: 1px solid rgba(255,214,0,.08);
}

.pt-finding-item:last-child { border-bottom: none; }

.pt-flag-box {
    font-family:    'Share Tech Mono', monospace;
    font-size:      12px;
    color:          var(--iso-gold);
    font-weight:    700;
    text-align:     center;
    padding:        10px;
    background:     rgba(255,214,0,.08);
    border:         1px solid rgba(255,214,0,.25);
    border-radius:  4px;
    letter-spacing: 1px;
    text-shadow:    0 0 10px rgba(255,214,0,.4);
}

/* ──────────────────────────────────────────────
   FASES — STATUS BADGES
────────────────────────────────────────────── */
.pt-phase-status {
    display:        inline-flex;
    align-items:    center;
    gap:            5px;
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    padding:        2px 8px;
    border-radius:  3px;
    letter-spacing: .5px;
    margin-left:    auto;
}

.pt-phase-status-active {
    background: rgba(0,255,136,.1);
    color:      var(--green);
    border:     1px solid rgba(0,255,136,.25);
}

.pt-phase-status-pending {
    background: rgba(255,214,0,.1);
    color:      var(--yellow);
    border:     1px solid rgba(255,214,0,.25);
}

/* ──────────────────────────────────────────────
   TIPOS — SCOPE BADGES (White / Grey / Black box)
────────────────────────────────────────────── */
.pt-scope-badge {
    font-family:    'Share Tech Mono', monospace;
    font-size:      7px;
    padding:        2px 6px;
    border-radius:  2px;
    letter-spacing: .3px;
    text-transform: uppercase;
    margin-left:    4px;
}

.pt-scope-white  { background: rgba(255,255,255,.12); color: #e2e8f0; border: 1px solid rgba(255,255,255,.2); }
.pt-scope-grey   { background: rgba(148,163,184,.12); color: #94a3b8; border: 1px solid rgba(148,163,184,.2); }
.pt-scope-black  { background: rgba(239,68,68,.12);   color: #ef4444;  border: 1px solid rgba(239,68,68,.2); }

/* ──────────────────────────────────────────────
   FERRAMENTAS — CATEGORY PROGRESS BARS
────────────────────────────────────────────── */
.pt-cat-stats {
    display:       flex;
    align-items:   center;
    gap:           10px;
    margin-bottom: 10px;
    font-size:     9px;
    color:         var(--text3);
}

.pt-cat-free-count {
    font-family:   'Share Tech Mono', monospace;
    font-size:     9px;
    color:         var(--green);
}

.pt-cat-paid-count {
    font-family:   'Share Tech Mono', monospace;
    font-size:     9px;
    color:         var(--iso-gold);
}

/* ──────────────────────────────────────────────
   FRAMEWORKS — DETAIL ROWS
────────────────────────────────────────────── */
.pt-fw-detail-row {
    display:       grid;
    grid-template-columns: 1fr 1fr;
    gap:           8px;
    margin-top:    8px;
}

.pt-fw-detail-cell {
    background:    rgba(0,0,0,.2);
    border:        1px solid var(--border);
    border-radius: 4px;
    padding:       8px 10px;
    font-size:     9px;
    color:         var(--text2);
}

.pt-fw-detail-lbl {
    font-family:    'Share Tech Mono', monospace;
    font-size:      7px;
    color:          var(--text3);
    letter-spacing: .5px;
    margin-bottom:  4px;
}

/* ──────────────────────────────────────────────
   LABS — DIFFICULTY PROGRESS RING
────────────────────────────────────────────── */
.pt-lab-progress {
    margin:        10px 0;
}

.pt-lab-progress-bar {
    height:        4px;
    background:    rgba(0,0,0,.3);
    border-radius: 2px;
    overflow:      hidden;
    margin-top:    4px;
}

.pt-lab-progress-fill {
    height:         100%;
    border-radius:  2px;
    transition:     width .4s ease;
    background:     linear-gradient(90deg, var(--fill-start, #ef4444), var(--fill-end, #ff6b6b));
}

.pt-lab-progress-lbl {
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    color:          var(--text3);
    display:        flex;
    justify-content:space-between;
}

/* ──────────────────────────────────────────────
   CVSS SCORE BADGES
────────────────────────────────────────────── */
.pt-cvss-badge {
    display:        inline-block;
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    font-weight:    700;
    padding:        3px 9px;
    border-radius:  3px;
    letter-spacing: .5px;
}

.pt-cvss-critical { background: rgba(239,68,68,.15);  color: #ef4444;          border: 1px solid rgba(239,68,68,.3); }
.pt-cvss-high     { background: rgba(249,115,22,.15); color: #f97316;          border: 1px solid rgba(249,115,22,.3); }
.pt-cvss-medium   { background: rgba(234,179,8,.15);  color: var(--yellow);    border: 1px solid rgba(234,179,8,.3); }
.pt-cvss-low      { background: rgba(0,255,136,.1);   color: var(--green);     border: 1px solid rgba(0,255,136,.2); }
.pt-cvss-info     { background: rgba(0,212,255,.08);  color: var(--accent);    border: 1px solid rgba(0,212,255,.2); }

/* ──────────────────────────────────────────────
   COMPLIANCE MAPPING STRIP
────────────────────────────────────────────── */
.pt-compliance-strip {
    display:        flex;
    flex-wrap:      wrap;
    gap:            6px;
    padding:        8px 10px;
    background:     rgba(255,214,0,.04);
    border:         1px solid rgba(255,214,0,.1);
    border-radius:  4px;
    margin-top:     10px;
}

.pt-compliance-chip {
    font-family:   'Share Tech Mono', monospace;
    font-size:     7px;
    padding:       2px 6px;
    background:    rgba(255,214,0,.08);
    color:         var(--iso-gold);
    border:        1px solid rgba(255,214,0,.2);
    border-radius: 3px;
    letter-spacing:.3px;
}

/* ──────────────────────────────────────────────
   TERMINAL — ENHANCED INPUT WITH HISTORY
────────────────────────────────────────────── */
.pt-term-hint {
    font-family: 'Share Tech Mono', monospace;
    font-size:   8px;
    color:       var(--text3);
    margin-top:  4px;
    font-style:  italic;
}

.pt-term-progress {
    height:     3px;
    background: rgba(0,0,0,.3);
    border-top: 1px solid var(--border);
}

.pt-term-progress-fill {
    height:     100%;
    background: linear-gradient(90deg, #ef4444, #ff6b6b);
    transition: width .3s ease;
}

/* ──────────────────────────────────────────────
   MITRE ATT&CK MATRIX (mini)
────────────────────────────────────────────── */
.pt-mitre-grid {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
    gap:                   6px;
    margin-top:            10px;
}

.pt-mitre-cell {
    background:    rgba(239,68,68,.06);
    border:        1px solid rgba(239,68,68,.15);
    border-radius: 4px;
    padding:       6px 8px;
    font-family:   'Share Tech Mono', monospace;
    font-size:     7px;
    color:         var(--text2);
    text-align:    center;
    cursor:        pointer;
    transition:    background .15s, border-color .15s;
}

.pt-mitre-cell:hover {
    background:   rgba(239,68,68,.15);
    border-color: rgba(239,68,68,.4);
    color:        #ef4444;
}

.pt-mitre-cell-num {
    font-size:     6px;
    color:         var(--text3);
    margin-bottom: 3px;
}

/* ──────────────────────────────────────────────
   METODOLOGIA — CHECKLIST PHASES
────────────────────────────────────────────── */
.pt-meth-intro {
    font-size:     10px;
    color:         var(--text2);
    margin-bottom: 16px;
    padding:       10px 14px;
    background:    rgba(0,212,255,.04);
    border:        1px solid rgba(0,212,255,.12);
    border-radius: 6px;
    line-height:   1.6;
    display:       flex;
    align-items:   center;
    justify-content: space-between;
    flex-wrap:     wrap;
    gap:           8px;
}

.pt-meth-total-score {
    font-family:    'Share Tech Mono', monospace;
    font-size:      11px;
    color:          var(--accent);
    letter-spacing: .5px;
}

.pt-meth-grid {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap:                   14px;
    margin-bottom:         20px;
}

.pt-meth-phase {
    background:    var(--bg3);
    border:        1px solid var(--border);
    border-radius: 8px;
    overflow:      hidden;
    transition:    border-color .2s;
}

.pt-meth-phase:hover { border-color: rgba(0,212,255,.25); }

.pt-meth-phase-hdr {
    display:        flex;
    align-items:    center;
    gap:            10px;
    padding:        10px 14px;
    background:     rgba(0,0,0,.15);
    border-bottom:  1px solid var(--border);
    border-left:    3px solid transparent;
    flex-wrap:      wrap;
}

.pt-meth-icon {
    font-size:    16px;
    flex-shrink:  0;
}

.pt-meth-phase-info { flex: 1; min-width: 0; }

.pt-meth-phase-name {
    font-family:    'Share Tech Mono', monospace;
    font-size:      11px;
    font-weight:    700;
    letter-spacing: 1px;
}

.pt-meth-iso {
    font-size:  8px;
    color:      var(--iso-gold);
    margin-top: 2px;
}

.pt-meth-stats {
    display:        flex;
    flex-direction: column;
    align-items:    flex-end;
    font-family:    'Share Tech Mono', monospace;
    font-size:      8px;
    color:          var(--text3);
    gap:            2px;
}

.pt-meth-crit-count {
    color: #ef4444;
}

.pt-meth-progress-wrap {
    display:     flex;
    align-items: center;
    gap:         6px;
    width:       100%;
    margin-top:  6px;
}

.pt-meth-progress-bar {
    flex:          1;
    height:        4px;
    background:    rgba(0,0,0,.3);
    border-radius: 2px;
    overflow:      hidden;
}

.pt-meth-progress-fill {
    height:     100%;
    border-radius: 2px;
    transition: width .35s ease;
    width:      0%;
}

.pt-meth-pct {
    font-family: 'Share Tech Mono', monospace;
    font-size:   9px;
    color:       var(--text2);
    width:       30px;
    text-align:  right;
    flex-shrink: 0;
}

.pt-chk-list {
    padding:    10px 14px;
    display:    flex;
    flex-direction: column;
    gap:        6px;
}

.pt-chk-item {
    display:     flex;
    align-items: flex-start;
    gap:         8px;
    cursor:      pointer;
    padding:     5px 8px;
    border-radius: 5px;
    transition:  background .15s;
    border:      1px solid transparent;
    line-height: 1.4;
}

.pt-chk-item:hover {
    background: rgba(0,212,255,.04);
    border-color: rgba(0,212,255,.1);
}

.pt-chk-item.pt-chk-critical {
    border-color: rgba(239,68,68,.1);
}

.pt-chk-item.pt-chk-critical:hover {
    background:  rgba(239,68,68,.04);
    border-color:rgba(239,68,68,.2);
}

.pt-chk {
    display:  none;
}

.pt-chk-box {
    width:         14px;
    height:        14px;
    border:        1px solid var(--border);
    border-radius: 3px;
    flex-shrink:   0;
    margin-top:    1px;
    position:      relative;
    transition:    background .15s, border-color .15s;
}

.pt-chk:checked + .pt-chk-box {
    background:  var(--accent);
    border-color:var(--accent);
}

.pt-chk:checked + .pt-chk-box::after {
    content:    '✓';
    position:   absolute;
    top:        -1px;
    left:       2px;
    font-size:  10px;
    color:      #0a0e1a;
    font-weight:700;
}

.pt-chk-label {
    font-size:  10px;
    color:      var(--text2);
    flex:       1;
}

.pt-chk-item .pt-chk:checked ~ .pt-chk-label {
    color:           var(--text3);
    text-decoration: line-through;
}

.pt-chk-crit-badge {
    font-family:    'Share Tech Mono', monospace;
    font-size:      7px;
    padding:        1px 5px;
    background:     rgba(239,68,68,.1);
    color:          #ef4444;
    border:         1px solid rgba(239,68,68,.25);
    border-radius:  2px;
    flex-shrink:    0;
    letter-spacing: .3px;
    margin-top:     2px;
}

.pt-meth-legend {
    font-size:     9px;
    color:         var(--text3);
    padding:       10px 14px;
    background:    rgba(0,0,0,.1);
    border:        1px solid var(--border);
    border-radius: 6px;
    display:       flex;
    flex-wrap:     wrap;
    gap:           10px;
    align-items:   center;
}

.pt-meth-leg-item { display: flex; align-items: center; gap: 6px; }
.pt-meth-leg-iso  { margin-left: auto; color: var(--iso-gold); font-family: 'Share Tech Mono', monospace; font-size: 8px; }

/* ──────────────────────────────────────────────
   CVSS v3.1 CALCULATOR
────────────────────────────────────────────── */
.pt-cvss-wrap {
    display:               grid;
    grid-template-columns: 220px 1fr;
    gap:                   20px;
    margin-bottom:         20px;
    align-items:           start;
}

.pt-cvss-score-panel {
    background:    var(--bg3);
    border:        1px solid var(--border);
    border-radius: 10px;
    padding:       20px 16px;
    display:       flex;
    flex-direction:column;
    align-items:   center;
    gap:           12px;
    position:      sticky;
    top:           10px;
}

.pt-cvss-score-ring {
    width:          120px;
    height:         120px;
    border-radius:  50%;
    border:         4px solid #6b7280;
    display:        flex;
    flex-direction: column;
    align-items:    center;
    justify-content:center;
    transition:     border-color .3s, box-shadow .3s;
    position:       relative;
}

.pt-cvss-score-ring.pt-cvss-none     { border-color: #6b7280; }
.pt-cvss-score-ring.pt-cvss-low      { border-color: #22c55e; box-shadow: 0 0 20px rgba(34,197,94,.2); }
.pt-cvss-score-ring.pt-cvss-medium   { border-color: #f59e0b; box-shadow: 0 0 20px rgba(245,158,11,.2); }
.pt-cvss-score-ring.pt-cvss-high     { border-color: #ef4444; box-shadow: 0 0 20px rgba(239,68,68,.2); }
.pt-cvss-score-ring.pt-cvss-critical { border-color: #9333ea; box-shadow: 0 0 24px rgba(147,51,234,.35); animation: pt-pulse-crit 1.5s ease-in-out infinite; }

@keyframes pt-pulse-crit {
    0%,100% { box-shadow: 0 0 20px rgba(147,51,234,.3); }
    50%      { box-shadow: 0 0 35px rgba(147,51,234,.6); }
}

.pt-cvss-score-val {
    font-family:    'Share Tech Mono', monospace;
    font-size:      36px;
    font-weight:    700;
    color:          var(--text);
    line-height:    1;
}

.pt-cvss-score-sev {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    letter-spacing: 2px;
    margin-top:     2px;
}

.pt-cvss-vector-str {
    font-family:   'Share Tech Mono', monospace;
    font-size:     7px;
    color:         var(--text3);
    word-break:    break-all;
    text-align:    center;
    background:    rgba(0,0,0,.25);
    padding:       5px 8px;
    border-radius: 4px;
    border:        1px solid var(--border);
    width:         100%;
    box-sizing:    border-box;
}

.pt-cvss-sev-scale {
    display:    flex;
    flex-wrap:  wrap;
    gap:        4px;
    justify-content: center;
}

.pt-cvss-reset-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    padding:        6px 18px;
    background:     rgba(239,68,68,.1);
    color:          #ef4444;
    border:         1px solid rgba(239,68,68,.3);
    border-radius:  4px;
    cursor:         pointer;
    letter-spacing: .5px;
    transition:     background .15s;
    width:          100%;
}

.pt-cvss-reset-btn:hover { background: rgba(239,68,68,.2); }

.pt-cvss-metrics {
    display:        flex;
    flex-direction: column;
    gap:            16px;
}

.pt-cvss-group {
    background:    var(--bg3);
    border:        1px solid var(--border);
    border-radius: 8px;
    padding:       14px;
}

.pt-cvss-group-title {
    font-family:    'Share Tech Mono', monospace;
    font-size:      9px;
    color:          var(--accent);
    letter-spacing: 1px;
    margin-bottom:  12px;
    padding-bottom: 8px;
    border-bottom:  1px solid var(--border);
}

.pt-cvss-row {
    display:     flex;
    align-items: center;
    gap:         12px;
    margin-bottom:10px;
    flex-wrap:   wrap;
}

.pt-cvss-row:last-child { margin-bottom: 0; }

.pt-cvss-metric-lbl {
    font-size:   10px;
    color:       var(--text2);
    min-width:   160px;
    flex-shrink: 0;
}

.pt-cvss-abbr {
    font-family:   'Share Tech Mono', monospace;
    font-size:     8px;
    color:         var(--text3);
    margin-left:   4px;
}

.pt-cvss-btns {
    display:  flex;
    flex-wrap:wrap;
    gap:      5px;
}

.pt-cvss-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      9px;
    padding:        4px 12px;
    background:     rgba(0,0,0,.2);
    color:          var(--text3);
    border:         1px solid var(--border);
    border-radius:  4px;
    cursor:         pointer;
    transition:     background .15s, color .15s, border-color .15s;
    letter-spacing: .3px;
}

.pt-cvss-btn:hover {
    background:   rgba(0,212,255,.08);
    color:        var(--accent);
    border-color: rgba(0,212,255,.3);
}

.pt-cvss-btn.active {
    background:   rgba(0,212,255,.15);
    color:        var(--accent);
    border-color: var(--accent);
    font-weight:  700;
    box-shadow:   0 0 8px rgba(0,212,255,.2);
}

/* Presets */
.pt-cvss-presets {
    margin-bottom: 20px;
}

.pt-cvss-presets-title {
    font-family:    'Share Tech Mono', monospace;
    font-size:      10px;
    color:          var(--text2);
    letter-spacing: 1px;
    margin-bottom:  10px;
}

.pt-cvss-presets-grid {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap:                   8px;
}

.pt-cvss-preset-btn {
    font-family:    'Share Tech Mono', monospace;
    font-size:      9px;
    padding:        10px 12px;
    background:     var(--bg3);
    color:          var(--text2);
    border:         1px solid var(--border);
    border-radius:  6px;
    cursor:         pointer;
    text-align:     center;
    line-height:    1.6;
    transition:     background .15s, border-color .15s, color .15s;
}

.pt-cvss-preset-btn:hover {
    background:   rgba(239,68,68,.08);
    border-color: rgba(239,68,68,.3);
    color:        #ef4444;
}

.pt-cvss-preset-btn small {
    font-size:  8px;
    color:      var(--text3);
    display:    block;
    margin-top: 2px;
}

/* Breakdown */
.pt-cvss-breakdown {
    background:    var(--bg3);
    border:        1px solid var(--border);
    border-radius: 8px;
    padding:       14px;
    margin-bottom: 16px;
}

.pt-cvss-breakdown-grid {
    display:               grid;
    grid-template-columns: repeat(4, 1fr);
    gap:                   10px;
    margin:                10px 0;
}

.pt-cvss-sub {
    background:    rgba(0,0,0,.2);
    border:        1px solid var(--border);
    border-radius: 5px;
    padding:       10px;
    text-align:    center;
}

.pt-cvss-sub-lbl {
    font-family:   'Share Tech Mono', monospace;
    font-size:     7px;
    color:         var(--text3);
    margin-bottom: 6px;
    letter-spacing:.5px;
    text-transform:uppercase;
}

.pt-cvss-sub-val {
    font-family: 'Share Tech Mono', monospace;
    font-size:   16px;
    font-weight: 700;
    color:       var(--accent);
}

.pt-cvss-remediation {
    font-size:     10px;
    color:         var(--text2);
    line-height:   1.6;
    padding:       8px 12px;
    background:    rgba(0,0,0,.1);
    border-radius: 4px;
    border-left:   3px solid var(--accent);
    margin-top:    8px;
    min-height:    32px;
}

.pt-cvss-none     { background: rgba(107,114,128,.12); color: #9ca3af; border: 1px solid rgba(107,114,128,.2); }

/* ──────────────────────────────────────────────
   RESPONSIVE — MOBILE PENTEST
────────────────────────────────────────────── */
@media (max-width: 640px) {
    .pt-phases-grid  { grid-template-columns: 1fr; }
    .pt-types-grid   { grid-template-columns: 1fr; }
    .pt-tools-grid   { grid-template-columns: 1fr; }
    .pt-fw-grid      { grid-template-columns: 1fr; }
    .pt-labs-grid    { grid-template-columns: 1fr; }
    .pt-fw-table-head,
    .pt-fw-table-row { grid-template-columns: 1fr 1fr; }
    .pt-fw-table-head span:nth-child(3),
    .pt-fw-table-head span:nth-child(4),
    .pt-fw-table-row span:nth-child(3),
    .pt-fw-table-row span:nth-child(4) { display: none; }
    .pt-header       { flex-direction: column; }
    .pt-header-kpis  { justify-content: space-between; width: 100%; }
    .pt-kc-flow      { justify-content: center; }
    .pt-nav          { gap: 4px; }
    .pt-nav-btn      { padding: 5px 10px; font-size: 9px; }
    .pt-cvss-wrap    { grid-template-columns: 1fr; }
    .pt-cvss-score-panel { position: static; }
    .pt-cvss-breakdown-grid { grid-template-columns: 1fr 1fr; }
    .pt-meth-grid    { grid-template-columns: 1fr; }
    .pt-cvss-presets-grid { grid-template-columns: 1fr 1fr; }
    .pt-cvss-metric-lbl { min-width: 120px; font-size: 9px; }
}
