/* White surfaces and readable controls throughout customer and admin accounts. */
body {
  --account-text: #051b28;
  --account-muted: #526575;
  --account-line: #dce5eb;
  --account-panel: #f5f7f9;
  --account-accent: #a8470b;
  --account-selected: #fff4ec;
  background: #ffffff;
}

:is(.quotes-dashboard, .quote-detail-page, .admin-panel, .user-settings-page) {
  background: #ffffff;
  color: var(--account-text);
  color-scheme: light;
}

:is(.quotes-dashboard, .quote-detail-page, .admin-panel, .user-settings-page, .company-data-dialog) :is(h1, h2, h3, strong, dd) {
  color: var(--account-text);
}

:is(.quotes-dashboard, .quote-detail-page, .admin-panel, .user-settings-page, .company-data-dialog) :is(p, small, time, dt) {
  color: var(--account-muted);
}

.quotes-dashboard :is(.quotes-table-wrap, .quotes-empty-state, .quotes-message),
.quote-detail-page :is(.quote-detail-hero, .quote-info-card, .quote-spec-card, .quote-notes-box, .quote-side-card, .quote-detail-loading),
.admin-panel :is(.admin-sidebar, .admin-metric-card, .admin-users-metrics article, .admin-quotes-panel, .admin-detail-card, .admin-status-editor, .admin-loading, .admin-empty),
.user-settings-page :is(.settings-card, .settings-profile-card, .settings-actions-card),
.company-data-dialog {
  background: #ffffff;
  border-color: var(--account-line);
  box-shadow: 0 4px 18px rgba(5, 27, 40, 0.04);
}

.admin-panel .admin-sidebar::before {
  content: none;
}

.admin-panel :is(.admin-user-chip, .admin-info-grid div, .admin-file-item, .admin-note-item, .admin-color-item, .admin-color-preview-row, .admin-user-quotes-row td, .admin-user-quotes-list, .admin-user-quote-item, .admin-user-quotes-empty),
.quote-detail-page :is(.quote-file-item, .quote-message-bubble) {
  background: var(--account-panel);
  border-color: var(--account-line);
  color: var(--account-text);
}

:is(.quotes-dashboard, .quote-detail-page, .admin-panel, .user-settings-page, .company-data-dialog) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  background: #ffffff;
  border-color: #b9cbd6;
  color: var(--account-text);
  color-scheme: light;
}

:is(.quotes-dashboard, .quote-detail-page, .admin-panel, .user-settings-page, .company-data-dialog) :is(input, textarea)::placeholder {
  color: var(--account-muted);
  opacity: 1;
}

:is(.admin-panel, .user-settings-page) select option {
  background: #ffffff;
  color: var(--account-text);
}

:is(.admin-panel, .user-settings-page) :is(input, select, textarea):disabled {
  background: var(--account-panel);
  color: var(--account-muted);
  opacity: 1;
}

:is(.quotes-dashboard, .quote-detail-page, .admin-panel, .user-settings-page, .company-data-dialog) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid #0097b2;
  outline-offset: 3px;
}

.quotes-dashboard .quotes-table :is(th, td),
.admin-panel .admin-quotes-table :is(th, td) {
  border-color: var(--account-line);
  color: var(--account-text);
}

.quotes-dashboard .quotes-table td strong,
.admin-panel .admin-quotes-table td strong {
  color: var(--account-text);
}

.quote-detail-page .quote-detail-heading h1 small {
  color: var(--account-muted);
}

.quotes-dashboard .quotes-table th,
.admin-panel .admin-quotes-table th {
  background: var(--account-panel);
  color: var(--account-muted);
}

.quotes-dashboard .quotes-table td > span:not(.quote-status),
.admin-panel :is(.admin-users-table td:first-child span, .admin-user-contact span, .admin-user-quotes-head, .admin-users-topbar span, .admin-metric-card span, .admin-users-metrics span),
.user-settings-page :is(.user-settings-hero span, .settings-profile-card span, .settings-form-grid label, .settings-checkbox),
.quote-detail-page :is(.quote-empty-inline, .quote-note-actions span) {
  color: var(--account-muted);
}

