:root{--color-primary:#0f172a;--color-primary-hover:#1e293b;--color-surface:#fff;--color-surface-offset:#f8fafc;--color-border:#e2e8f0;--color-text:#0f172a;--color-text-muted:#64748b;--color-text-faint:#94a3b8;--color-error:#ef4444;--color-success:#10b981;--color-warning:#f59e0b;--c-oc:#01696f;--c-konsultacja:#059669;--c-tax:#7c3aed;--c-utrata:#b45309;--c-zdrowie:#0891b2;--c-grupowe:#2563eb;--c-brak:#94a3b8;--c-inne:#64748b;--content-max:1360px;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--data-1:#2563eb;--data-2:#0d9488;--data-3:#7c3aed;--data-4:#d97706;--data-5:#db2777;--data-6:#059669;--vital-good:#10b981;--vital-mid:#f59e0b;--vital-poor:#ef4444;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--font-body:"Inter", system-ui, sans-serif;--transition:.18s cubic-bezier(.16, 1, .3, 1)}:root[data-theme=dark]{--color-primary:#f8fafc;--color-primary-hover:#e2e8f0;--color-surface:#0f172a;--color-surface-offset:#1e293b;--color-border:#334155;--color-text:#f8fafc;--color-text-muted:#94a3b8;--color-text-faint:#64748b;--color-accent:#60a5fa;--color-accent-hover:#93c5fd;--data-1:#60a5fa;--data-2:#2dd4bf;--data-3:#a78bfa;--data-4:#fbbf24;--data-5:#f472b6;--data-6:#34d399;--vital-good:#34d399;--vital-mid:#fbbf24;--vital-poor:#f87171;--c-oc:#2dd4bf;--c-konsultacja:#34d399;--c-tax:#a78bfa;--c-utrata:#fbbf24;--c-zdrowie:#22d3ee;--c-grupowe:#60a5fa;--c-brak:#64748b;--c-inne:#cbd5e1}:root[data-theme=dark] .badge-success{color:#34d399}:root[data-theme=dark] .badge-warning{color:#fbbf24}:root[data-theme=dark] .badge-error{color:#f87171}:root[data-theme=dark] .alert-error{color:#fca5a5}:root[data-theme=dark] .alert-success{color:#6ee7b7}:root[data-theme=dark] .alert-warning{color:#fcd34d}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--color-surface-offset);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3{color:var(--color-text);font-weight:600}a{color:inherit}.page-title{letter-spacing:-.02em;margin-bottom:var(--space-2);font-size:1.75rem}.page-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-6);max-width:68ch}.app-container{min-height:100vh;display:flex}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);width:260px;padding:var(--space-6) var(--space-4);flex-direction:column;flex-shrink:0;display:flex}.brand{align-items:center;gap:var(--space-3);margin-bottom:var(--space-8);padding:0 var(--space-2);letter-spacing:-.02em;font-size:1.1rem;font-weight:700;text-decoration:none;display:flex}.brand span{color:var(--color-text-muted);font-weight:400}.nav-section{margin-bottom:var(--space-6)}.nav-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-faint);margin-bottom:var(--space-2);padding-left:var(--space-3);font-size:.65rem;font-weight:600}.nav-item{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-sm);transition:var(--transition);cursor:pointer;text-align:left;background:0 0;border:none;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--color-surface-offset);color:var(--color-text)}.nav-item.active{background:var(--color-accent);color:var(--color-surface)}.main-content{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);height:64px;padding:0 var(--space-8);z-index:10;font-size:var(--text-sm);color:var(--color-text-muted);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.content-area{padding:var(--space-6) var(--space-8) var(--space-8);width:100%;max-width:var(--content-max);margin:0 auto}.kpi-grid{gap:var(--space-6) var(--space-8);margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--color-border);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.kpi-card{flex-direction:column;min-width:0;display:flex}.kpi-card .kpi-sub{padding-top:var(--space-2);margin-top:auto}.kpi-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:var(--space-2);font-weight:600}.kpi-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:2.5rem;font-weight:650;line-height:1}.kpi-sub{font-size:var(--text-xs);color:var(--color-text-faint);line-height:1.4}.kpi-spark{margin-top:var(--space-3)}.kpi-delta{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--color-text-muted);font-weight:600}.kpi-delta.up{color:var(--color-success)}.kpi-delta.down{color:var(--color-warning)}.table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-8);overflow:hidden}.table-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.table-toolbar h3{font-size:var(--text-base);margin:0}.table-scroll{overflow-x:auto}.tbl{border-collapse:collapse;text-align:left;width:100%}.tbl th,.tbl td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);font-size:var(--text-sm);vertical-align:top}.cell-main{color:var(--color-text);font-weight:600;line-height:1.35}.cell-sub{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:1px;line-height:1.35;display:block}.cell-sub.mono{color:var(--color-text-faint);letter-spacing:0}.tbl th{background:var(--color-surface-offset);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:.75rem;font-weight:600}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr:hover td{background:var(--color-surface-offset)}.tbl .num{text-align:right;font-variant-numeric:tabular-nums}.badge{text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-radius:9999px;align-items:center;gap:4px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-flex}.badge-success{background:color-mix(in srgb, var(--color-success) 12%, transparent);color:#047857}.badge-warning{background:color-mix(in srgb, var(--color-warning) 14%, transparent);color:#b45309}.badge-error{background:color-mix(in srgb, var(--color-error) 12%, transparent);color:#b91c1c}.badge-primary{background:color-mix(in srgb, var(--color-primary) 10%, transparent);color:var(--color-primary)}.badge-muted{background:var(--color-border);color:var(--color-text-muted)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:var(--transition);border:1px solid #0000;font-family:inherit;font-weight:500;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-surface)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-ghost{color:var(--color-text);border-color:var(--color-border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-surface-offset)}.btn-danger{color:var(--color-error);border-color:color-mix(in srgb, var(--color-error) 40%, transparent);background:0 0}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--color-error) 8%, transparent)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.form-field{margin-bottom:var(--space-4)}.form-row{gap:var(--space-4);flex-wrap:wrap;display:flex}.form-row .form-field{flex:1;min-width:180px}.form-label{font-size:var(--text-sm);margin-bottom:var(--space-1);font-weight:500;display:block}.form-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition)}.form-textarea{resize:vertical;min-height:100px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 18%, transparent);outline:none}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-6)}.checkbox-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.checkbox-tile{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);font-size:var(--text-sm);display:flex}.checkbox-tile:hover{border-color:var(--color-text-faint)}.checkbox-tile:has(input:checked){border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 4%, transparent)}.checkbox-tile input{accent-color:var(--color-primary);margin-top:3px}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-4);border:1px solid #0000}.alert-error{background:color-mix(in srgb, var(--color-error) 8%, transparent);border-color:color-mix(in srgb, var(--color-error) 30%, transparent);color:#b91c1c}.alert-success{background:color-mix(in srgb, var(--color-success) 8%, transparent);border-color:color-mix(in srgb, var(--color-success) 30%, transparent);color:#047857}.alert-warning{background:color-mix(in srgb, var(--color-warning) 10%, transparent);border-color:color-mix(in srgb, var(--color-warning) 35%, transparent);color:#92400e}.progress-track{background:var(--color-border);border-radius:9999px;height:8px;overflow:hidden}.progress-fill{background:var(--color-success);border-radius:9999px;height:100%;transition:width .4s}.grid-2{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));display:grid}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8em}.muted{color:var(--color-text-muted)}.faint{color:var(--color-text-faint);font-size:.8em}.tbl tbody tr.row-click{cursor:pointer}.tbl tbody tr.row-today td{background:color-mix(in srgb, var(--color-accent) 5%, transparent)}.tbl tbody tr.row-today:hover td{background:color-mix(in srgb, var(--color-accent) 9%, transparent)}.tbl tbody tr.row-today td:first-child{box-shadow:inset 3px 0 0 var(--color-accent)}.tbl tbody tr.row-hot td{background:color-mix(in srgb, var(--color-success) 9%, transparent)}.tbl tbody tr.row-hot:hover td{background:color-mix(in srgb, var(--color-success) 15%, transparent)}.tbl tbody tr.row-hot td:first-child{box-shadow:inset 3px 0 0 var(--color-success)}.tbl tbody tr.date-sep td{background:var(--color-surface-offset);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:var(--space-2) var(--space-5);font-size:.7rem;font-weight:700}.tbl tbody tr.date-sep:hover td{background:var(--color-surface-offset)}.tbl tbody tr.date-sep.today-sep td{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 8%, transparent)}.badge-today{background:color-mix(in srgb, var(--color-accent) 14%, transparent);color:var(--color-accent)}:root[data-theme=dark] .badge-today{color:var(--color-accent)}.hbars{gap:var(--space-2);display:grid}.hbar{align-items:center;gap:var(--space-3);grid-template-columns:minmax(0,11rem) 1fr auto;display:grid}.hbar-label{font-size:var(--text-sm);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hbar-track{background:var(--color-surface-offset);border-radius:9999px;height:10px;overflow:hidden}:root[data-theme=dark] .hbar-track{background:color-mix(in srgb, var(--color-border) 60%, transparent)}.hbar-fill{border-radius:9999px;min-width:3px;height:100%;display:block}.hbar-value{font-size:var(--text-sm);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.chip{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:6px;font-weight:500;display:inline-flex}.chip:before{content:"";background:var(--chip,var(--color-text-faint));border-radius:50%;flex:none;width:7px;height:7px}.chip-filter{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font:inherit;font-size:var(--text-xs);cursor:pointer;transition:var(--transition);border-radius:9999px;align-items:center;gap:6px;padding:4px 10px;font-weight:500;display:inline-flex}.chip-filter:hover{border-color:var(--color-accent);color:var(--color-text)}.chip-filter[aria-pressed=true]{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 10%, transparent);color:var(--color-accent)}.chip-filter[aria-pressed=true].is-hot{border-color:var(--color-success);background:color-mix(in srgb, var(--color-success) 12%, transparent);color:var(--color-success)}.table-scroll.tall{min-height:18rem;max-height:calc(100vh - 19rem);overflow-y:auto}.table-scroll.tall thead th{z-index:1;position:sticky;top:0}.btn-icon{padding:var(--space-2);color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;font-size:1.25rem;line-height:1}.btn-icon:hover{background:var(--color-surface-offset);color:var(--color-text)}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;padding:var(--space-4);background:#0f172a73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:880px;max-height:90vh;display:flex;box-shadow:0 25px 50px -12px #00000040}.modal-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.modal-title{font-size:var(--text-lg);margin:0}.modal-body{padding:var(--space-5);overflow-y:auto}.modal-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);justify-content:flex-end;gap:var(--space-3);background:var(--color-surface-offset);border-radius:0 0 var(--radius-lg) var(--radius-lg);display:flex}.person-section{margin-bottom:var(--space-6)}.person-section h4{font-size:var(--text-xs);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.kv-grid{gap:var(--space-3) var(--space-5);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.kv-label{font-size:var(--text-xs);color:var(--color-text-faint);margin-bottom:2px}.kv-value{font-size:var(--text-sm);word-break:break-word;font-weight:500}.person-json{background:var(--color-surface-offset);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;overflow-x:auto}.topbar-left{align-items:center;gap:var(--space-3);min-width:0;display:flex}.hamburger{border:1px solid var(--color-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text);cursor:pointer;transition:var(--transition);background:0 0;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;line-height:1;display:none}.hamburger:hover{background:var(--color-surface-offset)}.sidebar-overlay{z-index:50;cursor:pointer;background:#0f172a80;border:none;padding:0;display:none;position:fixed;inset:0}@media (width<=900px){.sidebar{z-index:60;width:260px;max-width:82vw;transition:transform var(--transition);position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:0 25px 50px -12px #00000059}.sidebar.open{transform:translate(0)}.sidebar-overlay.show{display:block}.hamburger{display:inline-flex}.topbar{height:56px;padding:0 var(--space-4)}.topbar-user{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.content-area{padding:var(--space-4)}.page-title{font-size:1.4rem}.page-subtitle{margin-bottom:var(--space-5)}.nav-item{padding:var(--space-3);font-size:var(--text-base)}.tbl th,.tbl td{padding:var(--space-3) var(--space-4)}}@media (width<=560px){.topbar-user{display:none}.content-area{padding:var(--space-3)}.page-title{font-size:1.25rem}}
