/* Styles for Flow Project Management System - Versão Final Corrigida e Limpa */

:root {
    /* Color Variables */
    --primary-color: #4a90e2; /* Vibrant blue */
    --secondary-color: #50e3c2; /* Light greenish-blue */
    --text-color: #334155;
    --light-bg: #f8fafc;
    --card-bg: white;
    --border-color: #e2e8f0;
    --success-color: #10b981;
    --warning-color: #f59e0b;
    --danger-color: #ef4444;
    --info-color: #3b82f6;

    /* Login specific colors */
    --login-gradient-start: #4a90e2;
    --login-gradient-end: #50e3c2;
    --login-text-color: #ffffff;
    --login-input-bg: #f8f9fa;
    --login-input-border: #e0e0e0;
    --login-input-focus-border: #3b82f6;
    --login-button-gradient-start: #3b82f6;
    --login-button-gradient-end: #4a90e2;
}

/* Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    list-style-type: none;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    background-color: var(--light-bg);
    color: var(--text-color);
    line-height: 1.6;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Login Container Styles */
.login-container {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    width: 100%;
    background-color: #F0F2F5;
}

.login-box {
    display: flex; /* Make it a flex container for left and right sections */
    background: white;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
    width: 100%;
    max-width: 900px; /* Increased max-width for the two-column layout */
    overflow: hidden; /* Ensures rounded corners apply to children */
}

.login-left {
    flex: 1;
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    color: var(--login-text-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 40px;
    position: relative;
    overflow: hidden;
}

.login-left .login-logo {
    max-width: 80%;
    height: auto;
    margin-bottom: 20px;
}

.login-left p {
    font-size: 1.1rem;
    text-align: center;
    max-width: 80%;
    line-height: 1.5;
    z-index: 1;
}

/* Abstract shapes for login background */
.login-left .shape {
    position: absolute;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    filter: blur(50px);
    opacity: 0.7;
}

.login-left .shape.one { top: -50px; left: -50px; width: 150px; height: 150px; }
.login-left .shape.two { bottom: -80px; right: -80px; width: 200px; height: 200px; }
.login-left .shape.three { top: 50%; left: 30%; width: 100px; height: 100px; transform: translate(-50%, -50%); }

/* Diagonal lines/streaks */
.login-left .streak {
    position: absolute;
    background: rgba(255, 255, 255, 0.2);
    height: 10px;
    transform: rotate(-45deg);
    border-radius: 5px;
}
.login-left .streak.s1 { width: 150px; top: 20%; left: -50px; }
.login-left .streak.s2 { width: 100px; top: 40%; left: 80px; }
.login-left .streak.s3 { width: 200px; bottom: 10%; right: -70px; }

.login-right {
    flex: 1;
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.login-header {
    text-align: center;
    margin-bottom: 30px;
}

.login-header h1 {
    font-size: 2rem;
    color: var(--text-color);
    margin-bottom: 8px;
}

.home-logo {
    width: auto;
    height: 60px; /* Adjust as needed */
}

.form-group {
    margin-bottom: 20px;
    width: 100%;
    position: relative;
}

.form-group input {
    width: 100%;
    padding: 10px 12px 10px 10px;
    border: 1px solid var(--login-input-border);
    border-radius: 8px;
    font-size: 1rem;
    background-color: var(--login-input-bg);
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.form-group input:focus {
    outline: none;
    border-color: var(--login-input-focus-border);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);
}

.form-group .input-icon {
    position: absolute;
    left: 15px;
    top: 70%;
    transform: translateY(-50%);
    color: #9e9e9e;
    font-size: 1.1em;
}

.btn {
    
    padding: 12px;
    border: none;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-primary {
    background: linear-gradient(67deg, var(--primary-color), #50cdcc);
    color: white;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}

.login-options {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin-top: -10px;
	margin-bottom: 10px;
    font-size: 1.0rem;
    color: #64748b;
}

.login-options .remember-me {
    display: flex;
    align-items: center;
    gap: 5px;
	color: var(--text-color);
}

.login-options a {
    color: var(--text-color);
    text-decoration: none;
    transition: color 0.2s ease;
}

.login-options a:hover {
    color: var(--secondary-color);
    text-decoration: underline;
}

.error-message {
    background: #fef2f2;
    color: var(--danger-color);
    padding: 10px 15px;
    border-radius: 6px;
    margin-bottom: 20px;
    border: 1px solid #fecaca;
    width: 100%;
    text-align: center;
    font-weight: 600;
}

/* Main App Styles */
#appContainer {
    display: none; /* Hidden by default, shown by JS after login */
    flex-direction: column;
    height: 100vh;
}

.app-header {
    background-color: var(--card-bg);
    padding: 0px 30px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-color);
    z-index: 1000;
    position: sticky;
    top: 0;
}

.app-header .logo {
    display: flex;
    align-items: center;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--primary-color);
}

.app-header .logo img {
    height: 40px; /* Ajuste a altura conforme necessário */
    width: auto;
}

.main-layout {
    display: flex;
    flex: 1;
    /* overflow: hidden; */ /* <-- LINHA REMOVIDA */
}

/* Sidebar Styles */
.sidebar {
    width: 190px;
    /*height: 100vh;*/
    background: #f8fafc;
    color: white;
    padding: 20px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.sidebar h1 {
    font-size: 1.5rem;
    margin-bottom: 30px;
    font-weight: 600;
    color: white;
}

.nav-item {
    display: flex;
    align-items: center;
    padding: 12px 16px;
    margin-bottom: 5px;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    background: rgba(255,255,255,0.1);
    color: #747474;
    text-decoration: none;
}

.nav-item:hover {
    background: rgba(255,255,255,0.2);
    transform: translateX(5px);
}

.nav-item.active {
    background: rgba(255,255,255,0.25);
    font-weight: 600;
}

.nav-item i {
    margin-right: 12px;
    width: 18px;
    text-align: center;
}

/* Main Content Styles */
.main-content {
    flex: 1;
    padding: 25px;
    overflow-y: auto;
    background-color: #fefefe;
}

/* Header Styles */
.header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    background: var(--card-bg);
    padding: 20px 30px;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.search-bar {
    display: flex;
    align-items: center;
    background: #f1f5f9;
    padding: 10px 16px;
    border-radius: 8px;
    width: 300px;
}

.search-bar input {
    border: none;
    background: none;
    outline: none;
    margin-left: 10px;
    width: 100%;
}

.user-dropdown-container {
    position: relative; /* Essencial para o posicionamento do menu */
}

/* O gatilho que o usuário clica */
.user-info {
    display: flex;
    align-items: center;
    gap: 15px;
    cursor: pointer;
    position: relative;
}
/* Adicionamos o :focus para dar um feedback visual quando clicado */
.user-info:focus {
    outline: none; /* Remove a borda azul padrão do foco */
}

.user-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(45deg, #e1e1e1, #e1e1e1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: bold;
}

/* O menu em si, escondido por padrão */
.user-dropdown {
    position: absolute;
    top: calc(100% + 5px); /* Um pouco abaixo do botão */
    right: 0;
    background: var(--card-bg);
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
    min-width: 180px;
    z-index: 1100;
    padding: 10px 0;
    
    /* Lógica para esconder */
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

/* A MÁGICA ACONTECE AQUI */
/* Quando o container ou qualquer coisa dentro dele está em foco, o menu aparece */
.user-dropdown-container:focus-within .user-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.user-dropdown a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 15px;
    text-decoration: none;
    color: var(--text-color);
    transition: background-color 0.2s ease;
}

.user-dropdown a:hover {
    background-color: #f1f5f9;
}

.user-dropdown a i {
    width: 18px;
}

/* INÍCIO DA ALTERAÇÃO: Ajustes nos estilos do menu móvel */
.hamburger-menu {
    display: none; /* Permanece escondido por padrão em telas grandes */
    font-size: 1.5rem;
    cursor: pointer;
    color: var(--text-color);
}

.mobile-sidebar-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    opacity: 0;
    visibility: hidden; /* Usamos visibility para permitir transições */
    transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
}

.mobile-sidebar-overlay.visible {
    opacity: 1;
    visibility: visible;
}

.mobile-sidebar {
    position: fixed;
    top: 0;
    left: -260px; /* Começa fora da tela */
    width: 260px;
    height: 100vh;
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    color: white;
    padding: 20px;
    overflow-y: auto;
    z-index: 1001;
    transition: left 0.3s ease-in-out;
    box-shadow: 2px 0 10px rgba(0,0,0,0.3);
    visibility: hidden;
}

.mobile-sidebar.open {
    left: 0;
    visibility: visible;
}

/* Estilos para os links dentro do menu móvel para garantir a legibilidade */
.mobile-sidebar .nav-item {
    color: white;
    background: rgba(255, 255, 255, 0.1);
}

.mobile-sidebar .nav-item:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: translateX(5px);
}

.mobile-sidebar .nav-item.active {
    background: rgba(255, 255, 255, 0.25);
    font-weight: 600;
}
/* FIM DA ALTERAÇÃO */


/* Dashboard Components */
.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0px;
    flex-wrap: wrap;
}

