/* UP23 redesign — etap 1: wyłącznie warstwa wizualna (CSS), ładowana jako ostatnia.
   Rollback: usuń link do tego pliku z templates/shell-start.html. Nie dotyka danych, API ani logiki. */

/* Animacja przełączania zakładek/paneli (tylko stan aktywny, by nie nadpisywać ukrytych) */
@keyframes up23-fade-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.page.active,.client-panel.active{animation:up23-fade-in .22s ease-out}

/* Płynne przejścia interaktywnych elementów */
.tab,.btn,.chip,.menu-item{transition:background-color .15s,color .15s,border-color .15s,box-shadow .15s}

/* Kanban: kolumny nieco szersze (token już istnieje w styles.css) */
.kanban{--kanban-column-min-width:400px}

/* Checkboxy: spójny, czytelny wygląd z tokenów motywu */
input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px;border-radius:4px;cursor:pointer}
input[type=checkbox]:focus-visible{outline:2px solid color-mix(in srgb,var(--ring) 60%,transparent);outline-offset:2px}

/* Mobile: treść nie chowa się pod dolną krawędzią */
@media (max-width:900px){
  .page{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
}

/* Dostępność: respektuj preferencję ograniczenia ruchu */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* Przyciski powrotu (‹ Projekty, ‹ Klienci, Wróć do…) — bardziej widoczne */
[data-project-back],.client-analytics-back,[data-client-back]{border:1px solid var(--border);background:var(--card);color:var(--foreground);font-weight:600}
[data-project-back]:hover,.client-analytics-back:hover{background:var(--muted)}
[data-project-back] .icon,.client-analytics-back .icon{width:18px;height:18px}

/* Wyszukiwalna lista (nakładka na natywny select) */
.rd-combo{position:relative}
.rd-combo-native{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);opacity:0;pointer-events:none}
.rd-combo-btn{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-combo-btn::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.55;flex:none;margin-left:8px}
.rd-combo-pop{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 4px);background:var(--popover,var(--card));color:var(--popover-foreground,var(--foreground));border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgb(0 0 0/.14);padding:6px;animation:up23-fade-in .15s ease-out}
.rd-combo-list{max-height:240px;overflow:auto;margin-top:6px}
.rd-combo-item{display:block;width:100%;text-align:left;padding:8px 10px;border:0;border-radius:6px;background:transparent;color:inherit;cursor:pointer;font:inherit}
.rd-combo-item:hover,.rd-combo-item:focus-visible{background:var(--muted)}
.rd-combo-item.is-sel{font-weight:600;background:var(--accent,var(--muted))}
.rd-combo-empty{padding:10px;color:var(--muted-foreground);font-size:13px}
@media (hover:none){.rd-combo-item:hover{background:transparent}}