.quotes-dashboard .quote-filter-description,
.user-settings-page .settings-hint {
  background: var(--account-selected);
  border-color: #f3c5a6;
  color: var(--account-accent);
}

.quotes-dashboard .quote-filters button,
.admin-panel :is(.admin-date-filters button, .admin-user-quotes-pagination button),
.user-settings-page .settings-company-type label,
.company-data-close,
.company-data-cancel {
  background: var(--account-panel);
  border-color: var(--account-line);
  color: var(--account-text);
}

.quotes-dashboard .quote-filters button.is-active,
.admin-panel .admin-user-quotes-pagination button.is-active {
  background: #ff914d;
  color: var(--account-text);
  box-shadow: none;
}

.quotes-dashboard .quote-filters button:hover,
.admin-panel :is(.admin-date-filters button, .admin-user-quotes-pagination button):hover,
.user-settings-page .settings-company-type label:has(input:checked),
.company-data-close:hover {
  background: var(--account-selected);
  border-color: #ff914d;
  color: var(--account-accent);
}

.admin-panel .admin-nav a {
  color: var(--account-text);
}

.admin-panel .admin-nav :is(a.is-active, a:hover),
.admin-panel :is(.admin-metric-card.is-active, .admin-metric-card:hover) {
  background: var(--account-selected);
  border-color: #ff914d;
  color: var(--account-accent);
}

.quotes-dashboard :is(.new-quote-button, .quote-detail-link),
.quote-detail-page :is(.quote-back-link, .quote-detail-heading p, .quote-info-card span, .quote-spec-card span, .quote-notes-box span, .quote-side-card h2, .quote-note-form label),
.admin-panel :is(.admin-topbar p, .admin-section-heading p, .admin-card-heading p, .admin-detail-title-row p, .admin-back-link, .admin-detail-link, .admin-status-editor span, .admin-status-form label, .admin-date-filters label, .admin-color-filter-grid label, .admin-color-form label, .admin-quote-document-form label, .admin-info-grid a, .admin-note-item span),
.user-settings-page :is(.user-settings-hero p, .settings-form-section h3, .settings-password-reset-link),
.company-data-dialog :is(.company-data-kicker, .company-data-form label) {
  color: var(--account-accent);
}

.quotes-dashboard .new-quote-button,
.user-settings-page .settings-save-button,
.quote-detail-page :is(.quote-document-download, .quote-note-actions button),
.admin-panel :is(.admin-status-form button, .admin-file-item button, .admin-quote-document-form button),
.company-data-save {
  background: #ff914d;
  color: var(--account-text);
}

.quotes-dashboard .new-quote-button:hover {
  background: #ffae78;
}

.quotes-dashboard .quote-detail-link:hover,
.quote-detail-page .quote-back-link:hover,
.admin-panel :is(.admin-detail-link, .admin-back-link):hover,
.user-settings-page .settings-password-reset-link:hover {
  color: #7c3408;
  text-decoration: underline;
}

.admin-panel .admin-user-contact a {
  color: #00778b;
}

.admin-panel .admin-user-action {
  background: #00778b;
  color: #ffffff;
}

.admin-panel .admin-user-action:hover {
  background: #005b6b;
}

.admin-panel :is(.admin-color-item button, .admin-color-form button),
.admin-panel .admin-current-state span,
.quote-detail-page .quote-file-item > span {
  background: var(--account-selected);
  border-color: #f3c5a6;
  color: var(--account-accent);
}

.admin-panel :is(.admin-color-item button, .admin-color-form button):hover {
  background: #ffe4d2;
  color: #7c3408;
}

.admin-panel :is(.admin-color-swatch, .admin-color-preview-row span) {
  border-color: #ffffff;
  box-shadow: 0 0 0 2px #b9cbd6;
}

