/* Visual refinement layer for Banco de Projetos.
   Scoped to .project-bank so no other module is affected. */

.project-bank {
  --pb-bg: #f6f8fb;
  --pb-surface: #ffffff;
  --pb-surface-soft: #f8fafc;
  --pb-text: #172033;
  --pb-muted: #667085;
  --pb-border: #e5e9f0;
  --pb-primary: #6f5be7;
  --pb-primary-dark: #5946d6;
  --pb-primary-soft: #f1efff;
  --pb-success: #12a66a;
  --pb-danger: #d64562;
  --pb-shadow-sm: 0 4px 14px rgba(16, 24, 40, .05);
  --pb-shadow-md: 0 12px 34px rgba(16, 24, 40, .08);
  --pb-shadow-lg: 0 22px 55px rgba(16, 24, 40, .11);
  background:
    radial-gradient(circle at 0 0, rgba(111, 91, 231, .055), transparent 28rem),
    var(--pb-bg);
  color: var(--pb-text);
  min-height: 100%;
  padding: 1.35rem clamp(.85rem, 2vw, 1.75rem) 2rem;
}

.project-bank__header {
  align-items: center;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(248,250,255,.98));
  border: 1px solid rgba(111, 91, 231, .13);
  border-radius: 1.25rem;
  box-shadow: var(--pb-shadow-md);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: .9rem;
  padding: 1.05rem 1.15rem;
}

.project-bank__title h1 {
  color: #111827;
  font-size: clamp(1.55rem, 2.6vw, 2.15rem);
  font-weight: 850;
  letter-spacing: -.04em;
}

