/* NAPRAWA 8: font Inter faktycznie wczytywany w całej aplikacji.
   Pliki .woff2 leżą w static/fonts/, a ten plik w static/panel/, więc ścieżki
   są względne ../fonts/. CompressedManifestStaticFilesStorage przepisuje url()
   na zahashowane nazwy przy collectstatic. font-display: swap = brak FOIT
   (najpierw font systemowy, potem podmiana na Inter, bez znikania tekstu). */
@font-face {
    font-family: "Inter";
    src: url("../fonts/Inter-Regular.3875f8357497.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Inter";
    src: url("../fonts/Inter-Medium.7b7f3cfa2944.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Inter";
    src: url("../fonts/Inter-SemiBold.b72fa2728a8e.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Inter";
    src: url("../fonts/Inter-Bold.66894432e7ff.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "JetBrains Mono";
    src: url("../fonts/JetBrainsMono-Regular.2c73f943e70d.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "JetBrains Mono";
    src: url("../fonts/JetBrainsMono-Medium.63282f58f349.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

:root {
    --bg: #f4f6f9;
    --sidebar: #111827;
    --sidebar-muted: #94a3b8;
    --sidebar-hover: #1f2937;
    --card: #ffffff;
    --text: #111827;
    --muted: #1f2937;
    --border: #e5e7eb;
    --primary: #1f2937;
    --primary-dark: #1f2937;
    --space-1: 8px;
    --space-2: 12px;
    --space-3: 16px;
    --space-4: 20px;
    --card-padding: 16px;
    --control-height: 38px;
    --table-row-y: 8px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
a, button, input, select, textarea { transition: .15s ease; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid rgba(31, 41, 55, .25);
    outline-offset: 2px;
}
.sidebar-toggle {
    position: fixed;
    top: 14px;
    left: 14px;
    z-index: 1001;
    display: none;
    border: 1px solid var(--border);
    background: #fff;
    color: var(--text);
    border-radius: 12px;
    padding: 10px 14px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
}
.sidebar-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .45);
    opacity: 0;
    pointer-events: none;
    transition: .2s ease;
    z-index: 999;
}
.sidebar {
    width: 250px;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    background: var(--sidebar);
    color: #fff;
    padding: 24px 18px;
    overflow-y: auto;
    z-index: 1000;
}
.brand { font-size: 20px; font-weight: 700; margin-bottom: 4px; }
.brand-subtitle { color: var(--sidebar-muted); font-size: 13px; margin-bottom: 24px; }
.nav-group-title { color: var(--sidebar-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; margin: 18px 10px 8px; }
.sidebar a { color: #d1d5db; display: block; padding: 10px 12px; border-radius: 10px; text-decoration: none; margin-bottom: 4px; }
.sidebar a:hover, .sidebar a.active-link { background: var(--sidebar-hover); color: #fff; }
.logout-form { margin-top: 14px; }
.logout-form button { width: 100%; border: 1px solid rgba(255,255,255,.12); background: transparent; color: #fff; padding: 10px 12px; border-radius: 10px; }
.logout-form button:hover { background: rgba(255,255,255,.08); }
.main { margin-left: 250px; min-height: 100vh; padding: 18px; }
.topbar { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 14px; }
.page-title { margin: 0; font-size: 24px; font-weight: 700; line-height: 1.15; }
.page-subtitle { margin-top: 4px; color: var(--muted); font-size: 13px; }
.user-box { display: flex; align-items: center; gap: 10px; background: rgba(255,255,255,.75); border: 1px solid var(--border); padding: 8px 12px; border-radius: 12px; }
.card, .kpi-card { background: var(--card); border: 1px solid var(--border); border-radius: 14px; padding: var(--card-padding); box-shadow: 0 6px 18px rgba(15, 23, 42, .04); margin-bottom: 14px; }
.card-soft { background: linear-gradient(180deg, #ffffff 0%, #fafbff 100%); }
.grid-2, .kpi-grid, .stat-grid, .status-grid, .detail-grid { display: grid; gap: 12px; }
.grid-2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.kpi-grid { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); margin-bottom: 14px; }
.kpi-card .label, .muted, .section-copy, .dropzone-subtitle, .inline-note, .info-list, .page-subtitle, .stat-box .label { color: var(--muted); }
.kpi-card .value, .stat-box .value { font-size: 28px; font-weight: 700; margin-top: 8px; }
.actions, .filters, .summary-bar, .pill-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.btn, button, select, input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="date"], input[type="datetime-local"], textarea, input[type="file"] { border-radius: 12px; }
.btn, .pagination a { border: 1px solid var(--primary-dark); background: var(--primary); color: #fff; padding: 8px 12px; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; min-height: 34px; font-size: 13px; }
.btn:hover, .pagination a:hover { background: var(--primary-dark); color: #fff; }
.btn-secondary { background: #fff; color: var(--text); border-color: var(--border); }
.btn-secondary:hover { background: #f9fafb; color: var(--text); }
.btn-danger { background: #dc2626; border-color: #b91c1c; color: #fff; }
.btn-light { background: #fff; border-color: var(--border); color: var(--text); }
.message-stack, .messages, .stack-sm { display: grid; gap: 12px; }
.message-item, .message { padding: 14px 16px; border-radius: 14px; border: 1px solid transparent; }
.message-item.success, .message-item.alert-success, .message.success { background: #ecfdf5; color: #166534; border-color: #bbf7d0; }
.message-item.error, .message-item.alert-danger, .message.error { background: #fef2f2; color: #991b1b; border-color: #fecaca; }
.message-item.warning, .message-item.alert-warning { background: #fffbeb; color: #92400e; border-color: #fde68a; }
.message-item.info, .message-item.alert-info, .message { background: #eef2f7; color: #1f2937; border-color: #eef2f7; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: var(--table-row-y) 8px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.table-compact th, .table-compact td { padding: 8px 10px; }
.pagination { margin-top: 18px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.pagination a { border-color: var(--border); background: #fff; color: var(--text); }
.pagination a:hover { background: #f8fafc; color: var(--text); }
.dropzone { border: 2px dashed #cbd5e1; border-radius: 16px; background: #f8fafc; padding: 28px; text-align: center; }
.dropzone-title { font-size: 18px; font-weight: 700; }
.import-upload-shell #id_file { display: none; }
.import-dropzone { cursor: pointer; transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease; }
.import-dropzone:focus-visible { outline: none; border-color: #1f2937; box-shadow: 0 0 0 3px rgba(31, 41, 55, .2); }
.import-dropzone.is-dragover { border-color: #1f2937; background: #eef2f7; box-shadow: 0 14px 32px rgba(31, 41, 55, .12); }
.import-dropzone__file-name { margin-top: 14px; font-weight: 700; color: #0f172a; min-height: 20px; }
.import-upload-shell { display: grid; gap: 14px; }
.import-upload-meta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.import-status-pill.is-error { background: #fee2e2; color: #b91c1c; }
.import-status-pill.is-loading { background: #fef3c7; color: #92400e; }
.import-status-pill.is-ready { background: #dcfce7; color: #166534; }
.import-empty-state { margin-top: 2px; }
.import-info-card { align-items: flex-start; justify-content: flex-start; }
.import-info-card::after { content: ''; }
.import-error-list { margin: 10px 0 0 18px; }
.import-inline-form { display: inline; }
.section-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.section-title { margin: 0; font-size: 20px; font-weight: 700; }
.badge-soft, .summary-pill, .pill { display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; padding: 8px 12px; font-size: 13px; font-weight: 700; }
.badge-soft { background: #eef2f7; color: #0f172a; }
.summary-pill, .pill { background: #fff; border: 1px solid var(--border); color: var(--text); }
.pill-success { background: #ecfdf5; border-color: #bbf7d0; color: #166534; }
.pill-warning { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.empty-state, .soft-panel, .form-box, .detail-item, .stat-box, .auth-card, .standalone-card { border: 1px solid var(--border); border-radius: 16px; background: #fff; }
.empty-state, .soft-panel, .form-box { padding: 16px; }
.empty-state { border-style: dashed; background: #f8fafc; }
.detail-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-top: 14px; }
.detail-item { padding: 14px 16px; }
.detail-item .label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 6px; }
.detail-item .value { font-weight: 700; }
.status-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.form-stack p, .form-group { margin-bottom: 14px; }
.form-stack label, .form-label, .filter-card .filter-field label { display: block; margin-bottom: 6px; font-weight: 600; }
select, input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="date"], input[type="datetime-local"], textarea { width: 100%; border: 1px solid var(--border); background: #fff; padding: 8px 10px; min-height: var(--control-height); }
.form-control { width: 100%; border: 1px solid var(--border); background: #fff; padding: 8px 10px; min-height: var(--control-height); }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.field-error, .form-error { color: #991b1b; font-size: 13px; margin-top: 4px; }
.form-help { color: var(--muted); font-size: 13px; }
.auth-shell { min-height: calc(100vh - 120px); display: flex; align-items: center; justify-content: center; }
.auth-card { width: 100%; max-width: 460px; padding: 28px; box-shadow: 0 16px 40px rgba(15, 23, 42, .08); }
.auth-logo { font-size: 14px; text-transform: uppercase; letter-spacing: .08em; color: var(--primary); font-weight: 800; margin-bottom: 10px; }
.auth-title { margin: 0 0 8px; font-size: 30px; font-weight: 800; }
.auth-subtitle { margin: 0 0 22px; }
.vote-grid { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(150px, 1fr)); }
.vote-grid.two-options { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
.vote-btn { border: none; border-radius: 14px; padding: 16px 14px; color: #fff; font-size: 16px; font-weight: 700; cursor: pointer; }
.vote-btn:hover { transform: translateY(-1px); opacity: .97; }
.vote-btn-green { background: #16a34a; }
.vote-btn-red { background: #dc2626; }
.vote-btn-yellow { background: #d97706; }
.progress-wrap { margin-top: 14px; }
.progress-label { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 6px; font-size: 14px; }
.progress-bar { width: 100%; height: 12px; background: #e5e7eb; border-radius: 999px; overflow: hidden; }
.progress-value { height: 100%; background: var(--primary); border-radius: 999px; }
.filter-card form { display: flex; gap: 12px; flex-wrap: wrap; align-items: end; }
.filter-card .filter-field { display: flex; flex-direction: column; gap: 6px; min-width: 180px; flex: 1 1 180px; }
.filter-card { display:grid; gap:16px; }
.filter-card__form { display:flex; gap:12px; flex-wrap:wrap; align-items:end; }
.filter-field-full { width:100%; margin-top: 8px; }
.segmented-filter { display:flex; gap:10px; flex-wrap:wrap; }
.segmented-filter__button { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 16px; border-radius:999px; border:1px solid var(--border); background:#fff; color:var(--text); font-weight:700; text-decoration:none; transition:all .18s ease; box-shadow:0 1px 2px rgba(15,23,42,.04); }
.segmented-filter__button:hover { border-color:var(--primary); color:var(--primary-dark); transform:translateY(-1px); }
.segmented-filter__button.is-active { background:var(--primary); border-color:var(--primary); color:#fff; box-shadow:0 10px 24px rgba(31, 41, 55,.18); }
.theme-owner .segmented-filter__button.is-active { box-shadow:0 10px 24px rgba(21,128,61,.18); }
.choice-scroll { max-height: 260px; overflow: auto; border: 1px solid var(--border); border-radius: 12px; padding: 12px; background: #fff; }
.code-block { white-space: pre-wrap; word-break: break-word; font-family: inherit; background: #f8fafc; border: 1px solid var(--border); padding: 14px; border-radius: 12px; }
.code-block-error { background: #fef2f2; border-color: #fecaca; color: #7f1d1d; }
.inline-form { display: inline; }
.d-flex { display: flex; }
.gap-2 { gap: .5rem; }
.row { display: flex; flex-wrap: wrap; gap: 16px; }
.col-md-3 { flex: 1 1 220px; }
.p-3 { padding: 1rem; }
.mb-4 { margin-bottom: 1.5rem; }
.shadow-sm { box-shadow: 0 8px 24px rgba(15, 23, 42, .04); }
.standalone-shell { min-height: 100vh; padding: 24px; background: radial-gradient(circle at top left, #ffffff 0%, transparent 28%), linear-gradient(180deg, #eef2f7 0%, #f4f6f9 100%); }
.standalone-card { max-width: 760px; margin: 56px auto; padding: 28px; box-shadow: 0 18px 48px rgba(15, 23, 42, .08); }
@media (max-width: 992px) {
    .sidebar-toggle { display: inline-flex; }
    .sidebar { transform: translateX(-110%); transition: transform .2s ease; }
    body.sidebar-open .sidebar { transform: translateX(0); }
    body.sidebar-open .sidebar-backdrop { opacity: 1; pointer-events: auto; }
    .main { margin-left: 0; padding-top: 68px; }
}
@media (max-width: 720px) {
    .vote-grid, .vote-grid.two-options, .grid-2, .kpi-grid { grid-template-columns: 1fr; }
    .topbar { flex-direction: column; }
}

.modal-open { overflow: hidden; }
[hidden] { display: none !important; }
.document-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; }
.owner-detail-view .card { margin-bottom: 14px; }
.owner-hero-card { padding: 12px; margin-bottom: 10px !important; }
.owner-hero-header { margin-bottom: 8px; }
.owner-hero-header .section-copy { margin: 4px 0 0; }
.owner-hero-actions { gap: 8px; }
.owner-detail-grid { margin-top: 6px; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; }
.owner-detail-grid--dense { grid-template-columns: repeat(4, minmax(150px, 1fr)); }
.owner-detail-grid .detail-item,
.owner-portal-grid .detail-item { padding: 8px 10px; min-height: 0; }
.owner-notes-panel { margin-top: 8px; padding: 8px 10px; }
.owner-compact-header { margin-bottom: 8px; }
.owner-portal-card { padding: 12px; }
.owner-portal-row { display:grid; grid-template-columns: 1.2fr 1.3fr auto auto; gap: 8px; align-items:end; }
.owner-activation-form { display: flex; flex-wrap: wrap; align-items: end; gap: 6px; margin: 0; }
.owner-activation-form label { font-size: 12px; margin-bottom: 2px; width: 100%; }
.owner-activation-form input { min-height: 34px; padding: 6px 8px; }
.owner-portal-info { margin: 0; padding: 8px 10px; min-height: 34px; display:flex; align-items:center; }
.owner-grid-compact { gap: 10px; }
.owner-table-wrap .table-compact th,
.owner-table-wrap .table-compact td { padding: 6px 8px; }
.owner-table-wrap .table-compact tbody tr { line-height: 1.2; }
.owner-docs-card { margin-top: 0; padding: 12px; }
.owner-document-form { padding: 10px; margin-bottom: 8px; }
.owner-document-form-grid { display: grid; grid-template-columns: repeat(2, minmax(180px, 1fr)); gap: 8px 10px; margin-bottom: 8px; }
.owner-document-form-grid .field-wrap label { display: block; margin-bottom: 4px; font-weight: 600; }
.owner-document-form-grid .field-wrap input,
.owner-document-form-grid .field-wrap select,
.owner-document-form-grid .field-wrap textarea { margin: 0; min-height: 74px; }
.owner-document-form-grid .field-wrap--full { grid-column: 1 / -1; }
.owner-document-form-grid .field-wrap input,
.owner-document-form-grid .field-wrap select { min-height: 34px; padding-top: 6px; padding-bottom: 6px; }
.owner-dashboard-grid { display:grid; grid-template-columns: 1.45fr 1fr; gap: 10px; }
.owner-dashboard-main,
.owner-dashboard-side { display:grid; gap: 10px; align-content:start; }
.owner-side-card { padding: 12px; }
@media (max-width: 992px) {
  .owner-detail-grid--dense,
  .owner-dashboard-grid,
  .owner-portal-row { grid-template-columns: 1fr; }
  .owner-document-form-grid { grid-template-columns: 1fr; }
}
.document-link-inline { font-weight:600; }
.document-preview-modal { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .18s ease; }
.document-preview-modal.is-open { opacity:1; visibility:visible; pointer-events:auto; }
.document-preview-backdrop { position:absolute; inset:0; background:rgba(15, 23, 42, 0.58); }
.document-preview-dialog { position:relative; z-index:1; width:min(1100px, 100%); max-height:calc(100vh - 48px); background:#fff; border-radius:20px; box-shadow:0 24px 80px rgba(15,23,42,.28); display:flex; flex-direction:column; overflow:hidden; }
.document-preview-header { display:flex; justify-content:space-between; gap:16px; padding:18px 20px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.document-preview-body { padding:16px; background:#f8fafc; overflow:auto; min-height:320px; }
.document-preview-frame { width:100%; min-height:75vh; border:none; background:#fff; border-radius:16px; }
.document-preview-image { display:block; max-width:100%; max-height:75vh; margin:0 auto; border-radius:16px; background:#fff; }
@media (max-width: 720px) { .document-preview-modal { padding:12px; } .document-preview-frame { min-height:65vh; } }


.decision-card { border-width: 2px; }
.decision-card .label { font-weight: 700; }
.decision-value { font-weight: 800; letter-spacing: 0.02em; }
.decision-card-positive { background: #ecfdf5; border-color: #86efac; }
.decision-card-positive .label, .decision-card-positive .value { color: #166534; }
.decision-card-negative { background: #fef2f2; border-color: #fca5a5; }
.decision-card-negative .label, .decision-card-negative .value { color: #991b1b; }
.decision-card-neutral { background: #fffbeb; border-color: #fcd34d; }
.decision-card-neutral .label, .decision-card-neutral .value { color: #92400e; }

.main-public { margin-left: 0; max-width: 1200px; margin-right: auto; padding-top: 32px; }
.auth-shell-wide { flex-direction: column; align-items: stretch; max-width: 1040px; margin: 0 auto; }
.auth-choice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; width: 100%; }
.auth-card-choice { max-width: none; }
.auth-card-manager { border-top: 4px solid #1f2937; }
.auth-card-owner { border-top: 4px solid #15803d; }
.auth-feature-list { margin: 0 0 22px; padding-left: 18px; color: var(--muted); display: grid; gap: 8px; }
.auth-note-panel { margin-top: 18px; padding: 16px 18px; border: 1px solid var(--border); border-radius: 16px; background: #fff; color: var(--muted); }
.auth-footer-links { margin-top: 18px; text-align: center; }
.auth-footer-links a { color: var(--primary-dark); font-weight: 600; text-decoration: none; }
.auth-hint { margin: 14px 0 0; color: var(--muted); font-size: 14px; }
@media (max-width: 720px) {
    .main-public { padding-top: 16px; }
    .auth-shell { min-height: auto; }
}

body.theme-manager {
    --bg: #eef2f7;
    --sidebar: linear-gradient(180deg, #0f172a 0%, #0f172a 100%);
    --sidebar-muted: #eef2f7;
    --sidebar-hover: rgba(255, 255, 255, 0.12);
    --card: rgba(255, 255, 255, 0.94);
    --border: #eef2f7;
    --primary: #1f2937;
    --primary-dark: #1f2937;
    background:
        radial-gradient(circle at top right, rgba(31, 41, 55, 0.18), transparent 24%),
        linear-gradient(180deg, #eef2f7 0%, #f8fbff 100%);
}
body.theme-owner {
    --bg: #effaf3;
    --sidebar: linear-gradient(180deg, #083344 0%, #14532d 100%);
    --sidebar-muted: #bbf7d0;
    --sidebar-hover: rgba(255, 255, 255, 0.12);
    --card: rgba(255, 255, 255, 0.95);
    --border: #d9f2df;
    --primary: #15803d;
    --primary-dark: #166534;
    background:
        radial-gradient(circle at top right, rgba(34, 197, 94, 0.16), transparent 24%),
        linear-gradient(180deg, #effaf3 0%, #f8fcf9 100%);
}
body.theme-public-neutral {
    background:
        radial-gradient(circle at top left, rgba(31, 41, 55, 0.12), transparent 25%),
        linear-gradient(180deg, #eef2f7 0%, #f8fafc 100%);
}
body.theme-public-manager {
    --primary: #1f2937;
    --primary-dark: #1f2937;
    background:
        radial-gradient(circle at top left, rgba(31, 41, 55, 0.16), transparent 24%),
        linear-gradient(180deg, #eef2f7 0%, #f8fafc 100%);
}
body.theme-public-owner {
    --primary: #15803d;
    --primary-dark: #166534;
    background:
        radial-gradient(circle at top left, rgba(34, 197, 94, 0.14), transparent 24%),
        linear-gradient(180deg, #eefbf2 0%, #f8fafc 100%);
}

.main-auth .topbar {
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(255, 255, 255, 0.58);
    box-shadow: 0 16px 32px rgba(15, 23, 42, 0.05);
    border-radius: 22px;
    padding: 18px 20px;
    backdrop-filter: blur(10px);
}
.theme-manager .page-title { color: #0f172a; }
.theme-owner .page-title { color: #14532d; }

.brand-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 22px;
    text-align: center;
}
.brand-copy { width: 100%; }
.brand-mark { display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.brand-kicker { color: rgba(255, 255, 255, 0.8); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 4px; font-weight: 600; }
.panel-context-badge {
    display: inline-flex;
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid var(--border);
    color: var(--primary-dark);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.02em;
    margin-bottom: 10px;
}
.panel-hero {
    border-width: 1px;
    overflow: hidden;
    position: relative;
}
.panel-hero::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    border-radius: 16px 0 0 16px;
    background: var(--primary);
}
.panel-hero-manager {
    background: linear-gradient(135deg, rgba(31, 41, 55, 0.08) 0%, rgba(255,255,255,0.98) 55%);
}
.panel-hero-owner {
    background: linear-gradient(135deg, rgba(34, 197, 94, 0.08) 0%, rgba(255,255,255,0.98) 55%);
}
.role-marker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.role-marker-manager { background: rgba(31, 41, 55, 0.12); color: #1f2937; }
.role-marker-owner { background: rgba(34, 197, 94, 0.12); color: #166534; }

.landing-hero {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    width: 100%;
    padding: 24px 26px;
    border-radius: 24px;
    border: 1px solid var(--border);
    background: linear-gradient(135deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.78) 100%);
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.06);
}
.landing-hero-copy { max-width: 640px; }
.landing-title { margin: 0 0 10px; font-size: 34px; line-height: 1.05; }
.landing-subtitle { margin: 0; color: var(--muted); font-size: 16px; }
.landing-pill-stack { display: flex; gap: 10px; flex-wrap: wrap; align-content: flex-start; }

.branded-panel {
    position: relative;
    overflow: hidden;
    border-width: 1px;
    box-shadow: 0 20px 42px rgba(15, 23, 42, 0.08);
}
.branded-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(145deg, rgba(255,255,255,0.24) 0%, transparent 35%);
}
.branded-panel-manager {
    border-color: #eef2f7;
    background: linear-gradient(180deg, rgba(238, 242, 247, 0.95) 0%, rgba(255,255,255,0.98) 100%);
}
.branded-panel-owner {
    border-color: #cdebd5;
    background: linear-gradient(180deg, rgba(240, 253, 244, 0.95) 0%, rgba(255,255,255,0.98) 100%);
}
.branded-panel-admin {
    border-color: #eef2f7;
    background: linear-gradient(180deg, rgba(238, 242, 247, 0.95) 0%, rgba(255,255,255,0.98) 100%);
}
.auth-hint-panel {
    margin-top: 18px;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid var(--border);
    background: rgba(255,255,255,0.76);
    color: var(--muted);
}
.theme-manager .summary-pill,
.theme-manager .badge-soft { background: #eef2f7; color: #0f172a; }
.theme-owner .summary-pill,
.theme-owner .badge-soft { background: #ecfdf5; color: #166534; }
.theme-owner .user-box { background: rgba(255,255,255,0.82); }
.theme-manager .user-box { background: rgba(255,255,255,0.82); }

@media (max-width: 720px) {
    .landing-title { font-size: 28px; }
    .brand-block { align-items: center; }
    .auth-shell-owner-login { min-height: auto; }
    .auth-brand-logo-wrap { width: 120px; min-height: 64px; }
}

.brand-mark-image {
    overflow: visible;
    background: transparent;
    padding: 0;
    border-radius: 0;
    width: 100%;
}
.brand-mark-image img {
    width: 70%;
    height: auto;
    object-fit: contain;
    display: block;
    transform-origin: center;
    transition: transform .18s ease;
    mix-blend-mode: normal;
    filter: none;
}
.brand-mark-image:hover img { transform: scale(1.05); }
.brand-hero {
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:14px;
}
.brand-hero-logo {
    max-height: 70px;
    width: auto;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    box-shadow:0 12px 28px rgba(31, 41, 55,.16);
    background:#fff;
    border-radius:18px;
}
.brand-hero-name {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--text);
}
.brand-hero-tagline {
    color: var(--muted);
    font-size: .94rem;
}
.auth-brand-top {
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:10px;
}
.auth-brand-logo {
    max-height: 70px;
    width: auto;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    border-radius:18px;
    background:#fff;
    box-shadow:0 12px 28px rgba(15,23,42,.10);
}
.auth-brand-logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 140px;
    min-height: 74px;
    padding: 8px 10px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15,23,42,.10);
    overflow: visible;
}
.auth-brand-logo-wrap .auth-brand-logo {
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    border-radius: 0;
    box-shadow: none;
}
.auth-shell-owner-login {
    min-height: calc(100vh - 210px);
}
.auth-shell-admin-login {
    min-height: calc(100vh - 210px);
}
.password-field-wrap { position: relative; }
.password-field-input { padding-right: 92px; }
.password-toggle-btn {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    border: 1px solid var(--border);
    background: #fff;
    color: var(--text);
    border-radius: 10px;
    min-height: 30px;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 700;
}
.password-toggle-btn:hover { background: #f8fafc; }
.auth-brand-top-login {
    margin-bottom: 14px;
}
.auth-brand-logo-login {
    max-height: 70px;
}
.auth-brand-tag {
    color: var(--muted);
    font-size: .94rem;
    font-weight: 600;
}


.message-item { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; box-shadow: 0 10px 28px rgba(15, 23, 42, .05); }
.message-content { flex:1 1 auto; }
.message-close { flex:0 0 auto; border:none; background:transparent; color:currentColor; font-size:20px; line-height:1; padding:0; min-width:28px; min-height:28px; opacity:.72; cursor:pointer; }
.message-close:hover { opacity:1; transform:scale(1.04); }
.message-item.is-leaving { opacity:0; transform:translateY(-6px); }

button[disabled], .btn[aria-disabled="true"] { cursor:not-allowed; opacity:.75; }
button.is-loading, input[type="submit"].is-loading { position:relative; }
button.is-loading::before { content:""; width:14px; height:14px; border:2px solid rgba(255,255,255,.5); border-top-color:#fff; border-radius:50%; display:inline-block; margin-right:8px; animation:spin .8s linear infinite; }
button.is-loading.btn-secondary::before, .btn-secondary.is-loading::before, .btn-light.is-loading::before { border-color:rgba(15,23,42,.18); border-top-color:var(--text); }


.action-confirm-modal { position:fixed; inset:0; z-index:1150; display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .18s ease; }
.action-confirm-modal.is-open { opacity:1; visibility:visible; pointer-events:auto; }
.action-confirm-backdrop { position:absolute; inset:0; background:rgba(15,23,42,.48); }
.action-confirm-dialog { position:relative; z-index:1; width:min(520px, 100%); background:#fff; border-radius:20px; box-shadow:0 24px 80px rgba(15,23,42,.24); border:1px solid var(--border); overflow:hidden; }
.action-confirm-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:20px 22px 14px; border-bottom:1px solid var(--border); }
.action-confirm-body { padding:18px 22px; }
.action-confirm-actions { display:flex; justify-content:flex-end; gap:10px; padding:0 22px 22px; }
@media (max-width: 720px) { .action-confirm-modal { padding:12px; } .action-confirm-actions { flex-direction:column-reverse; } .action-confirm-actions .btn { width:100%; } }
.page-loading-overlay { position:fixed; inset:0; z-index:1200; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(15,23,42,.38); backdrop-filter: blur(4px); }
/* PR-D (15.3): modal konfliktu reguł musi być NAD overlay "Trwa zapisywanie" (z-index 1200)
   i faktycznie się wyświetlać. .app-modal ma display:none + z-index:50 (chowa go pod overlay),
   a learned-rule-conflict-modal.js przełącza tylko atrybut [hidden] — stąd display:flex gdy widoczny. */
.rule-conflict-modal { z-index: 1300; }
.rule-conflict-modal:not([hidden]) { display: flex; }
.page-loading-card { width:min(420px, 100%); background:#fff; border:1px solid var(--border); border-radius:20px; box-shadow:0 24px 80px rgba(15,23,42,.24); padding:24px; text-align:center; }
.page-loading-spinner { width:44px; height:44px; margin:0 auto 16px; border:4px solid rgba(31, 41, 55,.18); border-top-color:var(--primary); border-radius:50%; animation:spin .9s linear infinite; }
.page-loading-title { font-size:20px; font-weight:800; margin-bottom:8px; }
.page-loading-copy { color:var(--muted); }

@keyframes spin { to { transform:rotate(360deg); } }

.kpi-card-link { display:block; text-decoration:none; color:inherit; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.kpi-card-link:hover { transform:translateY(-2px); border-color:var(--primary); box-shadow:0 12px 28px rgba(15, 23, 42, .08); }
.kpi-card-link:focus-visible { outline:3px solid rgba(31, 41, 55,.25); outline-offset:2px; }
.theme-owner .kpi-card-link:focus-visible { outline-color: rgba(21,128,61,.25); }

.checkbox-row { display:flex; align-items:flex-start; gap:10px; padding:8px 4px; border-bottom:1px solid var(--border); }
.checkbox-row:last-child { border-bottom:0; }
.checkbox-row input { margin-top:3px; }
.flatpickr-calendar { z-index: 3000; }


/* ===== SAFE UX POLISH: ONLY CSS, NO HTML/LOGIC CHANGES ===== */
.badge {
  border-radius: 999px;
  font-weight: 600;
  transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.badge:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.badge.bg-primary { background: #1f2937 !important; }
.badge.bg-success { background: #16a34a !important; }
.badge.bg-secondary { background: #1f2937 !important; }
.badge.bg-warning { background: #f59e0b !important; color: #ffffff !important; }

.btn-primary {
  background: #1f2937;
  border-color: #1f2937;
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.btn-primary:hover,
.btn-primary:focus {
  background: #1f2937;
  border-color: #1f2937;
  box-shadow: 0 4px 12px rgba(31, 41, 55, 0.22);
  transform: translateY(-1px);
}

.btn-primary:active {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(31, 41, 55, 0.18);
}


/* ===== KOLORY STATUSÓW W PANELU UCHWAŁY ===== */
.pill-primary {
  background: #eef2f7;
  border-color: #eef2f7;
  color: #1f2937;
}


.pill-secondary {
  background: #f3f4f6;
  border-color: #d1d5db;
  color: #374151;
}


/* ===== EXTRA UX ===== */

/* hover */
.pill {
  transition: all 0.15s ease;
}

.pill:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

/* expired / error */
.pill-danger {
  background: #fee2e2;
  border-color: #fecaca;
  color: #b91c1c;
}


.pill-danger {
  background: #fee2e2;
  border-color: #fecaca;
  color: #b91c1c;
}


/* ===== KOLORY GŁOSÓW ===== */
.vote-yes {
  color: #16a34a;
  font-weight: 600;
}

.vote-no {
  color: #dc2626;
  font-weight: 600;
}

/* poprawka historii */
.pill-success {
  background: #dcfce7;
  border-color: #86efac;
  color: #166534;
}


/* ===== KOLOR GŁOSU: WSTRZYMAŁ SIĘ ===== */
.vote-abstain {
  color: #d97706;
  font-weight: 600;
}


/* ===== DODATKOWE KOLORY: HISTORIA WYSYŁEK I OSTATNIE GŁOSY ===== */
.pill-primary {
  background: #eef2f7;
  border-color: #94a3b8;
  color: #1f2937;
}

.pill-secondary {
  background: #f3f4f6;
  border-color: #d1d5db;
  color: #374151;
}

.vote-yes {
  color: #15803d;
  font-weight: 700;
}

.vote-no {
  color: #dc2626;
  font-weight: 700;
}

.vote-abstain {
  color: #d97706;
  font-weight: 700;
}


/* ===== FILTR STATUSU: PRZYCISKI ZAMIAST SELECT ===== */
.status-filter-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.filter-chip {
  appearance: none;
  border: 1px solid #eef2f7;
  background: #ffffff;
  color: #1f2937;
  border-radius: 999px;
  padding: 0.7rem 1rem;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}

.filter-chip:hover {
  border-color: #94a3b8;
  background: #eef2f7;
  color: #1f2937;
}

.filter-chip.is-active {
  background: #1f2937;
  border-color: #1f2937;
  color: #ffffff;
  box-shadow: 0 4px 12px rgba(31, 41, 55, 0.18);
}


/* ===== FILTR STATUSU UCHWAŁ: KOLORY DLA WIDOCZNYCH PRZYCISKÓW ===== */
.segmented-filter__button--all {
  background: #eef2f7;
  border-color: #eef2f7;
  color: #1f2937;
}

.segmented-filter__button--draft {
  background: #f3f4f6;
  border-color: #d1d5db;
  color: #374151;
}

.segmented-filter__button--active {
  background: #dcfce7;
  border-color: #86efac;
  color: #166534;
}

.segmented-filter__button--closed {
  background: #fee2e2;
  border-color: #fecaca;
  color: #991b1b;
}

.segmented-filter__button--all.is-active {
  background: #1f2937;
  border-color: #1f2937;
  color: #ffffff;
}

.segmented-filter__button--draft.is-active {
  background: #1f2937;
  border-color: #1f2937;
  color: #ffffff;
}

.segmented-filter__button--active.is-active {
  background: #16a34a;
  border-color: #16a34a;
  color: #ffffff;
}

.segmented-filter__button--closed.is-active {
  background: #dc2626;
  border-color: #dc2626;
  color: #ffffff;
}


/* ===== FILTR STATUSU UCHWAŁ - NAPRAWIONE KOLORY ===== */
.status-filter-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.filter-chip {
  appearance: none;
  border-radius: 999px;
  padding: 0.75rem 1rem;
  font: inherit;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  border: 1px solid #eef2f7;
  transition: all 0.15s ease;
}

.filter-chip:hover {
  transform: translateY(-1px);
}

.filter-chip--all {
  background: #eef2f7 !important;
  border-color: #eef2f7 !important;
  color: #1f2937 !important;
}

.filter-chip--draft {
  background: #f3f4f6 !important;
  border-color: #d1d5db !important;
  color: #374151 !important;
}

.filter-chip--active {
  background: #dcfce7 !important;
  border-color: #86efac !important;
  color: #166534 !important;
}

.filter-chip--closed {
  background: #fee2e2 !important;
  border-color: #fecaca !important;
  color: #991b1b !important;
}

.filter-chip--all.is-active {
  background: #1f2937 !important;
  border-color: #1f2937 !important;
  color: #ffffff !important;
}

.filter-chip--draft.is-active {
  background: #1f2937 !important;
  border-color: #1f2937 !important;
  color: #ffffff !important;
}

.filter-chip--active.is-active {
  background: #16a34a !important;
  border-color: #16a34a !important;
  color: #ffffff !important;
}

.filter-chip--closed.is-active {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #ffffff !important;
}


/* ===== STATUSY = TAKIE SAME JAK PRZYCISKI ===== */
.badge.bg-success, .pill-success {
  background: #16a34a !important;
  border-color: #16a34a !important;
  color: #ffffff !important;
}

.badge.bg-secondary, .pill-draft {
  background: #1f2937 !important;
  border-color: #1f2937 !important;
  color: #ffffff !important;
}

/* MOCNIEJSZA ROBOCZA */
.pill, .badge {
  font-weight: 700;
}

.badge:contains("Robocza"), .pill:contains("Robocza") {
  background: #374151 !important;
  border-color: #374151 !important;
  color: #ffffff !important;
}

/* zamknięta */
.badge.bg-warning, .pill-warning {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #ffffff !important;
}


/* ===== KOLOR CAŁEGO WIERSZA (SUBTELNY) ===== */
.row-active {
  background: #f0fdf4;
}

.row-closed {
  background: #fef2f2;
}

.row-draft {
  background: #f9fafb;
}


/* ===== UX+ LISTA UCHWAL ===== */
.resolution-row {
  cursor: pointer;
  transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
}

.resolution-row:hover {
  transform: translateY(-1px);
  box-shadow: inset 0 0 0 9999px rgba(31, 41, 55, 0.04);
}

.resolution-row:focus {
  outline: 2px solid #94a3b8;
  outline-offset: -2px;
}

.resolution-row td {
  transition: background-color 0.12s ease;
}

.resolution-row:hover td:first-child {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.resolution-row a {
  position: relative;
  z-index: 2;
}


/* ===== ROBOCZA - FINALNY SPÓJNY KOLOR ===== */

/* status badge */
.pill-draft, .badge-draft {
  background: #374151 !important;
  border-color: #374151 !important;
  color: #ffffff !important;
}

/* filtr */
.filter-chip--draft {
  background: #374151 !important;
  border-color: #374151 !important;
  color: #ffffff !important;
}

.filter-chip--draft.is-active {
  background: #1f2937 !important;
  border-color: #1f2937 !important;
}

/* przycisk robocze uchwały */
a[href*="robocze"] {
  background: #374151 !important;
  border-color: #374151 !important;
  color: #ffffff !important;
}

a[href*="robocze"]:hover {
  background: #1f2937 !important;
  border-color: #1f2937 !important;
}


/* ===== SPOJNE STATUSY I PRZYCISKI ROBOCZE ===== */
.pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 112px;
  min-height: 40px;
  padding: 0 16px;
  border-radius: 999px;
  border-width: 1px;
  border-style: solid;
  box-sizing: border-box;
  font-weight: 700;
  line-height: 1;
}

.pill-draft {
  background: #374151 !important;
  border-color: #374151 !important;
  color: #ffffff !important;
}

.pill-success {
  background: #16a34a !important;
  border-color: #16a34a !important;
  color: #ffffff !important;
}

.pill-warning {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #ffffff !important;
}

.pill-danger {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #ffffff !important;
}

.segmented-filter__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 112px;
  min-height: 40px;
  padding: 0 16px;
  border-radius: 999px;
  box-sizing: border-box;
}

.segmented-filter__button--draft {
  background: #374151 !important;
  border-color: #374151 !important;
  color: #ffffff !important;
}

.segmented-filter__button--draft.is-active,
.segmented-filter__button--draft:hover {
  background: #1f2937 !important;
  border-color: #1f2937 !important;
  color: #ffffff !important;
}

.btn-draft-link {
  background: #374151 !important;
  border-color: #374151 !important;
  color: #ffffff !important;
}

.btn-draft-link:hover {
  background: #1f2937 !important;
  border-color: #1f2937 !important;
  color: #ffffff !important;
}


/* ===== GLOBALNA POPRAWA CZYTELNOŚCI BIAŁYCH PRZYCISKÓW ===== */
/* Dotyczy przycisków neutralnych / białych w całej aplikacji */
.btn-secondary,
.btn-light,
.btn-outline,
.btn-outline-secondary,
button.btn-secondary,
a.btn-secondary,
button.btn-light,
a.btn-light,
button.btn-outline,
a.btn-outline,
button.btn-outline-secondary,
a.btn-outline-secondary {
  background: #eef2f7 !important;
  border-color: #cbd5e1 !important;
  color: #1f2937 !important;
  font-weight: 600 !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.btn-secondary:hover,
.btn-light:hover,
.btn-outline:hover,
.btn-outline-secondary:hover,
button.btn-secondary:hover,
a.btn-secondary:hover,
button.btn-light:hover,
a.btn-light:hover,
button.btn-outline:hover,
a.btn-outline:hover,
button.btn-outline-secondary:hover,
a.btn-outline-secondary:hover {
  background: #e2e8f0 !important;
  border-color: #94a3b8 !important;
  color: #0f172a !important;
}

.btn-secondary:focus,
.btn-light:focus,
.btn-outline:focus,
.btn-outline-secondary:focus,
button.btn-secondary:focus,
a.btn-secondary:focus,
button.btn-light:focus,
a.btn-light:focus,
button.btn-outline:focus,
a.btn-outline:focus,
button.btn-outline-secondary:focus,
a.btn-outline-secondary:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.28) !important;
}

.btn-secondary:disabled,
.btn-light:disabled,
.btn-outline:disabled,
.btn-outline-secondary:disabled,
button.btn-secondary:disabled,
a.btn-secondary[aria-disabled="true"],
button.btn-light:disabled,
a.btn-light[aria-disabled="true"],
button.btn-outline:disabled,
a.btn-outline[aria-disabled="true"],
button.btn-outline-secondary:disabled,
a.btn-outline-secondary[aria-disabled="true"] {
  background: #f8fafc !important;
  border-color: #e2e8f0 !important;
  color: #94a3b8 !important;
  box-shadow: none !important;
}

/* USUNIĘTO 2026-05-19: 4 catch-all .btn:not(...) reguły wymuszające kolory na buttonach bez wariantu.
 * Bloki usunięte (linie 1166-1241):
 *   A) "Białe przyciski" - .btn:not(...) z background #eef2f7
 *   B) "Linki w nagłówkach kart" - .actions/.section-header .btn:not(...) z #eef2f7
 *   C) "MOCNIEJSZE KOLORY" - .btn-secondary/.btn-light/.btn-outline + .btn:not(...) z #cbd5e1
 *   D) "WSZYSTKIE SZARE → NIEBIESKIE" - .btn-secondary/.btn-light/.btn-outline + .btn:not(...) z #1f2937
 * Teraz buttony bez klasy wariantu = Bootstrap default (przezroczyste/jasne z borderem).
 * Primary tylko jawnie przez .btn-primary. Active states i nazwane warianty bez zmian.
 * Przywróć tylko jeśli wiesz co robisz - powodowały niebieskie bańki w całej aplikacji.
 */

/* focus */
.btn:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(31, 41, 55, 0.25) !important;
}


/* ===== DASHBOARD: KOMPAKTOWE KAFLE UCHWAŁ ===== */
.dashboard-mini-tiles {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.mini-tile {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  min-height: 98px;
  padding: 18px 20px;
  border-radius: 18px;
  border: 1px solid #eef2f7;
  text-decoration: none;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.mini-tile:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.mini-tile__label {
  font-size: 14px;
  font-weight: 600;
}

.mini-tile__value {
  font-size: 34px;
  line-height: 1;
  font-weight: 800;
}

.mini-tile--active {
  background: #f0fdf4;
  border-color: #86efac;
  color: #166534;
}

.mini-tile--draft {
  background: #f3f4f6;
  border-color: #d1d5db;
  color: #374151;
}

.mini-tile--closed {
  background: #fef2f2;
  border-color: #fecaca;
  color: #b91c1c;
}

.mini-tile--neutral {
  background: #eef2f7;
  border-color: #eef2f7;
  color: #1f2937;
}

@media (max-width: 1100px) {
  .dashboard-mini-tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .dashboard-mini-tiles {
    grid-template-columns: 1fr;
  }

  .mini-tile {
    min-height: 88px;
  }

  .mini-tile__value {
    font-size: 28px;
  }
}


/* ===== KONTROLA SUMY UDZIAŁÓW ===== */
.share-warning-card {
  background: #fff7ed;
  border-color: #fdba74;
}

.share-ok-card {
  background: #f0fdf4;
  border-color: #86efac;
}

.share-warning-card .section-title {
  color: #9a3412;
}

.share-ok-card .section-title {
  color: #166534;
}


/* ===== DASHBOARD: KOLORY STATUSÓW W NAJNOWSZYCH UCHWAŁACH ===== */
.pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 112px;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid transparent;
  box-sizing: border-box;
  font-weight: 700;
  line-height: 1;
}

.pill-draft {
  background: #374151 !important;
  border-color: #374151 !important;
  color: #ffffff !important;
}

.pill-success {
  background: #16a34a !important;
  border-color: #16a34a !important;
  color: #ffffff !important;
}

.pill-danger {
  background: #dc2626 !important;
  border-color: #dc2626 !important;
  color: #ffffff !important;
}


/* ===== FINAL UI NORMALIZATION ===== */
:root {
  --status-active-bg: #dcfce7;
  --status-active-border: #86efac;
  --status-active-text: #166534;
  --status-accepted-bg: #eef2f7;
  --status-accepted-border: #94a3b8;
  --status-accepted-text: #1f2937;
  --status-draft-bg: #f3f4f6;
  --status-draft-border: #d1d5db;
  --status-draft-text: #374151;
  --status-closed-bg: #e5e7eb;
  --status-closed-border: #cbd5e1;
  --status-closed-text: #334155;
  --status-warning-bg: #ffedd5;
  --status-warning-border: #fdba74;
  --status-warning-text: #9a3412;
  --status-danger-bg: #fee2e2;
  --status-danger-border: #fca5a5;
  --status-danger-text: #b91c1c;
}

.pill,
.badge-soft,
.summary-pill,
.segmented-filter__button {
  box-shadow: none !important;
}

.pill-success,
.badge-success {
  background: var(--status-active-bg) !important;
  border-color: var(--status-active-border) !important;
  color: var(--status-active-text) !important;
}

.pill-primary,
.badge-primary {
  background: var(--status-accepted-bg) !important;
  border-color: var(--status-accepted-border) !important;
  color: var(--status-accepted-text) !important;
}

.pill-draft,
.badge-draft {
  background: var(--status-draft-bg) !important;
  border-color: var(--status-draft-border) !important;
  color: var(--status-draft-text) !important;
}

.pill-secondary,
.badge-secondary {
  background: var(--status-closed-bg) !important;
  border-color: var(--status-closed-border) !important;
  color: var(--status-closed-text) !important;
}

.pill-warning,
.badge-warning {
  background: var(--status-warning-bg) !important;
  border-color: var(--status-warning-border) !important;
  color: var(--status-warning-text) !important;
}

.pill-danger,
.badge-danger {
  background: var(--status-danger-bg) !important;
  border-color: var(--status-danger-border) !important;
  color: var(--status-danger-text) !important;
}

.progress-value--for {
  background: #16a34a !important;
}

.progress-value--against {
  background: #dc2626 !important;
}

.progress-value--abstain {
  background: #d97706 !important;
}

.owner-activation-preview {
  min-height: 96px;
}

.owner-activation-preview.is-loading {
  opacity: .6;
  pointer-events: none;
}

.owner-activation-empty {
  padding: 18px;
  border: 1px dashed var(--border);
  border-radius: 16px;
  background: #f8fafc;
  color: var(--muted);
}

.owner-activation-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}

.owner-activation-loading {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--muted);
}

.owner-activation-spinner {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 2px solid #cbd5e1;
  border-top-color: var(--primary);
  animation: owner-activation-spin .7s linear infinite;
}

.owner-checkbox-cell {
  width: 76px;
}

.owner-checkbox-cell input[disabled] {
  opacity: .45;
  cursor: not-allowed;
}

@keyframes owner-activation-spin {
  to { transform: rotate(360deg); }
}

.sidebar-unread-pill {
  display: inline-flex;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  margin-left: 8px;
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  background: #dc2626;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.topbar-unread-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  background: #eef2f7;
  color: #0f172a;
  font-weight: 700;
  text-decoration: none;
}
.notification-card-unread {
  border-left: 4px solid #f59e0b;
}
.filters-grid--4 {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.checkbox-inline {
  display: flex;
  gap: 10px;
  align-items: center;
}
.bulk-actions-bar {
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.status-pill {
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    border-radius:999px;
    font-size:13px;
    font-weight:700;
    border:1px solid transparent;
}
.status-pill-active, .status-pill-info {
    background:#e0f2fe;
    color:#075985;
    border-color:#bae6fd;
}
.status-pill-for {
    background:#ecfdf5;
    color:#166534;
    border-color:#bbf7d0;
}
.status-pill-against {
    background:#fef2f2;
    color:#991b1b;
    border-color:#fecaca;
}
.status-pill-abstain, .status-pill-pending {
    background:#fffbeb;
    color:#92400e;
    border-color:#fde68a;
}
.status-pill-neutral {
    background:#f3f4f6;
    color:#374151;
    border-color:#d1d5db;
}

.owner-dashboard-hero { margin-bottom: 18px; }
.owner-shortcut-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:16px;
    margin-bottom:20px;
}
.owner-shortcut-card {
    text-decoration:none;
    color:var(--text);
    background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(244,251,246,.98) 100%);
    border:1px solid var(--border);
    border-radius:18px;
    padding:20px;
    box-shadow:0 10px 28px rgba(21,128,61,.08);
    display:flex;
    flex-direction:column;
    gap:8px;
}
.owner-shortcut-card:hover {
    transform:translateY(-2px);
    box-shadow:0 18px 34px rgba(21,128,61,.12);
}
.owner-shortcut-card--highlight {
    border-color:#86efac;
    background:linear-gradient(180deg, #ffffff 0%, #ecfdf5 100%);
}
.owner-shortcut-card__label, .owner-shortcut-card__meta { color:var(--muted); }
.owner-shortcut-card__value {
    font-size:32px;
    font-weight:800;
    color:#166534;
}
.owner-kpi-card__community { font-size:18px !important; line-height:1.4; }
.owner-property-list, .owner-resolution-list { display:grid; gap:12px; }
.owner-property-card, .owner-resolution-card {
    border:1px solid var(--border);
    border-radius:16px;
    background:#fff;
    padding:16px;
}
.owner-property-card {
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
}
.owner-property-card__title { font-weight:700; }
.owner-resolution-card__header, .owner-resolution-card__body, .owner-vote-summary-card__top {
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:flex-start;
    flex-wrap:wrap;
}
.owner-resolution-card__title { margin:0 0 4px; font-size:18px; }
.owner-resolution-card__meta {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    color:var(--muted);
    font-size:14px;
}
.owner-resolution-card__body { margin-top:14px; align-items:center; }
.owner-resolution-card__status-block, .owner-resolution-card__actions {
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    align-items:center;
}

.theme-owner .btn-secondary-owner {
    background:#f0fdf4;
    color:#166534;
    border-color:#bbf7d0;
}
.theme-owner .btn-secondary-owner:hover {
    background:#dcfce7;
    color:#14532d;
    border-color:#86efac;
}
.theme-owner .btn-vote-for {
    background:#16a34a;
    border-color:#15803d;
    color:#fff;
}
.theme-owner .btn-vote-for:hover { background:#15803d; }
.theme-owner .btn-vote-against {
    background:#dc2626;
    border-color:#b91c1c;
    color:#fff;
}
.theme-owner .btn-vote-against:hover { background:#b91c1c; }
.theme-owner .btn-vote-abstain {
    background:#d97706;
    border-color:#b45309;
    color:#fff;
}
.theme-owner .btn-vote-abstain:hover { background:#b45309; }

.owner-resolution-document {
    margin-top:14px;
    padding:22px 24px;
    border-radius:18px;
    border:1px solid #ccead4;
    background:linear-gradient(180deg, #ffffff 0%, #f8fff9 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.owner-resolution-document__kicker {
    margin-bottom:14px;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#166534;
}
.owner-resolution-document__body {
    font-size:16px;
    line-height:1.8;
    color:#1f2937;
    white-space:normal;
}
.owner-kpi-date { font-size:20px !important; }
.owner-status-value { margin-top:8px; }
.owner-choice-group { display:grid; gap:10px; }
.choice-button-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:12px;
}
.choice-button-grid--compact { grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); }
.choice-button-card {
    position:relative;
    display:flex;
    flex-direction:column;
    gap:6px;
    padding:16px;
    border-radius:16px;
    border:1px solid var(--border);
    background:#fff;
    cursor:pointer;
    min-height:88px;
}
.choice-button-card input {
    position:absolute;
    inset:0;
    opacity:0;
    cursor:pointer;
}
.choice-button-card__title { font-weight:700; }
.choice-button-card__meta { color:var(--muted); font-size:14px; }
.choice-button-card:has(input:checked), .choice-button-card--selected-static {
    border-color:#16a34a;
    background:#ecfdf5;
    box-shadow:0 0 0 3px rgba(34,197,94,.12);
}
.choice-button-card--compact { min-height:70px; justify-content:center; }
.owner-vote-summary-card--for { background:#f0fdf4; border-color:#bbf7d0; }
.owner-vote-summary-card--against { background:#fef2f2; border-color:#fecaca; }
.owner-vote-summary-card--abstain { background:#fffbeb; border-color:#fde68a; }
.owner-result-box--for { background:#f0fdf4; }
.owner-result-box--against { background:#fef2f2; }
.owner-result-box--abstain { background:#fffbeb; }
.empty-state-success { background:#f0fdf4; border-style:solid; border-color:#bbf7d0; }
.empty-state-warning { background:#fffbeb; border-style:solid; border-color:#fde68a; }
.empty-state-neutral { background:#f8fafc; border-style:solid; border-color:#d1d5db; }

@media (max-width: 720px) {
    .owner-resolution-card__header, .owner-resolution-card__body, .owner-property-card { align-items:flex-start; }
    .owner-shortcut-grid, .choice-button-grid, .choice-button-grid--compact { grid-template-columns:1fr; }
}


/* ===== OWNER UX ROUND 2 ===== */
.theme-owner .btn-primary,
.theme-owner .btn-secondary,
.theme-owner .btn-light,
.theme-owner .btn-outline,
.theme-owner .btn-outline-secondary,
.theme-owner .btn:not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-draft-link):not(.btn-vote-for):not(.btn-vote-against):not(.btn-vote-abstain) {
    background: linear-gradient(180deg, #34d399 0%, #16a34a 100%) !important;
    border-color: #15803d !important;
    color: #ffffff !important;
    box-shadow: 0 10px 24px rgba(22, 163, 74, 0.18) !important;
}
.theme-owner .btn-primary:hover,
.theme-owner .btn-secondary:hover,
.theme-owner .btn-light:hover,
.theme-owner .btn-outline:hover,
.theme-owner .btn-outline-secondary:hover,
.theme-owner .btn:not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-draft-link):not(.btn-vote-for):not(.btn-vote-against):not(.btn-vote-abstain):hover {
    background: linear-gradient(180deg, #22c55e 0%, #15803d 100%) !important;
    border-color: #166534 !important;
    color: #ffffff !important;
}
.owner-shortcut-grid--interactive {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.owner-shortcut-card--button {
    position: relative;
    overflow: hidden;
    min-height: 188px;
}
.owner-shortcut-card--button::after {
    content: "";
    position: absolute;
    inset: auto -20px -35px auto;
    width: 110px;
    height: 110px;
    border-radius: 999px;
    background: rgba(22, 163, 74, 0.08);
}
.owner-shortcut-card__cta {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 12px;
    background: #166534;
    color: #fff;
    font-weight: 700;
    width: fit-content;
}
.owner-kpi-card--community {
    border: 1px solid #ccead4;
    background: linear-gradient(180deg, #ffffff 0%, #f6fff8 100%);
}
.owner-kpi-card__meta {
    margin-top: 10px;
    line-height: 1.5;
}
.owner-resolution-section {
    border-color: #d5f2dd;
    background: linear-gradient(180deg, #ffffff 0%, #fbfffc 100%);
}
.owner-resolution-card {
    border-color: #d9efe0;
    background: linear-gradient(180deg, #ffffff 0%, #fbfefc 100%);
    box-shadow: 0 10px 24px rgba(21, 128, 61, 0.06);
}
.owner-resolution-card__body--stacked {
    align-items: stretch;
}
.owner-resolution-card__status-row,
.owner-resolution-card__actions--spread {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}
.owner-resolution-card__progress {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 12px;
    border-radius: 999px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    color: #166534;
    font-weight: 600;
}
.owner-resolution-card__cta {
    min-width: 210px;
    justify-content: center;
}
.owner-resolution-card__vote-hint {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.owner-vote-history-card {
    margin-top: 20px;
    border-color: #dcefe2;
}
.owner-history-table table tbody tr:hover {
    background: #f7fff8;
}
.owner-resolution-hero--premium {
    border-color: #cdebd5;
    background: linear-gradient(180deg, #ffffff 0%, #f7fff9 100%);
}
.owner-resolution-document {
    position: relative;
    padding: 28px 30px;
}
.owner-resolution-document::before {
    content: "§";
    position: absolute;
    top: 18px;
    right: 22px;
    font-size: 42px;
    line-height: 1;
    font-weight: 800;
    color: rgba(22, 101, 52, 0.10);
}
.owner-resolution-document__body--formatted {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 17px;
    line-height: 1.95;
    letter-spacing: 0.01em;
}
.owner-resolution-document__body--formatted p {
    margin: 0 0 1.1em;
}
.owner-resolution-kpi-grid .kpi-card {
    border-color: #d7ecdd;
    background: linear-gradient(180deg, #ffffff 0%, #fbfefc 100%);
}
.owner-status-value .status-pill {
    font-size: 14px;
    padding: 10px 14px;
}
.owner-vote-form {
    gap: 18px;
}
.choice-button-card {
    transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.choice-button-card:hover {
    transform: translateY(-1px);
    border-color: #86efac;
    box-shadow: 0 10px 24px rgba(22, 163, 74, 0.08);
}
.choice-button-card:has(input:checked), .choice-button-card--selected-static {
    border-color:#16a34a;
    background: linear-gradient(180deg, #f2fff6 0%, #ecfdf5 100%);
    box-shadow:0 0 0 3px rgba(34,197,94,.12), 0 10px 22px rgba(22,163,74,.10);
}
.choice-button-card--compact {
    min-height: 76px;
}
.vote-grid-owner .vote-btn {
    min-height: 58px;
    border-radius: 16px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
    letter-spacing: .01em;
}
.vote-grid-owner .vote-btn-green { background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%); }
.vote-grid-owner .vote-btn-red { background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%); }
.vote-grid-owner .vote-btn-yellow { background: linear-gradient(180deg, #f59e0b 0%, #d97706 100%); }
.owner-detail-bottom-grid .card {
    border-color: #dbeee1;
}
.owner-vote-summary-card {
    border-width: 1px;
    border-style: solid;
}
.owner-vote-summary-card .muted {
    color: #475569;
}
.owner-results-grid {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}
.owner-result-box {
    border: 1px solid transparent;
}
.owner-result-box--for {
    border-color: #bbf7d0;
    color: #166534;
}
.owner-result-box--against {
    border-color: #fecaca;
    color: #991b1b;
}
.owner-result-box--abstain {
    border-color: #fde68a;
    color: #92400e;
}
@media (max-width: 720px) {
    .owner-shortcut-card--button { min-height: auto; }
    .owner-resolution-card__cta { min-width: 100%; }
    .owner-resolution-document { padding: 22px 18px; }
    .owner-resolution-document::before { display: none; }
}

/* ===== OWNER DASHBOARD APP LIST ROUND 3 ===== */
.owner-resolution-list--app {
    gap: 14px;
}
.owner-resolution-card--app {
    padding: 18px 18px 16px;
    border-radius: 18px;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.owner-resolution-card--app:hover {
    transform: translateY(-1px);
    border-color: #b7e4c3;
    box-shadow: 0 18px 34px rgba(21, 128, 61, 0.1);
}
.owner-resolution-card__header--app {
    align-items: flex-start;
    gap: 16px;
}
.owner-resolution-card__main {
    flex: 1 1 520px;
    min-width: 0;
}
.owner-resolution-card__side {
    min-width: 132px;
    padding: 12px 14px;
    border-radius: 16px;
    background: #f6fff8;
    border: 1px solid #d8efe0;
    text-align: right;
}
.owner-resolution-card__progress-label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    color: #64748b;
    text-transform: uppercase;
}
.owner-resolution-card__progress-value {
    margin-top: 6px;
    font-size: 28px;
    line-height: 1;
    font-weight: 800;
    color: #166534;
}
.owner-resolution-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}
.owner-resolution-card__progressbar {
    margin-top: 14px;
    height: 10px;
    border-radius: 999px;
    background: #e8f5ec;
    overflow: hidden;
}
.owner-resolution-card__progressbar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #34d399 0%, #16a34a 100%);
    box-shadow: inset 0 0 0 1px rgba(22, 163, 74, 0.08);
}
.owner-resolution-card__footer--app {
    margin-top: 16px;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
}
.owner-resolution-card__vote-hint--stack {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.owner-resolution-card__hint-text,
.owner-resolution-card__remaining {
    color: #475569;
    font-size: 14px;
}
.owner-resolution-card__cta-group {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.owner-resolution-card__secondary {
    min-width: 120px;
}
.owner-history-table .table-compact td,
.owner-history-table .table-compact th {
    white-space: normal;
}
@media (max-width: 920px) {
    .owner-resolution-card__side {
        min-width: 100%;
        text-align: left;
    }
    .owner-resolution-card__footer--app,
    .owner-resolution-card__cta-group {
        width: 100%;
    }
    .owner-resolution-card__cta-group .btn {
        flex: 1 1 180px;
    }
}
@media (max-width: 720px) {
    .owner-resolution-card--app {
        padding: 16px;
    }
    .owner-resolution-card__progress-value {
        font-size: 24px;
    }
    .owner-resolution-card__cta-group .btn,
    .owner-resolution-card__secondary,
    .owner-resolution-card__cta {
        min-width: 100%;
        width: 100%;
    }
    .owner-resolution-card__vote-hint--stack {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ===== OWNER BIG PACK ===== */
.owner-dashboard-hero--wide {
    border-color: #cfead7;
    background: linear-gradient(180deg, #ffffff 0%, #f3fff7 100%);
}
.owner-dashboard-hero__header {
    align-items: flex-start;
    gap: 16px;
}
.owner-dashboard-hero__summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}
.owner-summary-chip {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #d8e5dc;
    font-weight: 700;
    color: #1f2937;
}
.owner-summary-chip--green {
    background: #ecfdf5;
    border-color: #bbf7d0;
    color: #166534;
}
.owner-shortcut-grid--four {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.owner-shortcut-card--section {
    min-height: 196px;
}
.owner-shortcut-card--urgent {
    border-color: #86efac;
    background: linear-gradient(180deg, #ffffff 0%, #f0fdf4 100%);
}
.owner-dashboard-banner-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    gap: 16px;
    margin-bottom: 20px;
}
.owner-community-banner {
    border-color: #cfead7;
    background: linear-gradient(180deg, #ffffff 0%, #f9fff9 100%);
}
.owner-community-banner__label {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #64748b;
}
.owner-community-banner__value {
    margin-top: 6px;
    font-size: 24px;
    font-weight: 800;
    color: #14532d;
}
.owner-community-banner__meta {
    margin-top: 8px;
    color: #64748b;
}
.owner-status-overview {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.owner-status-overview__item {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 18px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.owner-status-overview__item--pending {
    background: #fff7ed;
    border-color: #fed7aa;
}
.owner-status-overview__item--partial {
    background: #eef2f7;
    border-color: #eef2f7;
}
.owner-status-overview__item--done {
    background: #ecfdf5;
    border-color: #bbf7d0;
}
.owner-status-overview__value {
    font-size: 32px;
    font-weight: 800;
    line-height: 1;
}
.owner-status-overview__label {
    color: #64748b;
    font-weight: 600;
}
.owner-property-list--cards {
    gap: 14px;
}
.owner-property-card--full {
    align-items: flex-start;
    gap: 14px;
    padding: 18px;
}
.owner-property-card__eyebrow {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #64748b;
    margin-bottom: 6px;
}
.owner-property-card__meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 8px;
    color: #64748b;
    font-size: 14px;
}
.owner-property-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}
.owner-resolution-list--dense {
    gap: 16px;
}
.owner-resolution-card--dense {
    padding: 20px;
}
.owner-resolution-card--ready {
    border-color: #9be1b4;
    box-shadow: 0 16px 34px rgba(21, 128, 61, 0.12);
}
.owner-resolution-card__side--summary {
    min-width: 148px;
}
.owner-resolution-card__side-meta {
    margin-top: 8px;
    color: #64748b;
    font-size: 13px;
}
.owner-resolution-card__progressbar--strong {
    height: 12px;
    background: #def7e7;
}
.owner-resolution-card__footer--dense {
    align-items: stretch;
}
.owner-resolution-card__vote-hint--card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 12px 14px;
}
.owner-resolution-card__result-pill {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
}
.owner-resolution-card__result-pill--positive {
    background: #ecfdf5;
    color: #166534;
    border: 1px solid #bbf7d0;
}
.owner-resolution-card__result-pill--negative {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
}
.owner-resolution-card__result-pill--neutral {
    background: #f3f4f6;
    color: #374151;
    border: 1px solid #d1d5db;
}
.owner-resolution-card__cta-group--triple .btn {
    min-width: 132px;
}
.owner-resolution-hero--expanded {
    gap: 18px;
}
.owner-resolution-hero__top {
    align-items: flex-start;
}
.owner-resolution-hero__actions {
    justify-content: flex-end;
}
.owner-resolution-status-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
    margin-bottom: 16px;
}
.owner-resolution-status-strip__item {
    background: #ffffff;
    border: 1px solid #d7ecdd;
    border-radius: 16px;
    padding: 16px;
}
.owner-resolution-status-strip__value {
    margin-top: 8px;
}
.owner-resolution-status-strip__value--number {
    font-size: 28px;
    font-weight: 800;
    color: #14532d;
}
.owner-resolution-document--paper {
    max-width: 100%;
    background: linear-gradient(180deg, #fffdfa 0%, #ffffff 100%);
    border-color: #dfe9df;
}
.owner-resolution-document__body--paper {
    max-width: 92ch;
}
.owner-resolution-kpi-grid--accent .kpi-card {
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}
.owner-vote-panel--expanded {
    border-color: #d4eddb;
    background: linear-gradient(180deg, #ffffff 0%, #fbfffc 100%);
}
.choice-button-grid--properties {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.choice-button-card--property {
    min-height: 132px;
}
.choice-button-card__state-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: auto;
}
.choice-button-card__state-copy {
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
}
.choice-button-card--disabled {
    cursor: default;
    opacity: .88;
}
.choice-button-card--disabled input {
    cursor: default;
}
.choice-button-card--voted {
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}
.choice-button-grid--actions {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
.choice-button-card--action {
    min-height: 96px;
}
.owner-vote-form--expanded {
    gap: 20px;
}
.owner-vote-summary-list {
    gap: 12px;
}
.owner-vote-summary-card--strong {
    padding: 16px;
    border-radius: 16px;
}
.owner-results-grid--stacked {
    margin-bottom: 14px;
}
.owner-results-bar-stack {
    display: grid;
    gap: 10px;
}
.owner-results-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 46px;
    padding: 0 14px;
    border-radius: 14px;
    border: 1px solid transparent;
    font-weight: 700;
}
.owner-results-bar--for {
    background: #ecfdf5;
    border-color: #bbf7d0;
    color: #166534;
}
.owner-results-bar--against {
    background: #fef2f2;
    border-color: #fecaca;
    color: #991b1b;
}
.owner-results-bar--abstain {
    background: #fffbeb;
    border-color: #fde68a;
    color: #92400e;
}
.theme-owner .btn-secondary.btn-secondary-owner,
.theme-owner .btn-secondary-owner,
.theme-owner a.btn-secondary-owner {
    background: linear-gradient(180deg, #f0fdf4 0%, #dcfce7 100%) !important;
    color: #166534 !important;
    border-color: #86efac !important;
    box-shadow: 0 10px 24px rgba(22, 163, 74, 0.10) !important;
}
.theme-owner .btn-secondary.btn-secondary-owner:hover,
.theme-owner .btn-secondary-owner:hover,
.theme-owner a.btn-secondary-owner:hover {
    background: linear-gradient(180deg, #dcfce7 0%, #bbf7d0 100%) !important;
    color: #14532d !important;
    border-color: #4ade80 !important;
}
@media (max-width: 1080px) {
    .owner-dashboard-banner-grid,
    .owner-resolution-status-strip {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 920px) {
    .owner-status-overview {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 720px) {
    .owner-dashboard-hero__summary,
    .owner-resolution-hero__actions,
    .owner-property-card__badges,
    .owner-resolution-card__cta-group--triple {
        width: 100%;
        justify-content: stretch;
    }
    .owner-resolution-card__cta-group--triple .btn,
    .owner-property-card__badges .btn {
        width: 100%;
    }
    .owner-resolution-status-strip__value--number,
    .owner-status-overview__value,
    .owner-community-banner__value {
        font-size: 24px;
    }
}

.theme-owner .status-pill-active { background:#ecfdf5; color:#166534; border-color:#bbf7d0; }

.form-shell { padding: 24px; }
.form-shell__layout { display:grid; grid-template-columns:minmax(0, 1.7fr) minmax(280px, .9fr); gap:20px; align-items:start; }
.form-shell__main, .form-shell__aside { min-width:0; }
.form-shell__header { margin-bottom: 8px; }
.form-section { border:1px solid var(--border); border-radius:18px; background:#fff; padding:18px; }
.section-header.compact { margin-bottom: 14px; }
.form-field-card { background:linear-gradient(180deg, #ffffff 0%, #fbfcff 100%); }
.form-field-card.has-errors { border-color:#fecaca; box-shadow:0 0 0 1px rgba(239,68,68,.08); }
.form-field-card--checkbox { display:flex; flex-direction:column; justify-content:center; }
.form-field-input { display:flex; flex-direction:column; gap:8px; }
.form-help { margin-top:8px; }
.form-input,
.form-shell select,
.form-shell input[type="text"],
.form-shell input[type="email"],
.form-shell input[type="password"],
.form-shell input[type="number"],
.form-shell input[type="datetime-local"],
.form-shell textarea {
  width:100%;
  min-height:46px;
  border-radius:14px;
  border:1px solid var(--border);
  background:#fff;
  padding:12px 14px;
  color:var(--text);
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.form-shell textarea { min-height:120px; resize:vertical; }
.form-shell select:focus,
.form-shell input:focus,
.form-shell textarea:focus,
.form-input:focus {
  border-color:#94a3b8;
  box-shadow:0 0 0 4px rgba(31, 41, 55,.12);
  outline:none;
}
.checkbox-input { width:20px; height:20px; accent-color:#1f2937; }
.form-side-card { padding:18px; }
.inline-checklist { margin:0; padding-left:18px; display:grid; gap:10px; color:var(--muted); }
.owner-activation-toolbar { display:flex; justify-content:space-between; gap:14px; align-items:center; margin-bottom:14px; flex-wrap:wrap; }
.owner-activation-toolbar__actions { justify-content:flex-end; }
.grid-span-2 { grid-column: span 2; }
.row-highlight { background: #eef2f7; }
.owner-contact-list { display: grid; gap: 10px; }
.owner-contact-row { padding: 12px 14px; }
.owner-contact-row.is-hidden { display: none; }
.owner-contact-grid { display: grid; gap: 10px; align-items: end; }
.owner-contact-grid--email { grid-template-columns: minmax(260px, 1.5fr) repeat(2, minmax(120px, auto)) auto; }
.owner-contact-grid--phone { grid-template-columns: minmax(180px, 1.2fr) minmax(130px, .8fr) repeat(2, minmax(100px, auto)) minmax(180px, 1.3fr) auto; }
.owner-contact-actions { justify-content: flex-end; align-items: end; }
.owner-contact-delete { display: none; }

@media (max-width: 980px) {
  .form-shell__layout { grid-template-columns:1fr; }
  .owner-contact-grid--email,
  .owner-contact-grid--phone { grid-template-columns: 1fr 1fr; }
  .owner-contact-actions { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .grid-span-2 { grid-column:auto; }
  .form-shell { padding:18px; }
  .form-section { padding:16px; }
  .owner-contact-grid--email,
  .owner-contact-grid--phone { grid-template-columns: 1fr; }
}

/* ===== OWNER FINAL TUNING ===== */
.owner-shortcut-card--notifications .owner-shortcut-card__value {
    color: #0f766e;
}
.owner-resolution-section--priority {
    margin-bottom: 18px;
    border-color: #cfead7;
    background: linear-gradient(180deg, #ffffff 0%, #f7fff9 100%);
}
.owner-resolution-list--priority .owner-resolution-card--done {
    border-color: #d7ecdd;
}
.owner-resolution-group-title {
    margin: 6px 0 4px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #1f2937;
}
.owner-resolution-group-title--secondary {
    margin-top: 14px;
    color: #1f2937;
}
.owner-resolution-list--results .owner-resolution-card--result-positive {
    border-color: #bbf7d0;
    background: linear-gradient(180deg, #ffffff 0%, #f6fff8 100%);
}
.owner-resolution-list--results .owner-resolution-card--result-negative {
    border-color: #fecaca;
    background: linear-gradient(180deg, #ffffff 0%, #fff7f7 100%);
}
.owner-resolution-list--results .owner-resolution-card--result-warning {
    border-color: #fde68a;
    background: linear-gradient(180deg, #ffffff 0%, #fffdf5 100%);
}
.owner-resolution-list--results .owner-resolution-card--result-info {
    border-color: #eef2f7;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
}
.owner-resolution-card__side--positive {
    background: #ecfdf5;
    border-color: #bbf7d0;
    color: #166534;
}
.owner-resolution-card__side--negative {
    background: #fef2f2;
    border-color: #fecaca;
    color: #991b1b;
}
.owner-resolution-card__side--warning {
    background: #fffbeb;
    border-color: #fde68a;
    color: #92400e;
}
.owner-resolution-card__side--info {
    background: #eef2f7;
    border-color: #eef2f7;
    color: #1f2937;
}
.owner-resolution-card__result-pill--warning {
    background: #fffbeb;
    color: #92400e;
    border: 1px solid #fde68a;
}
.owner-resolution-card__result-pill--info {
    background: #eef2f7;
    color: #1f2937;
    border: 1px solid #eef2f7;
}
.owner-resolution-card__progressbar--positive {
    background: #dcfce7;
}
.owner-resolution-card__progressbar--positive span {
    background: linear-gradient(90deg, #22c55e 0%, #16a34a 100%);
}
.owner-resolution-card__progressbar--negative {
    background: #fee2e2;
}
.owner-resolution-card__progressbar--negative span {
    background: linear-gradient(90deg, #f87171 0%, #dc2626 100%);
}
.owner-resolution-card__progressbar--warning {
    background: #fef3c7;
}
.owner-resolution-card__progressbar--warning span {
    background: linear-gradient(90deg, #fbbf24 0%, #d97706 100%);
}
.owner-resolution-card__progressbar--info {
    background: #eef2f7;
}
.owner-resolution-card__progressbar--info span {
    background: linear-gradient(90deg, #94a3b8 0%, #1f2937 100%);
}
.owner-resolution-card__vote-hint--results {
    background: rgba(255,255,255,0.8);
}
@media (max-width: 1080px) {
    .owner-dashboard-grid {
        grid-template-columns: 1fr;
    }
}

.choice-button-grid--properties-strong {
    gap: 16px;
}
.choice-button-card--property-strong {
    min-height: 148px;
    padding: 18px 18px 16px;
    border-color: #bbf7d0;
    box-shadow: 0 8px 24px rgba(20, 83, 45, 0.05);
}
.choice-button-card--property-strong .choice-button-card__title {
    font-size: 1.05rem;
}
.choice-button-card__select-hint {
    margin-top: 10px;
    font-size: 12px;
    font-weight: 700;
    color: #166534;
    letter-spacing: 0.01em;
}
.choice-button-card--property-strong:has(input:checked),
.choice-button-card--property-strong.choice-button-card--selected-static {
    border-color: #16a34a;
    background: linear-gradient(180deg, #ecfdf5 0%, #dcfce7 100%);
    box-shadow: 0 0 0 4px rgba(34, 197, 94, .16), 0 18px 36px rgba(22, 163, 74, .12);
    transform: translateY(-1px);
}
.choice-button-card--property-strong:not(.choice-button-card--disabled):hover {
    border-color: #22c55e;
    box-shadow: 0 12px 28px rgba(22, 163, 74, .10);
}
.owner-choice-help {
    margin-top: -4px;
    margin-bottom: 4px;
}
.owner-vote-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}
.owner-vote-toolbar .btn {
    min-width: 180px;
    justify-content: center;
}
@media (max-width: 720px) {
    .owner-vote-toolbar {
        display: grid;
        grid-template-columns: 1fr;
    }
    .owner-vote-toolbar .btn {
        width: 100%;
        min-width: 0;
    }
}

.owner-quick-vote-list {
    display: grid;
    gap: 12px;
    width: 100%;
    margin-top: 16px;
    border: 1px dashed #eef2f7;
    border-radius: 14px;
    padding: 12px;
    background: #fff;
}

.owner-quick-vote-list__title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-muted);
    cursor: pointer;
    list-style: none;
}
.owner-quick-vote-list__title::-webkit-details-marker {
    display: none;
}
.owner-quick-vote-list__title::before {
    content: '▸';
    margin-right: 6px;
    color: #1f2937;
}
.owner-quick-vote-list[open] .owner-quick-vote-list__title::before {
    content: '▾';
}

.owner-quick-vote-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border: 1px solid rgba(34, 197, 94, 0.18);
    border-radius: 16px;
    background: rgba(240, 253, 244, 0.8);
}

.owner-quick-vote-row__property {
    display: grid;
    gap: 4px;
}

.owner-quick-vote-row__property span {
    font-size: 0.88rem;
    color: var(--text-muted);
}

.owner-quick-vote-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.owner-quick-vote-btn {
    min-width: 120px;
}

@media (max-width: 960px) {
    .owner-quick-vote-row {
        flex-direction: column;
        align-items: stretch;
    }

    .owner-quick-vote-actions {
        width: 100%;
        justify-content: stretch;
    }

    .owner-quick-vote-btn {
        flex: 1 1 140px;
    }
}


.manager-latest-resolution-row {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
    flex-wrap:nowrap;
}
.manager-latest-resolution-actions {
    margin-left:auto;
    min-width:280px;
    justify-content:flex-end;
    align-self:center;
}
@media (max-width: 860px) {
    .manager-latest-resolution-row { flex-wrap:wrap; }
    .manager-latest-resolution-actions { min-width:0; width:100%; justify-content:flex-start; }
}
.choice-button-card--property-strong {
    border-width:2px;
    border-color:#86efac;
    background:linear-gradient(180deg,#ffffff 0%,#f0fdf4 100%);
    box-shadow:0 12px 30px rgba(22,163,74,.10);
}
.choice-button-card--property-strong .choice-button-card__select-hint {
    color:#15803d;
    background:#dcfce7;
    border:1px solid #86efac;
    display:inline-flex;
    align-items:center;
    padding:6px 10px;
    border-radius:999px;
}
.choice-button-card--property-strong:not(.choice-button-card--disabled):hover {
    border-color:#16a34a;
    background:linear-gradient(180deg,#f7fff9 0%,#dcfce7 100%);
    box-shadow:0 16px 34px rgba(22,163,74,.16);
}
.choice-button-card--property-strong:has(input:checked),
.choice-button-card--property-strong.choice-button-card--selected-static {
    border-color:#15803d;
    background:linear-gradient(180deg,#ecfdf5 0%,#bbf7d0 100%);
    box-shadow:0 0 0 5px rgba(22,163,74,.18),0 20px 40px rgba(21,128,61,.18);
}
.choice-button-card--property-strong .choice-button-card__state-row {
    gap:10px;
}

/* v494 - portal wlasciciela: stabilne glosowanie bez niebieskich highlightow */
.theme-owner .owner-vote-panel .message.info,
.theme-owner .owner-quick-vote-row .message.info {
    background:#f8fafc!important;
    border-color:#e2e8f0!important;
    color:#334155!important;
}
.theme-owner .owner-vote-panel .choice-button-card--property-strong:not(.choice-button-card--disabled):hover {
    border-color:#16a34a!important;
    background:linear-gradient(180deg,#f7fff9 0%,#dcfce7 100%)!important;
    box-shadow:0 12px 28px rgba(22,163,74,.12)!important;
}
.theme-owner .vote-grid-owner .vote-btn {
    border:0!important;
    color:#fff!important;
    font-weight:900!important;
    text-transform:uppercase!important;
}
.theme-owner .vote-grid-owner .vote-btn-green {
    background:linear-gradient(180deg,#22c55e 0%,#16a34a 100%)!important;
}
.theme-owner .vote-grid-owner .vote-btn-red {
    background:linear-gradient(180deg,#ef4444 0%,#dc2626 100%)!important;
}
.theme-owner .vote-grid-owner .vote-btn-yellow {
    background:linear-gradient(180deg,#fbbf24 0%,#d97706 100%)!important;
}


.table-card, .mobile-table-card { background:#fff; border:1px solid var(--border); border-radius:16px; overflow:hidden; }
.section-title-row { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
@media (max-width: 760px) {
  .main { padding: 14px; padding-top: 76px; }
  .page-title { font-size: 22px; }
  .page-subtitle { font-size: 13px; }
  .user-box { width: 100%; justify-content: space-between; }
  .actions > .btn, .actions > button, .filters > .btn, .filters > button, .topbar-unread-link { width: 100%; }
  .filters, .actions { width: 100%; }
  .soft-panel, .card, .kpi-card, .detail-item, .form-box, .auth-card { padding: 14px; border-radius: 14px; }
  table[data-mobile-stack="ready"] thead { display:none; }
  table[data-mobile-stack="ready"],
  table[data-mobile-stack="ready"] tbody,
  table[data-mobile-stack="ready"] tr,
  table[data-mobile-stack="ready"] td { display:block; width:100%; }
  table[data-mobile-stack="ready"] tr { padding: 10px 12px; border-bottom:1px solid var(--border); }
  table[data-mobile-stack="ready"] td { border-bottom:none; padding: 6px 0; }
  table[data-mobile-stack="ready"] td::before {
    content: attr(data-label);
    display:block;
    font-size:12px;
    color:var(--muted);
    margin-bottom:4px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
  }
  table[data-mobile-stack="ready"] td:empty { display:none; }
  .sidebar a { padding: 12px 14px; }
}


.resolution-paper {
    position: relative;
    background: linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
    border: 1px solid #eef2f7;
    border-radius: 24px;
    padding: 28px;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.06);
    overflow: hidden;
}
.resolution-paper::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 8px;
    background: linear-gradient(180deg, #1f2937 0%, #94a3b8 100%);
}
.resolution-paper__header { position: relative; z-index: 1; }
.resolution-paper__eyebrow {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .16em;
    color: #1f2937;
    text-transform: uppercase;
    margin-bottom: 10px;
}
.resolution-paper__title {
    margin: 0;
    font-size: clamp(1.5rem, 2vw, 2rem);
    line-height: 1.2;
    color: #0f172a;
}
.resolution-paper__meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 20px;
}
.resolution-paper__meta-grid div {
    background: rgba(248, 251, 255, 0.94);
    border: 1px solid #eef2f7;
    border-radius: 16px;
    padding: 14px 16px;
}
.resolution-paper__meta-grid span {
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #5f7467;
    margin-bottom: 6px;
}
.resolution-paper__meta-grid strong {
    display: block;
    color: #0f172a;
    font-size: 15px;
    line-height: 1.45;
}
.resolution-paper__body {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid #eef2f7;
}
.resolution-paper__section-title {
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .12em;
    color: #1f2937;
    text-transform: uppercase;
    margin-bottom: 14px;
}
.resolution-paper__content {
    color: #0f172a;
    font-size: 16px;
    line-height: 1.9;
}
.resolution-paper__content p { margin: 0 0 1.1em; }
.resolution-paper__content p:last-child { margin-bottom: 0; }
.resolution-paper__content > :first-child { margin-top: 0; }
.resolution-paper__content > :last-child { margin-bottom: 0; }
.resolution-paper__content h2, .resolution-paper__content h3 {
    margin: 1.2em 0 .5em;
    line-height: 1.3;
    color: #0f172a;
}
.resolution-paper__content ul, .resolution-paper__content ol {
    margin: 0 0 1.1em 1.35rem;
    padding-left: .2rem;
}
.resolution-paper__content li { margin-bottom: .35rem; }
.resolution-paper__content blockquote {
    margin: 1rem 0;
    padding: .9rem 1rem;
    border-left: 4px solid #1f2937;
    background: #eef2f7;
    border-radius: 0 14px 14px 0;
}
.resolution-paper__content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
    display: block;
    overflow-x: auto;
}
.resolution-paper__content th,
.resolution-paper__content td {
    border: 1px solid #eef2f7;
    padding: 10px 12px;
    vertical-align: top;
}
.resolution-paper__content th {
    background: #eef2f7;
    font-weight: 700;
}
.resolution-paper__content hr {
    border: 0;
    border-top: 1px solid #eef2f7;
    margin: 1.2rem 0;
}
.resolution-paper--preview {
    background: linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
    min-height: 380px;
}
.resolution-preview-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
    gap: 22px;
}
.resolution-preview-panel {
    position: sticky;
    top: 92px;
}
.resolution-preview-panel .section-copy { margin-bottom: 14px; }
.resolution-paper__placeholder {
    color: #64748b;
    font-style: italic;
}
.owner-resolution-access-shell {
    display: grid;
    gap: 18px;
}
@media (max-width: 980px) {
    .resolution-preview-shell { grid-template-columns: 1fr; }
    .resolution-preview-panel { position: static; }
}
@media (max-width: 760px) {
    .resolution-paper { padding: 22px 18px; border-radius: 20px; }
    .resolution-paper::before { width: 6px; }
    .resolution-paper__meta-grid { grid-template-columns: 1fr; }
    .resolution-paper__title { font-size: 1.35rem; }
    .resolution-paper__content { font-size: 15px; line-height: 1.75; }
}


.resolution-doc-thumb {
  display: inline-flex;
  width: 78px;
  height: 104px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
  flex-shrink: 0;
}
.resolution-doc-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.resolution-doc-cell {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.resolution-doc-cell__meta {
  min-width: 0;
}
.resolution-doc-cell__meta strong {
  display: block;
  margin-bottom: 4px;
}
.resolution-doc-cell__description {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
@media (max-width: 768px) {
  .resolution-doc-thumb { width: 64px; height: 86px; border-radius: 12px; }
  .resolution-doc-cell { gap: 10px; }
}


.resolution-attachments-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}
.resolution-attachment-tile {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 100%;
  padding: 14px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.98));
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
}
.resolution-attachment-tile__media {
  position: relative;
  display: block;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  min-height: 240px;
  border: 1px solid rgba(15, 23, 42, 0.08);
}
.resolution-attachment-tile__media img {
  width: 100%;
  height: 240px;
  object-fit: cover;
  display: block;
}
.resolution-attachment-tile__placeholder {
  min-height: 240px;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 18px;
  color: var(--muted);
  font-weight: 700;
  line-height: 1.5;
}
.resolution-attachment-tile__badge {
  position: absolute;
  left: 12px;
  top: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.72);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  backdrop-filter: blur(8px);
}
.resolution-attachment-tile__body {
  display: grid;
  gap: 8px;
}
.resolution-attachment-tile__title {
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.35;
}
.resolution-attachment-tile__meta {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
.resolution-attachment-tile__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
}
.resolution-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .18s ease;
}
.resolution-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.resolution-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.74);
  backdrop-filter: blur(6px);
}
.resolution-lightbox__dialog {
  position: relative;
  width: min(1120px, 100%);
  max-height: calc(100vh - 40px);
  border-radius: 22px;
  overflow: hidden;
  background: #0f172a;
  color: #fff;
  box-shadow: 0 32px 80px rgba(15, 23, 42, 0.42);
  display: grid;
  grid-template-rows: auto 1fr;
}
.resolution-lightbox__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  background: rgba(15, 23, 42, 0.92);
}
.resolution-lightbox__header .muted,
.resolution-lightbox__meta {
  color: rgba(255,255,255,.72);
}
.resolution-lightbox__controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.resolution-lightbox__controls .btn,
.resolution-lightbox__nav {
  border-color: rgba(255,255,255,.2);
  background: rgba(255,255,255,.08);
  color: #fff;
}
.resolution-lightbox__controls .btn:hover,
.resolution-lightbox__nav:hover {
  background: rgba(255,255,255,.16);
}
.resolution-lightbox__content {
  position: relative;
  min-height: 70vh;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, rgba(15,23,42,1), rgba(31, 41, 55,1));
}
.resolution-lightbox__frame,
.resolution-lightbox__image {
  width: 100%;
  height: 70vh;
  border: 0;
  background: #fff;
}
.resolution-lightbox__image {
  object-fit: contain;
}
.resolution-lightbox__fallback {
  padding: 20px;
  text-align: center;
}
.resolution-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  cursor: pointer;
}
.resolution-lightbox__nav[disabled] {
  opacity: .35;
  cursor: default;
}
.resolution-lightbox__nav--prev { left: 18px; }
.resolution-lightbox__nav--next { right: 18px; }
@media (max-width: 768px) {
  .resolution-attachments-gallery {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .resolution-attachment-tile__media,
  .resolution-attachment-tile__media img,
  .resolution-attachment-tile__placeholder { min-height: 180px; height: 180px; }
  .resolution-lightbox { padding: 10px; }
  .resolution-lightbox__dialog { max-height: calc(100vh - 20px); border-radius: 18px; }
  .resolution-lightbox__header { padding: 14px; }
  .resolution-lightbox__content,
  .resolution-lightbox__frame,
  .resolution-lightbox__image { height: 62vh; min-height: 62vh; }
  .resolution-lightbox__nav { top: auto; bottom: 12px; transform: none; }
  .resolution-lightbox__nav--prev { left: 12px; }
  .resolution-lightbox__nav--next { right: 12px; }
}


/* ===== PAKIET PRODUKCYJNY: mobile polish ===== */
@media (max-width: 992px) {
  .main { padding: 16px; }
  .topbar { padding: 14px 14px; position: static; }
  .user-box { width: 100%; justify-content: space-between; }
  .actions > .btn,
  .actions > button,
  .filters > .btn,
  .filters > button { flex: 1 1 100%; }
  .section-header .actions { width: 100%; }
  .section-header .actions .btn,
  .section-header .actions button { flex: 1 1 calc(50% - 8px); }
  .card, .kpi-card, .auth-card, .standalone-card { padding: 16px; border-radius: 14px; }
  .page-title { font-size: 24px; }
}
@media (max-width: 720px) {
  .main { padding: 12px; }
  .topbar { gap: 12px; padding: 12px; border-radius: 16px; position: static; }
  .section-header .actions .btn,
  .section-header .actions button,
  .actions > .btn,
  .actions > button,
  .filters > .btn,
  .filters > button { flex: 1 1 100%; width: 100%; }
  .vote-grid, .vote-grid.two-options { grid-template-columns: 1fr; }
  .detail-grid, .grid-2, .kpi-grid, .status-grid { grid-template-columns: 1fr; }
  .table-wrap { overflow: visible; }
  table[data-mobile-stack="ready"] thead { display: none; }
  table[data-mobile-stack="ready"],
  table[data-mobile-stack="ready"] tbody,
  table[data-mobile-stack="ready"] tr,
  table[data-mobile-stack="ready"] td { display: block; width: 100%; }
  table[data-mobile-stack="ready"] tr {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .04);
    margin-bottom: 12px;
    padding: 8px 10px;
  }
  table[data-mobile-stack="ready"] td {
    border: 0;
    padding: 9px 0;
  }
  table[data-mobile-stack="ready"] td::before {
    content: attr(data-label);
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: var(--muted);
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: .04em;
  }
  .resolution-lightbox__controls,
  .document-preview-header .actions { width: 100%; }
  .resolution-lightbox__controls .btn,
  .document-preview-header .actions .btn { width: 100%; }
}


.nav-section { margin: 8px 0 0; }
.nav-section + .nav-section { margin-top: 10px; }
.nav-section-summary {
    list-style: none;
    cursor: pointer;
    color: var(--sidebar-muted);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin: 0;
    padding: 10px 12px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.nav-section-summary::-webkit-details-marker { display: none; }
.nav-section-summary::after {
    content: '▾';
    font-size: 12px;
    color: currentColor;
}
.nav-section:not([open]) .nav-section-summary::after { content: '▸'; }
.nav-section-summary:hover { background: rgba(255,255,255,.06); }
.nav-section-links { margin-top: 6px; }
.dashboard-tile-link { text-decoration: none; color: inherit; display: block; }
.dashboard-tile-link:hover { transform: translateY(-1px); }
.dashboard-hub-card { height: 100%; }
.dashboard-link-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.dashboard-link-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid var(--border);
    background: #fff;
    color: var(--text);
    text-decoration: none;
    border-radius: 14px;
    padding: 14px 16px;
    font-weight: 600;
}
.dashboard-link-card::after { content: '→'; color: var(--primary); }
.dashboard-link-card:hover { border-color: #eef2f7; background: #f8fbff; }


.dashboard-hero {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
    gap: 24px;
    margin-bottom: 22px;
    padding: 28px;
    border: 1px solid #eef2f7;
    background: linear-gradient(135deg, #ffffff 0%, #f5f9ff 50%, #eef2f7 100%);
}
.dashboard-hero__content { display: flex; flex-direction: column; gap: 14px; }
.dashboard-hero .page-title { margin-bottom: 0; }
.dashboard-hero .page-subtitle { max-width: 700px; }
.dashboard-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.dashboard-hero__aside { display: flex; }
.dashboard-hero__panel {
    width: 100%;
    border-radius: 18px;
    padding: 20px;
    background: rgba(255,255,255,.8);
    border: 1px solid #eef2f7;
    box-shadow: 0 14px 32px rgba(31, 41, 55, .08);
}
.dashboard-hero__list { margin: 12px 0 0; padding-left: 18px; display: grid; gap: 10px; color: var(--muted); }
.dashboard-kpi-grid { margin-bottom: 24px; }
.dashboard-kpi-card {
    border-radius: 18px;
    padding: 18px;
    border: 1px solid #eef2f7;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}
.dashboard-kpi-card__note { font-size: 13px; color: var(--muted); margin-top: 8px; }
.dashboard-main-grid { align-items: start; }
.dashboard-main-stack, .dashboard-side-stack { display: grid; gap: 16px; }
.dashboard-highlight-card { border: 1px solid #eef2f7; background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%); }
.dashboard-summary-grid .detail-item { min-height: 88px; border-radius: 16px; background: #fff; }
.dashboard-mini-list { display: grid; gap: 12px; }
.dashboard-mini-list__item {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
    padding: 14px 16px;
    border-radius: 14px;
    background: #f8fbff;
    border: 1px solid #eef2f7;
}
.dashboard-mini-list__title { font-weight: 700; color: var(--text); }
.dashboard-mini-list__meta { margin-top: 4px; font-size: 13px; color: var(--muted); }
.dashboard-status-pill {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    border-radius: 999px;
    padding: 6px 10px;
    background: #eef2f7;
    color: var(--primary);
    font-weight: 700;
    font-size: 12px;
}
@media (max-width: 1080px) {
    .dashboard-hero { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .dashboard-hero { padding: 20px; }
    .dashboard-hero__actions .btn { width: 100%; justify-content: center; }
    .dashboard-mini-list__item { flex-direction: column; }
    .dashboard-status-pill { align-self: flex-start; }
}

.sidebar-direct-link { margin-bottom: 10px; font-weight: 700; }
.dashboard-widget.is-dragging, .dashboard-widget-config-item.is-dragging { opacity: .55; }

/* Unified manager UI primitives (2026-04 compact refactor) */
.app-page-hero { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.app-page-hero__title { margin:0; font-size:28px; font-weight:800; letter-spacing:-.01em; }
.app-page-hero__copy { margin:6px 0 0; color:var(--muted); max-width:860px; }
.page-standard { display:grid; gap:12px; }
.compact-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.compact-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.filter-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:flex-end; }
.table-dense tbody td { line-height:1.25; }
.table-dense .pill { padding:5px 9px; font-size:12px; }
.btn-sm { padding:6px 10px; min-height:30px; font-size:12px; }
.section-header.compact { margin-bottom:10px; }
.section-title-row { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; }
.form-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.form-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
@media (max-width: 1100px) {
  .compact-grid-2,
  .compact-grid-3,
  .form-grid-2,
  .form-grid-3 { grid-template-columns:1fr; }
}
.toolbar-card { display:grid; gap:10px; padding:12px; border:1px solid var(--border); border-radius:14px; background:#fff; margin-bottom:12px; }
.toolbar-card .filter-card__form { align-items:end; gap:10px; }
.kpi-pill-grid { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.content-stack { display:grid; gap:16px; }
.table-wrap--tight table th, .table-wrap--tight table td { padding:11px 10px; }
.notification-list { display:grid; gap:14px; }
.notification-card { margin-bottom:0; }
.notification-card .section-header { margin-bottom:8px; align-items:flex-start; }
.notification-card__badges { margin-bottom:8px; gap:8px; }
.notification-card__title { margin:0; font-size:18px; font-weight:700; }
.notification-card__cta { margin-top:14px; }
.dashboard-note { border:1px solid var(--border); border-radius:16px; background:#f8fafc; padding:14px 16px; }
.dashboard-widget-stack { display:grid; gap:16px; }
.dashboard-widget-config-list { display:grid; gap:10px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.dashboard-widget-config-item { display:flex; align-items:center; gap:12px; border:1px solid var(--border); background:#fff; border-radius:14px; padding:12px 14px; cursor:grab; font-weight:600; }
.dashboard-widget-config-item__drag { font-size:18px; color:var(--muted); }
.dashboard-customize-panel { margin-bottom:20px; }
.dashboard-scope-form__row { display:grid; grid-template-columns:minmax(240px,340px) auto 1fr; gap:16px; align-items:end; }
.dashboard-scope-form__actions { display:flex; align-items:end; }
.dashboard-scope-form__summary { border:1px solid #eef2f7; border-radius:16px; padding:14px 16px; background:rgba(255,255,255,.8); }
@media (max-width: 860px) {
  .dashboard-scope-form__row { grid-template-columns:1fr; }
  .dashboard-scope-form__actions { align-items:stretch; }
  .dashboard-widget-config-list { grid-template-columns:1fr; }
}
@media (max-width: 720px) {
  .app-page-hero__title { font-size:24px; }
}

@media (min-width: 1180px) {
  .main-auth .topbar { padding: 12px 14px; border-radius: 16px; }
  .main { padding: 14px 16px; }
  .card, .kpi-card { --card-padding: 12px; }
  .filter-card__form { display:grid; grid-template-columns: repeat(4, minmax(150px, 1fr)) auto; gap:10px; }
  .filter-card__form .filter-field { min-width:0; }
  .filter-card__form .filter-actions { grid-column: 1 / -1; }
  .form-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
  textarea { min-height: 96px; max-height: 180px; }
}

.autocomplete-field { position: relative; display: flex; flex-direction: column; gap: 4px; }
.autocomplete-dropdown { position: absolute; z-index: 30; top: 100%; left: 0; right: 0; max-height: 240px; overflow: auto; background: #fff; border: 1px solid #eef2f7; border-radius: 8px; box-shadow: 0 8px 24px rgba(31, 41, 55,.12); margin-top: 4px; }
.autocomplete-option { padding: 8px 10px; cursor: pointer; border-bottom: 1px solid #f2f4f7; }
.autocomplete-option:last-child { border-bottom: none; }
.autocomplete-option.active, .autocomplete-option:hover { background: #eef2f7; }
.autocomplete-empty { padding: 8px 10px; color: #1f2937; }


/* Globalna poprawka szerokich tabel i paneli akcji.
   Zamiast ucinać treść poza ekranem, kontenery dostają poziome przewijanie. */
.content,
.main-content,
.page-content,
.panel-content,
.manager-content {
    min-width: 0;
}

.card,
.card-soft,
.soft-panel,
.form-section {
    min-width: 0;
}

.table-wrap,
.table-responsive,
.overflow-table,
.bulk-table-wrap,
.status-table-wrap,
.scroll-x {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

.table-wrap table,
.table-responsive table,
.overflow-table table,
.bulk-table-wrap table,
.status-table-wrap table,
.scroll-x table {
    min-width: 0;
}

.actions,
.toolbar,
.action-row,
.pill-row,
.bulk-actions,
.manager-actions {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

.actions::-webkit-scrollbar,
.toolbar::-webkit-scrollbar,
.action-row::-webkit-scrollbar,
.pill-row::-webkit-scrollbar,
.bulk-actions::-webkit-scrollbar,
.manager-actions::-webkit-scrollbar,
.table-wrap::-webkit-scrollbar {
    height: 10px;
}

.resolution-detail-wide,
.resolution-campaign-panel,
.owner-status-section,
#owner-status-section {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 1200px) {
    .layout-main,
    .app-main,
    main {
        min-width: 0;
        overflow-x: auto;
    }
}


/* FIX: główna treść nie może wchodzić pod lewe menu.
   Sidebar w aplikacji jest stały/lewy, więc main dostaje odsunięcie i realną szerokość. */
:root {
    --app-sidebar-width: 280px;
}

.app-layout,
.layout,
.shell,
.dashboard-layout {
    min-width: 0;
}

.sidebar,
.side-nav,
.app-sidebar,
.panel-sidebar,
aside.sidebar {
    width: var(--app-sidebar-width);
    min-width: var(--app-sidebar-width);
    max-width: var(--app-sidebar-width);
}

main,
.main,
.app-main,
.main-content,
.page-content,
.content,
.panel-content,
.manager-content {
    box-sizing: border-box;
    min-width: 0;
    max-width: calc(100vw - var(--app-sidebar-width));
}

/* Gdy sidebar jest fixed/absolute, wymuś odsunięcie treści. */
body:has(.sidebar) main,
body:has(.app-sidebar) main,
body:has(.panel-sidebar) main,
body:has(.side-nav) main {
    margin-left: var(--app-sidebar-width);
    width: calc(100vw - var(--app-sidebar-width));
}

/* Fallback dla struktur, gdzie kontener główny nie jest tagiem main. */
body:has(.sidebar) .main-content,
body:has(.app-sidebar) .main-content,
body:has(.panel-sidebar) .main-content,
body:has(.side-nav) .main-content,
body:has(.sidebar) .page-content,
body:has(.app-sidebar) .page-content,
body:has(.panel-sidebar) .page-content,
body:has(.side-nav) .page-content,
body:has(.sidebar) .manager-content,
body:has(.app-sidebar) .manager-content,
body:has(.panel-sidebar) .manager-content,
body:has(.side-nav) .manager-content {
    margin-left: var(--app-sidebar-width);
    width: calc(100vw - var(--app-sidebar-width));
    max-width: calc(100vw - var(--app-sidebar-width));
}

/* Jeśli layout jest flexem i sidebar jest normalnym elementem, nie dubluj marginesu. */
.app-layout > main,
.layout > main,
.shell > main,
.dashboard-layout > main,
.app-layout > .main-content,
.layout > .main-content,
.shell > .main-content,
.dashboard-layout > .main-content {
    margin-left: 0;
    width: auto;
    max-width: none;
    flex: 1 1 auto;
}

/* Karty i gridy nie mogą wymuszać szerokości większej niż kontener. */
.card,
.card-soft,
.soft-panel,
.form-section,
.grid-2,
.grid-3,
.grid-4,
.stats-grid,
.summary-grid {
    min-width: 0;
    max-width: 100%;
}

.grid-2,
.grid-3,
.grid-4,
.stats-grid,
.summary-grid {
    overflow: visible;
}

/* Duże sekcje w szczegółach uchwały mają mieścić się w dostępnym obszarze. */
.resolution-detail,
.resolution-detail-page,
#owner-status-section,
.owner-card-list {
    max-width: 100%;
    min-width: 0;
}

/* Tabele i karty właścicieli zawijają treści zamiast wypychać layout. */
table {
    max-width: 100%;
}
th, td {
    overflow-wrap: anywhere;
}
.owner-status-card {
    max-width: 100%;
    min-width: 0;
}

/* Mobile / wąskie okna: sidebar nie zabiera miejsca, treść idzie pełną szerokością. */
@media (max-width: 900px) {
    body:has(.sidebar) main,
    body:has(.app-sidebar) main,
    body:has(.panel-sidebar) main,
    body:has(.side-nav) main,
    body:has(.sidebar) .main-content,
    body:has(.app-sidebar) .main-content,
    body:has(.panel-sidebar) .main-content,
    body:has(.side-nav) .main-content,
    body:has(.sidebar) .page-content,
    body:has(.app-sidebar) .page-content,
    body:has(.panel-sidebar) .page-content,
    body:has(.side-nav) .page-content,
    body:has(.sidebar) .manager-content,
    body:has(.app-sidebar) .manager-content,
    body:has(.panel-sidebar) .manager-content,
    body:has(.side-nav) .manager-content {
        margin-left: 0;
        width: 100vw;
        max-width: 100vw;
    }
}

/* FIX v4: sidebar rozszerzony i pelne odsuniecie tresci. */
:root { --app-sidebar-width: 280px; }
.sidebar,.side-nav,.app-sidebar,.panel-sidebar,aside.sidebar { width: var(--app-sidebar-width) !important; min-width: var(--app-sidebar-width) !important; max-width: var(--app-sidebar-width) !important; }
.brand-block,.brand-copy,.nav-section-summary,.nav-section-links a,.sidebar a,.sidebar-direct-link,.logout-form button { min-width: 0; overflow-wrap: anywhere; white-space: normal; }
.main { margin-left: var(--app-sidebar-width) !important; width: calc(100vw - var(--app-sidebar-width)) !important; max-width: calc(100vw - var(--app-sidebar-width)) !important; overflow-x: clip; }
.main > *,.page-standard,.content-stack,.card,.kpi-card,.soft-panel,.form-box,.grid-2,.compact-grid-2,.compact-grid-3,.form-grid,.form-grid-2,.form-grid-3 { min-width: 0; max-width: 100%; }
@media (max-width: 992px) { .sidebar,.side-nav,.app-sidebar,.panel-sidebar,aside.sidebar { width: min(86vw, var(--app-sidebar-width)) !important; min-width: min(86vw, var(--app-sidebar-width)) !important; max-width: min(86vw, var(--app-sidebar-width)) !important; } .main { margin-left: 0 !important; width: 100vw !important; max-width: 100vw !important; overflow-x: hidden; } }

/* FIX v7: szczegóły uchwały - układ jak w projekcie UX.
   Kolejność: statystyki, potem wykres + podsumowanie, potem dodawanie pliku, potem lista plików. */
.resolution-stats-row,
.resolution-results-row,
.resolution-documents-layout {
    display: grid;
    gap: 14px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.resolution-stats-row {
    grid-template-columns: 1fr;
}

.resolution-stats-card .detail-grid {
    grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.resolution-results-row {
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    align-items: stretch;
}

.resolution-chart-card,
.resolution-summary-card,
.resolution-upload-card,
.resolution-files-card {
    min-width: 0;
    max-width: 100%;
}

.resolution-summary-card .detail-grid {
    grid-template-columns: repeat(2, minmax(170px, 1fr));
}

.resolution-documents-layout {
    grid-template-columns: 1fr;
}

.resolution-upload-card .form-grid {
    grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) minmax(220px, 1fr);
    align-items: end;
}

.resolution-upload-card .form-group:has(textarea),
.resolution-upload-card .form-group:has(input[type="checkbox"]) {
    grid-column: 1 / -1;
}

.resolution-upload-card textarea {
    min-height: 64px;
}

@media (max-width: 1320px) {
    .resolution-stats-card .detail-grid {
        grid-template-columns: repeat(3, minmax(180px, 1fr));
    }
    .resolution-results-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 980px) {
    .resolution-stats-card .detail-grid,
    .resolution-summary-card .detail-grid,
    .resolution-upload-card .form-grid {
        grid-template-columns: 1fr;
    }
}

/* V39 main dashboard rebuild */
.home39-shell{display:grid;gap:22px;padding:4px 2px 28px;background:#f5f8fc;color:#0f172a}.home39-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.home39-greeting h1{margin:0;color:#0f172a;font-size:28px;line-height:1.1;font-weight:900;letter-spacing:-.03em}.home39-greeting p{margin:8px 0 0;color:#61718f;font-size:15px;font-weight:600}.home39-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}.home39-community-form{display:flex;align-items:center;gap:8px;padding:0;margin:0}.home39-community-form select{height:50px;min-width:240px;padding:0 44px 0 18px;border:1px solid #eef2f7;border-radius:14px;background:#fff;color:#0f172a;font-size:14px;font-weight:700;box-shadow:0 8px 24px rgba(15, 23, 42,.04)}.home39-community-form button{height:50px;padding:0 18px;border:1px solid #1f2937;border-radius:14px;background:#1f2937;color:#fff;font-size:14px;font-weight:900;box-shadow:0 10px 24px rgba(31, 41, 55,.18)}.home39-bell{position:relative;width:54px;height:54px;border:1px solid #eef2f7;border-radius:16px;background:#fff;display:grid;place-items:center;text-decoration:none;color:#0f172a;box-shadow:0 8px 24px rgba(15, 23, 42,.04)}.home39-bell strong{position:absolute;top:-8px;right:-8px;min-width:22px;height:22px;border-radius:999px;background:#ef4444;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900}.home39-user-card{min-width:210px;height:54px;padding:8px 44px 8px 16px;border:1px solid #eef2f7;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(15, 23, 42,.04);position:relative}.home39-user-card:after{content:'⌄';position:absolute;right:16px;top:16px;color:#0f172a;font-weight:900}.home39-user-card strong{display:block;color:#0f172a;font-size:14px;font-weight:900}.home39-user-card span{display:block;color:#61718f;font-size:12px;font-weight:700}.home39-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.home39-kpi{min-height:144px;display:flex;align-items:center;gap:22px;padding:24px;border:1px solid #eef2f7;border-radius:16px;background:#fff;text-decoration:none;box-shadow:0 10px 26px rgba(15, 23, 42,.04)}.home39-kpi__icon{width:70px;height:70px;border-radius:999px;display:grid;place-items:center;font-size:30px;flex:0 0 auto}.home39-kpi__icon--blue{background:#eef2f7}.home39-kpi__icon--green{background:#e7f8ee}.home39-kpi__icon--orange{background:#fff3e3}.home39-kpi__icon--red{background:#feecec}.home39-kpi__text span{display:block;color:#61718f;font-size:15px;font-weight:800}.home39-kpi__text strong{display:block;margin-top:6px;color:#0f172a;font-size:30px;line-height:1;font-weight:900}.home39-kpi__text small{display:block;margin-top:18px;color:#61718f;font-size:13px;font-weight:700}.home39-grid{display:grid;gap:20px}.home39-grid--top{grid-template-columns:1.25fr .95fr .72fr}.home39-grid--bottom{grid-template-columns:1.08fr .74fr .8fr}.home39-card{border:1px solid #eef2f7;border-radius:16px;background:#fff;box-shadow:0 10px 26px rgba(15, 23, 42,.04);padding:20px}.home39-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.home39-card__head h2{margin:0;color:#0f172a;font-size:18px;line-height:1.2;font-weight:900;letter-spacing:-.02em}.home39-card__head a,.home39-card-link{color:#1f2937;text-decoration:none;font-size:14px;font-weight:800}.home39-attention-list,.home39-resolution-list,.home39-suggested-list,.home39-activity-list{display:grid;gap:12px}.home39-attention-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:16px;border:1px solid #eef2f7;border-radius:12px;background:#fff}.home39-attention-icon{width:48px;height:48px;border-radius:999px;display:grid;place-items:center;background:#eef2f7;font-size:22px}.home39-attention-item--danger .home39-attention-icon{background:#fee2e2}.home39-attention-item--warning .home39-attention-icon{background:#fff3e3}.home39-attention-item strong,.home39-resolution-row strong{display:block;color:#0f172a;font-size:15px;font-weight:900}.home39-attention-item p,.home39-resolution-row span{margin:5px 0 0;color:#1f2937;font-size:13px;font-weight:700}.home39-attention-item a,.home39-resolution-row a{height:36px;padding:0 16px;border:1px solid #eef2f7;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:#1f2937;text-decoration:none;font-size:13px;font-weight:900}.home39-resolution-row{display:grid;grid-template-columns:1fr 220px 46px auto;align-items:center;gap:14px;padding:14px;border:1px solid #eef2f7;border-radius:12px;background:#fff}.home39-progress{height:9px;border-radius:999px;background:#eef2f7;overflow:hidden}.home39-progress span{display:block;height:100%;border-radius:999px;background:#16a34a}.home39-resolution-row small{color:#0f172a;font-weight:900}.home39-suggested-list a{display:grid;grid-template-columns:auto 1fr auto;column-gap:14px;align-items:center;padding:13px 12px;border-radius:12px;text-decoration:none;color:#0f172a}.home39-suggested-list a:hover{background:#f7faff}.home39-suggested-list span{width:36px;height:36px;border-radius:999px;background:#eef2f7;display:grid;place-items:center}.home39-suggested-list strong{display:block;font-size:14px;font-weight:900}.home39-suggested-list small{display:block;margin-top:2px;color:#61718f;font-size:12px;font-weight:700}.home39-suggested-list a:after{content:attr(data-count);min-width:0}.home39-primary-wide{height:52px;margin-top:18px;border-radius:10px;background:#1f2937;color:#fff!important;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:14px;font-weight:900;box-shadow:0 10px 24px rgba(31, 41, 55,.18)}.home39-mini-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.home39-mini-stats div{padding:16px;border:1px solid #eef2f7;border-radius:12px;background:#fff}.home39-mini-stats span{display:block;color:#61718f;font-size:13px;font-weight:800}.home39-mini-stats strong{display:block;margin-top:8px;color:#0f172a;font-size:19px;font-weight:900}.home39-mini-stats small{display:block;margin-top:8px;color:#61718f;font-size:12px;font-weight:700}.home39-chart{height:120px;margin-top:24px;padding:0 12px 14px;display:flex;align-items:flex-end;gap:26px;border-bottom:1px solid #eef2f7;background:linear-gradient(to top,#eef2f7 1px,transparent 1px) 0 20px/100% 34px repeat-y}.home39-chart div{width:100%;border-radius:999px 999px 0 0;background:#1f2937;min-height:8px}.home39-activity-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #eef2f7}.home39-activity-row>span{width:28px;height:28px;border-radius:999px;background:#eef2f7;color:#1f2937;display:grid;place-items:center}.home39-activity-row strong{display:block;color:#0f172a;font-size:14px;font-weight:900}.home39-activity-row small{display:block;color:#61718f;font-size:12px;font-weight:700}.home39-activity-row time{color:#61718f;font-size:12px;font-weight:700}.home39-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.home39-quick-grid a{min-height:82px;display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center;padding:14px;border:1px solid #eef2f7;border-radius:12px;background:#fff;text-decoration:none;color:#0f172a}.home39-quick-grid span{grid-row:span 2;width:46px;height:46px;border-radius:999px;background:#eef2f7;display:grid;place-items:center;color:#1f2937;font-size:23px}.home39-quick-grid strong{display:block;font-size:14px;font-weight:900}.home39-quick-grid small{display:block;color:#61718f;font-size:12px;font-weight:700}.home39-empty{padding:18px;border:1px dashed #eef2f7;border-radius:12px;background:#f7faff;color:#61718f;font-weight:800}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1280px){.home39-grid--top,.home39-grid--bottom{grid-template-columns:1fr}.home39-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.home39-resolution-row{grid-template-columns:1fr}}@media(max-width:720px){.home39-topbar{display:grid}.home39-toolbar{justify-content:flex-start}.home39-kpis,.home39-mini-stats,.home39-quick-grid{grid-template-columns:1fr}.home39-community-form{width:100%;display:grid}.home39-community-form select,.home39-community-form button{width:100%;min-width:0}.home39-user-card{width:100%}}


/* V51: globalny górny pasek tytułu został usunięty z base.html. */
.main-auth, .main-public { padding-top: 24px; }

/* V207: CSP hardening prep - shared classes replacing simple inline modal title styles. */
.modal-title-tight { margin-top: 4px; }
.modal-title-on-dark { color: #fff; }

/* v418 — Pulpit główny jako centrum aplikacji, nie pulpit głosowań */
.home418-shell{
  background:#f4f7fb;
  color:#0f172a;
  gap:22px;
}
.home418-topbar{
  background:linear-gradient(135deg,#ffffff 0%,#f8fbff 100%);
  border:1px solid #eef2f7;
  border-radius:22px;
  padding:22px;
  box-shadow:0 16px 40px rgba(15, 23, 42,.055);
}
.home418-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:28px;
  padding:0 11px;
  border-radius:999px;
  background:#eef2f7;
  color:#1f2937;
  font-size:12px;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.home418-greeting h1{
  font-size:34px!important;
  letter-spacing:-.04em!important;
}
.home418-greeting p{
  max-width:760px;
  line-height:1.55;
}
.home418-toolbar{
  align-items:flex-start!important;
  gap:12px!important;
}
.home418-community-form{
  display:grid!important;
  gap:7px!important;
  min-width:min(560px,100%);
}
.home418-community-form label{
  color:#61718f;
  font-size:12px;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.home418-community-control{
  display:grid;
  grid-template-columns:minmax(360px,1fr) auto;
  gap:8px;
}
.home418-community-form select{
  width:100%!important;
  min-width:360px!important;
  max-width:620px!important;
}
.home418-community-form button{
  min-width:86px;
  padding:0 16px!important;
}
.home418-bell,
.home418-user-card{
  margin-top:21px;
}
.home418-user-card{
  min-width:230px!important;
}
.home418-context-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 20px;
  border:1px solid #eef2f7;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 26px rgba(15, 23, 42,.04);
}
.home418-context-card span{
  display:block;
  color:#61718f;
  font-size:12px;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.home418-context-card strong{
  display:block;
  margin-top:3px;
  color:#0f172a;
  font-size:18px;
  font-weight:950;
}
.home418-context-card p{
  margin:5px 0 0;
  color:#61718f;
  font-weight:650;
}
.home418-context-card a{
  flex:0 0 auto;
  min-height:42px;
  padding:0 16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:#eef2f7;
  color:#1f2937;
  text-decoration:none;
  font-weight:950;
}
.home418-kpis{
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:14px!important;
}
.home418-kpi{
  min-height:172px!important;
  display:grid!important;
  align-content:start;
  gap:13px!important;
  padding:18px!important;
  border-radius:18px!important;
  position:relative;
  overflow:hidden;
}
.home418-kpi:before{
  content:'';
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:#1f2937;
}
.home418-kpi__icon{
  width:50px!important;
  height:50px!important;
  font-size:23px!important;
  border-radius:15px!important;
}
.home418-kpi__text strong{
  font-size:26px!important;
}
.home418-kpi__text small{
  margin-top:7px!important;
}
.home418-kpi__text em{
  display:block;
  margin-top:12px;
  color:#1f2937;
  font-size:12px;
  font-style:normal;
  font-weight:950;
}
.home418-kpi--indigo:before{background:#1f2937}.home418-kpi--indigo .home418-kpi__icon{background:#eef2f7;color:#1f2937}
.home418-kpi--orange:before{background:#f97316}.home418-kpi--orange .home418-kpi__icon{background:#fff7ed;color:#f97316}
.home418-kpi--green:before{background:#16a34a}.home418-kpi--green .home418-kpi__icon{background:#ecfdf5;color:#16a34a}
.home418-kpi--purple:before{background:#7c3aed}.home418-kpi--purple .home418-kpi__icon{background:#eef2f7;color:#7c3aed}
.home418-kpi--rose:before{background:#e11d48}.home418-kpi--rose .home418-kpi__icon{background:#fff1f2;color:#e11d48}
.home418-kpi--teal:before{background:#0f766e}.home418-kpi--teal .home418-kpi__icon{background:#f0fdfa;color:#0f766e}
.home418-main-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:20px;
}
.home418-card{
  border-radius:18px!important;
}
.home418-card .home39-card__head p{
  margin:5px 0 0;
  color:#61718f;
  font-weight:650;
}
.home418-module-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.home418-module{
  min-height:150px;
  display:grid;
  align-content:start;
  gap:9px;
  padding:16px;
  border:1px solid #eef2f7;
  border-radius:16px;
  background:#fff;
  text-decoration:none;
  color:#0f172a;
  box-shadow:0 8px 22px rgba(15, 23, 42,.035);
}
.home418-module span{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:14px;
  font-size:22px;
  background:#eef2f7;
}
.home418-module strong{
  font-size:15px;
  font-weight:950;
}
.home418-module small{
  color:#61718f;
  line-height:1.4;
  font-weight:650;
}
.home418-module--indigo span{background:#eef2f7;color:#1f2937}.home418-module--orange span{background:#fff7ed;color:#f97316}.home418-module--green span{background:#ecfdf5;color:#16a34a}.home418-module--purple span{background:#eef2f7;color:#7c3aed}.home418-module--teal span{background:#f0fdfa;color:#0f766e}.home418-module--rose span{background:#fff1f2;color:#e11d48}.home418-module--slate span{background:#f1f5f9;color:#475569}
.home418-system-list{
  display:grid;
  gap:9px;
}
.home418-system-list a{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border:1px solid #eef2f7;
  border-radius:12px;
  text-decoration:none;
  color:#0f172a;
  background:#f8fbff;
}
.home418-system-list span{
  color:#61718f;
  font-weight:800;
}
.home418-system-list strong{
  font-weight:950;
}
.home418-bottom-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(380px,.72fr);
  gap:20px;
}
.home418-attention-item{
  grid-template-columns:auto 1fr auto!important;
}
.home418-activity-row time{
  white-space:nowrap;
}
@media(max-width:1500px){
  .home418-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .home418-module-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .home418-main-grid{grid-template-columns:1fr;}
}
@media(max-width:980px){
  .home418-kpis,.home418-module-grid,.home418-bottom-grid{grid-template-columns:1fr!important;}
  .home418-topbar,.home418-context-card{display:grid!important;}
  .home418-community-control{grid-template-columns:1fr;}
  .home418-community-form,.home418-community-form select{min-width:0!important;max-width:none!important;width:100%!important;}
  .home418-bell,.home418-user-card{margin-top:0;}
}

/* B3/3 v420 — pulpit główny: alerty, szybkie przejścia, aktywności, gotowość danych */
.home420-shell{gap:24px;}
.home420-main-grid{align-items:stretch;}
.home420-section-head p{margin:6px 0 0;color:#64748b;font-size:13px;font-weight:700;}
.home420-module-grid .home418-module{min-height:138px;}
.home420-attention-section{display:block;}
.home420-card{overflow:hidden;}
.home420-attention-list{display:grid;gap:12px;}
.home420-attention-row{display:grid;grid-template-columns:124px 44px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;text-decoration:none;color:#0f172a;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;}
.home420-attention-row:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(15,23,42,.08);border-color:#cbd5e1;}
.home420-attention-module{height:30px;padding:0 10px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;background:#f1f5f9;color:#475569;white-space:nowrap;}
.home420-attention-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:22px;background:#f8fafc;}
.home420-attention-copy{min-width:0;}
.home420-attention-copy strong{display:block;font-size:15px;font-weight:950;color:#0f172a;}
.home420-attention-copy small{display:block;margin-top:3px;font-size:13px;font-weight:700;color:#64748b;line-height:1.35;}
.home420-attention-action{font-size:13px;font-weight:900;color:#1f2937;white-space:nowrap;}
.home420-attention-row--indigo .home420-attention-module,.home420-attention-row--indigo .home420-attention-icon{background:#eef2f7;color:#1f2937;}
.home420-attention-row--orange .home420-attention-module,.home420-attention-row--orange .home420-attention-icon{background:#fff7ed;color:#f97316;}
.home420-attention-row--green .home420-attention-module,.home420-attention-row--green .home420-attention-icon{background:#ecfdf5;color:#16a34a;}
.home420-attention-row--purple .home420-attention-module,.home420-attention-row--purple .home420-attention-icon{background:#eef2f7;color:#7c3aed;}
.home420-attention-row--teal .home420-attention-module,.home420-attention-row--teal .home420-attention-icon{background:#f0fdfa;color:#0f766e;}
.home420-attention-row--rose .home420-attention-module,.home420-attention-row--rose .home420-attention-icon{background:#fff1f2;color:#e11d48;}
.home420-attention-row--warning .home420-attention-module,.home420-attention-row--warning .home420-attention-icon{background:#fef3c7;color:#b45309;}
.home420-attention-row--danger .home420-attention-module,.home420-attention-row--danger .home420-attention-icon{background:#fee2e2;color:#dc2626;}
.home420-bottom-grid{grid-template-columns:1.15fr .85fr;align-items:stretch;}
.home420-activity-row{min-height:58px;}
.home420-quality-meter,.home420-mini-meter{height:12px;border-radius:999px;background:#e2e8f0;overflow:hidden;}
.home420-quality-meter span,.home420-mini-meter span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1f2937,#0f766e);}
.home420-quality-note{margin:16px 0;color:#64748b;font-size:14px;line-height:1.45;font-weight:700;}
.home420-primary-link{height:44px;padding:0 16px;border-radius:12px;background:#1f2937;color:#fff!important;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:900;box-shadow:0 10px 24px rgba(31, 41, 55,.18);}
.home420-readiness-card{padding:0;}
.home420-readiness-card>.home39-card__head{padding:20px 22px 0;}
.home420-readiness-table-wrap{overflow-x:auto;padding:0 20px 20px;}
.home420-readiness-table{width:100%;border-collapse:separate;border-spacing:0 10px;min-width:900px;}
.home420-readiness-table th{padding:0 14px 4px;text-align:left;color:#64748b;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;}
.home420-readiness-table td{padding:14px;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;background:#fff;color:#0f172a;font-size:13px;font-weight:700;vertical-align:middle;}
.home420-readiness-table td:first-child{border-left:1px solid #e2e8f0;border-radius:14px 0 0 14px;}
.home420-readiness-table td:last-child{border-right:1px solid #e2e8f0;border-radius:0 14px 14px 0;text-align:right;}
.home420-readiness-table td:nth-child(5){color:#64748b;max-width:360px;}
.home420-readiness-table a{color:#1f2937;text-decoration:none;font-weight:900;white-space:nowrap;}
.home420-status{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:950;white-space:nowrap;background:#f1f5f9;color:#475569;}
.home420-status--green{background:#dcfce7;color:#166534;}
.home420-status--orange{background:#ffedd5;color:#c2410c;}
.home420-status--slate{background:#f1f5f9;color:#475569;}
.home420-status--red,.home420-status--danger{background:#fee2e2;color:#b91c1c;}
.home420-mini-meter{width:120px;height:8px;display:inline-block;vertical-align:middle;margin-right:8px;}
.home420-readiness-table small{color:#64748b;font-weight:900;}
@media(max-width:1180px){.home420-attention-row{grid-template-columns:1fr auto;align-items:start}.home420-attention-module{justify-content:flex-start;width:max-content}.home420-attention-icon{grid-row:1 / span 2}.home420-attention-copy{grid-column:1 / -1}.home420-attention-action{grid-column:1 / -1}.home420-bottom-grid{grid-template-columns:1fr!important;}}
@media(max-width:720px){.home420-attention-row{grid-template-columns:1fr;}.home420-attention-icon{grid-row:auto}.home420-readiness-card>.home39-card__head{padding:16px 16px 0}.home420-readiness-table-wrap{padding:0 12px 16px}.home420-primary-link{width:100%;}.home420-module-grid .home418-module{min-height:110px;}}

/* B4 — integration of main dashboard with final Data 360 readiness center */
.home421-data-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0 4px;}
.home421-data-summary div{border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc;padding:12px;min-width:0;}
.home421-data-summary span{display:block;color:#64748b;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;}
.home421-data-summary strong{display:block;margin-top:4px;color:#0f172a;font-size:18px;font-weight:950;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.home421-data-issues-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;}
.home421-issue-list,.home421-community-list{display:grid;gap:10px;}
.home421-issue-row,.home421-community-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid #e2e8f0;border-radius:15px;background:#fff;color:#0f172a;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;}
.home421-issue-row:hover,.home421-community-row:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(15,23,42,.08);border-color:#cbd5e1;}
.home421-issue-row span,.home421-community-row span{min-width:0;}
.home421-issue-row strong,.home421-community-row strong{display:block;font-size:14px;font-weight:950;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.home421-issue-row small,.home421-community-row small{display:block;margin-top:3px;font-size:12px;font-weight:750;color:#64748b;line-height:1.35;}
.home421-issue-row em,.home421-community-row em{font-style:normal;min-width:54px;height:34px;padding:0 10px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:950;background:#f1f5f9;color:#334155;}
.home421-issue-row--red em{background:#fee2e2;color:#b91c1c;}
.home421-issue-row--orange em{background:#ffedd5;color:#c2410c;}
.home421-issue-row--teal em{background:#ccfbf1;color:#0f766e;}
.home421-issue-row--green em{background:#dcfce7;color:#166534;}
.home421-community-row em{background:#e0f2fe;color:#0369a1;}
@media(max-width:980px){.home421-data-issues-grid{grid-template-columns:1fr;}.home421-data-summary{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.home421-data-summary{grid-template-columns:1fr;}.home421-issue-row,.home421-community-row{align-items:flex-start;}.home421-issue-row em,.home421-community-row em{min-width:auto;}}

/* v441 — boczne menu zgodnie z makietą: białe kafle, czarny tekst, niebieskie ikony. */
:root {
  --sidebar: #f8fbff;
  --sidebar-muted: #64748b;
  --sidebar-hover: #eef2f7;
  --sidebar-tile-border-v441: #1f2937;
  --sidebar-tile-blue-v441: #1f2937;
  --sidebar-tile-text-v441: #1f2937;
}
.sidebar {
  background: linear-gradient(180deg, #fbfdff 0%, #f5f9ff 100%) !important;
  color: var(--sidebar-tile-text-v441) !important;
  border-right: 1px solid #eef2f7;
  box-shadow: 18px 0 48px rgba(15, 23, 42, .08);
}
.brand-block {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 4px 6px 22px;
  margin-bottom: 18px;
  border-bottom: 1px solid #eef2f7;
}
.brand-mark-image {
  width: 72px;
  height: 72px;
  border-radius: 24px;
  border: 1px solid #eef2f7;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-shadow: 0 16px 34px rgba(31, 41, 55, .10);
}
.brand-mark-image img { max-width: 86%; max-height: 86%; object-fit: contain; }
.brand { color: #0f172a; font-size: 28px; line-height: 1.05; font-weight: 900; letter-spacing: -.03em; margin: 0 0 6px; }
.brand-subtitle { color: #64748b !important; font-size: 18px; font-weight: 800; margin: 0; }
.sidebar-direct-link,
.sidebar > .nav-section > .nav-section-summary,
.logout-form button {
  position: relative;
  display: flex !important;
  align-items: center;
  gap: 16px;
  min-height: 58px;
  margin: 0 0 14px !important;
  padding: 13px 18px 13px 72px !important;
  border: 1.5px solid var(--sidebar-tile-border-v441) !important;
  border-radius: 18px !important;
  background: #fff !important;
  color: var(--sidebar-tile-text-v441) !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  box-shadow: 0 10px 30px rgba(31, 41, 55, .06);
}
.sidebar-direct-link:hover,
.sidebar-direct-link.active-link,
.sidebar > .nav-section > .nav-section-summary:hover,
.sidebar > .nav-section[open] > .nav-section-summary,
.logout-form button:hover {
  background: #fff !important;
  color: #000 !important;
  border-color: var(--sidebar-tile-blue-v441) !important;
  box-shadow: 0 14px 34px rgba(31, 41, 55, .13);
}
.sidebar-direct-link::before,
.sidebar > .nav-section > .nav-section-summary::before {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  border: 2px solid var(--sidebar-tile-blue-v441);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--sidebar-tile-blue-v441);
  font-size: 18px;
  line-height: 1;
  font-weight: 900;
  background: #fff;
}
.sidebar-direct-link--home::before { content: '⌂'; border-radius: 0; border: 0; font-size: 34px; width: 36px; height: 36px; }
.nav-section--voting > .nav-section-summary::before { content: '□'; }
.nav-section--finance > .nav-section-summary::before { content: 'Ⅲ'; font-family: Georgia, serif; }
.nav-section--rents > .nav-section-summary::before { content: '≡'; }
.nav-section--maintenance > .nav-section-summary::before { content: '⌕'; }
.nav-section--data > .nav-section-summary::before { content: '▥'; }
.nav-section--mailings > .nav-section-summary::before { content: '✉'; font-size: 15px; }
.nav-section--admin > .nav-section-summary::before { content: '⚙'; font-size: 17px; }
.sidebar > .nav-section > .nav-section-summary::after {
  content: '▶' !important;
  margin-left: auto;
  color: var(--sidebar-tile-blue-v441) !important;
  font-size: 18px !important;
}
.sidebar > .nav-section[open] > .nav-section-summary::after { transform: rotate(90deg); }
.nav-section { margin: 0 !important; }
.nav-section-links {
  margin: -6px 0 14px 18px;
  padding: 10px 0 2px 14px;
  border-left: 2px solid #eef2f7;
}
.nav-section-links a {
  color: #1f2937 !important;
  background: transparent !important;
  border-radius: 10px !important;
}
.nav-section-links a:hover,
.nav-section-links a.active-link {
  background: #eef2f7 !important;
  color: #0f172a !important;
}
.logout-form { margin-top: 36px !important; }
.logout-form button { justify-content: center; padding-left: 18px !important; font-size: 18px !important; }
.logout-form button::before { content: none !important; }
@media (max-width: 992px) {
  .brand { font-size: 24px; }
  .brand-subtitle { font-size: 16px; }
  .sidebar-direct-link,
  .sidebar > .nav-section > .nav-section-summary,
  .logout-form button { min-height: 54px; font-size: 16px !important; }
}