.admin-panel .admin-date-filters input::-webkit-calendar-picker-indicator {
  filter: none;
}

.quotes-dashboard .quotes-table .quote-status,
.admin-panel .admin-status {
  background: #e6f6f8;
  color: #006677;
}

:is(.quotes-dashboard, .admin-panel) :is(.quote-status.status-in-valutazione, .admin-status.status-pending) {
  background: #fff8db;
  color: #854d0e;
}

:is(.quotes-dashboard, .admin-panel) :is(.quote-status.status-in-lavorazione, .admin-status.status-in_progress) {
  background: #e6f6f8;
  color: #006677;
}

:is(.quotes-dashboard, .admin-panel) :is(.quote-status.status-spedita, .admin-status.status-shipped) {
  background: var(--account-selected);
  color: var(--account-accent);
}

:is(.quotes-dashboard, .admin-panel) :is(.quote-status.status-preventivo-disponibile, .admin-status.status-quote_ready) {
  background: #ecfdf5;
  color: #166534;
}

:is(.quotes-dashboard, .admin-panel) :is(.quote-status.status-annullata, .admin-status.status-cancelled) {
  background: #fff1f2;
  color: #9f1239;
}

.quote-detail-page .quote-progress strong {
  color: var(--account-muted);
}

.quote-detail-page .quote-progress :is(li.is-active, li.is-complete) strong {
  color: #006677;
}

.quote-detail-page .quote-progress li[data-step="in_valutazione"].is-active strong {
  color: #854d0e;
}

.quote-detail-page .quote-progress li[data-step="preventivo_disponibile"]:is(.is-active, .is-complete) strong {
  color: #166534;
}

.quote-detail-page .quote-progress li[data-step="annullata"].is-active strong {
  color: #9f1239;
}

.quote-detail-page .quote-progress li[data-step="in_valutazione"].is-active::before {
  background: #b7791f;
}

.quote-detail-page .quote-progress li[data-step="preventivo_disponibile"]:is(.is-active, .is-complete)::before {
  background: #16a34a;
}

.quote-detail-page .quote-progress li[data-step="annullata"].is-active::before {
  background: #e11d48;
}

.user-settings-page .settings-company-form .settings-form-grid label::after {
  color: var(--account-muted);
}

.user-settings-page .settings-company-form .settings-form-grid label:has(input[required]:not([disabled]), textarea[required]:not([disabled]))::after {
  color: var(--account-accent);
}

.user-settings-page .settings-field-error,
.user-settings-page .settings-field-error::after {
  color: #9f1239 !important;
}

.user-settings-page .settings-field-error :is(input, textarea, select) {
  background: #fff1f2 !important;
  border-color: #e11d48 !important;
}

.user-settings-page :is(.settings-danger-card, .settings-group-error),
.admin-panel :is(.admin-error, .admin-color-item .admin-color-remove),
.quote-detail-page .quote-detail-error {
  background: #fff1f2;
  border-color: #fda4af;
  color: #9f1239;
}

.user-settings-page .settings-danger-card :is(summary, p, button, .settings-delete-feedback),
.user-settings-page .settings-save-feedback[data-state="error"],
.admin-panel #admin-color-message[data-state="error"] {
  color: #9f1239;
}

.admin-panel .admin-color-item .admin-color-remove:hover {
  background: #ffe4e6;
  color: #881337;
}

.user-settings-page .settings-danger-card button {
  border-color: #fda4af;
}

.user-settings-page .settings-save-feedback,
.admin-panel :is(#admin-status-message, .admin-quote-document-form p) {
  color: var(--account-accent);
}

.admin-panel #admin-color-message[data-state="success"] {
  color: #166534;
}

.company-data-dialog :is(.company-data-copy, .company-data-feedback) {
  color: var(--account-muted);
}

.company-data-dialog .company-data-feedback[data-state="error"] {
  color: #9f1239;
}
