@import url("./fp3d-base.css");

.fp3d-button {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  gap: var(--fp3d-space-2);
  padding: 0.75rem 1.15rem;
  border: 1px solid transparent;
  border-radius: var(--fp3d-radius-sm);
  font-weight: 750;
  line-height: 1;
  cursor: pointer;
  transition: transform var(--fp3d-duration-fast) var(--fp3d-ease), background var(--fp3d-duration-base), border-color var(--fp3d-duration-base);
}
.fp3d-button:hover { transform: translateY(-1px); }
.fp3d-button:active { transform: translateY(0); }
.fp3d-button:disabled { opacity: 0.45; cursor: not-allowed; transform: none; }
.fp3d-button--primary { color: var(--fp3d-action-ink); background: var(--fp3d-action); box-shadow: 0 8px 28px rgba(212, 243, 78, 0.18); }
.fp3d-button--primary:hover { background: var(--fp3d-action-hover); }
.fp3d-button--secondary { color: var(--fp3d-text-primary); border-color: var(--fp3d-border-default); background: var(--fp3d-bg-raised); }
.fp3d-button--ghost { color: var(--fp3d-text-secondary); border-color: var(--fp3d-border-default); background: transparent; }
.fp3d-button--danger { color: #fff; background: #a62f2f; }
.fp3d-button--sm { min-height: 2.25rem; padding: 0.55rem 0.85rem; font-size: var(--fp3d-text-sm); }

.fp3d-card { border: 1px solid var(--fp3d-border-default); border-radius: var(--fp3d-radius-md); background: var(--fp3d-bg-surface); box-shadow: var(--fp3d-shadow-sm); }
.fp3d-card__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--fp3d-space-4); padding: var(--fp3d-space-5); border-bottom: 1px solid var(--fp3d-border-subtle); }
.fp3d-card__body { padding: var(--fp3d-space-5); }
.fp3d-card__footer { display: flex; align-items: center; justify-content: flex-end; gap: var(--fp3d-space-3); padding: var(--fp3d-space-4) var(--fp3d-space-5); border-top: 1px solid var(--fp3d-border-subtle); }
.fp3d-card--interactive { transition: border-color var(--fp3d-duration-base), transform var(--fp3d-duration-base) var(--fp3d-ease); }
.fp3d-card--interactive:hover { border-color: color-mix(in srgb, var(--fp3d-action) 50%, var(--fp3d-border-default)); transform: translateY(-2px); }

.fp3d-label { color: var(--fp3d-text-muted); font: 700 var(--fp3d-text-xs)/1.2 var(--fp3d-font-data); letter-spacing: 0.08em; text-transform: uppercase; }
.fp3d-heading-sm { font-size: 1.1rem; letter-spacing: -0.025em; }
.fp3d-value { font: 800 clamp(1.75rem, 5vw, 3rem)/1 var(--fp3d-font-display); letter-spacing: -0.055em; }