.project-bank__title h1 svg {
  background: linear-gradient(135deg, var(--pb-primary), #4f8df7);
  border-radius: .8rem;
  box-shadow: 0 8px 20px rgba(111, 91, 231, .22);
  color: #fff;
  filter: none;
  font-size: 1.05rem;
  padding: .55rem;
  box-sizing: content-box;
}

.project-bank button,
.project-bank__upload-button,
.project-bank__action-link {
  border-radius: .75rem;
  min-height: 2.55rem;
  transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease;
}

.project-bank button:hover:not(:disabled),
.project-bank__upload-button:hover,
.project-bank__action-link:hover {
  box-shadow: 0 8px 18px rgba(16, 24, 40, .10);
  transform: translateY(-1px);
}

.project-bank button:focus-visible,
.project-bank input:focus-visible,
.project-bank select:focus-visible,
.project-bank textarea:focus-visible,
.project-bank__upload-button:focus-within {
  outline: 3px solid rgba(111, 91, 231, .18);
  outline-offset: 2px;
}

.project-bank button.primary {
  background: linear-gradient(135deg, var(--pb-primary), var(--pb-primary-dark));
  box-shadow: 0 10px 22px rgba(111, 91, 231, .22);
}

.project-bank button.secondary {
  background: var(--pb-primary-soft);
  color: var(--pb-primary-dark);
}

.project-bank__tabs {
  background: rgba(255, 255, 255, .84);
  border: 1px solid var(--pb-border);
  border-radius: 1rem;
  box-shadow: var(--pb-shadow-sm);
  gap: .35rem;
  margin-bottom: 1rem;
  padding: .4rem;
  position: sticky;
  top: .5rem;
  z-index: 20;
  backdrop-filter: blur(12px);
}

.project-bank__tabs button {
  background: transparent;
  border: 1px solid transparent;
  color: var(--pb-muted);
  padding: .65rem .9rem;
}

.project-bank__tabs button:hover:not(.active) {
  background: #f7f8fb;
  border-color: var(--pb-border);
  color: var(--pb-text);
}

.project-bank__tabs button.active {
  background: linear-gradient(135deg, #1f2937, #111827);
  box-shadow: 0 8px 18px rgba(17, 24, 39, .15);
  color: #fff;
}

.project-bank input,
.project-bank select,
.project-bank textarea {
  border-color: #d8dee8;
  border-radius: .75rem;
  box-shadow: inset 0 1px 2px rgba(16, 24, 40, .02);
  color: var(--pb-text);
  min-height: 2.55rem;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.project-bank input:hover,
.project-bank select:hover,
.project-bank textarea:hover {
  border-color: #c6ceda;
}

.project-bank input:focus,
.project-bank select:focus,
.project-bank textarea:focus {
  border-color: rgba(111, 91, 231, .72);
  box-shadow: 0 0 0 4px rgba(111, 91, 231, .10);
  outline: none;
}

.project-bank label {
  color: #596579;
}

.project-bank__filters,
.project-bank__dashboard-filters {
  background: rgba(255,255,255,.92);
  border: 1px solid var(--pb-border);
  border-radius: 1.1rem;
  box-shadow: var(--pb-shadow-sm);
  gap: .8rem;
  padding: 1rem;
}

.project-bank__dashboard-toolbar {
  align-items: center;
  display: flex;
  justify-content: flex-end;
}

.project-bank__card,
.project-bank__table-wrap,
.project-bank__detail-tabs,
.project-bank__detail-section,
.project-bank__subsection {
  border-color: var(--pb-border);
}

.project-bank__card {
  border-radius: 1.15rem;
  box-shadow: var(--pb-shadow-sm);
}

.project-bank__metric-card {
  border-radius: 1.15rem;
  box-shadow: var(--pb-shadow-sm);
  min-height: 7.25rem;
  position: relative;
  isolation: isolate;
}

.project-bank__metric-card::after {
  background: radial-gradient(circle, rgba(255,255,255,.62), transparent 65%);
  content: '';
  height: 7rem;
  pointer-events: none;
  position: absolute;
  right: -2rem;
  top: -2rem;
  width: 7rem;
  z-index: -1;
}

.project-bank__metric-icon {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.55);
}

.project-bank__chart-card {
  min-height: 20rem;
  padding: 1.15rem;
}

.project-bank__table-wrap {
  box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
}

.project-bank th {
  background: #f8fafc;
  color: #667085;
  font-size: .73rem;
  letter-spacing: .045em;
  position: sticky;
  top: 0;
  z-index: 2;
}

.project-bank tbody tr {
  transition: background-color .14s ease;
}

.project-bank tbody tr:hover {
  background: #fbfcfe;
}

.project-bank__kanban {
  background: transparent;
  border-radius: 0;
  gap: .9rem;
  padding: .15rem .05rem .7rem;
  scroll-snap-type: x proximity;
}

.project-bank__kanban::-webkit-scrollbar {
  height: 10px;
}

.project-bank__kanban::-webkit-scrollbar-thumb {
  background: #cdd5df;
  border: 2px solid var(--pb-bg);
  border-radius: 999px;
}

.project-bank__kanban-column {
  border: 1px solid rgba(148,163,184,.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
  min-height: 19rem;
  padding: .75rem;
  scroll-snap-align: start;
}

.project-bank__kanban-column header {
  border-bottom: 1px solid rgba(148,163,184,.22);
  margin: -.05rem -.05rem .15rem;
  padding: .35rem .1rem .7rem;
}

.project-bank__kanban-column header h3 {
  color: #29364a;
  font-size: .9rem;
  font-weight: 850;
  letter-spacing: -.01em;
}

.project-bank__kanban-column header span {
  background: rgba(255,255,255,.82);
  box-shadow: 0 3px 8px rgba(15,23,42,.06);
  color: #475569;
  font-size: .76rem;
  font-weight: 850;
}

.project-bank__project-card {
  border: 1px solid rgba(148,163,184,.18);
  border-left-width: 4px;
  border-radius: .9rem;
  box-shadow: 0 8px 18px rgba(15, 43, 82, .075);
  gap: .8rem;
  padding: .9rem;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.project-bank__project-card:hover {
  border-color: rgba(111,91,231,.22);
  box-shadow: 0 14px 30px rgba(15, 43, 82, .12);
  transform: translateY(-2px);
}

.project-bank__project-card strong {
  color: #172033;
  font-size: .96rem;
  line-height: 1.3;
}

.project-bank__project-card small {
  color: #748198;
  display: block;
  margin-top: .18rem;
}

.project-bank__project-card select {
  background-color: #f8fafc;
  font-size: .84rem;
  font-weight: 700;
}

.project-bank__project-card .project-bank__actions {
  border-top: 1px solid #edf0f4;
  gap: .4rem;
  padding-top: .65rem;
}

.project-bank__project-card .project-bank__actions button {
  flex: 1 1 auto;
  justify-content: center;
  min-height: 2.25rem;
  padding: .5rem .6rem;
}

.project-bank__project-progress > span {
  color: #5c50c7;
  font-size: .78rem;
  font-weight: 800;
}

.project-bank__progress {
  background: #e8edf3;
  height: .48rem;
}

.project-bank__progress span {
  background: linear-gradient(90deg, #23b878, #6f5be7);
  border-radius: inherit;
}

.project-bank__empty-column {
  align-items: center;
  border: 1px dashed rgba(100,116,139,.28);
  border-radius: .8rem;
  color: #8491a4;
  display: flex;
  font-size: .82rem;
  justify-content: center;
  min-height: 5.5rem;
  padding: .8rem;
  text-align: center;
}

.project-bank__alert {
  border: 1px solid rgba(18,166,106,.14);
  box-shadow: var(--pb-shadow-sm);
}

.project-bank__alert.error {
  border-color: rgba(214,69,98,.14);
}

.project-bank__modal-backdrop {
  backdrop-filter: blur(5px);
}

.project-bank__modal {
  border: 1px solid rgba(255,255,255,.7);
  box-shadow: var(--pb-shadow-lg);
  padding: 1.2rem;
}

.project-bank__form-hero,
.project-bank__project-hero {
  box-shadow: var(--pb-shadow-md);
}

.project-bank__detail-tabs {
  box-shadow: var(--pb-shadow-sm);
  padding: .45rem;
}

.project-bank__detail-tabs button {
  background: transparent;
}

.project-bank__detail-tabs button.active {
  background: linear-gradient(135deg, var(--pb-primary), var(--pb-primary-dark));
  box-shadow: 0 8px 16px rgba(111,91,231,.18);
}

@media (max-width: 1024px) {
  .project-bank__tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  .project-bank__tabs button {
    flex: 0 0 auto;
  }
}

@media (max-width: 820px) {
  .project-bank {
    padding: .75rem .65rem 1.5rem;
  }

  .project-bank__header {
    align-items: stretch;
    display: grid;
    padding: .9rem;
  }

  .project-bank__header .project-bank__actions,
  .project-bank__header .project-bank__actions button {
    width: 100%;
  }

  .project-bank__header .project-bank__actions button {
    justify-content: center;
  }

  .project-bank__tabs {
    top: .25rem;
  }

  .project-bank__filters,
  .project-bank__dashboard-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .project-bank__filters,
  .project-bank__dashboard-filters {
    grid-template-columns: 1fr;
  }

  .project-bank__title h1 {
    font-size: 1.45rem;
  }

  .project-bank__kanban {
    grid-template-columns: repeat(7, minmax(82vw, 1fr));
  }

  .project-bank__project-card .project-bank__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .project-bank *,
  .project-bank *::before,
  .project-bank *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
