@font-face { font-family: 'HelveticaNeue'; src: url('./fonts/helvetica.ttf') format('truetype'); font-display: swap; }

:root { 
	--accent: #b6ea5f; 
	--rodaje: #ff2a5f;
	
	/* Paleta "Zinc" (SaaS Moderno) */
	--bg: #09090b; 
	--card: #18181b; 
	--card-secondary: #131316;
	--input-bg: #27272a;
	
	--text-main: #f4f4f5; 
	--text-dim: #a1a1aa; 
	
	/* Bordes sutiles y elegantes */
	--border: rgba(255, 255, 255, 0.08);
	--border-strong: rgba(255, 255, 255, 0.15);
	--card-hover: rgba(255, 255, 255, 0.04);
	
	color-scheme: dark;
}

body.theme-light { 
	--accent: #93c936; 
	--rodaje: #e11d48;
	
	--bg: #f4f4f5; 
	--card: #ffffff; 
	--card-secondary: #fafafa;
	--input-bg: #e4e4e7;
	
	--text-main: #18181b; 
	--text-dim: #71717a; 
	
	--border: rgba(0, 0, 0, 0.08);
	--border-strong: rgba(0, 0, 0, 0.15);
	--card-hover: rgba(0, 0, 0, 0.03);
	
	color-scheme: light;
}

body { 
	background-color: var(--bg); 
	color: var(--text-main); 
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 12px; /* FIX: era "font-style: 12px" — valor inválido ignorado por el navegador */
	transition: background-color 0.3s, color 0.3s; 
	-webkit-font-smoothing: antialiased; 
	-moz-osx-font-smoothing: grayscale; 
}

h1, h2, h3, .font-title { 
	font-family: 'HelveticaNeue', sans-serif; 
	font-weight: 900; 
	letter-spacing: -0.02em; 
	font-style: normal !important; 
}
* { font-style: normal !important; }

.card { 
	background: var(--card); 
	border: 1px solid var(--border); 
	border-radius: 16px; 
	padding: 1.5rem; 
	transition: all 0.3s ease; 
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.progress-bar { height: 6px; background: var(--border-strong); border-radius: 10px; overflow: hidden; }
.progress-fill { height: 100%; transition: width 0.8s ease-in-out; }
.day-col { border-right: 1px solid var(--border); min-height: 120px; flex: 1; display: flex; flex-direction: column; }
.day-active { background: rgba(182, 234, 95, 0.05); border-bottom: 3px solid var(--accent); }
.weekend { opacity: 0.4; background: var(--card-hover); }

.custom-select-arrow {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23b6ea5f' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
	background-position: right 0.5rem center;
	background-repeat: no-repeat;
	background-size: 1.5em 1.5em;
}

/* --- DOCK --- */
.btn-dock { 
	width: 48px; 
	height: 48px; 
	border-radius: 9999px;
	display: flex; 
	align-items: center; 
	justify-content: center; 
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); 
}
.btn-active { 
	background-color: var(--accent); 
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); 
	transform: scale(1);
}

.input-dark { background: var(--input-bg); border: 1px solid var(--border); border-radius: 10px; padding: 12px; color: var(--text-main); width: 100%; outline: none; transition: all 0.2s; }
.input-dark:focus { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }

::-webkit-scrollbar { display: none; }

.custom-checkbox { appearance: none; width: 16px; height: 16px; border: 2px solid var(--text-dim); border-radius: 4px; background-color: transparent; cursor: pointer; position: relative; transition: all 0.2s ease-in-out; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.custom-checkbox:hover:not(:disabled) { border-color: var(--accent); }
.custom-checkbox:checked { background-color: var(--accent); border-color: var(--accent); }
.custom-checkbox:checked::after { content: '✓'; color: var(--bg); font-size: 12px; font-family: sans-serif; font-weight: 900; position: absolute; }
.custom-checkbox:disabled { opacity: 0.3; cursor: not-allowed; border-color: var(--border-strong); box-shadow: none; } 

.dropdown-menu { position: absolute; right: 0; top: 100%; margin-top: 8px; background: var(--card); border: 1px solid var(--border); border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.5); z-index: 100; min-width: 140px; overflow: hidden; display: flex; flex-direction: column; animation: fadeInMenu 0.15s ease-out; }
@keyframes fadeInMenu { from { opacity: 0; transform: translateY(-10px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } }
.dropdown-item { padding: 12px 16px; text-align: left; font-size: 13px; font-weight: 600; color: var(--text-dim); transition: all 0.2s; cursor: pointer; border-bottom: 1px solid var(--border); }
.dropdown-item:last-child { border-bottom: none; }
.dropdown-item:hover { background: var(--card-hover); color: var(--text-main); padding-left: 20px; }
.dropdown-item.action-danger:hover { background: rgba(239, 68, 68, 0.1); color: #ef4444; }

.truncate-cell { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.gantt-grid { display: grid; grid-template-columns: 250px repeat(30, minmax(40px, 1fr)); border-bottom: 1px solid var(--border); }
.gantt-cell { border-right: 1px solid var(--border); display: flex; align-items: center; justify-content: center; height: 40px; position: relative; }
.gantt-header-cell { border-right: 1px solid var(--border); padding: 10px 0; text-align: center; font-weight: 900; font-size: 11px; color: var(--text-dim); }

@keyframes slideInRight { from { transform: translateX(120%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
.animate-toast { animation: slideInRight 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards; }