.fp3d-badge { display: inline-flex; min-height: 1.7rem; align-items: center; gap: 0.35rem; padding: 0.28rem 0.55rem; border: 1px solid var(--fp3d-border-default); border-radius: var(--fp3d-radius-pill); background: var(--fp3d-bg-raised); font-size: var(--fp3d-text-xs); font-weight: 750; line-height: 1; }
.fp3d-badge--profit { color: var(--fp3d-action-ink); border-color: transparent; background: var(--fp3d-action); }
.fp3d-badge--warning { color: #2a2108; border-color: transparent; background: var(--fp3d-warning); }
.fp3d-badge--danger { color: #fff; border-color: transparent; background: #a62f2f; }

.fp3d-field { display: flex; flex-direction: column; gap: var(--fp3d-space-2); }
.fp3d-field__label { color: var(--fp3d-text-primary); font-size: var(--fp3d-text-sm); font-weight: 700; }
.fp3d-field__hint { color: var(--fp3d-text-muted); font-size: var(--fp3d-text-xs); }
.fp3d-input,
.fp3d-select {
  width: 100%;
  min-height: 2.9rem;
  padding: 0.7rem 0.85rem;
  color: var(--fp3d-text-primary);
  border: 1px solid var(--fp3d-border-default);
  border-radius: var(--fp3d-radius-sm);
  background: var(--fp3d-bg-raised);
}
.fp3d-input:hover,
.fp3d-select:hover { border-color: var(--fp3d-border-strong); }
.fp3d-input[aria-invalid="true"] { border-color: var(--fp3d-danger); }

.fp3d-check { display: flex; align-items: center; gap: var(--fp3d-space-2); color: var(--fp3d-text-secondary); font-size: var(--fp3d-text-sm); }
.fp3d-check input { width: 1.1rem; height: 1.1rem; accent-color: var(--fp3d-action); }

.fp3d-alert { display: flex; align-items: flex-start; gap: var(--fp3d-space-3); padding: var(--fp3d-space-4); border: 1px solid var(--fp3d-border-default); border-left: 3px solid var(--fp3d-action); border-radius: var(--fp3d-radius-sm); background: var(--fp3d-bg-surface); }
.fp3d-alert__icon { display: grid; width: 1.7rem; height: 1.7rem; flex: none; place-items: center; border-radius: var(--fp3d-radius-xs); color: var(--fp3d-action-ink); background: var(--fp3d-action); font-weight: 800; }
.fp3d-alert__title { font-weight: 750; }
.fp3d-alert__text { margin-top: 0.15rem; color: var(--fp3d-text-muted); font-size: var(--fp3d-text-sm); }
.fp3d-alert--danger { border-left-color: var(--fp3d-danger); }
.fp3d-alert--danger .fp3d-alert__icon { color: #fff; background: #a62f2f; }

.fp3d-progress__meta { display: flex; justify-content: space-between; gap: var(--fp3d-space-3); margin-bottom: var(--fp3d-space-2); color: var(--fp3d-text-secondary); font-size: var(--fp3d-text-sm); }
.fp3d-progress__track { height: 0.6rem; overflow: hidden; border-radius: var(--fp3d-radius-pill); background: var(--fp3d-bg-raised); }
.fp3d-progress__bar { width: var(--fp3d-progress, 0%); height: 100%; border-radius: inherit; background: var(--fp3d-action); box-shadow: var(--fp3d-glow); transition: width var(--fp3d-duration-base) var(--fp3d-ease); }

.fp3d-table-wrap { overflow-x: auto; border: 1px solid var(--fp3d-border-default); border-radius: var(--fp3d-radius-md); }
.fp3d-table { width: 100%; border-collapse: collapse; min-width: 38rem; background: var(--fp3d-bg-surface); }
.fp3d-table th,
.fp3d-table td { padding: 0.9rem 1rem; text-align: left; border-bottom: 1px solid var(--fp3d-border-subtle); }
.fp3d-table th { color: var(--fp3d-text-muted); font: 700 var(--fp3d-text-xs)/1.2 var(--fp3d-font-data); letter-spacing: 0.08em; text-transform: uppercase; }
.fp3d-table td[data-number] { text-align: right; font-family: var(--fp3d-font-data); font-variant-numeric: tabular-nums; }
.fp3d-table tbody tr:last-child td { border-bottom: 0; }

.fp3d-cost-sheet { overflow: hidden; border: 1px solid var(--fp3d-border-default); border-radius: var(--fp3d-radius-md); background: var(--fp3d-bg-surface); box-shadow: var(--fp3d-shadow-lg); }
.fp3d-cost-sheet__top { display: flex; align-items: center; justify-content: space-between; gap: var(--fp3d-space-3); padding: var(--fp3d-space-4) var(--fp3d-space-5); border-bottom: 1px solid var(--fp3d-border-default); }
.fp3d-cost-sheet__rows { padding: var(--fp3d-space-2) var(--fp3d-space-5); }
.fp3d-cost-row { display: grid; grid-template-columns: 1fr auto; gap: var(--fp3d-space-4); padding: 0.65rem 0; border-bottom: 1px dashed var(--fp3d-border-subtle); color: var(--fp3d-text-muted); font-size: var(--fp3d-text-sm); }
.fp3d-cost-row strong { color: var(--fp3d-text-primary); font-family: var(--fp3d-font-data); }
.fp3d-cost-sheet__result { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: var(--fp3d-space-4); padding: var(--fp3d-space-5); border-top: 1px solid var(--fp3d-border-default); background: color-mix(in srgb, var(--fp3d-action) 9%, transparent); }
.fp3d-cost-sheet__result strong { color: var(--fp3d-action); font: 800 clamp(1.9rem, 5vw, 3rem)/1 var(--fp3d-font-display); letter-spacing: -0.055em; }

