.c-card, .c-import-card, .c-sim-card, .c-quotes-card, .c-calc-card,
.c-chart-card, .c-historial-card, .c-rate-card {
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-md);
}

.c-import-card, .c-sim-card, .c-quotes-card, .c-calc-card, .c-chart-card,
.c-historial-card { padding: 24px; }

.c-field-label, .c-import-label, .c-fee-item__label, .c-sim-group-label,
.c-imp-gfield-wrap label, .c-quote-photo-field label {
  display: block;
  margin: 0 0 6px;
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
}

.c-import-hint, .c-imp-price-equiv, .c-sim-rate-status, .c-field-help,
.c-import-quote-msg, .c-sim-source-banner, .auth-field__hint {
  color: var(--text-secondary);
  font-size: 14px;
  line-height: 1.5;
}

.c-imp-gfield, .c-import-input, .c-quotes-filter, .c-quotes-search__input,
.c-quotes-name-input, .c-quotes-link-input, .c-sim-input, .c-sim-manual-input,
.c-fee-item__input, .c-filter-input, .c-hist-input, .c-calc-field__input,
.auth-field input, .auth-password input, .theme-control select,
.c-quote-card input, .c-quote-card select {
  min-width: 0;
  min-height: 48px;
  width: 100%;
  padding: 10px 12px;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--control-border);
  border-radius: var(--radius-sm);
  box-shadow: none;
}

.c-imp-gfield::placeholder, .c-import-input::placeholder,
.c-quotes-search__input::placeholder, .c-quotes-name-input::placeholder,
.c-quotes-link-input::placeholder, .c-sim-input::placeholder,
.c-sim-manual-input::placeholder, .auth-field input::placeholder {
  color: var(--text-secondary);
  opacity: 1;
}

input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill,
input:autofill, textarea:autofill, select:autofill {
  -webkit-text-fill-color: var(--text);
  caret-color: var(--text);
  box-shadow: 0 0 0 1000px var(--surface) inset;
}

.c-imp-gfield:focus, .c-import-input:focus, .c-quotes-filter:focus,
.c-quotes-search__input:focus, .c-quotes-name-input:focus,
.c-quotes-link-input:focus, .c-sim-input:focus, .c-sim-manual-input:focus,
.c-fee-item__input:focus, .c-filter-input:focus, .c-hist-input:focus,
.c-calc-field__input:focus, .auth-field input:focus, .auth-password input:focus,
.theme-control select:focus {
  border-color: var(--focus);
  outline: 3px solid color-mix(in srgb, var(--focus) 24%, transparent);
  outline-offset: 0;
}

input[aria-invalid="true"], select[aria-invalid="true"] {
  border-color: var(--danger);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--danger) 18%, transparent);
}

button:not(.empresa-btn):not(.c-nav-tab):not(.c-calc-tab):not(.c-sim-tab):not(.c-sim-chip):not(.c-legend-btn) {
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

.c-topbar__refresh, .c-topbar__login-btn, .c-nav-tab, .c-calc-tab,
.c-range-btn, .c-legend-btn, .c-hist-toggle, .c-hist-apply,
.c-share-btn, .c-import-mode-btn, .c-imp-measure-btn,
.c-imp-cbm__scope-btn, .c-imp-currency__btn, .c-sim-tab,
.c-sim-chip, .c-quotes-save-btn, .c-quotes-load-more,
.c-quote-card__btn, .c-quote-detail__btn, .c-sim-save-plan,
.c-sim-cancel, .c-import-quote-btn, .auth-mode-switch__btn,
.auth-submit, .auth-password button, .auth-masthead__back,
.c-mobile-menu-button, .c-button, .c-detail-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 9px 14px;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--control-border);
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}

.c-button--primary, .c-quotes-save-btn, .c-sim-save-plan, .auth-submit,
.c-imp-calc-button {
  color: var(--accent-text);
  background: var(--accent);
  border-color: var(--accent);
}
.c-button--primary:hover, .c-quotes-save-btn:hover, .c-sim-save-plan:hover,
.auth-submit:hover, .c-imp-calc-button:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.c-button--danger, .c-quote-card__btn--del { color: var(--danger); }
.c-button--quiet { border-color: transparent; background: transparent; }
.c-button--wide { width: 100%; }