.section-header h2 {
    font-size: 1.4rem;
    color: #1e293b;
    font-weight: 400;
    margin-bottom: 10px;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

.stat-card {
    background: linear-gradient(135deg, #ffffff, #f9fafb);
    padding: 50px 20px;
    border-radius: 16px;
    text-align: center;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
    border: 1px solid #e5e7eb;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
}

.stat-card-done {
    background: var(--card-bg);
    padding: 25px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}

.stat-card h3 {
    font-size: 1rem;
    color: #64748b;
    margin-bottom: 10px;
}

.stat-card p {
    font-size: 2rem;
    font-weight: 700;
    color: #1e293b;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 25px;
    margin-top: 30px;
}

.dashboard-card {
    background: var(--card-bg);
    padding: 25px;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
}

.dashboard-card h3 {
    font-size: 1.2rem;
    color: #1e293b;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
}

.dashboard-card h3 i {
    margin-right: 10px;
    color: #1e293b;
}

.dashboard-list {
    list-style: none;
    padding: 0;
}

.dashboard-list li {
    
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px dashed var(--border-color);
    font-size: 0.95rem;
    color: #334155;
}

.dashboard-list li:last-child {
    border-bottom: none;
}

.dashboard-list li .date {
    color: #64748b;
    font-size: 0.85rem;
}

/* Status Badges */
.status-badge {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 20px;
}

.status-badge.active {
    background: #e0f2fe;
    color: #0284c7;
}
.status-badge.paused {
    background: #fff9c3;
    color: #ca8a04;
}
.status-badge.completed {
    background: #f0fdf4;
    color: var(--success-color);
}
.status-badge.cancelled {
    background: #fee2e2;
    color: #dc2626;
}
.status-badge.todo {
    background: #fffbeb;
    color: #d97706;
}
.status-badge.in_progress {
    background: #e0f2fe;
    color: #0284c7;
}
.status-badge.low {
    background: #e2e8f0;
    color: #64748b;
}
.status-badge.medium {
    background: #fefce8;
    color: #ca8a04;
}
.status-badge.high {
    background: #fee2e2;
    color: #dc2626;
}

/* Modal Styles */
.modal {
    display: none;
    position: fixed;
    z-index: 1001;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0,0,0,0.5);
    justify-content: center;
    align-items: center;
}

.modal-content {
    background-color: #fefefe;
    margin: auto;
    padding: 30px;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    width: 90%;
    max-width: 500px;
    position: relative;
}

.close-button {
    color: #aaa;
    position: absolute;
    top: 15px;
    right: 25px;
    font-size: 1.75rem;
    font-weight: bold;
    cursor: pointer;
}

.close-button:hover,
.close-button:focus {
    color: black;
    text-decoration: none;
    cursor: pointer;
}

.modal-content h2 {
    margin-bottom: 25px;
    color: #1e293b;
    font-size: 1.5rem;
    text-align: center;
}

.modal-content .form-group label {
    display: block;
    margin-bottom: 8px;
    font-size: 0.9rem;
    color: #475569;
    font-weight: 500;
}

.modal-content .form-group input,
.modal-content .form-group textarea,
.modal-content .form-group select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 0.95rem;
    box-sizing: border-box;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.modal-content .form-group input:focus,
.modal-content .form-group textarea:focus,
.modal-content .form-group select:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.2);
}

.modal-buttons {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 30px;
}

.modal-buttons .btn {
    width: auto;
    padding: 10px 25px;
    font-size: 0.95rem;
    border-radius: 6px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
}

.modal-buttons .btn-secondary {
    background: #e2e8f0;
    color: #334155;
}

.modal-buttons .btn-secondary:hover {
    background: #cbd5e1;
    transform: translateY(-1px);
}

/* Estilos para a nova visualização de projetos */
.project-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    gap: 15px;
}

.view-toggle {
    display: flex;
    gap: 8px;
}

.view-toggle .btn {
    padding: 10px 20px;
    font-size: 0.8rem;
    cursor: pointer;
    transition: all 0.3s ease;
	font-weight: 400;
	background: none;
}

.view-toggle .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.view-toggle .btn.active {
    background: none;
    color: black;
    font-weight: 400;
}

.add-button {
    background: linear-gradient(67deg, var(--primary-color), #50cdcc);
    color: white;
    font-weight: 400;
    padding: 10px 18px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 10px rgba(74, 144, 226, 0.25);
    transition: all 0.3s ease;
}

.add-button:hover {
    background-color: #3b82f6;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(74, 144, 226, 0.35);
}

.filter-bar {
    display: flex;
    justify-content: flex-start;
    gap: 15px;
    margin-bottom: 10px;
    padding: 15px;
    background: var(--card-bg);
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    flex-wrap: wrap;
}

.search-box {
    position: relative;
    flex: 2; 
    min-width: 250px;
}

.search-box i {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #64748b;
    font-size: 1.1em;
}

.search-box input {
    width: 100%;
    padding: 10px 15px 10px 35px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background-color: var(--login-input-bg);
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.search-box input:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.2);
}

.filter-bar .form-group {
    margin-bottom: 0;
    flex: 1;
    min-width: 140px;
    position: relative;
}

.filter-bar .form-group label {
    display: none;
}

.filter-bar .form-group select {
    appearance: none;
    background-color: var(--login-input-bg);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 10px 35px 10px 15px;
    font-size: 0.95rem;
    color: var(--text-color);
    width: 100%;
    cursor: pointer;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.filter-bar .form-group select:hover {
    border-color: #cbd5e1;
}

.filter-bar .form-group select:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.2);
}

.filter-bar .form-group::after {
    content: '\f0d7';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #64748b;
    font-size: 0.8rem;
}

.projects-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
    gap: 15px;
}

.project-card {
    background: var(--card-bg);
    border-radius: 12px;
    padding: 25px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    
}

.project-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}

.project-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}

.project-card-header h3 {
    margin: 0;
    font-size: 0.8rem;
    color: #1e293b;
    flex: 1;
}

.project-description {
    color: #64748b;
    font-size: 0.9rem;
    margin: 10px 0;
    flex: 1;
    white-space: normal;     /* permite quebra de linha */
    word-wrap: break-word;   /* força quebra em palavras grandes */
    overflow: hidden;        /* mantém o controle do overflow */
}

.progress-container {
    height: 6px;
    background: #dcdcdc;
    border-radius: 3px;
    margin: 10px 0;
    overflow: hidden;
}

.progress-bar {
    height: 100%;
    border-radius: 3px;
    transition: width 0.3s ease;
}

.project-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 12px 0;
}

.meta-item {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.85rem;
    color: #64748b;
}

.meta-item i {
    font-size: 0.8rem;
    color: #94a3b8;
}

.project-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
}

.days-left {
    font-size: 0.85rem;
    padding: 4px 8px;
    border-radius: 12px;
    background: #e2e8f0;
    color: #334155;
}

.days-left.warning {
    background: #fee2e2;
    color: #dc2626;
}

.project-card .actions {
    display: flex;
    gap: 5px;
}

.project-card .actions button {
    background: none;
    border: none;
    color: #94a3b8;
    cursor: pointer;
    padding: 5px;
    border-radius: 4px;
    transition: all 0.2s ease;
}

.project-card .actions button:hover {
    color: var(--primary-color);
    background: #f1f5f9;
}

.projects-timeline {
    background: #f8fafc;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
    overflow-x: auto;
}

.timeline-header {
    display: flex;
    margin-bottom: 15px;
    min-width: 800px;
}

.timeline-phase {
    flex: 1;
    text-align: center;
    padding: 10px;
    font-weight: 600;
    color: #334155;
    background: #f8fafc;
    border-radius: 6px;
    margin: 0 5px;
}

.timeline-content {
    display: flex;
    min-width: 800px;
}

.timeline-phase-column {
    flex: 1;
    margin: 0 5px;
    min-height: 100px;
    /*background: #f8fafc*/;
    border-radius: 6px;
    padding: 10px;
}

.timeline-project {
    background: white;
    border-radius: 6px;
    padding: 15px;
    margin-bottom: 10px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.timeline-project:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.timeline-project-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
}

.timeline-project-header h4 {
    margin: 0;
    font-size: 1rem;
    color: #1e293b;
    flex: 1;
}

.timeline-project-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 10px 0;
    font-size: 0.8rem;
}

.timeline-project-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 10px;
}

.timeline-project-footer .days-left {
    font-size: 0.75rem;
}

.timeline-project .actions {
    display: flex;
    gap: 3px;
}

.timeline-project .actions button {
    background: none;
    border: none;
    color: #94a3b8;
    cursor: pointer;
    padding: 3px;
    font-size: 0.8rem;
    border-radius: 3px;
    transition: all 0.2s ease;
}

.timeline-project .actions button:hover {
    color: var(--primary-color);
    background: #f1f5f9;
}

.project-draggable-item {
    cursor: grab;
    user-select: none;
}

.project-draggable-item.dragging {
    opacity: 0.5;
    background: #f1f5f9;
}

.project-draggable-item.drag-over-above {
    border-top: 2px dashed var(--primary-color);
}

.project-draggable-item.drag-over-below {
    border-bottom: 2px dashed var(--primary-color);
}

.project-list-container {
    background: var(--card-bg);
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    padding: 20px;
}

.project-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.95rem;
}

.project-table thead tr {
    border-bottom: 2px solid var(--border-color);
}

.project-table th {
    text-align: left;
    padding: 15px 10px;
    color: #64748b;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.8rem;
}

.project-table td {
    padding: 10px 10px;
    border-bottom: 1px solid var(--border-color);
    color: var(--text-color);
}

.project-table tbody tr:hover {
    background-color: var(--light-bg);
    cursor: pointer;
}

.project-table tbody tr:last-child td {
    border-bottom: none;
}

.project-table td .actions {
    display: flex;
    gap: 5px;
}

.project-table td .actions button {
    background: none;
    border: none;
    color: #94a3b8;
    cursor: pointer;
    padding: 5px;
    border-radius: 4px;
    transition: all 0.2s ease;
}

.project-table td .actions button:hover {
    color: var(--primary-color);
    background: #f1f5f9;
}

.profile-container {
    display: flex;
    gap: 30px;
    max-width: 1100px;
    margin: 20px auto;
}

.profile-sidebar {
    flex: 0 0 280px;
    background-color: var(--card-bg);
    border-radius: 12px;
    border: 1px solid var(--border-color);
    padding: 30px;
    text-align: center;
    align-self: flex-start;
}

.profile-avatar-wrapper {
    position: relative;
    margin-bottom: 15px;
}

.profile-avatar {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: var(--primary-color);
    color: white;
    font-size: 3rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    border: 4px solid white;
    box-shadow: 0 0 15px rgba(0,0,0,0.1);
}

.change-avatar-btn {
    position: absolute;
    bottom: 5px;
    right: 70px;
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 50%;
    width: 36px;
    height: 36px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text-light);
    transition: all 0.2s ease;
}

.change-avatar-btn:hover {
    background: var(--primary-color);
    color: white;
}

.profile-sidebar h3 {
    margin: 0 0 5px 0;
    font-size: 1.4rem;
    color: var(--text-color);
}

.profile-sidebar p {
    color: var(--text-light);
    font-size: 0.9rem;
    margin-bottom: 25px;
}

.profile-sidebar .btn {
    width: 100%;
    text-align: center;
}

.profile-main {
    flex: 1;
}

.profile-card {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 30px;
}

.profile-card h3 {
    font-size: 1.2rem;
    font-weight: 600;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--border-color);
}

.info-grid {
    display: grid;
    gap: 15px;
    margin-bottom: 25px;
}

.info-grid div {
    font-size: 0.95rem;
}

.info-grid strong {
    color: var(--text-color);
    font-weight: 500;
    margin-right: 8px;
}

.info-grid span {
    color: var(--text-light);
}

.form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
}

.ios-switch {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
}
.ios-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}
.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  transition: .4s;
}
.slider:before {
  position: absolute;
  content: "";
  height: 20px;
  width: 20px;
  left: 2px;
  bottom: 2px;
  background-color: white;
  transition: .4s;
}
input:checked + .slider {
  background-color: var(--success-color);
}
input:checked + .slider:before {
  transform: translateX(20px);
}
.slider.round {
  border-radius: 34px;
}
.slider.round:before {
  border-radius: 50%;
}

