@layer cards{
/* V75 Unified Card UI System
   Global visual polish for manager/admin screens.
   Intent: make legacy cards/lists/tables/forms match the modern voting/proxy/link dashboards. */



:root{--ui-page-bg:#f7f9fc;--ui-surface:#ffffff;--ui-surface-soft:#fbfcff;--ui-border:#eef2f7;--ui-border-soft:#edf2f8;--ui-text:#0f172a;--ui-muted:#1f2937;--ui-primary:#2563eb;--ui-primary-soft:#e8effd;--ui-success:#16a34a;--ui-success-soft:#e8f8ef;--ui-warning:#f59e0b;--ui-warning-soft:#fff3df;--ui-danger:#dc2626;--ui-danger-soft:#fdecec;--ui-purple:#1f2937;--ui-purple-soft:#eef2f7;--ui-radius:18px;--ui-radius-sm:12px;--ui-shadow:0 10px 28px rgba(15, 23, 42,.06);--ui-shadow-soft:0 6px 18px rgba(15, 23, 42,.045);}



body.theme-manager, body.app-shell-manager{background:var(--ui-page-bg);color:var(--ui-text);}



body.theme-manager .main, body.app-shell-manager .main{background:var(--ui-page-bg);}



/* Keep the already custom voting/proxy/link dashboards in their own CSS, but normalize legacy screens around the same visual language. */


body.theme-manager .main > :not(.vote-dashboard):not(.links-dashboard):not(.proxy-page):not(.maint-shell):not(.resolution-page), body.app-shell-manager .main > :not(.vote-dashboard):not(.links-dashboard):not(.proxy-page):not(.maint-shell):not(.resolution-page){min-width:0;}



/* Generic page headers */


body.theme-manager .page-standard, body.theme-manager .content-stack, body.theme-manager .page-content, body.theme-manager .main-content, body.app-shell-manager .page-standard, body.app-shell-manager .content-stack, body.app-shell-manager .page-content, body.app-shell-manager .main-content{max-width:100%;min-width:0;}



body.theme-manager .section-title, body.theme-manager h1.section-title, body.theme-manager h2.section-title, body.theme-manager .page-title, body.app-shell-manager .section-title, body.app-shell-manager h1.section-title, body.app-shell-manager h2.section-title, body.app-shell-manager .page-title{color:var(--ui-text);letter-spacing:-.025em;font-weight:850;}






/* Cards / panels */


body.theme-manager .card, body.theme-manager .card-soft, body.theme-manager .soft-panel, body.theme-manager .form-box, body.theme-manager .form-section, body.theme-manager .table-card, body.theme-manager .summary-card, body.theme-manager .kpi-card, body.theme-manager .metric-card, body.theme-manager .stat-card, body.theme-manager .dashboard-card, body.theme-manager .panel-card, body.app-shell-manager .card, body.app-shell-manager .card-soft, body.app-shell-manager .soft-panel, body.app-shell-manager .form-box, body.app-shell-manager .form-section, body.app-shell-manager .table-card, body.app-shell-manager .summary-card, body.app-shell-manager .kpi-card, body.app-shell-manager .metric-card, body.app-shell-manager .stat-card, body.app-shell-manager .dashboard-card, body.app-shell-manager .panel-card{color:var(--ui-text);min-width:0;}



body.theme-manager .card-header, body.theme-manager .soft-panel__header, body.theme-manager .table-card__header, body.theme-manager .form-section__header, body.app-shell-manager .card-header, body.app-shell-manager .soft-panel__header, body.app-shell-manager .table-card__header, body.app-shell-manager .form-section__header{border-bottom:1px solid var(--ui-border-soft);color:var(--ui-text);}



/* Common grids: responsive without forcing overflow */


body.theme-manager .grid-2, body.theme-manager .compact-grid-2, body.theme-manager .form-grid-2, body.app-shell-manager .grid-2, body.app-shell-manager .compact-grid-2, body.app-shell-manager .form-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px;min-width:0;}



body.theme-manager .grid-3, body.theme-manager .compact-grid-3, body.theme-manager .form-grid-3, body.theme-manager .stats-grid, body.theme-manager .summary-grid, body.app-shell-manager .grid-3, body.app-shell-manager .compact-grid-3, body.app-shell-manager .form-grid-3, body.app-shell-manager .stats-grid, body.app-shell-manager .summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px;min-width:0;}