/* Terminy jako pastylki (nakładka na select) */
.rd-pills{display:flex;flex-wrap:wrap;gap:6px}
.rd-pill{border:1px solid var(--border);background:var(--card);color:var(--foreground);border-radius:999px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
.rd-pill.is-on{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}
.rd-pill:focus-visible{outline:2px solid color-mix(in srgb,var(--ring) 60%,transparent);outline-offset:2px}
@media (hover:hover){.rd-pill:not(.is-on):hover{background:var(--muted)}}

/* „Zakończony” w filtrze zadań jako przełącznik (ten sam input, ta sama logika) */
input[data-task-filter-status="completed"]{appearance:none;-webkit-appearance:none;width:34px;height:20px;border-radius:999px;background:var(--border);position:relative;transition:background-color .2s;flex:none}
input[data-task-filter-status="completed"]::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--background,#fff);box-shadow:0 1px 2px rgb(0 0 0/.3);transition:transform .2s}
input[data-task-filter-status="completed"]:checked{background:var(--primary)}
input[data-task-filter-status="completed"]:checked::after{transform:translateX(14px)}

/* Ciemny motyw — tylko nadpisanie tokenów; włączany przyciskiem (zapis w localStorage przeglądarki) */
html[data-mode="dark"]{
  color-scheme:dark;
  --background:oklch(.16 0 0);--workspace-canvas:oklch(.13 0 0);--foreground:oklch(.96 0 0);
  --card:oklch(.19 0 0);--card-foreground:oklch(.96 0 0);--popover:oklch(.21 0 0);--popover-foreground:oklch(.96 0 0);
  --primary:oklch(.96 0 0);--primary-foreground:oklch(.18 0 0);
  --secondary:oklch(.26 0 0);--secondary-foreground:oklch(.96 0 0);--muted:oklch(.26 0 0);--muted-foreground:oklch(.72 0 0);
  --accent:oklch(.28 0 0);--accent-foreground:oklch(.96 0 0);--border:oklch(.3 0 0);--input:oklch(.3 0 0);--ring:oklch(.55 0 0);
  --sidebar:oklch(.17 0 0);--sidebar-foreground:oklch(.92 0 0);--sidebar-border:oklch(.28 0 0);
  --sidebar-accent:oklch(.26 0 0);--sidebar-accent-foreground:oklch(.96 0 0);
}
html[data-mode="dark"] .brand-logo{filter:brightness(0) invert(1)}
.rd-mode-btn{margin-right:8px;font-size:16px;line-height:1}

/* Splash z logo podczas ładowania danych; nigdy nie blokuje kliknięć i znika samoczynnie po 10 s */
html::before,html::after{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:0;transition:opacity .35s ease}
html::before{background:var(--background,#fff)}
html::after{z-index:10000;background:url("../../assets/logo-up23-full.png") center/160px auto no-repeat}
html[data-mode="dark"]::after{filter:brightness(0) invert(1)}
html[data-server-ready="0"]::before,html[data-server-ready="0"]::after{opacity:1;animation:up23-splash-failsafe 0s 10s forwards}
@keyframes up23-splash-failsafe{to{opacity:0;visibility:hidden}}

/* Ciemny motyw: plakietki statusów (w styles.css mają jasne tła na stałe) */
html[data-mode="dark"] .badge-blue{background:hsl(221 60% 22%);color:hsl(214 95% 80%)}
html[data-mode="dark"] .badge-green{background:hsl(142 45% 18%);color:hsl(142 70% 75%)}
html[data-mode="dark"] .badge-amber{background:hsl(38 55% 20%);color:hsl(45 95% 72%)}
html[data-mode="dark"] .badge-red{background:hsl(0 50% 22%);color:hsl(0 90% 80%)}
html[data-mode="dark"] .badge-purple{background:hsl(270 40% 24%);color:hsl(270 90% 85%)}

/* Telefon: lista projektów jako karty zamiast tabeli 1570 px (te same wiersze, tylko inny układ CSS) */
@media (max-width:760px){
  .table-head.projects-list-grid{display:none}
  .projects-list-grid{min-width:0!important;width:100%}
  .project-list-row.projects-list-grid{display:grid;grid-template-columns:28px 1fr auto;grid-template-areas:"chk name name" ". type status" ". bill marg" ". prog dead";gap:6px 10px;padding:12px;align-items:center;border-bottom:1px solid var(--border)}
  .project-list-row>:nth-child(1){grid-area:chk}
  .project-list-row>:nth-child(2){grid-area:name}
  .project-list-row>:nth-child(3){grid-area:type}
  .project-list-row>:nth-child(4){grid-area:status;justify-self:end}
  .project-list-row>:nth-child(5){grid-area:bill}
  .project-list-row>:nth-child(7){grid-area:marg;justify-self:end;text-align:right}
  .project-list-row>:nth-child(10){grid-area:prog}
  .project-list-row>:nth-child(11){grid-area:dead;justify-self:end;color:var(--muted-foreground);font-size:13px}
  .project-list-row>:nth-child(6),.project-list-row>:nth-child(8),.project-list-row>:nth-child(9){display:none}
}

/* Samouczek klienta: płynne przejście podświetlenia między krokami */
.client-tour-highlight{outline-color:transparent!important;box-shadow:none!important}
.rd-tour-ring{position:fixed;z-index:110;pointer-events:none;border:2px solid var(--chart-1);border-radius:12px;box-shadow:0 0 0 5px color-mix(in srgb,var(--chart-1) 18%,transparent);opacity:0;transition:top .35s ease,left .35s ease,width .35s ease,height .35s ease,opacity .2s}
.rd-tour-ring.on{opacity:1}

/* Przełączniki: wsuwana kapsuła aktywnej zakładki */
.tabs{position:relative}
.tabs>.tab{position:relative;z-index:1}
.rd-thumb{position:absolute;top:0;left:0;z-index:0;border-radius:7px;pointer-events:none;
  background:color-mix(in srgb,var(--chart-1) 13%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--chart-1) 22%,var(--border));
  transition:transform .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1),height .28s}
.tabs:not(.rd-thumbed)>.rd-thumb{display:none}
.tabs.rd-thumbed>.tab.active{background:transparent;box-shadow:none}

/* Etap 8–9: timer węższy (był 1,5fr : 0,7fr), wyrównany do kafla obok */
.time-workspace-grid{grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr)}
@media (max-width:900px){.time-workspace-grid{grid-template-columns:1fr}}