.project-detail-container {
    max-width: 1000px;
    margin: 0 auto;
}

#backToProjectsButton {
    width: auto;
    padding: 8px 16px;
    font-size: 0.9rem;
    background: var(--card-bg);
    color: var(--text-color);
    border: 1px solid var(--border-color);
    box-shadow: var(--shadow-sm);
}

#backToProjectsButton:hover {
    background: var(--light-bg);
    border-color: #d1d5db;
}

.project-detail-header {
    margin-top: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 15px;
    flex-wrap: wrap;
}

#detailProjectName {
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--text-color);
    margin: 0;
}

#detailProjectStatus {
    align-self: center;
}

.project-detail-body {
    margin-top: 30px;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 30px;
}

.project-detail-card {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 25px;
    box-shadow: var(--shadow-sm);
}

.project-detail-card h3 {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 20px;
    color: var(--text-color);
    padding-bottom: 15px;
    border-bottom: 1px solid var(--border-color);
}

.description-card p {
    line-height: 1.7;
    color: var(--text-light);
    white-space: pre-wrap;
}

.detail-info-grid {
    display: grid;
    gap: 20px;
}

.detail-info-grid div {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.9rem;
}

.detail-info-grid strong {
    color: var(--text-color);
    font-weight: 500;
}

.detail-info-grid span {
    color: var(--text-light);
}

.detail-info-grid i.fas {
    color: var(--primary-color);
    background: var(--primary-color-light);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
}

/* INÍCIO DA ALTERAÇÃO: Adição de media queries para responsividade */
@media (max-width: 900px) {
    .project-detail-body {
        grid-template-columns: 1fr;
    }
    .profile-container {
        flex-direction: column;
    }

    .profile-sidebar {
        flex: 0 0 auto;
        width: 100%;
    }
}

@media (max-width: 768px) {
    .project-list-container {
        overflow-x: auto;
    }

    .project-table {
        min-width: 700px;
    }

    .project-actions {
       
        align-items: flex-start;
    }

    .filter-bar {
        flex-direction: column;
    }

    .filter-bar .form-group {
        width: 100%;
    }
    
    .projects-grid {
        grid-template-columns: 1fr;
    }

    .projects-timeline {
        padding: 10px;
    }

    /* Regras para o menu móvel */
    .desktop-sidebar {
        display: none;
    }

    .hamburger-menu {
        display: block;
        margin-right: 15px;
    }

    .app-header {
        padding-left: 15px;
        padding-right: 15px;
        background-color: #f0f1f5;
    }

    .main-content {
        padding: 15px;
    }

    /* INÍCIO DA NOVA ALTERAÇÃO: Esconde o avatar do usuário em telas menores */
    .user-avatar {
        display: none;
    }
}

/* Ajustes para o container de totais (Entradas, Saídas, Balanço) */
.total-cost-container {
    padding: 15px 20px; /* Adiciona um pouco mais de respiro vertical */
    font-size: 0.9rem;  /* <-- A FONTE FOI DIMINUÍDA AQUI */
    border-bottom: 1px solid var(--border-color);
    margin-bottom: 20px;
}

/* Este seletor encontra a div que está diretamente dentro do .total-cost-container.
  O "!important" é necessário para ter prioridade sobre o estilo que está no HTML.
*/
.total-cost-container > div {
    justify-content: flex-end !important; /* <-- O ALINHAMENTO É AJUSTADO PARA A DIREITA AQUI */
}

/* Estilos para a funcionalidade Quick Add no Kanban */
.quick-add-container {
    margin-top: 10px;
    padding: 4px;
}

.quick-add-task-btn {
    display: flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 6px;
    cursor: pointer;
    color: #64748b; /* Cinza ardósia */
    transition: background-color 0.2s ease;
}

.quick-add-task-btn:hover {
    background-color: #f1f5f9; /* Cinza mais claro */
}

.quick-add-task-btn i {
    margin-right: 8px;
}

.quick-add-task-form textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    resize: vertical;
    min-height: 60px;
    margin-bottom: 8px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

.quick-add-actions {
    display: flex;
    align-items: center;
}

.quick-add-actions .btn-save-quick-task {
    padding: 6px 12px;
    font-size: 0.9em;
}

.quick-add-actions .btn-cancel-quick-task {
    background: none;
    border: none;
    cursor: pointer;
    color: #64748b;
    font-size: 1.2em;
    margin-left: 8px;
    padding: 4px;
}

.quick-add-actions .btn-cancel-quick-task:hover {
    color: #1e293b;
}

/* Melhorias no card do Kanban */
.timeline-project {
    padding: 12px;
    border-radius: 8px;
    background-color: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06);
    margin-bottom: 12px;
}

.project-name-tag {
    background-color: #e2e8f0;
    color: #475569;
    padding: 3px 8px;
    border-radius: 12px;
    font-size: 0.75em;
    font-weight: 500;
    margin-top: 8px;
    display: inline-block;
}

.timeline-project-footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.timeline-project:hover .timeline-project-footer {
    opacity: 1;
}
/* --- ESTILOS ADICIONAIS PARA O NOVO DASHBOARD --- */

/* Ajustes nos cards de estatísticas */
.stats-grid {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); /* Mais colunas */
}

.stat-card.chart-card {
    padding: 20px;
    text-align: center;
}

.chart-container {
    position: relative;
    height: 120px; /* Altura para o gráfico */
    margin-top: 15px;
}

/* Listas interativas */
.dashboard-list.interactive-list a.task-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-decoration: none;
    color: var(--text-color);
    padding: 12px 8px;
    border-radius: 6px;
    transition: background-color 0.2s ease;
}

.dashboard-list.interactive-list a.task-link:hover {
    background-color: #f8fafc; /* Efeito hover */
}

.dashboard-list li {
    padding: 0; /* Remove padding do LI, pois agora está no link A */
    border-bottom: 1px solid var(--border-color);
}
.dashboard-list li:last-child {
    border-bottom: none;
}

/* Estilos para o novo widget "Próximas Tarefas" */
.task-tags {
    display: flex;
    gap: 10px;
    align-items: center;
}

.due-date-tag {
    font-size: 0.8em;
    font-weight: 400;
    padding: 4px 10px;
    border-radius: 12px;
}

.due-date-tag.overdue {
    background-color: #fee2e2; /* Vermelho claro */
    color: #b91c1c; /* Vermelho escuro */
}

.due-date-tag.due-today {
    background-color: #fef3c7; /* Amarelo claro */
    color: #b45309; /* Amarelo escuro */
}

.due-date-tag.due-tomorrow {
    background-color: #dbeafe; /* Azul claro */
    color: #1e40af; /* Azul escuro */
}

.due-date-tag.due-later {
    background-color: #f3f4f6;
    color: #4b5563;
}
/* --- ESTILOS PARA O CARD DE PROGRESSO DE TAREFAS --- */

.stat-card.progress-card {
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.progress-bar-container {
    width: 100%;
    height: 12px;
    background-color: #e2e8f0; /* Cor de fundo da barra */
    border-radius: 6px;
    margin: 15px 0 10px 0;
    overflow: hidden;
}

.progress-bar {
    height: 100%;
    width: 0%; /* Inicia em 0, será preenchido via JS */
    background-color: var(--success-color); /* Usa a variável de cor de sucesso */
    border-radius: 6px;
    transition: width 0.5s ease-in-out;
}

.progress-text {
    font-size: 0.9em;
    color: #64748b; /* Cor do texto secundário */
    text-align: center;
}
/* --- ESTILOS PARA A NOVA PÁGINA DE DETALHES DO PROJETO --- */

.project-detail-body {
    display: grid;
    grid-template-columns: 2fr 1fr; /* Coluna principal maior que a lateral */
    gap: 25px;
    align-items: start;
}

.project-detail-main {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.project-detail-sidebar {
    display: flex;
    flex-direction: column;
    gap: 25px;
    position: sticky; /* Faz a barra lateral "flutuar" ao rolar a página */
    top: 90px;
}

.project-detail-card {
    background: var(--card-bg);
    border-radius: 12px;
    padding: 25px;
    border: 1px solid var(--border-color);
}

.project-detail-card h3 {
    font-size: 1.1rem;
    font-weight: 600;
    margin-top: 0;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--border-color);
}

/* Card de Métricas (KPIs) */
.metrics-card .metric-item {
    margin-bottom: 20px;
}
.metrics-card .metric-item:last-child {
    margin-bottom: 0;
}
.metrics-card label {
    display: block;
    font-size: 0.9em;
    color: #64748b;
    margin-bottom: 8px;
}
.metrics-card strong, .metrics-card .metric-value {
    font-size: 1.2em;
    font-weight: 600;
    color: var(--text-color);
}
.metric-value.overdue { color: var(--danger-color); }
.metric-value.due-today { color: var(--warning-color); }

/* Card de Tarefas */
.tasks-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.tasks-card-header .view-toggle .btn.btn-sm {
    padding: 5px 12px;
    font-size: 0.85em;
}
.no-tasks-message {
    text-align: center;
    color: #64748b;
    padding: 20px;
}

/* Tabela de Tarefas */
.project-tasks-table {
    width: 100%;
    border-collapse: collapse;
}
.project-tasks-table th {
    text-align: left;
    padding: 10px 8px;
    font-size: 0.8em;
    color: #64748b;
    text-transform: uppercase;
    border-bottom: 1px solid var(--border-color);
}
.project-tasks-table td {
    padding: 12px 8px;
    border-bottom: 1px solid #f1f5f9;
}
.project-tasks-table tbody tr {
    cursor: pointer;
    transition: background-color 0.2s ease;
}
.project-tasks-table tbody tr:hover {
    background-color: #f8fafc;
}

/* Kanban de Tarefas */
.project-kanban-board {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 15px;
}
.kanban-column h4 {
    font-size: 0.9em;
    text-align: center;
    padding: 8px;
    background-color: #f8fafc;
    border-radius: 6px;
    margin-bottom: 10px;
}
.kanban-card {
    background-color: #fff;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 10px;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.kanban-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.kanban-card-title {
    font-weight: 500;
    margin-bottom: 10px;
}
.kanban-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.8em;
    color: #64748b;
}
.status-badge.small {
    padding: 2px 8px;
    font-size: 0.7em;
}
.empty-column {
    font-size: 0.9em;
    text-align: center;
    color: #94a3b8;
    padding: 10px;
}

/* Placeholders */
.placeholder-card p {
    color: #94a3b8;
    font-style: italic;
    text-align: center;
    padding: 10px;
}

