/*
 * Studfolio 0.90.0 — warstwa zgodności (dawny theme-v2.css bez tokenów i starego nagłówka).
 * Dopasowuje stare, lokalne style podstron do motywu jasnego/ciemnego, dopóki strona
 * nie zostanie przepisana na Studfolio. Przy przepisywaniu strony usuń jej sekcję.
 */
html[data-ui-theme] .main-content {
  color: var(--ui-ink);
}
html[data-ui-theme] .main-content :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  border-color: var(--ui-line) !important;
  background: var(--ui-field) !important;
  color: var(--ui-ink) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}
html[data-ui-theme] .main-content :is(input,select,textarea):focus {
  border-color: var(--ui-accent) !important;
  outline: 3px solid color-mix(in srgb, var(--ui-accent) 19%, transparent);
  outline-offset: 1px;
}
html[data-ui-theme] .main-content button:not(.close-btn),
html[data-ui-theme] .main-content .settings-button {
  border-color: color-mix(in srgb, var(--ui-accent) 62%, var(--ui-line));
  background: var(--ui-accent);
  color: #06231f;
  box-shadow: none;
}
html[data-ui-theme] .main-content button:not(.close-btn):hover,
html[data-ui-theme] .main-content .settings-button:hover { filter: brightness(1.06); }
html[data-ui-theme] .main-content :is(table, .modal-content, .async-task-dialog, .pc-submit-dialog) {
  border-color: var(--ui-line) !important;
  background: var(--ui-card) !important;
  color: var(--ui-ink) !important;
  box-shadow: var(--ui-shadow) !important;
}
html[data-ui-theme] .main-content :is(table th, table td) { border-color: var(--ui-line) !important; color: var(--ui-ink) !important; }
html[data-ui-theme] .main-content table th { background: var(--ui-card-soft) !important; color: var(--ui-muted) !important; }

/* Settings hub and its existing tab layout. */
html[data-ui-theme] .settings-shell,
html[data-ui-theme] .settings-overview,
html[data-ui-theme] .settings-page-heading,
html[data-ui-theme] .settings-hero,
html[data-ui-theme] .appearance-card {
  color: var(--ui-ink) !important;
}
html[data-ui-theme] .settings-hero,
html[data-ui-theme] .settings-page-heading {
  border-color: var(--ui-line) !important;
  background: linear-gradient(125deg, color-mix(in srgb, var(--ui-accent) 12%, var(--ui-card)), var(--ui-card)) !important;
  box-shadow: var(--ui-shadow) !important;
}
html[data-ui-theme] .settings-hero :is(h1,h2,h3,p),
html[data-ui-theme] .settings-page-heading :is(h1,h2,h3,p) { color: inherit !important; }
html[data-ui-theme] .settings-tabs {
  border-color: var(--ui-line) !important;
  background: var(--ui-card) !important;
  box-shadow: var(--ui-shadow) !important;
}
html[data-ui-theme] .settings-tabs a { color: var(--ui-muted) !important; }
html[data-ui-theme] .settings-tabs a:hover,
html[data-ui-theme] .settings-tabs a.active { background: color-mix(in srgb, var(--ui-accent) 14%, transparent) !important; color: var(--ui-ink) !important; }
html[data-ui-theme] .settings-overview-card,
html[data-ui-theme] .settings-overview-card .card-footer,
html[data-ui-theme] .settings-language-form,
html[data-ui-theme] .settings-security-note {
  border-color: var(--ui-line) !important;
  background: var(--ui-card) !important;
  color: var(--ui-ink) !important;
  box-shadow: var(--ui-shadow) !important;
}
html[data-ui-theme] .settings-overview-card:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--ui-accent) 64%, var(--ui-line)) !important; background: var(--ui-card-hover) !important; }
html[data-ui-theme] .settings-overview-card :is(h2,h3,h4,b,strong),
html[data-ui-theme] .settings-language-form :is(h2,h3,b,strong) { color: var(--ui-ink) !important; }
html[data-ui-theme] .settings-overview-card p,
html[data-ui-theme] .settings-language-form p,
html[data-ui-theme] .settings-security-note { color: var(--ui-muted) !important; }

