:root {
  --pnl-positive: #16a34a;
  --pnl-negative: #dc2626;
}

[data-theme="dark"] {
  --pnl-positive: #4ade80; 
  --pnl-negative: #f87171; 
}

.journal-form {
  margin-top: 16px;
}

.journal-grid,
.filter-grid,
.stats-grid,
.insights-grid {
  display: grid;
  gap: 14px;
}

.journal-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 16px;
}

.journal-grid-full {
  grid-column: 1 / -1;
}

.filter-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 16px;
}

.stats-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 12px;
}

.insights-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 16px;
}

.stat-box,
.insight-box,
.review-box {
  border: 1px solid var(--border-color, rgba(127, 127, 127, 0.2));
  border-radius: 14px;
  padding: 14px;
  background: var(--card-bg, rgba(255,255,255,0.02));
}

.stat-label {
  display: block;
  font-size: 0.9rem;
  opacity: 0.8;
  margin-bottom: 6px;
}

.stat-box strong {
  font-size: 1.4rem;
  line-height: 1.2;
}

.toolbar-wrap {
  flex-wrap: wrap;
}

.table-wrap {
  width: 100%;
  overflow-x: auto;
}

.journal-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 980px;
}

.journal-table th,
.journal-table td {
  text-align: left;
  padding: 12px 10px;
  border-bottom: 1px solid var(--border-color, rgba(127, 127, 127, 0.15));
  vertical-align: top;
}

.journal-table th {
  font-size: 0.92rem;
  opacity: 0.8;
}

.table-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.btn-small {
  padding: 6px 10px;
  font-size: 0.85rem;
}

.empty-state {
  text-align: center;
  opacity: 0.75;
}

.badge {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
}

.badge-good {
  background: rgba(34, 197, 94, 0.12);
}

.badge-bad {
  background: rgba(239, 68, 68, 0.12);
}

.is-positive {
  color: var(--pnl-positive);
  font-weight: 700;
}

.is-negative {
  color: var(--pnl-negative);
  font-weight: 700;
}

.status-error {
  color: var(--pnl-negative);
}

.review-list {
  margin: 0;
  padding-left: 18px;
}

.review-list li + li {
  margin-top: 8px;
}

.textarea {
  width: 100%;
  min-height: 110px;
  resize: vertical;
}

.journal-chips .chip {
  cursor: pointer;
}

/* Tablet / Smaller screens */
@media (max-width: 960px) {
  .filter-grid,
  .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .insights-grid {
    grid-template-columns: 1fr;
  }
}

/* Mobile screens */
@media (max-width: 600px) {
  .journal-grid,
  .filter-grid,
  .stats-grid,
  .insights-grid {
    grid-template-columns: 1fr;
  }
}