/* Responsividade */
@media (max-width: 900px) {
    .project-detail-body {
        grid-template-columns: 1fr;
    }
    .project-detail-sidebar {
        position: static; /* Remove o 'sticky' em telas menores */
    }
}
/* --- ESTILOS PARA TELA CHEIA RESPONSIVA (VIEW DE DETALHES) - Abordagem CSS-Only --- */

/* 1. SE .main-content CONTÉM .project-detail-container, remova o padding */
.main-content:has(.project-detail-container) {
    padding: 0;
}

/* 2. Expande o contêiner do projeto e adiciona o padding de volta internamente */
.main-content:has(.project-detail-container) .project-detail-container {
    max-width: 100%;
    margin: 0;
    border-radius: 0;
    border-left: none;
    border-right: none;
    border-top: none;
    box-shadow: none;
    padding: 25px; /* Adiciona o espaçamento interno para o conteúdo não colar na borda */
}
/* --- Media Query para a Tela de Login Mobile --- */

@media (max-width: 768px) {
    .login-box {
        /* Muda a direção do flexbox para empilhar os itens verticalmente */
        flex-direction: column; 
        
        /* Ajusta a largura para telas pequenas, com uma margem */
        width: 90%;             
        max-width: 400px;
        
        /* Opcional: Sombra um pouco mais sutil para mobile */
        box-shadow: 0 5px 15px rgba(0,0,0,0.15);
    }

    /* Esconde completamente a parte gráfica da esquerda em telas pequenas */
    .login-left {
        display: none;
    }

    /* Ajusta o padding do formulário para não ficar tão grande em telas menores */
    .login-right {
        padding: 30px;
    }
}
/* --- ESTILOS PARA BORDAS COLORIDAS NO CABEÇALHO DO KANBAN --- */

/* 1. Estilo base para todas as fases (define a borda sem cor) */
.timeline-phase {
    border-top: 7px solid transparent; /* Cria a borda com 4px, mas a deixa transparente por padrão */
    transition: border-color 0.3s ease; /* Adiciona uma transição suave */
}

/* 2. Aplica as cores específicas para cada fase */

/* Fase "A Fazer" - Laranja */
.timeline-phase[data-status-color="todo"] {
    border-top-color: var(--login-input-border);
}

/* Fase "Em Andamento" - Azul */
.timeline-phase[data-status-color="in_progress"] {
    border-top-color: var(--info-color); /* Usando a variável de cor de informação */
}

/* Fase "Concluída" - Verde */
.timeline-phase[data-status-color="completed"] {
    border-top-color: var(--success-color); /* Usando a variável de cor de sucesso */
}
/* --- ESTILOS PARA BORDAS COLORIDAS NA LISTA DE TAREFAS --- */

/* 1. Estilo base para todas as linhas da tabela */
.project-table tbody tr {
    /* Cria a borda à esquerda, mas a deixa transparente por padrão */
    transition: border-color 0.3s ease, background-color 0.3s ease;
}

/* 2. Aplica as cores específicas para cada status */

/* Status "A Fazer" - Laranja */
.project-table tbody tr.task-status-todo {
    border-left-color: var(--login-input-border);
}

/* Status "Em Andamento" - Azul */
.project-table tbody tr.task-status-in_progress {
    border-left-color: var(--info-color);
}

/* Status "Concluída" - Verde */
.project-table tbody tr.task-status-completed {
    border-left-color: var(--success-color);
    /* Opcional: Deixa o texto das tarefas concluídas um pouco mais claro */
    color: #94a3b8; 
}
.project-table tbody tr.task-status-completed .status-badge {
    /* Garante que o badge de status continue com a cor normal */
    color: var(--success-color);
}


/* --- ESTILOS PARA O ÍCONE DE PRIORIDADE COM BANDEIRA --- */

/* 1. Estilo base para o botão do ícone de prioridade */
.priority-flag {
    font-size: 1rem;       /* Tamanho do ícone */
    cursor: pointer;       /* Indica que o ícone é clicável */
    padding: 5px;
    border-radius: 4px;
    background: none;      /* Remove o fundo do botão */
    border: none;          /* Remove a borda do botão */
    transition: all 0.2s ease;
    line-height: 1;        /* Alinha o ícone verticalmente */
    color: inherit;        /* Herda a cor do texto pai por padrão */
}

.priority-flag:hover {
    background-color: #f1f5f9; /* Um leve fundo ao passar o mouse */
}

/* 2. Cores da bandeira com base na classe do elemento pai (tr, project-card, etc.) */

/* Prioridade Baixa (Low) */
.priority-low .priority-flag i {
    color: #64748b; /* Cinza ardósia */
}

/* Prioridade Média (Medium) */
.priority-medium .priority-flag i {
    color: var(--warning-color); /* Laranja/Amarelo */
}

/* Prioridade Alta (High) */
.priority-high .priority-flag i {
    color: var(--danger-color); /* Vermelho */
}

/* Ajuste para o meta-item no card para não quebrar o layout */
.project-card .meta-item .priority-flag {
    padding: 0;
    display: inline-flex;
    align-items: center;
}
/* --- ESTILOS PARA DRAG AND DROP NA TIMELINE --- */

/* Adiciona um destaque visual à coluna quando um card está sendo arrastado sobre ela */
.timeline-phase-column.drag-over {
    background-color: #eef2ff; /* Um azul bem claro */
    border: 2px dashed var(--primary-color);
    border-radius: 6px;
}

/* Garante que o card sendo arrastado fique um pouco transparente */
.timeline-project.dragging {
    opacity: 0.5;
}
/* --- AJUSTES VISUAIS PARA O DRAG AND DROP (TAREFAS E PROJETOS) - Versão Clean --- */

/* 1. Estilo para o item que está sendo arrastado ("ghost" effect) */
.task-draggable-item.dragging,
.project-draggable-item.dragging {
    opacity: 0.8; /* Deixa o item semi-transparente */
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); /* Adiciona sombra para efeito de "elevação" */
    cursor: grabbing;
    /* A propriedade transform: rotate(3deg); foi removida para um visual mais clean */
}

/* 2. Indicador de Posição (a linha que aparece entre os cards) */
.task-draggable-item.drag-over-above,
.project-draggable-item.drag-over-above {
    border-top: 3px solid var(--info-color);
}
.task-draggable-item.drag-over-below,
.project-draggable-item.drag-over-below {
    border-bottom: 3px solid var(--info-color);
}

/* 3. Estilo para a coluna de destino no Kanban (mais suave) */
.timeline-phase-column.drag-over {
    background-color: #f4f8ff;
}
/* --- AJUSTE FINAL DE CURSOR PARA DRAG AND DROP --- */

.task-draggable-item,
.project-draggable-item {
    cursor: grab;
}

.task-draggable-item.dragging,
.project-draggable-item.dragging {
    cursor: grabbing;
}
/* --- ESTILOS PARA INFORMAÇÕES ADICIONAIS NO CARD DO KANBAN --- */

/* Estilo para a descrição da tarefa no card */
.timeline-project .project-description {
    font-size: 0.85rem;      /* Tamanho de fonte um pouco menor */
    color: #64748b;          /* Cor de texto secundária */
    margin: 8px 0;          /* Espaçamento vertical */
    line-height: 1.4;
    
    /* Garante que o texto não quebre o layout */
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Container para os ícones de Data e Custo */
.timeline-project .timeline-project-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 10px 0;
    font-size: 0.8rem;
    color: #475569;
}

/* Estilo para cada item (ícone + texto) */
.timeline-project .timeline-project-meta .meta-item {
    display: flex;
    align-items: center;
    gap: 5px;
}

.timeline-project .timeline-project-meta .meta-item i {
    color: #94a3b8; /* Cor cinza para os ícones */
}
/* --- AJUSTES FINAIS DE ESTILO PARA DRAG AND DROP (Clean & Smooth) --- */

/* Adiciona uma transição suave para todos os cards. 
   Isso fará com que o card se encaixe suavemente no lugar ao ser solto. */
.timeline-project, .project-card, .project-table tr {
    transition: all 0.2s ease-in-out;
}

/* 1. Estilo para o item que está sendo ARRASTADO ("ghost" effect) */
.task-draggable-item.dragging,
.project-draggable-item.dragging {
    opacity: 0.8; /* Deixa o item levemente transparente */
    background: #fff;
    /* Adiciona uma sombra para dar o efeito de "elevação" */
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.2); 
    /* Inclina SUTILMENTE o card para um feedback mais dinâmico */
    transform: scale(1.05) rotate(1deg); 
}

/* 2. Indicador de Posição (a linha que aparece entre os cards) */
.task-draggable-item.drag-over-above,
.project-draggable-item.drag-over-above {
    border-top: 3px solid var(--info-color);
}

.task-draggable-item.drag-over-below,
.project-draggable-item.drag-over-below {
    border-bottom: 3px solid var(--info-color);
}

/* 3. Estilo para a coluna de destino no Kanban (mais suave) */
.timeline-phase-column.drag-over {
    background-color: #f4f8ff; /* Fundo azul bem claro e suave */
}
/* --- ESTILOS PARA ÍCONES DE STATUS INTERATIVOS --- */

