
/* ===== TaskFlow Pro Skin — Modern & Elegant ===== */
:root {
  --radius: 16px;
  --radius-xl: 22px;
  --glass: rgba(255,255,255,0.6);
  --glass-dark: rgba(17,24,39,0.6);
  --backdrop: saturate(140%) blur(14px);
  --ring: 0 0 0 2px rgba(99,102,241,0.18);
}

/* Smooth fonts */
html { scroll-behavior: smooth; }
body { font-feature-settings: "liga" 1, "kern" 1; letter-spacing: .01em; }

/* Header */
.header {
  background: linear-gradient(135deg, rgba(99,102,241,.12), rgba(168,85,247,.10));
  border-bottom: 1px solid var(--border-light);
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: var(--backdrop); -webkit-backdrop-filter: var(--backdrop);
}

/* Cards / containers */
.summary-card, .actions-section .filters, .kanban-column, .modal-content {
  border-radius: var(--radius-xl) !important;
  box-shadow: 0 20px 60px -20px rgba(2,6,23,.25) !important;
  background: var(--bg-card);
}

/* Hover lift */
.summary-card:hover, .kanban-column:hover, .task-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 30px 80px -32px rgba(2,6,23,.35);
  transition: transform .2s ease, box-shadow .2s ease;
}

/* Buttons — pill */
.btn, .btn-primary, .btn-outline, .btn-danger, .btn-success, .btn-warning, .modal button[type="submit"] {
  border-radius: 999px !important;
  padding: .7rem 1rem !important;
  box-shadow: 0 6px 20px -10px rgba(99,102,241,.45);
  transition: transform .12s ease, box-shadow .12s ease, background-color .2s ease;
  font-weight: 600;
}
.btn:hover, .btn-primary:hover, .btn-outline:hover, .btn-danger:hover, .btn-success:hover, .btn-warning:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 26px -12px rgba(99,102,241,.55);
}

/* Inputs */
input[type="text"], input[type="date"], input[type="email"], input[type="tel"], select, textarea {
  border-radius: 14px !important;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  transition: box-shadow .15s ease, border-color .15s ease, background-color .2s ease;
  box-sizing: border-box;
}
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--primary-color); box-shadow: var(--ring); background: var(--bg-primary);
}

/* Column headers */
.column-header h3 {
  display: flex; align-items: center; gap: .5rem; padding: .5rem .75rem;
  border-radius: 999px; background: linear-gradient(120deg, rgba(99,102,241,.12), rgba(59,130,246,.10));
  border: 1px solid var(--border-light);
}

/* Task card */
.task-card { border-radius: 16px !important; border: 1px solid var(--border-light);
  background: var(--bg-card);
  transition: transform .15s ease, box-shadow .15s ease, background-color .2s ease; }

/* Empty states */
.tasks:empty::after {
  content: "Sem tarefas aqui — arraste ou crie uma nova";
  display: block; padding: 1.25rem; text-align: center; color: var(--text-secondary);
  border: 1px dashed var(--border); border-radius: 16px;
}

/* Footer */
.footer { color: var(--text-secondary); border-top: 1px solid var(--border-light); backdrop-filter: var(--backdrop); -webkit-backdrop-filter: var(--backdrop); }

/* ===== Modal Pro Redesign ===== */
.modal { position: fixed; inset: 0; display: none; align-items: center; justify-content: center;
  background: rgba(2,6,23,.35); backdrop-filter: blur(8px) saturate(120%); -webkit-backdrop-filter: blur(8px) saturate(120%);
  padding: 2rem; transition: background .2s ease; z-index: 1000; }
.modal.show { display: flex; }

.modal .modal-content {
  width: min(920px, 96vw);
  border-radius: 20px; background: var(--bg-card); border: 1px solid var(--border-light);
  box-shadow: 0 40px 120px -32px rgba(2,6,23,.5);
  transform: translateY(16px) scale(.98); opacity: 0;
  transition: transform .25s cubic-bezier(.2,.8,.2,1), opacity .25s ease;
  max-height: 90vh; overflow: auto; box-sizing: border-box;
}
.modal.show .modal-content { transform: translateY(0) scale(1); opacity: 1; }

.modal .modal-header {
  padding: 1rem 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  border-bottom: 1px solid var(--border-light);
  background: linear-gradient(120deg, rgba(99,102,241,.12), rgba(168,85,247,.10));
  border-top-left-radius: 20px; border-top-right-radius: 20px;
}
.modal .modal-header h2 { font-size: clamp(1rem,2vw,1.15rem); margin: 0; color: var(--text-primary); letter-spacing: -0.01em; }
.modal .close-btn { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px;
  border-radius: 999px; border: 1px solid var(--border-light); background: var(--bg-elevated);
  transition: transform .12s ease, background-color .2s ease, box-shadow .2s ease; cursor: pointer; }
.modal .close-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 24px -12px rgba(2,6,23,.35); }
.modal .close-btn i { pointer-events: none; }

/* Only the FORM uses grid, not generic modal bodies */
.modal .modal-form { padding: 1.25rem; display: grid; grid-template-columns: 1fr; gap: 1rem; }
.modal .form-group { display: block; grid-column: 1 / -1; }
.modal .form-group label { display: block; margin-bottom: .35rem; font-size: .95rem; color: var(--text-secondary); }
.modal .form-group input, .modal .form-group select, .modal .form-group textarea { width: 100%; padding: .8rem .9rem; }

/* Footer actions span full width */
.modal .modal-actions, .modal .modal-footer {
  grid-column: 1 / -1;
  padding: 1rem 1.25rem 1.25rem; display: flex; justify-content: flex-end; gap: .75rem;
  border-top: 1px solid var(--border-light);
}

/* Control colors inside modals for readability */
.modal input[type="text"], .modal input[type="email"], .modal input[type="tel"], .modal input[type="date"], .modal select, .modal textarea {
  color: var(--text-primary) !important; background: var(--bg-primary); caret-color: var(--text-primary);
}
.modal input::placeholder, .modal textarea::placeholder { color: var(--text-muted); opacity: .9; }

/* Select arrow */
.modal select {
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);
  background-position: right 1rem top 1.05rem, right .75rem top 1.05rem; background-size: 8px 8px, 8px 8px; background-repeat: no-repeat;
}

/* Size presets */
.modal[data-size="sm"] .modal-content { width: min(520px, 96vw); }
.modal[data-size="md"] .modal-content { width: min(760px, 96vw); }
.modal[data-size="lg"] .modal-content { width: min(1040px, 96vw); }

/* Confirmation modal */
#confirmation-modal .modal-body { padding: 1.25rem; }
#confirmation-modal .modal-actions { position: sticky; bottom: 0;
  background: linear-gradient(180deg, transparent, var(--bg-card) 40%); padding-top: .75rem; }
