/* public/styles/dashboard.css */

body {
    background-color: #f4f4f9;
}

/* Utilitário Acessibilidade */
.visually-hidden {
    position: absolute; width: 1px; height: 1px; margin: -1px;
    padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0;
}

/* Header */
.dashboard-header {
    display: flex; justify-content: space-between; align-items: center;
    margin: 40px 0 30px; padding-bottom: 20px; border-bottom: 1px solid #dee2e6;
    flex-wrap: wrap; gap: 20px;
}
.dashboard-header h1 { margin: 0 0 5px; font-size: 2rem; color: #212529; }
.dashboard-header p { margin: 0; color: #6c757d; font-size: 1.1rem; }

/* User Info */
.user-info {
    display: flex; align-items: center; gap: 12px;
    background: #fff; padding: 8px 16px; border-radius: 50px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05); border: 1px solid #dee2e6;
}
.avatar-circle {
    width: 36px; height: 36px;
    background-color: #0056b3; color: #fff;
    border-radius: 50%; display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 1.1rem; text-transform: uppercase;
}
.badge-pro {
    background-color: #198754; color: #fff;
    font-size: 0.75rem; padding: 2px 8px; border-radius: 4px;
    font-weight: 700; letter-spacing: 0.5px;
}
.btn-text {
    background: none; border: none; cursor: pointer;
    color: #dc3545; font-weight: 600; padding: 0;
    font-size: 1rem; text-decoration: underline;
}
.btn-text:hover, .btn-text:focus { color: #a71d2a; }

/* Grid */
.reports-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 25px; margin-bottom: 60px;
}

/* Card Report (Acessível) */
.report-card {
    background: #fff; border: 1px solid #dee2e6; border-radius: 8px;
    padding: 20px; display: flex; flex-direction: column;
    position: relative; transition: transform 0.2s, box-shadow 0.2s;
}
.report-card:hover, .report-card:focus-within {
    transform: translateY(-3px);
    box-shadow: 0 8px 16px rgba(0,0,0,0.1);
    border-color: #adb5bd;
}

/* Card Header */
.card-header {
    display: flex; justify-content: space-between; align-items: flex-start;
    margin-bottom: 10px;
}
/* H3: Título do Relatório */
.card-title {
    font-size: 1.2rem; font-weight: 700; margin: 0; color: #212529;
    line-height: 1.4; word-break: break-word;
}

/* Card Body */
.card-meta {
    font-size: 0.9rem; color: #6c757d; margin-bottom: 15px;
}
.card-meta strong { color: #495057; }

/* Card Footer (Link e Ações) */
.card-footer {
    margin-top: auto; padding-top: 15px; border-top: 1px solid #f1f1f1;
    display: flex; justify-content: space-between; align-items: center;
}

.view-link {
    color: #0056b3; font-weight: 600; text-decoration: none;
    display: inline-flex; align-items: center; gap: 5px;
}
.view-link:hover, .view-link:focus { text-decoration: underline; color: #003d82; }
/* Expande a área de clique do link principal para o card todo (exceto botão delete) */
.view-link::after {
    content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
}

/* Botão Delete (Precisa de z-index para ficar acima do link expandido) */
.btn-delete {
    background: none; border: 1px solid transparent; cursor: pointer;
    font-size: 1.2rem; color: #6c757d; padding: 5px;
    border-radius: 4px; z-index: 2; position: relative;
    transition: color 0.2s, background 0.2s;
}
.btn-delete:hover, .btn-delete:focus {
    color: #dc3545; background-color: #ffe6e6; border-color: #f5c6cb;
    outline: none;
}

/* Estados */
.loading-state, .empty-state {
    grid-column: 1 / -1; text-align: center; padding: 60px;
    color: #6c757d; background: #fff; border-radius: 8px; border: 1px dashed #ccc;
}
.alert-box {
    padding: 15px; border-radius: 6px; margin-bottom: 20px;
    font-weight: 500; text-align: center;
}
.alert-success { background-color: #d1e7dd; color: #0f5132; border: 1px solid #badbcc; }
.alert-error { background-color: #f8d7da; color: #842029; border: 1px solid #f5c6cb; }