/* Base para o botão do ícone */
.status-icon {
    font-size: 1.1rem;
    cursor: pointer;
    background: none;
    border: none;
    padding: 5px;
    border-radius: 50%;
    line-height: 1;
    width: 28px;
    height: 28px;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.status-icon:hover {
    background-color: #f1f5f9; /* Fundo suave ao passar o mouse */
}

/* Cor e estilo para cada status */

/* A Fazer (todo) */
.task-status-todo .status-icon i {
    color: #747474; /* Laranja/Amarelo, usando sua --warning-color */
}

/* Em Andamento (in_progress) */
.task-status-in_progress .status-icon i {
    color: var(--info-color); /* Azul, usando sua --info-color */
}

/* Concluída (completed) */
.task-status-completed .status-icon i {
    color: var(--success-color); /* Verde, usando sua --success-color */
}

/* Efeito extra: tarefas concluídas ficam com texto e fundo mais discretos */
.task-status-completed {
    opacity: 0.7;
}

/* Garante que a linha inteira da tabela também fique mais discreta */
.project-table tr.task-status-completed > td {
    color: #94a3b8;
    text-decoration: line-through;
}

/* Mas mantém o ícone e botões de ação com a cor e opacidade normal */
.project-table tr.task-status-completed .status-icon,
.project-table tr.task-status-completed .priority-flag,
.project-table tr.task-status-completed .actions button {
    color: inherit;
    text-decoration: none;
}
/* --- ESTILOS PARA PAGINAÇÃO --- */

.pagination-controls {
    display: none; /* Escondido por padrão, mostrado via JS */
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    margin-top: 20px;
    background-color: var(--card-bg);
    border-top: 1px solid var(--border-color);
    border-radius: 0 0 8px 8px; /* Cantos arredondados na parte inferior */
}

.pagination-controls select.items-per-page {
    padding: 8px 12px;
    border-radius: 6px;
    border: 1px solid var(--border-color);
    background-color: var(--light-bg);
    cursor: pointer;
}

.page-navigation {
    display: flex;
    align-items: center;
    gap: 10px;
}

.page-navigation button {
    padding: 8px 16px;
    border: 1px solid var(--border-color);
    background-color: white;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.page-navigation button:hover:not(:disabled) {
    background-color: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
}

.page-navigation button:disabled {
    cursor: not-allowed;
    opacity: 0.5;
    background-color: #f8fafc;
}

.page-indicator {
    font-weight: 500;
    color: #64748b;
}
/* --- ESTILOS PARA ANIMAÇÃO DE CONFETES --- */

#confetti-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none; /* Permite clicar através do container */
    overflow: hidden;
    z-index: 9999; /* Garante que fique acima de tudo */
}

.confetti {
    position: absolute;
    width: 10px;
    height: 10px;
    background-color: var(--primary-color);
    opacity: 0.9;
    animation: confetti-fall 4s linear forwards;
}

/* Animação de queda e rotação */
@keyframes confetti-fall {
    0% {
        transform: translateY(-20vh) rotateZ(0deg);
        opacity: 1;
    }
    100% {
        transform: translateY(120vh) rotateZ(720deg);
        opacity: 0;
    }
}
/* --- CORREÇÃO DE ESTILO PARA O WIDGET 'PRÓXIMAS TAREFAS' NO DASHBOARD --- */

/* Remove a regra antiga que era específica demais */
.dashboard-list.interactive-list a.task-link {
    display: none;
}

/* Nova regra principal para o item da lista */
.dashboard-list .task-link {
    display: flex;
    align-items: center;
    gap: 12px; /* Espaçamento entre o ícone de status e o título */
    padding: 15px 8px;
    text-decoration: none;
    color: var(--text-color);
    border-radius: 6px;
    transition: background-color 0.2s ease;
}

/* Efeito hover no item da lista */
.dashboard-list li:hover .task-link {
    background-color: #f8fafc;
}

/* Faz o título da tarefa ocupar todo o espaço disponível, empurrando as tags para a direita */
.dashboard-list .task-link .task-title {
    flex-grow: 1;
    cursor: pointer;
}

/* Alinha as tags (data e prioridade) juntas no final */
.dashboard-list .task-link .task-tags {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto; /* Mágica do flexbox para empurrar para a direita */
}
/* --- ESTILOS PARA NOTIFICAÇÕES (TOAST) --- */

/* Animação para o ícone balançar */
@keyframes celebrate-wiggle {
  0% { transform: rotate(0deg); }
  20% { transform: rotate(-15deg); }
  40% { transform: rotate(10deg); }
  60% { transform: rotate(-10deg); }
  80% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}

/* Container que vai posicionar todos os toasts */
#toast-container {
    position: fixed;       /* Fica fixo na tela */
    top: 20px;             /* 20px do topo */
    right: 20px;           /* 20px da direita */
    z-index: 9999;         /* Garante que fique acima de todos os outros elementos */
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Estilo individual de cada notificação */
.toast {
    background-color: #334155; /* Cor de fundo escura */
    color: white;              /* Texto branco */
    padding: 15px 20px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    gap: 10px;
    
    /* Animação de entrada e saída */
    opacity: 0;
    transform: translateX(100%); /* Começa fora da tela à direita */
    transition: all 0.5s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}

/* Estilo para a notificação quando está visível */
.toast.show {
    opacity: 1;
    transform: translateX(0); /* Entra na tela */
}

/* Ícone geral dentro do toast */
.toast i {
    font-size: 1.2rem;
}

/* Variação de cor para sucesso */
.toast.success {
    background-color: var(--success-color); /* Usa a variável de cor verde */
}

/* Aplica a cor e a animação ao ícone de sucesso */
.toast.success i {
    color: #FFFFFF; /* Cor dourada para o ícone */
    animation: celebrate-wiggle 0.7s ease-in-out;
}

/* Variação de cor para erro */
.toast.error {
    background-color: var(--danger-color); /* Usa a variável de cor vermelha */
}
}
/* --- ESTILOS PARA A ESTEIRA DE TAREFAS NA VIEW DE LISTA --- */

/* Remove padding e sombra do container principal para que os grupos possam ocupar a largura total */
.project-list-container {
    padding: 0;
    box-shadow: none;
    background: none;
}

.task-group {
    background: var(--card-bg);
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    margin-bottom: 20px;
    overflow: hidden;
}

.task-group-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px 20px;
    cursor: pointer;
    border-bottom: 1px solid var(--border-color);
    user-select: none; /* Impede a seleção de texto ao clicar */
}

.task-group-header:hover {
    background-color: #f8fafc;
}

.task-group-header .toggle-icon {
    font-size: 0.9em;
    color: #64748b;
    transition: transform 0.3s ease;
}

.task-group-header.collapsed .toggle-icon {
    transform: rotate(-90deg);
}

.task-group-header h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-color);
}

.task-group-header .task-count {
    font-size: 0.85em;
    background-color: #e2e8f0;
    color: #475569;
    padding: 2px 8px;
    border-radius: 12px;
    font-weight: 500;
}

.task-group-content {
    max-height: 2000px; /* Altura máxima grande para permitir a transição */
    overflow: hidden;
    transition: max-height 0.4s ease-in-out, padding 0.4s ease;
    padding: 20px;
}

.task-group-content.collapsed {
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    border-top: none;
}

/* Garante que a tabela dentro do grupo não tenha margens extras */
.task-group-content .project-table {
    width: 100%;
}

.no-tasks-in-group {
    text-align: center;
    color: #94a3b8;
    padding: 15px 0;
    font-size: 0.9em;
}


.project-table tbody tr.task-status-todo {
    border-left-color: #f59e0b; /* Amarelo/Laranja */
}

.project-table tbody tr.task-status-in_progress {
    border-left-color: var(--info-color); /* Azul */
}

.project-table tbody tr.task-status-completed {
    border-left-color: var(--success-color); /* Verde */
}

/* Remove a paginação da view de lista, que agora é controlada pelos toggles */
.pagination-controls {
    border-radius: 8px; /* Arredonda todos os cantos quando não está mais colado na tabela */
}
/* --- AJUSTES PARA A TELA DE DETALHES DO PROJETO --- */

/* Corrige o alinhamento do cabeçalho do card de tarefas */
.tasks-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px; /* Adiciona um espaço entre o título e a busca */
}

/* Garante que o título não tenha margem extra que quebre o layout */
.tasks-card-header h3 {
    margin-bottom: 0;
}

/* Limita a largura do campo de busca dentro do card */
.tasks-card-header .search-box {
    flex: 0 1 350px; /* Permite encolher, mas não crescer, com uma base de 350px */
    min-width: 200px;
}

/* Estilo para os ícones de status na tabela, fazendo-os parecer não-interativos */
.project-tasks-table .status-icon {
    cursor: default;
    background: none;
    padding: 0;
}

.project-tasks-table .status-icon:hover {
    background-color: transparent;
}

/* Estilo para os ícones de prioridade na tabela */
.project-tasks-table .priority-flag {
    cursor: default;
    background: none;
    padding: 0;
}

.project-tasks-table .priority-flag:hover {
    background-color: transparent;
}

/* ==========================================================================
   Mobile First: Estilos Padrão para Telas Pequenas (Celulares)
   ========================================================================== */

/* Containers principais da tela de detalhes */
.project-detail-container {
    padding: 15px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.project-detail-header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    margin-bottom: 15px;
}

.project-detail-header h2 {
    font-size: 1.5rem;
    margin-bottom: 0;
}

/* O corpo principal e a sidebar se empilham no mobile */
.project-detail-body {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ALTERAÇÃO DE ORDEM: No mobile, a sidebar (Métricas, Detalhes) vem primeiro */
.project-detail-main {
    width: 100%;
    order: 2;
}

.project-detail-sidebar {
    width: 100%;
    order: 1;
}

/* Cards em geral */
.project-detail-card {
    background: var(--card-bg);
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    margin-bottom: 20px;
}

.project-detail-card h3 {
    font-size: 1.1rem;
    color: var(--text-color);
    margin-top: 0;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-color);
}

/* --- Metricas do Projeto --- */
.metrics-card .metric-item {
    margin-bottom: 15px;
}

.metrics-card .metric-item label {
    font-size: 0.9em;
    color: #64748b;
    display: block;
    margin-bottom: 5px;
}

.metrics-card .metric-item strong {
    font-size: 1.1em;
    font-weight: 600;
    color: var(--text-color);
}

.progress-bar-container {
    height: 8px;
    background-color: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
    margin: 8px 0;
}

.progress-bar {
    height: 100%;
    width: 0%;
    background-color: var(--success-color);
    border-radius: 4px;
    transition: width 0.5s ease-in-out;
}

.progress-text {
    font-size: 0.85em;
    color: #64748b;
    text-align: right;
}

/* --- Detalhes (Info Card) --- */
.detail-info-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.detail-info-grid div {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.9rem;
}

.detail-info-grid strong {
    font-weight: 500;
}

.detail-info-grid i {
    color: var(--primary-color);
    width: 16px;
}

/* --- Tarefas do Projeto Card (tasks-card) --- */
.tasks-card-header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 15px;
}

.tasks-card-header h3 {
    margin-bottom: 0;
}

.tasks-card-header .search-box {
    width: 100%;
}

/* Tabela de Tarefas */
.project-tasks-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.project-tasks-table th,
.project-tasks-table td {
    padding: 12px 8px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
    vertical-align: middle;
}

.project-tasks-table th {
    color: #64748b;
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
}

/* Esconde colunas no mobile para economizar espaço */
.project-tasks-table th:nth-child(4), /* Prazo */
.project-tasks-table td:nth-child(4),
.project-tasks-table th:nth-child(5), /* Saídas */
.project-tasks-table td:nth-child(5),
.project-tasks-table th:nth-child(6), /* Entradas */
.project-tasks-table td:nth-child(6) {
    display: none;
}

/* Estilo para os ícones de status e prioridade na tabela */
.project-tasks-table .status-icon,
.project-tasks-table .priority-flag {
    cursor: default;
    background: none;
    padding: 0;
    border: none;
    font-size: 1rem;
    color: #64748b;
}

/* ==========================================================================
   CORREÇÃO DE COR: Regras para colorir os ícones
   ========================================================================== */
