.pvbl-container {
    max-width: 850px;
    margin: 2rem auto;
    background: #fff;
    border: 1px solid #dbeafe;
    border-radius: 16px;
    padding: 2rem;
    box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 4px 16px rgba(37,99,235,.06);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.pvbl-header { text-align: center; margin-bottom: 2rem; }

.pvbl-header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background: #2563eb;
    border-radius: 14px;
    margin-bottom: 1rem;
    box-shadow: 0 4px 12px rgba(37,99,235,.2);
}

.pvbl-header-icon svg { width: 28px; height: 28px; color: #fff; }

.pvbl-title { font-size: 1.5rem; font-weight: 700; color: #1e293b; margin: 0 0 .4rem; }
.pvbl-subtitle { font-size: .9rem; color: #64748b; margin: 0; }

/* Search */
.pvbl-search-box { display: flex; gap: .5rem; margin-bottom: 1.5rem; }
.pvbl-input-wrapper { flex: 1; position: relative; }

.pvbl-input {
    width: 100%;
    height: 52px;
    padding: 0 44px 0 16px;
    border: 2px solid #e2e8f0;
    border-radius: 12px;
    font-size: 1rem;
    font-family: 'SF Mono', 'Cascadia Code', 'Courier New', monospace;
    color: #1e293b;
    outline: none;
    transition: all .2s;
    box-sizing: border-box;
    background: #fafbfc;
    letter-spacing: 0.5px;
}

.pvbl-input:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37,99,235,.08);
    background: #fff;
}

.pvbl-input::placeholder { color: #94a3b8; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; letter-spacing: 0; }

.pvbl-btn-clear {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: #94a3b8;
    padding: 6px;
    border-radius: 50%;
    display: flex;
    transition: all .2s;
    z-index: 2;
}

.pvbl-btn-clear:hover { color: #2563eb; background: #eff6ff; }

.pvbl-btn-verificar {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: 0 1.5rem;
    height: 52px;
    background: #2563eb;
    color: #fff;
    border: none;
    border-radius: 12px;
    font-size: .95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all .2s;
    white-space: nowrap;
    font-family: inherit;
}

.pvbl-btn-verificar:hover { background: #1d4ed8; box-shadow: 0 4px 12px rgba(37,99,235,.3); transform: translateY(-1px); }

/* Loading */
.pvbl-loading { text-align: center; padding: 3rem 1rem; }
.pvbl-spinner {
    width: 44px; height: 44px;
    border: 4px solid #e2e8f0;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: pvbl-spin .8s linear infinite;
    margin: 0 auto 1rem;
}
@keyframes pvbl-spin { to { transform: rotate(360deg); } }
.pvbl-loading p { color: #64748b; font-size: .9rem; margin: 0; }

/* Erro */
.pvbl-erro {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: 1rem 1.25rem;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 12px;
    margin-bottom: 1rem;
    color: #991b1b;
    font-size: .9rem;
    font-weight: 500;
}

/* Resultados */
.pvbl-resultados { animation: pvbl-fadeIn .3s ease; }
@keyframes pvbl-fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

/* Reputação Card */
.pvbl-reputacao-card {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.5rem;
    border-radius: 14px;
    margin-bottom: 1.25rem;
    color: #fff;
}

.pvbl-reputacao-card.excelente { background: linear-gradient(135deg, #16a34a, #15803d); }
.pvbl-reputacao-card.bom { background: linear-gradient(135deg, #2563eb, #1d4ed8); }
.pvbl-reputacao-card.regular { background: linear-gradient(135deg, #f59e0b, #d97706); }
.pvbl-reputacao-card.ruim { background: linear-gradient(135deg, #f97316, #ea580c); }
.pvbl-reputacao-card.critico { background: linear-gradient(135deg, #ef4444, #dc2626); }

.pvbl-reputacao-icon {
    width: 56px; height: 56px;
    background: rgba(255,255,255,.2);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.pvbl-reputacao-icon svg { width: 30px; height: 30px; }
.pvbl-reputacao-info { flex: 1; }

.pvbl-reputacao-label { font-size: 1.3rem; font-weight: 700; margin: 0 0 .2rem; }
.pvbl-reputacao-desc { font-size: .9rem; opacity: .95; margin: 0; line-height: 1.4; }

.pvbl-reputacao-stats { text-align: center; flex-shrink: 0; }
.pvbl-reputacao-numero { font-size: 2.5rem; font-weight: 800; line-height: 1; }
.pvbl-reputacao-total { font-size: .8rem; opacity: .85; margin-top: .25rem; }

/* Info Bar */
.pvbl-info-bar {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .85rem 1.25rem;
    background: #f0f7ff;
    border: 1px solid #bfdbfe;
    border-radius: 10px;
    margin-bottom: 1rem;
    flex-wrap: wrap;
    font-size: .85rem;
    color: #475569;
}

.pvbl-info-bar strong { color: #1e293b; font-family: 'SF Mono', 'Cascadia Code', 'Courier New', monospace; }
.pvbl-info-separator { width: 1px; height: 20px; background: #bfdbfe; }

/* Grid */
.pvbl-grid { display: flex; flex-direction: column; gap: .5rem; }

.pvbl-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .8rem 1.1rem;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    transition: all .2s;
    flex-wrap: wrap;
    gap: .75rem;
}

.pvbl-item:hover { border-color: #bfdbfe; }
.pvbl-item.limpo { border-left: 4px solid #16a34a; }
.pvbl-item.listado { border-left: 4px solid #ef4444; background: #fffbfb; animation: pvbl-highlight .5s ease; }
.pvbl-item.timeout { border-left: 4px solid #f59e0b; opacity: .8; }

@keyframes pvbl-highlight { from { background: #fef2f2; } to { background: #fffbfb; } }

.pvbl-item-info {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex: 1;
    min-width: 200px;
    cursor: pointer;
    padding: .25rem;
    border-radius: 8px;
    transition: background .15s;
}

.pvbl-item-info:hover { background: #f8fafc; }

.pvbl-item-icon { width: 22px; height: 22px; flex-shrink: 0; }
.pvbl-item-icon.limpo { color: #16a34a; }
.pvbl-item-icon.listado { color: #ef4444; }
.pvbl-item-icon.timeout { color: #f59e0b; }

.pvbl-item-nome { font-weight: 600; color: #1e293b; font-size: .9rem; }
.pvbl-item-foco { font-size: .75rem; color: #64748b; margin-left: .5rem; }

.pvbl-item-actions { display: flex; align-items: center; gap: .5rem; flex-shrink: 0; }

.pvbl-item-btn-detalhes {
    padding: .35rem .75rem;
    border: 1px solid #2563eb;
    border-radius: 8px;
    background: #fff;
    color: #2563eb;
    font-size: .75rem;
    font-weight: 600;
    cursor: pointer;
    transition: all .15s;
}

.pvbl-item-btn-detalhes:hover { background: #2563eb; color: #fff; }

.pvbl-item-tempo {
    font-size: .7rem;
    color: #94a3b8;
    font-family: 'SF Mono', 'Cascadia Code', 'Courier New', monospace;
}

.pvbl-item-status {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .3rem .7rem;
    border-radius: 15px;
    font-size: .78rem;
    font-weight: 700;
    flex-shrink: 0;
    letter-spacing: 0.5px;
}

.pvbl-item-status.limpo { background: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; }
.pvbl-item-status.listado { background: #fef2f2; color: #ef4444; border: 1px solid #fecaca; }
.pvbl-item-status.timeout { background: #fff7ed; color: #ea580c; border: 1px solid #fed7aa; }

.pvbl-item-peso {
    font-size: .7rem;
    padding: .2rem .55rem;
    border-radius: 5px;
    font-weight: 600;
    flex-shrink: 0;
    letter-spacing: 0.3px;
}

.pvbl-item-peso.crítico { background: #fef2f2; color: #dc2626; }
.pvbl-item-peso.alto { background: #fff7ed; color: #ea580c; }
.pvbl-item-peso.médio { background: #fefce8; color: #ca8a04; }
.pvbl-item-peso.baixo { background: #f0fdf4; color: #16a34a; }

.pvbl-item-codigo {
    font-size: .72rem;
    color: #ef4444;
    font-weight: 500;
    max-width: 200px;
    text-align: right;
}

/* Modal */
.pvbl-modal {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.pvbl-modal-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,.5);
    backdrop-filter: blur(4px);
}

.pvbl-modal-content {
    position: relative;
    background: #fff;
    border-radius: 16px;
    max-width: 560px;
    width: 100%;
    max-height: 85vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0,0,0,.2);
    animation: pvbl-modalIn .3s ease;
}

@keyframes pvbl-modalIn { from { opacity: 0; transform: scale(.95) translateY(20px); } to { opacity: 1; transform: scale(1) translateY(0); } }

.pvbl-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid #e2e8f0;
    position: sticky;
    top: 0;
    background: #fff;
    border-radius: 16px 16px 0 0;
}

.pvbl-modal-header h3 { margin: 0; font-size: 1.1rem; color: #1e293b; font-weight: 700; }

.pvbl-modal-close {
    background: #f1f5f9;
    border: none;
    width: 32px; height: 32px;
    border-radius: 8px;
    font-size: 1.2rem;
    cursor: pointer;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .15s;
}

.pvbl-modal-close:hover { background: #e2e8f0; color: #1e293b; }

.pvbl-modal-body { padding: 1.5rem; }

.pvbl-modal-body h4 {
    font-size: .85rem;
    font-weight: 700;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 .75rem;
}

.pvbl-modal-tutorial-text {
    background: #f0f7ff;
    border: 1px solid #bfdbfe;
    border-radius: 10px;
    padding: 1rem 1.25rem;
    font-size: .9rem;
    color: #334155;
    line-height: 1.6;
    margin-bottom: 1.25rem;
}

.pvbl-modal-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .75rem 1.25rem;
    background: #2563eb;
    color: #fff;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 600;
    font-size: .9rem;
    transition: all .15s;
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
}

.pvbl-modal-btn:hover { background: #1d4ed8; color: #fff; text-decoration: none; box-shadow: 0 4px 12px rgba(37,99,235,.3); }

/* Footer */
.pvbl-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    margin-top: 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid #e2e8f0;
    color: #94a3b8;
    font-size: .78rem;
}

.pvbl-footer svg { color: #2563eb; flex-shrink: 0; }

/* Responsivo */
@media (max-width: 768px) {
    .pvbl-container { margin: 1rem; padding: 1.25rem; border-radius: 12px; }
    .pvbl-title { font-size: 1.3rem; }
    .pvbl-search-box { flex-direction: column; }
    .pvbl-btn-verificar { justify-content: center; width: 100%; }
    .pvbl-reputacao-card { flex-direction: column; text-align: center; }
    .pvbl-reputacao-stats { flex-direction: row; gap: .5rem; display: flex; align-items: center; }
    .pvbl-info-bar { flex-direction: column; gap: .5rem; }
    .pvbl-info-separator { display: none; }
    .pvbl-item { flex-direction: column; align-items: flex-start; }
    .pvbl-item-actions { width: 100%; justify-content: flex-end; }
    .pvbl-item-codigo { text-align: left; }
    .pvbl-modal-content { margin: 1rem; max-height: 90vh; }
}