@import url('https://fonts.googleapis.com/css2?family=Oxanium:wght@400;500;600;700;800&family=Barlow:wght@300;400;500;600;700&family=Barlow+Condensed:wght@400;500;600;700&display=swap');

:root {
  --red:#EB0A1E; --red-dark:#c00018;
  --black:#0a0a0a; --gray-900:#1a1a1a; --gray-800:#2a2a2a;
  --gray-700:#3d3d3d; --gray-600:#555; --gray-400:#999;
  --gray-300:#ccc; --gray-200:#e5e5e5; --gray-100:#f5f5f5; --white:#fff;
  --amber:#FFA000; --overdue-bg:#fff7f0;
  --font-brand:'Oxanium','Segoe UI',system-ui,Arial,sans-serif;
  --font-main:'Barlow','Segoe UI',system-ui,Arial,sans-serif;
  --font-cond:'Barlow Condensed','Arial Narrow',Arial,sans-serif;
  --shadow-sm:0 1px 3px rgba(0,0,0,.10); --shadow-lg:0 8px 32px rgba(0,0,0,.22);
  --r:3px; --hh:52px; --th:40px; --ch:92px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--font-main);background:#eaecef;color:var(--black);font-size:14px;overflow-x:hidden;}

/* ── LOGIN ── */
#login-screen{position:fixed;inset:0;background:var(--black);display:flex;align-items:center;justify-content:center;z-index:2000;}
.login-box{background:var(--gray-900);border:1px solid #333;border-top:3px solid var(--red);padding:48px 40px;width:360px;text-align:center;}
.login-logo{font-family:var(--font-cond);font-size:11px;letter-spacing:4px;color:var(--gray-400);text-transform:uppercase;margin-bottom:6px;}
.login-brand{font-family:var(--font-brand);font-size:28px;font-weight:800;color:var(--white);letter-spacing:3px;margin-bottom:4px;text-transform:uppercase;}
.login-brand em{color:var(--red);font-style:normal;}
.login-sub{font-size:10px;color:var(--white);letter-spacing:3px;margin-bottom:36px;font-family:var(--font-cond);}
.login-box input{width:100%;background:var(--gray-800);border:1px solid var(--gray-700);color:var(--white);padding:12px 16px;font-family:var(--font-main);font-size:14px;outline:none;margin-bottom:12px;border-radius:var(--r);transition:border-color .2s;}
.login-box input:focus{border-color:var(--red);}
.login-btn{width:100%;background:var(--red);color:var(--white);border:none;padding:13px;font-family:var(--font-brand);font-size:14px;font-weight:700;letter-spacing:3px;text-transform:uppercase;cursor:pointer;border-radius:var(--r);transition:background .2s;}
.login-btn:hover{background:var(--red-dark);}
.login-error{color:var(--red);font-size:12px;margin-top:10px;min-height:18px;}

/* ── OFFLINE BADGE ── */
.offline-badge{display:none;align-items:center;gap:5px;background:#7c2d12;color:#fca5a5;font-family:var(--font-cond);font-size:10px;letter-spacing:1.5px;padding:3px 9px;border-radius:2px;text-transform:uppercase;}
.offline-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:#ef4444;flex-shrink:0;}
body.offline .offline-badge{display:flex;}

/* ── PAGINATION ── */
.pagination-bar{display:none;align-items:center;justify-content:center;gap:6px;padding:10px 0 2px;flex-wrap:wrap;}
.pg-btn{background:var(--white);border:1px solid var(--gray-300);color:var(--gray-700);padding:5px 11px;border-radius:var(--r);cursor:pointer;font-family:var(--font-cond);font-size:11px;letter-spacing:.5px;transition:background .12s,border-color .12s;line-height:1;}
.pg-btn:hover:not(:disabled){background:var(--gray-100);border-color:var(--gray-500);}
.pg-btn:disabled{opacity:.35;cursor:default;}
.pg-btn.active{background:var(--red);color:var(--white);border-color:var(--red);font-weight:700;}
.pg-info{font-family:var(--font-cond);font-size:11px;color:var(--gray-600);letter-spacing:.5px;min-width:110px;text-align:center;}
.pg-sep{color:var(--gray-300);}
.login-ctx-warn{background:#450a0a;border:1px solid #b91c1c;color:#fca5a5;font-family:var(--font-cond);font-size:11px;letter-spacing:.5px;padding:10px 14px;border-radius:var(--r);margin-bottom:16px;line-height:1.6;display:none;text-align:left;}
.login-ctx-warn strong{color:#fef2f2;display:block;font-size:12px;letter-spacing:2px;margin-bottom:2px;}
.login-ctx-warn code{background:#7f1d1d;color:#fecaca;padding:1px 5px;border-radius:2px;font-family:monospace;font-size:11px;}

/* ── HEADER ── */
header{background:var(--black);border-bottom:3px solid var(--red);padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:var(--hh);position:sticky;top:0;z-index:500;}
.hdr-left{display:flex;align-items:center;gap:14px;}
.hdr-brand{font-family:var(--font-brand);font-size:18px;font-weight:800;color:var(--white);letter-spacing:2px;text-transform:uppercase;}
.hdr-brand em{color:var(--red);font-style:normal;}
.hdr-div{width:1px;height:22px;background:#333;}
.hdr-sub{font-family:var(--font-cond);font-size:10px;color:var(--white);letter-spacing:2px;text-transform:uppercase;}
.hdr-right{display:flex;align-items:center;gap:14px;}
/* date — white, not bold */
.hdr-date{font-family:var(--font-cond);font-size:12px;color:var(--white);font-weight:300;letter-spacing:1px;}
/* clock — larger */
.hdr-clock{font-family:var(--font-brand);font-size:26px;font-weight:700;color:var(--white);letter-spacing:3px;min-width:110px;text-align:center;}

/* ── TABS ── */
.tabs-bar{background:var(--gray-900);border-bottom:1px solid #222;display:flex;padding:0 24px;height:var(--th);position:sticky;top:var(--hh);z-index:490;}
.tab-btn{font-family:var(--font-cond);font-size:12.6px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-400);background:none;border:none;padding:0 18px;cursor:pointer;border-bottom:3px solid transparent;transition:color .2s,border-color .2s;display:inline-flex;align-items:center;gap:6px;}
.tab-btn:hover{color:var(--white);}
.tab-btn.active{color:var(--white);border-bottom-color:var(--red);}
.tab-content{display:none;}
.tab-content.active{display:block;}

/* ── SNAP SCROLL CONTAINER ── */
#tab-workers{
  height:calc(100dvh - var(--ch));
  overflow-y:scroll;
  scroll-snap-type:y mandatory;
  -webkit-overflow-scrolling:touch;
}
/* Queue page — stała wysokość = 1 viewport, kanban scrolluje wewnątrz */
.queue-page{
  scroll-snap-align:start;
  background:#eaecef;
  height:calc(100dvh - var(--ch));
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:20px 28px 0;
  box-sizing:border-box;
}
/* Car transition */
.car-transition{height:80px;position:relative;overflow:hidden;background:linear-gradient(to bottom,var(--white) 0%,#eaecef 100%);display:flex;align-items:center;}

/* ════════════════════════════════════════
   FORM PAGE — snap section 1
════════════════════════════════════════ */
.form-page{
  height:calc(100dvh - var(--ch));
  background:var(--white);
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
  scroll-snap-align:start;
}

/* Counter zone — top of form-page, floats between tabs and form */
.counter-zone{
  flex-shrink:0;
  padding:16px 44px 0;
  display:flex;
  align-items:center;
  gap:12px;
}

.form-body{display:flex;flex:1;overflow:hidden;}

/* Left: form content — fills all available space, no max-width cap */
.form-main{
  flex:1;display:flex;flex-direction:column;justify-content:center;
  padding:20px 36px 16px 44px;overflow-y:auto;
  min-width:0;
}
.form-inner{
  width:100%;
  /* No max-width — let it fill. Grid columns handle proportions. */
}

/* Right: legend panel — fluid, grows with screen */
.form-legend{
  width:clamp(260px,22vw,440px);
  flex-shrink:0;background:#f8f8f8;
  border-left:1px solid var(--gray-200);
  display:flex;flex-direction:column;
  padding:20px 18px;overflow-y:auto;
}
.legend-title{font-family:var(--font-brand);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray-600);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--gray-200);}
.legend-items{display:flex;flex-direction:column;gap:2px;}
.legend-group-lbl{font-family:var(--font-cond);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--gray-400);margin:7px 0 2px 10px;}
.legend-item{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:3px;cursor:pointer;transition:background .12s;}
.legend-item:hover{background:var(--gray-200);}
.legend-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.legend-lbl{font-family:var(--font-cond);font-size:clamp(10px,1vw,13px);font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--gray-700);flex:1;}
.legend-sep{height:1px;background:var(--gray-200);margin:8px 0;}
.legend-also{font-family:var(--font-cond);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-400);margin-bottom:7px;}
.legend-svc-list{display:flex;flex-direction:column;gap:4px;}
.legend-svc-item{display:flex;align-items:center;gap:7px;padding:4px 10px;cursor:pointer;border-radius:3px;transition:background .12s;}
.legend-svc-item:hover{background:var(--gray-200);}
.legend-svc-badge{font-family:var(--font-brand);font-size:9px;font-weight:700;letter-spacing:.5px;padding:2px 6px;border-radius:2px;text-transform:uppercase;white-space:nowrap;}
.legend-svc-name{font-family:var(--font-cond);font-size:10px;color:var(--gray-600);}

/* ── COMPACT COUNTER STRIP (floating, above form) ── */
.form-counters{
  display:flex;gap:10px;align-items:center;
  /* removed — now handled by .counter-zone directly */
}
.fc{
  display:flex;align-items:center;gap:10px;
  border-radius:4px;padding:7px 16px;
  position:relative;overflow:hidden;
  flex:1;
}
.fc.waiting{background:#1c1400;border:1px solid #3a2800;}
.fc.done   {background:#001510;border:1px solid #003020;}
.fc-num{
  font-family:var(--font-brand);font-size:36px;font-weight:800;line-height:1;
  letter-spacing:-1px;flex-shrink:0;
}
.fc.waiting .fc-num{color:var(--amber);}
.fc.done    .fc-num{color:#4ade80;}
.fc-info{display:flex;flex-direction:column;gap:1px;}
.fc-label{
  font-family:var(--font-brand);font-size:11px;font-weight:700;
  letter-spacing:1.5px;text-transform:uppercase;
}
.fc.waiting .fc-label{color:#d4960a;}
.fc.done    .fc-label{color:#22c55e;}
.fc-sub{font-family:var(--font-cond);font-size:9px;letter-spacing:2px;text-transform:uppercase;}
.fc.waiting .fc-sub{color:#6b4800;}
.fc.done    .fc-sub{color:#165c2e;}
.fc-bar-wrap{position:absolute;bottom:0;left:0;right:0;height:2px;background:rgba(255,255,255,.04);}
.fc-bar{height:100%;transition:width .6s ease;}
.fc.waiting .fc-bar{background:var(--amber);}
.fc.done    .fc-bar{background:#4ade80;}

.form-hdr{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
.sec-title{font-family:var(--font-brand);font-size:15px;font-weight:700;letter-spacing:2px;color:var(--black);text-transform:uppercase;}
.sec-line{flex:1;height:1px;background:var(--gray-200);}
.badge{background:var(--red);color:var(--white);font-family:var(--font-cond);font-size:10px;font-weight:700;padding:2px 7px;border-radius:2px;letter-spacing:1px;}

.fg{display:flex;flex-direction:column;gap:5px;}
.fg label{font-family:var(--font-cond);font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-600);}
.fi{background:var(--gray-100);border:1.5px solid var(--gray-300);color:var(--black);padding:11px 14px;font-family:var(--font-main);font-size:15px;outline:none;border-radius:var(--r);transition:border-color .18s,background .18s,box-shadow .18s;width:100%;}
.fi:focus{border-color:var(--red);background:var(--white);box-shadow:0 0 0 3px rgba(235,10,30,.09);}
.fi[readonly]{color:var(--gray-600);cursor:default;background:#ebebeb;border-color:#ddd;}
.day-edit{background:var(--white);border-color:var(--gray-300);font-weight:700;text-align:center;}
.day-edit:focus{border-color:var(--red);background:var(--white);}

/* Time inputs */
.tw{position:relative;}
.tw .fi{padding-right:34px;letter-spacing:2px;font-family:var(--font-brand);font-size:16px;font-weight:600;}
.tw::after{content:'⏱';position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--gray-400);font-size:12px;pointer-events:none;}

/* Notes — large textarea */
.notes-ta{
  background:var(--gray-100);border:1.5px solid var(--gray-300);color:var(--black);
  padding:10px 14px;font-family:var(--font-main);font-size:14px;outline:none;
  border-radius:var(--r);transition:border-color .18s,background .18s;
  width:100%;resize:none;height:90px;line-height:1.55;
}
.notes-ta:focus{border-color:var(--red);background:var(--white);box-shadow:0 0 0 3px rgba(235,10,30,.09);}

/* Form grid rows — scale proportionally, no hard pixel caps */
.frow{display:grid;gap:12px 16px;align-items:end;margin-bottom:16px;}
.frow-1{grid-template-columns:minmax(60px,0.5fr) minmax(110px,1fr) minmax(60px,0.5fr) 1.5fr 2fr 2fr;}
.frow-2{grid-template-columns:1fr 1fr;}

/* ════════════════════════════════════════
   CUSTOM DROPDOWN
════════════════════════════════════════ */
.csd-wrap{position:relative;}
.csd-display{
  background:var(--gray-100);border:1.5px solid var(--gray-300);color:var(--black);
  padding:11px 36px 11px 14px;font-family:var(--font-main);font-size:15px;
  border-radius:var(--r);cursor:pointer;user-select:none;
  transition:border-color .18s,background .18s,box-shadow .18s;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  position:relative;
}
.csd-display.ph{color:var(--gray-400);}
.csd-display:focus,.csd-display.open{border-color:var(--red);background:var(--white);box-shadow:0 0 0 3px rgba(235,10,30,.09);outline:none;}
.csd-display::after{content:'▾';position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--gray-400);font-size:13px;pointer-events:none;transition:transform .15s;}
.csd-display.open::after{transform:translateY(-50%) rotate(180deg);}

.csd-dd{
  position:absolute;top:calc(100% + 3px);left:0;right:0;
  background:var(--white);border:1.5px solid var(--red);
  border-radius:var(--r);box-shadow:var(--shadow-lg);
  z-index:400;max-height:260px;overflow:hidden;
  display:none;flex-direction:column;
}
.csd-dd.open{display:flex;}
.csd-search{
  padding:8px 12px;border:none;border-bottom:1px solid var(--gray-200);
  font-family:var(--font-main);font-size:13px;outline:none;
  background:#fafafa;color:var(--black);flex-shrink:0;
}
.csd-search::placeholder{color:var(--gray-400);}
.csd-list{overflow-y:auto;padding:3px 0;}
.csd-item{
  padding:9px 14px;font-family:var(--font-main);font-size:14px;
  cursor:pointer;transition:background .1s;color:var(--gray-700);
}
.csd-item:hover{background:var(--gray-100);}
.csd-item.focused{background:#fef2f2;color:var(--red);font-weight:600;}
.csd-item.selected{color:var(--red);font-weight:700;}
.csd-empty{padding:11px 14px;font-family:var(--font-cond);font-size:12px;color:var(--gray-400);letter-spacing:1px;text-transform:uppercase;}

/* ════════════════════════════════════════
   USŁUGA PILLS — arrow-navigable
════════════════════════════════════════ */
.pills-wrap{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.pills-wrap>label{font-family:var(--font-cond);font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-600);}
.pills-hint{font-size:10px;color:var(--gray-400);letter-spacing:.3px;font-weight:400;font-family:var(--font-cond);}
.pills-row{display:flex;gap:7px;flex-wrap:wrap;}
.pill{
  font-family:var(--font-brand);font-size:12px;font-weight:700;
  letter-spacing:.5px;padding:10px 15px;border-radius:3px;
  border:1.5px solid var(--gray-300);background:var(--white);
  color:var(--gray-600);cursor:pointer;transition:all .14s;
  text-transform:uppercase;white-space:nowrap;user-select:none;outline:none;
}
.pill:hover{border-color:var(--red);color:var(--red);}
/* keyboard highlight — red outline, not filled */
.pill.kfocus{border-color:var(--red);color:var(--red);background:#fff5f5;box-shadow:0 0 0 2px rgba(235,10,30,.2);}
/* selected */
.pill.sel{background:var(--red);border-color:var(--red);color:var(--white);box-shadow:0 2px 10px rgba(235,10,30,.28);}
.pill.sel.kfocus{box-shadow:0 0 0 3px rgba(235,10,30,.35);}

/* Form actions — btn with Enter piktogram */
.form-actions{display:flex;gap:10px;align-items:center;margin-top:8px;}
.btn-add{
  background:var(--red);color:var(--white);border:none;
  padding:13px 28px;font-family:var(--font-brand);font-size:13px;
  font-weight:700;letter-spacing:2px;text-transform:uppercase;
  cursor:pointer;border-radius:var(--r);
  transition:background .15s,transform .1s,box-shadow .15s;
  display:flex;align-items:center;gap:10px;
}
.btn-add:hover{background:var(--red-dark);}
.btn-add:active{transform:scale(.98);}
/* When focused via keyboard — strong highlight */
.btn-add:focus{
  outline:none;
  background:var(--red-dark);
  box-shadow:0 0 0 3px rgba(235,10,30,.35), 0 4px 20px rgba(235,10,30,.4);
  transform:translateY(-1px);
}
.btn-add-enter{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:3px;
  background:rgba(255,255,255,.2);
  font-family:var(--font-brand);font-size:13px;font-weight:700;
  letter-spacing:0;flex-shrink:0;
}
.btn-clr{background:var(--gray-200);color:var(--gray-700);border:none;padding:13px 20px;font-family:var(--font-cond);font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;cursor:pointer;border-radius:var(--r);transition:background .2s;}
.btn-clr:hover{background:var(--gray-300);}

/* ════════════════════════════════════════
/* ── MINI PREVIEW STRIP — 2-column: Oczekuje + W trakcie ── */
.mini-preview{
  flex-shrink:0;
  background:#0d0d0d;
  border-top:2px solid var(--red);
  padding:0;
  display:flex;
  align-items:stretch;
  height:15.2dvh;
  min-height:124px;
  max-height:209px;
  overflow:hidden;
  cursor:default;
}
/* Label column */
.mini-col-label{
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  padding:10px 16px;border-right:1px solid #222;
  gap:4px;flex-shrink:0;min-width:72px;
}
.mini-col-label-txt{
  font-family:var(--font-brand);font-size:9px;letter-spacing:2.5px;
  text-transform:uppercase;color:#555;writing-mode:vertical-lr;transform:rotate(180deg);
}
/* Two section columns */
.mini-section{
  flex:1;display:flex;flex-direction:column;min-width:0;
  border-right:1px solid #1e1e1e;
}
.mini-section:last-child{border-right:none;}
.mini-sec-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 18px 5px;border-bottom:1px solid #222;
  flex-shrink:0;
}
.mini-sec-title{font-family:var(--font-brand);font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;}
.mini-sec-cnt{font-family:var(--font-brand);font-size:16px;font-weight:800;line-height:1;}
.mini-sec-pending .mini-sec-title{color:#6b7280;}
.mini-sec-pending .mini-sec-cnt{color:#9ca3af;}
.mini-sec-inprogress .mini-sec-title{color:#60a5fa;}
.mini-sec-inprogress .mini-sec-cnt{color:#93c5fd;}
.mini-sec-body{display:flex;flex-direction:column;flex:1;justify-content:space-evenly;}

/* Individual mini rows */
.mini-row{
  display:flex;align-items:center;gap:10px;
  padding:0 18px;
  height:calc((16dvh - 38px) / 3);
  min-height:30px;
  cursor:pointer;transition:background .1s;flex-shrink:0;
  border-bottom:1px solid #161616;
}
.mini-row:last-child{border-bottom:none;}
.mini-row:hover{background:#181818;}
.mini-row-key{font-family:var(--font-brand);font-size:17px;font-weight:800;color:#fff;white-space:nowrap;min-width:0;flex-shrink:0;letter-spacing:.3px;}
.mini-row-model{font-family:var(--font-cond);font-size:12px;color:#888;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;}
.mini-row-time{font-family:var(--font-brand);font-size:12px;color:#666;letter-spacing:.5px;white-space:nowrap;flex-shrink:0;}
.mini-row-dept{display:inline-block;font-family:var(--font-cond);font-size:10px;font-weight:700;padding:2px 7px;border-radius:2px;white-space:nowrap;flex-shrink:0;}
.mini-urg{width:7px;height:7px;border-radius:50%;background:var(--amber);animation:pulse 1.2s ease-in-out infinite;flex-shrink:0;}
.mini-ovd{width:7px;height:7px;border-radius:50%;background:#ef4444;animation:pulse 1.2s ease-in-out infinite;flex-shrink:0;}
.mini-empty-row{
  padding:0 18px;font-family:var(--font-cond);font-size:11px;
  color:#383838;letter-spacing:1.5px;text-transform:uppercase;text-align:center;
  display:flex;align-items:center;justify-content:center;flex:1;
}
/* Scroll hint */
.mini-scroll-hint{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:5px;padding:0 18px;cursor:pointer;
  font-family:var(--font-brand);font-size:9px;letter-spacing:2px;
  text-transform:uppercase;color:#444;flex-shrink:0;border-left:1px solid #1e1e1e;
  transition:color .15s;
}
.mini-scroll-hint:hover{color:#aaa;}
.mini-scroll-hint svg{opacity:.45;}

/* ── QUEUE CONTAINER ── */
.queue-page-inner{max-width:1800px;margin:0 auto;display:flex;flex-direction:column;height:100%;min-height:0;}
#car-svg{position:absolute;left:50%;transform:translateX(-50%);width:200px;opacity:.18;will-change:transform;pointer-events:none;}
.car-track{position:absolute;bottom:14px;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--gray-300) 20%,var(--gray-300) 80%,transparent);}
.queue-hdr{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-shrink:0;}
/* Kanban i Tabela scrollują wewnątrz queue-page — min-height:0 wymagane w flex! */
#view-kanban{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:24px;-webkit-overflow-scrolling:touch;}
#view-table{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:24px;-webkit-overflow-scrolling:touch;}
.queue-title{font-family:var(--font-brand);font-size:13px;font-weight:700;letter-spacing:2px;color:var(--black);text-transform:uppercase;}
.sec-line{flex:1;height:1px;background:var(--gray-200);}

/* Filter bar */
.filter-bar{display:flex;gap:7px;margin-bottom:12px;flex-wrap:wrap;align-items:center;flex-shrink:0;}
.filter-bar select{background:var(--white);border:1px solid var(--gray-300);color:var(--black);padding:6px 10px;font-family:var(--font-main);font-size:12px;border-radius:var(--r);outline:none;}
.filter-bar select:focus{border-color:var(--red);}

/* Search box */
.queue-search-wrap{position:relative;flex:1;max-width:340px;}
.queue-search{
  width:100%;background:var(--white);border:1.5px solid var(--gray-300);
  color:var(--black);padding:7px 36px 7px 34px;
  font-family:var(--font-brand);font-size:14px;letter-spacing:.5px;
  border-radius:var(--r);outline:none;transition:border-color .18s,box-shadow .18s;
}
.queue-search:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(235,10,30,.09);}
.queue-search::placeholder{font-family:var(--font-cond);font-size:12px;letter-spacing:1px;color:var(--gray-400);font-weight:500;}
.queue-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--gray-400);font-size:14px;pointer-events:none;}
.queue-search-clear{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  background:none;border:none;cursor:pointer;color:var(--gray-400);
  font-size:14px;line-height:1;padding:2px;display:none;transition:color .15s;
}
.queue-search-clear:hover{color:var(--black);}
.queue-search-clear.visible{display:block;}
/* Highlight matched text in results */
.search-hl{background:#fef08a;color:#713f12;border-radius:2px;padding:0 1px;}
.filter-lbl{font-family:var(--font-cond);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--gray-600);}
.chip{background:var(--white);border:1px solid var(--gray-300);color:var(--gray-700);font-family:var(--font-cond);font-size:11px;font-weight:600;letter-spacing:1px;padding:5px 12px;border-radius:2px;cursor:pointer;transition:background .2s;}
.chip:hover{background:var(--gray-100);}
.chip.active{background:var(--red);color:var(--white);border-color:var(--red);}
.btn-exp{background:var(--gray-900);color:var(--white);border:none;padding:6px 13px;font-family:var(--font-cond);font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border-radius:var(--r);transition:background .2s;margin-left:auto;}
.btn-exp:hover{background:var(--gray-700);}

/* Table */
.tw-outer{background:var(--white);border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);overflow-x:auto;border-radius:var(--r);}
table{width:100%;border-collapse:collapse;min-width:1060px;}
thead{background:var(--gray-900);}
thead th{font-family:var(--font-brand);font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-300);padding:10px 11px;text-align:left;white-space:nowrap;}
tbody tr{border-bottom:1px solid var(--gray-100);transition:background .15s;}
tbody tr:hover{background:#fafafa;}
tbody tr.urgent{background:#fff8e1;border-left:3px solid var(--amber);}
tbody tr.overdue{background:var(--overdue-bg);border-left:3px solid #ef4444;}
tbody td{padding:8px 11px;font-size:13px;color:var(--gray-700);vertical-align:middle;}

.etc{background:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--r);padding:4px 7px;font-size:13px;width:86px;font-family:var(--font-brand);letter-spacing:1px;}
.etc:focus{border-color:var(--red);outline:none;background:white;}
.esl{border-radius:var(--r);padding:5px 7px;font-size:12px;font-family:var(--font-main);cursor:pointer;border:1.5px solid transparent;font-weight:600;}
.esl:focus{outline:none;}
.st-p{background:#f3f4f6;color:#374151;border-color:#d1d5db;}
.st-i{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd;}
.st-r{background:#f0fdf4;color:#15803d;border-color:#86efac;}
.st-b{background:#fef2f2;color:#b91c1c;border-color:#fca5a5;}
.key-nr{font-family:var(--font-brand);font-weight:700;font-size:13px;color:var(--black);}
.model-nm{font-weight:600;color:var(--black);font-family:var(--font-cond);font-size:13px;letter-spacing:.5px;}
.dept-tag{font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:1px;padding:3px 7px;border-radius:2px;white-space:nowrap;}
.usvc-badge{font-family:var(--font-brand);font-size:10px;font-weight:700;letter-spacing:1px;padding:3px 7px;border-radius:2px;white-space:nowrap;}
.u-M{background:#111827;color:#f9fafb;}
.u-AUTO{background:#374151;color:#f3f4f6;}
.u-RECZNE{background:#6b7280;color:#fff;}
.u-WNETRZE{background:#d1d5db;color:#1f2937;}
.u-AUTOODK{background:#0c4a6e;color:#bae6fd;}
.u-KOLA{background:#f3f4f6;color:#374151;border:1px solid #d1d5db;}
.u-CERAMIKA{background:#fff1f2;color:#9f1239;border:1px solid #fecdd3;}
.u-SILNIK{background:#1c1917;color:#d6d3d1;border:1px solid #292524;}

.ltimer{font-family:var(--font-brand);font-size:12px;font-weight:700;letter-spacing:1px;}
.tok{color:var(--gray-600);}.twarn{color:var(--amber);}.tovrd{color:#ef4444;}
.udot{display:inline-block;width:7px;height:7px;background:var(--amber);border-radius:50%;margin-right:4px;animation:pulse 1.2s ease-in-out infinite;vertical-align:middle;}
.odot{display:inline-block;width:8px;height:8px;background:#dc2626;border-radius:50%;margin-right:4px;animation:pulse 1s ease-in-out infinite;vertical-align:middle;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.3)}}
.empty-st{text-align:center;padding:48px 24px;color:var(--gray-400);font-family:var(--font-cond);font-size:13px;letter-spacing:1px;text-transform:uppercase;}
.row-acts{display:flex;gap:4px;white-space:nowrap;}
.btn-log{background:none;border:1px solid var(--gray-300);color:var(--gray-600);padding:4px 8px;font-size:10px;font-family:var(--font-cond);letter-spacing:1px;cursor:pointer;border-radius:2px;transition:all .15s;}
.btn-log:hover{border-color:var(--red);color:var(--red);}
.btn-del{background:none;border:1px solid var(--gray-300);color:var(--gray-400);padding:4px 7px;font-size:12px;cursor:pointer;border-radius:2px;transition:all .15s;}
.btn-del:hover{background:#fef2f2;border-color:#ef4444;color:#ef4444;}

/* ── AUDIT LOG MODAL ── */
.modal-ov{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(2px);z-index:1500;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;}
.modal-ov.open{opacity:1;pointer-events:all;}
.modal-box{background:var(--white);width:560px;max-width:95vw;max-height:80vh;display:flex;flex-direction:column;border-top:3px solid var(--red);box-shadow:0 24px 64px rgba(0,0,0,.25);transform:translateY(16px);transition:transform .2s;border-radius:2px;}
.modal-ov.open .modal-box{transform:translateY(0);}
.modal-hdr{padding:16px 20px 12px;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:flex-start;}
.modal-title{font-family:var(--font-brand);font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase;}
.modal-sub{font-family:var(--font-cond);font-size:11px;color:var(--gray-400);margin-top:3px;letter-spacing:1px;}
.modal-x{background:none;border:none;color:var(--gray-400);font-size:20px;cursor:pointer;padding:0 4px;line-height:1;}
.modal-x:hover{color:var(--black);}
.modal-body{padding:18px 20px;overflow-y:auto;flex:1;}
.log-empty{font-family:var(--font-cond);color:var(--gray-400);font-size:12px;letter-spacing:1px;text-align:center;padding:20px 0;}
.log-tl{display:flex;flex-direction:column;}
.log-e{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--gray-100);}
.log-e:last-child{border-bottom:none;}
.log-ic-col{display:flex;flex-direction:column;align-items:center;width:26px;flex-shrink:0;}
.log-ic{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;}
.log-ic.start{background:#eff6ff;}.log-ic.status{background:#f5f3ff;}.log-ic.done{background:#f0fdf4;}.log-ic.problem{background:#fef2f2;}.log-ic.created{background:#f9fafb;}
.log-line{flex-grow:1;width:1px;background:var(--gray-200);min-height:10px;}
.log-cnt{flex:1;}
.log-act{font-family:var(--font-cond);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--black);}
.log-meta{font-size:11px;color:var(--gray-400);margin-top:2px;font-family:var(--font-cond);}
.log-badge{display:inline-block;font-family:var(--font-brand);font-size:9px;font-weight:700;padding:1px 5px;border-radius:2px;letter-spacing:1px;margin-left:4px;vertical-align:middle;}

.u-BL{background:#1c1400;color:#f97316;border:1px solid #f97316;}

/* ── BLACHARNIA TAB ── */
.bl-wrap{height:calc(100dvh - var(--ch));display:flex;flex-direction:column;background:#f0f0f0;overflow:hidden;}
.bl-topbar{background:#fff;border-bottom:1px solid var(--gray-200);box-shadow:0 1px 4px rgba(0,0,0,.06);padding:8px 20px;display:flex;align-items:center;gap:12px;flex-wrap:nowrap;flex-shrink:0;}
.bl-date-nav{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.bl-nav-btn{background:var(--gray-100);border:1px solid var(--gray-200);color:var(--gray-700);font-family:var(--font-cond);font-size:12px;font-weight:600;padding:4px 10px;border-radius:var(--r);cursor:pointer;transition:background .15s;line-height:1.4;}
.bl-nav-btn:hover{background:var(--gray-200);}
.bl-nav-btn.today{color:var(--red);border-color:var(--red);}
.bl-nav-btn.jutro{color:var(--gray-600);}
.bl-date-lbl{font-family:var(--font-cond);font-size:14px;font-weight:700;color:var(--gray-900);letter-spacing:.5px;min-width:160px;text-align:center;}
.bl-top-sep{width:1px;height:20px;background:var(--gray-200);flex-shrink:0;}
.bl-top-cnt{flex:1;display:flex;align-items:center;justify-content:center;gap:16px;}
.bl-cnt-badge{font-family:var(--font-cond);font-size:12px;color:var(--gray-600);letter-spacing:.3px;}
.bl-cnt-num{font-family:var(--font-brand);font-size:20px;font-weight:700;color:var(--gray-900);margin-right:4px;}
.bl-add-toplevel{margin-left:auto;font-family:var(--font-cond);font-size:12px;font-weight:700;letter-spacing:.5px;padding:6px 14px;border-radius:var(--r);border:none;background:var(--gray-900);color:#fff;cursor:pointer;transition:background .15s;flex-shrink:0;}
.bl-add-toplevel:hover{background:var(--black);}

.bl-main{flex:1;display:flex;overflow:hidden;}

/* ── Schedule Grid ── */
.bl-schedule{flex:1;overflow-y:auto;padding:4px 20px 16px;min-height:0;display:flex;flex-direction:column;}
/* ── Slot row ── */
.bl-slot {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 2px 0;
  border-bottom: 1px solid #e8e8e8;
  flex-shrink: 0;
}
.bl-slot:last-child { border-bottom: none; }
.bl-slot-time {
  width: 44px;
  flex-shrink: 0;
  font-family: var(--font-brand);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .5px;
  color: #aaa;
  text-align: right;
  padding-top: 9px;
}
.bl-slot-time.on-hour { color: var(--gray-700); font-size: 13px; }
.bl-slot-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: stretch;
  min-width: 0;
}

/* ── Nagłówek kolumn harmonogramu ── */
.bl-table-header {
  display: grid;
  grid-template-columns: 60px 1fr 1fr 130px 120px 80px;
  background: var(--gray-100);
  border-bottom: 2px solid var(--gray-400);
  border-top: 1px solid var(--gray-300);
  font-family: var(--font-cond);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gray-600);
  margin-left: 52px;
  position: sticky;
  top: 0;
  z-index: 5;
}
.bl-table-header > div {
  padding: 6px 8px;
  border-right: 1px solid var(--gray-300);
}
.bl-table-header > div:last-child { border-right: none; }

/* ── Karta = wiersz tabelaryczny ── */
.bl-card {
  display: grid;
  grid-template-columns: 60px 1fr 1fr 130px 120px 80px;
  align-items: center;
  background: var(--white);
  border: 1px solid var(--gray-300);
  border-left: 3px solid var(--red);
  border-radius: 0;
  cursor: pointer;
  transition: background .12s;
  min-width: 0;
  flex: 1;
}
.bl-card:hover { background: #fafafa; }
.bl-card > div {
  padding: 7px 8px;
  border-right: 1px solid var(--gray-200);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  min-height: 34px;
  display: flex;
  align-items: center;
  min-width: 0;
}
.bl-card > div:last-child { border-right: none; }

/* Komórki */
.bl-cell-key {
  font-family: var(--font-brand);
  font-size: 15px;
  font-weight: 800;
  color: var(--black);
  letter-spacing: .5px;
  justify-content: center;
}
.bl-cell-model {
  font-family: var(--font-cond);
  font-size: 13px;
  font-weight: 700;
  color: var(--gray-800);
  letter-spacing: .5px;
  gap: 6px;
}
.bl-cell-who {
  font-family: var(--font-cond);
  font-size: 12px;
  font-weight: 700;
  color: var(--gray-700);
}
.bl-cell-note {
  font-family: var(--font-cond);
  font-size: 11px;
  color: var(--gray-500);
}
.bl-cell-status { justify-content: center; }
.bl-cell-actions { justify-content: center; gap: 3px; }

/* Opóźnienie — inline w komórce Model */
.bl-card-delay {
  font-family: var(--font-brand);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .5px;
  color: #1d4ed8;
  background: #eff6ff;
  border: 1px solid #93c5fd;
  border-radius: 2px;
  padding: 1px 6px;
  white-space: nowrap;
  flex-shrink: 0;
  margin-left: 6px;
}

/* Przyciski akcji */
.bl-card-edit { background: none; border: 1px solid #d1d5db; color: var(--gray-400); padding: 2px 7px; font-size: 11px; font-family: var(--font-cond); font-weight: 700; cursor: pointer; border-radius: 2px; transition: all .12s; }
.bl-card-edit:hover { border-color: var(--red); color: var(--red); }
.bl-card-del { background: none; border: 1px solid #d1d5db; color: #d1d5db; padding: 2px 6px; font-size: 11px; cursor: pointer; border-radius: 2px; transition: all .12s; }
.bl-card-del:hover { background: #fef2f2; border-color: #ef4444; color: #ef4444; }

/* Pilule statusów — bez zmian */
.bl-status { font-family: var(--font-cond); font-size: 10px; font-weight: 700; letter-spacing: .5px; padding: 2px 7px; border-radius: 2px; white-space: nowrap; flex-shrink: 0; }
.bl-st-p { background: #f3f4f6; color: #6b7280; }
.bl-st-i { background: #eff6ff; color: #1d4ed8; border: 1px solid #93c5fd; }
.bl-st-r { background: #f0fdf4; color: #15803d; border: 1px solid #86efac; }
.bl-st-b { background: #fef2f2; color: #b91c1c; border: 1px solid #fca5a5; }

.bl-add-btn{display:flex;align-items:center;gap:4px;background:none;border:1px dashed #d4d4d4;color:#bbb;padding:3px 12px;font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border-radius:3px;transition:all .15s;white-space:nowrap;}
.bl-add-btn:hover{border-color:var(--red);color:var(--red);background:#fff9f5;}
.bl-slot-full{font-family:var(--font-cond);font-size:9px;letter-spacing:1px;color:#ddd;text-transform:uppercase;}


/* ── BL Modal ── */
.bl-modal-ov{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);z-index:1600;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;}
.bl-modal-ov.open{opacity:1;pointer-events:all;}
.bl-modal{background:#fff;border-radius:4px;width:100%;max-width:480px;max-height:90dvh;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.25);overflow:hidden;transform:translateY(12px);transition:transform .2s;}
.bl-modal-ov.open .bl-modal{transform:translateY(0);}
.bl-modal-hdr{padding:14px 16px 12px;border-bottom:1px solid var(--gray-200);display:flex;flex-direction:column;gap:4px;flex-shrink:0;}
.bl-modal-title-row{display:flex;align-items:center;gap:8px;}
.bl-modal-title{font-family:var(--font-brand);font-size:15px;font-weight:700;color:var(--gray-900);flex:1;letter-spacing:.5px;}
.bl-modal-sub{font-family:var(--font-cond);font-size:11px;color:var(--red);letter-spacing:.5px;font-weight:700;}
.bl-modal-x{background:none;border:none;font-size:16px;color:var(--gray-400);cursor:pointer;padding:2px 6px;border-radius:var(--r);line-height:1;}
.bl-modal-x:hover{background:var(--gray-100);color:var(--gray-900);}
.bl-modal-body{overflow-y:auto;flex:1;padding:16px;display:flex;flex-direction:column;gap:8px;}
.bl-field-group{display:flex;flex-direction:column;gap:8px;}
.bl-field-row{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:8px;}
.bl-field-lbl{font-family:var(--font-cond);font-size:11px;font-weight:600;color:var(--gray-500);letter-spacing:.5px;text-transform:uppercase;}
.bl-field-val{font-family:var(--font-cond);font-size:12px;}
.bl-field-val input[type="text"]{width:100%;font-family:var(--font-cond);font-size:12px;border:1px solid var(--gray-300);border-radius:var(--r);padding:5px 8px;outline:none;color:var(--gray-900);background:#fff;transition:border-color .15s;box-sizing:border-box;}
.bl-field-val input[type="text"]:focus{border-color:var(--gray-600);}
.bl-modal-footer{padding:12px 16px;border-top:1px solid var(--gray-200);display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-shrink:0;background:#fafafa;}
.bl-btn-cancel{font-family:var(--font-cond);font-size:11px;font-weight:600;letter-spacing:.5px;padding:7px 16px;border-radius:var(--r);border:1px solid var(--gray-300);background:#fff;color:var(--gray-600);cursor:pointer;transition:background .15s;}
.bl-btn-cancel:hover{background:var(--gray-100);}
.bl-btn-save{font-family:var(--font-cond);font-size:12px;font-weight:700;letter-spacing:.5px;padding:8px 20px;border-radius:var(--r);border:none;background:var(--gray-900);color:#fff;cursor:pointer;transition:background .15s;}
.bl-btn-save:hover{background:var(--black);}

/* ── BL pills usług (+Dodaj zlecenie) ── */
.bl-usluga-pills {
  display:flex; flex-wrap:wrap; gap:6px;
}
.bl-usluga-pill {
  font-family:var(--font-cond); font-size:10px; font-weight:700;
  letter-spacing:.5px; text-transform:uppercase;
  padding:4px 10px; border-radius:12px;
  border:1.5px solid var(--gray-300);
  background:var(--gray-100); color:var(--gray-700);
  cursor:pointer; transition:all .15s;
}
.bl-usluga-pill:hover {
  background:var(--gray-200);
  border-color:var(--gray-600);
}
.bl-usluga-pill.active {
  background:var(--gray-900);
  color:#fff;
  border-color:var(--gray-900);
}

/* ── BL STREFA NAPRAWY — modal potwierdzenia ── */
.bl-confirm-ov{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);z-index:1700;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;}
.bl-confirm-ov.open{opacity:1;pointer-events:all;}
.bl-confirm-box{background:var(--white);width:440px;max-width:95vw;border-top:4px solid var(--red);box-shadow:0 32px 80px rgba(0,0,0,.4);border-radius:2px;transform:translateY(20px);transition:transform .2s;}
.bl-confirm-ov.open .bl-confirm-box{transform:translateY(0);}
.bl-confirm-hdr{padding:16px 20px 10px;display:flex;align-items:flex-start;gap:12px;}
.bl-confirm-icon{font-size:28px;line-height:1;flex-shrink:0;}
.bl-confirm-title{font-family:var(--font-brand);font-size:15px;font-weight:800;letter-spacing:1px;color:var(--black);margin-bottom:3px;}
.bl-confirm-sub{font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--red);text-transform:uppercase;}
.bl-confirm-body{padding:0 20px 16px;}
.bl-confirm-car{background:#fafafa;border:1px solid #e5e7eb;border-left:3px solid var(--red);padding:8px 12px;margin-bottom:10px;border-radius:2px;}
.bl-confirm-car-key{font-family:var(--font-brand);font-size:16px;font-weight:800;color:var(--black);}
.bl-confirm-car-model{font-family:var(--font-cond);font-size:13px;color:var(--gray-500);margin-left:8px;}
.bl-confirm-uwagi-lbl{font-family:var(--font-cond);font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-400);margin-bottom:4px;}
.bl-confirm-uwagi{background:#fffbf5;border:1px solid #fed7aa;padding:8px 10px;font-family:var(--font-main);font-size:13px;color:#92400e;border-radius:2px;min-height:36px;line-height:1.5;}
.bl-confirm-empty{font-family:var(--font-cond);font-size:11px;color:#ccc;font-style:italic;}
.bl-confirm-acts{display:flex;gap:10px;padding:0 20px 18px;}
.bl-confirm-cancel{flex:1;background:none;border:1.5px solid var(--gray-300);color:var(--gray-600);padding:10px;font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border-radius:var(--r);transition:all .15s;}
.bl-confirm-cancel:hover{border-color:var(--gray-500);}
.bl-confirm-ok{flex:2;background:var(--gray-900);color:#fff;border:none;padding:10px;font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border-radius:var(--r);transition:background .15s;}
.bl-confirm-ok:hover{background:var(--black);}

/* ── BL kanban card indicator ── */
.kcard-bl-badge{font-family:var(--font-cond);font-size:8px;font-weight:700;letter-spacing:1px;padding:1px 5px;background:#1c1400;color:#f97316;border:1px solid #f97316;border-radius:2px;margin-left:4px;vertical-align:middle;}

/* ── GLOBAL: wszystkie pola tekstowe WIELKIMI literami ── */
input[type="text"],input[type="search"],textarea{text-transform:uppercase;}
input[type="password"]{text-transform:none!important;}

.anal-sec{padding:22px 28px;}
.stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px;margin-bottom:18px;}
.stat-card{background:var(--white);border:1px solid var(--gray-200);border-top:3px solid var(--red);padding:14px 18px;box-shadow:var(--shadow-sm);}
.stat-val{font-family:var(--font-brand);font-size:34px;font-weight:800;color:var(--black);line-height:1;}
.stat-lbl{font-family:var(--font-cond);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-400);margin-top:4px;}
.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.chart-card{background:var(--white);border:1px solid var(--gray-200);padding:16px 18px;box-shadow:var(--shadow-sm);}
.chart-title{font-family:var(--font-brand);font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray-600);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--gray-200);}
.wl-wrap{display:flex;gap:4px;flex-direction:column;}
.wl-row{display:flex;align-items:center;gap:7px;}
.wl-day{font-family:var(--font-cond);font-size:11px;color:var(--gray-600);width:22px;text-align:right;}
.wl-track{flex:1;height:15px;background:var(--gray-100);border-radius:2px;overflow:hidden;}
.wl-fill{height:100%;background:var(--red);border-radius:2px;transition:width .5s ease;}
.wl-cnt{font-family:var(--font-cond);font-size:11px;color:var(--gray-600);width:22px;}
.svc-list{display:flex;flex-direction:column;gap:8px;}
.svc-row{display:flex;align-items:center;gap:8px;}
.svc-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.svc-nm{flex:1;font-size:12px;color:var(--gray-700);}
.svc-bar-track{width:80px;height:6px;background:var(--gray-100);border-radius:3px;overflow:hidden;}
.svc-bar-fill{height:100%;border-radius:3px;}
.svc-cnt{font-family:var(--font-brand);font-size:12px;font-weight:600;color:var(--gray-700);width:20px;text-align:right;}
.month-nav{display:flex;gap:8px;align-items:center;margin-bottom:16px;}
.mnav-btn{background:var(--gray-200);border:none;padding:4px 12px;cursor:pointer;font-family:var(--font-cond);font-size:17px;border-radius:var(--r);transition:background .2s;}
.mnav-btn:hover{background:var(--gray-300);}
.mnav-lbl{font-family:var(--font-brand);font-size:14px;font-weight:700;letter-spacing:1px;min-width:160px;text-align:center;}

/* ── NOTIF TOAST ── */
@keyframes notifIn  { from{transform:translateX(calc(100% + 24px));opacity:0} to{transform:translateX(0);opacity:1} }
@keyframes notifOut { 0%{transform:translateX(0);opacity:1;max-height:120px;padding:16px 20px}
                      60%{transform:translateX(0);opacity:1}
                      100%{transform:translateX(calc(100% + 24px));opacity:0;max-height:0;padding:0 20px} }
.notif{
  position:fixed;bottom:28px;right:28px;z-index:9999;
  background:var(--gray-900);color:var(--white);
  padding:16px 20px;
  border-left:5px solid var(--red);
  border-radius:4px;
  font-family:var(--font-brand);font-size:16px;font-weight:700;letter-spacing:.5px;
  box-shadow:0 8px 40px rgba(0,0,0,.45), 0 0 0 1px rgba(235,10,30,.3);
  max-width:380px;min-width:240px;
  pointer-events:none;
  display:none;
}
.notif.show{
  display:block;
  animation:notifIn .25s cubic-bezier(.22,1,.36,1) forwards;
}
.notif.hide{
  animation:notifOut .5s ease-in forwards;
}

/* ── RESPONSIVE ── */
/* Wide screens (1400px+) — legend gets more breathing room automatically via clamp */
@media(min-width:1600px){
  .form-main{padding:20px 48px 16px 56px;}
  .counter-zone{padding:16px 56px 0;}
}
/* Medium */
@media(max-width:1080px){
  /* legend shrinks via clamp — no override needed */
  .form-main{padding:20px 28px 16px 32px;}
  .counter-zone{padding:16px 32px 0;}
}
/* Small desktop / tablet landscape */
@media(max-width:840px){
  .form-legend{display:none;}
  .form-main{padding:20px 20px 16px 20px;}
  .counter-zone{padding:12px 20px 0;}
  .frow-1{grid-template-columns:repeat(3,1fr);}
  .frow-2{grid-template-columns:1fr 1fr;}
  .charts-row{grid-template-columns:1fr;}
  .kanban-board{grid-template-columns:repeat(2,1fr);}
}
/* Mobile portrait */
@media(max-width:580px){
  .frow-1,.frow-2{grid-template-columns:1fr 1fr;}
  header{padding:0 12px;}
  .hdr-date{display:none;}
  .hdr-clock{font-size:20px;min-width:80px;}
  .kanban-board{grid-template-columns:1fr;}
  .mini-slot-model{display:none;}
  .form-main{padding:12px 12px 12px 12px;}
  .counter-zone{padding:10px 12px 0;}
  .detail-panel.open{width:100% !important;position:fixed;inset:0;top:calc(var(--hh)+var(--th));z-index:800;border-radius:0;}
}

/* ════════════════════════════════════════
   PAGE 2 — VIEW TOGGLE + ALERT BELL
════════════════════════════════════════ */
.view-toggle{display:flex;gap:2px;background:var(--gray-200);border-radius:3px;padding:2px;flex-shrink:0;}
.vt-btn{background:none;border:none;padding:5px 13px;font-family:var(--font-cond);font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;cursor:pointer;border-radius:2px;color:var(--gray-600);transition:all .15s;white-space:nowrap;}
.vt-btn.active{background:var(--white);color:var(--black);box-shadow:0 1px 4px rgba(0,0,0,.12);}
.vt-btn:hover:not(.active){color:var(--black);}

.alert-bell{position:relative;cursor:default;display:flex;align-items:center;gap:5px;padding:5px 11px;border-radius:3px;background:var(--gray-100);border:1px solid var(--gray-200);font-size:14px;flex-shrink:0;transition:background .2s,border-color .2s;}
.alert-bell.urgent{background:#fff8e1;border-color:#fbbf24;animation:bellPulse 1.6s ease-in-out infinite;}
.alert-bell.ringing{background:#fef2f2;border-color:#fca5a5;animation:bellPulse 1s ease-in-out infinite;}
.alert-bell.urgent .bell-icon,.alert-bell.ringing .bell-icon{animation:bellShake .6s ease;}
.bell-cnt{font-family:var(--font-brand);font-size:12px;font-weight:700;color:var(--gray-400);line-height:1;}
.alert-bell.urgent .bell-cnt{color:#d97706;}
.alert-bell.ringing .bell-cnt{color:#ef4444;}
.bell-label{font-family:var(--font-cond);font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--gray-400);}
.alert-bell.urgent .bell-label{color:#d97706;}
.alert-bell.ringing .bell-label{color:#ef4444;}
@keyframes bellShake{0%,100%{transform:rotate(0) scale(1)}15%{transform:rotate(-12deg) scale(1.1)}30%{transform:rotate(10deg) scale(1.1)}45%{transform:rotate(-7deg)}60%{transform:rotate(5deg)}75%{transform:rotate(-2deg)}}
@keyframes bellPulse{0%,100%{box-shadow:0 0 0 0 rgba(235,10,30,.0)}40%{box-shadow:0 0 0 6px rgba(235,10,30,.15)}}

/* ════════════════════════════════════════
   PAGE 2 — HYBRID LAYOUT
════════════════════════════════════════ */
.queue-layout{display:flex;gap:14px;align-items:flex-start;}
.queue-table-area{flex:1;min-width:0;transition:all .3s cubic-bezier(.22,1,.36,1);}

/* ── DETAIL PANEL ── */
.detail-panel{
  width:0;overflow:hidden;flex-shrink:0;
  transition:width .28s cubic-bezier(.22,1,.36,1);
  background:var(--white);border:1px solid var(--gray-200);
  border-top:3px solid var(--red);border-radius:var(--r);
  box-shadow:var(--shadow-lg);
  position:sticky;top:calc(var(--hh) + var(--th) + 8px);
  max-height:calc(100dvh - var(--hh) - var(--th) - 20px);
  display:flex;flex-direction:column;
}
.detail-panel.open{width:340px;overflow:hidden;}
.dp-inner{width:340px;display:flex;flex-direction:column;flex:1;overflow:hidden;}
.dp-hdr{
  padding:14px 16px 12px;
  border-bottom:1px solid var(--gray-200);
  display:flex;align-items:flex-start;justify-content:space-between;
  flex-shrink:0;
}
.dp-hdr-info{flex:1;min-width:0;}
.dp-klucz{font-family:var(--font-brand);font-size:22px;font-weight:800;letter-spacing:.5px;color:var(--black);line-height:1;}
.dp-meta{display:flex;align-items:center;gap:6px;margin-top:5px;flex-wrap:wrap;}
.dp-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--gray-400);padding:0 4px;line-height:1;flex-shrink:0;transition:color .15s;}
.dp-close:hover{color:var(--black);}

.dp-body{padding:14px 16px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:12px;}

/* Status buttons in detail panel */
.dp-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.dp-st-btn{
  padding:9px 6px;border-radius:3px;
  font-family:var(--font-cond);font-size:10px;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;cursor:pointer;
  transition:all .15s;border:2px solid transparent;
  display:flex;flex-direction:column;align-items:center;gap:2px;
}
.dp-st-btn .st-icon{font-size:14px;}
.dp-st-btn.active{border-color:var(--black) !important;transform:scale(1.02);box-shadow:0 2px 10px rgba(0,0,0,.18);}
.dp-st-pending{background:#f3f4f6;color:#374151;}.dp-st-pending.active{background:#e5e7eb;}
.dp-st-inprogress{background:#eff6ff;color:#1d4ed8;}.dp-st-inprogress.active{background:#dbeafe;}
.dp-st-ready{background:#f0fdf4;color:#15803d;}.dp-st-ready.active{background:#dcfce7;}
.dp-st-problem{background:#fef2f2;color:#b91c1c;}.dp-st-problem.active{background:#fee2e2;}

/* ── DEPT / USŁUGA INLINE EDITOR in detail panel ── */
.dp-edit-pencil{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:3px;
  background:none;border:1px solid transparent;
  cursor:pointer;font-size:12px;color:var(--gray-400);
  transition:all .15s;flex-shrink:0;
}
.dp-edit-pencil:hover{border-color:var(--gray-300);background:var(--gray-100);color:var(--black);}
.dp-edit-pencil.active{border-color:var(--red);background:#fff5f5;color:var(--red);}

.dp-dzial-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}

.dp-inline-editor{
  display:none;flex-direction:column;gap:8px;
  background:#fafafa;border:1px solid var(--gray-200);
  border-left:3px solid var(--red);border-radius:3px;
  padding:10px 12px;margin-top:6px;
}
.dp-inline-editor.open{display:flex;}
.dp-inline-editor-title{font-family:var(--font-cond);font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray-500,#6b7280);}
.dp-dzial-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;}
.dp-svc-grid{display:flex;flex-direction:column;gap:3px;}
.dp-dzial-opt,.dp-svc-opt{
  padding:5px 8px;border-radius:3px;
  font-family:var(--font-cond);font-size:10px;font-weight:600;
  letter-spacing:.5px;text-transform:uppercase;cursor:pointer;
  border:1.5px solid transparent;transition:all .12s;text-align:left;
  width:100%;
}
.dp-dzial-opt:hover,.dp-svc-opt:hover{opacity:.85;border-color:rgba(0,0,0,.15);}
.dp-dzial-opt.current,.dp-svc-opt.current{border-color:var(--black)!important;box-shadow:0 0 0 2px rgba(0,0,0,.08);}
.dp-editor-close{
  align-self:flex-start;background:none;border:none;
  font-family:var(--font-cond);font-size:10px;letter-spacing:1px;
  text-transform:uppercase;color:var(--gray-400);cursor:pointer;padding:2px 0;
}
.dp-editor-close:hover{color:var(--black);}
.dp-field{display:flex;flex-direction:column;gap:3px;}
.dp-lbl{font-family:var(--font-cond);font-size:9px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gray-400);}
.dp-val{font-family:var(--font-main);font-size:14px;color:var(--black);}
.dp-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.dp-sep{height:1px;background:var(--gray-200);}
.dp-wyjazd{background:var(--gray-100);border:1.5px solid var(--gray-300);color:var(--black);padding:7px 10px;font-family:var(--font-brand);font-size:15px;letter-spacing:2px;border-radius:var(--r);width:100%;outline:none;transition:border-color .18s,background .18s;}
.dp-wyjazd:focus{border-color:var(--red);background:var(--white);}
.dp-uwagi{font-size:13px;color:var(--gray-700);font-style:italic;line-height:1.5;background:var(--gray-100);padding:8px 10px;border-radius:var(--r);border-left:3px solid var(--gray-300);}
.dp-timer-big{font-family:var(--font-brand);font-size:26px;font-weight:800;letter-spacing:1px;line-height:1;}
.dp-timer-big.tok{color:var(--gray-600);}
.dp-timer-big.twarn{color:var(--amber);}
.dp-timer-big.tovrd{color:#ef4444;}
.dp-timer-big.tdone{color:#22c55e;}

/* Mini log in panel */
.dp-log-hdr{font-family:var(--font-brand);font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray-600);}
.dp-log-entry{display:flex;gap:8px;padding:6px 0;border-bottom:1px solid var(--gray-100);}
.dp-log-entry:last-child{border-bottom:none;}
.dp-log-ic{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;flex-shrink:0;}
.dp-log-txt{flex:1;min-width:0;}
.dp-log-act{font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--black);}
.dp-log-ts{font-size:10px;color:var(--gray-400);font-family:var(--font-cond);}

/* Row selected */
tbody tr.row-selected{background:#fef7f7 !important;outline:2px solid var(--red);outline-offset:-2px;}

/* ════════════════════════════════════════
   PAGE 2 — KANBAN BOARD
════════════════════════════════════════ */
.kanban-board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:start;}
.kanban-col{background:#f4f5f7;border-radius:4px;overflow:visible;border:1px solid #e2e4e8;}
.kanban-col-hdr{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,.06);}
.kch-title{font-family:var(--font-brand);font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;}
.kch-cnt{font-family:var(--font-brand);font-size:22px;font-weight:800;line-height:1;}
.kh-p{background:#edeff2;}.kh-p .kch-title{color:#6b7280;}.kh-p .kch-cnt{color:#374151;}
.kh-i{background:#e8f0fe;}.kh-i .kch-title{color:#4a6fa5;}.kh-i .kch-cnt{color:#1d4ed8;}
.kh-r{background:#e6f4ea;}.kh-r .kch-title{color:#3a8a52;}.kh-r .kch-cnt{color:#15803d;}
.kh-b{background:#fde8e8;}.kh-b .kch-title{color:#c0392b;}.kh-b .kch-cnt{color:#b91c1c;}

.kanban-cards{padding:10px 8px;display:flex;flex-direction:column;gap:8px;min-height:60px;}

/* ── KANBAN CARD LAYOUT ── */
@keyframes pulseBg{0%,100%{opacity:1}50%{opacity:.65}}
.kcard{
  background:var(--white);border-radius:4px;padding:11px 12px 9px;
  box-shadow:0 1px 3px rgba(0,0,0,.08),0 0 0 1px rgba(0,0,0,.04);
  cursor:pointer;transition:box-shadow .15s,transform .1s;
  border-left:5px solid transparent;
}
.kcard:hover{box-shadow:0 4px 14px rgba(0,0,0,.13);transform:translateY(-1px);}
/* Urgent >40min — wyraźny amber */
.kcard.kcard-urgent{background:#fff8e6;border-left-color:#f59e0b;
  box-shadow:0 0 0 1px rgba(245,158,11,.25);}
/* Overdue >60min — mocny czerwony pulsujący */
.kcard.kcard-overdue{background:#ffd6d6;border-left-color:#dc2626;
  box-shadow:0 0 0 2px rgba(220,38,38,.3);
  animation:pulseBg 1.6s ease-in-out infinite;}
.kcard.kcard-overdue:hover{animation:none;}

/* Header row: rejestracja left + model right */
.kcard-hdr{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px;}
.kcard-key{font-family:var(--font-brand);font-size:14px;font-weight:700;color:var(--gray-600);letter-spacing:.3px;line-height:1;flex-shrink:0;}
.kcard-model{font-family:var(--font-cond);font-size:17px;font-weight:700;color:var(--black);letter-spacing:.5px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Times grid */
.kcard-times{display:flex;gap:0;margin-bottom:8px;border:1px solid var(--gray-200);border-radius:3px;overflow:hidden;}
.kcard-time-item{display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:5px 8px;flex:1;border-right:1px solid var(--gray-200);background:#fafafa;}
.kcard-time-item:last-child{border-right:none;}
.kcard-time-lbl{font-family:var(--font-cond);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-400);}
.kcard-time-val{font-family:var(--font-brand);font-size:15px;font-weight:800;color:var(--black);letter-spacing:.5px;}

/* Footer: dział left, usługa+timer right */
.kcard-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:0;}
.kcard-row-right{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.kcard-timer{font-family:var(--font-brand);font-size:13px;font-weight:800;flex-shrink:0;}

/* Uwagi truncated with tooltip */
.kcard-note{
  font-size:11px;color:var(--gray-500,#6b7280);font-style:italic;
  background:#fafafa;border-radius:3px;padding:5px 8px;margin-top:4px;
  line-height:1.4;border-left:2px solid var(--gray-200);
  position:relative;overflow:hidden;
}
.kcard-note-text{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  word-break:break-word;
}
.kcard-note.expanded .kcard-note-text{
  display:block;overflow:visible;-webkit-line-clamp:unset;
}
.kcard-note-more{
  font-family:var(--font-cond);font-size:9px;letter-spacing:1px;text-transform:uppercase;
  color:var(--gray-400);margin-top:2px;cursor:pointer;
}

/* Quick status actions */
.kcard-actions{display:flex;gap:5px;margin-top:8px;padding-top:8px;border-top:1px solid var(--gray-100);}
.kact-btn{
  flex:1;padding:5px 4px;border:none;border-radius:3px;
  font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:.8px;
  text-transform:uppercase;cursor:pointer;transition:opacity .15s,transform .1s;
  touch-action:manipulation;
}
.kact-btn:hover{opacity:.85;transform:scale(.98);}
.kact-start{background:#e8f0fe;color:#1d4ed8;}
.kact-done{background:#e6f4ea;color:#15803d;}
.kact-problem{background:#fde8e8;color:#b91c1c;}
.kact-back{background:#f3f4f6;color:#374151;}

.kanban-empty{padding:20px 14px;text-align:center;font-family:var(--font-cond);font-size:11px;color:var(--gray-400);letter-spacing:1px;text-transform:uppercase;}
.kb-sentinel{height:1px;flex-shrink:0;}

/* ── ACCESS CONTROL — OWNER (read-only everywhere) ── */
body.acct-wlasciciel .form-page{display:none!important}
body.acct-wlasciciel .car-transition{display:none!important}
body.acct-wlasciciel .btn-del{display:none!important}
body.acct-wlasciciel .btn-log{display:none!important}
body.acct-wlasciciel .kact-btn{display:none!important}
body.acct-wlasciciel .view-toggle{display:none!important}
body.acct-wlasciciel .chip{display:none!important}
body.acct-wlasciciel .filter-lbl{display:none!important}
body.acct-wlasciciel .btn-exp{display:none!important}
body.acct-wlasciciel .dp-st-btn{pointer-events:none!important;opacity:.6}
body.acct-wlasciciel .dp-edit-pencil{display:none!important}
body.acct-wlasciciel .dp-wyjazd{pointer-events:none}
body.acct-wlasciciel .esl{pointer-events:none}
body.acct-wlasciciel .etc{pointer-events:none}
body.acct-wlasciciel .kcard-edit-btn{display:none!important}
/* ── USER INFO IN HEADER ── */
.hdr-user{display:flex;align-items:center;gap:8px;border-left:1px solid #333;padding-left:14px;margin-left:6px}
.hdr-user-badge{font-family:var(--font-cond);font-size:9px;font-weight:700;letter-spacing:1.5px;padding:3px 9px;border-radius:2px;text-transform:uppercase;white-space:nowrap}
.hdr-user-name{font-family:var(--font-cond);font-size:12px;color:var(--gray-300);letter-spacing:.5px;white-space:nowrap}
.btn-logout{background:none;border:1px solid #444;color:var(--gray-400);padding:4px 11px;font-family:var(--font-cond);font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;cursor:pointer;border-radius:var(--r);transition:all .2s;white-space:nowrap}
.btn-logout:hover{border-color:var(--red);color:var(--red)}
.btn-admin-hdr{background:var(--red);border:none;color:#fff;padding:4px 11px;font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;border-radius:var(--r);transition:background .2s;white-space:nowrap}
.btn-admin-hdr:hover{background:var(--red-dark)}
/* ── BACKUP BANNER ── */
.backup-banner{background:#1a1000;border-bottom:2px solid var(--amber);padding:7px 24px;display:flex;align-items:center;gap:12px;font-family:var(--font-cond);font-size:12px;color:#d4960a;flex-wrap:wrap}
.backup-banner.hidden{display:none!important}
.backup-banner-title{font-weight:600;letter-spacing:.5px;white-space:nowrap}
.backup-banner-sub{font-size:10px;opacity:.7;flex:1;min-width:0}
.btn-backup-now{background:var(--amber);border:none;color:#1a0900;padding:5px 13px;font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;border-radius:2px;white-space:nowrap}
.btn-backup-now:hover{background:#e69000}
.btn-banner-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:16px;padding:0 6px;line-height:1;opacity:.6;flex-shrink:0}
.btn-banner-close:hover{opacity:1}
/* ── ADMIN PANEL MODAL ── */
.admin-modal-box{background:var(--white);width:1128px;max-width:96vw;max-height:92vh;display:flex;flex-direction:column;border-top:3px solid var(--red);box-shadow:0 24px 64px rgba(0,0,0,.3);border-radius:2px;transform:translateY(16px);transition:transform .2s}
.modal-ov.open .admin-modal-box{transform:translateY(0)}
.user-list{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.user-row{display:flex;align-items:center;gap:12px;padding:12px 18px;background:var(--gray-100);border-radius:3px;border:1px solid var(--gray-200)}
.user-row-login{font-family:var(--font-brand);font-size:17px;font-weight:700;min-width:108px}
.user-row-role{font-family:var(--font-cond);font-size:11px;font-weight:700;padding:3px 10px;border-radius:2px;letter-spacing:1px;text-transform:uppercase;flex-shrink:0}
.user-form{background:var(--gray-100);border:1px solid var(--gray-200);border-left:3px solid var(--red);padding:18px 20px;border-radius:3px}
.user-form-title{font-family:var(--font-brand);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gray-700);margin-bottom:14px}
.user-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end}
.user-form .fi{padding:11px 14px;font-size:15px}
.btn-create-user{background:var(--red);color:#fff;border:none;padding:11px 20px;font-family:var(--font-cond);font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border-radius:var(--r);white-space:nowrap;height:52px;align-self:end}
.btn-create-user:hover{background:var(--red-dark)}
/* ── BACKUP SECTION IN ANALYTICS ── */
.backup-card{background:var(--white);border:1px solid var(--gray-200);padding:16px 18px;box-shadow:var(--shadow-sm);margin-top:14px;border-top:3px solid var(--gray-700)}
.backup-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.btn-backup{background:var(--gray-900);color:var(--white);border:none;padding:9px 16px;font-family:var(--font-cond);font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border-radius:var(--r);transition:background .2s;white-space:nowrap}
.btn-backup:hover{background:var(--gray-700)}
.btn-backup-import{background:var(--white);color:var(--gray-700);border:1.5px solid var(--gray-300);padding:9px 16px;font-family:var(--font-cond);font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border-radius:var(--r);transition:all .2s;white-space:nowrap}
.btn-backup-import:hover{border-color:var(--gray-900);color:var(--black)}
.backup-status{font-family:var(--font-cond);font-size:11px;color:var(--gray-400);letter-spacing:.5px;flex:1;min-width:160px}
.backup-hint{font-family:var(--font-cond);font-size:10px;color:var(--gray-400);letter-spacing:.5px;margin-top:10px;border-top:1px solid var(--gray-200);padding-top:10px;line-height:1.6}

/* ── PROBLEM NOTE FIELD ── */
.kproblem-note{
  width:100%;background:#fef2f2;border:1px solid #fca5a5;
  border-radius:3px;padding:6px 8px;font-family:var(--font-main);
  font-size:12px;color:#7f1d1d;resize:none;outline:none;
  transition:border-color .15s;margin-top:6px;line-height:1.45;
}
.kproblem-note:focus{border-color:#dc2626;background:#fff5f5;}
.kproblem-note::placeholder{color:#fca5a5;}
/* ── APP FOOTER ── */
.app-footer{
  text-align:center;padding:10px 0 14px;
  font-family:var(--font-cond);font-size:10px;letter-spacing:2px;
  color:var(--gray-400);opacity:.55;user-select:none;
  border-top:1px solid var(--gray-200);margin-top:18px;
}
.app-footer em{font-style:normal;color:var(--red);opacity:.7;}

/* ── KCARD DELETE (pending only) ── */
.kact-delete{background:none;border:1px solid #fca5a5;color:#ef4444;font-size:10px;
  padding:3px 8px;border-radius:2px;cursor:pointer;font-family:var(--font-cond);
  font-weight:600;letter-spacing:.5px;transition:all .15s;flex-shrink:0;
  touch-action:manipulation;}
.kact-delete:hover{background:#fee2e2;border-color:#dc2626;color:#dc2626;}

/* ── KCARD EDIT PENCIL BUTTON ── */
.kcard-edit-btn{background:none;border:1px solid #555;color:#aaa;cursor:pointer;
  padding:2px 8px;font-family:var(--font-cond);font-size:9px;font-weight:700;
  letter-spacing:1.5px;text-transform:uppercase;border-radius:2px;
  transition:all .15s;flex-shrink:0;line-height:1.6;touch-action:manipulation;}
.kcard-edit-btn:hover{border-color:#f97316;color:#f97316;}
/* ── CARD EDIT MODAL ── */
.cedit-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:600;
  display:none;align-items:center;justify-content:center;}
.cedit-overlay.open{display:flex;}
.cedit-modal{background:#fff;border-radius:6px;padding:22px 20px 18px;width:300px;
  box-shadow:0 8px 40px rgba(0,0,0,.25);border-top:3px solid var(--red);}
.cedit-title{font-family:var(--font-brand);font-size:13px;font-weight:800;
  color:var(--black);margin-bottom:16px;letter-spacing:.5px;}
.cedit-field{margin-bottom:12px;}
.cedit-field label{display:block;font-family:var(--font-cond);font-size:9px;
  letter-spacing:1.8px;text-transform:uppercase;color:var(--gray-400);margin-bottom:4px;}
.cedit-field input{width:100%;box-sizing:border-box;border:1px solid var(--gray-200);
  border-radius:3px;padding:7px 10px;font-family:var(--font-brand);font-size:15px;
  font-weight:700;color:var(--black);outline:none;}
.cedit-field input:focus{border-color:var(--red);}
.cedit-acts{display:flex;gap:8px;margin-top:18px;}
.cedit-save{flex:1;background:var(--red);color:#fff;border:none;border-radius:3px;
  padding:9px;font-family:var(--font-cond);font-size:11px;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;cursor:pointer;}
.cedit-save:hover{opacity:.88;}
.cedit-cancel{padding:9px 14px;background:none;border:1px solid var(--gray-200);
  border-radius:3px;font-family:var(--font-cond);font-size:11px;cursor:pointer;
  color:var(--gray-500);}
.cedit-cancel:hover{background:var(--gray-100);}

/* ── KCARD DATE BADGE ── */
.kcard-date{font-family:var(--font-cond);font-size:10px;font-weight:600;
  letter-spacing:.5px;color:#fff;background:var(--gray-600);
  padding:2px 7px;border-radius:2px;margin-left:auto;flex-shrink:0;}
/* ══ DETAILING TAB ══════════════════════════════════ */
#tab-detailing{display:none;height:calc(100dvh - var(--ch));overflow:hidden;background:#eaecef;flex-direction:column;}
#tab-detailing.active{display:flex;}

/* ── DT TOP BAR ── */
.dt-top-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;
  border-bottom:2px solid #e0e0e0;background:#f8f8f8;flex-shrink:0;flex-wrap:wrap;}
.dt-months-row{display:flex;gap:4px;flex-wrap:nowrap;overflow-x:auto;flex:1;min-width:0;
  scrollbar-width:none;-ms-overflow-style:none;}
.dt-months-row::-webkit-scrollbar{display:none;}
.dt-month-tab{font-family:var(--font-cond);font-size:10px;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;padding:4px 11px;border-radius:20px;
  border:1.5px solid #ccc;background:#fff;color:#888;cursor:pointer;
  transition:all .15s;white-space:nowrap;flex-shrink:0;}
.dt-month-tab:hover{border-color:#888;color:#111;}
.dt-month-tab.empty{opacity:.45;}

/* BIEZACY miesiac — zawsze jasno rozowy, nawet gdy nieaktywny */
.dt-month-tab.current{
  background:#fff1f2;          /* rose-50 */
  border-color:#fecdd3;          /* rose-200 */
  color:#be123c;                 /* rose-700 */
  font-weight:700;
}
.dt-month-tab.current:hover{
  background:#ffe4e6;            /* rose-100 */
  border-color:#fda4af;           /* rose-300 */
}

/* AKTYWNY (klikniety) — pelny Toyota red */
.dt-month-tab.active{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
}
.dt-month-tab.active:hover{
  background:#c10018;
  border-color:#c10018;
}

/* Aktywny + biezacy → aktywny wygrywa */
.dt-month-tab.active.current{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
}
.dt-top-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.dt-search-input{font-family:var(--font-main);font-size:12px;padding:5px 10px;
  border:1.5px solid #ccc;border-radius:4px;outline:none;width:240px;
  transition:border-color .15s;background:#fff;}
.dt-search-input:focus{border-color:var(--red);}
.dt-new-btn{background:var(--red);color:#fff;border:none;border-radius:5px;
  padding:6px 14px;font-family:var(--font-cond);font-size:11px;font-weight:700;
  letter-spacing:1px;cursor:pointer;white-space:nowrap;}
.dt-new-btn:hover{background:#c0001a;}

/* ── DT LIST FULL WIDTH ── */
.dt-list-full{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;}
.dt-list{flex:1;min-height:0;overflow-y:auto;background:#fff;}
.dt-alert-area{flex-shrink:0;}
.dt-alert-bar{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:4px;
  padding:4px 10px;font-size:11px;font-weight:600;letter-spacing:.5px;margin:4px 6px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;}
.dt-alert-ok{margin-left:14px;padding:2px 12px;background:#fff;color:#92400e;
  border:1px solid #92400e;border-radius:3px;font-family:var(--font-cond);
  font-size:11px;font-weight:700;letter-spacing:1px;cursor:pointer;
  vertical-align:middle;flex-shrink:0;}
.dt-alert-ok:hover{background:#92400e;color:#fff;}
.dt-empty-list{text-align:center;padding:40px 20px;color:#888;font-size:13px;}

/* ── DT ROW — siatka tabelaryczna ── */
.dt-list{flex:1;min-height:0;overflow-y:auto;background:#fff;border-top:1px solid var(--gray-300);}
.dt-list-head{
  display:grid;
  grid-template-columns: 80px 130px 145px 55px 1fr 110px 75px 40px 110px 105px;
  background:var(--gray-100);
  border-bottom:2px solid var(--gray-400);
  font-family:var(--font-cond);
  font-size:10px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--gray-600);
  position:sticky; top:0; z-index:5;
}
.dt-list-head > div{
  padding:8px 8px;
  border-right:1px solid var(--gray-300);
}
.dt-list-head > div:last-child{border-right:none;}

.dt-row{
  display:grid;
  grid-template-columns: 80px 130px 145px 55px 1fr 110px 75px 40px 110px 105px;
  border-bottom:1px solid var(--gray-300);
  cursor:pointer;
  transition:background .12s;
  background:#fff;
}
.dt-row > div{
  padding:8px 8px;
  border-right:1px solid rgba(0,0,0,.12);
  display:flex;
  align-items:center;
  min-height:42px;
  overflow:hidden;
  color:#1f2937;
}
.dt-row > div:last-child{border-right:none;}
.dt-row:hover{background:#fafafa;}
.dt-row.selected{
  outline:2px solid var(--red);
  outline-offset:-2px;
  box-shadow:0 0 0 4px rgba(235,10,30,.15);
}
.dt-row .dt-row-model{color:#0a0a0a;font-weight:800;}
.dt-row-handl{
  font-family:var(--font-cond);
  font-size:12px;
  font-weight:700;
  color:#374151;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.dt-row-dzial{
  font-family:var(--font-cond);
  font-size:10px;
  font-weight:400;
  color:var(--gray-500);
  letter-spacing:0.3px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  margin-top:1px;
}

/* WYRAZISTE TŁA WIERSZY — skala Tailwind 200 */
.dt-row.st-pending     {background:#e2e8f0;}   /* slate-200 */
.dt-row.st-inprogress  {background:#fed7aa;}   /* orange-200 */
.dt-row.st-paused      {background:#bfdbfe;}   /* blue-200 */
.dt-row.st-ready       {background:#bbf7d0;}   /* green-200 */
.dt-row.st-problem     {background:#fecaca;}   /* red-200 */
/* HOVER — krok ciemniejszy (skala 300) */
.dt-row.st-pending:hover     {background:#cbd5e1;}
.dt-row.st-inprogress:hover  {background:#fdba74;}
.dt-row.st-paused:hover      {background:#93c5fd;}
.dt-row.st-ready:hover       {background:#86efac;}
.dt-row.st-problem:hover     {background:#fca5a5;}

/* komórki */
.dt-cell-date{font-family:var(--font-brand);font-size:12px;font-weight:700;color:#1d4ed8;white-space:nowrap;}
.dt-cell-model{font-family:var(--font-cond);font-size:13px;font-weight:800;color:#111;letter-spacing:.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dt-cell-key{font-family:var(--font-cond);font-size:11px;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dt-cell-vin{font-family:var(--font-cond);font-size:12px;font-weight:400;letter-spacing:.3px;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dt-cell-svc{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:0;
  overflow:hidden;
  white-space:nowrap;
  min-width:0;
}
.dt-cell-svc .dt-row-svc{
  font-family:var(--font-cond);font-size:12px;font-weight:700;
  color:#0a0a0a;letter-spacing:.5px;
  flex-shrink:0;white-space:nowrap;
}
.dt-cell-svc .dt-row-szcz{
  font-family:var(--font-cond);font-size:11px;font-weight:400;
  color:var(--gray-600);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  flex-shrink:1;min-width:0;
}
.dt-cell-svc .dt-row-szcz::before{
  content:"·";margin:0 6px;color:var(--gray-400);font-weight:700;
}
.dt-cell-svc .dt-row-uwagi{
  font-family:var(--font-cond);font-size:11px;font-style:italic;
  color:#92400e;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  flex-shrink:2;min-width:0;
}
.dt-cell-svc .dt-row-uwagi::before{
  content:"·";margin:0 6px;color:var(--gray-400);font-weight:700;font-style:normal;
}
.dt-cell-handl{
  display:flex !important;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  overflow:hidden;
}
.dt-cell-cena{font-family:var(--font-cond);font-size:13px;font-weight:800;color:#15803d;white-space:nowrap;justify-content:flex-end !important;}
.dt-cell-fv{justify-content:center !important;padding:8px 4px !important;}
.dt-cell-prac{position:relative;min-width:0;width:100%;}
.dt-cell-status{justify-content:center !important;}

.dt-row-status-pill{font-family:var(--font-cond);font-size:10px;font-weight:800;
  letter-spacing:.8px;padding:3px 9px;border-radius:10px;white-space:nowrap;}
.dt-row-prac-cell{display:flex;align-items:center;gap:4px;width:100%;min-width:0;}
.dt-row-prac-val{font-family:var(--font-cond);font-size:12px;font-weight:600;
  color:#555;white-space:nowrap;flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;}
.dt-prac-edit-btn{font-family:var(--font-cond);font-size:9px;font-weight:700;
  background:none;border:1px solid #ddd;color:#bbb;padding:1px 5px;border-radius:2px;
  cursor:pointer;transition:all .12s;flex-shrink:0;}
.dt-prac-edit-btn:hover{border-color:#f97316;color:#f97316;}
.dt-prac-input{font-size:11px;padding:2px 6px;border:1.5px solid var(--red);
  border-radius:3px;width:100%;outline:none;}
.dt-row-fv{font-family:var(--font-cond);font-size:9px;font-weight:800;
  color:#15803d;background:#f0fdf4;border:1px solid #86efac;
  border-radius:2px;padding:1px 5px;flex-shrink:0;}
.dt-remind-badge{font-family:var(--font-cond);font-size:9px;font-weight:800;
  letter-spacing:.5px;padding:2px 6px;border-radius:8px;white-space:nowrap;
  display:inline-block;margin-left:4px;}
.dt-remind-soon{background:#fef9c3;color:#92400e;border:1px solid #fde047;}
.dt-remind-overdue{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;}

.dt-det-handl-big{font-size:16px;font-weight:800;color:#111;letter-spacing:.4px;}

/* ── DT DRAWER ── */
.dt-drawer-ov{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:510;
  display:none;align-items:stretch;justify-content:flex-end;}
.dt-drawer-ov.open{display:flex;}
.dt-drawer{width:30%;min-width:320px;max-width:520px;background:#fff;
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:-6px 0 24px rgba(0,0,0,.18);
  transform:translateX(100%);transition:transform .25s ease;}
.dt-drawer-ov.open .dt-drawer{transform:translateX(0);}
.dt-drawer-inner{flex:1;overflow-y:auto;padding:16px 18px;}
.dt-drawer-hdr{display:flex;align-items:flex-start;justify-content:space-between;
  margin-bottom:14px;padding-bottom:12px;border-bottom:2px solid #eee;}
.dt-drawer-close{background:none;border:none;font-size:20px;cursor:pointer;
  color:#aaa;line-height:1;padding:2px 6px;}
.dt-drawer-close:hover{color:#111;}

/* ── DT PRZEGLĄDY ── */
.dt-przeg-sec{margin-top:16px;padding-top:14px;border-top:1px solid #eee;}
.dt-przeg-title{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#888;
  text-transform:uppercase;margin-bottom:10px;display:flex;
  align-items:center;justify-content:space-between;}
.dt-przeg-add-btn{font-family:var(--font-cond);font-size:9px;font-weight:700;
  letter-spacing:.8px;background:none;border:1px solid #ccc;color:#666;
  padding:3px 10px;border-radius:3px;cursor:pointer;transition:all .15s;}
.dt-przeg-add-btn:hover{border-color:var(--red);color:var(--red);}
.dt-przeg-item{background:#f8f8f8;border-radius:4px;padding:8px 10px;
  margin-bottom:6px;display:flex;align-items:center;gap:8px;}
.dt-przeg-typ-p{font-family:var(--font-cond);font-size:9px;font-weight:800;
  letter-spacing:.8px;padding:2px 6px;border-radius:2px;
  background:#dcfce7;color:#15803d;border:1px solid #86efac;flex-shrink:0;}
.dt-przeg-typ-b{font-family:var(--font-cond);font-size:9px;font-weight:800;
  letter-spacing:.8px;padding:2px 6px;border-radius:2px;
  background:#f4f4f5;color:#71717a;border:1px solid #d4d4d8;flex-shrink:0;}
.dt-przeg-info{flex:1;min-width:0;}
.dt-przeg-date{font-family:var(--font-brand);font-size:13px;font-weight:700;color:#111;}
.dt-przeg-meta{font-size:10px;color:#aaa;margin-top:1px;}
.dt-przeg-del{background:none;border:none;color:#ddd;cursor:pointer;font-size:14px;
  padding:2px 4px;transition:color .12s;}
.dt-przeg-del:hover{color:#ef4444;}
.dt-przeg-form{background:#f0f9ff;border:1px solid #bae6fd;border-radius:5px;
  padding:10px 12px;margin-top:8px;display:none;flex-direction:column;gap:8px;}
.dt-przeg-form.open{display:flex;}
.dt-przeg-form select,.dt-przeg-form input[type="date"],.dt-przeg-form input[type="text"]{
  font-size:12px;padding:5px 8px;border:1.5px solid #ccc;border-radius:3px;
  outline:none;font-family:var(--font-main);background:#fff;}
.dt-przeg-form select:focus,.dt-przeg-form input:focus{border-color:var(--red);}
.dt-przeg-form-row{display:flex;gap:8px;}
.dt-przeg-save-btn{background:var(--red);color:#fff;border:none;border-radius:3px;
  padding:6px 14px;font-family:var(--font-cond);font-size:10px;font-weight:700;
  letter-spacing:.8px;cursor:pointer;align-self:flex-end;}

/* ── DT KOMENTARZE ── */
.dt-comments-sec{margin-top:14px;padding-top:12px;border-top:1px solid #eee;}
.dt-comments-title{font-size:10px;font-weight:700;letter-spacing:1.5px;
  color:#888;text-transform:uppercase;margin-bottom:8px;}
.dt-comment-item{background:#f8f8f8;border-radius:4px;padding:7px 10px;
  margin-bottom:5px;border-left:3px solid #e5e7eb;}
.dt-comment-text{font-size:12px;color:#222;line-height:1.4;}
.dt-comment-meta{font-size:10px;color:#aaa;margin-top:2px;}
.dt-comment-form{display:flex;gap:6px;margin-top:8px;}
.dt-comment-input{flex:1;font-size:12px;padding:6px 10px;border:1.5px solid #ddd;
  border-radius:4px;outline:none;transition:border-color .15s;}
.dt-comment-input:focus{border-color:var(--red);}
.dt-comment-btn{background:var(--red);color:#fff;border:none;border-radius:4px;
  padding:6px 14px;font-family:var(--font-cond);font-size:10px;font-weight:700;
  letter-spacing:.8px;cursor:pointer;white-space:nowrap;}

/* ── DT SERVICE HINT + CENA AUTO-FILL ── */
.dt-svc-hint {
  font-family: var(--font-cond);
  font-size: 11px;
  color: var(--gray-500);
  padding: 4px 2px 0;
  min-height: 16px;
}
.dt-svc-hint b { color: #166534; font-weight: 700; }
.dt-svc-hint em { color: #92400e; font-style: italic; }

.dt-cena-auto {
  background: #fef9c3 !important;
  border-color: #facc15 !important;
}

/* ── DT PRICES GRID (admin) ── */
.dt-prices-info {
  font-family: var(--font-cond);
  font-size: 11px;
  color: var(--gray-500);
  margin-bottom: 10px;
}
.dt-price-row {
  display: grid;
  grid-template-columns: 180px 1fr 110px 30px;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  border-bottom: 1px solid var(--gray-200);
  font-family: var(--font-cond);
  font-size: 12px;
}
.dt-price-row:hover { background: var(--gray-100); }
.dt-price-grp {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--gray-500);
}
.dt-price-name { font-weight: 600; color: #1f2937; }
.dt-price-input {
  padding: 6px 10px;
  border: 1px solid var(--gray-300);
  border-radius: 3px;
  font-family: var(--font-cond);
  font-size: 13px;
  text-align: right;
}

/* ── DT FV TOGGLE (wyrozniona sekcja w drawerze) ── */
.dt-fv-toggle{
  background:#fef9c3;
  border:1px solid #fde047;
  border-radius:4px;
  padding:10px 14px;
  margin:12px 0;
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-cond);
  font-weight:700;
  font-size:13px;
  color:#713f12;
}
.dt-fv-toggle input[type="checkbox"]{
  accent-color:#15803d;
}
.dt-fv-toggle label{
  font-size:13px;color:#713f12;cursor:pointer;
  letter-spacing:normal;text-transform:none;margin:0;
}

/* ── DT DETAIL (drawer) ── */
.dt-det-model{font-family:var(--font-brand);font-size:17px;font-weight:700;color:#111;letter-spacing:1px;}
.dt-det-sub{font-size:11px;color:#777;margin-top:2px;}
.dt-det-sec{margin-bottom:13px;}
.dt-det-lbl{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#888;text-transform:uppercase;margin-bottom:3px;}
.dt-det-val{font-size:13px;color:#111;}
.dt-det-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:13px;}

/* ── DT STATUS ── */
.dt-stat-row{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:13px;}
.dt-sbtn{border:1.5px solid #ccc;border-radius:4px;padding:4px 10px;font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:.8px;cursor:pointer;background:#fff;color:#555;transition:all .12s;}
.dt-sbtn:hover{border-color:#999;}
.dt-sbtn.s-pending.cur{background:#f4f4f5;color:#52525b;border-color:#71717a;}
.dt-sbtn.s-inprogress.cur{background:#dcfce7;color:#15803d;border-color:#16a34a;}
.dt-sbtn.s-paused.cur{background:#dbeafe;color:#1d4ed8;border-color:#3b82f6;}
.dt-sbtn.s-ready.cur{background:#bbf7d0;color:#14532d;border-color:#16a34a;}
.dt-sbtn.s-problem.cur{background:#fee2e2;color:#991b1b;border-color:#ef4444;}

/* ── DT TIMER ── */
.dt-timer-box{background:#fff;border:1px solid #ddd;border-radius:6px;padding:12px 14px;margin-bottom:13px;text-align:center;}
.dt-timer-val{font-family:var(--font-brand);font-size:30px;font-weight:700;letter-spacing:3px;color:#111;margin-bottom:8px;}
.dt-timer-val.run{color:#15803d;}
.dt-timer-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.dt-tbtn{border:none;border-radius:5px;padding:7px 16px;font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:.8px;cursor:pointer;}
.dt-tbtn:hover{opacity:.85;}
.dt-tstart{background:#15803d;color:#fff;}
.dt-tpause{background:#d97706;color:#fff;}
.dt-tresume{background:#1d4ed8;color:#fff;}
.dt-tstop{background:var(--red);color:#fff;}

/* ── DT ACTIONS ── */
.dt-actions{display:flex;gap:7px;flex-wrap:wrap;padding-top:10px;border-top:1px solid #ddd;margin-top:4px;}
.dt-abtn{background:#e5e5e5;color:#222;border:none;border-radius:4px;padding:6px 12px;font-family:var(--font-cond);font-size:10px;font-weight:700;letter-spacing:.8px;cursor:pointer;}
.dt-abtn:hover{background:#ccc;}
.dt-abtn.del{background:#fee2e2;color:#991b1b;}
.dt-abtn.del:hover{background:#fecaca;}

/* ── DT MODAL ── */
.dt-modal-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:500;align-items:flex-start;justify-content:center;padding:5dvh 8px 20px;overflow-y:auto;}
.dt-modal-ov.open{display:flex;}
.dt-modal{background:#fff;border-radius:8px;width:min(520px,95vw);overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.3);}
.dt-mhdr{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1.5px solid #ddd;background:#f8f8f8;}
.dt-mtitle{font-family:var(--font-cond);font-size:14px;font-weight:700;letter-spacing:1px;color:#111;}
.dt-mx{background:none;border:none;color:#888;font-size:18px;cursor:pointer;padding:2px 6px;line-height:1;}
.dt-mx:hover{color:#111;}
.dt-mbody{padding:16px 18px;}
.dt-fg{margin-bottom:11px;}
.dt-fg label{display:block;font-size:10px;font-weight:700;letter-spacing:1px;color:#555;margin-bottom:3px;text-transform:uppercase;}
.dt-fi{width:100%;background:#f5f5f5;border:1.5px solid #ccc;border-radius:4px;color:#111;padding:7px 10px;font-size:12px;font-family:var(--font-main);text-transform:uppercase;box-sizing:border-box;}
.dt-fi:focus{border-color:var(--red);outline:none;}
.dt-fi.no-upper{text-transform:none;}
.dt-fg2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.dt-macts{display:flex;gap:10px;justify-content:flex-end;padding-top:12px;border-top:1px solid #ddd;margin-top:8px;}
.dt-mcancel{background:#e5e5e5;color:#444;border:none;border-radius:4px;padding:8px 16px;font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:.8px;cursor:pointer;}
.dt-msave{background:var(--red);color:#fff;border:none;border-radius:4px;padding:8px 20px;font-family:var(--font-cond);font-size:11px;font-weight:700;letter-spacing:.8px;cursor:pointer;}
.dt-msave:hover{background:#c0001a;}
@keyframes dtpulse{0%,100%{opacity:1}50%{opacity:.55}}

/* ══ ANALYTICS SUB-TABS ══ */
.anal-tabs { display:flex; gap:0; border-bottom:2px solid var(--gray-200); margin:12px 0 20px; }
.anal-tab { font-family:var(--font-cond); font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--gray-400); background:none; border:none; padding:10px 20px; cursor:pointer; border-bottom:3px solid transparent; transition:color .2s, border-color .2s; }
.anal-tab:hover { color:var(--black); }
.anal-tab.active { color:var(--red); border-bottom-color:var(--red); }
.anal-view { display:none; }
.anal-view.active { display:block; }

/* ══ ANALYTICS FILTER BAR ══ */
.anal-filter-bar { display:flex; align-items:center; gap:10px; margin-bottom:18px; flex-wrap:wrap; }
.anal-filter-lbl { font-family:var(--font-cond); font-size:11px; font-weight:700; letter-spacing:1px; color:var(--gray-500); text-transform:uppercase; }
.anal-date-input { font-family:var(--font-cond); font-size:13px; padding:6px 10px; max-width:160px; border:1.5px solid var(--gray-300); border-radius:var(--r); }
.anal-preset-btn { font-family:var(--font-cond); font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase; background:var(--gray-100); border:1.5px solid var(--gray-300); color:var(--gray-600); padding:6px 14px; border-radius:var(--r); cursor:pointer; transition:all .15s; }
.anal-preset-btn:hover { background:var(--red); color:#fff; border-color:var(--red); }

/* ══ ANALYTICS SECTIONS ══ */
.anal-section { margin-bottom:28px; }
.anal-section-title { font-family:var(--font-brand); font-size:11px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:var(--gray-500); margin-bottom:14px; padding-bottom:8px; border-bottom:1px solid var(--gray-200); }
.anal-view-title { font-family:var(--font-cond); font-size:14px; font-weight:600; color:var(--gray-700); margin-bottom:14px; letter-spacing:.5px; }

/* ══ KPI CARD — EXTENDED ══ */
.kpi-card { background:var(--white); border:1px solid var(--gray-200); padding:14px 16px; box-shadow:var(--shadow-sm); text-align:center; min-width:100px; }
.kpi-val { font-family:var(--font-brand); font-size:22px; font-weight:700; color:var(--black); }
.kpi-unit { font-family:var(--font-cond); font-size:10px; color:var(--gray-400); letter-spacing:1px; margin-top:2px; }
.kpi-lbl { font-family:var(--font-cond); font-size:10px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:var(--gray-500); margin-top:6px; }
.kpi-val.green { color:#16a34a; }
.kpi-val.amber { color:#d97706; }
.kpi-val.red   { color:var(--red); }

/* ══ HEATMAP ══ */
.heatmap-grid { display:grid; gap:2px; }
.heatmap-cell { width:100%; aspect-ratio:1; border-radius:2px; display:flex; align-items:center; justify-content:center; font-family:var(--font-cond); font-size:9px; color:var(--gray-600); }
.heatmap-lbl { font-family:var(--font-cond); font-size:9px; color:var(--gray-400); text-align:center; letter-spacing:.5px; }

/* ══ MATRIX TABLE ══ */
.matrix-tbl { width:100%; border-collapse:collapse; font-family:var(--font-cond); font-size:11px; }
.matrix-tbl th { font-size:9px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--gray-500); padding:6px 8px; border-bottom:2px solid var(--gray-200); text-align:center; }
.matrix-tbl td { padding:5px 8px; border-bottom:1px solid var(--gray-100); text-align:center; }
.matrix-tbl td:first-child { text-align:left; font-weight:600; }
.matrix-tbl tr:hover { background:var(--gray-50); }

/* ══ EFFICIENCY BAR ══ */
.eff-row { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.eff-lbl { font-family:var(--font-cond); font-size:11px; min-width:120px; white-space:nowrap; }
.eff-bar-track { flex:1; height:14px; background:var(--gray-100); border-radius:2px; overflow:hidden; position:relative; }
.eff-bar-fill { height:100%; border-radius:2px; transition:width .3s; }
.eff-val { font-family:var(--font-cond); font-size:11px; font-weight:700; min-width:45px; text-align:right; }

/* ══ CZAS REALIZACJI WG DZIAŁU ══ */
.dept-time-row {
  display: flex; align-items: center; gap: 8px;
  padding: 5px 0;
  font-family: var(--font-cond);
  font-size: 12px;
}
.dept-time-lbl {
  flex: 0 0 38%;
  font-weight: 600;
  color: var(--gray-800);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dept-time-bar-track {
  flex: 1;
  height: 8px;
  background: var(--gray-100);
  border-radius: 1px;
  overflow: hidden;
}
.dept-time-bar-fill {
  height: 100%;
  background: var(--gray-700);
  transition: width .3s;
}
.dept-time-val {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 11px;
  color: var(--gray-800);
}

/* ══ ANALYTICS MODE SELECTOR ══ */
.anal-mode-bar { display:flex; gap:0; margin-bottom:8px; }
.anal-mode-btn { font-family:var(--font-brand); font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--gray-400); background:var(--gray-50); border:1.5px solid var(--gray-200); padding:10px 24px; cursor:pointer; transition:all .15s; }
.anal-mode-btn:first-child { border-radius:var(--r) 0 0 var(--r); }
.anal-mode-btn:last-child { border-radius:0 var(--r) var(--r) 0; border-left:none; }
.anal-mode-btn.active { background:var(--red); color:#fff; border-color:var(--red); }
.anal-mode-btn:hover:not(.active) { background:var(--gray-100); color:var(--black); }

/* ══ COST FORM ELEMENTS ══ */
.cost-form-row { display:flex; align-items:center; gap:10px; margin:12px 0; flex-wrap:wrap; }

/* ══ COST TABLE ══ */
.cost-tbl { width:100%; border-collapse:collapse; font-family:var(--font-cond); font-size:12px; }
.cost-tbl th { font-size:9px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--gray-500); padding:8px; border-bottom:2px solid var(--gray-200); text-align:right; }
.cost-tbl th:first-child { text-align:left; }
.cost-tbl td { padding:6px 8px; border-bottom:1px solid var(--gray-100); text-align:right; font-variant-numeric:tabular-nums; }
.cost-tbl td:first-child { text-align:left; font-weight:600; }
.cost-tbl tr:hover { background:var(--gray-50); }
.cost-tbl .total-row { font-weight:700; border-top:2px solid var(--gray-300); }

/* ══ STACKED BAR (waterfall) ══ */
.stacked-bar { display:flex; height:22px; border-radius:2px; overflow:hidden; margin-bottom:6px; }
.stacked-seg { display:flex; align-items:center; justify-content:center; font-family:var(--font-cond); font-size:8px; color:#fff; letter-spacing:.5px; min-width:2px; }

/* ══ PERIOD CARD ══ */
.period-card { display:flex; align-items:center; gap:12px; padding:10px 14px; border:1px solid var(--gray-200); border-radius:var(--r); margin-bottom:8px; background:var(--white); }
.period-badge { font-family:var(--font-cond); font-size:9px; font-weight:700; letter-spacing:1px; padding:3px 8px; border-radius:2px; text-transform:uppercase; }
.period-badge.draft { background:#fef3c7; color:#92400e; }
.period-badge.approved { background:#dcfce7; color:#166534; }
.period-label { font-family:var(--font-cond); font-size:13px; font-weight:600; flex:1; }
.period-dates { font-family:var(--font-cond); font-size:11px; color:var(--gray-400); }

/* ══ MATRIX EDITOR ══ */
.matrix-edit { width:100%; border-collapse:collapse; font-family:var(--font-cond); font-size:11px; }
.matrix-edit th { font-size:8px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:var(--gray-500); padding:5px 4px; writing-mode:vertical-lr; text-orientation:mixed; border-bottom:2px solid var(--gray-200); min-width:28px; }
.matrix-edit td { padding:3px 4px; text-align:center; border-bottom:1px solid var(--gray-50); }
.matrix-edit td:first-child { text-align:left; font-weight:500; white-space:nowrap; padding-right:10px; }
.matrix-edit input[type="checkbox"] { width:16px; height:16px; cursor:pointer; accent-color:var(--red); }
.matrix-cat-hdr { background:var(--gray-50); font-weight:700; font-size:10px; letter-spacing:1px; text-transform:uppercase; padding:8px!important; }

/* ══ WARNING ITEM ══ */
.warn-item { display:flex; align-items:center; gap:10px; padding:8px 12px; border-radius:var(--r); margin-bottom:4px; font-family:var(--font-cond); font-size:12px; }
.warn-item.open { background:#fef3c7; border:1px solid #fcd34d; }
.warn-item.resolved { background:#f0fdf4; border:1px solid #bbf7d0; color:var(--gray-400); }

/* ══ IMPORT PREVIEW TABLE ══ */
.import-preview-tbl { width:100%; border-collapse:collapse; font-family:var(--font-cond); font-size:10px; overflow-x:auto; display:block; }
.import-preview-tbl th { background:var(--gray-100); padding:4px 6px; font-size:9px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; white-space:nowrap; }
.import-preview-tbl td { padding:3px 6px; border-bottom:1px solid var(--gray-50); white-space:nowrap; }

/* ══ COMPARISON TABLE ══ */
.cmp-up { color:#16a34a; }
.cmp-down { color:var(--red); }
.cmp-neutral { color:var(--gray-400); }

/* ══ ADMIN MODAL — POWIĘKSZONA WERSJA (override scoped) ══ */
.admin-modal-box .modal-hdr   { padding:19px 24px 14px; }
.admin-modal-box .modal-title { font-size:17px; letter-spacing:2px; }
.admin-modal-box .modal-sub   { font-size:13px; margin-top:4px; }
.admin-modal-box .modal-x     { font-size:24px; padding:0 6px; }
.admin-modal-box .modal-body  { padding:22px 24px; }
.admin-modal-box .fg label    { font-size:13px; letter-spacing:1.5px; }

/* ══ ADMIN TABS ══ */
.admin-tabs { display:flex; gap:0; border-bottom:2px solid var(--gray-200); margin-bottom:20px; }
.admin-tab { font-family:var(--font-cond); font-size:12px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:var(--gray-400); background:none; border:none; padding:10px 20px; cursor:pointer; border-bottom:2px solid transparent; transition:all .15s; display:inline-flex; align-items:center; gap:6px; }
.admin-tab:hover { color:var(--black); }
.admin-tab.active { color:var(--red); border-bottom-color:var(--red); }
.admin-tab .ti { font-size:15px; }
.admin-section { display:none; }
.admin-section.active { display:block; }
.admin-section-desc { font-family:var(--font-cond); font-size:13px; color:var(--gray-700); margin-bottom:18px; letter-spacing:.3px; line-height:1.5; }

/* ══ ADMIN CONFIG TABLE ══ */
.admin-config-tbl { width:100%; border-collapse:collapse; font-family:var(--font-cond); font-size:14px; margin-bottom:10px; }
.admin-config-tbl th { font-size:11px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:var(--gray-700); padding:9px 12px; border-bottom:2px solid var(--gray-200); text-align:center; }
.admin-config-tbl td { padding:8px 12px; border-bottom:1px solid var(--gray-100); text-align:center; }
.admin-config-tbl td:first-child { text-align:left; font-weight:600; font-size:14px; }
.admin-config-tbl input[type="number"] { width:74px; text-align:center; font-family:var(--font-cond); font-size:14px; padding:5px 9px; border:1px solid var(--gray-200); border-radius:2px; }
.admin-config-tbl select { font-family:var(--font-cond); font-size:13px; padding:5px 9px; border:1px solid var(--gray-200); border-radius:2px; }
.admin-config-tbl .btn-save-row { font-family:var(--font-cond); font-size:9px; font-weight:700; letter-spacing:.5px; background:var(--gray-100); border:1px solid var(--gray-200); color:var(--gray-600); padding:3px 10px; border-radius:2px; cursor:pointer; }
.admin-config-tbl .btn-save-row:hover { background:var(--red); color:#fff; border-color:var(--red); }

/* Badge "(nowa)" w nazwie usługi */
.svc-badge-new { font-family:var(--font-cond); font-size:9px; font-weight:700; color:var(--red); letter-spacing:.5px; text-transform:uppercase; }

/* Disabled inputy „do przyszłego użytku" */
.admin-config-tbl input.svc-locked-field,
.admin-config-tbl select.svc-locked-field,
.svc-new-form-row input.svc-locked-field,
.svc-new-form-row select.svc-locked-field { background:var(--gray-100); color:var(--gray-400); cursor:not-allowed; border-color:var(--gray-200); }

/* Akcje w wierszu tabeli usług */
.admin-config-tbl .btn-del-row { background:transparent; border:none; color:var(--gray-400); cursor:pointer; padding:4px 6px; border-radius:2px; transition:color .12s, background .12s; font-size:14px; line-height:1; }
.admin-config-tbl .btn-del-row:hover { color:var(--red); background:var(--gray-100); }
.admin-config-tbl .btn-locked { color:var(--gray-300); font-size:13px; cursor:default; display:inline-block; padding:4px 6px; line-height:1; }

/* Autosave visual feedback */
.admin-config-tbl input.saved,
.admin-config-tbl select.saved { animation:svc-saved 900ms ease; }
@keyframes svc-saved {
  0%   { box-shadow:0 0 0 0 rgba(22,163,74,0);    border-color:var(--gray-200); }
  20%  { box-shadow:0 0 0 3px rgba(22,163,74,.25); border-color:#16a34a; }
  100% { box-shadow:0 0 0 0 rgba(22,163,74,0);    border-color:var(--gray-200); }
}

/* Header sekcji USŁUGI z przyciskiem "Nowa usługa" */
.admin-section-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.btn-add-service { background:var(--red); color:var(--white); border:1px solid var(--red); padding:7px 14px; font-family:var(--font-cond); font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; border-radius:var(--r); cursor:pointer; transition:background .12s; display:inline-flex; align-items:center; gap:6px; flex-shrink:0; line-height:1; }
.btn-add-service:hover { background:var(--red-dark); }
.btn-add-service .ti { font-size:14px; }

/* Modal "Nowa usługa" */
.svc-new-modal-box { background:var(--white); width:520px; max-width:90vw; padding:24px 28px; border-top:3px solid var(--red); border-radius:var(--r); box-shadow:0 24px 64px rgba(0,0,0,.3); transform:translateY(16px); transition:transform .2s; }
.modal-ov.open .svc-new-modal-box { transform:translateY(0); }
.svc-new-title { font-family:var(--font-brand); font-size:16px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--black); margin-bottom:18px; padding-bottom:10px; border-bottom:1px solid var(--gray-200); }
.svc-new-form-row { margin-bottom:12px; }
.svc-new-form-row label { display:block; font-family:var(--font-cond); font-size:10px; font-weight:700; letter-spacing:1px; color:var(--gray-700); margin-bottom:4px; text-transform:uppercase; }
.svc-new-form-row input,
.svc-new-form-row select { width:100%; padding:8px 10px; border:1px solid var(--gray-200); border-radius:2px; font-family:var(--font-cond); font-size:13px; background:var(--white); color:var(--black); box-sizing:border-box; }
.svc-new-form-row input:focus,
.svc-new-form-row select:focus { outline:none; border-color:var(--gray-600); }
.svc-new-form-row .err { font-family:var(--font-cond); font-size:11px; color:var(--red); margin-top:3px; min-height:14px; }
.svc-new-form-row.invalid input,
.svc-new-form-row.invalid select { border-color:var(--red); }
.svc-new-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; }
.svc-new-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:18px; padding-top:14px; border-top:1px solid var(--gray-200); }
.svc-btn-cancel,
.svc-btn-confirm { padding:9px 20px; font-family:var(--font-cond); font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; border-radius:var(--r); cursor:pointer; transition:background .12s, border-color .12s; display:inline-flex; align-items:center; gap:6px; line-height:1; }
.svc-btn-cancel { background:var(--white); border:1px solid var(--gray-300); color:var(--gray-700); }
.svc-btn-cancel:hover { background:var(--gray-100); border-color:var(--gray-600); }
.svc-btn-confirm { background:var(--red); border:1px solid var(--red); color:var(--white); }
.svc-btn-confirm:hover { background:var(--red-dark); }
.svc-btn-confirm .ti { font-size:13px; }

/* ══ ADMIN CONFIG GROUPS ══ */
.admin-config-group { margin-bottom:28px; padding-bottom:20px; border-bottom:1px solid var(--gray-100); }
.admin-config-title { font-family:var(--font-brand); font-size:13px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--gray-700); margin-bottom:14px; }

/* ══ PODGLĄD ══ */
.podglad-wrap { padding:0 8px; }

/* Header + day picker */
.pg-hdr { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid var(--gray-200); }
.pg-title-block { display:flex; flex-direction:column; gap:2px; }
.pg-title { font-family:var(--font-brand); font-size:20px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--black); }
.pg-subtitle { font-family:var(--font-cond); font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--gray-600); }

.pg-day-picker { display:flex; align-items:center; gap:6px; position:relative; }
.pg-day-chip { display:inline-flex; align-items:center; gap:6px; padding:8px 14px; background:var(--white); border:1px solid var(--gray-300); border-radius:var(--r); font-family:var(--font-cond); font-size:12px; font-weight:600; letter-spacing:.5px; color:var(--gray-700); cursor:pointer; transition:all .15s; }
.pg-day-chip:hover { border-color:var(--gray-600); color:var(--black); }
.pg-day-chip.active { background:var(--red); border-color:var(--red); color:var(--white); }
.pg-day-chip-picker .ti { font-size:14px; }
.pg-date-hidden { position:absolute; left:0; bottom:-2px; width:1px; height:1px; opacity:0; pointer-events:none; }

/* Hero */
.pg-hero { display:flex; align-items:center; gap:16px; padding:18px 22px; border-radius:var(--r); border:1px solid var(--gray-200); background:var(--white); margin-bottom:20px; }
.pg-hero-icon { width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:24px; flex-shrink:0; }
.pg-hero-content { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.pg-hero-badge { font-family:var(--font-cond); font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; }
.pg-hero-main { font-family:var(--font-brand); font-size:18px; font-weight:700; color:var(--black); }
.pg-hero-secondary { font-family:var(--font-cond); font-size:12px; color:var(--gray-600); letter-spacing:.3px; }

.pg-hero-wolna .pg-hero-icon  { background:#dcfce7; color:#15803d; }
.pg-hero-wolna .pg-hero-badge { color:#15803d; }
.pg-hero-krotka .pg-hero-icon  { background:#fef3c7; color:#a16207; }
.pg-hero-krotka .pg-hero-badge { color:#a16207; }
.pg-hero-pelna .pg-hero-icon  { background:#fee2e2; color:#b91c1c; }
.pg-hero-pelna .pg-hero-badge { color:#b91c1c; }
.pg-hero-plan .pg-hero-icon  { background:var(--gray-100); color:var(--gray-600); }
.pg-hero-plan .pg-hero-badge { color:var(--gray-600); }

/* KPI row */
.pg-kpi-row { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-bottom:24px; }
.pg-kpi-card { padding:12px 8px; background:var(--gray-100); border-radius:var(--r); text-align:center; }
.pg-kpi-num { font-family:var(--font-brand); font-size:24px; font-weight:700; line-height:1; color:var(--black); }
.pg-kpi-num.amber { color:#d97706; }
.pg-kpi-num.blue  { color:#1d4ed8; }
.pg-kpi-num.green { color:#15803d; }
.pg-kpi-num.red   { color:var(--red); }
.pg-kpi-lbl { font-family:var(--font-cond); font-size:9px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--gray-600); margin-top:4px; }

/* Sekcje */
.pg-section { margin-bottom:24px; }
.pg-section-title { display:flex; align-items:center; gap:6px; font-family:var(--font-brand); font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--gray-700); margin-bottom:12px; padding-bottom:8px; border-bottom:1px solid var(--gray-200); }
.pg-section-title .ti { font-size:14px; color:var(--gray-600); }

/* Source pill */
.pg-src-pill { display:inline-flex; align-items:center; padding:2px 7px; border-radius:2px; font-family:var(--font-cond); font-size:9px; font-weight:700; letter-spacing:1px; }
.pg-src-pill.myj { background:#e0e7ff; color:#3730a3; }
.pg-src-pill.bl  { background:#fef3c7; color:#92400e; }

/* In-progress cards */
.pg-ip-card { display:flex; align-items:center; gap:14px; padding:12px 16px; border:1px solid var(--gray-200); border-radius:var(--r); margin-bottom:6px; background:var(--white); }
.pg-ip-timer { font-family:var(--font-brand); font-size:18px; font-weight:700; width:64px; text-align:center; flex-shrink:0; }
.pg-ip-timer.normal  { color:#1d4ed8; }
.pg-ip-timer.warning { color:#d97706; }
.pg-ip-timer.overdue { color:var(--red); }
.pg-ip-info { flex:1; min-width:0; }
.pg-ip-row { display:flex; align-items:center; gap:8px; }
.pg-ip-model { font-family:var(--font-cond); font-size:13px; font-weight:600; color:var(--black); }
.pg-ip-meta { font-family:var(--font-cond); font-size:10px; color:var(--gray-600); letter-spacing:.3px; margin-top:3px; }

/* Queue — grid layout */
#pg-queue { background:var(--white); border:1px solid var(--gray-200); border-radius:var(--r); }
.pg-q-header,
.pg-q-row { display:grid; grid-template-columns:36px minmax(0,1fr) 100px 50px minmax(0,1fr) 60px 88px; align-items:center; gap:8px; padding:8px 12px; }
.pg-q-header { font-family:var(--font-cond); font-size:9px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--gray-600); border-bottom:1px solid var(--gray-200); background:var(--gray-100); border-radius:var(--r) var(--r) 0 0; }
.pg-q-row { border-bottom:1px solid var(--gray-100); }
.pg-q-row:last-child { border-bottom:none; }
.pg-q-pos { font-family:var(--font-brand); font-size:13px; font-weight:700; color:var(--gray-400); text-align:center; }
.pg-q-model { font-family:var(--font-cond); font-size:12px; font-weight:600; color:var(--black); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pg-q-klucz { font-family:var(--font-cond); font-size:11px; color:var(--gray-700); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pg-q-usluga { font-family:var(--font-cond); font-size:11px; color:var(--gray-700); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pg-q-time { font-family:var(--font-cond); font-size:11px; font-weight:700; color:var(--gray-700); }
.pg-q-status-cell { display:flex; justify-content:flex-end; }
.pg-q-status { padding:2px 8px; border-radius:2px; font-family:var(--font-cond); font-size:9px; font-weight:700; letter-spacing:1px; }
.pg-q-status.pending { background:#fef3c7; color:#92400e; }
.pg-q-status.problem { background:#fee2e2; color:#991b1b; }
.pg-q-status.paused  { background:#dbeafe; color:#1e40af; }

/* Hourly load bars (dziś) */
.pg-hour-row { display:flex; align-items:center; gap:8px; margin-bottom:3px; }
.pg-hour-lbl { font-family:var(--font-cond); font-size:11px; color:var(--gray-600); min-width:40px; text-align:right; }
.pg-hour-track { flex:1; height:14px; background:var(--gray-100); border-radius:2px; overflow:hidden; }
.pg-hour-fill { height:100%; border-radius:2px; transition:width .3s; }
.pg-hour-val { font-family:var(--font-cond); font-size:10px; font-weight:700; min-width:24px; color:var(--gray-700); }
.pg-hour-row.now .pg-hour-lbl,
.pg-hour-row.now .pg-hour-val { color:var(--red); font-weight:700; }

/* Heatmapa historyczna */
.pg-heat-grid { display:grid; grid-template-columns:repeat(14, 1fr); gap:4px; }
.pg-heat-cell { aspect-ratio:1; min-height:32px; border-radius:3px; display:flex; align-items:center; justify-content:center; font-family:var(--font-cond); font-size:12px; font-weight:700; color:var(--gray-700); }
.pg-heat-cell.now { box-shadow:inset 0 0 0 2px var(--red); }
.pg-heat-cell.now .pg-heat-num { color:var(--red); }
.pg-heat-num { font-family:var(--font-brand); font-size:13px; font-weight:700; }

.pg-heat-hours { display:grid; grid-template-columns:repeat(14, 1fr); gap:4px; margin-top:6px; }
.pg-heat-hour-lbl { font-family:var(--font-cond); font-size:10px; color:var(--gray-600); text-align:center; }
.pg-heat-hour-lbl.now { color:var(--red); font-weight:700; }

.pg-heat-legend { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:14px; font-family:var(--font-cond); font-size:10px; color:var(--gray-600); letter-spacing:.3px; }
.pg-heat-legend-item { display:inline-flex; align-items:center; gap:5px; }
.pg-heat-legend-grad { display:inline-block; width:48px; height:10px; border-radius:2px; background:linear-gradient(to right, rgba(136,136,136,0.10), rgba(235,10,30,0.65)); }
.pg-heat-legend-now { display:inline-block; width:14px; height:14px; border-radius:2px; background:var(--white); box-shadow:inset 0 0 0 2px var(--red); }
.pg-heat-legend-sep { color:var(--gray-400); }

.pg-heat-warn { display:flex; align-items:center; gap:6px; margin-top:10px; padding:8px 12px; background:#fef3c7; border:1px solid #fde68a; border-radius:var(--r); font-family:var(--font-cond); font-size:11px; color:#92400e; letter-spacing:.2px; }
.pg-heat-warn .ti { font-size:14px; }

/* Refresh indicator */
.pg-refresh-bar { display:flex; align-items:center; justify-content:center; gap:8px; padding:10px; }
.pg-refresh-txt { font-family:var(--font-cond); font-size:10px; color:var(--gray-600); letter-spacing:.5px; }
.pg-refresh-dot { width:8px; height:8px; border-radius:50%; background:#16a34a; animation:pg-pulse 2s infinite; transition:background .2s; }
@keyframes pg-pulse { 0%,100%{opacity:1} 50%{opacity:.3} }

/* Empty state */
.pg-empty { font-family:var(--font-cond); font-size:12px; color:var(--gray-600); text-align:center; padding:20px; }

/* === DOPOSAŻENIE === */
#tab-doposazenie { background:#f8fafc; min-height:calc(100dvh - var(--ch)); }

.dop-topbar {
  position:sticky;
  top:var(--ch);
  z-index:200;
  background:#fff;
  border-bottom:1px solid var(--gray-200);
  box-shadow:0 1px 4px rgba(0,0,0,.06);
  padding:10px 20px;
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
}

.dop-topbar-left { display:flex; flex-direction:column; gap:6px; }
.dop-nav { display:flex; align-items:center; gap:6px; }
.dop-nav-btn {
  background:var(--gray-100); border:1px solid var(--gray-200);
  color:var(--gray-700); font-family:var(--font-cond); font-size:12px;
  font-weight:600; padding:4px 10px; border-radius:var(--r);
  cursor:pointer; transition:background .15s;
  line-height:1.4;
}
.dop-nav-btn:hover { background:var(--gray-200); }
.dop-nav-btn.today { color:var(--red); border-color:var(--red); }
.dop-nav-date {
  font-family:var(--font-cond); font-size:14px; font-weight:700;
  color:var(--gray-900); letter-spacing:.5px; min-width:130px; text-align:center;
}

.dop-topbar-right { display:flex; align-items:center; gap:8px; }
.dop-btn {
  font-family:var(--font-cond); font-size:12px; font-weight:600;
  letter-spacing:.5px; padding:7px 14px; border-radius:var(--r);
  border:1px solid var(--gray-300); background:#fff; color:var(--gray-800);
  cursor:pointer; transition:background .15s,border-color .15s; white-space:nowrap;
}
.dop-btn:hover { background:var(--gray-100); border-color:var(--gray-400); }
.dop-btn.primary { background:var(--red); color:#fff; border-color:var(--red); }
.dop-btn.primary:hover { background:var(--red-dark); border-color:var(--red-dark); }

.dop-stats-toggle {
  margin-left:8px;
  border-left:1px solid var(--gray-200);
  padding-left:14px !important;
}

.dop-search-wrap { position:relative; display:flex; align-items:center; }
.dop-search-icon {
  position:absolute; left:10px; top:50%; transform:translateY(-50%);
  color:var(--gray-400); font-size:14px;
  pointer-events:none;
  display:flex; align-items:center;
}
.dop-search {
  font-family:var(--font-cond); font-size:12px; padding:7px 28px 7px 32px;
  border:1px solid var(--gray-300); border-radius:var(--r); width:180px;
  outline:none; transition:border-color .15s;
}
.dop-search:focus { border-color:var(--gray-600); }
.dop-search-clear {
  position:absolute; right:6px; background:none; border:none;
  color:var(--gray-400); cursor:pointer; font-size:14px; line-height:1;
  display:none;
}
.dop-search-clear.visible { display:block; }

/* ── DOP BODY LAYOUT ── */
.dop-body {
  display:flex; gap:16px; padding:16px 20px;
  align-items:flex-start;
}

/* ── TIMELINE ── */
.dop-timeline { flex:0 0 70%; min-width:0; position:relative; }

/* Linia aktualnej godziny */
.dop-now-line {
  position:absolute;
  left:42px;
  right:0;
  height:2px;
  background:var(--red);
  z-index:5;
  pointer-events:none;
  box-shadow:0 0 4px rgba(235,10,30,0.4);
}
.dop-now-line::before {
  content:'';
  position:absolute;
  left:-6px; top:-4px;
  width:10px; height:10px;
  background:var(--red);
  border-radius:50%;
  animation:dop-pulse 1.6s ease-in-out infinite;
}
.dop-now-line-label {
  position:absolute;
  right:8px; top:-9px;
  background:var(--red);
  color:var(--white);
  font-family:var(--font-brand);
  font-size:9px;
  font-weight:700;
  letter-spacing:1px;
  padding:2px 6px;
  border-radius:2px;
  white-space:nowrap;
}

.dop-slot { margin-bottom:4px; }
.dop-slot-header {
  display:flex; align-items:center; gap:10px;
  padding:4px 0;
}
.dop-slot-time {
  font-family:var(--font-brand); font-size:11px; font-weight:700;
  color:var(--gray-400); letter-spacing:1px; min-width:42px;
}
.dop-slot-line {
  flex:1; height:1px; background:var(--gray-200);
}
.dop-slot-cards {
  display:flex; flex-wrap:wrap; gap:10px;
  padding:6px 0 6px 52px;
}
.dop-slot-empty { min-height:4px; }

/* ── KARTA ── */
.dop-card {
  background:#fff;
  border-radius:var(--r);
  box-shadow:0 1px 3px rgba(0,0,0,.08);
  border:1.5px solid transparent;
  width:300px;
  display:flex;
  overflow:hidden;
  cursor:pointer;
  transition:box-shadow .15s, border-color .15s;
  position:relative;
}
.dop-card--split { width:auto; min-width:300px; max-width:500px; }
.dop-card:hover { box-shadow:0 3px 10px rgba(0,0,0,.13); }
.dop-card--urgent   { border-color:#f59e0b !important; }
.dop-card--critical { border-color:#dc2626 !important; animation:dop-card-pulse 1.4s ease-in-out infinite; }
.dop-card--overdue  { border-color:#dc2626 !important; }
.dop-card--vip { border-color:#D4AF37 !important; }

.dop-card-bar { width:4px; flex-shrink:0; }
.dop-card-body { padding:12px 14px; flex:1; min-width:0; }
.dop-card-body--split { display:flex; padding:0; }
.dop-card-left { flex:1; min-width:0; padding:12px 14px; }
.dop-card-right {
  width:150px; flex-shrink:0;
  border-left:1px solid var(--gray-200);
  padding:10px 10px;
  display:flex; flex-direction:column; gap:6px;
}

.dop-card-title {
  font-family:var(--font-cond); font-size:16px; font-weight:700;
  color:var(--gray-900); white-space:nowrap; overflow:hidden;
  text-overflow:ellipsis; margin-bottom:2px;
}
.dop-card-vin {
  font-family:var(--font-cond); font-size:11px; color:var(--black);
  font-weight:400; letter-spacing:.3px; margin-bottom:6px; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
}
.dop-card-nrklucza {
  font-family:var(--font-cond); font-size:11px;
  color:var(--black); font-weight:400;
  letter-spacing:.3px; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
  margin-bottom:6px;
}
.dop-card-divider { height:1px; background:var(--gray-100); margin:5px 0; }
.dop-card-dzial {
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  letter-spacing:.5px; text-transform:uppercase; margin-bottom:5px;
}
.dop-card-footer {
  display:flex; align-items:center; gap:6px; flex-wrap:wrap;
}
.dop-status-badge {
  font-family:var(--font-cond); font-size:10px; font-weight:700;
  letter-spacing:.4px; padding:2px 6px; border-radius:10px;
  color:#fff; white-space:nowrap;
}
.dop-card-worker {
  font-family:var(--font-cond); font-size:11px; color:var(--gray-600);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1;
}
.dop-card-uwagi-text {
  font-family:var(--font-main); font-size:11px;
  color:var(--gray-700); line-height:1.45;
  word-break:break-word; flex:1;
  display:-webkit-box; -webkit-line-clamp:4;
  -webkit-box-orient:vertical; overflow:hidden;
}
.dop-card-uwagi-text.expanded {
  display:block; overflow:visible; -webkit-line-clamp:unset;
}
.dop-card-uwagi-toggle {
  font-family:var(--font-cond); font-size:9px; font-weight:700;
  letter-spacing:1px; color:var(--gray-400);
  background:none; border:none; cursor:pointer;
  padding:0; text-align:left; align-self:flex-start;
}
.dop-card-uwagi-toggle:hover { color:var(--red); }
.dop-card-wydanie {
  font-family:var(--font-cond); font-size:10px; color:var(--gray-500);
  white-space:nowrap;
}
.dop-card-vip {
  position:absolute; top:5px; left:10px;
  font-size:10px; font-weight:700; color:#D4AF37;
  display:inline-flex; align-items:center; gap:3px;
  letter-spacing:0.5px;
}
.dop-card-vip .ti { font-size:11px; }
.dop-card-alert-icon {
  position:absolute; top:5px; right:6px;
  font-size:13px; color:#dc2626;
  display:inline-flex; align-items:center;
}

/* ── Klucz status row na kafelce ── */
.dop-card-klucz-status {
  font-family:var(--font-cond); font-size:10px;
  letter-spacing:0.3px;
  display:inline-flex; align-items:center; gap:4px;
  margin-top:4px; margin-bottom:4px;
}
.dop-card-klucz-status .ti { font-size:11px; }
.dop-card-klucz-status.is-tak { color:#16a34a; }
.dop-card-klucz-status.is-nie { color:var(--gray-600); }

/* ── Segmented control (Wydawka — oba modale) ── */
.dop-segmented {
  display:inline-flex;
  border:1.5px solid var(--gray-300);
  border-radius:var(--r);
  overflow:hidden;
  background:var(--white);
}
.dop-seg-btn {
  padding:8px 16px;
  background:transparent;
  border:none;
  border-right:1px solid var(--gray-200);
  cursor:pointer;
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  letter-spacing:0.5px; text-transform:uppercase;
  color:var(--gray-600);
  transition:all .12s;
}
.dop-seg-btn:last-child { border-right:none; }
.dop-seg-btn:hover {
  background:var(--gray-100);
  color:var(--black);
}
.dop-seg-btn.active {
  background:var(--red);
  color:var(--white);
}
.dop-seg-btn.active:hover {
  background:#c00818;
}
.dop-seg-btn:focus-visible {
  outline:2px solid var(--red);
  outline-offset:-2px;
  z-index:1;
}

/* ── Pill button (VIP, Klucz przekazany) ── */
.dop-pill-btn {
  display:inline-flex; align-items:center; gap:7px;
  padding:8px 16px;
  background:var(--white);
  border:1.5px solid var(--gray-300);
  border-radius:var(--r);
  cursor:pointer;
  transition:all .12s;
  font-family:var(--font-cond); font-size:12px; font-weight:600;
  letter-spacing:0.3px;
  color:var(--gray-700);
}
.dop-pill-btn .ti { font-size:14px; }
.dop-pill-btn:hover {
  background:var(--gray-100);
  border-color:var(--gray-600);
}
.dop-pill-btn.active {
  background:var(--red);
  border-color:var(--red);
  color:var(--white);
}
.dop-pill-btn.active:hover {
  background:#c00818;
  border-color:#c00818;
}
.dop-pill-btn:focus-visible {
  outline:2px solid var(--red);
  outline-offset:2px;
}

/* ── Wydawka pill na kafelce ── */
.dop-wydawka-pill {
  display:inline-block;
  padding:2px 7px;
  font-family:var(--font-brand); font-size:10px; font-weight:700;
  letter-spacing:1px;
  background:var(--gray-800); color:var(--white);
  border-radius:2px;
  margin-left:4px;
}

/* ── Karta NIE WYCHODZI ── */
.dop-card--niewychodzi {
  background:var(--gray-100) !important;
  opacity:0.7;
}
.dop-card--niewychodzi .dop-card-title,
.dop-card--niewychodzi .dop-card-vin {
  text-decoration:line-through;
  color:var(--gray-600);
}
.dop-status-badge--niewychodzi {
  background:var(--gray-800) !important;
  color:var(--white);
  font-weight:700; letter-spacing:1px;
}

/* ── Przycisk NIE WYCHODZI w modalu ── */
.dop-btn-niewychodzi {
  padding:8px 16px;
  background:var(--white);
  color:#92400e;
  border:1.5px solid #f59e0b;
  border-radius:var(--r);
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  letter-spacing:1px; text-transform:uppercase;
  cursor:pointer;
  display:inline-flex; align-items:center; gap:6px;
  transition:all .12s;
}
.dop-btn-niewychodzi:hover:not(:disabled) {
  background:#f59e0b; color:var(--white); border-color:#f59e0b;
}
.dop-btn-niewychodzi:disabled {
  cursor:not-allowed;
}
.dop-btn-niewychodzi .ti { font-size:13px; }

/* ── LIVE QUEUE ── */
.dop-queue { flex:0 0 30%; min-width:0; }

.dop-queue-section { margin-bottom:16px; }
.dop-queue-title {
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  letter-spacing:1px; text-transform:uppercase; color:var(--gray-600);
  padding:6px 10px; background:var(--gray-100); border-radius:var(--r);
  margin-bottom:6px; display:flex; align-items:center; gap:6px;
}
.dop-queue-item {
  font-family:var(--font-cond); font-size:12px; color:var(--gray-800);
  padding:6px 10px; border-left:3px solid var(--gray-200);
  margin-bottom:3px; background:#fff; border-radius:0 var(--r) var(--r) 0;
  box-shadow:0 1px 2px rgba(0,0,0,.05); cursor:pointer;
  transition:background .12s;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.dop-queue-item:hover { background:var(--gray-100); }
.dop-queue-item.urgent { border-left-color:#dc2626; }
.dop-queue-item.overdue { border-left-color:#f59e0b; }
.dop-queue-item.ready   { border-left-color:#16a34a; }
.dop-queue-empty {
  font-family:var(--font-cond); font-size:11px; color:var(--gray-400);
  padding:6px 10px; font-style:italic;
}

/* ── DOP MODAL ── */
.dop-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.45);
  z-index:800; display:flex; align-items:center; justify-content:center;
  padding:16px;
}
.dop-modal {
  background:#fff; border-radius:4px; width:100%; max-width:520px;
  max-height:90dvh; display:flex; flex-direction:column;
  box-shadow:0 12px 40px rgba(0,0,0,.25);
  overflow:hidden;
}
.dop-modal-header {
  padding:14px 16px 12px;
  border-bottom:1px solid var(--gray-200);
  display:flex; flex-direction:column; gap:4px;
  flex-shrink:0;
}
.dop-modal-title-row {
  display:flex; align-items:center; gap:8px;
}
.dop-modal-car-name {
  font-family:var(--font-brand); font-size:17px; font-weight:700;
  color:var(--gray-900); flex:1; min-width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.dop-modal-close {
  background:none; border:none; font-size:18px; color:var(--gray-500);
  cursor:pointer; padding:2px 6px; border-radius:var(--r);
  line-height:1; flex-shrink:0;
}
.dop-modal-close:hover { background:var(--gray-100); color:var(--gray-900); }
.dop-modal-sub {
  font-family:var(--font-cond); font-size:11px; color:var(--gray-500);
  letter-spacing:.3px;
}

.dop-modal-body {
  overflow-y:auto; flex:1; padding:16px;
  display:flex; flex-direction:column; gap:16px;
}

.dop-field-group { display:flex; flex-direction:column; gap:8px; }
.dop-field-row {
  display:grid; grid-template-columns:120px 1fr;
  align-items:center; gap:8px;
}
.dop-field-lbl {
  font-family:var(--font-cond); font-size:11px; font-weight:600;
  color:var(--gray-500); letter-spacing:.5px; text-transform:uppercase;
}
.dop-field-val {
  font-family:var(--font-cond); font-size:12px; color:var(--gray-900);
}
.dop-field-val input[type="text"],
.dop-field-val input[type="time"],
.dop-field-val input[type="date"],
.dop-field-val select,
.dop-field-val textarea {
  width:100%; font-family:var(--font-cond); font-size:12px;
  border:1px solid var(--gray-300); border-radius:var(--r);
  padding:5px 8px; outline:none; color:var(--gray-900);
  transition:border-color .15s; background:#fff;
}
.dop-field-val input:focus,
.dop-field-val select:focus,
.dop-field-val textarea:focus { border-color:var(--gray-600); }
.dop-field-val textarea { resize:vertical; min-height:52px; }
.dop-field-val .dop-mycie-hint {
  font-size:10px; color:var(--gray-400); margin-top:2px;
}
.dop-section-title {
  font-family:var(--font-cond); font-size:10px; font-weight:700;
  letter-spacing:1px; text-transform:uppercase; color:var(--gray-400);
  border-bottom:1px solid var(--gray-200); padding-bottom:4px; margin-bottom:2px;
}

/* Checklist (buttony toggle) */
.dop-checklist { display:flex; flex-direction:column; gap:7px; }
.dop-check-btn {
  display:flex; align-items:center; gap:9px;
  padding:6px 10px;
  background:var(--white);
  border:1.5px solid var(--gray-200);
  border-radius:var(--r);
  cursor:pointer;
  transition:all .12s;
  font-family:var(--font-cond); font-size:12px;
  color:var(--gray-800);
  text-align:left;
  width:100%;
}
.dop-check-btn:hover {
  background:var(--gray-100);
  border-color:var(--gray-400);
}
.dop-check-btn .dop-check-icon {
  display:inline-flex;
  align-items:center; justify-content:center;
  width:18px; height:18px;
  border:1.5px solid var(--gray-300);
  border-radius:2px;
  background:var(--white);
  flex-shrink:0;
  transition:all .12s;
}
.dop-check-btn .dop-check-icon .ti {
  font-size:14px;
  color:transparent;
  transition:color .12s;
}
.dop-check-btn.active {
  border-color:#16a34a;
  background:#f0fdf4;
}
.dop-check-btn.active .dop-check-icon {
  background:#16a34a;
  border-color:#16a34a;
}
.dop-check-btn.active .dop-check-icon .ti {
  color:var(--white);
}
.dop-check-lbl { font-family:var(--font-cond); font-size:12px; color:var(--gray-800); }
.dop-check-btn.active .dop-check-lbl {
  color:var(--gray-400);
  text-decoration:line-through;
}

/* Status buttons */
.dop-status-btns { display:flex; flex-wrap:wrap; gap:6px; }
.dop-status-btn {
  font-family:var(--font-cond); font-size:10px; font-weight:700;
  letter-spacing:.4px; padding:5px 11px; border-radius:12px;
  border:1.5px solid transparent; cursor:pointer;
  transition:all .15s; background:var(--gray-100); color:var(--gray-600);
}
.dop-status-btn:hover { filter:brightness(.92); }
.dop-status-btn--active { color:#fff !important; }

/* Historia */
.dop-historia { display:flex; flex-direction:column; gap:0; }
.dop-historia-toggle {
  background:none; border:none; font-family:var(--font-cond); font-size:11px;
  color:var(--gray-500); cursor:pointer; text-align:left; padding:0;
  display:flex; align-items:center; gap:4px;
}
.dop-historia-toggle:hover { color:var(--gray-800); }
.dop-historia-list { margin-top:8px; display:flex; flex-direction:column; gap:4px; }
.dop-historia-row {
  display:grid; grid-template-columns:90px 100px 1fr;
  gap:6px; font-family:var(--font-cond); font-size:11px; color:var(--gray-600);
  padding:3px 0; border-bottom:1px solid var(--gray-100);
}
.dop-historia-row:last-child { border-bottom:none; }
.dop-historia-ts { color:var(--gray-400); }
.dop-historia-who { color:var(--gray-600); }
.dop-historia-status { font-weight:700; color:var(--gray-800); }

/* Modal footer */
.dop-modal-footer {
  padding:12px 16px; border-top:1px solid var(--gray-200);
  display:flex; justify-content:space-between; align-items:center;
  flex-shrink:0; background:#fafafa;
}
.dop-btn-save {
  font-family:var(--font-cond); font-size:12px; font-weight:700;
  letter-spacing:.5px; padding:8px 20px; border-radius:var(--r);
  border:none; background:var(--gray-900); color:#fff;
  cursor:pointer; transition:background .15s;
}
.dop-btn-save:hover { background:var(--black); }
.dop-btn-delete {
  font-family:var(--font-cond); font-size:11px;
  padding:7px 14px; border-radius:var(--r);
  border:1px solid #fca5a5; background:#fff; color:#dc2626;
  cursor:pointer; transition:background .15s;
}
.dop-btn-delete:hover { background:#fef2f2; }
.dop-field-error { border-color:#ef4444 !important; }
.dop-field-err-msg { font-family:var(--font-cond); font-size:10px; color:#ef4444; margin-top:2px; }

/* Problem section */
.dop-problem-box {
  background:#fef2f2; border:1.5px solid #fca5a5; border-radius:var(--r);
  padding:10px 12px; display:flex; flex-direction:column; gap:8px;
}
.dop-problem-box-title {
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  color:#dc2626; letter-spacing:.5px; text-transform:uppercase;
}
.dop-problem-meta {
  font-family:var(--font-cond); font-size:11px; color:#991b1b;
}
.dop-problem-desc {
  font-family:var(--font-cond); font-size:12px; color:#7f1d1d;
  font-style:italic; background:#fff; border-radius:2px;
  padding:6px 8px; border:1px solid #fca5a5;
}
.dop-problem-box textarea {
  font-family:var(--font-cond); font-size:12px; width:100%;
  border:1px solid #fca5a5; border-radius:var(--r);
  padding:6px 8px; outline:none; resize:vertical; min-height:56px;
  background:#fff; color:var(--gray-900);
}
.dop-problem-box textarea:focus { border-color:#dc2626; }
.dop-card-problem-text {
  font-family:var(--font-cond); font-size:11px; color:#dc2626;
  font-style:italic; word-break:break-word;
  display:block; white-space:normal;
  overflow:hidden; text-overflow:unset;
}
.dop-card-problem-text.expanded {
  display:block; overflow:visible;
}
.dop-card-problem-toggle {
  font-family:var(--font-cond); font-size:9px; font-weight:700;
  letter-spacing:1px; color:#dc2626;
  background:none; border:none; cursor:pointer;
  padding:0; text-align:left; align-self:flex-start;
  text-decoration:none;
}
.dop-card-problem-toggle:hover { color:#991b1b; }
.dop-card-right-problem-label {
  font-family:var(--font-cond);
  font-size:9px; font-weight:700;
  letter-spacing:1.5px; text-transform:uppercase;
  color:#dc2626; margin-bottom:4px;
}
.dop-card-right-section {
  display:flex; flex-direction:column; gap:4px;
}
.dop-card-right-separator {
  height:1px;
  background:var(--gray-200);
  margin:6px 0;
}

/* Marka toggle */
.dop-marka-wrap { display:flex; gap:8px; }
.dop-marka-btn {
  font-family:var(--font-brand); font-size:11px; font-weight:700;
  letter-spacing:2px; padding:6px 18px; border-radius:var(--r);
  border:1.5px solid var(--gray-300); background:#fff; color:var(--gray-500);
  cursor:pointer; transition:all .15s;
}
.dop-marka-btn.active { background:var(--gray-900); color:#fff; border-color:var(--gray-900); }
.dop-marka-btn:hover:not(.active) { border-color:var(--gray-500); color:var(--gray-800); }

/* Model autocomplete */
.dop-ac-wrap { position:relative; }
.dop-ac-input {
  width:100%; font-family:var(--font-cond); font-size:12px;
  border:1px solid var(--gray-300); border-radius:var(--r);
  padding:5px 8px; outline:none; color:var(--gray-900);
  transition:border-color .15s; background:#fff;
}
.dop-ac-input:focus { border-color:var(--gray-600); }
.dop-ac-dropdown {
  display:none; position:absolute; top:100%; left:0; right:0;
  background:#fff; border:1px solid var(--gray-300); border-top:none;
  border-radius:0 0 var(--r) var(--r);
  box-shadow:0 4px 12px rgba(0,0,0,.1);
  max-height:180px; overflow-y:auto; z-index:50;
}
.dop-ac-item {
  font-family:var(--font-cond); font-size:12px; color:var(--gray-800);
  padding:6px 10px; cursor:pointer; transition:background .1s;
}
.dop-ac-item:hover, .dop-ac-item.focused { background:var(--gray-100); }

/* ══════════════════════════════════════
   ANALITYKA DOPOSĄŻENIA — Etap 7
   ══════════════════════════════════════ */

/* Przyciski przełączania widoku */
.dop-view-btns {
  display:flex; gap:3px; align-items:center;
}
.dop-view-btn {
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  letter-spacing:.03em; padding:4px 11px;
  border-radius:var(--r); border:1px solid var(--gray-300);
  background:#fff; color:var(--gray-600);
  cursor:pointer; transition:all .15s; white-space:nowrap;
}
.dop-view-btn:hover { background:var(--gray-100); color:var(--gray-900); }
.dop-view-btn.active {
  background:#1e293b; color:#fff; border-color:#1e293b;
}

/* Wrapper statystyk */
.dop-stats-wrap {
  padding:14px 16px;
  overflow-y:auto;
}

/* Filtr zakresu dat */
.dop-stats-filter {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  background:#fff; border:1px solid var(--gray-200);
  border-radius:var(--r); padding:9px 14px; margin-bottom:14px;
}
.dop-stats-divider {
  width:1px; height:22px; background:var(--gray-200); flex-shrink:0; margin:0 4px;
}
.dop-btn--import {
  display:inline-flex; align-items:center; gap:0;
}
.dop-stats-lbl {
  font-family:var(--font-cond); font-size:12px;
  color:var(--gray-500); white-space:nowrap;
}

/* Rząd KPI */
.dop-stats-kpi-row {
  display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px;
}
.dop-stat-kpi {
  flex:1 1 140px; min-width:120px;
  background:#fff; border:1px solid var(--gray-200);
  border-radius:var(--r); padding:12px 14px; text-align:center;
}
.dop-stat-kpi-val {
  font-family:var(--font-cond); font-size:22px; font-weight:700;
  color:var(--gray-900); line-height:1.15;
}
.dop-stat-kpi-val.green { color:#16a34a; }
.dop-stat-kpi-val.amber { color:#d97706; }
.dop-stat-kpi-val.red   { color:#dc2626; }
.dop-stat-kpi-unit {
  font-family:var(--font-cond); font-size:11px;
  color:var(--gray-400); min-height:15px;
}
.dop-stat-kpi-lbl {
  font-family:var(--font-cond); font-size:11px;
  color:var(--gray-500); margin-top:3px;
}

/* Siatka wykresów */
.dop-stats-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
@media (max-width:960px) {
  .dop-stats-grid { grid-template-columns:1fr; }
}

/* Karta wykresu */
.dop-stats-card {
  background:#fff; border:1px solid var(--gray-200);
  border-radius:var(--r); padding:14px 16px;
}
.dop-stats-card-title {
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em;
  color:var(--gray-600); margin-bottom:10px;
  padding-bottom:8px; border-bottom:1px solid var(--gray-100);
}
.dop-stats-chart { }
.dop-stats-chart--scroll { max-height:300px; overflow-y:auto; }
.dop-stats-empty {
  font-family:var(--font-cond); font-size:12px;
  color:var(--gray-400); padding:18px 0; text-align:center;
}

/* Paskowy wykres poziomy */
.dop-bar-row {
  display:flex; align-items:center; gap:8px; padding:3px 0;
}
.dop-bar-lbl {
  font-family:var(--font-cond); font-size:11px; color:var(--gray-700);
  width:110px; min-width:110px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  text-align:right;
}
.dop-bar-track {
  flex:1; height:13px; background:var(--gray-100);
  border-radius:2px; overflow:hidden;
}
.dop-bar-fill {
  height:100%; border-radius:2px;
  transition:width .35s ease;
}
.dop-bar-cnt {
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  color:var(--gray-700); min-width:24px; text-align:right;
}

/* ══════════════════════════════════════
   ETAP 8 — CSS POLISH
   ══════════════════════════════════════ */

/* ── Topbar — głębszy cień, separatory sekcji ── */
.dop-topbar {
  box-shadow: 0 2px 10px rgba(0,0,0,.07);
  border-bottom: none;
}
.dop-topbar-mid {
  border-left:  1px solid var(--gray-200);
  border-right: 1px solid var(--gray-200);
  padding: 0 20px;
}

/* Nav-date jako pigułka tła */
.dop-nav-date {
  background: var(--gray-100);
  padding: 3px 12px;
  border-radius: 20px;
}

/* ── Karty — uniesienie przy hover ── */
.dop-card {
  transition: box-shadow .18s ease, transform .18s ease, border-color .15s;
  will-change: transform;
}
.dop-card:hover {
  box-shadow: 0 8px 22px rgba(0,0,0,.13);
  transform: translateY(-2px);
}

/* Trójstopniowa eskalacja alertów */
.dop-card--urgent   { background: #fefce8; }
.dop-card--critical { background: #fff8f8; }
.dop-card--overdue  { background: #fff1f1; }

@keyframes dop-card-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(220,38,38,0.45); }
  50%       { box-shadow: 0 0 0 5px rgba(220,38,38,0); }
}

.dop-card--vip    { background: #fffdf0; }
.dop-card--gotowe { opacity: 0.62; }

/* Status badge — uppercase dla czytelności */
.dop-status-badge {
  text-transform: uppercase;
  letter-spacing: .6px;
}

/* Wydanie — inline chip */
.dop-card-wydanie {
  font-family: var(--font-cond);
  font-size: 10px;
  color: var(--gray-500);
  letter-spacing: .3px;
  margin-top: 4px;
}

/* ── Bieżąca godzina — slot --now ── */
.dop-slot--now .dop-slot-time {
  color: var(--red);
  font-weight: 700;
}
.dop-slot--now .dop-slot-line {
  background: var(--red);
  opacity: .3;
  height: 2px;
}
.dop-slot-now-dot {
  display: inline-block;
  width:  7px;
  height: 7px;
  background: var(--red);
  border-radius: 50%;
  margin-left: 5px;
  vertical-align: middle;
  animation: dop-pulse 1.6s ease-in-out infinite;
}
@keyframes dop-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .5; transform: scale(.7); }
}

/* ── Modal — animacja wejścia ── */
@keyframes dop-slide-up {
  from { opacity: 0; transform: translateY(20px) scale(.98); }
  to   { opacity: 1; transform: translateY(0)   scale(1); }
}
@keyframes dop-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.dop-overlay { animation: dop-fade-in .14s ease; }
.dop-modal   { animation: dop-slide-up .18s ease; }

/* Scrollbar modalny — subtelny */
.dop-modal-body::-webkit-scrollbar { width: 4px; }
.dop-modal-body::-webkit-scrollbar-track { background: transparent; }
.dop-modal-body::-webkit-scrollbar-thumb { background: var(--gray-300); border-radius: 2px; }

/* ── Status buttons — uppercase ── */
.dop-status-btn { text-transform: uppercase; letter-spacing: .5px; }

/* ── View-toggle — segmented control ── */
.dop-view-btns {
  border: 1px solid var(--gray-300);
  border-radius: var(--r);
  overflow: hidden;
  gap: 0;
  background: var(--gray-100);
}
.dop-view-btn {
  border: none;
  border-radius: 0;
  border-right: 1px solid var(--gray-300);
  background: transparent;
  font-size: 11px;
  padding: 5px 13px;
}
.dop-view-btn:last-child { border-right: none; }
.dop-view-btn:hover:not(.active) { background: var(--gray-200); }
.dop-view-btn.active {
  background: var(--gray-900);
  color: #fff;
}

/* ── Stats — card/KPI shadows ── */
.dop-stats-card {
  box-shadow: var(--shadow-sm);
  border-color: transparent;
}
.dop-stat-kpi {
  box-shadow: var(--shadow-sm);
  border-color: transparent;
  transition: box-shadow .15s, transform .15s;
}
.dop-stat-kpi:hover {
  box-shadow: 0 3px 10px rgba(0,0,0,.1);
  transform: translateY(-1px);
}

/* Pasek fill — gradientowy połysk */
.dop-bar-fill {
  background-image: linear-gradient(90deg, transparent, rgba(255,255,255,.18));
}

/* Scrollbar w stats daily */
.dop-stats-chart--scroll::-webkit-scrollbar { width: 3px; }
.dop-stats-chart--scroll::-webkit-scrollbar-thumb { background: var(--gray-300); border-radius: 2px; }

/* ── Responsive — wąskie ekrany ── */
@media (max-width: 1100px) {
  .dop-body { flex-direction: column; }
  .dop-timeline, .dop-queue { flex: none; width: 100%; }
}
@media (max-width: 760px) {
  .dop-topbar { flex-wrap: wrap; gap: 8px; }
  .dop-topbar-mid { border: none; padding: 0; }
  .dop-stats-grid { grid-template-columns: 1fr; }
  .dop-card { width: 180px; }
}

/* ══════════════════════════════════════
   KOMIS
══════════════════════════════════════ */

#tab-komis { background:#f8fafc; min-height:calc(100dvh - var(--ch)); }

/* ── Topbar ── */
.km-topbar {
  position:sticky; top:var(--ch); z-index:200;
  background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.07);
  padding:8px 20px; display:flex; align-items:center;
  gap:12px; flex-wrap:nowrap;
}
.km-topbar-sep  { width:1px; height:20px; background:var(--gray-200); flex-shrink:0; }
.km-nav { display:flex; align-items:center; gap:6px; }
.km-nav-btn {
  background:var(--gray-100); border:1px solid var(--gray-200);
  color:var(--gray-700); font-family:var(--font-cond); font-size:12px;
  font-weight:600; padding:4px 10px; border-radius:var(--r);
  cursor:pointer; transition:background .15s; line-height:1.4;
}
.km-nav-btn:hover { background:var(--gray-200); }
.km-nav-btn.today { color:var(--red); border-color:var(--red); }
.km-nav-date {
  font-family:var(--font-cond); font-size:14px; font-weight:700;
  color:var(--gray-900); letter-spacing:.5px; min-width:130px; text-align:center;
  background:var(--gray-100); padding:3px 12px; border-radius:20px;
}

.km-topbar-left-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.km-topbar-spacer { flex:1; }
.km-btn {
  font-family:var(--font-cond); font-size:12px; font-weight:600;
  letter-spacing:.5px; padding:7px 14px; border-radius:var(--r);
  border:1px solid var(--gray-300); background:#fff; color:var(--gray-800);
  cursor:pointer; transition:background .15s,border-color .15s; white-space:nowrap;
}
.km-btn:hover { background:var(--gray-100); border-color:var(--gray-400); }
.km-btn.primary { background:var(--red); color:#fff; border-color:var(--red); }
.km-btn.primary:hover { background:var(--red-dark); border-color:var(--red-dark); }

.km-view-btns { display:flex; gap:6px; }
.km-view-btn {
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  letter-spacing:.03em; padding:5px 13px;
  border:1px solid var(--gray-300); border-radius:var(--r);
  background:var(--gray-100); color:var(--gray-600);
  cursor:pointer; transition:all .15s; white-space:nowrap;
}
.km-view-btn:hover:not(.active) { background:var(--gray-200); color:var(--gray-900); }
.km-view-btn.active { background:var(--gray-900); color:#fff; border-color:var(--gray-900); }
.km-stats-toggle {
  opacity: .55;
  font-weight: 400;
  border-color: transparent;
  background: transparent;
  margin-left: 6px;
}
.km-stats-toggle:hover:not(.active) { opacity: .85; background:var(--gray-100); border-color:var(--gray-200); }
.km-stats-toggle.active { opacity: 1; background:var(--gray-900); color:#fff; border-color:var(--gray-900); font-weight:700; }

.km-search-wrap { position:relative; flex:1; max-width:220px; }
.km-search {
  width:100%;
  font-family:var(--font-cond); font-size:12px; padding:7px 30px 7px 30px;
  border:1.5px solid var(--gray-300); border-radius:var(--r);
  outline:none; transition:border-color .18s, box-shadow .18s; background:#fff;
  color:var(--gray-900);
}
.km-search:focus {
  border-color:var(--red);
  box-shadow:0 0 0 3px rgba(235,10,30,.09);
}
.km-search-icon {
  position:absolute; left:9px; top:50%; transform:translateY(-50%);
  color:var(--gray-400); font-size:13px; pointer-events:none; line-height:1;
}
.km-search-clear {
  position:absolute; right:7px; top:50%; transform:translateY(-50%);
  background:none; border:none; cursor:pointer;
  color:var(--gray-400); font-size:14px; line-height:1; padding:2px;
  display:none; transition:color .15s;
}
.km-search-clear:hover { color:var(--gray-700); }
.km-search-clear.visible { display:block; }

/* ── Combobox model ── */
.km-csd-wrap { position:relative; width:100%; }
.km-csd-input {
  width:100%; font-family:var(--font-cond); font-size:12px;
  border:1px solid var(--gray-300); border-radius:var(--r);
  padding:5px 8px; outline:none; color:var(--gray-900);
  background:#fff; transition:border-color .15s; box-sizing:border-box;
}
.km-csd-input:focus { border-color:var(--gray-600); }
.km-csd-input.km-field-error { border-color:var(--red); }
.km-csd-dd {
  display:none; position:absolute; top:100%; left:0; right:0;
  background:#fff; border:1px solid var(--gray-300);
  border-top:none; border-radius:0 0 var(--r) var(--r);
  max-height:180px; overflow-y:auto; z-index:2000;
  box-shadow:0 4px 12px rgba(0,0,0,.1);
}
.km-csd-dd.open { display:block; }
.km-csd-item {
  padding:6px 8px; font-family:var(--font-cond); font-size:12px;
  color:var(--gray-800); cursor:pointer; transition:background .1s;
}
.km-csd-item:hover, .km-csd-item.focused { background:var(--gray-100); }
.km-csd-empty {
  padding:8px; font-family:var(--font-cond); font-size:11px;
  color:var(--gray-400); font-style:italic;
}

/* ── Pills usługi (formularz Okazania) ── */
.km-o-pills { display:flex; flex-wrap:wrap; gap:6px; }
.km-o-pill {
  font-family:var(--font-cond); font-size:10px; font-weight:700;
  letter-spacing:.5px; text-transform:uppercase;
  padding:4px 10px; border-radius:12px;
  border:1.5px solid var(--gray-300);
  background:var(--gray-100); color:var(--gray-600);
  cursor:pointer; transition:all .15s;
}
.km-o-pill:hover { background:var(--gray-200); border-color:var(--gray-400); }
.km-o-pill.active { background:var(--gray-900); color:#fff; border-color:var(--gray-900); }

/* ── Body layout (70% timeline + 30% queue) ── */
.km-body { display:flex; gap:16px; padding:16px 20px; align-items:flex-start; }

/* ── Timeline ── */
.km-timeline { flex:0 0 70%; min-width:0; }
.km-slot { margin-bottom:4px; }
.km-slot-header { display:flex; align-items:center; gap:10px; padding:4px 0; }
.km-slot-time {
  font-family:var(--font-brand); font-size:11px; font-weight:700;
  color:var(--gray-400); letter-spacing:1px; min-width:42px;
  display:flex; align-items:center; gap:5px;
}
.km-slot-line { flex:1; height:1px; background:var(--gray-200); }
.km-slot-cards { display:flex; flex-wrap:wrap; gap:10px; padding:6px 0 6px 52px; }
.km-slot-empty { min-height:4px; }

/* now slot */
.km-slot--now .km-slot-time { color:var(--red); font-weight:700; }
.km-slot--now .km-slot-line { background:var(--red); opacity:.3; height:2px; }
.km-slot-now-dot {
  display:inline-block; width:7px; height:7px; background:var(--red);
  border-radius:50%; vertical-align:middle;
  animation:km-pulse 1.6s ease-in-out infinite;
}
@keyframes km-pulse {
  0%,100% { opacity:1; transform:scale(1); }
  50%      { opacity:.5; transform:scale(.7); }
}

/* ── Karta ── */
.km-card {
  background:#fff; border-radius:var(--r);
  box-shadow:0 1px 3px rgba(0,0,0,.08);
  border:1.5px solid transparent; width:300px;
  display:flex; overflow:hidden; cursor:pointer;
  transition:box-shadow .18s ease, transform .18s ease, border-color .15s;
  will-change:transform;
}
.km-card--split { width:auto; min-width:300px; max-width:500px; }
.km-card:hover { box-shadow:0 3px 10px rgba(0,0,0,.13); }
.km-card--urgent {
  border-color: #f59e0b !important;
}
.km-card--critical {
  border-color: #dc2626 !important;
  animation: km-card-pulse 1.4s ease-in-out infinite;
}
.km-card--overdue {
  border-color: #dc2626 !important;
}
@keyframes km-card-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(220,38,38,0.5); }
  50%       { box-shadow: 0 0 0 6px rgba(220,38,38,0); }
}
.km-card--ready  { border-color:#16a34a !important; }
.km-card--gotowy { opacity:0.62; }

.km-card-bar  { width:4px; flex-shrink:0; }
.km-card-body { padding:12px 14px; flex:1; min-width:0; }
.km-card-body--split { display:flex; padding:0; }
.km-card-left { flex:1; min-width:0; padding:12px 14px; }
.km-card-right {
  width:150px; flex-shrink:0;
  border-left:1px solid var(--gray-200);
  padding:10px 10px;
  display:flex; flex-direction:column; gap:4px;
}

.km-card-title {
  font-family:var(--font-cond); font-size:16px; font-weight:700;
  color:var(--gray-900); white-space:nowrap; overflow:hidden;
  text-overflow:ellipsis; margin-bottom:2px;
}
.km-card-vin {
  font-family:var(--font-cond); font-size:11px; color:var(--black);
  font-weight:400; letter-spacing:.3px; margin-bottom:4px; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
}
.km-card-nrklucza {
  font-family:var(--font-cond); font-size:11px; color:var(--black);
  font-weight:400; letter-spacing:.3px; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; margin-bottom:6px;
}
.km-card-nrklucza--missing { color:#dc2626; font-weight:700; }
.km-card-sub {
  font-family:var(--font-cond); font-size:11px; color:var(--gray-600);
  letter-spacing:.3px; margin-bottom:6px; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
}
.km-card-klucz {
  font-family:var(--font-cond); font-size:11px; color:var(--black);
  font-weight:400; letter-spacing:.3px; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; margin-bottom:6px;
}
.km-card-klucz--brak { color:#dc2626; font-weight:700; }
.km-card-klucz i { font-size:12px; vertical-align:-1px; }
.km-card-dzial {
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  letter-spacing:.5px; text-transform:uppercase;
  color:var(--gray-700); margin-bottom:5px;
}
.km-card-divider { height:1px; background:var(--gray-100); margin:5px 0; }
.km-card-status {
  font-family:var(--font-cond); font-size:10px; font-weight:700;
  letter-spacing:.5px; text-transform:uppercase; margin-bottom:5px;
}
.km-card-footer { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.km-status-badge {
  font-family:var(--font-cond); font-size:10px; font-weight:700;
  letter-spacing:.6px; text-transform:uppercase; padding:2px 6px;
  border-radius:10px; color:#fff; white-space:nowrap;
}
.km-card-worker {
  font-family:var(--font-cond); font-size:11px; color:var(--gray-600);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1;
}
.km-card-countdown {
  font-family:var(--font-cond); color:var(--gray-600);
  display:inline-block; background:var(--gray-100); border-radius:2px;
  padding:1px 5px; margin-top:3px; font-size:9.5px; white-space:nowrap;
}
.km-card-countdown.urgent  { color:#f59e0b; background:rgba(245,158,11,.12); }
.km-card-countdown.overdue { color:#dc2626; background:rgba(220,38,38,.10); font-weight:700; }

/* Prawa kolumna — sekcje i separatory */
.km-card-right-section { display:flex; flex-direction:column; gap:4px; }
.km-card-right-sep { height:1px; background:var(--gray-200); margin:4px 0; }
.km-card-right-countdown {
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  color:var(--gray-600); letter-spacing:.3px;
}
.km-card-right-countdown.urgent  { color:#f59e0b; }
.km-card-right-countdown.overdue { color:#dc2626; }
.km-card-right-problem-label {
  font-family:var(--font-cond); font-size:9px; font-weight:700;
  letter-spacing:1.5px; text-transform:uppercase;
  color:#dc2626; margin-bottom:2px;
}

/* ── Queue sidebar (kopia dop-queue) ── */
.km-queue { flex:0 0 30%; min-width:0; }
.km-queue-section { margin-bottom:16px; }
.km-queue-title {
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  letter-spacing:1px; text-transform:uppercase; color:var(--gray-600);
  padding:6px 10px; background:var(--gray-100); border-radius:var(--r);
  margin-bottom:6px;
}
.km-queue-item {
  font-family:var(--font-cond); font-size:12px; color:var(--gray-800);
  padding:6px 10px; border-left:3px solid var(--gray-200);
  margin-bottom:3px; background:#fff; border-radius:0 var(--r) var(--r) 0;
  box-shadow:0 1px 2px rgba(0,0,0,.05); cursor:pointer; transition:background .12s;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.km-queue-item:hover { background:var(--gray-100); }
.km-queue-item.urgent  { border-left-color:#dc2626; }
.km-queue-item.overdue { border-left-color:#f59e0b; }
.km-queue-item.ready   { border-left-color:#16a34a; }
.km-queue-empty {
  font-family:var(--font-cond); font-size:11px; color:var(--gray-400);
  padding:6px 10px; font-style:italic;
}

/* ── Modal (kopia dop-modal) ── */
.km-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.45);
  z-index:800; display:flex; align-items:center; justify-content:center;
  padding:16px; animation:km-fade-in .14s ease;
}
.km-modal {
  background:#fff; border-radius:4px; width:100%; max-width:520px;
  max-height:90dvh; display:flex; flex-direction:column;
  box-shadow:0 12px 40px rgba(0,0,0,.25); overflow:hidden;
  animation:km-slide-up .18s ease;
}
@keyframes km-fade-in  { from{opacity:0} to{opacity:1} }
@keyframes km-slide-up { from{opacity:0;transform:translateY(20px) scale(.98)} to{opacity:1;transform:none} }
.km-modal--narrow { max-width:400px; }

.km-modal-header {
  padding:14px 16px 12px; border-bottom:1px solid var(--gray-200);
  display:flex; flex-direction:column; gap:4px; flex-shrink:0;
}
.km-modal-title-row { display:flex; align-items:center; gap:8px; }
.km-modal-car-name {
  font-family:var(--font-brand); font-size:17px; font-weight:700;
  color:var(--gray-900); flex:1; min-width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.km-modal-close {
  background:none; border:none; font-size:18px; color:var(--gray-600);
  cursor:pointer; padding:2px 6px; border-radius:var(--r); line-height:1; flex-shrink:0;
}
.km-modal-close:hover { background:var(--gray-100); color:var(--gray-900); }
.km-modal-sub { font-family:var(--font-cond); font-size:12px; color:var(--gray-600); letter-spacing:.3px; }
.km-modal-body {
  overflow-y:auto; flex:1; padding:16px; display:flex; flex-direction:column; gap:16px;
}
.km-modal-body::-webkit-scrollbar { width:4px; }
.km-modal-body::-webkit-scrollbar-track { background:transparent; }
.km-modal-body::-webkit-scrollbar-thumb { background:var(--gray-300); border-radius:2px; }
.km-modal-footer {
  padding:12px 16px; border-top:1px solid var(--gray-200);
  display:flex; justify-content:space-between; align-items:center;
  flex-shrink:0; background:#fafafa;
}

/* ── Fields (kopia dop-field) ── */
.km-field-group { display:flex; flex-direction:column; gap:8px; }
.km-field-row { display:grid; grid-template-columns:120px 1fr; align-items:center; gap:8px; }
.km-field-lbl {
  font-family:var(--font-cond); font-size:11px; font-weight:600;
  color:var(--gray-600); letter-spacing:.5px; text-transform:uppercase;
}
.km-field-val { font-family:var(--font-cond); font-size:14px; color:var(--gray-900); }
.km-field-val input[type="text"],
.km-field-val input[type="time"],
.km-field-val input[type="date"],
.km-field-val select,
.km-field-val textarea {
  width:100%; font-family:var(--font-cond); font-size:12px;
  border:1px solid var(--gray-300); border-radius:var(--r);
  padding:5px 8px; outline:none; color:var(--gray-900);
  transition:border-color .15s; background:#fff;
}
.km-field-val input:focus,
.km-field-val select:focus,
.km-field-val textarea:focus { border-color:var(--gray-600); }
.km-field-val textarea { resize:vertical; min-height:52px; }
.km-readonly { opacity:.6; cursor:not-allowed; }
.km-field-error { border-color:#ef4444 !important; }
.km-field-err-msg { font-family:var(--font-cond); font-size:10px; color:#ef4444; margin-top:2px; }

/* ── Section title (kopia dop-section-title) ── */
.km-section-title {
  font-family:var(--font-cond); font-size:10px; font-weight:700;
  letter-spacing:1px; text-transform:uppercase; color:var(--gray-400);
  border-bottom:1px solid var(--gray-200); padding-bottom:4px; margin-bottom:2px;
}

/* ── Buttons ── */
.km-btn-save {
  font-family:var(--font-cond); font-size:12px; font-weight:700;
  letter-spacing:.5px; padding:8px 20px; border-radius:var(--r);
  border:none; background:var(--gray-900); color:#fff;
  cursor:pointer; transition:background .15s;
}
.km-btn-save:hover { background:var(--black); }
.km-btn-delete {
  font-family:var(--font-cond); font-size:11px; padding:7px 14px;
  border-radius:var(--r); border:1px solid #fca5a5; background:#fff; color:#dc2626;
  cursor:pointer; transition:background .15s;
}
.km-btn-delete:hover { background:#fef2f2; }

/* ── Status buttons (kopia dop-status-btns) ── */
.km-status-btns { display:flex; flex-wrap:wrap; gap:6px; }
.km-status-btn {
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  letter-spacing:.5px; text-transform:uppercase; padding:7px 14px;
  border-radius:var(--r); border:1.5px solid transparent;
  cursor:pointer; transition:all .15s; background:var(--gray-100); color:var(--gray-700);
}
.km-status-btn:hover { filter:brightness(.92); }
.km-status-btn--active { color:#fff !important; }

/* ── Checklist (buttony toggle — kopia dop-check-btn) ── */
.km-checklist { display:flex; flex-direction:column; gap:7px; }
.km-check-btn {
  display:flex; align-items:center; gap:9px;
  padding:6px 10px;
  background:var(--white);
  border:1.5px solid var(--gray-200);
  border-radius:var(--r);
  cursor:pointer;
  transition:all .12s;
  font-family:var(--font-cond); font-size:12px;
  color:var(--gray-800);
  text-align:left;
  width:100%;
}
.km-check-btn:hover {
  background:var(--gray-100);
  border-color:var(--gray-400);
}
.km-check-btn:disabled { cursor:default; }
.km-check-btn:disabled:hover {
  background:var(--white);
  border-color:var(--gray-200);
}
.km-check-btn .km-check-icon {
  display:inline-flex;
  align-items:center; justify-content:center;
  width:18px; height:18px;
  border:1.5px solid var(--gray-300);
  border-radius:2px;
  background:var(--white);
  flex-shrink:0;
  transition:all .12s;
}
.km-check-btn .km-check-icon .ti {
  font-size:14px;
  color:transparent;
  transition:color .12s;
}
.km-check-btn.active {
  border-color:#16a34a;
  background:#f0fdf4;
}
.km-check-btn.active .km-check-icon {
  background:#16a34a;
  border-color:#16a34a;
}
.km-check-btn.active .km-check-icon .ti {
  color:var(--white);
}
.km-check-lbl { font-family:var(--font-cond); font-size:12px; color:var(--gray-800); }
.km-check-btn.active .km-check-lbl {
  color:var(--gray-400);
  text-decoration:line-through;
}

/* ── Pill button (klucz przekazany) ── */
.km-pill-btn {
  display:inline-flex; align-items:center; gap:7px;
  padding:8px 16px;
  background:var(--white);
  border:1.5px solid var(--gray-300);
  border-radius:var(--r);
  cursor:pointer;
  transition:all .12s;
  font-family:var(--font-cond); font-size:12px; font-weight:600;
  letter-spacing:0.3px;
  color:var(--gray-700);
}
.km-pill-btn .ti { font-size:14px; }
.km-pill-btn:hover {
  background:var(--gray-100);
  border-color:var(--gray-600);
}
.km-pill-btn.active {
  background:var(--red);
  border-color:var(--red);
  color:var(--white);
}
.km-pill-btn.active:hover {
  background:#c00818;
  border-color:#c00818;
}
.km-pill-btn:focus-visible {
  outline:2px solid var(--red);
  outline-offset:2px;
}

/* ── Klucz status row na kafelce komis ── */
.km-card-klucz-status {
  font-family:var(--font-cond); font-size:10px;
  letter-spacing:0.3px;
  display:inline-flex; align-items:center; gap:4px;
  margin-top:4px; margin-bottom:4px;
}
.km-card-klucz-status .ti { font-size:11px; }
.km-card-klucz-status.is-tak { color:#16a34a; }
.km-card-klucz-status.is-nie { color:var(--gray-600); }

.km-ck-hint {
  font-family:var(--font-cond); font-size:10px; color:#dc2626;
  margin-top:6px; text-align:center;
}
.km-cl-shake { animation:km-shake .5s ease; }
@keyframes km-shake {
  0%,100% { transform:translateX(0); }
  20%      { transform:translateX(-5px); }
  40%      { transform:translateX(5px); }
  60%      { transform:translateX(-4px); }
  80%      { transform:translateX(4px); }
}

/* ── Historia (kopia dop-historia) ── */
.km-historia { display:flex; flex-direction:column; }
.km-historia-list { margin-top:4px; display:flex; flex-direction:column; gap:4px; }
.km-historia-row {
  display:grid; grid-template-columns:90px 100px 1fr; gap:6px;
  font-family:var(--font-cond); font-size:14px; color:var(--gray-600);
  padding:3px 0; border-bottom:1px solid var(--gray-100);
}
.km-historia-row:last-child { border-bottom:none; }
.km-historia-ts     { color:var(--gray-400); }
.km-historia-who    { color:var(--gray-600); }
.km-historia-status { font-weight:700; color:var(--gray-800); }

/* ── Uwagi (prawa kolumna) ── */
.km-card-comment-text {
  font-family:var(--font-cond); font-size:11px; font-style:italic;
  color:var(--gray-700); line-height:1.45;
  word-break:break-word;
  display:block; white-space:normal; overflow:hidden;
  text-overflow:unset;
}
.km-card-comment-text.expanded {
  display:block; overflow:visible;
}
.km-card-comment-toggle {
  font-family:var(--font-cond); font-size:9px; font-weight:700;
  letter-spacing:1px; color:var(--gray-400);
  background:none; border:none; cursor:pointer;
  padding:0; text-align:left; align-self:flex-start;
  text-decoration:none;
}
.km-card-comment-toggle:hover { color:var(--gray-700); }
.km-card-comment { display:none; }

/* ── Problem (prawa kolumna) ── */
.km-card-problem-text {
  font-family:var(--font-cond); font-size:11px; color:#dc2626;
  font-style:italic; word-break:break-word;
  display:block; white-space:normal;
  overflow:hidden; text-overflow:unset;
}
.km-card-problem-text.expanded {
  display:block; overflow:visible;
}
.km-card-problem-toggle {
  font-family:var(--font-cond); font-size:9px; font-weight:700;
  letter-spacing:1px; color:#dc2626;
  background:none; border:none; cursor:pointer;
  padding:0; text-align:left; align-self:flex-start;
  text-decoration:none;
}
.km-card-problem-toggle:hover { color:#991b1b; }

/* ── Problem box (kopia dop-problem-box) ── */
.km-problem-box {
  background:#fef2f2; border:1.5px solid #fca5a5; border-radius:var(--r);
  padding:10px 12px; display:flex; flex-direction:column; gap:8px;
}
.km-problem-box-title {
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  color:#dc2626; letter-spacing:.3px; margin-bottom:6px;
}
.km-problem-box textarea {
  width:100%; font-family:var(--font-main); font-size:12px;
  border:1px solid #fca5a5; border-radius:var(--r);
  padding:6px 8px; resize:vertical; min-height:60px;
  background:#fff; outline:none; box-sizing:border-box;
}
.km-problem-box textarea:focus { border-color:#dc2626; }
.km-problem-meta {
  font-family:var(--font-cond); font-size:10px;
  color:var(--gray-600); margin-bottom:4px;
}
.km-problem-desc {
  font-family:var(--font-main); font-size:12px;
  color:var(--gray-700); font-style:italic;
}

/* ── Responsive ── */
@media (max-width:1100px) {
  .km-body { flex-direction:column; }
  .km-timeline, .km-queue { flex:none; width:100%; }
}
@media (max-width:760px) {
  .km-topbar { flex-wrap:wrap; gap:8px; }
  .km-topbar-sep { display:none; }
  .km-card { width:220px; }
  .km-slot-cards { padding-left:16px; }
  .km-historia-row { grid-template-columns:70px 80px 1fr; }
}

/* ── Statystyki Komis ── */
.km-stats-wrap    { padding: 16px; }
.km-stats-filter  { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.km-stats-lbl     { font-family: var(--font-cond); font-size: 11px; font-weight: 700; letter-spacing: 1px; color: var(--gray-600); }
.km-stats-kpi-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.km-stat-kpi      { background: var(--white); border: 0.5px solid var(--gray-200); border-radius: 6px; padding: 10px 14px; min-width: 110px; }
.km-stat-kpi-val  { font-family: var(--font-brand); font-size: 22px; font-weight: 700; color: var(--black); }
.km-stat-kpi-unit { font-family: var(--font-cond); font-size: 11px; color: var(--gray-400); }
.km-stat-kpi-lbl  { font-family: var(--font-cond); font-size: 11px; color: var(--gray-600); letter-spacing: .5px; margin-top: 2px; }
.km-stats-grid    { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap: 12px; }
.km-stats-card    { background: var(--white); border: 0.5px solid var(--gray-200); border-radius: 8px; padding: 12px 14px; }
.km-stats-card-title { font-family: var(--font-cond); font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--gray-600); margin-bottom: 10px; }
.km-stats-chart   { display: flex; flex-direction: column; gap: 5px; }
.km-stats-chart--scroll { max-height: 220px; overflow-y: auto; }
.km-stats-empty   { font-size: 12px; color: var(--gray-400); padding: 8px 0; }

/* ── DT MIESIACE — separator lat ── */
.dt-month-year-sep{
  display:inline-block;
  width:2px; height:24px;
  background:var(--gray-300);
  margin:0 6px;
  vertical-align:middle;
}

/* ── IMPORT HISTORYCZNY DETAILINGU (XLSX) ── */
.dt-import-warn {
  background:#fef9c3; border:1px solid #fde047; color:#92400e;
  padding:10px 14px; border-radius:4px; margin-bottom:12px;
  font-family:var(--font-cond); font-size:12px;
}
.dt-import-warn-inline {
  color:#92400e; font-family:var(--font-cond); font-size:12px;
}
.dt-import-fname {
  font-family:var(--font-cond); font-size:11px; color:var(--gray-400);
}
.dt-import-summary {
  background:var(--gray-100); border:1px solid var(--gray-300);
  border-radius:4px; padding:10px 14px; margin-top:12px;
  font-family:var(--font-cond); font-size:12px;
  display:flex; flex-direction:column; gap:4px;
}
.dt-import-sample {
  width:100%; margin-top:10px; border-collapse:collapse;
  font-family:var(--font-cond); font-size:11px;
}
.dt-import-sample th, .dt-import-sample td {
  border:1px solid var(--gray-300); padding:5px 8px; text-align:left;
}
.dt-import-sample th { background:var(--gray-100); font-weight:700; }
.dt-import-section-title {
  font-family:var(--font-cond); font-size:12px; font-weight:800;
  letter-spacing:1px; text-transform:uppercase; color:var(--gray-700);
  margin:14px 0 8px;
}
.dt-map-row {
  display:grid; grid-template-columns: 220px 30px 1fr 90px;
  align-items:center; gap:10px;
  padding:6px 0; border-bottom:1px solid var(--gray-200);
}
.dt-map-from {
  font-family:var(--font-cond); font-weight:700;
  background:#fef2f2; color:#991b1b;
  padding:4px 8px; border-radius:3px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.dt-map-arrow { color:var(--gray-400); text-align:center; font-weight:700; }
.dt-map-to { padding:6px; font-family:var(--font-cond); font-size:12px;
  border:1px solid var(--gray-300); border-radius:3px; background:#fff; }
.dt-map-cnt {
  font-family:var(--font-cond); font-size:10px; color:var(--gray-500);
  text-transform:uppercase; letter-spacing:1px;
}
.dt-import-confirm-box {
  background:var(--gray-100); border:1px solid var(--gray-300);
  border-left:4px solid var(--red);
  border-radius:4px; padding:14px 16px; margin-top:14px;
  font-family:var(--font-cond); font-size:13px;
}
.dt-import-confirm-title {
  font-weight:800; letter-spacing:1px; text-transform:uppercase;
  margin-bottom:8px; color:var(--gray-800);
}
.dt-import-btn-primary { background:var(--red); color:#fff; }
.dt-import-ok {
  background:#dcfce7; border:1px solid #86efac; color:#15803d;
  padding:12px 16px; border-radius:4px; font-weight:700;
  margin-top:14px;
}

/* ════════════════════════════════════════════ */
/*  ANALITYKA — DESIGN SYSTEM (4 ZAKŁADKI)     */
/* ════════════════════════════════════════════ */

/* Pasek głównych zakładek */
.a-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 2px solid var(--gray-300);
  margin-bottom: 16px;
  padding: 0 4px;
  flex-wrap: wrap;
}
.a-tab {
  padding: 12px 22px;
  background: transparent;
  border: none;
  border-bottom: 3px solid transparent;
  font-family: var(--font-cond);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gray-500);
  cursor: pointer;
  transition: all 0.15s;
  margin-bottom: -2px;
}
.a-tab:hover {
  color: var(--gray-800);
  background: var(--gray-100);
}
.a-tab.active {
  color: var(--red);
  border-bottom-color: var(--red);
  background: rgba(235,10,30,0.04);
}

/* Sub-taby wewnątrz zakładki */
.a-subtabs { margin-bottom: 12px; }

/* Widok zakładki */
.a-tab-view { display: none; animation: aFadeIn 0.2s ease; }
.a-tab-view.active { display: block; }
@keyframes aFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Globalny pasek filtrów */
.a-filter-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: var(--gray-100);
  border-radius: 6px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.a-filter-lbl {
  font-family: var(--font-cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gray-500);
  margin: 0;
}
.a-date-input {
  padding: 6px 10px;
  border: 1px solid var(--gray-300);
  border-radius: 4px;
  font-family: var(--font-cond);
  font-size: 13px;
  background: #fff;
}
.a-preset-btn {
  padding: 6px 12px;
  background: #fff;
  border: 1px solid var(--gray-300);
  border-radius: 4px;
  font-family: var(--font-cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  color: var(--gray-700);
  cursor: pointer;
  transition: all 0.12s;
}
.a-preset-btn:hover {
  background: var(--gray-200);
  border-color: var(--gray-400);
}
.a-filter-info {
  margin-left: auto;
  font-family: var(--font-cond);
  font-size: 11px;
  color: var(--gray-500);
}

/* KPI cards */
.a-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
@media (max-width: 900px) {
  .a-kpi-grid { grid-template-columns: repeat(2, 1fr); }
}
.a-kpi-card {
  padding: 14px 18px;
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: 6px;
  border-left: 4px solid var(--red);
}
.a-kpi-label {
  font-family: var(--font-cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gray-500);
  margin-bottom: 6px;
}
.a-kpi-value {
  font-family: var(--font-cond);
  font-size: 26px;
  font-weight: 800;
  color: #0a0a0a;
  line-height: 1.1;
}
.a-kpi-delta { font-family: var(--font-cond); font-size: 11px; font-weight: 700; margin-top: 4px; }
.a-kpi-delta.pos { color: #15803d; }
.a-kpi-delta.neg { color: #b91c1c; }

/* Wykres — kontener */
.a-chart-block {
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: 6px;
  padding: 16px;
  margin-bottom: 12px;
}
.a-chart-title {
  font-family: var(--font-cond);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gray-700);
  margin-bottom: 12px;
}
.a-chart-empty {
  padding: 40px 20px;
  text-align: center;
  font-family: var(--font-cond);
  font-size: 13px;
  color: var(--gray-500);
  background: var(--gray-100);
  border-radius: 4px;
}

/* Tabela danych */
.a-data-table { width: 100%; border-collapse: collapse; font-family: var(--font-cond); font-size: 12px; }
.a-data-table th {
  background: var(--gray-100);
  border-bottom: 2px solid var(--gray-300);
  padding: 8px 10px;
  text-align: left;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 10px;
  color: var(--gray-700);
}
.a-data-table td { padding: 8px 10px; border-bottom: 1px solid var(--gray-200); }

/* Sekcja narzędziowa (collapsible) */
.a-tool-section {
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: 6px;
  margin-bottom: 8px;
}
.a-tool-section[open] { border-color: var(--gray-300); }
.a-tool-section summary {
  padding: 12px 16px;
  cursor: pointer;
  font-family: var(--font-cond);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--gray-700);
  user-select: none;
  list-style: none;
}
.a-tool-section summary::-webkit-details-marker { display: none; }
.a-tool-section summary::before {
  content: "▶";
  display: inline-block;
  margin-right: 8px;
  font-size: 10px;
  transition: transform 0.15s;
}
.a-tool-section[open] summary::before { transform: rotate(90deg); }
.a-tool-section summary:hover { background: var(--gray-100); }
.a-tool-body {
  padding: 12px 16px 16px;
  border-top: 1px solid var(--gray-200);
}

/* Intro ZYSKI */
.a-section-intro {
  padding: 12px 16px;
  background: #fff7ed;
  border-left: 4px solid #f59e0b;
  border-radius: 4px;
  font-family: var(--font-cond);
  font-size: 12px;
  color: #92400e;
  margin-bottom: 16px;
}

/* ── Tabler Icons w zakładkach analityki ── */
.a-tab .ti,
.anal-tab .ti {
  margin-right: 8px;
  font-size: 16px;
  vertical-align: -2px;
}
.a-tool-section summary .ti {
  margin-right: 8px;
  font-size: 14px;
  vertical-align: -2px;
}

/* ───────── Filtr działów (chipy) ───────── */
.a-filter-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  padding: 12px 16px;
  background: var(--gray-100);
  border-radius: 6px;
  flex-wrap: wrap;
}
.a-dept-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  flex: 1;
}
.a-dept-chip {
  padding: 5px 12px;
  background: #fff;
  border: 1.5px solid var(--gray-300);
  border-radius: 14px;
  font-family: var(--font-cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--gray-500);
  cursor: pointer;
  transition: all 0.12s;
}
.a-dept-chip:hover {
  border-color: var(--gray-500);
  color: var(--gray-700);
}
.a-dept-chip.on {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}

/* ───────── Wykres SVG (line chart) ───────── */
.a-svg-chart-host {
  width: 100%;
  overflow-x: auto;
}
.a-svg-chart {
  width: 100%;
  max-width: 1200px;
  height: auto;
  min-height: 240px;
  display: block;
  margin: 0 auto;
}

/* ───────── Udział kategorii (bary proporcji) ───────── */
.a-cat-row {
  display: grid;
  grid-template-columns: 200px 1fr 60px 110px 80px;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--gray-100);
  font-family: var(--font-cond);
  font-size: 12px;
}
.a-cat-name { font-weight: 700; color: #1f2937; }
.a-cat-track {
  height: 14px;
  background: var(--gray-100);
  border-radius: 7px;
  overflow: hidden;
}
.a-cat-fill {
  height: 100%;
  transition: width 0.3s ease;
}
.a-cat-pct { text-align: right; font-weight: 700; color: var(--gray-700); }
.a-cat-sum { text-align: right; color: var(--gray-800); font-weight: 600; }
.a-cat-cnt { text-align: right; color: var(--gray-500); font-size: 11px; }

/* ───────── Grid 2 kolumn (tabele TOP-N) ───────── */
.a-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 12px;
}
@media (max-width: 900px) {
  .a-grid-2 { grid-template-columns: 1fr; }
}

/* ───────── RAPORTY: BACKUP HERO ───────── */
.a-backup-hero {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px;
  background: linear-gradient(135deg, #1f2937 0%, #111827 100%);
  border-radius: 8px;
  color: #fff;
  margin-bottom: 24px;
}
.a-backup-hero-left { flex: 1; }
.a-backup-hero-title {
  font-family: var(--font-cond);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.a-backup-hero-title .ti { color: #34d399; margin-right: 8px; }
.a-backup-hero-desc {
  font-family: var(--font-cond);
  font-size: 12px;
  color: #d1d5db;
  line-height: 1.5;
}
.a-backup-hero-btn {
  padding: 16px 28px;
  background: var(--red);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-family: var(--font-cond);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.a-backup-hero-btn:hover {
  background: #c10018;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(235,10,30,0.4);
}
.a-backup-hero-btn .ti { margin-right: 8px; font-size: 18px; }

/* ───────── RAPORTY: karty akcji ───────── */
.a-reports-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
@media (max-width: 1100px) {
  .a-reports-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .a-reports-grid { grid-template-columns: 1fr; }
}
.a-report-card {
  padding: 16px;
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: 6px;
  transition: all 0.15s;
}
.a-report-card:hover {
  border-color: var(--gray-400);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.a-report-card-icon {
  font-size: 28px;
  color: var(--gray-500);
  margin-bottom: 10px;
}
.a-report-card-dt .a-report-card-icon {
  color: var(--red);
}
.a-report-card-title {
  font-family: var(--font-cond);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #1f2937;
  margin-bottom: 6px;
}
.a-report-card-desc {
  font-family: var(--font-cond);
  font-size: 11px;
  color: var(--gray-500);
  line-height: 1.5;
  margin-bottom: 12px;
  min-height: 32px;
}
.a-report-card-btn {
  width: 100%;
  padding: 8px 14px;
  background: var(--gray-100);
  border: 1px solid var(--gray-300);
  border-radius: 4px;
  font-family: var(--font-cond);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--gray-700);
  cursor: pointer;
  transition: all 0.12s;
}
.a-report-card-btn:hover {
  background: var(--gray-800);
  color: #fff;
  border-color: var(--gray-800);
}
.a-reports-status {
  margin-top: 16px;
  font-family: var(--font-cond);
  font-size: 11px;
  color: var(--gray-500);
  text-align: center;
}

/* ───────── Panel migracji działów historycznych ───────── */
.dt-migrate-info {
  background: #fef9c3;
  border-left: 4px solid #facc15;
  padding: 10px 14px;
  border-radius: 4px;
  font-family: var(--font-cond);
  font-size: 12px;
  color: #713f12;
  margin-bottom: 12px;
  line-height: 1.5;
}
.dt-migrate-stats {
  background: var(--gray-100);
  padding: 12px 14px;
  border-radius: 4px;
  margin-bottom: 12px;
}
.dt-migrate-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 0;
  font-family: var(--font-cond);
  font-size: 12px;
  color: var(--gray-700);
}
.dt-migrate-row strong {
  font-size: 16px;
  color: #1f2937;
}
.dt-migrate-row-ok { color: #15803d; }
.dt-migrate-row-ok strong { color: #15803d; }
.dt-migrate-row-warn { color: #92400e; }
.dt-migrate-row-warn strong { color: #92400e; }

.dt-migrate-btn {
  width: 100%;
  padding: 12px 16px;
  background: var(--red);
  color: #fff;
  border: none;
  border-radius: 4px;
  font-family: var(--font-cond);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.15s;
}
.dt-migrate-btn:hover:not(:disabled) {
  background: #c10018;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(235,10,30,0.3);
}
.dt-migrate-btn:disabled {
  background: var(--gray-300);
  cursor: not-allowed;
}
.dt-migrate-btn .ti {
  margin-right: 8px;
  font-size: 14px;
  vertical-align: -2px;
}

.dt-migrate-ok {
  background: #dcfce7;
  border-left: 4px solid #16a34a;
  padding: 12px 14px;
  border-radius: 4px;
  font-family: var(--font-cond);
  font-size: 12px;
  color: #14532d;
  line-height: 1.5;
}
.dt-migrate-done {
  background: #dcfce7;
  border-left: 4px solid #16a34a;
  padding: 12px 14px;
  border-radius: 4px;
  font-family: var(--font-cond);
  font-size: 13px;
  font-weight: 700;
  color: #14532d;
}

/* === UWAGI DO WYDANIA === */

.dop-uwaga-info {
  font-family:var(--font-cond); font-size:11px;
  color:var(--gray-600);
  background:var(--gray-100);
  border-left:3px solid #f59e0b;
  padding:8px 12px;
  border-radius:2px;
  margin-bottom:10px;
  line-height:1.5;
}
.dop-uwaga-info strong { color:#92400e; }

.dop-uwaga-counter {
  margin-left:auto;
  font-family:var(--font-cond); font-size:11px; font-weight:400;
  color:var(--gray-600);
  letter-spacing:0.3px;
}

.dop-uwaga-empty {
  font-family:var(--font-cond); font-size:12px;
  color:var(--gray-400);
  text-align:center;
  padding:14px;
  background:var(--gray-100);
  border-radius:2px;
  margin-bottom:10px;
}

.dop-uwaga-wpis {
  background:var(--white);
  border:1px solid var(--gray-200);
  border-left:3px solid var(--gray-700);
  border-radius:2px;
  padding:10px 12px;
  margin-bottom:8px;
  position:relative;
}

.dop-uwaga-header {
  display:flex; align-items:center; gap:10px;
  font-family:var(--font-cond); font-size:10px;
  color:var(--gray-600);
  letter-spacing:0.5px;
  margin-bottom:6px;
  flex-wrap:wrap;
}
.dop-uwaga-autor {
  font-weight:700;
  color:var(--gray-800);
  display:inline-flex; align-items:center; gap:4px;
  text-transform:uppercase;
}
.dop-uwaga-autor .ti { font-size:11px; }
.dop-uwaga-ts {
  color:var(--gray-400);
}
.dop-uwaga-lock {
  margin-left:auto;
  color:var(--gray-300);
  font-size:13px;
  cursor:help;
}

.dop-uwaga-tresc {
  font-family:var(--font-main); font-size:13px;
  color:var(--gray-900);
  line-height:1.5;
  white-space:pre-wrap;
  word-break:break-word;
}

.dop-uwaga-add-wrap { margin-top:10px; }

.dop-uwaga-add-btn {
  background:var(--white);
  border:1.5px dashed var(--gray-300);
  color:var(--gray-700);
  padding:8px 14px;
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  letter-spacing:1px; text-transform:uppercase;
  border-radius:var(--r);
  cursor:pointer;
  width:100%;
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  transition:all .12s;
}
.dop-uwaga-add-btn:hover {
  background:var(--gray-100);
  border-color:var(--gray-600);
  color:var(--black);
}
.dop-uwaga-add-btn .ti { font-size:13px; }

.dop-uwaga-add-wrap textarea {
  width:100%; box-sizing:border-box;
  font-family:var(--font-main); font-size:13px;
  padding:10px 12px;
  border:1.5px solid var(--gray-300);
  border-radius:2px;
  resize:vertical;
  min-height:80px;
  outline:none;
  transition:border-color .12s;
}
.dop-uwaga-add-wrap textarea:focus {
  border-color:var(--red);
}

.dop-uwaga-add-meta {
  display:flex; align-items:center; justify-content:space-between;
  margin-top:8px;
}
.dop-uwaga-charcount {
  font-family:var(--font-cond); font-size:10px;
  color:var(--gray-400);
  letter-spacing:0.5px;
}
.dop-uwaga-charcount.warn { color:#d97706; font-weight:700; }

.dop-uwaga-add-actions {
  display:flex; gap:6px;
}
.dop-uwaga-cancel-btn,
.dop-uwaga-save-btn {
  padding:7px 14px;
  font-family:var(--font-cond); font-size:11px; font-weight:700;
  letter-spacing:1px; text-transform:uppercase;
  border-radius:var(--r);
  cursor:pointer;
  transition:all .12s;
  display:inline-flex; align-items:center; gap:5px;
}
.dop-uwaga-cancel-btn {
  background:var(--white);
  border:1px solid var(--gray-300);
  color:var(--gray-700);
}
.dop-uwaga-cancel-btn:hover {
  background:var(--gray-100);
  border-color:var(--gray-600);
}
.dop-uwaga-save-btn {
  background:var(--red);
  border:1px solid var(--red);
  color:var(--white);
}
.dop-uwaga-save-btn:hover {
  background:#c00818;
}
.dop-uwaga-save-btn .ti { font-size:12px; }

.dop-card-uwagi-badge {
  display:inline-flex; align-items:center; gap:3px;
  background:var(--gray-700);
  color:var(--white);
  padding:2px 6px;
  font-family:var(--font-cond); font-size:10px; font-weight:700;
  letter-spacing:0.5px;
  border-radius:2px;
}
.dop-card-uwagi-badge .ti { font-size:10px; }