body.theme-manager .grid-4, body.theme-manager .kpi-grid, body.app-shell-manager .grid-4, body.app-shell-manager .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:16px;min-width:0;}



/* KPI-like legacy cards */





body.theme-manager .kpi-card strong, body.theme-manager .metric-card strong, body.theme-manager .stat-card strong, body.app-shell-manager .kpi-card strong, body.app-shell-manager .metric-card strong, body.app-shell-manager .stat-card strong{color:var(--ui-text);font-weight:850;}



/* PR #274 (2026-05-23): catch-all'e input/button[type="submit"]:not(.app-btn) USUNIETE.
   Pozostaly nazwane warianty .btn (wymagaja jawnej klasy). Submity musza mit klase
   app-btn z wariantem (--primary, --ghost, --danger, --sm). */


body.theme-manager .btn, body.theme-manager button.btn, body.theme-manager a.btn, body.app-shell-manager .btn, body.app-shell-manager button.btn, body.app-shell-manager a.btn{min-height:40px;}









body.theme-manager .actions, body.theme-manager .toolbar, body.theme-manager .action-row, body.theme-manager .manager-actions, body.app-shell-manager .actions, body.app-shell-manager .toolbar, body.app-shell-manager .action-row, body.app-shell-manager .manager-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}



:where(body.theme-manager label), :where(body.app-shell-manager label){color:#1f2937;font-weight:700;}






/* Tables */


body.theme-manager .table-wrap, body.theme-manager .table-responsive, body.theme-manager .overflow-table, body.theme-manager .scroll-x, body.app-shell-manager .table-wrap, body.app-shell-manager .table-responsive, body.app-shell-manager .overflow-table, body.app-shell-manager .scroll-x{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:#fff;box-shadow:var(--ui-shadow-soft);overflow-x:auto;max-width:100%;}



/* Pills, badges and statuses */


body.theme-manager .badge, body.theme-manager .pill, body.theme-manager .status-pill, body.theme-manager .label, body.app-shell-manager .badge, body.app-shell-manager .pill, body.app-shell-manager .status-pill, body.app-shell-manager .label{display:inline-flex;align-items:center;justify-content:center;line-height:1.2;white-space:nowrap;}












/* Empty states and messages */


body.theme-manager .empty-state, body.theme-manager .empty, body.theme-manager .empty-row, body.app-shell-manager .empty-state, body.app-shell-manager .empty, body.app-shell-manager .empty-row{color:var(--ui-muted);background:#fff;border:1px dashed #eef2f7;border-radius:var(--ui-radius);padding:22px;}






/* Legacy filter/search bars */





/* Dashboard home shortcuts */


body.theme-manager .quick-actions, body.theme-manager .shortcut-grid, body.theme-manager .quick-grid, body.app-shell-manager .quick-actions, body.app-shell-manager .shortcut-grid, body.app-shell-manager .quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px;min-width:0;}



body.theme-manager .quick-actions a, body.theme-manager .shortcut-grid a, body.theme-manager .quick-grid a, body.app-shell-manager .quick-actions a, body.app-shell-manager .shortcut-grid a, body.app-shell-manager .quick-grid a{background:#fff;border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow-soft);padding:18px;color:var(--ui-text);text-decoration:none;}



body.theme-manager .quick-actions a:hover, body.theme-manager .shortcut-grid a:hover, body.theme-manager .quick-grid a:hover, body.app-shell-manager .quick-actions a:hover, body.app-shell-manager .shortcut-grid a:hover, body.app-shell-manager .quick-grid a:hover{border-color:#eef2f7;box-shadow:var(--ui-shadow);}



/* Mobile consistency */


@media (max-width: 992px){

body.theme-manager .main,
  body.app-shell-manager .main{background:var(--ui-page-bg);}


body.theme-manager .actions,
  body.theme-manager .toolbar,
  body.theme-manager .action-row,
  body.theme-manager .manager-actions,
  body.app-shell-manager .actions,
  body.app-shell-manager .toolbar,
  body.app-shell-manager .action-row,
  body.app-shell-manager .manager-actions{align-items:stretch;}


body.theme-manager .actions > *,
  body.theme-manager .toolbar > *,
  body.theme-manager .action-row > *,
  body.theme-manager .manager-actions > *,
  body.app-shell-manager .actions > *,
  body.app-shell-manager .toolbar > *,
  body.app-shell-manager .action-row > *,
  body.app-shell-manager .manager-actions > *{flex:1 1 auto;}

}


}