.project-tasks-table tr.task-status-todo .status-icon i { color: #747474; }
.project-tasks-table tr.task-status-in_progress .status-icon i { color: var(--info-color); }
.project-tasks-table tr.task-status-completed .status-icon i { color: var(--success-color); }

.project-tasks-table tr.priority-low .priority-flag i { color: #64748b; }
.project-tasks-table tr.priority-medium .priority-flag i { color: var(--warning-color); }
.project-tasks-table tr.priority-high .priority-flag i { color: var(--danger-color); }


/* Estilos para os grupos de tarefas (Em Aberto, Concluídas) */
.task-group {
    border: 1px solid var(--border-color);
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 20px;
}

.task-group-header {
    display: flex;
    align-items: center;
    padding: 12px 15px;
    background-color: #f8fafc;
    cursor: pointer;
    border-bottom: 1px solid var(--border-color);
}
.task-group-header h3 {
    margin: 0;
    font-size: 1rem;
    border-bottom: none;
    padding-bottom: 0;
}
.task-group-header .toggle-icon { margin-right: 10px; transition: transform 0.2s ease-in-out; }
.task-group-header.collapsed .toggle-icon { transform: rotate(-90deg); }
.task-group-header .task-count {
    font-size: 0.8rem;
    background-color: #e2e8f0;
    color: #475569;
    padding: 2px 8px;
    border-radius: 12px;
    margin-left: auto;
}
.task-group-content { max-height: 1000px; transition: max-height 0.3s ease-in-out; }
.task-group-content.collapsed { max-height: 0; overflow: hidden; }
.task-group-content .project-tasks-table { margin-top: 0; }
.task-group-content .no-tasks-in-group { padding: 20px; text-align: center; color: #64748b; }
.no-tasks-message { padding: 20px; text-align: center; color: #64748b; }

/* ==========================================================================
   Media Queries para Telas Maiores (Tablet e Desktop)
   ========================================================================== */

/* Tablet (a partir de 768px de largura) */
@media (min-width: 768px) {
    .project-detail-container { padding: 25px; }
    .project-detail-header { flex-direction: row; justify-content: space-between; align-items: center; }
    .project-detail-header h2 { font-size: 1.8rem; }
    .tasks-card-header { flex-direction: row; align-items: center; }
    .tasks-card-header .search-box { width: auto; flex: 0 1 350px; }

    /* Colunas da tabela que reaparecem no tablet */
    .project-tasks-table th:nth-child(4),
    .project-tasks-table td:nth-child(4) { display: table-cell; }
}

/* Desktop (a partir de 1024px de largura) */
@media (min-width: 1024px) {
    .project-detail-container { padding: 30px; }
    .project-detail-header h2 { font-size: 2rem; }
    .project-detail-body { flex-direction: row; align-items: flex-start; }

    /* ALTERAÇÃO DE ORDEM: Reseta a ordem para o layout de desktop */
    .project-detail-main { flex: 2; order: 1; }
    .project-detail-sidebar { flex: 1; min-width: 300px; order: 2; }

    /* Colunas da tabela que reaparecem no desktop */
    .project-tasks-table th:nth-child(5),
    .project-tasks-table td:nth-child(5),
    .project-tasks-table th:nth-child(6),
    .project-tasks-table td:nth-child(6) { display: table-cell; }
}
/* ==========================================================================
   Mobile First: Estilos para Detalhes do Projeto
   ========================================================================== */

.project-detail-container {
    padding: 15px;
}

.project-detail-header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    margin-bottom: 20px;
}

.project-detail-header h2 {
    font-size: 1.5rem;
}

/* No mobile, os blocos são empilhados na ordem natural do HTML:
   1. Descrição, 2. Sidebar, 3. Tarefas */
.project-detail-body {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Estilo unificado para os cards */
.project-detail-card {
    background: var(--card-bg);
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
}

.project-detail-card h3 {
    font-size: 1.1rem;
    margin-top: 0;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-color);
}

.project-detail-sidebar {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* CORREÇÃO DA BUSCA: Garante o alinhamento correto em todas as telas */
.tasks-card-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

.tasks-card-header .search-box {
    width: 100%;
    /* Garante que ele possa encolher se necessário, mas comece com 100% */
    flex: 1 1 100%; 
}

/* Tabela de Tarefas: esconde colunas no mobile */
.project-tasks-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.project-tasks-table th, .project-tasks-table td {
    padding: 12px 8px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
    vertical-align: middle;
}
.project-tasks-table th {
    color: #64748b;
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
}

.project-tasks-table th:nth-child(4), /* Prazo */
.project-tasks-table td:nth-child(4),
.project-tasks-table th:nth-child(5), /* Saídas */
.project-tasks-table td:nth-child(5),
.project-tasks-table th:nth-child(6), /* Entradas */
.project-tasks-table td:nth-child(6) {
    display: none;
}

/* Ícones e Cores (mantidos da versão anterior) */
.project-tasks-table .status-icon,
.project-tasks-table .priority-flag {
    cursor: default; background: none; padding: 0; border: none; font-size: 1rem;
}
.project-tasks-table tr.task-status-todo .status-icon i { color: #747474; }
.project-tasks-table tr.task-status-in_progress .status-icon i { color: var(--info-color); }
.project-tasks-table tr.task-status-completed .status-icon i { color: var(--success-color); }
.project-tasks-table tr.priority-low .priority-flag i { color: #64748b; }
.project-tasks-table tr.priority-medium .priority-flag i { color: var(--warning-color); }
.project-tasks-table tr.priority-high .priority-flag i { color: var(--danger-color); }

/* Grupos de Tarefas (mantidos da versão anterior) */
.task-group { border: 1px solid var(--border-color); border-radius: 8px; overflow: hidden; margin-bottom: 20px; }
.task-group-header { display: flex; align-items: center; padding: 12px 15px; background-color: #f8fafc; cursor: pointer; border-bottom: 1px solid var(--border-color); }
.task-group-header h3 { margin: 0; font-size: 1rem; border: none; padding: 0; }
.task-group-header .toggle-icon { margin-right: 10px; transition: transform 0.2s ease-in-out; }
.task-group-header.collapsed .toggle-icon { transform: rotate(-90deg); }
.task-group-header .task-count { font-size: 0.8rem; background-color: #e2e8f0; color: #475569; padding: 2px 8px; border-radius: 12px; margin-left: auto; }
.task-group-content { max-height: 1000px; transition: max-height 0.3s ease-in-out; }
.task-group-content.collapsed { max-height: 0; overflow: hidden; }
.task-group-content .no-tasks-in-group, .no-tasks-message { padding: 20px; text-align: center; color: #64748b; }

/* ==========================================================================
   Media Queries para Telas Maiores
   ========================================================================== */

/* Tablet (a partir de 768px) */
@media (min-width: 768px) {
    .project-detail-header {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }
    .tasks-card-header .search-box {
        width: auto;
        max-width: 350px;
    }
    .project-tasks-table th:nth-child(4), /* Prazo */
    .project-tasks-table td:nth-child(4) {
        display: table-cell;
    }
}

/* Desktop (a partir de 1024px) */
@media (min-width: 1024px) {
    /* NOVO: Usando CSS Grid para o layout de desktop */
    .project-detail-body {
        display: grid;
        grid-template-columns: 2fr 1fr; /* Coluna principal 2x maior que a sidebar */
        /* Define as áreas do grid */
        grid-template-areas:
            "description sidebar"
            "tasks       sidebar";
        gap: 30px;
        align-items: flex-start;
    }

    /* Associa cada bloco à sua área no grid */
    .description-card { grid-area: description; }
    .tasks-card { grid-area: tasks; }
    .project-detail-sidebar { grid-area: sidebar; }

    /* Exibe todas as colunas da tabela no desktop */
    .project-tasks-table th:nth-child(5), /* Saídas */
    .project-tasks-table td:nth-child(5),
    .project-tasks-table th:nth-child(6), /* Entradas */
    .project-tasks-table td:nth-child(6) {
        display: table-cell;
    }
}


/* ==========================================================================
   CSS FINAL E DEFINITIVO PARA DETALHES DO PROJETO
   ========================================================================== */

/* --- Mobile First: Estilos Padrão (Celular) --- */

.project-detail-container {
    padding: 15px;
}

.project-detail-header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    margin-bottom: 20px;
}

.project-detail-header h2 {
    font-size: 1.5rem;
}

.project-detail-body {
    display: flex;
    flex-direction: column;
    gap: 25px; /* Espaçamento entre os cards */
}

/* CORREÇÃO DE ORDEM PARA MOBILE:
  Usamos a propriedade 'order' para forçar a sequência visual correta.
  1. Descrição, 2. Métricas/Detalhes, 3. Tarefas.
*/
.description-card { order: 1; }
.project-detail-sidebar { order: 2; }
.tasks-card { order: 3; }


/* Estilo unificado para os cards */
.project-detail-card {
    background: var(--card-bg);
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
}

.project-detail-card h3 {
    font-size: 1.1rem;
    margin-top: 0;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-color);
}

.project-detail-sidebar {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Cabeçalho do card de tarefas */
.tasks-card-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

.tasks-card-header .search-box {
    width: 100%;
    flex-grow: 1; 
}

/* Tabela de Tarefas: esconde colunas no mobile */
.project-tasks-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.project-tasks-table th, .project-tasks-table td {
    padding: 12px 8px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
    vertical-align: middle;
}
.project-tasks-table th {
    color: #64748b;
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.project-tasks-table th:nth-child(4), /* Prazo */
.project-tasks-table td:nth-child(4),
.project-tasks-table th:nth-child(5), /* Saídas */
.project-tasks-table td:nth-child(5),
.project-tasks-table th:nth-child(6), /* Entradas */
.project-tasks-table td:nth-child(6) {
    display: none;
}

/* Ícones e Cores */
.project-tasks-table .status-icon,
.project-tasks-table .priority-flag {
    cursor: default; background: none; padding: 0; border: none; font-size: 1rem;
}
.project-tasks-table tr.task-status-todo .status-icon i { color: #747474; }
.project-tasks-table tr.task-status-in_progress .status-icon i { color: var(--info-color); }
.project-tasks-table tr.task-status-completed .status-icon i { color: var(--success-color); }
.project-tasks-table tr.priority-low .priority-flag i { color: #64748b; }
.project-tasks-table tr.priority-medium .priority-flag i { color: var(--warning-color); }
.project-tasks-table tr.priority-high .priority-flag i { color: var(--danger-color); }

/* Grupos de Tarefas */
.task-group { border: 1px solid var(--border-color); border-radius: 8px; overflow: hidden; margin-bottom: 20px; }
.task-group-header { display: flex; align-items: center; padding: 12px 15px; background-color: #f8fafc; cursor: pointer; border-bottom: 1px solid var(--border-color); }
.task-group-header h3 { margin: 0; font-size: 1rem; border: none; padding: 0; }
.task-group-header .toggle-icon { margin-right: 10px; transition: transform 0.2s ease-in-out; }
.task-group-header.collapsed .toggle-icon { transform: rotate(-90deg); }
.task-group-header .task-count { font-size: 0.8rem; background-color: #e2e8f0; color: #475569; padding: 2px 8px; border-radius: 12px; margin-left: auto; }
.task-group-content { max-height: 1000px; transition: max-height 0.3s ease-in-out; padding-bottom: 20px; height: auto; max-height: none; }
.task-group-content.collapsed { max-height: 0; overflow: hidden; }
.task-group-content .no-tasks-in-group, .no-tasks-message { padding: 20px; text-align: center; color: #64748b; }

/* --- Media Queries para Telas Maiores --- */

/* Tablet (a partir de 768px) */
@media (min-width: 768px) {
    .project-detail-header {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }
    .tasks-card-header .search-box {
        width: auto;
        max-width: 350px;
    }
    .project-tasks-table th:nth-child(4), /* Prazo */
    .project-tasks-table td:nth-child(4) {
        display: table-cell;
    }
}

/* Desktop (a partir de 1024px) */
@media (min-width: 1024px) {
    .project-detail-body {
        display: grid;
        grid-template-columns: 2fr 1fr;
        grid-template-areas:
            "description sidebar"
            "tasks       sidebar";
        gap: 30px;
        align-items: flex-start;
    }

    /* Reseta a propriedade 'order' para que o grid funcione corretamente */
    .description-card,
    .project-detail-sidebar,
    .tasks-card {
        order: unset;
    }

    /* Associa cada bloco à sua área no grid */
    .description-card { grid-area: description; }
    .tasks-card { grid-area: tasks; }
    .project-detail-sidebar { grid-area: tasks; }

    /* Exibe todas as colunas da tabela no desktop */
    .project-tasks-table th:nth-child(5), /* Saídas */
    .project-tasks-table td:nth-child(5),
    .project-tasks-table th:nth-child(6), /* Entradas */
    .project-tasks-table td:nth-child(6) {
        display: table-cell;
    }
}

/* ==========================================================================
   ESTILOS PARA KPI CARDS MODERNOS (Detalhes do Projeto)
   ========================================================================== */

/* Container que agrupa os KPI cards de tarefas */
.project-tasks-kpi-container {
    display: grid;
    grid-template-columns: 1fr; /* Uma coluna no mobile */
    gap: 20px;
}

.kpi-card {
    background: var(--card-bg);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 8px 30px rgba(0,0,0,0.08);
    border: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.kpi-header {
    display: flex;
    align-items: center;
    gap: 12px;
}

.kpi-header i {
    font-size: 1.2rem;
    width: 30px;
    text-align: center;
}

.kpi-header h3 {
    margin: 0;
    padding: 0;
    border: none;
    font-size: 1rem;
    font-weight: 600;
    color: #64748b; /* Cinza */
}

/* Valor principal (contagem de tarefas) */
.kpi-main-value {
    font-size: 3rem;
    font-weight: 700;
    color: var(--text-color);
    line-height: 1;
}

/* Container para as métricas financeiras */
.kpi-sub-metrics {
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-top: 1px solid var(--border-color);
    padding-top: 15px;
    margin-top: 5px;
}

.kpi-sub-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.9rem;
}

.kpi-sub-item span {
    color: #64748b;
}

.kpi-sub-item strong {
    font-weight: 600;
}

/* Cores específicas para cada KPI card */
.kpi-card.kpi-open .kpi-header i {
    color: var(--info-color); /* Azul */
}

.kpi-card.kpi-completed .kpi-header i {
    color: var(--success-color); /* Verde */
}

/* Ajustes no layout da página de detalhes para acomodar os KPIs */
@media (min-width: 1024px) {
    .project-tasks-kpi-container {
        grid-template-columns: 1fr 1fr; /* Duas colunas em telas maiores */
        grid-area: tasks; /* Garante que ele fique na área correta do grid */
    }

    /* Remove a referência ao .tasks-card que não existe mais e aplica ao novo container */
    .project-detail-body {
        grid-template-areas:
            "description sidebar"
            "tasks       sidebar";
    }

    .project-tasks-kpi-container { grid-area: tasks; }
}
/* Estilos para o card de Progresso de Tarefas (VERSÃO AJUSTADA) */
.progress-card h3 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px; 
}

.progress-card .progress-percentage {
    font-size: 1.2em;
    font-weight: bold;
    color: #10b981;
}

.progress-bar-container {
    width: 100%;
    background-color: #e2e8f0;
    border-radius: 5px;
    height: 10px;
    overflow: hidden;
    margin-bottom: 15px; /* Reduzi um pouco o espaço aqui */
}

.progress-bar {
    height: 100%;
    background-color: #10b981;
    width: 0%;
    border-radius: 5px;
    transition: width 0.5s ease-in-out;
}

.progress-counts-container {
    display: flex;
    justify-content: flex-start; /* Alinha os itens ao início */
    align-items: center;
    gap: 20px; /* Espaçamento entre "Concluídas" e "Em aberto" */
}

.progress-count-item {
    display: flex; /* Mudei para flex para alinhar o número e o texto lado a lado */
    align-items: center; /* Centraliza verticalmente o número e o texto */
    font-size: 0.9em;
    color: #64748b;
}

.progress-count-item span {
    /* display: block; FOI REMOVIDO PARA PERMITIR ALINHAMENTO HORIZONTAL */
    font-size: 1.2em; /* Fonte reduzida para não ficar tão grande */
    font-weight: bold;
    color: #334155;
    margin-right: 6px; /* Adiciona um espaço entre o número e o texto */
    /* margin-bottom: 5px; FOI REMOVIDO */
}

/* Estilos gerais para os cards (sem alteração) */
.stat-card {
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}

.stat-card h3 {
    font-size: 1.1em;
    color: #334155;
    margin-bottom: 10px;
}

.stat-card p {
    font-size: 2em;
    font-weight: bold;
    color: #334155;
}
/* ==========================================================================
   CORREÇÃO RESPONSIVA PARA O DASHBOARD (MOBILE)
   ========================================================================== */

@media (max-width: 768px) {

    /* 1. Força os cards de estatísticas a ficarem em uma única coluna */
    .stats-grid {
        grid-template-columns: 1fr;
        gap: 15px; /* Reduz o espaçamento entre os cards empilhados */
    }

    /* 2. Opcional, mas recomendado: Reduz o padding vertical excessivo nos cards */
    .stat-card {
        padding-top: 25px;
        padding-bottom: 25px;
    }

    /* 3. Garante que os contadores no card de progresso se distribuam bem */
    .progress-counts-container {
        justify-content: space-around; /* Centraliza e distribui os contadores */
    }
}

/* Ajuste específico para telas ainda menores, como a do seu print */
@media (max-width: 480px) {
    .stats-grid {
        /* Garante uma coluna mesmo nas telas mais estreitas */
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   CORREÇÃO PARA TRUNCAR DESCRIÇÃO DE CARD NO MOBILE
   ========================================================================== */
@media (max-width: 768px) {

    /* Esta regra vai se aplicar a AMBAS as classes de descrição em telas menores */
    .project-card .project-description,
    .timeline-project .project-description {
        
        /* Usaremos a técnica de limitar por linhas, que é mais robusta */
        overflow: hidden !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 3 !important; /* Limita a 3 linhas no mobile */
        -webkit-box-orient: vertical !important;

        /* Força a anulação de propriedades conflitantes */
        white-space: normal !important; 
        height: auto !important; /* Permite que a altura se ajuste a 3 linhas */
    }
}
/* ============================================= */
/* --- ESTILOS PARA DISPOSITIVOS MÓVEIS --- */
/* ============================================= */
@media (max-width: 768px) {

    /* --- Ajustes Gerais de Cabeçalho --- */
    .section-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }

    .project-actions {
        width: 100%;
        justify-content: space-between;
    }

    .view-toggle {
        gap: 5px;
    }

    /* --- Barra de Filtros --- */
    .filter-bar {
        flex-direction: column;
        gap: 10px;
    }

    .filter-bar .search-box,
    .filter-bar .form-group {
        width: 100%;
    }

    /* --- Visão de Lista (Tabela Responsiva) --- */
    .project-table thead {
        /* Esconde o cabeçalho original da tabela */
        display: none;
    }

    .project-table tr {
        /* Transforma cada linha em um bloco tipo "card" */
        display: block;
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        margin-bottom: 15px;
        padding: 10px;
    }

    .project-table td {
        /* Ajusta as células para se comportarem como linhas */
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 8px 5px;
        text-align: right; /* Alinha o valor à direita */
        border-bottom: 1px dashed #f1f5f9;
    }
    
    .project-table td:last-child {
        border-bottom: none;
    }

    /* Adiciona os rótulos antes de cada célula de dado */
    .project-table td::before {
        content: attr(data-label); /* Usa o atributo data-label se existir */
        font-weight: bold;
        text-align: left; /* Alinha o rótulo à esquerda */
        margin-right: 10px;
        color: #334155;
    }

    /* Definindo os rótulos para cada coluna via CSS */
    .project-table td:nth-of-type(1)::before { content: "Status:"; }
    .project-table td:nth-of-type(2)::before { content: "Tarefa:"; }
    .project-table td:nth-of-type(3)::before { content: "Projeto:"; }
    .project-table td:nth-of-type(4)::before { content: "Prazo:"; }
    .project-table td:nth-of-type(5)::before { content: "Entradas (R$):"; }
    .project-table td:nth-of-type(6)::before { content: "Saídas (R$):"; }
    .project-table td:nth-of-type(7)::before { content: "Prioridade:"; }
    .project-table td:nth-of-type(8)::before { content: "Ações:"; }
    
    /* Centraliza o conteúdo de células específicas se necessário */
    .project-table td:nth-of-type(1),
    .project-table td:nth-of-type(7),
    .project-table td:nth-of-type(8) {
        justify-content: flex-end; /* Força o conteúdo (botões) para a direita */
    }
    .project-table td:nth-of-type(8)::before {
        /* Faz o rótulo "Ações" ocupar o espaço para alinhar os botões */
        flex-grow: 1; 
    }


    /* --- Visão de Cards --- */
    .projects-grid {
        /* Força os cards a ficarem em uma única coluna */
        grid-template-columns: 1fr;
    }

    /* --- Visão Kanban (Timeline) --- */
    .timeline-content {
        /* Habilita a rolagem horizontal para as colunas */
        display: flex;
        overflow-x: auto;
        padding-bottom: 15px; /* Espaço para a barra de rolagem não cobrir o conteúdo */
    }

    .timeline-phase-column {
        /* Define uma largura mínima para as colunas não ficarem espremidas */
        min-width: 280px;
        flex-shrink: 0; /* Impede que as colunas encolham */
    }

    .timeline-header {
        display: none; /* Esconde o cabeçalho fixo; a rolagem já informa o contexto */
    }
}
/* Adicionar ao final do arquivo styles (1).css */

/* ============================================= */
/* --- ESTILOS PARA MODO APRESENTAÇÃO --- */
/* ============================================= */

/* Container do título e botão de apresentação */
.section-title-container {
    display: flex;
    align-items: center;
    gap: 15px;
}

/* --- INÍCIO DA CORREÇÃO --- */
/* Garante que o H2 não tenha margens que quebrem o layout flex */
.section-title-container h2 {
    margin: 0;
}
/* --- FIM DA CORREÇÃO --- */

.btn-icon {
    background: none;
    border: 1px solid var(--border-color);
    color: var(--text-color);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.btn-icon:hover {
    background-color: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
}


/* Overlay principal que cobre a tela inteira */
.presentation-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #f8fafc; /* Fundo claro */
    z-index: 2000;
    display: flex;
    flex-direction: column;
    
    /* Lógica para esconder/mostrar com transição */
    opacity: 0;
    visibility: hidden;
    transform: scale(1.05);
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
}

.presentation-overlay.visible {
    opacity: 1;
    visibility: visible;
    transform: scale(1);
}

/* Cabeçalho do modo apresentação */
.presentation-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 30px;
    border-bottom: 1px solid var(--border-color);
    flex-shrink: 0;
}

.presentation-header h3 {
    font-size: 1.5rem;
    color: var(--text-color);
    margin: 0;
}

.close-presentation-btn {
    font-size: 2rem;
    font-weight: 300;
    color: var(--text-color);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0 10px;
    line-height: 1;
}

/* Conteúdo principal com o slider e a navegação */
.presentation-content {
    flex-grow: 1;
    display: flex;
    align-items: center;
    overflow: hidden;
    position: relative;
}

.presentation-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    background-color: rgba(255, 255, 255, 0.8);
    border: 1px solid var(--border-color);
    border-radius: 50%;
    width: 50px;
    height: 50px;
    font-size: 2rem;
    cursor: pointer;
    transition: all 0.2s ease;
}
.presentation-nav:hover:not(:disabled) {
    background-color: var(--primary-color);
    color: white;
}
.presentation-nav:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.presentation-nav.prev { left: 20px; }
.presentation-nav.next { right: 20px; }

/* Container do slider */
.presentation-slider-container {
    width: 100%;
    height: 100%;
    display: flex;
    overflow-x: auto;
    /* Efeito de "slide" ao rolar */
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch; /* Melhora scroll em iOS */
}

/* Cada "página" ou "slide" da apresentação */
.presentation-slide {
    width: 100%;
    height: 100%;
    flex-shrink: 0;
    scroll-snap-align: start;
    padding: 20px 80px; /* Espaço para não colar nos botões de navegação */
    display: flex;
    flex-direction: column;
}
.slide-header {
    text-align: center;
    padding-bottom: 15px;
    margin-bottom: 20px;
    border-bottom: 2px solid var(--border-color);
}
.slide-header h2 {
    font-size: 1.8rem;
    font-weight: 400;
}
.slide-content {
    flex-grow: 1;
    overflow-y: auto;
    padding: 10px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 20px;
    align-content: start; /* Alinha os cards ao topo */
}
.no-tasks-slide {
    grid-column: 1 / -1; /* Ocupa todas as colunas */
    text-align: center;
    font-size: 1.2rem;
    color: #94a3b8;
    margin-top: 50px;
}

/* Card de tarefa estilizado para a apresentação */
.presentation-task-card {
    background: var(--card-bg);
    border-radius: 10px;
    padding: 20px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-left: 5px solid; /* Borda colorida de prioridade */
}

/* Cores da borda de prioridade */
.presentation-task-card.priority-low { border-left-color: #64748b; }
.presentation-task-card.priority-medium { border-left-color: var(--warning-color); }
.presentation-task-card.priority-high { border-left-color: var(--danger-color); }

.presentation-task-header {
    display: flex;
    justify-content: space-between;
    font-size: 0.85rem;
    color: #64748b;
}

.presentation-task-card h4 {
    font-size: 1.2rem;
    font-weight: 600;
    margin: 0;
}
.presentation-task-card p {
    font-size: 0.95rem;
    color: #475569;
    line-height: 1.5;
    margin: 0;
    flex-grow: 1;
}

.presentation-task-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid #f1f5f9;
    font-size: 0.9rem;
}
.task-finance {
    display: flex;
    gap: 15px;
}
.task-finance .inflow { color: var(--success-color); }
.task-finance .outflow { color: var(--danger-color); }

/* Rodapé com os indicadores de slide */
.presentation-footer {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    padding: 15px;
    flex-shrink: 0;
}
.footer-indicator {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #cbd5e1;
    transition: background-color 0.3s ease, transform 0.3s ease;
}
.footer-indicator.active {
    background-color: var(--primary-color);
    transform: scale(1.2);
}

/* Responsividade para o Modo Apresentação */
@media (max-width: 768px) {
    .presentation-slide {
        padding: 15px;
    }
    .presentation-nav {
        display: none; /* Em telas de toque, a rolagem é mais natural */
    }
    .slide-content {
        grid-template-columns: 1fr; /* Uma coluna no mobile */
    }
}
/* --- ESTILOS PARA SEÇÃO DE KPIs NO MODO APRESENTAÇÃO --- */

.presentation-kpi {
    display: flex;
    justify-content: space-around;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    padding: 15px 30px;
    background-color: #ffffff;
    border-bottom: 1px solid var(--border-color);
    flex-shrink: 0;
}

.kpi-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    min-width: 120px;
}

.kpi-item.progress-kpi {
    flex-grow: 1;
    min-width: 250px;
    align-items: stretch; 
    text-align: left;
}

/* NOVO: Grupo para alinhar a etiqueta e o valor do progresso */
.kpi-label-group {
    display: flex;
    justify-content: flex-start; /* ALTERADO: Alinha os itens no início */
    align-items: baseline;
    gap: 8px; /* ADICIONADO: Cria um pequeno espaço entre o texto e o número */
    width: 100%;
    margin-bottom: 8px;
}

.kpi-label {
    font-size: 0.8rem;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 500;
}

.kpi-value {
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--text-color);
    line-height: 1;
}

/* Valor da porcentagem com estilo próprio e mais proeminente */
.progress-kpi .kpi-value {
    font-size: 1.2rem;
    font-weight: bold;
}

.presentation-kpi .progress-bar-container {
    width: 100%;
    height: 8px;
    background-color: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
}

.presentation-kpi .progress-bar {
    height: 100%;
    width: 0%;
    background-color: var(--success-color);
    border-radius: 4px;
    transition: width 0.5s ease-in-out;
}
/* --- ESTILOS PARA O CABEÇALHO DA APRESENTAÇÃO COM NOME E DESCRIÇÃO DO PROJETO --- */

.presentation-title-group {
    display: flex;
    align-items: baseline; /* Alinha pela base do texto, fica mais harmonioso */
    gap: 15px;
    flex-grow: 1;
    min-width: 0; /* Ajuda o flexbox a truncar o texto corretamente */
}

.presentation-title-group h3 {
    margin: 0;
    font-size: 1.5rem;
    color: var(--text-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.presentation-title-group p {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 400;
    color: #64748b; /* Cor de texto secundária */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 500px; /* Limita a largura máxima da descrição */
}

/* Garante que o cabeçalho se ajuste bem em telas menores */
@media (max-width: 768px) {
    .presentation-title-group {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }
    .presentation-title-group p {
        max-width: 100%;
    }
}
/* --- ESTILOS PARA NAVEGAÇÃO POR ARRASTAR (MOUSE DRAG) --- */

.presentation-slider-container {
    cursor: grab; /* Mostra a "mãozinha" para indicar que é agarrável */
    user-select: none; /* Impede a seleção de texto durante o arraste */
}

.presentation-slider-container.grabbing {
    cursor: grabbing; /* Mostra a "mãozinha" fechada durante o arraste */
    scroll-snap-type: none; /* Desativa o "snap" temporariamente para um arraste mais livre */
}
.file-drop-area {
    border: 2px dashed #ccc;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.file-drop-area:hover,
.file-drop-area.highlight {
    background-color: #f0f8ff;
    border-color: #007bff;
}

.file-icon {
    font-size: 2rem;
    color: #007bff;
    margin-bottom: 5px;
}

.file-message {
    display: block;
    color: #666;
}

.attachments-preview {
    margin-top: 15px;
}

.attachment-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 5px;
    padding: 8px 12px;
    margin-bottom: 8px;
}

.attachment-item a {
    text-decoration: none;
    color: #007bff;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: calc(100% - 30px);
}

.attachment-item a:hover {
    text-decoration: underline;
}

.remove-attachment-btn {
    background: none;
    border: none;
    color: #dc3545;
    font-size: 1.2rem;
    cursor: pointer;
    padding: 0;
    margin-left: 10px;
}
/* Estilos para as Notificações (Toast) */
.toast-notification {
    position: fixed;
    bottom: 20px;
    right: 20px;
    padding: 15px 20px;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    color: #fff;
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 10000;
    transform: translateY(120%);
    opacity: 0;
    transition: transform 0.4s ease-out, opacity 0.4s ease-out;
}

.toast-notification.show {
    transform: translateY(0);
    opacity: 1;
}

/* Cor para sucesso */
.toast-notification.success {
    background-color: #28a745; /* Verde Sucesso */
}

/* Cor para erro */
.toast-notification.error {
    background-color: #dc3545; /* Vermelho Erro */
}
/* Estilos para a lista de anexos no modal */

.attachment-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 6px;
    padding: 8px 12px;
    margin-bottom: 8px;
    gap: 10px;
}

.attachment-info {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #495057;
    /* Evita que o nome do arquivo quebre o layout */
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.attachment-info span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.attachment-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0; /* Impede que os botões encolham */
}

.btn-attachment-action {
    background: none;
    border: none;
    cursor: pointer;
    color: #6c757d;
    font-size: 1rem;
    padding: 5px;
    border-radius: 4px;
    line-height: 1;
    transition: all 0.2s ease;
}

.btn-attachment-action:hover {
    color: var(--primary-color);
    background-color: #e9ecef;
}

.btn-remove-attachment:hover {
    color: var(--danger-color);
}