.c-status, .c-import-status, .c-rate-source-note, .c-sim-source-banner,
.c-hist-banner, .auth-message {
  padding: 12px 14px;
  color: var(--text-secondary);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
}
.c-status--success { color: var(--success); background: var(--success-bg); border-color: var(--success); }
.c-status--warning, .c-import-hint--warning { color: var(--warning); background: var(--warning-bg); }
.c-status--error, .c-import-hint--error { color: var(--danger); background: var(--danger-bg); }
.c-status--info { color: var(--info); background: var(--info-bg); }

.c-section-heading { margin: 0 0 6px; font-size: 20px; line-height: 1.3; font-weight: 700; }
.c-page-heading { margin: 0; font-size: 32px; line-height: 1.2; font-weight: 700; letter-spacing: -.025em; }
.c-page-description { max-width: 70ch; margin: 8px 0 0; color: var(--text-secondary); }
.c-section-description { margin: 0 0 16px; color: var(--text-secondary); font-size: 14px; }

/* Shared controls use deliberate surfaces, rather than browser default chrome. */
.c-button:not(.c-button--primary):not(.c-button--danger), .c-topbar__login-btn,
.c-topbar__refresh, .c-mobile-menu-button { background: var(--bg); border-color: var(--line); }
.c-button:hover, .c-quote-card__btn:hover, .c-topbar__login-btn:hover { border-color: var(--control-border); background: var(--selected-bg); }
.c-button--primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.c-page-heading { font-size: clamp(28px, 3vw, 38px); letter-spacing: -.04em; font-weight: 750; }
.c-page-description { font-size: 15px; line-height: 1.65; }
.c-eyebrow { display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.c-topbar__logout, .c-copy-btn, .c-load-more { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; min-width: 44px; padding: 10px; color: var(--text); background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.c-topbar__logout:hover, .c-copy-btn:hover { color: var(--link); background: var(--selected-bg); border-color: var(--control-border); }
.c-copy-success { color: var(--success); }
.c-empty-icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 16px; color: var(--link); background: var(--selected-bg); border: 1px solid var(--line); border-radius: 16px; font-size: 22px; }
.c-guest-state { padding: 32px; box-shadow: var(--shadow-md); }
.c-guest-state .c-empty-icon { margin-inline: auto; }
#quotes-guest-state, #quotes-auth-unavailable { max-width: 660px; margin: 32px auto; text-align: center; }
#quotes-guest-state .c-view-heading__actions { justify-content: center; }

.dz-toasts { position: fixed; z-index: 1000; inset: auto 16px 16px auto; display: grid; gap: 10px; width: min(420px, calc(100vw - 32px)); }
.dz-toast { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px; color: var(--text); background: var(--surface-raised); border: 1px solid var(--line); border-left: 4px solid var(--info); border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); opacity: 0; transform: translateY(8px); transition: opacity 150ms ease, transform 150ms ease; }
.dz-toast.is-in { opacity: 1; transform: none; }
.dz-toast.is-out { opacity: 0; transform: translateY(8px); }
.dz-toast--success { border-left-color: var(--success); }
.dz-toast--warning { border-left-color: var(--warning); }
.dz-toast--error { border-left-color: var(--danger); }
.dz-modal-overlay { position: fixed; z-index: 1100; inset: 0; display: grid; place-items: center; padding: 16px; background: rgb(16 16 16 / .56); opacity: 0; transition: opacity 150ms ease; }
.dz-modal-overlay.is-in { opacity: 1; }
.dz-modal { width: min(520px, 100%); max-height: min(85vh, 800px); overflow: auto; padding: 24px; color: var(--text); background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-dialog); box-shadow: var(--shadow-lg); }
.dz-modal__title { margin: 0 0 8px; font-size: 20px; }
.dz-modal__msg { margin: 0 0 20px; color: var(--text-secondary); white-space: pre-wrap; }
.dz-modal__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 18px; }
.dz-modal__btn { min-height: 44px; padding: 9px 14px; color: var(--text); background: var(--surface); border: 1px solid var(--control-border); border-radius: var(--radius-sm); font-weight: 600; }
.dz-modal__btn--ok { color: var(--accent-text); background: var(--accent); border-color: var(--accent); }
.dz-modal__btn--danger { color: var(--danger); border-color: var(--danger); }

@media (max-width: 767px) {
  .c-import-card, .c-sim-card, .c-quotes-card, .c-calc-card, .c-chart-card, .c-historial-card { padding: 16px; }
  .c-page-heading { font-size: 26px; }
}

/* iOS focus zoom starts below 16px. Keep pinch zoom available. */
@media (max-width: 1024px), (pointer: coarse) {
  :root input:not([type="checkbox"]):not([type="radio"]), :root select, :root textarea { font-size: 16px !important; }
}