/* Price Check: replaces the legacy white form surface in both modes. */
html[data-ui-theme] .pc-hero,
html[data-ui-theme] .pc-card,
html[data-ui-theme] .pc-price,
html[data-ui-theme] .pc-source-column,
html[data-ui-theme] .pc-source-snapshot,
html[data-ui-theme] .pc-offer,
html[data-ui-theme] .pc-fact,
html[data-ui-theme] .pc-cache-item,
html[data-ui-theme] .pc-chart {
  border-color: var(--ui-line) !important;
  background: var(--ui-card) !important;
  color: var(--ui-ink) !important;
  box-shadow: var(--ui-shadow) !important;
}
html[data-ui-theme] .pc-hero { background: linear-gradient(135deg, color-mix(in srgb, var(--ui-accent) 14%, var(--ui-card)), var(--ui-card)) !important; }
html[data-ui-theme] .pc-hero :is(h1,h2,h3,h4),
html[data-ui-theme] .pc-heading-row h2,
html[data-ui-theme] .pc-section h3,
html[data-ui-theme] .pc-source-column h4,
html[data-ui-theme] .pc-price b,
html[data-ui-theme] .pc-fact b,
html[data-ui-theme] .pc-offer-main b,
html[data-ui-theme] .pc-cache-item b { color: var(--ui-ink) !important; }
html[data-ui-theme] .pc-hero p,
html[data-ui-theme] .pc-section-note,
html[data-ui-theme] .pc-fact span,
html[data-ui-theme] .pc-source-state,
html[data-ui-theme] .pc-source-snapshot small,
html[data-ui-theme] .pc-offer-main small,
html[data-ui-theme] .pc-cache-item small,
html[data-ui-theme] .pc-item-number { color: var(--ui-muted) !important; }
html[data-ui-theme] .pc-sources,
html[data-ui-theme] .pc-search label { color: var(--ui-ink-2, var(--ui-muted)) !important; }
html[data-ui-theme] .pc-scan-button { background: var(--ui-accent) !important; color:#06231f !important; }
html[data-ui-theme] .pc-links a { border:1px solid var(--ui-line); background:var(--ui-card-soft) !important; color:var(--ui-accent) !important; }
html[data-ui-theme] .pc-status { border-color:var(--ui-line) !important; background:var(--ui-card-soft) !important; color:var(--ui-ink) !important; }
html[data-ui-theme] .pc-offer.qualified { border-color: color-mix(in srgb, var(--ui-positive) 55%, var(--ui-line)) !important; background: color-mix(in srgb, var(--ui-positive) 7%, var(--ui-card)) !important; }

/* Shared catalogue language used by the parts and minifigure templates that
   stay intentionally outside this code-overlay release. */
html[data-ui-theme] :is(.catalog-head,.catalog-heading,.catalog-hero,.mf-hero,.parts-head,.parts-page-header,.minifig-page-header,.new-sets-header,.news-page-header) {
  border-color: var(--ui-line) !important;
  background: linear-gradient(125deg, color-mix(in srgb, var(--ui-accent) 10%, var(--ui-card)), var(--ui-card)) !important;
  color: var(--ui-ink) !important;
}
html[data-ui-theme] :is(.catalog-head,.catalog-heading,.catalog-hero,.mf-hero,.parts-head,.parts-page-header,.minifig-page-header,.new-sets-header,.news-page-header) :is(h1,h2,h3,p,span,b,strong) { color: inherit !important; }
html[data-ui-theme] :is(.catalog-filters,.mf-panel,.mf-search,.parts-filter,.parts-list-panel,.minifig-filter-bar,.news-filter,.news-sidebar,.catalog-tree,.catalog-explore,.catalog-scope-note) {
  border-color: var(--ui-line) !important;
  background: var(--ui-card) !important;
  color: var(--ui-ink) !important;
  box-shadow: var(--ui-shadow) !important;
}
html[data-ui-theme] :is(.part-card,.mf-card,.minifig-card,.part-details,.catalog-explore,.news-history-item,.new-set-card,.watch-item) {
  border-color: var(--ui-line) !important;
  background: var(--ui-card) !important;
  color: var(--ui-ink) !important;
  box-shadow: 0 8px 20px rgba(1,10,19,.10) !important;
}
html[data-ui-theme] :is(.part-card,.mf-card,.minifig-card,.news-history-item,.new-set-card):hover { border-color: color-mix(in srgb, var(--ui-accent) 61%, var(--ui-line)) !important; background:var(--ui-card-hover) !important; transform:translateY(-2px); }
html[data-ui-theme] :is(.part-name,.mf-name,.minifig-name,.news-history-title,.new-set-title,.watch-name,.catalog-heading h1,.mf-hero h1,.parts-head h1) { color:var(--ui-ink) !important; }
html[data-ui-theme] :is(.part-number,.mf-id,.minifig-id,.part-meta,.mf-meta,.minifig-note,.catalog-heading-note,.mf-note,.news-history-summary,.new-set-summary,.watch-hint) { color:var(--ui-muted) !important; }
html[data-ui-theme] :is(.part-image,.mf-image,.mf-placeholder,.part-placeholder,.minifig-image-wrap,.news-history-image-placeholder,.watch-image-placeholder) { border-color:var(--ui-line) !important; background:var(--ui-card-soft) !important; }
html[data-ui-theme] :is(.catalog-pagination,.mf-pagination,.pagination,.news-pagination,.catalog-pages) :is(a,span,button) { border-color:var(--ui-line) !important; background:var(--ui-card) !important; color:var(--ui-ink) !important; }
html[data-ui-theme] :is(.catalog-pagination,.mf-pagination,.pagination,.news-pagination,.catalog-pages) .active,
html[data-ui-theme] :is(.catalog-pagination,.mf-pagination,.pagination,.news-pagination,.catalog-pages) .current-page { background:var(--ui-accent) !important; color:#06231f !important; }

/* News history/new sets remain legible in both themes. */
html[data-ui-theme] :is(.news-page,.new-sets-page) :is(.news-history-item,.new-set-card) { overflow:hidden; }
html[data-ui-theme] :is(.news-history-meta,.new-set-meta) { color:var(--ui-muted) !important; }
html[data-ui-theme] :is(.news-pill,.new-set-pill,.news-source-pill,.news-tag-pill,.news-related-pill) { border:1px solid var(--ui-line); background:var(--ui-card-soft) !important; color:var(--ui-ink) !important; }

/* Modal surfaces are deliberately neutral, not hard-coded white. */
html[data-ui-theme] .modal { background:rgba(3,10,19,.70) !important; }
html[data-ui-theme] .close-btn { color:var(--ui-muted) !important; }
html[data-ui-theme] .close-btn:hover { color:var(--ui-ink) !important; }

/* Collection forms, CMF tools and administrator operations use the same card
   system rather than falling back to legacy white panels. */
html[data-ui-theme] :is(.simple-form,.edit-page,.edit-section,.catalog-section,.add-set-progress-card,.duplicate-purchase-form,.cmf-page,.cmf-card,.cmf-panel,.cmf-summary,.cmf-check,.admin-hero,.admin-operation,.admin-pricing,.admin-theme-logos,.admin-task-monitor,.admin-price-check-monitor,.admin-openai-audit,.admin-ldraw-history) {
  border-color:var(--ui-line) !important;
  background:var(--ui-card) !important;
  color:var(--ui-ink) !important;
  box-shadow:var(--ui-shadow) !important;
}
html[data-ui-theme] :is(.edit-heading,.edit-subtitle,.edit-section h2,.edit-section h3,.catalog-section h2,.cmf-page h1,.cmf-card h2,.cmf-panel h2,.admin-hero h1,.admin-operation h3,.admin-pricing h2,.admin-theme-logos h2,.admin-task-monitor h2,.admin-price-check-monitor h2,.admin-openai-audit h2) { color:var(--ui-ink) !important; }
html[data-ui-theme] :is(.edit-hint,.cmf-muted,.cmf-note,.admin-hero p,.admin-operation p,.admin-pricing p,.admin-theme-logos p,.admin-task-monitor p,.admin-price-check-monitor p,.admin-openai-audit p) { color:var(--ui-muted) !important; }
html[data-ui-theme] :is(.form-group,.form-field,.catalog-current,.instruction-item,.cmf-table,.cmf-live-list,.admin-stat,.admin-price-stat,.admin-openai-audit-stat,.admin-run,.admin-ldraw-row,.admin-price-check-row,.admin-theme-logo-card) { border-color:var(--ui-line) !important; background:var(--ui-card-soft) !important; color:var(--ui-ink) !important; }
html[data-ui-theme] :is(.alert-error,.add-set-error,.cmf-alert.error,.admin-warning) { border-color:color-mix(in srgb,var(--ui-negative) 55%,var(--ui-line)) !important; background:color-mix(in srgb,var(--ui-negative) 10%,var(--ui-card)) !important; color:var(--ui-ink) !important; }
html[data-ui-theme] .admin-page :is(.admin-task-table-wrap,.admin-openai-audit-table-wrap) { border-color:var(--ui-line) !important; }
html[data-ui-theme] .admin-page :is(.admin-task-table,.admin-openai-audit-table) { background:var(--ui-card) !important; box-shadow:none !important; }
html[data-ui-theme] .admin-page :is(.admin-task-table th,.admin-openai-audit-table th) { background:var(--ui-card-soft) !important; }

@media (max-width: 760px) {
  html[data-ui-theme] :is(.catalog-filters,.mf-panel,.mf-search,.parts-filter,.parts-list-panel,.minifig-filter-bar,.news-filter,.news-sidebar) { box-shadow:none !important; }
}

/* 0.83.1 · Expense Control: this legacy page ships its own light palette.
   These scoped declarations intentionally come last and use the Theme v2
   tokens, so both modes stay readable without changing the page's data/UI. */
html[data-ui-theme] .expenses-page { color:var(--ui-ink) !important; }
html[data-ui-theme] .expenses-header :is(h1,h2),
html[data-ui-theme] :is(.expenses-panel,.expenses-period-panel) :is(h1,h2,h3),
html[data-ui-theme] .expenses-panel-heading h2 { color:var(--ui-ink) !important; }
html[data-ui-theme] .expenses-header p,
html[data-ui-theme] :is(.expenses-period-panel p,.annual-item small,.expense-reference,.expense-recorded-at,.period-active) { color:var(--ui-muted) !important; }
html[data-ui-theme] :is(.expenses-back,.expenses-notice,.expenses-metric,.expenses-panel,.expenses-period-panel,.annual-item,.expenses-empty) {
  border-color:var(--ui-line) !important;
  background:var(--ui-card) !important;
  color:var(--ui-ink) !important;
  box-shadow:var(--ui-shadow) !important;
}
html[data-ui-theme] .expenses-period-panel,
html[data-ui-theme] .annual-item { background:var(--ui-card-soft) !important; }
html[data-ui-theme] .expenses-back {
  color:var(--ui-accent) !important;
  text-decoration:none;
}
html[data-ui-theme] .expenses-back:hover { background:var(--ui-card-hover) !important; }
html[data-ui-theme] .expenses-notice {
  border-left-color:var(--ui-accent) !important;
  background:color-mix(in srgb,var(--ui-accent) 11%,var(--ui-card)) !important;
}
html[data-ui-theme] .expenses-metric span,
html[data-ui-theme] :is(.expenses-year-select,.period-field,.expense-toggle) { color:var(--ui-muted) !important; }
html[data-ui-theme] .expenses-metric b { color:var(--ui-accent) !important; }
html[data-ui-theme] .expenses-metric.current b,
html[data-ui-theme] .annual-item span,
html[data-ui-theme] .expense-amount.sale { color:var(--ui-positive) !important; }
html[data-ui-theme] .expenses-metric.excluded b,
html[data-ui-theme] .expense-amount { color:var(--ui-warning) !important; }
html[data-ui-theme] .annual-item b,
html[data-ui-theme] .expense-name { color:var(--ui-ink) !important; }
html[data-ui-theme] .expenses-table { background:transparent !important; color:var(--ui-ink) !important; }
html[data-ui-theme] .expenses-table :is(th,td) { border-color:var(--ui-line) !important; color:var(--ui-ink) !important; }
html[data-ui-theme] .expenses-table th { background:var(--ui-card-soft) !important; color:var(--ui-muted) !important; }
html[data-ui-theme] .expenses-table tr.is-excluded td { background:color-mix(in srgb,var(--ui-muted) 8%,var(--ui-card)) !important; color:var(--ui-muted) !important; }
html[data-ui-theme] :is(.expense-kind,.transaction-kind) { border:1px solid var(--ui-line); background:var(--ui-card-soft) !important; color:var(--ui-ink) !important; }
html[data-ui-theme] .transaction-kind.sale { background:color-mix(in srgb,var(--ui-positive) 12%,var(--ui-card)) !important; color:var(--ui-positive) !important; }
html[data-ui-theme] .expense-delete {
  border-color:color-mix(in srgb,var(--ui-negative) 54%,var(--ui-line)) !important;
  background:color-mix(in srgb,var(--ui-negative) 10%,var(--ui-card)) !important;
  color:var(--ui-negative) !important;
}
html[data-ui-theme] .expense-delete:hover { background:color-mix(in srgb,var(--ui-negative) 17%,var(--ui-card)) !important; }

/* 0.83.1 · Global Minifigure Catalog: own local CSS used opaque white cards
   and blue/orange controls. Scope every legacy surface to Theme v2 tokens. */
html[data-ui-theme] .mf-shell { color:var(--ui-ink) !important; }
html[data-ui-theme] .mf-stat,
html[data-ui-theme] .mf-panel,
html[data-ui-theme] .mf-search,
html[data-ui-theme] .mf-card,
html[data-ui-theme] .mf-status-item,
html[data-ui-theme] .mf-empty {
  border-color:var(--ui-line) !important;
  background:var(--ui-card) !important;
  color:var(--ui-ink) !important;
  box-shadow:var(--ui-shadow) !important;
}
html[data-ui-theme] .mf-stat { border-left-color:var(--ui-accent) !important; }
html[data-ui-theme] .mf-stat b,
html[data-ui-theme] .mf-status-item b,
html[data-ui-theme] .mf-name { color:var(--ui-ink) !important; }
html[data-ui-theme] :is(.mf-filter-label,.mf-note,.mf-id,.mf-meta,.mf-placeholder) { color:var(--ui-muted) !important; }
html[data-ui-theme] .mf-image { border-color:var(--ui-line) !important; background:var(--ui-card-soft) !important; }
html[data-ui-theme] .mf-card:hover { border-color:color-mix(in srgb,var(--ui-accent) 62%,var(--ui-line)) !important; background:var(--ui-card-hover) !important; box-shadow:var(--ui-shadow) !important; }
html[data-ui-theme] .mf-status-item { background:var(--ui-card-soft) !important; }
html[data-ui-theme] .mf-button-secondary {
  border:1px solid var(--ui-line) !important;
  background:var(--ui-card-soft) !important;
  color:var(--ui-ink) !important;
  box-shadow:none !important;
}
html[data-ui-theme] .mf-button-secondary:hover { border-color:color-mix(in srgb,var(--ui-accent) 58%,var(--ui-line)) !important; background:var(--ui-card-hover) !important; color:var(--ui-ink) !important; }
html[data-ui-theme] .mf-owned,
html[data-ui-theme] .mf-score { background:color-mix(in srgb,var(--ui-positive) 12%,var(--ui-card)) !important; color:var(--ui-positive) !important; }
html[data-ui-theme] .mf-result { border-left-color:var(--ui-accent) !important; }
html[data-ui-theme] .mf-pagination a { border-color:var(--ui-line) !important; background:var(--ui-card) !important; color:var(--ui-ink) !important; }
html[data-ui-theme] .mf-pagination a.active { border-color:var(--ui-accent) !important; background:var(--ui-accent) !important; color:#06231f !important; }
