/* OroClub v2 — variantes de color por metal (oro/plata/corporativo)
   y componentes temáticos: price-dash, margin-fine, piece-form-wrap.
   Separado de app.css para mantener la base legible. */

/* ===== PIECE FORM — fondo que cambia según material ===== */
.piece-form-wrap {
  padding: 16px;
  min-height: 100%;
  transition: background 0.2s;
}
.piece-form-wrap.mat-oro { background: var(--gold-bg); }
.piece-form-wrap.mat-plata { background: var(--silver-bg); }
.piece-form-wrap.mat-otro { background: var(--corp-light); }

.piece-form-wrap.mat-oro .form-card { border: 1px solid var(--gold-light); }
.piece-form-wrap.mat-plata .form-card { border: 1px solid var(--silver-light); }
.piece-form-wrap.mat-otro .form-card { border: 1px solid #c8c8f0; }

.piece-form-wrap.mat-oro .form-group input:focus,
.piece-form-wrap.mat-oro .form-group select:focus {
  border-color: var(--gold);
  outline: none;
}
.piece-form-wrap.mat-plata .form-group input:focus,
.piece-form-wrap.mat-plata .form-group select:focus {
  border-color: var(--silver);
  outline: none;
}
.piece-form-wrap.mat-otro .form-group input:focus,
.piece-form-wrap.mat-otro .form-group select:focus {
  border-color: var(--corp-mid);
  outline: none;
}

/* Header del formulario con botón volver */
.pf-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.pf-back {
  /* Fix accesibilidad: 40 → 48 */
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--bg2);
  border: 2px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 20px;
  color: var(--text2);
  flex-shrink: 0;
}
.pf-title { font-size: 18px; font-weight: 800; }
.pf-sub { font-size: 13px; color: var(--text2); }

/* Piece price dashboard */
.price-dash {
  border-radius: var(--radius);
  padding: 20px;
  margin-bottom: 12px;
  border: 2px solid transparent;
}
.price-dash.t-oro {
  background: linear-gradient(135deg, #f7f0da, #ede2c0);
  border-color: var(--gold);
}
.price-dash.t-plata {
  background: linear-gradient(145deg, #f0f0f0, #e4e4e4, #ddd, #eaeaea);
  border-color: #c0c0c0;
}
.price-dash.t-otro {
  background: linear-gradient(135deg, #eae8ff, #d8d4f8);
  border-color: var(--corp-mid);
}

.pd-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.pd-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
}
.t-oro .pd-tag { background: var(--gold); color: #fff; }
.t-plata .pd-tag { background: #b0b0b0; color: #fff; }
.t-otro .pd-tag { background: var(--corp-mid); color: #fff; }
.pd-market {
  font-size: 12px;
  color: var(--text2);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 55%;
  text-align: right;
}
.pd-market span { text-decoration: line-through; }

.pd-big { text-align: center; margin: 14px 0 12px; }
.pd-big-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.t-oro .pd-big-label { color: var(--gold-dark); }
.t-plata .pd-big-label { color: #666; }
.t-otro .pd-big-label { color: var(--corp); }
.pd-big-price {
  font-size: 32px;
  font-weight: 900;
  line-height: 1.1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.t-oro .pd-big-price { color: var(--gold-dark); }
.t-plata .pd-big-price { color: #333; }
.t-otro .pd-big-price { color: var(--corp); }

.pd-stats {
  display: flex;
  gap: 8px;
}
.pd-stat {
  flex: 1;
  min-width: 0;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 10px;
  padding: 10px;
  text-align: center;
}
.pd-stat-label {
  /* Fix: 10 → 12 */
  font-size: 12px;
  font-weight: 700;
  color: var(--text2);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.pd-stat-value {
  font-size: 15px;
  font-weight: 800;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pd-stat-value.profit { color: var(--green); }
.pd-stat-value.loss { color: var(--red); }
.pd-stat-value.neutral { color: var(--text); }
.pd-stat-sub { font-size: 10px; color: var(--text2); margin-top: 1px; }
.pd-empty {
  text-align: center;
  padding: 20px 0;
  color: var(--text2);
  font-size: 14px;
}

/* Margin control (stepper +/- con input central) */
.margin-fine {
  display: flex;
  align-items: center;
  gap: 0;
  height: 56px;
  border: 2px solid var(--line);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--bg);
}
.margin-fine button {
  width: 56px;
  height: 100%;
  border: none;
  background: var(--bg2);
  font-size: 15px;
  font-weight: 700;
  color: var(--text2);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  line-height: 1;
  flex-shrink: 0;
  font-family: inherit;
}
.margin-fine button:active { background: var(--line); }
.margin-fine button .bf-icon { font-size: 20px; }
.margin-fine button .bf-label { font-size: 10px; color: var(--text2); }
.margin-fine-center {
  flex: 1;
  text-align: center;
  position: relative;
  height: 100%;
}
.margin-fine-center input {
  width: 100%;
  height: 100%;
  border: none;
  text-align: center;
  font-size: 28px;
  font-weight: 800;
  background: transparent;
  color: var(--text);
  padding: 0;
}
.margin-fine-center input:focus {
  outline: none;
  background: rgba(255, 255, 255, 0.6);
}
.margin-fine-center .mf-pct {
  position: absolute;
  right: 52px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
  color: var(--text2);
  font-weight: 700;
  pointer-events: none;
}

/* ==== Responsive ==== */
@media (max-width: 375px) {
  .pd-big-price { font-size: 26px; }
  .price-hero .h-price { font-size: 44px; }
  .margin-fine button { width: 48px; }
  .margin-fine-center input { font-size: 24px; }
}

@media (min-width: 601px) {
  /* En pantallas grandes el contenido queda centrado a 600 */
  .app-shell {
    box-shadow: 0 0 40px rgba(0, 0, 0, 0.1);
  }
}