/* Etap 10: ciemny motyw — elementy z jasnymi kolorami zapisanymi na stałe */
html[data-mode="dark"] .nav-badge,html[data-mode="dark"] .count{background:hsl(221 60% 22%);color:hsl(214 95% 80%)}
html[data-mode="dark"] .delta.up,html[data-mode="dark"] .status-pill.success{background:hsl(142 45% 18%);color:hsl(142 70% 75%)}
html[data-mode="dark"] .delta.down{background:hsl(0 50% 22%);color:hsl(0 90% 80%)}
html[data-mode="dark"] .kanban-capacity.is-over.is-informational{color:hsl(38 95% 70%);background:color-mix(in srgb,#f59e0b 18%,var(--card))}
html[data-mode="dark"] .chart-bar{fill:color-mix(in srgb,var(--chart-1) 82%,black)}
html[data-mode="dark"] img.brand-logo-mini{filter:brightness(0) invert(1)}

/* Zwijany pasek boczny (desktop) */
.rd-side-btn{display:none}
@media (min-width:901px){
  .rd-side-btn{display:block;position:sticky;bottom:8px;margin:12px 16px 0 auto;width:32px;height:32px;border:1px solid var(--sidebar-border);border-radius:8px;background:var(--card);color:var(--foreground);cursor:pointer;font-size:16px;line-height:1}
  html[data-sidebar="collapsed"]{--sidebar-w:72px}
  html[data-sidebar="collapsed"] .nav-text,html[data-sidebar="collapsed"] .nav-label,html[data-sidebar="collapsed"] .brandname,html[data-sidebar="collapsed"] .brand-logo-full{display:none}
  html[data-sidebar="collapsed"] .brand-logo-mini{display:block}
  html[data-sidebar="collapsed"] .brand{justify-content:center}
  html[data-sidebar="collapsed"] .sidebar .nav-link{justify-content:center;padding-left:0;padding-right:0;position:relative}
  html[data-sidebar="collapsed"] .sidebar .nav-link .nav-badge{position:absolute;top:4px;right:10px;margin:0}
  html[data-sidebar="collapsed"] .rd-side-btn{margin:12px auto 0}
}

/* Mini-timer w nagłówku */

/* ===== Czas pracy: układ z makiety (kafle → timer + rejestr) ===== */
#page-time .time-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-bottom:16px;align-items:stretch}
#page-time .time-kpi-row>.card-pad:not(.time-summary-card){display:contents;padding:0;border:0;background:none;box-shadow:none}
#page-time .mini-kpi-grid{display:contents}
#page-time .mini-kpi-grid>div{text-align:left;align-items:flex-start;justify-content:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:4px;min-width:0}
#page-time .mini-kpi-grid>div>span{font-size:12px;color:var(--muted-foreground)}
#page-time .mini-kpi-grid>div>strong{font-size:22px;line-height:1.15;font-weight:700;overflow-wrap:anywhere}
#page-time .mini-kpi-grid>div>small{font-size:12px;color:var(--muted-foreground)}
#page-time .time-summary-card{padding:16px;min-width:0}
#page-time .time-summary-card .time-summary-main strong{font-size:24px}
#page-time .time-summary-card .time-summary-progress-row+.time-summary-progress-row{display:none}
#page-time .time-main-grid{display:grid;grid-template-columns:minmax(320px,360px) minmax(0,1fr);gap:16px;align-items:start}
#page-time .time-main-grid>.timer-card{position:sticky;top:calc(var(--header-h,64px) + 16px)}
#page-time .time-register{min-width:0;display:flex;flex-direction:column;gap:16px}
#page-time .timer-display-row{flex-direction:column;align-items:flex-start;gap:12px}
#page-time .timer-fields-primary{grid-template-columns:1fr}
@media (max-width:1100px){#page-time .time-main-grid{grid-template-columns:1fr}#page-time .time-main-grid>.timer-card{position:static}}
/* wyszukiwarka w rejestrze */
#page-time .time-entry-search{min-width:220px}
/* rejestr: grupy dni + wiersze z awatarem */
#page-time .time-day-head{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--muted);color:var(--foreground);font-size:13px;font-weight:600;border-top:1px solid var(--border);position:sticky;top:0;z-index:2}
#page-time .time-entry-grid{grid-template-columns:100px minmax(0,1fr) 72px 82px 104px 28px;min-width:0;column-gap:10px}
#page-time .time-entry-time{color:var(--muted-foreground);font-variant-numeric:tabular-nums;font-size:13px}
#page-time .time-entry-main{display:flex;align-items:center;gap:12px;min-width:0}
#page-time .time-entry-text{display:flex;flex-direction:column;min-width:0}
#page-time .time-entry-text>strong,#page-time .time-entry-text>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#page-time .time-entry-avatar{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;background:hsl(var(--av) 55% 45%)}
#page-time .time-entry-rate{color:var(--muted-foreground);font-size:13px;white-space:nowrap}
#page-time .time-entry-amount{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
@media (max-width:760px){
  #page-time .time-entry-grid{grid-template-columns:1fr auto;grid-template-areas:"main amt" "time dur";gap:4px 12px;padding:12px 16px}
  #page-time .table-head.time-entry-grid{display:none}
  #page-time .time-entry-main{grid-area:main}#page-time .time-entry-amount{grid-area:amt;align-items:flex-end}
  #page-time .time-entry-time{grid-area:time}#page-time .time-entry-dur{grid-area:dur;text-align:right}
  #page-time .time-entry-rate,#page-time .time-entry-description-cell{display:none}
}

#page-time .time-entry-main.user-copy{display:flex;flex-direction:row;align-items:center;gap:12px}
#page-time .time-summary-card .card-head{flex-wrap:wrap;gap:6px}
#page-time .timer-live-value{text-align:left;align-items:flex-start}
#page-time .timer-live-earnings{text-align:left;align-items:flex-start}
#page-time .time-entries-card .section-heading{flex-wrap:wrap;gap:12px}
#page-time .time-entries-card .section-heading>.actions{flex:1 1 320px;justify-content:flex-end;flex-wrap:nowrap}
#page-time .time-entry-search{flex:1 1 180px;min-width:0}

#page-time .time-summary-card .card-sub,#page-time .time-summary-card .card-head .badge{display:none}
#page-time .time-summary-card .time-summary-main{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
#page-time .time-entry-text>strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#page-time .timer-money{text-align:left;justify-content:flex-start}
@media (max-width:760px){
  #page-time .time-kpi-row{grid-template-columns:1fr 1fr;gap:10px}
  #page-time .time-summary-card{grid-column:1/-1}
  #page-time .mini-kpi-grid>div{padding:12px}
  #page-time .mini-kpi-grid>div>strong{font-size:18px}
}

/* ===== Pulpit: układ z makiety (powitanie → cel miesiąca → plan dnia + wiadomości) ===== */
#page-dashboard .dash-head .page-title{font-size:26px}
#page-dashboard .dash-hero{padding:22px 24px;margin-bottom:16px}
#page-dashboard .dash-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
#page-dashboard .dash-hero-main{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
#page-dashboard .dash-hero-main strong{font-size:34px;line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums}
#page-dashboard .dash-hero-main span{color:var(--muted-foreground);font-size:14px}
#page-dashboard .dash-bar{position:relative;height:14px;border-radius:999px;background:var(--muted);margin:18px 0 10px}
#page-dashboard .dash-bar>span{position:absolute;left:0;top:0;bottom:0;border-radius:999px;transition:width .5s cubic-bezier(.4,0,.2,1)}
#page-dashboard .dash-bar-earned{background:color-mix(in srgb,var(--success) 35%,var(--muted))}
#page-dashboard .dash-bar-invoiced{background:var(--success)}
#page-dashboard .dash-bar-today{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--foreground);transition:left .5s}
#page-dashboard .dash-bar-today b{position:absolute;top:-14px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:600;white-space:nowrap}
#page-dashboard .dash-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--muted-foreground)}
#page-dashboard .dash-legend b{color:var(--foreground);font-weight:600;margin-left:2px}
#page-dashboard .lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
#page-dashboard .lg-earned{background:color-mix(in srgb,var(--success) 35%,var(--muted))}
#page-dashboard .lg-invoiced{background:var(--success)}
#page-dashboard .lg-pace{background:var(--foreground)}
#page-dashboard .dash-hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}
#page-dashboard .dash-hero-stats strong{display:block;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
#page-dashboard .dash-hero-stats span{font-size:12px;color:var(--muted-foreground)}
#page-dashboard .dashboard-operational-metrics{margin-bottom:16px}
#page-dashboard .dash-side{display:flex;flex-direction:column;gap:16px;min-width:0}
#page-dashboard .dash-side>.card{margin:0}
/* plan dnia: wiersze z awatarem */
#page-dashboard .dash-task-main{display:flex;align-items:center;gap:12px;min-width:0}
#page-dashboard .dash-task-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis}
#page-dashboard .dash-avatar{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;background:hsl(var(--av) 55% 45%)}
/* wiadomości od klientów */
#page-dashboard .dash-msg-list{display:flex;flex-direction:column;gap:8px}
#page-dashboard .dash-msg{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 12px;border:0;border-radius:10px;background:var(--muted);color:inherit;font:inherit;cursor:pointer;transition:background-color .15s}
#page-dashboard .dash-msg-text{display:flex;flex-direction:column;min-width:0;flex:1}
#page-dashboard .dash-msg-text>strong,#page-dashboard .dash-msg-text>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#page-dashboard .dash-msg-text>span{font-size:12px;color:var(--muted-foreground)}
@media (hover:hover){#page-dashboard .dash-msg:hover{background:color-mix(in srgb,var(--muted) 70%,var(--foreground) 6%)}}
@media (max-width:760px){
  #page-dashboard .dash-hero{padding:16px}
  #page-dashboard .dash-hero-main strong{font-size:28px}
  #page-dashboard .dash-hero-stats{grid-template-columns:1fr}
  #page-dashboard .dash-legend{gap:8px 14px}
}

/* ===== Taski: Plan tygodnia (widok z makiety) ===== */
.task-week{display:flex;flex-direction:column;gap:14px}
.week-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.week-nav-label{display:flex;flex-direction:column}
.week-nav-label span{font-size:13px;color:var(--muted-foreground)}
.week-board{display:grid;grid-template-columns:260px repeat(7,minmax(240px,1fr));gap:12px;overflow-x:auto;padding-bottom:12px;align-items:start}
.week-col{background:var(--muted);border-radius:12px;padding:10px;min-height:320px;display:flex;flex-direction:column;gap:8px;border:1px dashed transparent;transition:border-color .15s,background-color .15s}
.week-col.week-backlog{background:transparent;border:1px dashed var(--border)}
.week-col.week-weekend{opacity:.85}
.week-col.week-today{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--chart-1) 40%,transparent)}
.week-col.drag-over{border-color:var(--chart-1);background:color-mix(in srgb,var(--chart-1) 8%,var(--muted))}
.week-col-head{display:flex;flex-direction:column;gap:6px;padding:2px 4px}
.week-col-head>strong,.week-day{display:flex;align-items:baseline;gap:8px}
.week-backlog .week-col-head{flex-direction:row;justify-content:space-between}
.week-day span:nth-child(2){color:var(--muted-foreground);font-size:13px}
.week-sum{margin-left:auto;font-size:12px;color:var(--muted-foreground)}
.week-load{height:4px;border-radius:999px;background:var(--border);overflow:hidden}
.week-load span{display:block;height:100%;background:var(--chart-1);transition:width .3s}
.week-col-body{display:flex;flex-direction:column;gap:8px}
.week-empty{padding:14px;text-align:center;font-size:12px;color:var(--muted-foreground)}
.week-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;cursor:grab;transition:box-shadow .15s,transform .15s}
.week-card:focus-visible{outline:2px solid color-mix(in srgb,var(--ring) 60%,transparent);outline-offset:2px}
.week-card.dragging{opacity:.5}
.week-card.is-done>strong{text-decoration:line-through;color:var(--muted-foreground)}
.week-card>strong{font-size:14px;line-height:1.3}
.week-card-meta{display:flex;align-items:center;gap:8px;min-width:0}
.week-card-client{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--muted-foreground)}
.week-card-time{font-size:12px;color:var(--muted-foreground);white-space:nowrap}
.week-card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px}
.week-card-cat{font-size:12px;color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-avatar.sm{width:20px;height:20px;font-size:9px}
.dash-avatar{flex:none;border-radius:50%;display:grid;place-items:center;font-weight:700;color:#fff;background:hsl(var(--av) 55% 45%)}
@media (hover:hover){.week-card:hover{box-shadow:var(--shadow-md)}}
@media (max-width:760px){.week-board{grid-template-columns:260px repeat(7,260px)}}

/* ===== Taski: pasek narzędzi, karty kanbanu, okno zadania (makieta v14) ===== */
.task-view-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.task-view-toolbar>.actions{display:contents}
.task-view-toolbar .search{order:1}
.task-view-toolbar>.tabs{order:2;margin-left:auto;flex:none}
.task-view-toolbar .rd-pills,.task-view-toolbar .task-toolbar-deadline{order:3;flex:1 1 100%}
.task-view-toolbar .tab{white-space:nowrap}
.task-view-toolbar .search{flex:0 1 320px;min-width:200px}
#page-tasks .task-card{display:flex;flex-direction:column;gap:8px;position:relative;border-radius:12px;padding:12px 14px}
#page-tasks .task-card .task-title{order:1;font-size:14px;font-weight:600;line-height:1.3;padding-right:26px}
#page-tasks .task-card .task-foot{order:2}
#page-tasks .task-card .task-card-top{order:3;display:flex;align-items:center}
#page-tasks .task-card .task-card-check{position:absolute;top:10px;right:10px;margin:0}
#page-tasks .task-card .task-card-top .task-labels{display:flex;gap:6px;flex-wrap:wrap}
@media (min-width:901px){
  #taskDrawer{top:50%;left:50%;right:auto;bottom:auto;width:min(860px,calc(100vw - 32px));max-height:calc(100dvh - 48px);border:1px solid var(--border);border-radius:16px;overflow:hidden;transform:translate(-50%,-47%) scale(.98);opacity:0;visibility:hidden;transition:transform .2s ease,opacity .2s ease,visibility 0s .2s}
  #taskDrawer.open{transform:translate(-50%,-50%);opacity:1;visibility:visible;transition:transform .2s ease,opacity .2s ease}
  #taskDrawer .drawer-header{padding:14px 20px;border-bottom:0}
  #taskDrawer .drawer-title{font-size:20px;font-weight:700}
  #taskDrawer .drawer-body{background:var(--muted);padding:12px 20px 20px;min-height:0}
  #taskDrawer .drawer-edit-toolbar{margin-bottom:12px}
  #taskDrawer .workspace-drawer-tabs .tabs{background:var(--card)}
  #taskDrawer .task-drawer-panel>*{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin:0 0 14px}
  #taskDrawer .task-drawer-panel .drawer-section{margin-top:0}
  #taskDrawer .task-drawer-panel>.field{display:block}
  #taskDrawer .task-drawer-panel .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  #taskDrawer .drawer-footer{background:var(--card)}
}

/* ===== Projekty: lista wg makiety (kolumny: Projekt, Klient, Postęp, Budżet, Wartość, Stawka) ===== */
.rd-bar{display:block;height:6px;border-radius:999px;background:var(--muted);overflow:hidden;margin-top:6px}
.rd-bar b{display:block;height:100%;background:var(--chart-1);border-radius:inherit;transition:width .3s}
.project-list-finance.is-warning .rd-bar b,.project-list-finance.warning .rd-bar b{background:hsl(38 90% 48%)}
.project-list-finance.is-danger .rd-bar b,.project-list-finance.danger .rd-bar b,.project-list-finance.red .rd-bar b{background:hsl(0 72% 50%)}
.project-list-finance.green .rd-bar b{background:hsl(152 60% 38%)}
.project-list-client{display:flex;align-items:center;gap:8px;min-width:0}
.project-list-client span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-list-progress strong,.project-list-progress>span{display:inline}.project-list-progress>span{margin-left:6px;color:var(--muted-foreground)}
@media (min-width:761px){
  .projects-list-grid{grid-template-columns:36px minmax(200px,1.6fr) minmax(150px,1.1fr) minmax(120px,1fr) minmax(130px,1fr) 110px 110px;min-width:0;column-gap:12px}
  .projects-list-grid>:nth-child(3),.projects-list-grid>:nth-child(4),.projects-list-grid>:nth-child(6),.projects-list-grid>:nth-child(7),.projects-list-grid>:nth-child(11){display:none}
  .projects-list-grid>:nth-child(1){order:1}.projects-list-grid>:nth-child(2){order:2}.projects-list-grid>:nth-child(12){order:3}
  .projects-list-grid>:nth-child(10){order:4}.projects-list-grid>:nth-child(9){order:5}.projects-list-grid>:nth-child(5){order:6}.projects-list-grid>:nth-child(8){order:7}
  .projects-scroll-region{overflow-x:visible}
}
@media (max-width:760px){.projects-list-grid>:nth-child(12),.projects-list-grid .rd-bar{display:none}}

/* ===== Klienci i użytkownicy: zakładka Klienci wg makiety ===== */
#page-users[data-users-view="clients"] [data-server-users-table],#page-users[data-users-view="clients"] #userBulkToolbar,#page-users[data-users-view="clients"] #userFilterToggle,#page-users[data-users-view="clients"] #userFilterPanel{display:none!important}
#page-users[data-users-view="all"] [data-server-clientlist]{display:none}
#page-users .toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#page-users .users-view-tabs{margin-right:auto}
.client-list-grid{display:grid;grid-template-columns:minmax(200px,1.6fr) 110px 90px minmax(140px,1.4fr) 140px 150px 150px;column-gap:12px;align-items:center;padding:12px 16px}
.client-list-card .table-head.client-list-grid{padding-block:10px}
.client-list-row{cursor:pointer;border-top:1px solid var(--border)}
.client-list-row:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}
@media (hover:hover){.client-list-row:hover{background:var(--muted)}}
.client-list-name{display:flex;align-items:center;gap:10px;min-width:0}
.client-list-name .dash-avatar{width:30px;height:30px;font-size:11px}
.client-list-projects{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.client-list-money{text-align:right;font-variant-numeric:tabular-nums}
.client-list-money.is-due{color:hsl(38 90% 40%);font-weight:600}
.client-list-card .table-head .client-list-money,.client-list-card .table-head>div:nth-child(n+6){text-align:right}
@media (max-width:900px){.client-list-card .table-head{display:none}.client-list-grid{grid-template-columns:1fr auto;row-gap:6px}.client-list-projects,.client-list-grid>:nth-child(3){display:none}}

/* Okno konta/klienta jak okno zadania (>=901px) */
@media (min-width:901px){
  #userDrawer,#clientDrawer,#clientAnalyticsDrawer{top:50%;left:50%;right:auto;bottom:auto;width:min(820px,calc(100vw - 32px));max-height:calc(100dvh - 48px);border:1px solid var(--border);border-radius:16px;overflow:hidden;transform:translate(-50%,-47%) scale(.98);opacity:0;visibility:hidden;transition:transform .2s ease,opacity .2s ease,visibility 0s .2s}
  #userDrawer.open,#clientDrawer.open,#clientAnalyticsDrawer.open{transform:translate(-50%,-50%);opacity:1;visibility:visible;transition:transform .2s ease,opacity .2s ease}
  #userDrawer .drawer-header,#clientDrawer .drawer-header,#clientAnalyticsDrawer .drawer-header{border-bottom:0}
  #userDrawer .drawer-body,#clientDrawer .drawer-body,#clientAnalyticsDrawer .drawer-body{background:var(--muted);min-height:0}
}


/* ===== POWŁOKA 1:1 Z MAKIETĄ v14: tokeny, font, menu, górny pasek, nagłówki stron ===== */
:root{
  --font-ui:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --radius:8px;--header-h:60px;--sidebar-w:224px;
  --background:#fff;--workspace-canvas:#F9F9FD;--foreground:#0C243C;
  --card:#fff;--card-foreground:#0C243C;--popover:#fff;--popover-foreground:#0C243C;
  --primary:#5955D1;--primary-foreground:#fff;--secondary:#F2F2F6;--secondary-foreground:#0C243C;
  --muted:#F2F2F6;--muted-foreground:#5F5F78;--accent:#F0F0FC;--accent-foreground:#4540B8;
  --border:#E6E6EE;--input:#E6E6EE;--ring:#5955D1;
  --success:#009966;--warning:#C98300;--destructive:#E02F2F;
  --chart-1:#5955D1;--chart-2:#E0508A;--chart-3:#009966;--chart-4:#F5A70D;--chart-5:#7008E7;
  --sidebar:#fff;--sidebar-foreground:#0C243C;--sidebar-border:#E6E6EE;--sidebar-accent:#F2F2F6;--sidebar-accent-foreground:#0C243C;
  --shadow-md:0 5px 10px rgba(2,2,76,.03);
}
html[data-mode="dark"]{--primary:#8E8BF0;--primary-foreground:#12122B;--ring:#8E8BF0;--accent:oklch(.28 .03 280);--accent-foreground:#C9C8FA;--chart-1:#8E8BF0}
html,body,button,input,select,textarea{font-family:var(--font-ui)}
body{font-variant-numeric:tabular-nums}
.card,.card.table-card{border-radius:12px;box-shadow:var(--shadow-md)}
.btn{border-radius:8px;font-weight:500}
.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}
@media (hover:hover){.btn-primary:hover{background:color-mix(in srgb,var(--primary) 88%,#000);border-color:transparent}}
.form-control{border-radius:8px}

@media (min-width:901px){
  .topbar{height:var(--header-h);background:transparent;border-bottom:0}
  .topbar>.brand{background:var(--card);border-right:1px solid var(--border);padding:0 20px;width:var(--sidebar-w);flex:none}
  .topbar>.topmain{flex:1;min-width:0;height:100%;display:flex;align-items:center;gap:12px;padding:0 24px;background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
  .admin-page-head-slot,.topmain>.top-spacer{display:none}
  .sidebar{top:var(--header-h);background:var(--card);box-shadow:inset -1px 0 10px rgba(41,41,75,.03);overflow:visible}
  .sidebar-inner{display:flex;flex-direction:column;min-height:100%;padding:16px 12px 12px;gap:2px}
  .sidebar .nav-group{display:grid;gap:2px;padding:0;margin:0}
  .sidebar .nav-link{display:flex;align-items:center;gap:10px;height:auto;padding:9px 10px;border-radius:8px;color:var(--muted-foreground);font-weight:500;font-size:14px;margin:0}
  .sidebar .nav-link .icon{width:18px;height:18px;flex:none}
  .sidebar .nav-link:hover{background:var(--muted);color:var(--foreground)}
  .sidebar .nav-link.active{background:var(--muted);color:var(--foreground);font-weight:600}
  .sidebar .nav-badge{margin-left:auto;font-size:12px;font-weight:500;color:var(--muted-foreground);background:transparent;padding:0;min-width:0;height:auto}
  .sidebar .nav-badge[data-unread-messages-count]{background:var(--primary);color:var(--primary-foreground);border-radius:999px;min-width:20px;height:20px;padding:0 6px;display:inline-grid;place-items:center;font-weight:600}
  .sidebar .nav-badge[data-unread-messages-count="0"],.sidebar .nav-badge[data-server-nav-count="0"]{display:none}
  .sidebar-foot{margin-top:auto;display:grid;gap:8px;padding-top:12px}
  .sidebar-foot>.nav-group{display:flex;align-items:center;gap:8px}
  .sidebar-foot>.nav-group>.nav-link{flex:1}
  .rd-mode-btn{margin:0;flex:none;width:32px;height:32px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--muted-foreground);display:grid;place-items:center}
  .rd-side-btn{position:static;margin:0;width:100%;height:auto;border:0;background:transparent;border-radius:8px;padding:9px 10px;text-align:left;color:var(--muted-foreground);font-weight:500;font-size:14px;display:flex;align-items:center;gap:10px}
  .rd-side-btn:hover{background:var(--muted);color:var(--foreground)}
  .sidebar-user{border-top:1px solid var(--border);padding-top:8px}
  .sidebar-user .user-trigger{width:100%;height:auto;padding:8px 10px;gap:10px;justify-content:flex-start;border-radius:8px}
  .sidebar-user .user-trigger-copy{display:block;text-align:left;min-width:0;flex:1}
  .sidebar-user .user-trigger .icon{display:none}
  .user-menu{top:auto;bottom:12px;left:calc(var(--sidebar-w) + 8px);right:auto;transform-origin:bottom left}
  .main{margin-left:var(--sidebar-w);background:var(--workspace-canvas)}
  .page{margin:0;padding:24px;max-width:1280px}
  #page-tasks{max-width:none}
  .page-head{display:flex;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}
  .page-head>div:first-child{min-width:0}
  .page-title{margin:0;font-size:22px;line-height:1.2;font-weight:650;letter-spacing:-.02em;color:var(--foreground)}
  .page-sub{margin:4px 0 0;color:var(--muted-foreground);font-size:14px;line-height:1.45}
  .page-head>.actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
}
.rd-search{position:relative;flex:1;max-width:420px;display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--workspace-canvas);color:var(--muted-foreground)}
.rd-search:focus-within{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 18%,transparent)}
.rd-search .icon{width:16px;height:16px;flex:none}
.rd-search input{flex:1;min-width:0;height:100%;border:0;background:transparent;outline:0;font-size:14px;color:var(--foreground)}
.rd-search kbd{font:12px/1 var(--font-ui);border:1px solid var(--border);border-radius:4px;padding:2px 6px;background:var(--card);color:var(--muted-foreground)}
.rd-search-list{position:absolute;top:42px;left:0;right:0;min-width:360px;background:var(--popover);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg,0 10px 30px rgba(2,2,76,.12));padding:6px;z-index:80;display:grid;gap:2px}
.rd-search-list[hidden]{display:none}
.rd-search-item{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--foreground);font-size:14px}
.rd-search-item.on,.rd-search-item:hover{background:var(--muted)}
.rd-search-type{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground)}
.rd-search-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.rd-search-sub{color:var(--muted-foreground);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}
.rd-search-empty{padding:12px;color:var(--muted-foreground);font-size:13px}
.rd-top-right{margin-left:auto;display:flex;align-items:center;gap:10px;order:2}
.rd-timer-chip{display:flex;align-items:center;gap:10px;height:38px;padding:0 6px 0 14px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--foreground);cursor:pointer}
.rd-timer-t{font-weight:600;font-size:15px;min-width:64px;text-align:left}
.rd-timer-what{color:var(--muted-foreground);font-size:14px;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-timer-btn{width:28px;height:28px;border-radius:50%;background:var(--primary);color:var(--primary-foreground);display:grid;place-items:center}
.rd-timer-btn .icon{width:14px;height:14px}
.rd-timer-chip.running{border-color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--card))}
.rd-timer-chip.running .rd-timer-btn{background:var(--success)}
.rd-iconbtn{width:36px;height:36px;border:1px solid var(--border);border-radius:8px;background:var(--card);display:grid;place-items:center;color:var(--muted-foreground);cursor:pointer}
.rd-iconbtn:hover{background:var(--muted);color:var(--foreground)}
.rd-iconbtn .icon{width:16px;height:16px}
.rd-add{position:relative}
.rd-add .btn{height:36px;padding:0 14px;gap:8px}
.rd-add .btn .icon{width:16px;height:16px}
.rd-add-menu{position:absolute;right:0;top:42px;min-width:200px;background:var(--popover);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px rgba(2,2,76,.12);padding:6px;z-index:80;display:grid;gap:2px}
.rd-add-menu[hidden]{display:none}
.rd-add-menu button{text-align:left;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--foreground);font-size:14px;cursor:pointer}
.rd-add-menu button:hover,.rd-add-menu button:focus-visible{background:var(--muted);outline:0}
@media (max-width:900px){.rd-search kbd,.rd-timer-what{display:none}.rd-search{max-width:none}}
html[data-sidebar="collapsed"] .rd-side-label,html[data-sidebar="collapsed"] .sidebar-user .user-trigger-copy,html[data-sidebar="collapsed"] .sidebar-foot .rd-mode-btn{display:none}
html[data-sidebar="collapsed"] .rd-side-btn{justify-content:center}
