:root{
  --bg:#f6f7fb;--card:#fff;--text:#111827;--muted:#667085;--line:#e5e7eb;--brand:#2563eb;--brand2:#eef4ff;--good:#16a34a;--warn:#f59e0b;--radius:26px;--shadow:0 20px 70px rgba(15,23,42,.10)
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:radial-gradient(circle at top,#eef4ff 0,#f6f7fb 35%,#f8fafc 100%);color:var(--text)}
button,input{font:inherit}.shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.phone{width:min(430px,100%);min-height:780px;background:#fff;border:1px solid #eef0f5;border-radius:42px;box-shadow:var(--shadow);overflow:hidden;position:relative}.screen{padding:28px;animation:enter .22s ease both}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.logo{font-size:26px;font-weight:900;letter-spacing:-.05em}.pill{border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:var(--muted);font-size:13px;background:white}.h1{font-size:38px;line-height:1.03;font-weight:900;letter-spacing:-.06em;margin:18px 0 12px}.lead{font-size:17px;line-height:1.45;color:var(--muted);margin:0 0 24px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:12px 0;box-shadow:0 8px 28px rgba(15,23,42,.04)}.big-card{padding:24px;background:linear-gradient(135deg,#fff,#f8fbff)}.btn{border:0;background:var(--brand);color:#fff;border-radius:18px;padding:16px 18px;width:100%;font-weight:800;cursor:pointer;transition:.16s transform,.16s opacity}.btn:active{transform:scale(.98)}.btn.secondary{background:var(--brand2);color:var(--brand)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{border:1px solid var(--line);background:white;border-radius:22px;padding:18px;text-align:left;cursor:pointer;transition:.16s transform,.16s border,.16s background}.choice:active{transform:scale(.98)}.choice:hover{border-color:#b8cdfd;background:#fbfdff}.emoji{font-size:30px;margin-bottom:10px}.choice b{display:block;font-size:16px}.choice span{display:block;color:var(--muted);font-size:13px;margin-top:4px}.steps{margin:30px 0}.step{display:flex;gap:12px;align-items:center;margin:14px 0;color:var(--muted)}.check{width:25px;height:25px;border-radius:50%;background:#dcfce7;color:#166534;display:grid;place-items:center;font-size:15px}.progress{height:10px;border-radius:999px;background:#edf1f7;overflow:hidden;margin:20px 0}.bar{height:100%;width:0;background:linear-gradient(90deg,#2563eb,#60a5fa);transition:width .4s ease}.status{font-weight:800;font-size:18px}.hero{background:#111827;color:white;border-radius:30px;padding:28px;min-height:310px;display:flex;flex-direction:column;justify-content:flex-end;background-image:linear-gradient(180deg,rgba(17,24,39,.1),rgba(17,24,39,.88)),url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="800" height="500"><rect width="800" height="500" fill="%232563eb"/><circle cx="620" cy="110" r="170" fill="%2360a5fa" opacity=".45"/><circle cx="180" cy="360" r="210" fill="%23fbbf24" opacity=".35"/></svg>');background-size:cover}.hero h2{font-size:33px;line-height:1.03;margin:0 0 10px}.hero p{margin:0 0 18px;color:#e5e7eb}.bottom-nav{position:absolute;bottom:0;left:0;right:0;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);padding:10px 10px 14px}.nav-item{text-align:center;color:var(--muted);font-size:12px;font-weight:700}.nav-item.active{color:var(--brand)}.home{padding-bottom:96px}.summary{font-size:30px;font-weight:900;line-height:1.1;letter-spacing:-.05em}.metric{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.metric strong{font-size:24px}.action{display:flex;gap:14px;align-items:flex-start}.icon{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:var(--brand2);font-size:22px;flex:0 0 auto}.small-btn{border:0;border-radius:14px;background:#111827;color:white;font-weight:800;padding:10px 14px;margin-top:10px}.input{width:100%;border:1px solid var(--line);border-radius:18px;padding:16px;margin:8px 0;background:#fff}.sticky{position:absolute;bottom:0;left:0;right:0;padding:14px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-top:1px solid var(--line)}@keyframes enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(max-width:520px){.shell{padding:0}.phone{min-height:100vh;border-radius:0;border:0}.h1{font-size:34px}}

/* Sprint 1 poprawki: onboarding 5 pytań + naturalne wiadomości */
.center-start{display:flex;min-height:760px;flex-direction:column;justify-content:center}.welcome-mark{width:72px;height:72px;border-radius:28px;background:var(--brand2);display:grid;place-items:center;font-size:34px;margin:0 0 20px}.back-link{border:0;background:transparent;color:var(--muted);font-weight:800;margin:-8px 0 10px;padding:0;cursor:pointer}.big-input{font-size:20px;padding:20px;border-radius:22px;margin:10px 0 18px}.upload-card{border:2px dashed #d9e2f2;border-radius:28px;padding:34px 22px;text-align:center;margin:18px 0;cursor:pointer;background:#fbfdff;transition:.16s transform,.16s border}.upload-card:active{transform:scale(.98)}.upload-card b,.upload-card span{display:block}.upload-card span{color:var(--muted);margin-top:6px}.upload-icon{width:64px;height:64px;border-radius:24px;background:var(--brand2);color:var(--brand);display:grid;place-items:center;font-size:34px;margin:0 auto 14px}.upload-icon.ok{background:#dcfce7;color:#166534}.wide-choice{width:100%;margin:8px 0}.countdown-screen{display:flex;min-height:760px;flex-direction:column;justify-content:center;align-items:center;text-align:center}.count-number{font-size:120px;font-weight:950;letter-spacing:-.08em;color:var(--brand);line-height:1}.centered{text-align:center}.centered-text{text-align:center}.page-screen{padding-bottom:112px}.slot-card .btn{margin-top:8px}.message-item{width:100%;border:1px solid var(--line);background:white;border-radius:24px;padding:18px;margin:10px 0;text-align:left;box-shadow:0 8px 28px rgba(15,23,42,.04);cursor:pointer}.message-item b{display:block;font-size:18px}.message-item span{display:block;color:var(--muted);font-size:13px;margin-top:3px}.message-item p{color:var(--muted);font-size:15px;line-height:1.35;margin:10px 0 0}.chat-screen{min-height:780px;padding-bottom:96px;background:#f8fafc}.chat-body{display:flex;flex-direction:column;gap:14px}.bubble{max-width:88%;border-radius:24px;padding:16px;font-size:16px;line-height:1.38;box-shadow:0 8px 28px rgba(15,23,42,.04)}.incoming{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:8px}.outgoing{align-self:flex-end;background:#2563eb;color:white;border-bottom-right-radius:8px;outline:0;white-space:pre-wrap;min-height:150px}.outgoing:focus{box-shadow:0 0 0 4px rgba(37,99,235,.18)}.draft:empty:before{content:'Napisz odpowiedź...';opacity:.65}.bubble-meta{font-size:12px;color:var(--muted);margin-bottom:8px;font-weight:800}.composer{position:absolute;left:0;right:0;bottom:0;display:flex;gap:8px;align-items:center;padding:12px 14px 18px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-top:1px solid var(--line)}.round-btn{width:44px;height:44px;border:0;border-radius:16px;background:var(--brand2);font-size:20px}.send-btn{margin-left:auto;border:0;border-radius:16px;background:#111827;color:white;font-weight:900;padding:12px 16px}.action{cursor:pointer}.action:active{transform:scale(.99)}

/* Poprawki pilne: placeholder, stabilny loading, ekran gotowości z usługami */
.loading-screen{
  min-height:780px;
  display:flex;
  flex-direction:column;
}
.loading-card{
  min-height:560px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.loading-orb{
  width:76px;
  height:76px;
  border-radius:28px;
  background:var(--brand2);
  color:var(--brand);
  display:grid;
  place-items:center;
  font-size:34px;
  margin:0 0 20px;
}
.loading-title{
  min-height:86px;
  line-height:1.03;
  transform:none!important;
  animation:none!important;
  margin-bottom:12px;
}
.loading-lead{
  min-height:28px;
}
.stable-steps{
  min-height:210px;
}
.stable-steps .step{
  min-height:32px;
}
.step.done .status{
  color:var(--text);
}
.ready-screen{
  padding-bottom:34px;
}
.ready-hero-card{
  background:linear-gradient(135deg,#ffffff,#f8fbff);
  border:1px solid var(--line);
  border-radius:30px;
  padding:24px;
  box-shadow:0 8px 28px rgba(15,23,42,.04);
  margin-bottom:14px;
}
.ready-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#dcfce7;
  color:#166534;
  border-radius:999px;
  padding:8px 12px;
  font-size:13px;
  font-weight:900;
  margin-bottom:14px;
}
.ready-url{
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px 16px;
  background:#fff;
  font-weight:900;
  color:var(--brand);
}
.services-card{
  margin:14px 0;
}
.section-title{
  font-size:22px;
  line-height:1.1;
  letter-spacing:-.04em;
  font-weight:950;
  margin-bottom:6px;
}
.small-lead{
  font-size:15px;
  margin-bottom:14px;
}
.service-list{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:14px 0;
}
.service-chip{
  border:1px solid var(--line);
  background:white;
  color:var(--text);
  border-radius:999px;
  padding:11px 14px;
  font-size:14px;
  font-weight:850;
  cursor:pointer;
  transition:.16s transform,.16s border,.16s background,.16s color;
}
.service-chip:active{
  transform:scale(.97);
}
.service-chip.selected{
  border-color:#b8cdfd;
  background:var(--brand2);
  color:var(--brand);
}
.service-input{
  margin-top:6px;
}
.input::placeholder{
  color:#98a2b3;
  opacity:1;
}


/* v3: bez przykładowych zajęć po przygotowaniu strony */
.empty-state{
  border:1px dashed #d9e2f2;
  background:#fbfdff;
  border-radius:24px;
  padding:22px;
  text-align:center;
  color:var(--muted);
  margin:14px 0;
}
.empty-state b{
  display:block;
  color:var(--text);
  font-size:18px;
  margin-bottom:6px;
}
.btn[disabled], .btn.disabled{
  opacity:.45;
  cursor:not-allowed;
  transform:none!important;
}
.service-chip .remove-service{
  margin-left:8px;
  opacity:.55;
}

/* v4: strona gotowa = od razu podgląd strony, minimum kroków */
.page-preview-box{
  border:1px solid var(--line);
  border-radius:30px;
  padding:12px;
  background:#f8fafc;
  margin:12px 0 14px;
}
.mini-hero{
  min-height:220px;
  border-radius:24px;
  margin-bottom:12px;
}
.mini-hero h2{
  font-size:28px;
}
.empty-state{
  margin-top:12px;
  border:1px dashed #d9e2f2;
  border-radius:20px;
  padding:14px;
  background:#fbfdff;
  color:var(--muted);
  line-height:1.35;
}
.empty-state b{
  display:block;
  color:var(--text);
  margin-bottom:4px;
}
.btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}

/* v6: dodawanie usług / zajęć z klocków */
.service-detail-card{
  border-left:4px solid var(--brand);
}
.service-blocks{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:14px;
}
.mini-block{
  border:1px solid var(--line);
  background:#fff;
  border-radius:18px;
  padding:14px 12px;
  font-weight:850;
  text-align:left;
  cursor:pointer;
  transition:.16s transform,.16s border,.16s background;
}
.mini-block:active{transform:scale(.98)}
.mini-block:hover{border-color:#b8cdfd;background:#fbfdff}


/* v7: warsztat usługi/zajęć, czytelna lista, grupy/terminy */
.service-list-card{
  width:100%;
  border:1px solid var(--line);
  background:#fff;
  border-radius:26px;
  padding:18px;
  margin:12px 0;
  text-align:left;
  box-shadow:0 8px 28px rgba(15,23,42,.04);
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  transition:.16s transform,.16s border,.16s background;
}
.service-list-card:active{transform:scale(.985)}
.service-list-card:hover{border-color:#b8cdfd;background:#fbfdff}
.service-card-main b{
  display:block;
  font-size:20px;
  line-height:1.1;
  letter-spacing:-.03em;
  margin-bottom:8px;
}
.service-card-main span{
  display:block;
  color:var(--muted);
  font-size:15px;
  line-height:1.35;
}
.service-card-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
  color:var(--muted);
  font-weight:900;
  white-space:nowrap;
}
.service-card-meta span:last-child{
  font-size:28px;
  color:var(--brand);
  line-height:1;
}
.workshop-hero{
  border:1px solid var(--line);
  border-radius:30px;
  padding:24px;
  background:linear-gradient(135deg,#ffffff,#f8fbff);
  box-shadow:0 8px 28px rgba(15,23,42,.04);
  margin-bottom:14px;
}
.workshop-hero h1{
  font-size:34px;
  line-height:1.04;
  letter-spacing:-.055em;
  margin:6px 0 10px;
}
.workshop-hero p{
  color:var(--muted);
  margin:0;
  font-size:16px;
  line-height:1.4;
}
.mini-label{
  display:inline-flex;
  border:1px solid var(--line);
  border-radius:999px;
  padding:6px 10px;
  color:var(--muted);
  font-weight:900;
  font-size:12px;
  background:#fff;
}
.workshop-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.workshop-block{
  width:100%;
  border:1px solid var(--line);
  background:#fff;
  border-radius:24px;
  padding:18px;
  text-align:left;
  cursor:pointer;
  box-shadow:0 8px 28px rgba(15,23,42,.04);
  transition:.16s transform,.16s border,.16s background;
}
.workshop-block:active{transform:scale(.985)}
.workshop-block:hover{border-color:#b8cdfd;background:#fbfdff}
.workshop-block.primary{
  border-color:#b8cdfd;
  background:var(--brand2);
}
.workshop-block b{
  display:block;
  font-size:18px;
  margin-bottom:5px;
}
.workshop-block span{
  display:block;
  color:var(--muted);
  font-size:14px;
}
.group-card{
  border:1px solid var(--line);
  border-radius:24px;
  padding:18px;
  margin:12px 0;
  background:#fff;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  box-shadow:0 8px 28px rgba(15,23,42,.04);
}
.group-card b{
  display:block;
  font-size:18px;
  margin-bottom:6px;
}
.group-card span{
  display:block;
  color:var(--muted);
  line-height:1.35;
}
.group-card strong{
  color:var(--brand);
  white-space:nowrap;
}
.simple-row{
  border:1px solid var(--line);
  border-radius:22px;
  padding:16px;
  background:#fff;
  margin:10px 0;
  box-shadow:0 8px 28px rgba(15,23,42,.04);
}


/* v8: Blueprint pamięta cechy firmy + checkboxy + AI-normalizacja */
.select-choice{
  position:relative;
  padding-left:58px;
}
.box-check{
  position:absolute;
  left:18px;
  top:50%;
  transform:translateY(-50%);
  width:28px;
  height:28px;
  border:2px solid var(--line);
  border-radius:10px;
  display:grid!important;
  place-items:center;
  color:#fff!important;
  font-size:16px!important;
  font-weight:950!important;
  margin:0!important;
}
.select-choice.selected{
  border-color:#8bb3ff;
  background:var(--brand2);
}
.select-choice.selected .box-check{
  border-color:var(--brand);
  background:var(--brand);
}

.hours-inputs{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:10px !important;
  align-items:end !important;
  width:100% !important;
}

.hours-time-row{
  display:contents !important;
}

.hours-time-field{
  display:grid !important;
  gap:5px !important;
  min-width:0 !important;
}

.small-input{
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
}
/* Włączanie / wyłączanie / usuwanie usług */

.service-list-card{
  display:block;
}

.service-card-click{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  width:100%;
  cursor:pointer;
}

.service-card-actions{
  display:flex;
  gap:8px;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid var(--line);
}

.mini-action-btn{
  border:0;
  border-radius:13px;
  padding:10px 12px;
  font-size:12px;
  font-weight:950;
  cursor:pointer;
}

.mini-action-btn.warning{
  background:#fef3c7;
  color:#92400e;
}

.mini-action-btn.success{
  background:#dcfce7;
  color:#166534;
}

.mini-action-btn.danger{
  background:#fee2e2;
  color:#991b1b;
}

.service-status-pill{
  display:inline-flex;
  width:max-content;
  border-radius:999px;
  padding:6px 9px;
  font-size:11px;
  font-weight:950;
  margin-bottom:8px;
}

.service-status-pill.active{
  background:#dcfce7;
  color:#166534;
}

.service-status-pill.inactive{
  background:#f1f5f9;
  color:#64748b;
}

.service-list-card.is-disabled,
.workshop-hero.is-disabled{
  opacity:.62;
}

.service-status-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}

.service-status-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
/* Strona wizytówka — logo i hero w Dashboardzie */

.logo-upload-card{
  padding:26px 22px;
}

.upload-preview-logo{
  width:82px;
  height:82px;
  border-radius:28px;
  padding:8px;
  background:white;
  border:1px solid var(--line);
  box-shadow:0 12px 34px rgba(15,23,42,.08);
  margin:0 auto 14px;
}

.upload-preview-logo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:22px;
}

.brand-preview-card{
  overflow:hidden;
}

.brand-hero-preview{
  min-height:230px;
  border-radius:28px;
  background:
    linear-gradient(135deg,rgba(15,23,42,.96),rgba(37,99,235,.88)),
    radial-gradient(circle at 80% 0,#60a5fa 0,#2563eb 35%,#111827 100%);
  background-size:cover;
  background-position:center;
  color:white;
  padding:22px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:10px;
  overflow:hidden;
  position:relative;
}

.brand-hero-preview.has-image::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(15,23,42,.05),rgba(15,23,42,.48));
  pointer-events:none;
}

.brand-hero-preview > *{
  position:relative;
  z-index:2;
}

.brand-hero-preview strong{
  font-size:34px;
  line-height:.95;
  letter-spacing:-.06em;
  font-weight:950;
}

.brand-hero-preview span{
  color:rgba(255,255,255,.78);
  font-weight:800;
}

.brand-logo-preview{
  width:78px;
  height:78px;
  border-radius:26px;
  background:white;
  padding:7px;
  border:1px solid rgba(255,255,255,.88);
  box-shadow:0 14px 34px rgba(15,23,42,.16);
  overflow:hidden;
  display:grid;
  place-items:center;
  color:var(--brand);
  font-size:28px;
  font-weight:950;
  letter-spacing:-.06em;
}

.brand-logo-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:20px;
  display:block;
}

.brand-logo-preview.empty{
  background:linear-gradient(135deg,#eef4ff,#dbeafe);
}

.brand-setting-row{
  display:flex;
  align-items:center;
  gap:16px;
  margin-top:14px;
}

.brand-setting-row .small-btn{
  margin:0 8px 0 0;
}

.ghost-btn{
  background:#f8fafc !important;
  color:var(--text) !important;
}

.hero-upload-card{
  padding:18px;
}

.hero-upload-preview{
  width:100%;
  min-height:150px;
  border-radius:24px;
  background-size:cover;
  background-position:center;
  margin:0 0 14px;
  border:1px solid var(--line);
}
/* FIX mobile dashboard — karta "Strona wizytówka" widoczna na telefonie */

html,
body,
#app{
  min-height:100%;
}

.phone{
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}

.screen.home{
  padding-bottom:132px;
}

@media(max-width:520px){
  .shell{
    min-height:100dvh;
    display:block;
    padding:0;
  }

  .phone{
    width:100%;
    min-height:100dvh;
    height:auto;
    border-radius:0;
    border:0;
    overflow:visible;
  }

  .screen{
    min-height:100dvh;
  }

  .screen.home{
    padding-bottom:150px;
  }

  .bottom-nav{
    position:fixed;
    z-index:80;
  }
}
.brand-page-screen{
  padding-bottom:150px;
}

.brand-setting-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.brand-setting-actions .small-btn{
  margin-top:0;
}

@media(max-width:520px){
  .brand-setting-row{
    align-items:flex-start;
  }

  .brand-setting-actions{
    flex-direction:column;
    align-items:flex-start;
  }

  .brand-hero-preview{
    min-height:205px;
  }

  .brand-hero-preview strong{
    font-size:30px;
  }
}
/* FIX mobile scroll + widoczna karta Strona wizytówka */

.dashboard-brand-shortcut{
  border-color:#c7d8ff;
  background:linear-gradient(135deg,#ffffff,#f5f8ff);
}

.dashboard-brand-shortcut .icon{
  background:#dbeafe;
}

.mobile-only-shortcut{
  display:none;
}

@media(max-width:520px){
  html,
  body{
    height:100%;
    overflow:hidden;
  }

  .shell{
    height:100dvh;
    min-height:100dvh;
    display:block;
    padding:0;
    overflow:hidden;
  }

  .phone{
    width:100%;
    height:100dvh;
    min-height:100dvh;
    border-radius:0;
    border:0;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch;
    position:relative;
  }

  .screen{
    min-height:auto;
  }

  .screen.home{
    padding-bottom:170px !important;
  }

  .bottom-nav{
    position:sticky !important;
    bottom:0;
    z-index:999;
    margin:28px -28px -28px;
    grid-template-columns:repeat(4,1fr);
  }

  .mobile-only-shortcut{
    display:flex;
  }

  .dashboard-brand-shortcut{
    margin-top:10px;
  }

  .dashboard-brand-shortcut b{
    font-size:17px;
  }

  .dashboard-brand-shortcut .lead{
    font-size:14px;
    line-height:1.35;
  }

  .brand-page-screen{
    padding-bottom:170px !important;
  }
}
.mobile-only-shortcut{
  display:none !important;
}
/* Kadrowanie tła hero w zakładce Strona wizytówka */

.hero-crop-editor{
  margin-top:16px;
  border-top:1px solid var(--line);
  padding-top:16px;
}

.hero-crop-stage{
  width:100%;
  aspect-ratio:4.9 / 1;
  min-height:116px;
  border-radius:24px;
  background-size:cover;
  background-position:center;
  overflow:hidden;
  position:relative;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.08);
}

.hero-crop-frame{
  position:absolute;
  inset:10px;
  border:3px dashed rgba(255,255,255,.92);
  border-radius:20px;
  box-shadow:
    0 0 0 999px rgba(15,23,42,.18),
    0 10px 30px rgba(15,23,42,.16);
  pointer-events:none;
}

.hero-crop-badge{
  position:absolute;
  left:18px;
  bottom:16px;
  z-index:3;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:7px 10px;
  background:rgba(15,23,42,.72);
  color:white;
  font-size:12px;
  font-weight:900;
  backdrop-filter:blur(10px);
}

.hero-position-controls{
  display:grid;
  gap:13px;
  margin-top:16px;
}

.hero-range-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px 12px;
  align-items:center;
}

.hero-range-row span{
  color:var(--text);
  font-size:13px;
  font-weight:900;
}

.hero-range-row strong{
  color:var(--muted);
  font-size:12px;
  font-weight:950;
}

.hero-range-row input[type="range"]{
  grid-column:1 / -1;
  width:100%;
  accent-color:var(--brand);
}

.hero-reset-btn{
  margin-top:14px;
}

.hero-upload-preview{
  background-position:center;
}

@media(max-width:520px){
  .hero-crop-stage{
    aspect-ratio:4.25 / 1;
    min-height:96px;
    border-radius:20px;
  }

  .hero-crop-frame{
    inset:8px;
    border-radius:16px;
  }

  .hero-crop-badge{
    left:14px;
    bottom:12px;
    font-size:11px;
  }
}
.nav-label-with-badge{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:16px;
}

.nav-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:999px;
  background:#ef4444;
  color:white;
  font-size:10px;
  line-height:1;
  font-weight:950;
  box-shadow:0 6px 14px rgba(239,68,68,.28);
}

.dashboard-inbox-shortcut{
  position:relative;
  border-color:#bfdbfe;
  background:linear-gradient(135deg,#ffffff,#eff6ff);
}

.card-count-badge{
  position:absolute;
  top:14px;
  right:14px;
  min-width:28px;
  height:28px;
  padding:0 8px;
  border-radius:999px;
  background:#ef4444;
  color:#fff;
  display:grid;
  place-items:center;
  font-size:12px;
  font-weight:950;
  box-shadow:0 10px 22px rgba(239,68,68,.25);
}

.inbox-list{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:12px 0 14px;
}

.inbox-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:26px;
  padding:16px;
  box-shadow:0 8px 28px rgba(15,23,42,.04);
}

.inbox-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.inbox-card-head h3{
  margin:7px 0 0;
  font-size:24px;
  line-height:1.02;
  letter-spacing:-.05em;
}

.inbox-status-pill{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:6px 9px;
  background:#dcfce7;
  color:#166534;
  font-size:11px;
  font-weight:950;
}

.inbox-created{
  color:var(--muted);
  font-size:12px;
  font-weight:850;
  white-space:nowrap;
}

.inbox-main{
  border:1px solid #edf1f7;
  background:#f8fafc;
  border-radius:20px;
  padding:13px;
  margin-bottom:12px;
}

.inbox-main strong{
  display:block;
  font-size:16px;
  line-height:1.2;
}

.inbox-main span{
  display:block;
  color:var(--text);
  font-size:14px;
  font-weight:900;
  margin-top:5px;
}

.inbox-main small{
  display:block;
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
  margin-top:5px;
}

.inbox-fields{
  display:grid;
  gap:8px;
}

.inbox-field-row{
  display:grid;
  grid-template-columns:105px 1fr;
  gap:10px;
  align-items:start;
  padding:9px 0;
  border-top:1px solid #f1f5f9;
}

.inbox-field-row:first-child{
  border-top:0;
}

.inbox-field-row span{
  color:var(--muted);
  font-size:12px;
  font-weight:850;
}

.inbox-field-row strong{
  color:var(--text);
  font-size:14px;
  line-height:1.35;
  font-weight:850;
  word-break:break-word;
}

@media(max-width:420px){
  .inbox-field-row{
    grid-template-columns:1fr;
    gap:3px;
  }

  .nav-badge{
    min-width:17px;
    height:17px;
    font-size:9px;
  }
}
/* =========================================================
   ASAPI — ROZSZERZONY ZAPIS NA ZAJĘCIA
   swimming / dance
   ========================================================= */

.field-label{
  display:block;
  margin:14px 0 4px;
  color:var(--text);
  font-size:14px;
  font-weight:900;
}

.schedule-hour-btn{
  justify-content:space-between;
}

.schedule-signup-modal{
  width:min(620px, calc(100% - 24px));
  max-height:calc(100dvh - 30px);
  overflow-y:auto;
  overscroll-behavior:contain;
}

.schedule-order-items{
  display:grid;
  gap:10px;
  margin-bottom:14px;
}

.schedule-order-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.schedule-order-head strong{
  font-size:16px;
}

.schedule-order-head span{
  min-width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--brand2);
  color:var(--brand);
  font-size:13px;
  font-weight:950;
}

.schedule-order-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
}

.schedule-order-row > div{
  min-width:0;
}

.schedule-order-row strong,
.schedule-order-row span,
.schedule-order-row small{
  display:block;
}

.schedule-order-row strong{
  font-size:15px;
}

.schedule-order-row span{
  margin-top:3px;
  color:var(--text);
  font-size:14px;
  font-weight:800;
}

.schedule-order-row small{
  margin-top:4px;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
}

.schedule-order-row button{
  flex:0 0 auto;
  border:0;
  background:#fff1f2;
  color:#be123c;
  border-radius:12px;
  padding:8px 10px;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}

.schedule-selected-summary{
  display:grid;
  gap:4px;
  margin-bottom:14px;
  padding:15px;
  border:1px solid #cbdcff;
  border-radius:19px;
  background:#f6f9ff;
}

.schedule-selected-summary strong{
  font-size:17px;
}

.schedule-selected-summary span{
  color:var(--muted);
  font-size:13px;
  font-weight:700;
}

.schedule-lesson-choice{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-bottom:14px;
}

.schedule-lesson-choice:empty{
  display:none;
}

.schedule-lesson-choice button{
  min-height:76px;
  border:1px solid var(--line);
  border-radius:17px;
  background:#fff;
  color:var(--text);
  padding:12px;
  cursor:pointer;
  font-weight:900;
}

.schedule-lesson-choice button.selected{
  border-color:var(--brand);
  background:var(--brand2);
  color:var(--brand);
  box-shadow:0 0 0 2px rgba(37,99,235,.08);
}

.schedule-lesson-choice small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:12px;
}

.schedule-participants{
  display:grid;
  gap:14px;
}

.schedule-participant-card{
  padding:16px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
}

.schedule-participant-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.schedule-participant-head strong{
  font-size:16px;
}

.schedule-participant-head button{
  border:0;
  border-radius:11px;
  background:#fff1f2;
  color:#be123c;
  padding:7px 10px;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}

.booking-add-participant,
.booking-add-next{
  width:100%;
  border:1px dashed #9ab8ff;
  border-radius:17px;
  background:#f7f9ff;
  color:var(--brand);
  padding:14px;
  font-weight:900;
  cursor:pointer;
}

.booking-add-participant{
  margin-top:14px;
}

.booking-add-next{
  margin-top:18px;
  margin-bottom:16px;
}

.booking-field-hint{
  margin:7px 2px 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
}

.schedule-signup-message{
  margin-top:14px;
  padding:14px;
  border-radius:16px;
  background:#ecfdf3;
  color:#166534;
  font-weight:800;
  line-height:1.45;
}

.schedule-signup-message.error{
  background:#fff1f2;
  color:#be123c;
}

@media(max-width:620px){
  .schedule-signup-modal{
    width:100%;
    max-height:92dvh;
    left:0;
    right:0;
    bottom:0;
    top:auto;
    transform:none;
    border-radius:26px 26px 0 0;
    padding-bottom:calc(22px + env(safe-area-inset-bottom));
  }

  .schedule-lesson-choice{
    grid-template-columns:1fr;
  }

  .schedule-order-row{
    align-items:flex-start;
  }

  .booking-add-next{
    margin-top:24px;
    margin-bottom:22px;
  }

  .booking-submit{
    min-height:54px;
  }
}
/* =========================================================
   ASAPI — WIELE GODZIN DLA JEDNYCH ZAJĘĆ
   ========================================================= */

.group-times-textarea{
  min-height:190px;
  resize:vertical;
  line-height:1.55;
}

.time-input-examples{
  margin:-8px 0 15px;
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}

.time-input-examples strong{
  color:var(--text);
}

.selected-times-preview{
  margin-bottom:18px;
}

.selected-times-label{
  margin-bottom:9px;
  color:var(--muted);
  font-size:13px;
  font-weight:900;
}

.selected-times-chips,
.admin-time-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.selected-times-chips span,
.admin-time-chips span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:66px;
  border:1px solid #bfd2ff;
  border-radius:14px;
  background:#f4f7ff;
  color:var(--brand);
  padding:9px 12px;
  font-size:14px;
  font-weight:950;
}

.selected-times-empty{
  border:1px dashed var(--line);
  border-radius:16px;
  padding:13px;
  background:#fbfdff;
  color:var(--muted);
  font-size:13px;
  text-align:center;
}

.summary-time-chips{
  margin-bottom:18px;
}

.multi-time-admin-card{
  align-items:flex-start;
}

.multi-time-admin-main{
  min-width:0;
}

.multi-time-admin-main > b,
.multi-time-admin-main > span{
  display:block;
}

.multi-time-admin-main > span{
  margin-top:4px;
  color:var(--muted);
  font-size:13px;
  line-height:1.4;
}

.admin-time-chips{
  margin-top:12px;
}

/* STRONA WIZYTÓWKA */

.schedule-section-subtitle{
  margin:7px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.4;
}

.grouped-schedule-list{
  display:grid;
  gap:14px;
}

.grouped-schedule-card{
  background:#fff;
  border:1px solid rgba(229,231,235,.98);
  border-radius:25px;
  padding:17px;
  box-shadow:0 12px 36px rgba(15,23,42,.07);
}

.grouped-card-header{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:14px;
  align-items:start;
}

.grouped-day-box{
  width:100px;
  min-height:84px;
  border-radius:20px;
  background:linear-gradient(180deg,#eef5ff,#e7f0ff);
  color:var(--brand);
  padding:12px 9px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  text-align:center;
}

.grouped-day-box span{
  display:block;
  margin-bottom:4px;
  color:#6f8bc6;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.grouped-day-box strong{
  display:block;
  font-size:16px;
  line-height:1.08;
  font-weight:950;
}

.grouped-card-title{
  min-width:0;
}

.schedule-type-badge{
  display:inline-flex;
  margin-bottom:7px;
  border-radius:999px;
  background:#f2f4f7;
  color:#475467;
  padding:6px 9px;
  font-size:10.5px;
  font-weight:950;
}

.grouped-card-title h3{
  margin:0;
  font-size:29px;
  line-height:.96;
  letter-spacing:-.06em;
}

.grouped-price{
  padding-top:5px;
}

.grouped-card-details{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:15px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.grouped-detail{
  display:grid;
  grid-template-columns:31px minmax(0,1fr);
  gap:9px;
  align-items:center;
  min-height:70px;
  padding:11px 11px 11px 0;
}

.grouped-detail:nth-child(odd){
  border-right:1px solid var(--line);
}

.grouped-detail:nth-child(even){
  padding-left:12px;
}

.grouped-detail:nth-child(1),
.grouped-detail:nth-child(2){
  border-bottom:1px solid var(--line);
}

.grouped-detail-icon{
  width:27px;
  height:27px;
  border-radius:10px;
  background:#f8fafc;
  display:grid;
  place-items:center;
  font-size:13px;
}

.grouped-detail small,
.grouped-detail strong,
.grouped-detail div > span{
  display:block;
}

.grouped-detail small{
  margin-bottom:3px;
  color:var(--muted);
  font-size:10px;
  font-weight:850;
}

.grouped-detail strong{
  color:var(--text);
  font-size:14px;
  line-height:1.15;
  font-weight:950;
}

.grouped-detail div > span{
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  line-height:1.2;
  font-weight:750;
}

.schedule-hours-section{
  margin-top:15px;
}

.schedule-hours-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}

.schedule-hours-head strong{
  font-size:15px;
  font-weight:950;
}

.schedule-hours-head span{
  color:var(--muted);
  font-size:11px;
  font-weight:850;
}

.schedule-hours-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}

.schedule-hour-choice{
  min-height:59px;
  border:1px solid #c9d9ff;
  border-radius:15px;
  background:#f6f9ff;
  color:var(--brand);
  padding:8px 6px;
  cursor:pointer;
  transition:
    transform .15s ease,
    border-color .15s ease,
    background .15s ease;
}

.schedule-hour-choice:hover{
  border-color:var(--brand);
  background:#eef4ff;
  transform:translateY(-1px);
}

.schedule-hour-choice:active{
  transform:scale(.97);
}

.schedule-hour-choice strong,
.schedule-hour-choice span{
  display:block;
}

.schedule-hour-choice strong{
  font-size:17px;
  line-height:1;
  font-weight:950;
}

.schedule-hour-choice span{
  margin-top:5px;
  color:#6f8bc6;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
}

@media(max-width:620px){
  .grouped-schedule-card{
    padding:13px;
    border-radius:22px;
  }

  .grouped-card-header{
    grid-template-columns:76px minmax(0,1fr);
    gap:10px;
  }

  .grouped-day-box{
    width:76px;
    min-height:75px;
    border-radius:17px;
    padding:9px 5px;
  }

  .grouped-day-box strong{
    font-size:13px;
  }

  .grouped-card-title h3{
    font-size:25px;
  }

  .grouped-price{
    grid-column:2;
    text-align:left;
    padding-top:0;
    margin-top:-3px;
  }

  .grouped-price strong{
    font-size:21px;
  }

  .grouped-price span{
    display:inline;
    margin-left:3px;
  }

  .grouped-detail{
    grid-template-columns:21px minmax(0,1fr);
    gap:5px;
    min-height:57px;
    padding:8px 6px 8px 0;
  }

  .grouped-detail:nth-child(even){
    padding-left:7px;
  }

  .grouped-detail-icon{
    width:19px;
    height:19px;
    border-radius:7px;
    font-size:9px;
  }

  .grouped-detail small{
    font-size:8.5px;
  }

  .grouped-detail strong{
    font-size:11px;
  }

  .grouped-detail div > span{
    font-size:9px;
  }

  .schedule-hours-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .schedule-hour-choice{
    min-height:55px;
  }

  .schedule-hour-choice strong{
    font-size:16px;
  }
}

@media(max-width:380px){
  .schedule-hours-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .grouped-card-details{
    grid-template-columns:1fr;
  }

  .grouped-detail:nth-child(odd),
  .grouped-detail:nth-child(even){
    border-right:0;
    padding-left:0;
  }

  .grouped-detail{
    border-bottom:1px solid var(--line);
  }

  .grouped-detail:last-child{
    border-bottom:0;
  }
}
/* =========================================================
   WIADOMOŚCI ZE STRONY WIZYTÓWKI
   ========================================================= */

.dashboard-message-shortcut{
  position:relative;
  border-color:#c7d8ff;
  background:
    linear-gradient(
      135deg,
      #ffffff,
      #f5f8ff
    );
}

.dashboard-message-shortcut .icon{
  background:#eaf1ff;
}

.message-list-screen{
  padding-bottom:52px;
}

.message-phone-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:14px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:30px;
  background:#f8fafc;
  box-shadow:
    inset 0 1px 0
    rgba(255,255,255,.8);
}

.message-preview-card{
  width:100%;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  padding:14px;

  display:grid;
  grid-template-columns:
    48px minmax(0,1fr) 18px;

  gap:12px;
  align-items:center;
  text-align:left;
  cursor:pointer;

  box-shadow:
    0 8px 24px
    rgba(15,23,42,.04);

  transition:
    transform .16s ease,
    border-color .16s ease,
    background .16s ease;
}

.message-preview-card:active{
  transform:scale(.985);
}

.message-preview-card.waiting{
  border-color:#bfdbfe;

  background:
    linear-gradient(
      135deg,
      #fff,
      #f8fbff
    );
}

.message-preview-card.answered{
  opacity:.82;
}

.message-preview-avatar{
  width:48px;
  height:48px;
  border-radius:18px;

  display:grid;
  place-items:center;

  background:var(--brand2);
  color:var(--brand);

  font-size:15px;
  font-weight:950;
}

.message-preview-content{
  min-width:0;
  display:block;
}

.message-preview-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.message-preview-topline b{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;

  font-size:17px;
  line-height:1.15;
}

.message-preview-topline small{
  flex:0 0 auto;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
}

.message-preview-status{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:4px;

  color:var(--brand);
  font-size:11px;
  font-weight:900;
}

.message-preview-status em{
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:999px;

  display:grid;
  place-items:center;

  background:#ef4444;
  color:#fff;

  font-size:10px;
  font-style:normal;
}

.message-preview-text{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;

  overflow:hidden;
  margin-top:6px;

  color:var(--muted);
  font-size:13px;
  line-height:1.38;
}

.message-preview-arrow{
  color:#98a2b3;
  font-size:28px;
  line-height:1;
}

.message-thread-screen{
  min-height:780px;
  display:flex;
  flex-direction:column;
  padding-bottom:0;
  background:#f8fafc;
}

.message-thread-top{
  flex:0 0 auto;
}

.message-contact-card{
  flex:0 0 auto;

  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;

  border:1px solid var(--line);
  border-radius:22px;
  padding:13px 14px;
  margin-bottom:16px;
  background:#fff;
}

.message-contact-card span{
  display:block;
  color:var(--muted);
  font-size:11px;
  font-weight:850;
}

.message-contact-card strong{
  display:block;
  margin-top:3px;
  font-size:17px;
  line-height:1.15;
}

.message-contact-card a{
  color:var(--brand);
  font-size:13px;
  font-weight:900;
  text-decoration:none;
}

.message-thread-screen .chat-body{
  flex:1 1 auto;
  min-height:300px;
  max-height:
    calc(100dvh - 275px);

  overflow-y:auto;
  padding:2px 2px 18px;
  scrollbar-width:thin;
}

.message-thread-screen .bubble{
  max-width:86%;
  min-height:auto;
  padding:13px 14px;

  font-size:14px;
  line-height:1.42;

  white-space:normal;
  overflow-wrap:anywhere;
}

.message-thread-screen
.bubble.outgoing{
  min-height:auto;
  background:#2563eb;
  color:#fff;
}

.message-thread-screen
.bubble.outgoing
.bubble-meta{
  color:rgba(255,255,255,.74);
}

.message-composer{
  position:sticky;
  bottom:0;
  z-index:20;
  flex:0 0 auto;

  display:grid;
  grid-template-columns:
    minmax(0,1fr) auto;

  gap:8px;
  align-items:end;

  margin:0 -28px;

  padding:
    12px
    14px
    max(
      16px,
      env(safe-area-inset-bottom)
    );

  border-top:1px solid var(--line);

  background:
    rgba(255,255,255,.96);

  backdrop-filter:blur(18px);
}

.message-composer textarea{
  width:100%;
  min-height:46px;
  max-height:130px;
  resize:vertical;

  border:1px solid var(--line);
  border-radius:17px;
  padding:12px 13px;

  background:#f8fafc;
  color:var(--text);

  font:inherit;
  font-size:14px;
  line-height:1.35;
  outline:none;
}

.message-composer textarea:focus{
  border-color:#93c5fd;

  box-shadow:
    0 0 0 4px
    rgba(37,99,235,.10);
}

.message-composer .send-btn{
  min-height:46px;
  margin-left:0;
  padding:0 16px;
}

.message-composer
.send-btn:disabled{
  opacity:.55;
  cursor:not-allowed;
}

@media(max-width:520px){
  .message-thread-screen{
    min-height:100dvh;
  }

  .message-thread-screen
  .chat-body{
    max-height:none;
  }

  .message-composer{
    margin-left:-28px;
    margin-right:-28px;
  }
}

@media(max-width:380px){
  .message-preview-card{
    grid-template-columns:
      42px minmax(0,1fr) 14px;

    gap:9px;
    padding:12px;
  }

  .message-preview-avatar{
    width:42px;
    height:42px;
    border-radius:15px;
  }

  .message-preview-topline small{
    display:none;
  }
}
/* Poprawka otwierania wiadomości */
button.dashboard-message-shortcut{
  width:100%;
  color:var(--text);
  text-align:left;
  font:inherit;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
}

.dashboard-message-shortcut-content{
  display:block;
  flex:1 1 auto;
  min-width:0;
}

.dashboard-message-read-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
/* =========================================================
   ASYSTENT AI W ROZMOWACH
   ========================================================= */

.ai-reply-card{
  flex:0 0 auto;
  margin:12px 0 14px;
  padding:15px;

  border:1px solid #c7d8ff;
  border-radius:22px;

  background:
    linear-gradient(
      135deg,
      #fff,
      #f5f8ff
    );

  box-shadow:
    0 10px 28px
    rgba(37,99,235,.07);
}

.ai-reply-card.loading{
  border-color:#bfdbfe;
}

.ai-reply-card.ready{
  border-color:#a7f3d0;

  background:
    linear-gradient(
      135deg,
      #fff,
      #f4fff9
    );
}

.ai-reply-card.error{
  border-color:#fecaca;

  background:
    linear-gradient(
      135deg,
      #fff,
      #fff7f7
    );
}

.ai-reply-card-head{
  display:flex;
  align-items:center;
  gap:11px;
}

.ai-reply-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;

  display:grid;
  place-items:center;

  border-radius:16px;

  background:#eaf1ff;
  color:var(--brand);

  font-size:20px;
  font-weight:950;
}

.ai-reply-card.ready
.ai-reply-icon{
  background:#dcfce7;
  color:#15803d;
}

.ai-reply-card.error
.ai-reply-icon{
  background:#fee2e2;
  color:#b91c1c;
}

.ai-reply-card-head strong{
  display:block;
  font-size:15px;
  line-height:1.15;
}

.ai-reply-card-head
span:not(.ai-reply-icon){
  display:block;
  margin-top:3px;

  color:var(--muted);

  font-size:11px;
  font-weight:850;
}

.ai-reply-card p{
  margin:11px 0 0;

  color:var(--muted);

  font-size:12px;
  line-height:1.45;
}

.ai-reply-actions{
  display:grid;
  grid-template-columns:
    1fr 1.25fr;

  gap:8px;
  margin-top:12px;
}

.ai-reply-actions button{
  min-height:40px;

  border:0;
  border-radius:14px;

  padding:9px 11px;

  font:inherit;
  font-size:12px;
  font-weight:900;

  cursor:pointer;
}

.ai-reply-actions button:disabled{
  opacity:.48;
  cursor:not-allowed;
}

.ai-reply-secondary{
  background:#eef2f7;
  color:#344054;
}

.ai-reply-primary{
  background:#2563eb;
  color:#fff;
}

.ai-reply-card.loading
.ai-reply-icon{
  animation:
    asapiAiPulse
    1.25s
    ease-in-out
    infinite;
}

@keyframes asapiAiPulse{
  0%,
  100%{
    transform:scale(1);
    opacity:1;
  }

  50%{
    transform:scale(.92);
    opacity:.62;
  }
}

@media(max-width:380px){
  .ai-reply-actions{
    grid-template-columns:1fr;
  }
}
/* Mały pasek Asystenta Asapi */
.ai-reply-card.ai-reply-card-compact{
  display:flex;
  align-items:center;
  gap:10px;

  margin:8px 0 10px;
  padding:10px 12px;

  min-height:0;

  border-radius:17px;
}

.ai-reply-card-compact .ai-reply-icon{
  width:34px;
  height:34px;
  flex:0 0 34px;

  border-radius:13px;

  font-size:16px;
}

.ai-reply-compact-text{
  min-width:0;
}

.ai-reply-compact-text strong{
  display:block;

  font-size:14px;
  line-height:1.15;
}

.ai-reply-compact-text span{
  display:block;

  margin-top:2px;

  color:var(--muted);

  font-size:11px;
  font-weight:800;
  line-height:1.2;
}

/*
 * Ukrywamy elementy ze starej wersji,
 * gdyby przeglądarka miała jeszcze
 * poprzedni HTML w pamięci.
 */
.ai-reply-card-compact p,
.ai-reply-card-compact .ai-reply-actions{
  display:none !important;
}
/* =========================================================
   ZGŁOSZENIA — krótsza karta mobilna + akcje
   ========================================================= */

.inbox-details{
  margin-top:2px;
}

.inbox-details-toggle{
  display:none;
  width:100%;
  border:1px solid #dbe7f7;
  background:#f8fbff;
  color:var(--text);
  border-radius:16px;
  padding:12px 14px;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
}

.inbox-details-toggle b{
  font-size:18px;
  line-height:1;
  transition:transform .18s ease;
}

.inbox-details-toggle.is-open b{
  transform:rotate(180deg);
}

.inbox-card-actions{
  margin-top:15px;
  padding-top:15px;
  border-top:1px solid #eef2f7;
}

.inbox-action-primary{
  width:100%;
  border:0;
  border-radius:16px;
  background:#2563eb;
  color:#fff;
  padding:13px 16px;
  font-weight:950;
  cursor:pointer;
  box-shadow:
    0 10px 22px rgba(37,99,235,.18);
}

.inbox-action-primary:active,
.inbox-action-list button:active{
  transform:scale(.98);
}

.inbox-action-list{
  display:grid;
  grid-template-columns:
    repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:9px;
}

.inbox-action-list button{
  min-height:42px;
  border:1px solid #dfe5ee;
  border-radius:14px;
  background:#fff;
  color:#344054;
  padding:9px 8px;
  font-size:12px;
  line-height:1.15;
  font-weight:900;
  cursor:pointer;

  transition:
    transform .15s ease,
    border-color .15s ease,
    background .15s ease;
}

.inbox-action-list button:hover{
  border-color:#bfd0ec;
  background:#f8fbff;
}

.inbox-action-list button.danger-soft{
  color:#b42318;
  background:#fffafa;
  border-color:#fee4e2;
}

.dashboard-booking-modal-open{
  overflow:hidden;
}

.dashboard-booking-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(15,23,42,.52);
  backdrop-filter:blur(7px);
}

.dashboard-booking-modal{
  width:min(520px,100%);
  max-height:calc(100dvh - 36px);
  overflow-y:auto;
  overscroll-behavior:contain;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:26px;
  padding:18px;

  box-shadow:
    0 28px 80px rgba(15,23,42,.28);
}

.dashboard-booking-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:16px;
}

.dashboard-booking-modal-head small,
.dashboard-booking-modal-head strong{
  display:block;
}

.dashboard-booking-modal-head small{
  color:var(--muted);
  font-size:12px;
  font-weight:850;
  margin-bottom:4px;
}

.dashboard-booking-modal-head strong{
  font-size:23px;
  line-height:1.05;
  letter-spacing:-.04em;
}

.dashboard-booking-modal-head > button{
  width:38px;
  height:38px;
  flex:0 0 auto;
  border:1px solid #e5e7eb;
  border-radius:13px;
  background:#fff;
  color:#475467;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}

.dashboard-booking-form{
  display:grid;
  gap:12px;
}

.dashboard-booking-form label{
  display:grid;
  gap:6px;
  color:#344054;
  font-size:13px;
  font-weight:900;
}

.dashboard-booking-form input,
.dashboard-booking-form textarea{
  width:100%;
  border:1px solid #d9e0ea;
  border-radius:15px;
  background:#fff;
  color:var(--text);
  padding:12px 13px;
  outline:none;
}

.dashboard-booking-form textarea{
  resize:vertical;
  min-height:92px;
}

.dashboard-booking-form input:focus,
.dashboard-booking-form textarea:focus{
  border-color:#93b4f8;

  box-shadow:
    0 0 0 4px rgba(37,99,235,.10);
}

.dashboard-booking-form-note{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
}

.dashboard-booking-modal-actions{
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:9px;
  margin-top:2px;
}

.dashboard-booking-modal-actions button{
  border:0;
  border-radius:15px;
  padding:13px 14px;
  font-weight:950;
  cursor:pointer;
}

.dashboard-booking-modal-actions .secondary{
  background:#eef2f7;
  color:#344054;
}

.dashboard-booking-modal-actions .primary{
  background:#2563eb;
  color:#fff;
}

.dashboard-booking-modal-actions button:disabled{
  opacity:.55;
  cursor:not-allowed;
}

/*
 * Na komputerze dane są zawsze widoczne.
 */
@media(min-width:641px){
  .inbox-fields{
    display:grid !important;
  }
}

/*
 * Na telefonie dane są zwijane.
 */
@media(max-width:640px){
  .inbox-card{
    padding:14px;
    border-radius:22px;
  }

  .inbox-card-head{
    margin-bottom:10px;
  }

  .inbox-card-head h3{
    font-size:21px;
  }

  .inbox-main{
    margin-bottom:10px;
    border-radius:17px;
    padding:12px;
  }

  .inbox-details-toggle{
    display:flex;
  }

  .inbox-details .inbox-fields{
    display:none;
    margin-top:8px;
    padding:2px 2px 0;
  }

  .inbox-details .inbox-fields.is-open{
    display:grid;
  }

  .inbox-field-row{
    grid-template-columns:1fr;
    gap:3px;
    padding:8px 0;
  }

  .inbox-action-list{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }

  .dashboard-booking-modal-backdrop{
    align-items:flex-end;
    padding:10px;
  }

  .dashboard-booking-modal{
    width:100%;
    max-height:calc(100dvh - 20px);
    border-radius:
      24px 24px 18px 18px;
    padding:17px;
  }
}
/* Rozpoznawanie szerokości samego panelu,
   a nie całego okna przeglądarki */
.phone{
  container-type:inline-size;
  container-name:asapi-phone;
}

@container asapi-phone (max-width:640px){
  .inbox-details-toggle{
    display:flex !important;
  }

  .inbox-details .inbox-fields{
    display:none !important;
    margin-top:8px;
    padding:2px 2px 0;
  }

  .inbox-details .inbox-fields.is-open{
    display:grid !important;
  }

  .inbox-card{
    padding:14px;
    border-radius:22px;
  }

  .inbox-field-row{
    grid-template-columns:1fr;
    gap:3px;
    padding:9px 0;
  }

  .inbox-action-list{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }
}
/* =========================================================
   ZGŁOSZENIA — poprawione rozwijanie i przyciski Asapi
   ========================================================= */

.inbox-card .inbox-details{
  width:100%;
  margin-top:12px;
}

.inbox-card button.inbox-details-toggle{
  appearance:none !important;
  -webkit-appearance:none !important;

  width:100% !important;
  min-height:54px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;

  margin:0 !important;
  padding:11px 13px !important;

  border:1px solid #d9e5f7 !important;
  border-radius:16px !important;

  background:
    linear-gradient(
      135deg,
      #fbfdff,
      #f3f7ff
    ) !important;

  color:var(--text) !important;

  font:inherit !important;
  text-align:left !important;
  cursor:pointer !important;

  box-shadow:
    0 5px 16px
    rgba(37,99,235,.055) !important;

  transition:
    transform .15s ease,
    border-color .15s ease,
    background .15s ease !important;
}

.inbox-card button.inbox-details-toggle:hover{
  border-color:#b8ccf4 !important;

  background:
    linear-gradient(
      135deg,
      #ffffff,
      #eef4ff
    ) !important;
}

.inbox-card button.inbox-details-toggle:active{
  transform:scale(.985);
}

.inbox-details-toggle-content{
  min-width:0;
  display:block;
}

.inbox-details-toggle-content strong{
  display:block;

  color:#344054;

  font-size:13px;
  line-height:1.15;
  font-weight:950;
}

.inbox-details-toggle-content small{
  display:block;

  margin-top:3px;

  color:var(--muted);

  font-size:10px;
  line-height:1.25;
  font-weight:750;
}

.inbox-details-chevron{
  width:30px;
  height:30px;
  flex:0 0 30px;

  display:grid;
  place-items:center;

  border-radius:11px;

  background:#e7efff;
  color:#376edb;

  font-size:18px;
  line-height:1;
  font-weight:950;

  transition:
    transform .18s ease,
    background .18s ease;
}

.inbox-details-toggle.is-open
.inbox-details-chevron{
  transform:rotate(180deg);
  background:#dce8ff;
}

/*
 * Ta reguła jest najważniejsza.
 * Nadpisuje wcześniejsze display:grid !important.
 */
.inbox-card .inbox-fields[hidden]{
  display:none !important;
}

.inbox-card .inbox-fields{
  width:100%;
  margin-top:9px;
}

.inbox-card .inbox-fields.is-open{
  display:grid !important;
}

.inbox-card .inbox-field-row{
  grid-template-columns:
    112px minmax(0,1fr);

  gap:10px;
  padding:10px 1px;

  border-top:1px solid #edf1f6;
}

.inbox-card .inbox-field-row:first-child{
  border-top:0;
}

.inbox-card-actions{
  width:100%;

  margin-top:14px;
  padding-top:14px;

  border-top:1px solid #edf1f6;
}

.inbox-card button.inbox-action-primary{
  appearance:none !important;
  -webkit-appearance:none !important;

  width:100% !important;
  min-height:50px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:9px !important;

  margin:0 !important;
  padding:12px 15px !important;

  border:0 !important;
  border-radius:16px !important;

  background:
    linear-gradient(
      135deg,
      #2563eb,
      #3b75ec
    ) !important;

  color:#fff !important;

  font:inherit !important;
  font-size:14px !important;
  font-weight:950 !important;

  cursor:pointer !important;

  box-shadow:
    0 10px 22px
    rgba(37,99,235,.20) !important;

  transition:
    transform .15s ease,
    box-shadow .15s ease !important;
}

.inbox-card button.inbox-action-primary:hover{
  box-shadow:
    0 13px 28px
    rgba(37,99,235,.25) !important;
}

.inbox-card button.inbox-action-primary:active{
  transform:scale(.985);
}

.inbox-action-icon{
  width:25px;
  height:25px;

  display:grid;
  place-items:center;

  border-radius:9px;

  background:
    rgba(255,255,255,.18);

  color:#fff;

  font-size:14px;
  line-height:1;
  font-weight:950;
}

.inbox-action-list{
  width:100%;

  display:grid !important;
  grid-template-columns:
    repeat(2,minmax(0,1fr)) !important;

  gap:8px !important;
  margin-top:9px !important;
}

.inbox-card
.inbox-action-list
button.inbox-action-button{
  appearance:none !important;
  -webkit-appearance:none !important;

  width:100% !important;
  min-width:0 !important;
  min-height:47px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;

  margin:0 !important;
  padding:10px 11px !important;

  border:1px solid #e0e6ef !important;
  border-radius:14px !important;

  background:#fff !important;
  color:#344054 !important;

  font:inherit !important;
  font-size:11px !important;
  line-height:1.15 !important;
  font-weight:900 !important;

  text-align:left !important;
  cursor:pointer !important;

  box-shadow:
    0 4px 13px
    rgba(15,23,42,.035) !important;

  transition:
    transform .15s ease,
    border-color .15s ease,
    background .15s ease !important;
}

.inbox-card
.inbox-action-list
button.inbox-action-button:hover{
  border-color:#c3d2eb !important;
  background:#f9fbff !important;
}

.inbox-card
.inbox-action-list
button.inbox-action-button:active{
  transform:scale(.98);
}

.inbox-action-small-icon{
  width:27px;
  height:27px;
  flex:0 0 27px;

  display:grid;
  place-items:center;

  border-radius:9px;

  background:#eef2f7;
  color:#475467;

  font-size:13px;
  line-height:1;
  font-weight:950;
}

.inbox-card
.inbox-action-list
button.message{
  border-color:#d6e3fb !important;
  background:#f8fbff !important;
  color:#295fc8 !important;
}

.inbox-card
.inbox-action-list
button.message
.inbox-action-small-icon{
  background:#e5edff;
  color:#376edb;
}

.inbox-card
.inbox-action-list
button.reject{
  border-color:#fee4e2 !important;
  background:#fffafa !important;
  color:#b42318 !important;
}

.inbox-card
.inbox-action-list
button.reject
.inbox-action-small-icon{
  background:#feeceb;
  color:#b42318;
}

.inbox-card
.inbox-action-list
button.delete{
  border-color:#fee4e2 !important;
  background:#fff !important;
  color:#b42318 !important;
}

.inbox-card
.inbox-action-list
button.delete
.inbox-action-small-icon{
  background:#fff1f0;
  color:#b42318;
}

@media(max-width:420px){
  .inbox-card .inbox-field-row{
    grid-template-columns:1fr;
    gap:3px;
    padding:9px 1px;
  }

  .inbox-action-list{
    grid-template-columns:
      repeat(2,minmax(0,1fr)) !important;
  }

  .inbox-card
  .inbox-action-list
  button.inbox-action-button{
    padding:9px !important;
    font-size:10.5px !important;
  }
}
.inbox-details-toggle-content{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
}

.inbox-details-toggle-content strong{
  display:block;
  font-size:14px;
  line-height:1.2;
}

.inbox-details-toggle-content small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  line-height:1.3;
}

/* =========================================================
   GRAFIK / ZAMÓWIENIA W PANELU FIRMY
   ========================================================= */

.dashboard-planner-phone{
  width:min(1540px,calc(100vw - 48px));
  max-width:1540px;
}

.dashboard-planner-screen{
  padding-bottom:145px;
}

.dashboard-planner-shortcut{
  border-color:#c8d8fb;
  background:
    linear-gradient(
      135deg,
      #fff,
      #f4f8ff
    );
}

.dashboard-planner-title-row .h1{
  margin-bottom:8px;
}

.dashboard-planner-navigation{
  display:grid;

  grid-template-columns:
    minmax(170px,1fr)
    minmax(220px,1.15fr)
    minmax(170px,1fr);

  margin:18px 0;

  border:1px solid #dfe6f0;
  border-radius:24px;

  background:#fff;
  overflow:hidden;

  box-shadow:
    0 10px 30px
    rgba(15,23,42,.05);
}

.dashboard-planner-navigation > button{
  border:0;
  background:#fff;
  color:#344054;

  padding:17px 18px;

  font-size:13px;
  font-weight:950;

  cursor:pointer;
}

.dashboard-planner-navigation > button:first-child{
  text-align:left;
  border-right:1px solid #e8edf4;
}

.dashboard-planner-navigation > button:last-child{
  text-align:right;
  border-left:1px solid #e8edf4;
}

.dashboard-planner-navigation > button:hover{
  background:#f7faff;
  color:#2563eb;
}

.dashboard-planner-navigation > div{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  padding:12px 18px;

  text-align:center;

  background:
    linear-gradient(
      135deg,
      #f8fbff,
      #eef4ff
    );
}

.dashboard-planner-navigation small{
  color:#667085;
  font-size:11px;
  font-weight:900;
}

.dashboard-planner-navigation strong{
  margin-top:3px;

  font-size:18px;
  letter-spacing:-.03em;
}

.dashboard-planner-week-scroll{
  width:100%;
  overflow-x:auto;
  padding:2px 0 12px;
}

.dashboard-planner-week-grid{
  min-width:1470px;

  display:grid;

  grid-template-columns:
    repeat(
      7,
      minmax(200px,1fr)
    );

  border:1px solid #e2e8f0;
  border-radius:26px;

  overflow:hidden;
  background:#fff;

  box-shadow:
    0 15px 42px
    rgba(15,23,42,.055);
}

.dashboard-planner-day{
  min-width:0;

  border-right:
    1px solid #e8edf4;

  background:#fbfcfe;
}

.dashboard-planner-day:last-child{
  border-right:0;
}

.dashboard-planner-day-head{
  min-height:75px;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  gap:4px;
  padding:12px;

  border-bottom:
    1px solid #e8edf4;

  background:#fff;
}

.dashboard-planner-day-head span{
  width:31px;
  height:31px;

  display:grid;
  place-items:center;

  border-radius:11px;

  background:#eaf1ff;
  color:#2563eb;

  font-size:14px;
  font-weight:950;
}

.dashboard-planner-day-head strong{
  color:#344054;
  font-size:12px;
}

.dashboard-planner-day-cards{
  min-height:270px;

  display:flex;
  flex-direction:column;

  gap:10px;
  padding:10px;
}

.dashboard-planner-card{
  border:1px solid #e2e8f0;
  border-radius:20px;

  background:#fff;
  padding:13px;

  box-shadow:
    0 7px 22px
    rgba(15,23,42,.04);
}

.dashboard-planner-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;

  gap:8px;
}

.dashboard-planner-kind{
  display:inline-flex;

  padding:5px 8px;

  border-radius:999px;

  background:#eef4ff;
  color:#295fc8;

  font-size:9px;
  font-weight:950;
  text-transform:uppercase;
}

.dashboard-planner-card h3{
  margin:7px 0 0;

  font-size:16px;
  line-height:1.12;
  letter-spacing:-.025em;
}

.dashboard-planner-time{
  flex:0 0 auto;

  padding:6px 8px;

  border-radius:10px;

  background:#111827;
  color:#fff;

  font-size:11px;
  white-space:nowrap;
}

.dashboard-planner-location{
  display:flex;

  gap:8px;
  margin-top:11px;
  padding:9px;

  border-radius:13px;

  background:#f8fafc;
}

.dashboard-planner-location > span{
  color:#2563eb;
  font-weight:950;
}

.dashboard-planner-location strong,
.dashboard-planner-location small{
  display:block;
}

.dashboard-planner-location strong{
  font-size:11px;
}

.dashboard-planner-location small{
  margin-top:2px;

  color:#667085;
  font-size:9px;
}

.dashboard-planner-meta{
  display:flex;
  flex-wrap:wrap;

  gap:5px;
  margin-top:8px;
}

.dashboard-planner-meta span{
  padding:5px 7px;

  border:1px solid #e4eaf2;
  border-radius:999px;

  color:#475467;

  font-size:9px;
  font-weight:850;
}

.dashboard-planner-people{
  margin-top:12px;
  padding-top:11px;

  border-top:
    1px solid #edf1f6;
}

.dashboard-planner-people > strong{
  display:block;

  margin-bottom:7px;

  color:#667085;

  font-size:10px;
  text-transform:uppercase;
}

.dashboard-planner-people-list{
  display:grid;
  gap:6px;
}

.dashboard-planner-person{
  width:100%;
  min-width:0;

  display:grid;

  grid-template-columns:
    30px
    minmax(0,1fr)
    16px;

  align-items:center;

  gap:8px;
  padding:8px;

  border:1px solid #d8e4fb;
  border-radius:13px;

  background:
    linear-gradient(
      135deg,
      #fbfdff,
      #f3f7ff
    );

  text-align:left;
  cursor:pointer;
}

.dashboard-planner-person:hover{
  border-color:#abc2ef;
  background:#eef4ff;
}

.dashboard-planner-person:active{
  transform:scale(.985);
}

.dashboard-planner-person-avatar{
  width:30px;
  height:30px;

  display:grid;
  place-items:center;

  border-radius:10px;

  background:#2563eb;
  color:#fff;

  font-size:12px;
  font-weight:950;
}

.dashboard-planner-person-copy{
  min-width:0;
}

.dashboard-planner-person-copy strong,
.dashboard-planner-person-copy small{
  display:block;

  overflow:hidden;
  text-overflow:ellipsis;
}

.dashboard-planner-person-copy strong{
  font-size:11px;
  white-space:nowrap;
}

.dashboard-planner-person-copy small{
  margin-top:2px;

  color:#667085;
  font-size:8.5px;
}

.dashboard-planner-person-arrow{
  color:#2563eb;
  font-size:20px;
}

.dashboard-planner-empty-day{
  min-height:105px;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  border:1px dashed #dce3ed;
  border-radius:17px;

  color:#98a2b3;
  text-align:center;
}

.dashboard-planner-empty-day span{
  font-size:11px;
  font-weight:900;
}

.dashboard-planner-empty-day small{
  font-size:9px;
}

.dashboard-planner-today{
  margin-top:10px;
}

.dashboard-planner-detail-list{
  display:grid;

  border:1px solid #e5eaf1;
  border-radius:18px;

  overflow:hidden;
}

.dashboard-planner-detail-row{
  display:grid;

  grid-template-columns:
    145px
    minmax(0,1fr);

  gap:12px;
  padding:11px 13px;

  border-top:
    1px solid #edf1f5;
}

.dashboard-planner-detail-row:first-child{
  border-top:0;
}

.dashboard-planner-detail-row span{
  color:#667085;

  font-size:12px;
  font-weight:850;
}

.dashboard-planner-detail-row strong{
  font-size:13px;
  line-height:1.35;

  overflow-wrap:anywhere;
}

.dashboard-planner-order-items{
  margin-bottom:12px;
  padding:12px;

  border:1px solid #e1e8f2;
  border-radius:17px;

  background:#f8fafc;
}

.dashboard-planner-order-items > strong{
  display:block;
  margin-bottom:8px;
}

.dashboard-planner-order-items > div{
  display:flex;
  justify-content:space-between;

  gap:12px;
  padding:7px 0;

  border-top:
    1px solid #e8edf3;
}

.dashboard-planner-order-items > div:first-of-type{
  border-top:0;
}

.dashboard-planner-order-items span{
  font-size:12px;
  font-weight:850;
}

.dashboard-planner-order-items small{
  color:#667085;
  font-size:11px;
}

.dashboard-orders-list{
  display:grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0,1fr)
    );

  gap:12px;
  margin:14px 0;
}

.dashboard-order-card{
  border:1px solid #e1e7ef;
  border-radius:23px;

  background:#fff;
  padding:16px;

  box-shadow:
    0 9px 28px
    rgba(15,23,42,.045);
}

.dashboard-order-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;

  gap:12px;
}

.dashboard-order-card-head span{
  display:inline-flex;

  padding:5px 8px;

  border-radius:999px;

  background:#dcfce7;
  color:#166534;

  font-size:9px;
  font-weight:950;
  text-transform:uppercase;
}

.dashboard-order-card h3{
  margin:7px 0 0;
  font-size:21px;
}

.dashboard-order-card-head > strong{
  color:#475467;

  font-size:11px;
  text-align:right;
}

.dashboard-order-card p{
  min-height:42px;

  margin:12px 0;

  color:#667085;

  font-size:13px;
  line-height:1.4;
}

.dashboard-order-card > button{
  width:100%;

  display:flex;
  align-items:center;
  justify-content:space-between;

  border:1px solid #d5e1f7;
  border-radius:14px;

  background:#f6f9ff;
  color:#295fc8;

  padding:11px 12px;

  font-size:11px;
  font-weight:950;

  cursor:pointer;
}

.dashboard-order-card > button span{
  font-size:18px;
}

@media(max-width:760px){
  .dashboard-planner-phone{
    width:100%;
    max-width:none;
  }

  .dashboard-planner-screen{
    padding-left:18px;
    padding-right:18px;
  }

  .dashboard-planner-navigation{
    grid-template-columns:
      1fr 1fr;

    border-radius:20px;
  }

  .dashboard-planner-navigation > div{
    grid-column:1 / -1;
    grid-row:1;

    border-bottom:
      1px solid #e8edf4;
  }

  .dashboard-planner-navigation > button:first-child,
  .dashboard-planner-navigation > button:last-child{
    border:0;

    padding:13px 8px;

    text-align:center;
    font-size:10px;
  }

  .dashboard-planner-navigation > button:last-child{
    border-left:
      1px solid #e8edf4;
  }

  .dashboard-planner-week-scroll{
    overflow:visible;
  }

  .dashboard-planner-week-grid{
    min-width:0;

    grid-template-columns:1fr;

    gap:10px;

    border:0;
    border-radius:0;

    background:transparent;
    box-shadow:none;
  }

  .dashboard-planner-day{
    border:1px solid #e2e8f0;
    border-radius:21px;

    overflow:hidden;
  }

  .dashboard-planner-day-head{
    min-height:58px;

    flex-direction:row;
    justify-content:flex-start;

    padding:11px 13px;
  }

  .dashboard-planner-day-cards{
    min-height:0;
    padding:9px;
  }

  .dashboard-planner-card h3{
    font-size:17px;
  }

  .dashboard-planner-person-copy strong{
    font-size:12px;
  }

  .dashboard-orders-list{
    grid-template-columns:1fr;
  }

  .dashboard-planner-detail-row{
    grid-template-columns:1fr;
    gap:3px;
  }

  .dashboard-planner-modal-actions{
    grid-template-columns:1fr;
  }
}

/* =========================================================
   GRAFIK — FILTRY DNIA I INSTRUKTORA
   ========================================================= */

.dashboard-planner-controls{
  position:relative;
  z-index:25;

  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;

  gap:8px;
  margin:14px 0 10px;
}

.dashboard-planner-control-button{
  min-height:42px;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  gap:8px;
  padding:10px 14px;

  border:1px solid #dce4ef;
  border-radius:14px;

  background:#fff;
  color:#344054;

  font-size:12px;
  font-weight:950;

  cursor:pointer;

  box-shadow:
    0 5px 15px
    rgba(15,23,42,.035);

  transition:
    border-color .16s ease,
    background .16s ease,
    color .16s ease,
    transform .16s ease;
}

.dashboard-planner-control-button:hover{
  border-color:#b9cdfd;
  background:#f4f8ff;
  color:#2563eb;
}

.dashboard-planner-control-button:active{
  transform:scale(.98);
}

.dashboard-planner-control-button.active{
  border-color:#9fbcf7;
  background:#eaf1ff;
  color:#2559bf;
}

.dashboard-planner-instructor-filter{
  position:relative;
  margin-left:auto;
}

.dashboard-planner-instructor-button{
  min-width:190px;
  max-width:280px;

  justify-content:space-between;
}

.dashboard-planner-instructor-button span{
  min-width:0;

  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.dashboard-planner-instructor-button b{
  flex:0 0 auto;
  color:#2563eb;
  font-size:15px;
}

.dashboard-planner-instructor-menu{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  z-index:70;

  width:min(310px,calc(100vw - 48px));
  max-height:330px;

  overflow-y:auto;
  overscroll-behavior:contain;

  display:grid;
  gap:5px;

  padding:8px;

  border:1px solid #dce4ef;
  border-radius:18px;

  background:#fff;

  box-shadow:
    0 22px 58px
    rgba(15,23,42,.18);
}

.dashboard-planner-instructor-menu button{
  width:100%;

  border:0;
  border-radius:12px;

  background:#fff;
  color:#344054;

  padding:11px 12px;

  text-align:left;
  font-size:12px;
  font-weight:900;

  cursor:pointer;
}

.dashboard-planner-instructor-menu button:hover{
  background:#f4f8ff;
  color:#2563eb;
}

.dashboard-planner-instructor-menu button.active{
  background:#eaf1ff;
  color:#2559bf;
}

.dashboard-planner-instructor-empty{
  padding:12px;

  color:#667085;
  font-size:12px;
  line-height:1.4;
}

.dashboard-planner-navigation em{
  display:block;

  margin-top:4px;

  color:#2563eb;
  font-size:10px;
  font-style:normal;
  font-weight:900;
}

/*
 * Nagłówek dnia jest teraz przyciskiem.
 */
.dashboard-planner-day-head{
  width:100%;

  border:0;
  border-bottom:1px solid #e8edf4;

  font-family:inherit;
  cursor:pointer;

  transition:
    background .16s ease,
    color .16s ease;
}

.dashboard-planner-day-head:hover{
  background:#f3f7ff;
}

.dashboard-planner-day-head.active{
  background:
    linear-gradient(
      135deg,
      #edf4ff,
      #f8fbff
    );
}

.dashboard-planner-day-head small{
  color:#98a2b3;
  font-size:9px;
  font-weight:850;
}

/*
 * Po wybraniu dnia pokazujemy jedną,
 * szerszą kolumnę.
 */
.dashboard-planner-week-grid.single-day{
  min-width:0;

  grid-template-columns:
    minmax(320px,760px);

  justify-content:center;

  border:0;
  border-radius:0;

  overflow:visible;
  background:transparent;

  box-shadow:none;
}

.dashboard-planner-week-grid.single-day
.dashboard-planner-day{
  border:1px solid #e2e8f0;
  border-radius:24px;

  overflow:hidden;

  background:#fbfcfe;

  box-shadow:
    0 15px 42px
    rgba(15,23,42,.055);
}

.dashboard-planner-week-grid.single-day
.dashboard-planner-day-cards{
  min-height:240px;
}

/*
 * Usunięcie ikonki z pierwszą literą imienia.
 */
.dashboard-planner-person{
  grid-template-columns:
    minmax(0,1fr)
    16px;

  padding:
    9px 9px 9px 11px;
}

.dashboard-planner-person-copy strong{
  white-space:normal;
}

@media(max-width:760px){
  .dashboard-planner-controls{
    display:grid;

    grid-template-columns:
      repeat(2,minmax(0,1fr));

    gap:7px;
  }

  .dashboard-planner-control-button{
    width:100%;
    min-height:40px;

    padding:9px 8px;

    font-size:10.5px;
  }

  .dashboard-planner-instructor-filter{
    grid-column:1 / -1;
    margin-left:0;
  }

  .dashboard-planner-instructor-button{
    width:100%;
    max-width:none;
  }

  .dashboard-planner-instructor-menu{
    left:0;
    right:0;

    width:100%;
    max-height:280px;
  }

  .dashboard-planner-week-grid.single-day{
    grid-template-columns:1fr;
  }

  .dashboard-planner-week-grid.single-day
  .dashboard-planner-day{
    border-radius:21px;
  }

  .dashboard-planner-day-head{
    min-height:58px;

    flex-direction:row;
    justify-content:flex-start;

    gap:8px;
  }

  .dashboard-planner-day-head small{
    margin-left:auto;
  }

  .dashboard-planner-person{
    grid-template-columns:
      minmax(0,1fr)
      18px;
  }
}
/* =========================================================
   HR, ROLE I PANEL PRACOWNIKA
   ========================================================= */

button,
input,
select,
textarea{
  font:inherit;
}


.hr-screen{
  padding-bottom:118px;
}


.hr-section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin:26px 0 12px;
}


.hr-section-head > div{
  min-width:0;
}


.hr-section-head b,
.hr-section-head span{
  display:block;
}


.hr-section-head b{
  font-size:20px;
  letter-spacing:-.03em;
}


.hr-section-head span{
  margin-top:4px;
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
}


.hr-section-head > button{
  flex:0 0 auto;

  border:0;
  border-radius:14px;

  background:var(--brand2);
  color:var(--brand);

  padding:10px 13px;

  font-weight:900;
  cursor:pointer;
}


.hr-person-list,
.hr-role-list{
  display:grid;
  gap:10px;
}


.hr-person-card,
.hr-role-card{
  width:100%;

  border:1px solid var(--line);
  border-radius:22px;

  background:#fff;

  padding:15px;

  text-align:left;
  cursor:pointer;

  box-shadow:
    0 8px 28px
    rgba(15,23,42,.04);
}


.hr-person-card{
  display:grid;

  grid-template-columns:
    52px
    minmax(0,1fr)
    auto;

  gap:13px;
  align-items:center;
}


.hr-avatar{
  width:52px;
  height:52px;

  border-radius:18px;

  display:grid;
  place-items:center;

  background:var(--brand2);
  color:var(--brand);

  font-weight:950;
  font-size:17px;
}


.hr-person-main{
  min-width:0;
}


.hr-person-main b,
.hr-person-main small,
.hr-person-main em{
  display:block;

  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}


.hr-person-main b{
  font-size:17px;
}


.hr-person-main small{
  margin-top:4px;

  color:var(--muted);
  font-size:13px;
}


.hr-person-main em{
  margin-top:5px;

  color:#98a2b3;

  font-size:12px;
  font-style:normal;
}


.hr-arrow{
  color:var(--brand);

  font-size:28px;
  line-height:1;
}


.hr-role-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}


.hr-role-card b,
.hr-role-card small{
  display:block;
}


.hr-role-card b{
  font-size:16px;
}


.hr-role-card small{
  margin-top:4px;

  color:var(--muted);
  font-size:12px;
}


.hr-role-card strong{
  color:var(--brand);

  font-size:24px;
}


.hr-field{
  display:grid;
  gap:7px;

  margin:14px 0;
}


.hr-field > span{
  color:#344054;

  font-size:13px;
  font-weight:900;
}


.hr-field > small{
  margin-top:-2px;

  color:var(--muted);

  font-size:12px;
  line-height:1.35;
}


.hr-field .input{
  margin:0;
}


.hr-field select.input{
  appearance:none;

  background-image:
    linear-gradient(
      45deg,
      transparent 50%,
      #667085 50%
    ),
    linear-gradient(
      135deg,
      #667085 50%,
      transparent 50%
    );

  background-position:
    calc(100% - 19px) 50%,
    calc(100% - 14px) 50%;

  background-size:
    5px 5px,
    5px 5px;

  background-repeat:no-repeat;

  padding-right:42px;
}


.hr-field.compact{
  margin-bottom:0;
}


.hr-permissions-card{
  padding:16px;
}


.hr-permission-row{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:16px;

  padding:14px 0;

  border-top:
    1px solid var(--line);

  cursor:pointer;
}


.hr-permission-row:first-of-type{
  border-top:0;
}


.hr-permission-row span{
  min-width:0;
}


.hr-permission-row b,
.hr-permission-row small{
  display:block;
}


.hr-permission-row b{
  font-size:14px;
}


.hr-permission-row small{
  margin-top:4px;

  color:var(--muted);

  font-size:12px;
  line-height:1.35;
}


.hr-permission-row input{
  width:22px;
  height:22px;

  flex:0 0 auto;

  accent-color:var(--brand);
}


.dashboard-planner-own-scope{
  min-height:44px;

  display:flex;
  flex-direction:column;
  justify-content:center;

  border:
    1px solid #b8cdfd;

  border-radius:16px;

  padding:8px 13px;

  background:var(--brand2);
  color:var(--brand);
}


.dashboard-planner-own-scope small,
.dashboard-planner-own-scope strong{
  display:block;
}


.dashboard-planner-own-scope small{
  font-size:11px;
  font-weight:800;

  opacity:.8;
}


.dashboard-planner-own-scope strong{
  margin-top:2px;
  font-size:13px;
}


.inbox-readonly-note{
  margin-top:14px;

  border:
    1px solid #d9e2f2;

  border-radius:16px;

  padding:12px 14px;

  background:#f8fbff;
  color:var(--muted);

  font-size:13px;
  font-weight:800;
}


.employee-account-card .simple-row{
  display:flex;
  justify-content:space-between;

  gap:16px;

  border-top:
    1px solid var(--line);

  padding:13px 0;
}


.employee-account-card
.simple-row span{
  color:var(--muted);

  text-align:right;
  overflow-wrap:anywhere;
}


.danger-soft{
  color:#b42318!important;
  background:#fff1f0!important;
}


@media(max-width:520px){

  .hr-section-head{
    align-items:center;
  }


  .hr-section-head > button{
    padding:9px 11px;
    font-size:13px;
  }


  .hr-person-card{
    grid-template-columns:
      46px
      minmax(0,1fr)
      auto;

    padding:13px;
  }


  .hr-avatar{
    width:46px;
    height:46px;

    border-radius:16px;
  }


  .hr-permission-row{
    align-items:flex-start;
  }
}
/* =========================================================
   ASAPI HR — grafik, dostępność, urlopy i zastępstwa
   ========================================================= */

.hr-screen{
  padding-bottom:110px;
}

.hr-module-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:14px 0 24px;
}

.hr-module-grid > button{
  min-width:0;
  min-height:145px;
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  padding:18px;
  text-align:left;
  cursor:pointer;
  box-shadow:0 8px 28px rgba(15,23,42,.04);
}

.hr-module-grid > button span{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:var(--brand2);
  color:var(--brand);
  font-size:22px;
  margin-bottom:14px;
}

.hr-module-grid > button b,
.hr-module-grid > button small{
  display:block;
}

.hr-module-grid > button b{
  font-size:16px;
  line-height:1.25;
}

.hr-module-grid > button small{
  color:var(--muted);
  margin-top:6px;
  line-height:1.35;
}

.hr-two-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.hr-textarea{
  min-height:110px;
  resize:vertical;
}

.hr-danger-button{
  margin-top:10px;
  color:#b42318!important;
  background:#fff1f0!important;
}

.hr-month-navigation{
  display:grid;
  grid-template-columns:48px 1fr 48px;
  align-items:center;
  gap:10px;
  margin:12px 0 16px;
}

.hr-month-navigation button{
  width:48px;
  height:48px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  font-size:20px;
  cursor:pointer;
}

.hr-month-navigation div{
  text-align:center;
}

.hr-month-navigation small,
.hr-month-navigation strong{
  display:block;
}

.hr-month-navigation small{
  color:var(--muted);
  margin-bottom:3px;
}

.hr-month-navigation strong{
  font-size:18px;
  text-transform:capitalize;
}

.hr-metrics-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:14px;
}

.hr-metric-card{
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  padding:15px 10px;
  text-align:center;
}

.hr-metric-card span,
.hr-metric-card strong{
  display:block;
}

.hr-metric-card span{
  color:var(--muted);
  font-size:12px;
}

.hr-metric-card strong{
  margin-top:5px;
  font-size:21px;
}

.hr-action-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin:14px 0;
}

.hr-action-grid button{
  min-width:0;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:12px 7px;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}

.hr-action-grid button span{
  display:block;
  font-size:19px;
  margin-bottom:5px;
}

.hr-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(160px,1fr));
  gap:10px;
  overflow-x:auto;
  padding:4px 2px 14px;
  scroll-snap-type:x proximity;
}

.hr-calendar-day{
  min-height:190px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  overflow:hidden;
  scroll-snap-align:start;
}

.hr-calendar-day-head{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border:0;
  border-bottom:1px solid var(--line);
  background:#f8fafc;
  padding:12px;
  cursor:pointer;
}

.hr-calendar-day-head strong{
  font-size:21px;
}

.hr-calendar-day-head span{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}

.hr-calendar-day-content{
  padding:9px;
}

.hr-calendar-shift{
  width:100%;
  display:block;
  border:1px solid #dbe5ff;
  border-radius:14px;
  background:#f5f8ff;
  padding:10px;
  margin-bottom:8px;
  text-align:left;
  cursor:pointer;
}

.hr-calendar-shift span,
.hr-calendar-shift b,
.hr-calendar-shift small{
  display:block;
}

.hr-calendar-shift span{
  color:var(--brand);
  font-size:12px;
  font-weight:900;
}

.hr-calendar-shift b{
  margin-top:3px;
  line-height:1.2;
}

.hr-calendar-shift small{
  color:var(--muted);
  margin-top:4px;
  line-height:1.3;
}

.hr-calendar-empty{
  color:#98a2b3;
  font-size:12px;
  text-align:center;
  padding:25px 5px;
}

.hr-person-summary-list{
  display:grid;
  gap:10px;
}

.hr-person-summary{
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  padding:14px;
}

.hr-person-summary b,
.hr-person-summary small{
  display:block;
}

.hr-person-summary small{
  color:var(--muted);
  margin-top:4px;
}

.hr-summary-head{
  margin-top:22px;
}

.hr-published-info{
  margin-top:16px;
  color:var(--muted);
  text-align:center;
  font-size:13px;
}

.hr-warning-card{
  border:1px solid #fedf89;
  border-radius:18px;
  background:#fffaeb;
  color:#93370d;
  padding:14px;
  margin:12px 0;
}

.hr-warning-card b,
.hr-warning-card span{
  display:block;
}

.hr-warning-card span{
  margin-top:6px;
  font-size:13px;
}

.hr-availability-list{
  display:grid;
  gap:10px;
}

.hr-availability-day{
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  padding:15px;
}

.hr-switch-row{
  display:flex;
  gap:12px;
  align-items:center;
}

.hr-switch-row input{
  width:21px;
  height:21px;
  flex:0 0 auto;
}

.hr-switch-row span,
.hr-switch-row b,
.hr-switch-row small{
  display:block;
}

.hr-switch-row small{
  color:var(--muted);
  margin-top:2px;
}

.hr-option-switch{
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  padding:15px;
  margin:10px 0;
}

.hr-check-list{
  display:grid;
  gap:9px;
  margin-bottom:18px;
}

.hr-check-card{
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:13px;
}

.hr-check-card input{
  width:20px;
  height:20px;
}

.hr-check-card span,
.hr-check-card b,
.hr-check-card small{
  display:block;
}

.hr-check-card small{
  color:var(--muted);
  margin-top:3px;
}

.hr-absence-list,
.hr-rule-list,
.hr-location-list,
.hr-replacement-list{
  display:grid;
  gap:12px;
}

.hr-absence-card{
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  padding:17px;
}

.hr-absence-card.status-accepted{
  border-color:#abefc6;
}

.hr-absence-card.status-rejected{
  border-color:#fecdca;
}

.hr-absence-card-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.hr-absence-card-head b,
.hr-absence-card-head span{
  display:block;
}

.hr-absence-card-head span{
  color:var(--muted);
  margin-top:3px;
  font-size:13px;
}

.hr-absence-card-head em{
  height:max-content;
  border-radius:999px;
  background:#f2f4f7;
  padding:6px 9px;
  font-size:11px;
  font-style:normal;
  font-weight:900;
}

.hr-absence-card p{
  color:var(--muted);
  line-height:1.4;
}

.hr-absence-card > small{
  display:block;
  margin-top:10px;
  color:var(--muted);
}

.hr-inline-actions{
  display:flex;
  gap:8px;
  margin-top:14px;
}

.hr-inline-actions button{
  flex:1;
  border:0;
  border-radius:14px;
  background:#ecfdf3;
  color:#027a48;
  padding:11px;
  font-weight:850;
  cursor:pointer;
}

.hr-inline-actions button.danger{
  background:#fef3f2;
  color:#b42318;
}

.hr-rule-card{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  padding:17px;
  text-align:left;
  cursor:pointer;
}

.hr-rule-card span,
.hr-rule-card b,
.hr-rule-card small,
.hr-rule-card em{
  display:block;
}

.hr-rule-card small{
  color:var(--muted);
  margin-top:4px;
}

.hr-rule-card em{
  color:var(--muted);
  margin-top:4px;
  font-size:12px;
  font-style:normal;
}

.hr-rule-card > strong{
  white-space:nowrap;
  color:var(--brand);
}

.hr-weekday-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:7px;
  margin-bottom:18px;
}

.hr-weekday-check input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.hr-weekday-check span{
  display:grid;
  place-items:center;
  min-height:43px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}

.hr-weekday-check input:checked + span{
  border-color:#9db7ff;
  background:var(--brand2);
  color:var(--brand);
}

.hr-location-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  padding:17px;
}

.hr-location-card b,
.hr-location-card span,
.hr-location-card small{
  display:block;
}

.hr-location-card span,
.hr-location-card small{
  color:var(--muted);
  margin-top:4px;
}

.hr-location-card button{
  border:0;
  border-radius:14px;
  background:var(--brand2);
  color:var(--brand);
  padding:10px;
  font-weight:850;
  cursor:pointer;
}

.hr-replacement-card{
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  padding:17px;
}

.hr-replacement-card > div:first-child b,
.hr-replacement-card > div:first-child span,
.hr-replacement-card > div:first-child small{
  display:block;
}

.hr-replacement-card > div:first-child span,
.hr-replacement-card > div:first-child small{
  color:var(--muted);
  margin-top:4px;
}

.hr-replacement-options{
  display:grid;
  gap:8px;
  margin-top:14px;
}

.hr-replacement-options button{
  display:flex;
  justify-content:space-between;
  gap:10px;
  border:1px solid #dbe5ff;
  border-radius:16px;
  background:#f5f8ff;
  padding:12px;
  text-align:left;
  cursor:pointer;
}

.hr-replacement-options b,
.hr-replacement-options small{
  display:block;
}

.hr-replacement-options small{
  color:var(--muted);
}

@media(max-width:720px){
  .hr-module-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .hr-action-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .hr-calendar-grid{
    grid-template-columns:1fr;
    overflow:visible;
  }

  .hr-calendar-day{
    min-height:0;
  }

  .hr-calendar-day-head{
    position:sticky;
    top:0;
    z-index:2;
  }

  .hr-weekday-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media(max-width:430px){
  .hr-two-columns{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }

  .hr-module-grid > button{
    min-height:135px;
    padding:15px;
  }

  .hr-location-card{
    align-items:flex-start;
    flex-direction:column;
  }

  .hr-location-card button{
    width:100%;
  }
}
/* =========================================================
   ASAPI HR — szeroki miesięczny grafik na komputerze
   ========================================================= */

.hr-schedule-shell,
.wide-dashboard-shell{
  width:100%;
  align-items:flex-start;
}

.hr-schedule-phone,
.wide-dashboard-phone{
  width:min(
    1540px,
    calc(100vw - 48px)
  );

  max-width:1540px;
  min-height:calc(100vh - 48px);
}

.hr-schedule-screen{
  width:100%;
  padding-bottom:145px;
}

.hr-schedule-main{
  width:100%;
}

.hr-schedule-top-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  margin-bottom:8px;
}

.hr-schedule-top-row .back-link{
  margin:0;
}

.hr-rules-link{
  min-width:230px;
  display:flex;
  align-items:center;
  gap:10px;

  border:1px solid #d9e3f5;
  border-radius:18px;

  background:#f6f9ff;
  color:#244fa6;

  padding:11px 14px;

  text-align:left;
  cursor:pointer;
}

.hr-rules-link > span:first-child{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  flex:0 0 auto;

  border-radius:13px;

  background:#e7efff;
  font-size:18px;
}

.hr-rules-link > span:nth-child(2){
  min-width:0;
  flex:1;
}

.hr-rules-link b,
.hr-rules-link small{
  display:block;
}

.hr-rules-link small{
  margin-top:2px;
  color:#667085;
  font-size:11px;
}

.hr-rules-link > strong{
  font-size:22px;
}

.hr-schedule-screen
.hr-month-navigation{
  max-width:680px;
  margin:18px auto;
}

.hr-schedule-screen
.hr-metrics-grid{
  max-width:900px;
  margin:0 auto 18px;
}

.hr-schedule-screen
.hr-action-grid{
  grid-template-columns:
    repeat(5,minmax(150px,1fr));

  margin:18px 0;
}

.hr-schedule-screen
.hr-action-grid button{
  min-height:105px;

  display:flex;
  flex-direction:column;
  align-items:flex-start;

  padding:15px;

  text-align:left;
}

.hr-schedule-screen
.hr-action-grid button span{
  margin-bottom:8px;
  font-size:21px;
}

.hr-schedule-screen
.hr-action-grid button b,
.hr-schedule-screen
.hr-action-grid button small{
  display:block;
}

.hr-schedule-screen
.hr-action-grid button b{
  font-size:14px;
}

.hr-schedule-screen
.hr-action-grid button small{
  margin-top:4px;
  color:var(--muted);
  line-height:1.25;
}

.hr-calendar-frame{
  width:100%;

  border:1px solid #dfe6f0;
  border-radius:26px;

  background:#fff;

  padding:14px;

  box-shadow:
    0 10px 34px
    rgba(15,23,42,.06);
}

.hr-calendar-frame-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;

  padding:4px 4px 14px;
}

.hr-calendar-frame-head b,
.hr-calendar-frame-head span{
  display:block;
}

.hr-calendar-frame-head b{
  font-size:18px;
}

.hr-calendar-frame-head span{
  margin-top:4px;
  color:var(--muted);
  font-size:13px;
}

.hr-calendar-frame-head > button{
  border:0;
  border-radius:14px;

  background:var(--brand2);
  color:var(--brand);

  padding:10px 14px;

  font-weight:850;
  cursor:pointer;
}

.hr-calendar-weekdays{
  display:grid;
  grid-template-columns:
    repeat(7,minmax(0,1fr));

  gap:8px;

  margin-bottom:8px;
}

.hr-calendar-weekdays span{
  padding:9px 5px;

  color:#667085;

  font-size:12px;
  font-weight:850;
  text-align:center;
}

.hr-schedule-screen
.hr-calendar-grid{
  display:grid;

  grid-template-columns:
    repeat(7,minmax(0,1fr));

  gap:8px;

  overflow:visible;
  padding:0;
}

.hr-schedule-screen
.hr-calendar-day{
  min-width:0;
  min-height:190px;

  border:1px solid #e4e9f1;
  border-radius:17px;

  background:#fff;

  overflow:hidden;
}

.hr-schedule-screen
.hr-calendar-day-head{
  width:100%;
  min-height:48px;

  display:flex;
  justify-content:space-between;
  align-items:center;

  border:0;
  border-bottom:1px solid #e8edf4;

  background:#f8fafc;

  padding:8px 10px;
  cursor:pointer;
}

.hr-calendar-day-date{
  display:flex;
  align-items:baseline;
  gap:7px;
}

.hr-calendar-day-date strong{
  font-size:18px;
}

.hr-calendar-day-date small{
  color:var(--muted);
  font-size:10px;
  font-weight:850;
}

.hr-calendar-add{
  color:var(--brand);
  font-size:17px;
  font-weight:900;
}

.hr-schedule-screen
.hr-calendar-day-content{
  padding:7px;
}

.hr-schedule-screen
.hr-calendar-shift{
  padding:8px;
  border-radius:11px;
  margin-bottom:6px;
}

.hr-schedule-screen
.hr-calendar-shift-time{
  font-size:10px;
}

.hr-schedule-screen
.hr-calendar-shift b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;

  font-size:12px;
}

.hr-schedule-screen
.hr-calendar-shift small{
  display:-webkit-box;
  overflow:hidden;

  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;

  font-size:10px;
}

.hr-schedule-screen
.hr-calendar-empty{
  padding:28px 4px;
}

.hr-schedule-screen
.hr-person-summary-list{
  display:grid;

  grid-template-columns:
    repeat(
      auto-fit,
      minmax(240px,1fr)
    );

  gap:10px;
}

.hr-person-summary-copy{
  min-width:0;
}

.hr-main-schedule-card{
  border-color:#bdd0ff !important;

  background:
    linear-gradient(
      135deg,
      #fff,
      #f2f6ff
    ) !important;
}

@media(max-width:1100px){
  .hr-schedule-screen
  .hr-action-grid{
    grid-template-columns:
      repeat(3,minmax(0,1fr));
  }

  .hr-schedule-screen
  .hr-calendar-grid{
    grid-template-columns:
      repeat(4,minmax(0,1fr));
  }

  .hr-calendar-weekdays{
    display:none;
  }
}

@media(max-width:760px){
  .hr-schedule-phone,
  .wide-dashboard-phone{
    width:100%;
    max-width:none;
    min-height:100dvh;
  }

  .hr-schedule-screen{
    padding-left:18px;
    padding-right:18px;
  }

  .hr-schedule-top-row{
    align-items:stretch;
    flex-direction:column;
  }

  .hr-rules-link{
    width:100%;
  }

  .hr-schedule-screen
  .hr-action-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }

  .hr-schedule-screen
  .hr-calendar-grid{
    grid-template-columns:1fr;
  }

  .hr-schedule-screen
  .hr-calendar-day{
    min-height:0;
  }

  .hr-schedule-screen
  .hr-calendar-day-head{
    position:static;
  }

  .hr-calendar-frame{
    padding:10px;
  }

  .hr-calendar-frame-head{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media(max-width:430px){
  .hr-schedule-screen
  .hr-action-grid{
    grid-template-columns:1fr 1fr;
  }

  .hr-schedule-screen
  .hr-action-grid button{
    min-height:112px;
    padding:12px;
  }
}
/* =========================================================
   Kawiarnia / cukiernia – karta produktu i dostępność
   ========================================================= */

.food-service-list-card{
  overflow:hidden;
}

.food-service-list-card .service-card-click{
  align-items:center;
}

.food-service-list-card .service-card-main{
  min-width:0;
  flex:1 1 auto;
}

.food-service-list-card .service-card-title{
  max-width:100%;
  overflow-wrap:anywhere;
}

.food-service-list-card .service-card-summary{
  display:block;
  max-width:100%;
  overflow-wrap:anywhere;
}

.service-card-extra-meta,
.food-service-availability{
  display:flex !important;
  align-items:flex-start;
  gap:8px;
  width:100%;
  max-width:100%;
  margin-top:12px;
  color:var(--muted);
  font-size:14px;
  font-weight:850;
  line-height:1.35;
}

.service-card-extra-meta span,
.food-service-availability span{
  display:block;
  min-width:0;
}

.service-card-extra-icon,
.food-service-availability-icon{
  flex:0 0 auto;
  line-height:1.35;
}

.food-service-availability span:last-child{
  overflow-wrap:anywhere;
}

.service-card-arrow{
  flex:0 0 auto;
  align-self:center;
  color:var(--brand);
  font-size:32px;
  font-weight:900;
  line-height:1;
  margin-left:6px;
}


/* Ekran ustawiania dostępności */

.food-availability-screen{
  padding-bottom:36px;
}

.food-availability-lead{
  margin-bottom:18px;
}

.food-availability-options{
  display:grid;
  gap:10px;
  width:100%;
  margin:0 0 16px;
}

.food-availability-option{
  position:relative;
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  align-items:flex-start;
  gap:13px;
  width:100%;
  min-width:0;
  margin:0;
  padding:17px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  cursor:pointer;
  transition:
    border-color .16s ease,
    background .16s ease,
    transform .16s ease,
    box-shadow .16s ease;
}

.food-availability-option:hover{
  border-color:#b8cdfd;
  background:#fbfdff;
}

.food-availability-option:active{
  transform:scale(.99);
}

.food-availability-option.is-selected{
  border-color:#8bb3ff;
  background:var(--brand2);
  box-shadow:
    0 0 0 1px rgba(37,99,235,.08);
}

.food-availability-radio{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}

.food-availability-radio-ui{
  position:relative;
  display:block;
  width:22px;
  height:22px;
  margin-top:1px;
  border:2px solid #cbd5e1;
  border-radius:50%;
  background:#fff;
}

.food-availability-option.is-selected
.food-availability-radio-ui{
  border-color:var(--brand);
}

.food-availability-option.is-selected
.food-availability-radio-ui::after{
  content:'';
  position:absolute;
  inset:4px;
  border-radius:50%;
  background:var(--brand);
}

.food-availability-copy{
  display:block;
  min-width:0;
}

.food-availability-copy strong{
  display:block;
  color:var(--text);
  font-size:16px;
  line-height:1.25;
  font-weight:900;
  letter-spacing:-.015em;
  overflow-wrap:anywhere;
}

.food-availability-copy small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:14px;
  line-height:1.4;
  font-weight:500;
  overflow-wrap:anywhere;
}

.food-availability-fields{
  margin-top:14px;
}

.food-availability-info-card,
.food-availability-settings-card{
  width:100%;
  min-width:0;
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  padding:19px;
  box-shadow:
    0 8px 28px rgba(15,23,42,.04);
}

.food-availability-info-card{
  display:flex;
  align-items:flex-start;
  gap:13px;
}

.food-availability-info-icon{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:34px;
  height:34px;
  border-radius:12px;
  background:#dcfce7;
  color:#166534;
  font-size:16px;
  font-weight:950;
}

.food-availability-info-card strong{
  display:block;
  color:var(--text);
  font-size:17px;
  line-height:1.25;
}

.food-availability-info-card p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.45;
}

.food-availability-field-group{
  display:grid;
  gap:13px;
}

.food-availability-field-heading strong{
  display:block;
  color:var(--text);
  font-size:17px;
  line-height:1.25;
}

.food-availability-field-heading span{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:14px;
  line-height:1.4;
}

.food-availability-date-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:10px;
}

.food-availability-field{
  display:block;
  min-width:0;
}

.food-availability-field > span{
  display:block;
  margin-bottom:5px;
  color:var(--muted);
  font-size:13px;
  font-weight:850;
}

.food-availability-field .input{
  width:100%;
  min-width:0;
  margin:0;
}

.food-availability-field .big-input{
  font-size:18px;
}

.food-availability-divider{
  height:1px;
  margin:18px 0;
  background:var(--line);
}

.food-availability-save{
  margin-top:16px;
}


@media(max-width:520px){
  .food-availability-date-grid{
    grid-template-columns:1fr;
  }

  .food-availability-option{
    padding:15px;
  }

  .food-availability-copy strong{
    font-size:15px;
  }

  .food-availability-copy small{
    font-size:13px;
  }
}
/* Formularz zamówienia na stronie wizytówce
   ma być ukryty do kliknięcia produktu. */

.order-form-backdrop.hidden,
.order-form-modal.hidden{
  display:none !important;
}

.order-form-modal[aria-hidden="true"],
.order-form-backdrop[aria-hidden="true"]{
  display:none !important;
}
/* ======================================================
   Produkty kawiarni / cukierni
   ====================================================== */

.modern-product-list{
  display:grid;
  gap:16px;
}

.modern-product-card{
  display:grid;
  grid-template-columns:
    minmax(180px, 34%)
    minmax(0, 1fr);

  min-height:230px;
  overflow:hidden;

  border:1px solid #e4e8ef;
  border-radius:28px;

  background:#fff;

  box-shadow:
    0 12px 34px
    rgba(15,23,42,.05);

  cursor:pointer;

  transition:
    transform .18s ease,
    border-color .18s ease,
    box-shadow .18s ease;
}

.modern-product-card:hover{
  transform:translateY(-2px);
  border-color:#b8cdfd;

  box-shadow:
    0 18px 42px
    rgba(15,23,42,.09);
}

.modern-product-photo{
  min-width:0;
  min-height:230px;
  overflow:hidden;
  background:#eef3fb;
}

.modern-product-photo img{
  display:block;
  width:100%;
  height:100%;
  min-height:230px;
  object-fit:cover;
}

.modern-product-photo-placeholder{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  min-height:230px;
  font-size:58px;

  background:
    linear-gradient(
      135deg,
      #eef4ff,
      #f8fafc
    );
}

.modern-product-content{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:20px;
  min-width:0;
  padding:25px;
}

.modern-product-copy h3{
  margin:0;
  color:#101828;
  font-size:29px;
  line-height:1.08;
  letter-spacing:-.045em;
}

.modern-product-copy p{
  margin:10px 0 0;
  color:#667085;
  font-size:16px;
  line-height:1.5;
}

.modern-product-footer{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
}

.modern-product-price{
  flex:0 0 auto;
}

.modern-product-price strong{
  display:block;
  color:#2563eb;
  font-size:28px;
  line-height:1;
  letter-spacing:-.035em;
}

.modern-product-price span{
  display:block;
  margin-top:5px;
  color:#667085;
  font-size:13px;
  font-weight:800;
}

.modern-product-order-button{
  width:auto;
  min-width:150px;
  margin:0;
}


/* Podgląd szczegółów produktu */

.product-details-backdrop.hidden,
.product-details-modal.hidden{
  display:none !important;
}

.product-details-backdrop{
  position:fixed;
  inset:0;
  z-index:10030;

  background:
    rgba(15,23,42,.62);

  backdrop-filter:
    blur(8px);
}

.product-details-modal{
  position:fixed;
  z-index:10031;

  left:50%;
  top:50%;

  transform:
    translate(-50%,-50%);

  width:min(
    720px,
    calc(100% - 28px)
  );

  max-height:
    calc(100dvh - 28px);

  overflow:auto;

  border-radius:30px;
  background:#fff;

  box-shadow:
    0 30px 100px
    rgba(15,23,42,.38);
}

.product-details-close{
  position:absolute;
  z-index:2;
  right:16px;
  top:16px;

  width:44px;
  height:44px;

  display:grid;
  place-items:center;

  border:1px solid
    rgba(255,255,255,.75);

  border-radius:15px;

  background:
    rgba(255,255,255,.92);

  color:#344054;

  font-size:27px;
  line-height:1;

  cursor:pointer;

  box-shadow:
    0 8px 24px
    rgba(15,23,42,.14);
}

.product-details-photo{
  width:100%;
  aspect-ratio:16 / 9;
  overflow:hidden;

  border-radius:
    30px 30px 0 0;

  background:#eef4ff;
}

.product-details-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.product-details-photo-placeholder{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  font-size:84px;

  background:
    linear-gradient(
      135deg,
      #eef4ff,
      #f8fafc
    );
}

.product-details-body{
  padding:28px;
}

.product-details-body h2{
  margin:0;
  color:#101828;
  font-size:38px;
  line-height:1.04;
  letter-spacing:-.055em;
}

.product-details-description{
  margin-top:16px;

  color:#475467;

  font-size:17px;
  line-height:1.65;

  white-space:pre-line;
}

.product-details-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;

  margin-top:26px;
  padding-top:22px;

  border-top:1px solid #e5e7eb;
}

.product-details-price{
  color:#2563eb;
  font-size:27px;
  font-weight:950;
  letter-spacing:-.035em;
}


/* Panel admina – opis i zdjęcie */

.food-product-photo-editor{
  position:relative;

  width:100%;
  aspect-ratio:16 / 10;

  margin:14px 0;

  overflow:hidden;

  border:2px dashed #d7deea;
  border-radius:26px;

  background:#f8fafc;

  cursor:pointer;
}

.food-product-photo-editor img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.food-product-photo-placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;

  width:100%;
  height:100%;

  padding:24px;
  text-align:center;
}

.food-product-photo-placeholder span{
  font-size:45px;
}

.food-product-photo-placeholder b{
  font-size:18px;
}

.food-product-photo-placeholder small{
  color:var(--muted);
}

.food-product-photo-change{
  position:absolute;
  right:13px;
  bottom:13px;

  padding:9px 13px;

  border-radius:13px;

  background:
    rgba(17,24,39,.84);

  color:#fff;

  font-size:13px;
  font-weight:900;
}

.food-product-short-description{
  min-height:105px;
  resize:vertical;
}

.food-product-long-description{
  min-height:210px;
  resize:vertical;
}

.form-help{
  display:block;
  color:var(--muted);
  font-size:13px;
  line-height:1.4;
}

.product-photo-enhancement-box{
  margin:14px 0 6px;
  padding:16px 18px;

  border:1px solid var(--line);
  border-radius:22px;

  background:#fff;

  box-shadow:
    0 8px 28px
    rgba(15,23,42,.04);
}

.product-photo-enhancement-box.ready{
  border-color:#cde9d7;
  background:#f5fff8;
}

.product-photo-enhancement-box.fallback{
  border-color:#e4e7ec;
  background:#fbfcfe;
}

.product-photo-enhancement-copy b{
  display:block;
  font-size:16px;
  line-height:1.25;
  color:var(--text);
}

.product-photo-enhancement-copy small{
  display:block;
  margin-top:6px;
  color:var(--muted);
  line-height:1.45;
}

.product-photo-style-switch{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

.product-photo-style-switch button{
  border:1px solid #d8e1f0;
  background:#fff;
  color:var(--text);
  border-radius:999px;
  padding:10px 14px;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
  transition:
    .16s transform,
    .16s border,
    .16s background,
    .16s color;
}

.product-photo-style-switch button:hover{
  border-color:#b8cdfd;
  background:#fbfdff;
}

.product-photo-style-switch button:active{
  transform:scale(.98);
}

.product-photo-style-switch button.active{
  border-color:#b8cdfd;
  background:var(--brand2);
  color:var(--brand);
}

@media(max-width:700px){
  .modern-product-card{
    grid-template-columns:120px minmax(0,1fr);
    min-height:190px;
  }

  .modern-product-photo,
  .modern-product-photo img,
  .modern-product-photo-placeholder{
    min-height:190px;
  }

  .modern-product-content{
    gap:14px;
    padding:17px;
  }

  .modern-product-copy h3{
    font-size:22px;
  }

  .modern-product-copy p{
    display:-webkit-box;
    overflow:hidden;
    font-size:14px;
    line-height:1.4;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
  }

  .modern-product-footer{
    display:grid;
    gap:12px;
  }

  .modern-product-order-button{
    width:100%;
    min-width:0;
  }

  .modern-product-price strong{
    font-size:23px;
  }

  .product-details-modal{
    top:auto;
    bottom:0;

    transform:
      translateX(-50%);

    width:100%;
    max-height:
      calc(100dvh - 8px);

    border-radius:
      28px 28px 0 0;
  }

  .product-details-photo{
    border-radius:
      28px 28px 0 0;
  }

  .product-details-body{
    padding:22px 18px 24px;
  }

  .product-details-body h2{
    font-size:30px;
  }

  .product-details-bottom{
    align-items:stretch;
    flex-direction:column;
  }

  .product-details-bottom .clean-btn{
    width:100%;
  }
}


@media(max-width:470px){
  .modern-product-card{
    grid-template-columns:105px minmax(0,1fr);
  }

  .modern-product-content{
    padding:14px;
  }

  .modern-product-copy h3{
    font-size:19px;
  }

  .modern-product-copy p{
    -webkit-line-clamp:2;
  }
}
/* =====================================================
   Twarde zabezpieczenie modali
   ===================================================== */

[hidden]{
  display:none !important;
}

.order-form-backdrop.hidden,
.order-form-modal.hidden,
.product-details-backdrop.hidden,
.product-details-modal.hidden{
  display:none !important;
}


/* =====================================================
   Twarde ograniczenie zdjęcia na karcie produktu
   ===================================================== */

.modern-product-list{
  display:grid !important;
  gap:16px !important;
  width:100% !important;
}

.modern-product-card{
  display:grid !important;
  grid-template-columns:
    minmax(180px, 34%)
    minmax(0, 1fr) !important;

  width:100% !important;
  min-height:230px !important;
  max-height:320px !important;

  padding:0 !important;
  overflow:hidden !important;
}

.modern-product-photo{
  position:relative !important;

  width:100% !important;
  min-width:0 !important;
  height:100% !important;
  min-height:230px !important;
  max-height:320px !important;

  overflow:hidden !important;
}

.modern-product-photo > img{
  position:absolute !important;
  inset:0 !important;

  display:block !important;

  width:100% !important;
  max-width:100% !important;

  height:100% !important;
  max-height:100% !important;

  object-fit:cover !important;
  object-position:center !important;
}

.modern-product-photo-placeholder{
  width:100% !important;
  height:100% !important;
  min-height:230px !important;
}

.modern-product-content{
  min-width:0 !important;
  overflow:hidden !important;
}


@media(max-width:700px){
  .modern-product-card{
    grid-template-columns:
      120px
      minmax(0, 1fr) !important;

    min-height:190px !important;
    max-height:none !important;
  }

  .modern-product-photo{
    min-height:190px !important;
    max-height:none !important;
  }

  .modern-product-photo-placeholder{
    min-height:190px !important;
  }
}


@media(max-width:470px){
  .modern-product-card{
    grid-template-columns:
      105px
      minmax(0, 1fr) !important;
  }
}
/* =====================================================
   Ostateczne rozmiary zdjęć produktów
   ===================================================== */

/*
 * KARTA PRODUKTU — KOMPUTER
 *
 * Cała karta ma ograniczoną wysokość,
 * a zdjęcie jest kwadratem 240 × 240 px.
 */

.modern-product-card{
  display:grid !important;

  grid-template-columns:
    240px
    minmax(0, 1fr) !important;

  width:100% !important;
  min-height:240px !important;
  max-height:none !important;

  padding:0 !important;
  overflow:hidden !important;
}

.modern-product-photo{
  position:relative !important;

  display:block !important;

  width:240px !important;
  min-width:240px !important;
  max-width:240px !important;

  height:240px !important;
  min-height:240px !important;
  max-height:240px !important;

  overflow:hidden !important;
  align-self:start !important;

  background:#eef3fb !important;
}

.modern-product-photo > img{
  position:absolute !important;
  inset:0 !important;

  display:block !important;

  width:240px !important;
  min-width:240px !important;
  max-width:240px !important;

  height:240px !important;
  min-height:240px !important;
  max-height:240px !important;

  object-fit:cover !important;

  /*
   * object-position jest ustawiany
   * osobno w HTML dla każdego produktu.
   */

  transform:none !important;
}

.modern-product-photo-placeholder{
  width:240px !important;
  min-width:240px !important;
  max-width:240px !important;

  height:240px !important;
  min-height:240px !important;
  max-height:240px !important;
}


/*
 * DUŻY PODGLĄD — KOMPUTER
 *
 * Modal ma maksymalnie 720 px szerokości,
 * a zdjęcie maksymalnie 520 × 520 px.
 */

.product-details-modal{
  width:min(
    720px,
    calc(100vw - 40px)
  ) !important;

  max-height:
    calc(100dvh - 40px) !important;

  overflow:auto !important;
}

.product-details-photo{
  position:relative !important;

  display:block !important;

  width:min(
    520px,
    100%
  ) !important;

  height:min(
    520px,
    calc(100vw - 40px)
  ) !important;

  max-width:520px !important;
  max-height:520px !important;

  aspect-ratio:1 / 1 !important;

  margin:22px auto 0 !important;

  overflow:hidden !important;

  border-radius:24px !important;

  background:#eef4ff !important;
}

.product-details-photo > img{
  position:absolute !important;
  inset:0 !important;

  display:block !important;

  width:100% !important;
  min-width:100% !important;
  max-width:100% !important;

  height:100% !important;
  min-height:100% !important;
  max-height:100% !important;

  object-fit:cover !important;

  transform:none !important;
}

.product-details-photo-placeholder{
  width:100% !important;
  height:100% !important;

  min-width:0 !important;
  min-height:0 !important;

  aspect-ratio:1 / 1 !important;
}


/*
 * EDYTOR W PANELU ADMINA
 */

.food-product-photo-editor{
  width:min(
    100%,
    430px
  ) !important;

  aspect-ratio:1 / 1 !important;

  max-height:430px !important;

  margin:
    14px auto !important;
}

.food-product-photo-editor > img{
  width:100% !important;
  height:100% !important;

  object-fit:cover !important;
  transform:none !important;
}

.product-photo-position-editor{
  width:100%;

  margin:0 0 18px;
  padding:18px;

  border:1px solid var(--line);
  border-radius:24px;

  background:#fff;

  box-shadow:
    0 8px 28px
    rgba(15,23,42,.04);
}

.product-photo-range-row{
  display:grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  gap:8px 12px;

  align-items:center;

  margin-top:16px;
}

.product-photo-range-row > span{
  color:var(--text);
  font-size:14px;
  font-weight:850;
}

.product-photo-range-row > strong{
  color:var(--brand);
  font-size:13px;
}

.product-photo-range-row > input{
  grid-column:1 / -1;

  width:100%;

  accent-color:var(--brand);
}

.product-photo-reset-btn{
  margin-top:16px;
}


.product-photo-variant-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}

.product-photo-variant-card{
  border:1px solid #d8e1f0;
  background:#fff;
  border-radius:18px;
  padding:10px;
  text-align:left;
  cursor:pointer;
  transition:
    .16s transform,
    .16s border,
    .16s background,
    .16s box-shadow;
}

.product-photo-variant-card:hover{
  border-color:#b8cdfd;
  background:#fbfdff;
}

.product-photo-variant-card:active{
  transform:scale(.985);
}

.product-photo-variant-card.active{
  border-color:#b8cdfd;
  background:var(--brand2);
  box-shadow:
    0 8px 24px
    rgba(37,99,235,.10);
}

.product-photo-variant-thumb{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  aspect-ratio:1 / 1;
  overflow:hidden;
  border-radius:14px;
  background:#f8fafc;
  margin-bottom:8px;
}

.product-photo-variant-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.product-photo-variant-card strong{
  display:block;
  font-size:13px;
  line-height:1.2;
  color:var(--text);
}

.product-photo-variant-card small{
  display:block;
  margin-top:2px;
  font-size:11px;
  line-height:1.3;
  color:var(--muted);
}

.product-photo-variant-empty{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}

@media(max-width:700px){
  /*
   * Domyślnie warianty mogą pozostać
   * jeden pod drugim.
   */
  .product-photo-variant-grid{
    grid-template-columns:1fr;
  }

  /*
   * Gdy dostępne są dokładnie trzy
   * wersje zdjęcia, pokazujemy je
   * w jednym rzędzie.
   */
  .product-photo-variant-grid.has-three-variants{
    grid-template-columns:
      repeat(
        3,
        minmax(0,1fr)
      );

    gap:6px;
  }

  .product-photo-variant-grid.has-three-variants
  .product-photo-variant-card{
    min-width:0;
    padding:6px;

    border-radius:14px;

    text-align:center;
  }

  .product-photo-variant-grid.has-three-variants
  .product-photo-variant-thumb{
    margin-bottom:6px;
    border-radius:10px;
  }

  .product-photo-variant-grid.has-three-variants
  .product-photo-variant-card strong{
    font-size:11px;
    line-height:1.15;
  }

  .product-photo-variant-grid.has-three-variants
  .product-photo-variant-card small{
    margin-top:2px;

    font-size:9px;
    line-height:1.2;
  }
}


/*
 * TELEFON
 */

@media(max-width:700px){
  .modern-product-card{
    grid-template-columns:
      116px
      minmax(0, 1fr) !important;

    min-height:116px !important;
  }

  .modern-product-photo,
  .modern-product-photo > img,
  .modern-product-photo-placeholder{
    width:116px !important;
    min-width:116px !important;
    max-width:116px !important;

    height:116px !important;
    min-height:116px !important;
    max-height:116px !important;
  }

  .modern-product-content{
    min-height:116px !important;
    padding:14px !important;
  }

  .product-details-modal{
    width:100% !important;
    max-width:100% !important;

    max-height:
      calc(100dvh - 8px) !important;
  }

  .product-details-photo{
    width:min(
      360px,
      calc(100vw - 32px)
    ) !important;

    height:min(
      360px,
      calc(100vw - 32px)
    ) !important;

    max-width:360px !important;
    max-height:360px !important;

    margin:
      58px auto 0 !important;

    border-radius:22px !important;
  }

  .food-product-photo-editor{
    width:100% !important;
    max-width:360px !important;
    max-height:360px !important;
  }
}


@media(max-width:430px){
  .modern-product-card{
    grid-template-columns:
      104px
      minmax(0, 1fr) !important;

    min-height:104px !important;
  }

  .modern-product-photo,
  .modern-product-photo > img,
  .modern-product-photo-placeholder{
    width:104px !important;
    min-width:104px !important;
    max-width:104px !important;

    height:104px !important;
    min-height:104px !important;
    max-height:104px !important;
  }

  .modern-product-content{
    min-height:104px !important;
    padding:12px !important;
  }

  .product-details-photo{
    width:
      calc(100vw - 28px) !important;

    height:
      calc(100vw - 28px) !important;

    max-width:340px !important;
    max-height:340px !important;
  }
}
/* =====================================================
   Mniejsze zdjęcie w szczegółach produktu
   Kawiarnia / restauracja
   ===================================================== */

/*
 * KOMPUTER
 *
 * Poprzednio: 520 × 520 px
 * Teraz:     400 × 400 px

 */
@media (min-width:701px){
  .product-details-photo{
    width:min(
      300px,
      calc(100vw - 80px)
    ) !important;

    height:min(
     300px,
      calc(100vw - 80px)
    ) !important;

    max-width:300px !important;
    max-height:300px !important;

    aspect-ratio:1 / 1 !important;

    margin:
      22px auto 0 !important;
  }
}


/*
 * TELEFON
 *
 * Zdjęcie jest tylko lekko mniejsze.
 * Poprzednio maksymalnie 360 × 360 px,

 */
@media (max-width:700px){
  .product-details-photo{
    width:min(
      320px,
      calc(100vw - 40px)
    ) !important;

    height:min(
      320px,
      calc(100vw - 40px)
    ) !important;

    max-width:320px !important;
    max-height:320px !important;

    aspect-ratio:1 / 1 !important;

    margin:
      58px auto 0 !important;
  }
}


/*
 * MNIEJSZE TELEFONY
 *
 * Poprzednio maksymalnie 340 × 340 px,
 
 */
@media (max-width:430px){
  .product-details-photo{
    width:min(
      300px,
      calc(100vw - 40px)
    ) !important;

    height:min(
      300px,
      calc(100vw - 40px)
    ) !important;

    max-width:300px !important;
    max-height:300px !important;
  }
}
/* =====================================================
   Ustawienia odbioru produktu
   ===================================================== */

.food-pickup-note{
  width:100%;
  min-height:125px;
  resize:vertical;
  line-height:1.5;
}

.food-pickup-screen
.food-availability-info-card{
  margin:0;
}

.food-pickup-screen
.food-availability-fields{
  margin-top:18px;
}

.food-pickup-screen
.food-availability-save{
  margin-top:18px;
}
/* =====================================================
   Minimalny czas przygotowania produktu
   ===================================================== */

.food-pickup-screen select.input{
  width:100%;
  min-width:0;

  font:inherit;
  color:var(--text);

  cursor:pointer;
}

.food-pickup-preparation-note{
  display:grid;
  gap:7px;

  margin-top:14px;
  padding:14px 16px;

  border:1px solid #dbe5f5;
  border-radius:18px;

  background:#f7faff;
}

.food-pickup-preparation-note strong{
  color:#1d4ed8;
  font-size:13px;
}

.food-pickup-preparation-note span{
  display:block;

  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}
/* =====================================================
   Dni przygotowania i odbioru
   ===================================================== */

.food-pickup-days-section{
  margin-top:18px;
}

.food-pickup-days-heading{
  display:grid;
  gap:5px;
  margin-bottom:12px;
}

.food-pickup-days-heading strong{
  color:var(--text);
  font-size:15px;
  line-height:1.25;
}

.food-pickup-days-heading span{
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}

.food-pickup-days-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:7px;
}

.food-pickup-day-option{
  position:relative;
  display:block;
  min-width:0;
  cursor:pointer;
}

.food-pickup-day-option input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}

.food-pickup-day-option span{
  min-height:42px;

  display:flex;
  align-items:center;
  justify-content:center;

  padding:8px 4px;

  border:1px solid var(--line);
  border-radius:13px;

  background:#fff;
  color:var(--muted);

  font-size:13px;
  line-height:1;
  font-weight:900;

  transition:
    border-color .16s ease,
    background .16s ease,
    color .16s ease,
    transform .16s ease;
}

.food-pickup-day-option:hover span{
  border-color:#b8cdfd;
  background:#f8fbff;
}

.food-pickup-day-option.is-selected span{
  border-color:#8bb3ff;
  background:var(--brand2);
  color:var(--brand);
}

.food-pickup-day-option:active span{
  transform:scale(.96);
}

.food-pickup-day-option input:focus-visible + span{
  outline:3px solid rgba(37,99,235,.18);
  outline-offset:2px;
}

.food-pickup-days-help{
  display:block;
  margin-top:10px;

  color:var(--muted);
  font-size:12px;
  line-height:1.45;
}

@media(max-width:520px){
  .food-pickup-days-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
/* =====================================================
   Kody odbioru i SMS-y zamówień
   ===================================================== */

.dashboard-planner-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.dashboard-pickup-lookup-button{
  flex:0 0 auto;
  border:1px solid #c8d8fb;
  border-radius:16px;
  background:#eef4ff;
  color:#1d4ed8;
  padding:12px 15px;
  font-size:13px;
  font-weight:950;
  cursor:pointer;
}

.dashboard-pickup-status-badge[
  data-status="waiting"
]{
  background:#fff7ed;
  color:#b54708;
}

.dashboard-pickup-status-badge[
  data-status="ready"
]{
  background:#dcfce7;
  color:#166534;
}

.dashboard-pickup-status-badge[
  data-status="collected"
]{
  background:#f1f5f9;
  color:#475467;
}

.dashboard-pickup-status-badge[
  data-status="revoked"
]{
  background:#fee2e2;
  color:#b42318;
}

.dashboard-pickup-meta{
  display:grid;
  grid-template-columns:
    repeat(2,minmax(0,1fr));
  gap:8px;
  margin:12px 0;
}

.dashboard-pickup-meta > div{
  min-width:0;
  padding:10px 11px;
  border:1px solid #e5eaf1;
  border-radius:14px;
  background:#f8fafc;
}

.dashboard-pickup-meta small,
.dashboard-pickup-meta strong{
  display:block;
}

.dashboard-pickup-meta small{
  color:#667085;
  font-size:9px;
  font-weight:850;
}

.dashboard-pickup-meta strong{
  margin-top:4px;
  font-size:11px;
  line-height:1.3;
  overflow-wrap:anywhere;
}

.dashboard-pickup-actions{
  display:grid;
  gap:8px;
  margin-top:9px;
}

.dashboard-pickup-actions button{
  width:100%;
  border:0;
  border-radius:14px;
  padding:11px 12px;
  font-size:11px;
  font-weight:950;
  cursor:pointer;
}

.dashboard-pickup-ready{
  background:#111827;
  color:#fff;
}

.dashboard-pickup-complete{
  background:#16a34a;
  color:#fff;
}

.dashboard-pickup-secondary{
  border:
    1px solid #d5e1f7
    !important;

  background:#f6f9ff;
  color:#295fc8;
}

.dashboard-pickup-collected{
  display:grid;
  gap:3px;
  margin-top:10px;
  padding:11px 12px;
  border:1px solid #dbe4ec;
  border-radius:14px;
  background:#f8fafc;
  color:#475467;
}

.dashboard-pickup-collected strong{
  font-size:12px;
}

.dashboard-pickup-collected span{
  font-size:10px;
}

@media(max-width:700px){
  .dashboard-planner-title-row{
    display:grid;
  }

  .dashboard-pickup-lookup-button{
    width:100%;
  }

  .dashboard-pickup-meta{
    grid-template-columns:1fr;
  }
}
/* =====================================================
   Odbiór zamówień po kodzie i QR
   ===================================================== */

.dashboard-pickup-header-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:9px;
}

.dashboard-pickup-lookup-button.scanner{
  border-color:#bbf7d0;
  background:#ecfdf3;
  color:#15803d;
}

.dashboard-pickup-panel{
  margin:14px 0;
  padding:14px;
  border:1px solid #dbe4f0;
  border-radius:18px;
  background:#fff;
}

.dashboard-pickup-panel.compact{
  margin:12px 0 8px;
  padding:12px;
  background:#f8fafc;
}

.dashboard-pickup-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}

.dashboard-pickup-status-badge{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:6px 10px;
  border-radius:999px;
  background:#f1f5f9;
  color:#475467;
  font-size:10px;
  font-weight:950;
}

.dashboard-pickup-sms-state{
  color:#667085;
  font-size:10px;
  font-weight:800;
  text-align:right;
}

.dashboard-pickup-verified{
  display:grid;
  gap:3px;
  margin-top:10px;
  padding:11px 12px;
  border:1px solid #bbf7d0;
  border-radius:14px;
  background:#ecfdf3;
  color:#166534;
}

.dashboard-pickup-verified strong{
  font-size:12px;
}

.dashboard-pickup-verified span{
  font-size:10px;
  line-height:1.4;
}

.dashboard-pickup-link-box{
  grid-column:1 / -1;
}

.dashboard-pickup-link-box a{
  display:block;
  margin-top:4px;
  color:#1d4ed8;
  font-size:11px;
  font-weight:850;
  line-height:1.35;
  overflow-wrap:anywhere;
}

.dashboard-pickup-code-entry{
  display:grid;
  gap:12px;
  padding-top:8px;
}

.dashboard-pickup-code-entry p{
  margin:0;
  color:#667085;
  line-height:1.45;
}

.dashboard-pickup-code-entry input,
.dashboard-pickup-scanner-fallback input{
  width:100%;
  border:1px solid #d0d5dd;
  border-radius:16px;
  background:#fff;
  padding:15px 16px;
  color:#101828;
  font-size:18px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
  outline:0;
}

.dashboard-pickup-code-entry input:focus,
.dashboard-pickup-scanner-fallback input:focus{
  border-color:#84adff;
  box-shadow:
    0 0 0 4px rgba(37,99,235,.12);
}

.dashboard-pickup-code-entry button,
.dashboard-pickup-scanner-fallback button{
  width:100%;
  border:0;
  border-radius:15px;
  background:#111827;
  color:#fff;
  padding:13px 15px;
  font-weight:950;
  cursor:pointer;
}

.dashboard-pickup-scanner{
  display:grid;
  gap:12px;
}

.dashboard-pickup-qr-reader{
  width:100%;
  min-height:280px;
  overflow:hidden;
  border-radius:20px;
  background:#111827;
}

.dashboard-pickup-qr-reader video{
  width:100% !important;
  max-height:390px;
  display:block;
  border-radius:20px;
  object-fit:cover;
}

.dashboard-pickup-qr-reader
#dashboardPickupQrReader__scan_region{
  min-height:260px;
  background:#111827;
}

.dashboard-pickup-qr-reader img{
  max-width:82px !important;
}

.dashboard-pickup-scanner > p{
  margin:0;
  padding:11px 12px;
  border-radius:14px;
  background:#f8fafc;
  color:#475467;
  font-size:12px;
  line-height:1.45;
}

.dashboard-pickup-scanner-fallback{
  display:grid;
  gap:9px;
  padding-top:12px;
  border-top:1px solid #e4e7ec;
}

.dashboard-pickup-scanner-fallback label{
  color:#344054;
  font-size:12px;
  font-weight:900;
}

@media(max-width:700px){
  .dashboard-pickup-header-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }

  .dashboard-pickup-header-actions
  .dashboard-pickup-lookup-button{
    width:100%;
  }

  .dashboard-pickup-panel-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .dashboard-pickup-sms-state{
    text-align:left;
  }
}

@media(max-width:420px){
  .dashboard-pickup-header-actions{
    grid-template-columns:1fr;
  }
}
/* =====================================================
   Minimalistyczne karty zamówień gastronomicznych
   ===================================================== */

.dashboard-orders-list{
  display:grid;
  grid-template-columns:
    repeat(
      2,
      minmax(0,1fr)
    );

  gap:14px;
  margin:18px 0;
}

.dashboard-order-card{
  min-width:0;

  display:flex;
  flex-direction:column;
  gap:14px;

  padding:18px;

  border:1px solid #e4e7ec;
  border-radius:22px;

  background:#fff;

  box-shadow:
    0 8px 24px
    rgba(15,23,42,.035);
}

.dashboard-order-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:10px;
}

.dashboard-order-topline > small{
  color:#98a2b3;

  font-size:10px;
  font-weight:750;
  text-align:right;
}

.dashboard-order-products{
  padding:15px;

  border:1px solid #e7ebf0;
  border-radius:18px;

  background:#fbfcfe;
}

.dashboard-order-section-label{
  display:block;

  margin-bottom:9px;

  color:#667085;

  font-size:10px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.dashboard-order-products-list{
  display:grid;
  gap:10px;
}

.dashboard-order-product-row{
  min-width:0;

  display:grid;

  grid-template-columns:
    auto
    minmax(0,1fr)
    auto;

  align-items:start;
  gap:10px;
}

.dashboard-order-quantity{
  min-width:38px;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:6px 8px;

  border-radius:11px;

  background:#eef4ff;
  color:#1d4ed8;

  font-size:13px;
  font-weight:950;
}

.dashboard-order-product-row > strong{
  padding-top:3px;

  color:#101828;

  font-size:18px;
  line-height:1.25;
  letter-spacing:-.025em;

  overflow-wrap:anywhere;
}

.dashboard-order-item-price{
  padding-top:4px;

  color:#344054;

  font-size:12px;
  font-weight:900;

  white-space:nowrap;
}

.dashboard-order-essential-meta{
  display:grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0,1fr)
    );

  gap:9px;
}

.dashboard-order-essential-meta > div{
  min-width:0;

  padding:10px 12px;

  border:1px solid #eaecf0;
  border-radius:14px;

  background:#fff;
}

.dashboard-order-essential-meta small,
.dashboard-order-essential-meta strong{
  display:block;
}

.dashboard-order-essential-meta small{
  margin-bottom:3px;

  color:#98a2b3;

  font-size:9px;
  font-weight:850;
  text-transform:uppercase;
}

.dashboard-order-essential-meta strong{
  color:#344054;

  font-size:12px;
  line-height:1.35;

  overflow-wrap:anywhere;
}

.dashboard-order-customer{
  display:flex;
  align-items:baseline;

  gap:7px;
  padding:0 2px;
}

.dashboard-order-customer span{
  color:#98a2b3;

  font-size:10px;
  font-weight:800;
}

.dashboard-order-customer strong{
  color:#475467;

  font-size:12px;
  font-weight:850;

  overflow-wrap:anywhere;
}

.dashboard-order-card >
.dashboard-order-details-button{
  width:100%;

  display:flex;
  align-items:center;
  justify-content:space-between;

  margin-top:auto;
  padding:10px 12px;

  border:1px solid #e1e7ef;
  border-radius:14px;

  background:#fff;
  color:#475467;

  font-size:11px;
  font-weight:900;

  cursor:pointer;

  transition:
    border-color .16s ease,
    background .16s ease,
    color .16s ease;
}

.dashboard-order-card >
.dashboard-order-details-button:hover{
  border-color:#c8d8fb;

  background:#f8fbff;
  color:#1d4ed8;
}

.dashboard-order-card >
.dashboard-order-details-button b{
  color:#98a2b3;

  font-size:19px;
  line-height:1;
}

.dashboard-orders-csv-button{
  flex:0 0 auto;

  border:1px solid #d0d5dd;
  border-radius:12px;

  background:#fff;
  color:#475467;

  padding:9px 11px;

  font-size:11px;
  font-weight:900;

  cursor:pointer;
}

.dashboard-orders-csv-button:hover{
  border-color:#98a2b3;

  background:#f8fafc;
  color:#101828;
}

/*
 * Przyciski kodu i QR pozostają dostępne,
 * ale są mniejsze i mniej dominujące.
 */
.dashboard-pickup-header-actions
.dashboard-pickup-lookup-button{
  border-radius:12px;

  padding:9px 11px;

  font-size:11px;
}

@media(max-width:760px){
  .dashboard-orders-list{
    grid-template-columns:1fr;
  }
}

@media(max-width:520px){
  .dashboard-order-card{
    gap:12px;
    padding:15px;

    border-radius:20px;
  }

  .dashboard-order-product-row > strong{
    font-size:17px;
  }

  .dashboard-order-essential-meta{
    grid-template-columns:1fr;
  }

  .dashboard-order-topline{
    align-items:flex-start;
  }

  .dashboard-pickup-header-actions{
    grid-template-columns:
      1fr 1fr;
  }

  .dashboard-orders-csv-button{
    grid-column:1 / -1;

    width:max-content;

    justify-self:start;
  }
}
/* =====================================================
   Historia odbiorów zamówień
   ===================================================== */

.dashboard-orders-history-button{
  flex:0 0 auto;

  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;

  border:1px solid #d8dee8;
  border-radius:12px;

  background:#fff;
  color:#344054;

  padding:9px 11px;

  font-size:11px;
  font-weight:900;

  cursor:pointer;
}

.dashboard-orders-history-button:hover{
  border-color:#b9c4d3;

  background:#f8fafc;
  color:#101828;
}

.dashboard-orders-history-button span{
  min-width:20px;
  height:20px;

  display:inline-grid;
  place-items:center;

  padding:0 6px;

  border-radius:999px;

  background:#eef2f7;
  color:#475467;

  font-size:10px;
  font-weight:950;
}

.dashboard-pickup-history-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;

  gap:18px;
}

.dashboard-pickup-history-refresh{
  flex:0 0 auto;

  border:1px solid #c8d8fb;
  border-radius:12px;

  background:#eef4ff;
  color:#1d4ed8;

  padding:9px 12px;

  font-size:11px;
  font-weight:950;

  cursor:pointer;
}

.dashboard-pickup-history-list{
  display:grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0,1fr)
    );

  gap:14px;
  margin:18px 0;
}

.dashboard-pickup-history-card{
  min-width:0;

  display:grid;
  gap:14px;

  padding:18px;

  border:1px solid #e4e7ec;
  border-radius:22px;

  background:#fff;

  box-shadow:
    0 8px 24px
    rgba(15,23,42,.035);
}

.dashboard-pickup-history-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;

  gap:12px;
}

.dashboard-pickup-history-head > div span,
.dashboard-pickup-history-head > div strong{
  display:block;
}

.dashboard-pickup-history-head > div span{
  color:#98a2b3;

  font-size:9px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.dashboard-pickup-history-head > div strong{
  margin-top:4px;

  color:#101828;

  font-size:15px;
  line-height:1.25;
}

.dashboard-pickup-history-status{
  display:inline-flex;
  align-items:center;

  min-height:28px;

  padding:6px 10px;

  border-radius:999px;

  background:#ecfdf3;
  color:#15803d;

  font-size:10px;
  font-weight:950;
}

.dashboard-pickup-history-products{
  padding:15px;

  border:1px solid #e7ebf0;
  border-radius:18px;

  background:#fbfcfe;
}

.dashboard-pickup-history-grid{
  display:grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0,1fr)
    );

  gap:9px;
}

.dashboard-pickup-history-grid > div{
  min-width:0;

  padding:11px 12px;

  border:1px solid #eaecf0;
  border-radius:14px;

  background:#fff;
}

.dashboard-pickup-history-grid small,
.dashboard-pickup-history-grid strong,
.dashboard-pickup-history-grid span{
  display:block;
}

.dashboard-pickup-history-grid small{
  margin-bottom:4px;

  color:#98a2b3;

  font-size:9px;
  font-weight:850;
  text-transform:uppercase;
}

.dashboard-pickup-history-grid strong{
  color:#344054;

  font-size:12px;
  line-height:1.35;

  overflow-wrap:anywhere;
}

.dashboard-pickup-history-grid span{
  margin-top:3px;

  color:#667085;

  font-size:10px;
  line-height:1.35;

  overflow-wrap:anywhere;
}

.dashboard-pickup-history-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:12px;
  padding-top:12px;

  border-top:1px solid #eef2f6;
}

.dashboard-pickup-history-footer > span{
  min-width:0;

  color:#98a2b3;

  font-size:9px;
  font-weight:800;

  overflow-wrap:anywhere;
}

.dashboard-pickup-history-footer button{
  flex:0 0 auto;

  border:1px solid #dfe5ee;
  border-radius:12px;

  background:#fff;
  color:#475467;

  padding:8px 10px;

  font-size:10px;
  font-weight:900;

  cursor:pointer;
}

.dashboard-pickup-history-footer button:hover{
  border-color:#c8d8fb;

  background:#f8fbff;
  color:#1d4ed8;
}

@media(max-width:900px){
  .dashboard-pickup-history-list{
    grid-template-columns:1fr;
  }
}

@media(max-width:700px){
  .dashboard-pickup-history-title-row{
    display:grid;
  }

  .dashboard-pickup-history-refresh{
    width:max-content;
  }
}

@media(max-width:520px){
  .dashboard-orders-csv-button,
  .dashboard-orders-history-button{
    grid-column:auto;

    width:100%;
  }

  .dashboard-pickup-history-card{
    padding:15px;

    border-radius:20px;
  }

  .dashboard-pickup-history-grid{
    grid-template-columns:1fr;
  }

  .dashboard-pickup-history-footer{
    align-items:flex-start;
    flex-direction:column;
  }

  .dashboard-pickup-history-footer button{
    width:100%;
  }
}
/* =====================================================
   Szeroka historia + ustawienia odbiorów
   ===================================================== */

/*
 * auto-fit powoduje, że pojedyncza karta
 * historii zajmuje dostępną szerokość,
 * zamiast pozostawać w połowie wiersza.
 */
.dashboard-pickup-history-list{
  grid-template-columns:
    repeat(
      auto-fit,
      minmax(420px,1fr)
    );
}


/* Dwa przyciski organizacyjne obok siebie */

.dashboard-orders-config-actions{
  display:flex;
  align-items:stretch;
  gap:8px;
}


/* Przycisk ustawień */

.dashboard-pickup-settings-button{
  flex:0 0 auto;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  border:1px solid #d0d5dd;
  border-radius:12px;

  background:#fff;
  color:#475467;

  padding:9px 11px;

  font-size:11px;
  font-weight:900;

  cursor:pointer;
}

.dashboard-pickup-settings-button:hover{
  border-color:#98a2b3;

  background:#f8fafc;
  color:#101828;
}


/* Na komputerze wyświetlamy pełne nazwy */

.dashboard-action-label-mobile{
  display:none;
}


/* Okno ustawień odbiorów */

.dashboard-pickup-settings-body{
  display:grid;
  gap:12px;
}

.dashboard-pickup-setting-option{
  position:relative;

  display:grid;
  grid-template-columns:
    34px minmax(0,1fr);

  gap:12px;
  align-items:start;

  padding:15px;

  border:1px solid #dce4ef;
  border-radius:18px;

  background:#f8fafc;

  cursor:pointer;
}

.dashboard-pickup-setting-option input{
  position:absolute;

  width:1px;
  height:1px;

  opacity:0;
  pointer-events:none;
}

.dashboard-pickup-setting-check{
  width:32px;
  height:32px;

  display:grid;
  place-items:center;

  border:2px solid #cbd5e1;
  border-radius:11px;

  background:#fff;
  color:transparent;

  font-size:16px;
  font-weight:950;

  transition:
    border-color .16s ease,
    background .16s ease,
    color .16s ease;
}

.dashboard-pickup-setting-option
input:checked +
.dashboard-pickup-setting-check{
  border-color:#2563eb;

  background:#2563eb;
  color:#fff;
}

.dashboard-pickup-setting-option
input:focus-visible +
.dashboard-pickup-setting-check{
  box-shadow:
    0 0 0 4px
    rgba(37,99,235,.12);
}

.dashboard-pickup-setting-copy{
  min-width:0;
}

.dashboard-pickup-setting-copy strong,
.dashboard-pickup-setting-copy small{
  display:block;
}

.dashboard-pickup-setting-copy strong{
  color:#101828;

  font-size:14px;
  line-height:1.25;
}

.dashboard-pickup-setting-copy small{
  margin-top:5px;

  color:#667085;

  font-size:12px;
  line-height:1.45;
}

.dashboard-pickup-settings-note{
  margin:0;
  padding:12px 13px;

  border-radius:15px;

  background:#eef4ff;
  color:#475467;

  font-size:12px;
  line-height:1.45;
}


/* Historia w jednej kolumnie na mniejszych ekranach */

@media(max-width:900px){
  .dashboard-pickup-history-list{
    grid-template-columns:1fr;
  }
}


/*
 * Na telefonie dwa pierwsze przyciski
 * zajmują jeden wspólny wiersz.
 */

@media(max-width:700px){
  .dashboard-orders-config-actions{
    grid-column:1 / -1;

    display:grid;
    grid-template-columns:
      minmax(0,1fr)
      minmax(0,1fr);

    width:100%;
  }

  .dashboard-orders-history-button{
    grid-column:1 / -1;
  }
}


@media(max-width:520px){
  .dashboard-orders-config-actions{
    gap:7px;
  }

  .dashboard-orders-config-actions
  .dashboard-orders-csv-button,
  .dashboard-orders-config-actions
  .dashboard-pickup-settings-button{
    width:100%;
    min-width:0;

    padding:8px 6px;

    font-size:10px;
    white-space:nowrap;
  }

  /*
   * Na telefonie skracamy tekst:
   * „Pobierz CSV” → „CSV”
   * „Ustawienia odbiorów” → „Ustawienia”
   */
  .dashboard-action-label-desktop{
    display:none;
  }

  .dashboard-action-label-mobile{
    display:inline;
  }

  .dashboard-pickup-setting-option{
    grid-template-columns:
      30px minmax(0,1fr);

    gap:10px;
    padding:13px;
  }

  .dashboard-pickup-setting-check{
    width:30px;
    height:30px;
  }
}


/*
 * Istniejąca reguła przy 420 px ustawia
 * główny kontener na jedną kolumnę.
 * Ten wewnętrzny kontener nadal ma mieć
 * dwa przyciski obok siebie.
 */

@media(max-width:420px){
  .dashboard-orders-config-actions{
    grid-template-columns:
      minmax(0,1fr)
      minmax(0,1fr) !important;
  }
}
/* =====================================================
   Historia odbiorów — 6 informacji w jednym rzędzie
   ===================================================== */

/*
 * Duży komputer:
 * wszystkie informacje w jednym wierszu.
 */
@media(min-width:1200px){
  .dashboard-pickup-history-grid{
    grid-template-columns:
      repeat(
        6,
        minmax(0,1fr)
      );

    gap:9px;
    align-items:stretch;
  }

  .dashboard-pickup-history-grid > div{
    min-width:0;
    min-height:78px;

    display:flex;
    flex-direction:column;
    justify-content:flex-start;

    padding:11px 12px;
  }
}


/*
 * Mniejszy komputer i tablet:
 * trzy informacje w jednym rzędzie.
 */
@media(
  min-width:701px
) and (
  max-width:1199px
){
  .dashboard-pickup-history-grid{
    grid-template-columns:
      repeat(
        3,
        minmax(0,1fr)
      );
  }
}


/*
 * Większy telefon:
 * dwie informacje w jednym rzędzie.
 */
@media(
  min-width:521px
) and (
  max-width:700px
){
  .dashboard-pickup-history-grid{
    grid-template-columns:
      repeat(
        2,
        minmax(0,1fr)
      );
  }
}


/*
 * Telefon pozostaje tak jak obecnie:
 * jedna informacja pod drugą.
 */
@media(max-width:520px){
  .dashboard-pickup-history-grid{
    grid-template-columns:1fr;
  }
}
/* =====================================================
   Animacja podczas zapisu i wycinania tła zdjęcia
   ===================================================== */

.product-photo-processing-screen{
  width:100%;

  padding-bottom:48px;

  justify-content:center;
}


.product-photo-processing-screen
> .top{
  width:100%;
}


.product-photo-processing-visual{
  position:relative;

  display:grid;
  place-items:center;

  width:116px;
  height:116px;

  margin:
    8px
    auto
    24px;
}


.product-photo-processing-ring{
  position:absolute;
  inset:0;

  border:4px solid #dbeafe;
  border-top-color:#2563eb;
  border-right-color:#60a5fa;
  border-radius:50%;

  animation:
    productPhotoProcessingSpin
    1.15s
    linear
    infinite;
}


.product-photo-processing-icon{
  position:relative;
  z-index:2;

  display:grid;
  place-items:center;

  width:76px;
  height:76px;

  border:1px solid #dbeafe;
  border-radius:28px;

  background:
    linear-gradient(
      145deg,
      #ffffff,
      #eef4ff
    );

  box-shadow:
    0 16px 40px
    rgba(37,99,235,.18);

  font-size:36px;

  animation:
    productPhotoProcessingFloat
    1.8s
    ease-in-out
    infinite;
}


.product-photo-processing-spark{
  position:absolute;
  z-index:3;

  display:block;

  color:#2563eb;

  font-weight:950;

  pointer-events:none;

  animation:
    productPhotoProcessingSpark
    1.65s
    ease-in-out
    infinite;
}


.product-photo-processing-spark.spark-one{
  top:4px;
  right:5px;

  font-size:20px;

  animation-delay:0s;
}


.product-photo-processing-spark.spark-two{
  bottom:3px;
  left:8px;

  color:#60a5fa;

  font-size:16px;

  animation-delay:.45s;
}


.product-photo-processing-spark.spark-three{
  top:24px;
  left:-3px;

  color:#93c5fd;

  font-size:26px;

  animation-delay:.85s;
}


.product-photo-processing-description{
  width:min(
    520px,
    100%
  );

  margin:
    0
    auto
    18px;
}


.product-photo-processing-status{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  width:min(
    460px,
    100%
  );

  min-height:62px;

  margin:0 auto;
  padding:
    14px
    18px;

  border:1px solid #c7d7fe;
  border-radius:20px;

  background:
    linear-gradient(
      135deg,
      #ffffff,
      #f5f8ff
    );

  color:#344054;

  font-size:15px;
  font-weight:850;
  line-height:1.4;
  text-align:left;

  box-shadow:
    0 10px 30px
    rgba(37,99,235,.08);
}


.product-photo-processing-status-icon{
  flex:0 0 auto;

  font-size:19px;

  animation:
    productPhotoProcessingPulse
    1.35s
    ease-in-out
    infinite;
}


[data-product-photo-processing-message]{
  display:block;
}


[data-product-photo-processing-message]
.is-changing{
  animation:
    productPhotoProcessingMessage
    .38s
    ease
    both;
}


.product-photo-processing-progress{
  position:relative;

  width:min(
    390px,
    100%
  );

  height:9px;

  margin:
    18px
    auto
    0;

  overflow:hidden;

  border-radius:999px;

  background:#e8eef8;
}


.product-photo-processing-progress
span{
  position:absolute;
  inset:
    0
    auto
    0
    0;

  display:block;

  width:42%;

  border-radius:999px;

  background:
    linear-gradient(
      90deg,
      #60a5fa,
      #2563eb,
      #93c5fd
    );

  animation:
    productPhotoProcessingProgress
    1.4s
    ease-in-out
    infinite;
}


.product-photo-processing-note{
  display:block;

  width:min(
    420px,
    100%
  );

  margin:
    12px
    auto
    0;

  color:var(--muted);

  font-size:12px;
  line-height:1.45;
  text-align:center;
}


@keyframes productPhotoProcessingSpin{
  from{
    transform:rotate(0deg);
  }

  to{
    transform:rotate(360deg);
  }
}


@keyframes productPhotoProcessingFloat{
  0%,
  100%{
    transform:
      translateY(0)
      rotate(-2deg);
  }

  50%{
    transform:
      translateY(-7px)
      rotate(3deg);
  }
}


@keyframes productPhotoProcessingSpark{
  0%,
  100%{
    opacity:.28;

    transform:
      scale(.7)
      rotate(0deg);
  }

  50%{
    opacity:1;

    transform:
      scale(1.18)
      rotate(20deg);
  }
}


@keyframes productPhotoProcessingPulse{
  0%,
  100%{
    opacity:.55;
    transform:scale(.9);
  }

  50%{
    opacity:1;
    transform:scale(1.12);
  }
}


@keyframes productPhotoProcessingMessage{
  from{
    opacity:0;

    transform:
      translateY(5px);
  }

  to{
    opacity:1;

    transform:
      translateY(0);
  }
}


@keyframes productPhotoProcessingProgress{
  from{
    transform:
      translateX(-115%);
  }

  to{
    transform:
      translateX(270%);
  }
}


@media(max-width:520px){
  .product-photo-processing-screen{
    padding:
      22px
      18px
      38px;
  }


  .product-photo-processing-visual{
    width:102px;
    height:102px;

    margin-bottom:20px;
  }


  .product-photo-processing-icon{
    width:66px;
    height:66px;

    border-radius:24px;

    font-size:32px;
  }


  .product-photo-processing-status{
    min-height:68px;

    padding:
      13px
      14px;

    border-radius:18px;

    font-size:14px;
  }


  .product-photo-processing-progress{
    width:100%;
  }
}


/*
 * Szanujemy ustawienie ograniczenia
 * animacji w telefonie lub systemie.
 */
@media(
  prefers-reduced-motion:reduce
){
  .product-photo-processing-ring,
  .product-photo-processing-icon,
  .product-photo-processing-spark,
  .product-photo-processing-status-icon,
  .product-photo-processing-progress span{
    animation-duration:3s;
  }

  [data-product-photo-processing-message]
  .is-changing{
    animation:none;
  }
}
/* =====================================================
   Kategorie oferty — panel administracyjny
   ===================================================== */

.offer-list-actions{
  display:grid;
  grid-template-columns:
    minmax(0,1fr)
    minmax(0,1fr);
  gap:10px;
  margin:0 0 16px;
}

.offer-list-actions .btn{
  height:100%;
}

.offer-category-admin-list{
  display:grid;
  gap:14px;
  margin:16px 0;
}

.offer-category-admin-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:26px;
  background:#fff;

  box-shadow:
    0 8px 28px
    rgba(15,23,42,.05);
}

.offer-category-admin-banner{
  --offer-category-bg:#1f2937;
  --offer-category-text:#fff;

  min-height:116px;
  display:flex;
  align-items:center;
  padding:18px 20px;
  overflow:hidden;
  position:relative;
  color:var(--offer-category-text);
  background:var(--offer-category-bg);
  isolation:isolate;
}

.offer-category-admin-banner::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    var(--offer-category-bg);
}

.offer-category-admin-banner.style-image::before{
  background-image:
    linear-gradient(
      90deg,
      rgba(15,23,42,.78),
      rgba(15,23,42,.26)
    ),
    var(
      --offer-category-image,
      none
    );

  background-size:cover;
  background-position:center;
}

.offer-category-admin-banner.style-gradient::before{
  background-image:
    linear-gradient(
      135deg,
      var(--offer-category-bg),
      rgba(255,255,255,.24)
    );
}

.offer-category-admin-banner.style-minimal{
  min-height:92px;
  color:#111827;
  border-bottom:
    1px solid var(--line);
  background:#fff;
}

.offer-category-admin-banner.style-minimal::before{
  background:
    linear-gradient(
      135deg,
      #fff,
      #f8fafc
    );
}

.offer-category-admin-banner.radius-small{
  border-radius:14px;
}

.offer-category-admin-banner.radius-medium{
  border-radius:22px;
}

.offer-category-admin-banner.radius-large{
  border-radius:30px;
}

.offer-category-admin-card >
.offer-category-admin-banner{
  border-radius:0;
}

.offer-category-admin-banner.is-compact{
  min-height:88px;
}

.offer-category-admin-banner-copy{
  display:flex;
  align-items:center;
  gap:13px;
  min-width:0;
}

.offer-category-admin-icon{
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:
    rgba(255,255,255,.18);
  font-size:24px;
  backdrop-filter:blur(8px);
}

.style-minimal
.offer-category-admin-icon{
  background:#eef4ff;
}

.offer-category-admin-banner-copy strong,
.offer-category-admin-banner-copy small{
  display:block;
}

.offer-category-admin-banner-copy strong{
  font-size:22px;
  line-height:1.08;
  letter-spacing:-.035em;
}

.offer-category-admin-banner-copy small{
  margin-top:5px;
  opacity:.84;
  font-size:13px;
  line-height:1.35;
}

.offer-category-admin-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-bottom:
    1px solid #eef2f6;
}

.offer-category-admin-meta strong,
.offer-category-admin-meta span{
  display:block;
}

.offer-category-admin-meta span{
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
}

.offer-category-admin-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:7px;
}

.offer-category-admin-actions
.mini-action-btn[disabled],
.offer-order-button[disabled]{
  opacity:.32;
  cursor:not-allowed;
}

.offer-category-service-list{
  display:grid;
}

.offer-category-service-row{
  display:grid;
  grid-template-columns:
    minmax(0,1fr)
    minmax(150px,210px)
    auto;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-bottom:
    1px solid #eef2f6;
}

.offer-category-service-row:last-child{
  border-bottom:0;
}

.offer-category-service-copy{
  min-width:0;
}

.offer-category-service-copy strong,
.offer-category-service-copy small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.offer-category-service-copy strong{
  font-size:14px;
}

.offer-category-service-copy small{
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
}

.offer-category-inline-select{
  width:100%;
  min-width:0;
  border:1px solid var(--line);
  border-radius:12px;
  padding:9px 10px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-size:13px;
  font-weight:750;
}

.offer-order-buttons{
  display:flex;
  gap:5px;
}

.offer-order-button{
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
  color:#344054;
  font-weight:950;
  cursor:pointer;
}

.offer-category-empty{
  padding:16px;
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}

.offer-category-admin-card.is-uncategorized{
  border-style:dashed;
}

.offer-category-uncategorized-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px;
  background:#f8fafc;
  border-bottom:
    1px solid #eef2f6;
}

.offer-category-uncategorized-head strong,
.offer-category-uncategorized-head span{
  display:block;
}

.offer-category-uncategorized-head span{
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
}

.offer-category-uncategorized-head > b{
  display:grid;
  place-items:center;
  min-width:38px;
  height:38px;
  padding:0 10px;
  border-radius:14px;
  background:#fff;
  color:var(--brand);
}

.offer-category-form-grid,
.offer-category-settings-grid{
  display:grid;
  grid-template-columns:
    minmax(0,1fr)
    minmax(0,1fr);
  gap:12px;
}

.offer-category-field{
  display:block;
  min-width:0;
}

.offer-category-field-wide{
  grid-column:1 / -1;
}

.offer-category-field > span{
  display:block;
  margin-bottom:6px;
  color:#344054;
  font-size:13px;
  font-weight:900;
}

.offer-category-field .input{
  margin:0;
}

.offer-category-color-input{
  width:100%;
  height:54px;
  padding:5px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  cursor:pointer;
}

.offer-category-image-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.offer-category-switch-row{
  display:flex;
  align-items:flex-start;
  gap:11px;
  padding:13px 0;
  color:#344054;
  font-size:14px;
  font-weight:800;
  line-height:1.4;
  cursor:pointer;
}

.offer-category-switch-row +
.offer-category-switch-row{
  border-top:
    1px solid #eef2f6;
}

.offer-category-switch-row input{
  width:20px;
  height:20px;
  flex:0 0 20px;
  margin:0;
  accent-color:var(--brand);
}

.offer-category-date-grid{
  display:grid;
  grid-template-columns:
    minmax(0,1fr)
    minmax(0,1fr);
  gap:10px;
  margin-top:10px;
}

.offer-category-delete-button{
  margin-top:10px;
  color:#b42318 !important;
  background:#fff1f0 !important;
}

.offer-category-appearance-preview{
  margin:14px 0;
  padding:10px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#f8fafc;
}

.offer-category-settings-switches{
  margin-top:8px;
}

@media(max-width:720px){
  .offer-category-service-row{
    grid-template-columns:
      minmax(0,1fr)
      auto;
  }

  .offer-category-inline-select{
    grid-column:1 / -1;
    grid-row:2;
  }

  .offer-order-buttons{
    grid-column:2;
    grid-row:1;
  }
}

@media(max-width:520px){
  .offer-list-actions,
  .offer-category-form-grid,
  .offer-category-settings-grid,
  .offer-category-date-grid{
    grid-template-columns:1fr;
  }

  .offer-category-field-wide{
    grid-column:auto;
  }

  .offer-category-admin-banner{
    min-height:98px;
    padding:15px;
  }

  .offer-category-admin-banner-copy strong{
    font-size:19px;
  }

  .offer-category-admin-meta{
    align-items:flex-start;
    flex-direction:column;
  }

  .offer-category-admin-actions{
    width:100%;
    justify-content:flex-start;
  }

  .offer-category-service-row{
    padding:12px;
  }
}
/* =====================================================
   Korekta kategorii i podglądu banera
   ===================================================== */

/*
 * Zdjęcie dajemy bezpośrednio
 * na element banera.
 */
.offer-category-admin-banner.style-image{
  background-color:
    var(--offer-category-bg);

  background-image:
    linear-gradient(
      90deg,
      rgba(15,23,42,.78),
      rgba(15,23,42,.24)
    ),
    var(
      --offer-category-image,
      none
    );

  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

.offer-category-admin-banner.style-image::before{
  display:none;
}


/*
 * Ten sam pionowy układ
 * na komputerze i telefonie.
 */
.offer-category-service-row{
  grid-template-columns:
    minmax(0,1fr)
    auto;

  align-items:start;
}

.offer-category-service-copy{
  grid-column:1;
  grid-row:1;
  min-width:0;
}

.offer-category-service-copy strong,
.offer-category-service-copy small{
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  overflow-wrap:anywhere;
}

.offer-category-service-copy strong{
  font-size:15px;
  line-height:1.3;
}

.offer-category-service-copy small{
  margin-top:4px;
}

.offer-order-buttons{
  grid-column:2;
  grid-row:1;
  align-self:start;
}

.offer-category-inline-select{
  grid-column:1 / -1;
  grid-row:2;

  width:100%;
  min-width:0;
  min-height:44px;

  margin-top:2px;
  padding:10px 12px;

  font-size:14px;
}
/* =====================================================
   Wolna sprzedaż i planowanie produkcji
   ===================================================== */

.btn.danger-btn{
  background:#fee2e2;
  color:#b91c1c;
}

.production-planning-screen{
  padding-bottom:112px;
}

.production-heading-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}

.production-heading-row .h1{
  margin-bottom:8px;
}

.production-print-button{
  flex:0 0 auto;
  margin-top:18px;
}

.production-module-tabs{
  display:flex;
  gap:8px;
  overflow-x:auto;
  margin:14px 0 18px;
  padding:2px 1px 8px;
  scrollbar-width:none;
}

.production-module-tabs::-webkit-scrollbar{
  display:none;
}

.production-module-tabs button{
  flex:0 0 auto;
  min-height:40px;
  border:1px solid var(--line);
  border-radius:999px;
  padding:9px 14px;
  background:#fff;
  color:var(--muted);
  font-weight:850;
  cursor:pointer;
}

.production-module-tabs button.active{
  border-color:#9dbbff;
  background:var(--brand2);
  color:var(--brand);
}

.production-day-strip{
  display:flex;
  gap:9px;
  overflow-x:auto;
  padding:2px 1px 10px;
  margin-bottom:12px;
  scrollbar-width:none;
}

.production-day-strip::-webkit-scrollbar{
  display:none;
}

.production-day-chip{
  flex:0 0 78px;
  min-height:82px;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:2px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  color:var(--text);
  cursor:pointer;
  box-shadow:
    0 7px 22px
    rgba(15,23,42,.04);
}

.production-day-chip span,
.production-day-chip small{
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  text-transform:capitalize;
}

.production-day-chip strong{
  font-size:24px;
  line-height:1;
}

.production-day-chip.active{
  border-color:#8fb0fa;
  background:var(--brand2);
  color:var(--brand);
}

.production-day-chip[
  data-status="approved"
]::after,
.production-day-chip[
  data-status="in_production"
]::after,
.production-day-chip[
  data-status="completed"
]::after{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:#f59e0b;
}

.production-day-chip[
  data-status="in_production"
]::after{
  background:#2563eb;
}

.production-day-chip[
  data-status="completed"
]::after{
  background:#16a34a;
}

.production-plan-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin:4px 0 14px;
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
}

.production-eyebrow{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:850;
  text-transform:capitalize;
}

.production-status-badge{
  display:inline-flex;
  margin-top:6px;
  padding:7px 10px;
  border-radius:999px;
  background:#f1f5f9;
  color:#475467;
  font-size:12px;
  font-weight:900;
}

.production-status-badge[
  data-status="approved"
]{
  background:#fff7ed;
  color:#b54708;
}

.production-status-badge[
  data-status="in_production"
]{
  background:#eef4ff;
  color:#1d4ed8;
}

.production-status-badge[
  data-status="completed"
]{
  background:#dcfce7;
  color:#166534;
}

.production-toolbar-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.production-toolbar-actions .small-btn{
  margin:0;
}

.production-toolbar-actions
.small-btn[disabled]{
  opacity:.45;
  cursor:not-allowed;
}

.production-new-orders-alert{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin:12px 0;
  padding:16px 18px;
  border:1px solid #fed7aa;
  border-radius:20px;
  background:#fff7ed;
  color:#9a3412;
}

.production-new-orders-alert strong,
.production-new-orders-alert span{
  display:block;
}

.production-new-orders-alert span{
  margin-top:4px;
  font-size:13px;
}

.production-new-orders-alert .small-btn{
  flex:0 0 auto;
  margin:0;
}

.production-summary-grid{
  display:grid;
  grid-template-columns:
    repeat(
      3,
      minmax(0,1fr)
    );
  gap:10px;
  margin:12px 0 16px;
}

.production-summary-grid > div{
  padding:15px 16px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
}

.production-summary-grid span,
.production-summary-grid strong{
  display:block;
}

.production-summary-grid span{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}

.production-summary-grid strong{
  margin-top:6px;
  font-size:25px;
}

.production-plan-table{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  box-shadow:
    0 8px 28px
    rgba(15,23,42,.04);
}

.production-plan-table-head,
.production-product-row{
  display:grid;
  grid-template-columns:
    minmax(190px,1.5fr)
    minmax(90px,.65fr)
    minmax(120px,.8fr)
    minmax(160px,1fr)
    minmax(125px,.8fr)
    minmax(150px,1fr);
  gap:10px;
  align-items:center;
}

.production-plan-table-head{
  padding:12px 15px;
  background:#f8fafc;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.02em;
}

.production-product-row{
  padding:14px 15px;
  border-top:
    1px solid
    #edf0f4;
}

.production-product-row:hover{
  background:#fcfdff;
}

.production-product-main{
  min-width:0;
}

.production-product-main strong{
  display:block;
  font-size:15px;
  overflow-wrap:anywhere;
}

.production-inline-link{
  border:0;
  padding:5px 0 0;
  background:transparent;
  color:var(--brand);
  font-size:11px;
  font-weight:850;
  cursor:pointer;
  text-align:left;
}

.production-cell,
.production-buffer-cell{
  min-width:0;
}

.production-cell small,
.production-buffer-cell small{
  display:none;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
}

.production-cell .input,
.production-buffer-cell .input{
  width:100%;
  min-height:42px;
  margin:0;
  padding:10px;
  border-radius:13px;
}

.production-readonly-cell strong{
  display:block;
  font-size:18px;
}

.production-buffer-cell{
  display:grid;
  grid-template-columns:
    minmax(0,1fr)
    72px;
  gap:6px;
}

.production-buffer-cell label{
  min-width:0;
}

.production-total-cell strong,
.production-batch-cell strong{
  display:block;
  font-size:16px;
}

.production-total-cell span,
.production-batch-cell span{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:11px;
  line-height:1.3;
}

.production-plan-note-card{
  margin-top:14px;
}

.production-plan-note-card textarea{
  resize:vertical;
  min-height:90px;
}

.production-main-actions{
  display:grid;
  grid-template-columns:
    repeat(
      3,
      minmax(0,1fr)
    );
  gap:10px;
  margin-top:14px;
}

.production-main-actions .btn{
  margin:0!important;
}

.production-warning-list{
  display:grid;
  gap:8px;
  margin:12px 0;
}

.production-warning-list > div{
  padding:12px 14px;
  border:1px solid #fed7aa;
  border-radius:16px;
  background:#fff7ed;
  color:#9a3412;
  font-size:13px;
  font-weight:750;
}

.production-requirement-section{
  margin:14px 0;
  padding:18px;
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  box-shadow:
    0 8px 28px
    rgba(15,23,42,.04);
}

.production-requirement-grid{
  display:grid;
  grid-template-columns:
    repeat(
      3,
      minmax(0,1fr)
    );
  gap:12px;
}

.production-requirement-grid
.production-requirement-section{
  margin:0;
}

.production-requirement-product,
.production-requirement-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:11px 0;
  border-bottom:
    1px solid
    #edf0f4;
}

.production-requirement-product:last-child,
.production-requirement-row:last-child{
  border-bottom:0;
}

.production-requirement-product
> div:last-child,
.production-semi-row
> div:last-child{
  text-align:right;
}

.production-requirement-product strong,
.production-requirement-product span,
.production-semi-row span,
.production-semi-row small,
.production-semi-row strong{
  display:block;
}

.production-requirement-product span,
.production-semi-row small{
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
}

.production-list-card,
.production-history-card{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin:10px 0;
  padding:17px 18px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  color:var(--text);
  text-align:left;
  cursor:pointer;
  box-shadow:
    0 8px 28px
    rgba(15,23,42,.04);
}

.production-list-card strong,
.production-list-card span{
  display:block;
}

.production-list-card span{
  margin-top:5px;
  color:var(--muted);
  font-size:13px;
}

.production-list-card > b{
  color:var(--brand);
  font-size:28px;
}

.production-yield-card{
  margin-bottom:18px;
}

.production-yield-grid{
  display:grid;
  grid-template-columns:
    repeat(
      3,
      minmax(0,1fr)
    );
  gap:10px;
  margin-top:12px;
}

.production-yield-grid label,
.production-recipe-component label,
.production-component-amount-grid label{
  min-width:0;
}

.production-yield-grid label > span,
.production-recipe-component label > span,
.production-component-amount-grid label > span{
  display:block;
  margin-bottom:5px;
  color:var(--muted);
  font-size:12px;
  font-weight:850;
}

.production-yield-grid .input,
.production-recipe-component .input{
  margin:0;
}

.production-checkbox-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:14px;
  padding-top:14px;
  border-top:
    1px solid
    var(--line);
  cursor:pointer;
}

.production-checkbox-row input{
  width:20px;
  height:20px;
}

.production-components-title{
  margin:18px 0 8px;
}

.production-recipe-component{
  margin:10px 0;
  padding:16px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  box-shadow:
    0 7px 22px
    rgba(15,23,42,.04);
}

.production-component-type-row{
  display:grid;
  grid-template-columns:
    minmax(0,1fr)
    auto;
  gap:10px;
  align-items:end;
  margin-bottom:10px;
}

.production-component-type-row
.small-btn{
  margin:0 0 1px;
}

.production-component-amount-grid{
  display:grid;
  grid-template-columns:
    minmax(0,1fr)
    minmax(110px,.5fr);
  gap:10px;
  margin-top:10px;
}

.production-settlement-table{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
}

.production-settlement-row{
  display:grid;
  grid-template-columns:
    minmax(180px,1.4fr)
    repeat(
      4,
      minmax(105px,.75fr)
    );
  gap:10px;
  align-items:end;
  padding:14px 16px;
  border-bottom:
    1px solid
    #edf0f4;
}

.production-settlement-row:last-child{
  border-bottom:0;
}

.production-settlement-row
> div strong,
.production-settlement-row
> div span{
  display:block;
}

.production-settlement-row
> div span{
  margin-top:4px;
  color:var(--muted);
  font-size:11px;
}

.production-settlement-row
label small{
  display:block;
  margin-bottom:5px;
  color:var(--muted);
  font-weight:800;
}

.production-settlement-row .input{
  margin:0;
  min-height:42px;
  padding:10px;
  border-radius:13px;
}

.production-history-card{
  align-items:flex-start;
}

.production-history-card
> div:first-child strong{
  display:block;
  margin-top:6px;
  font-size:17px;
}

.production-history-metrics{
  display:grid;
  grid-template-columns:
    repeat(
      2,
      auto
    );
  gap:5px 14px;
  color:var(--muted);
  font-size:12px;
  text-align:right;
}

.production-history-metrics b{
  color:var(--text);
}

.empty-state.compact{
  padding:14px;
  margin:8px 0 0;
}

@media(max-width:980px){
  .production-plan-table-head{
    display:none;
  }

  .production-product-row{
    grid-template-columns:
      repeat(
        2,
        minmax(0,1fr)
      );
    gap:12px;
    padding:16px;
  }

  .production-product-main{
    grid-column:1/-1;
    padding-bottom:10px;
    border-bottom:
      1px solid
      #edf0f4;
  }

  .production-cell small,
  .production-buffer-cell small{
    display:block;
    margin-bottom:5px;
  }

  .production-requirement-grid{
    grid-template-columns:1fr;
  }

  .production-settlement-row{
    grid-template-columns:
      repeat(
        2,
        minmax(0,1fr)
      );
  }

  .production-settlement-row
  > div:first-child{
    grid-column:1/-1;
    padding-bottom:8px;
    border-bottom:
      1px solid
      #edf0f4;
  }
}

@media(max-width:620px){
  .production-heading-row,
  .production-plan-toolbar,
  .production-new-orders-alert{
    align-items:stretch;
    flex-direction:column;
  }

  .production-print-button{
    display:none;
  }

  .production-toolbar-actions{
    justify-content:flex-start;
  }

  .production-summary-grid{
    grid-template-columns:
      1fr 1fr;
  }

  .production-summary-grid
  > div:last-child{
    grid-column:1/-1;
  }

  .production-product-row{
    grid-template-columns:1fr;
  }

  .production-product-main{
    grid-column:auto;
  }

  .production-buffer-cell{
    grid-template-columns:
      minmax(0,1fr)
      78px;
  }

  .production-main-actions{
    grid-template-columns:1fr;
  }

  .production-yield-grid,
  .production-component-amount-grid{
    grid-template-columns:1fr;
  }

  .production-requirement-product,
  .production-requirement-row{
    align-items:flex-start;
  }

  .production-requirement-product{
    flex-direction:column;
  }

  .production-requirement-product
  > div:last-child{
    text-align:left;
  }

  .production-settlement-row{
    grid-template-columns:1fr;
  }

  .production-settlement-row
  > div:first-child{
    grid-column:auto;
  }

  .production-history-card{
    flex-direction:column;
  }

  .production-history-metrics{
    width:100%;
    grid-template-columns:
      1fr 1fr;
    text-align:left;
  }
}

@media print{
  body{
    background:#fff!important;
  }

  .production-no-print,
  .bottom-nav,
  .production-module-tabs,
  .back-link,
  .production-main-actions,
  .production-day-strip{
    display:none!important;
  }

  .shell,
  .phone,
  .production-planning-screen{
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
  }

  .production-requirement-section{
    break-inside:avoid;
    box-shadow:none;
  }
}

/* =====================================================
   Odwołane zajęcia, nieobecności i przenoszenie kursanta
   ===================================================== */

.dashboard-planner-card.is-cancelled{
  border-color:#fecaca;
  background:linear-gradient(145deg,#ffffff,#fff5f5);
  box-shadow:0 10px 28px rgba(180,35,24,.08);
}

.dashboard-planner-card.is-cancelled
.dashboard-planner-kind{
  background:#fff1f2;
  color:#b42318;
}

.dashboard-planner-card.is-cancelled
.dashboard-planner-time{
  background:#fff1f2;
  color:#b42318;
  text-decoration:line-through;
}

.dashboard-planner-cancellation-note{
  display:grid;
  gap:4px;
  margin:12px 0;
  padding:12px 13px;
  border:1px solid #fecaca;
  border-radius:15px;
  background:#fff1f2;
  color:#b42318;
}

.dashboard-planner-cancellation-note strong{
  font-size:13px;
}

.dashboard-planner-cancellation-note span{
  font-size:12px;
  line-height:1.4;
}

.dashboard-planner-card-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin:12px 0 0;
}

.dashboard-planner-card-actions button{
  border:0;
  border-radius:12px;
  padding:8px 11px;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}

.dashboard-planner-card-actions .cancel{
  border:1px solid #fecaca;
  background:#fff1f2;
  color:#b42318;
}

.dashboard-planner-card-actions .restore{
  border:1px solid #bbf7d0;
  background:#f0fdf4;
  color:#15803d;
}

.dashboard-planner-person-status{
  flex:0 0 auto;
  max-width:120px;
  padding:6px 8px;
  border-radius:999px;
  background:#f2f4f7;
  color:#475467;
  font-size:10px;
  line-height:1.1;
  font-weight:950;
  text-align:center;
}

.dashboard-planner-person.status-absent{
  border-color:#fed7aa;
  background:#fffaf2;
}

.dashboard-planner-person.status-absent
.dashboard-planner-person-status{
  background:#fff7ed;
  color:#b54708;
}

.dashboard-planner-person.status-pending_transfer{
  border-color:#bfd1ff;
  background:#f8faff;
}

.dashboard-planner-person.status-pending_transfer
.dashboard-planner-person-status{
  background:#eef4ff;
  color:#1d4ed8;
}

.dashboard-planner-person.status-moved,
.dashboard-planner-person.status-transferred_in{
  border-color:#bbf7d0;
  background:#f6fff8;
}

.dashboard-planner-person.status-moved
.dashboard-planner-person-status,
.dashboard-planner-person.status-transferred_in
.dashboard-planner-person-status{
  background:#dcfce7;
  color:#15803d;
}

.dashboard-planner-person.status-cancelled{
  border-color:#fecaca;
  background:#fff7f7;
}

.dashboard-planner-person.status-cancelled
.dashboard-planner-person-status{
  background:#fff1f2;
  color:#b42318;
}

.dashboard-schedule-change-summary{
  display:grid;
  gap:5px;
  padding:14px;
  border:1px solid #bfd1ff;
  border-radius:17px;
  background:#eef4ff;
}

.dashboard-schedule-change-summary.old-term{
  border-color:#e4e7ec;
  background:#f8fafc;
}

.dashboard-schedule-change-summary small,
.dashboard-schedule-change-summary span{
  color:#475467;
  font-size:13px;
  line-height:1.4;
}

.dashboard-schedule-change-summary strong{
  color:#101828;
  font-size:17px;
}

.dashboard-booking-form select{
  width:100%;
  min-height:48px;
  border:1px solid #d0d5dd;
  border-radius:14px;
  padding:11px 13px;
  background:#fff;
  color:#101828;
}

.dashboard-booking-modal-actions .danger{
  border:1px solid #fecaca;
  background:#b42318;
  color:#fff;
}

.dashboard-booking-modal-actions .schedule-transfer{
  border:1px solid #bfd1ff;
  background:#eef4ff;
  color:#1d4ed8;
}

@media(max-width:620px){
  .dashboard-planner-card-actions{
    display:grid;
  }

  .dashboard-planner-card-actions button{
    width:100%;
  }

  .dashboard-planner-person-status{
    max-width:92px;
    white-space:normal;
  }

  .dashboard-booking-modal-actions{
    grid-template-columns:1fr;
  }

  .dashboard-booking-modal-actions button{
    width:100%;
  }
}
/* =====================================================
   Portal firmy i ustawienia — Dane firmy
   ===================================================== */

.company-data-summary-card{
  border-color:#c7d7fe;
  background:
    linear-gradient(
      135deg,
      #fff,
      #f7faff
    );
}

.company-data-summary-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
}

.company-data-summary-head
.small-lead{
  margin-bottom:0;
}

.company-data-status{
  flex:0 0 auto;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  min-width:54px;

  padding:7px 10px;

  border-radius:999px;

  background:#fff7ed;
  color:#b54708;

  font-size:12px;
  font-weight:950;
}

.company-data-status.is-complete{
  background:#dcfce7;
  color:#166534;
}

.company-data-progress{
  height:9px;

  margin-top:16px;

  overflow:hidden;

  border-radius:999px;

  background:#e9eef7;
}

.company-data-progress span{
  display:block;

  height:100%;

  border-radius:inherit;

  background:
    linear-gradient(
      90deg,
      #2563eb,
      #60a5fa
    );

  transition:
    width .2s ease;
}

.company-data-summary-note{
  margin:12px 0 0;

  color:#667085;

  font-size:12px;
  line-height:1.45;
}

.company-data-screen{
  padding-bottom:116px;
}

.company-data-private-note{
  margin:0 0 16px;

  padding:14px 15px;

  border:1px solid #c7d7fe;
  border-radius:18px;

  background:#eef4ff;
  color:#475467;

  font-size:13px;
  line-height:1.5;
}

.company-data-private-note b{
  display:block;

  margin-bottom:3px;

  color:#1d4ed8;
}

.company-data-form{
  display:grid;
  gap:14px;
}

.company-data-section{
  padding:20px;

  border:1px solid var(--line);
  border-radius:26px;

  background:#fff;

  box-shadow:
    0 8px 28px
    rgba(15,23,42,.04);
}

.company-data-section-head{
  display:flex;
  align-items:flex-start;
  gap:12px;

  margin-bottom:18px;
}

.company-data-section-head > span{
  flex:0 0 auto;

  width:34px;
  height:34px;

  display:grid;
  place-items:center;

  border-radius:12px;

  background:var(--brand2);
  color:var(--brand);

  font-size:14px;
  font-weight:950;
}

.company-data-section-head h2{
  margin:0;

  font-size:20px;
  line-height:1.1;
  letter-spacing:-.03em;
}

.company-data-section-head p{
  margin:5px 0 0;

  color:var(--muted);

  font-size:13px;
  line-height:1.45;
}

.company-data-grid,
.company-data-address-grid{
  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    minmax(0,1fr);

  gap:13px;
}

.company-data-invoice-grid{
  margin-top:16px;
  margin-bottom:13px;
}

.company-data-field{
  min-width:0;

  display:grid;
  gap:7px;
  align-content:start;
}

.company-data-field-wide{
  grid-column:1 / -1;
}

.company-data-field > span{
  color:#344054;

  font-size:12px;
  font-weight:900;
}

.company-data-field small{
  color:#667085;

  font-size:11px;
  line-height:1.4;
}

.company-data-input{
  width:100%;
  min-width:0;
  min-height:48px;

  border:1px solid #d0d5dd;
  border-radius:15px;

  padding:12px 13px;

  background:#fff;
  color:#101828;

  font:inherit;
  outline:0;
}

.company-data-input:focus{
  border-color:#84adff;

  box-shadow:
    0 0 0 4px
    rgba(37,99,235,.12);
}

.company-data-input::placeholder{
  color:#98a2b3;
}

.company-data-checkbox{
  position:relative;

  display:grid;

  grid-template-columns:
    34px
    minmax(0,1fr);

  gap:12px;
  align-items:start;

  padding:15px;

  border:1px solid #dce4ef;
  border-radius:18px;

  background:#f8fafc;

  cursor:pointer;
}

.company-data-checkbox input{
  position:absolute;

  width:1px;
  height:1px;

  opacity:0;
  pointer-events:none;
}

.company-data-checkbox-mark{
  width:32px;
  height:32px;

  display:grid;
  place-items:center;

  border:2px solid #cbd5e1;
  border-radius:11px;

  background:#fff;
  color:transparent;

  font-size:16px;
  font-weight:950;

  transition:
    border-color .16s ease,
    background .16s ease,
    color .16s ease;
}

.company-data-checkbox
input:checked +
.company-data-checkbox-mark{
  border-color:#2563eb;

  background:#2563eb;
  color:#fff;
}

.company-data-checkbox
input:focus-visible +
.company-data-checkbox-mark{
  box-shadow:
    0 0 0 4px
    rgba(37,99,235,.12);
}

.company-data-checkbox b,
.company-data-checkbox small{
  display:block;
}

.company-data-checkbox b{
  color:#101828;

  font-size:13px;
  line-height:1.35;
}

.company-data-checkbox small{
  margin-top:5px;

  color:#667085;

  font-size:11px;
  line-height:1.45;
}

#company_correspondence_fields,
#company_invoice_fields{
  margin-top:16px;
}

.company-data-save-bar{
  position:sticky;
  bottom:72px;
  z-index:5;

  padding:12px;

  border:
    1px solid
    rgba(208,213,221,.9);

  border-radius:22px;

  background:
    rgba(255,255,255,.94);

  box-shadow:
    0 16px 50px
    rgba(15,23,42,.12);

  backdrop-filter:
    blur(16px);
}

@media(max-width:620px){
  .company-data-summary-head{
    display:block;
  }

  .company-data-status{
    margin-top:12px;
  }

  .company-data-section{
    padding:17px;

    border-radius:22px;
  }

  .company-data-grid,
  .company-data-address-grid{
    grid-template-columns:1fr;
  }

  .company-data-field-wide{
    grid-column:auto;
  }

  .company-data-save-bar{
    bottom:74px;
  }
}
/* =====================================================
   Produkcja: cykl dnia + AI
   ===================================================== */

.production-ai-learning,
.production-ai-observations,
.production-live-card,
.production-day-done{
  margin:14px 0;
  padding:18px;

  border:
    1px solid
    var(--line);

  border-radius:24px;

  background:#fff;

  box-shadow:
    0 8px 28px
    rgba(15,23,42,.04);
}


.production-ai-learning{
  background:
    linear-gradient(
      135deg,
      #fff,
      #f8fbff
    );
}


.production-ai-learning-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;

  gap:18px;
}


.production-ai-kicker{
  display:block;

  margin-bottom:6px;

  color:var(--brand);

  font-size:12px;
  font-weight:950;

  text-transform:uppercase;
}


.production-ai-learning-head strong{
  font-size:18px;
}


.production-ai-learning-head p{
  margin:
    6px 0 0;

  color:var(--muted);

  font-size:13px;
  line-height:1.45;
}


.production-ai-days{
  flex:0 0 auto;

  min-width:92px;

  padding:12px 14px;

  border:
    1px solid
    #dbe6fb;

  border-radius:18px;

  background:#fff;

  text-align:center;
}


.production-ai-days b,
.production-ai-days span{
  display:block;
}


.production-ai-days b{
  color:var(--brand);

  font-size:27px;
  line-height:1;
}


.production-ai-days span{
  margin-top:5px;

  color:var(--muted);

  font-size:10px;
  font-weight:850;
}


.production-ai-progress{
  height:8px;

  margin-top:15px;

  overflow:hidden;

  border-radius:999px;

  background:#e9eef6;
}


.production-ai-progress span{
  display:block;

  height:100%;

  border-radius:999px;

  background:
    linear-gradient(
      90deg,
      #2563eb,
      #60a5fa
    );
}


.production-ai-learning-foot{
  display:flex;
  justify-content:space-between;

  gap:14px;

  margin-top:10px;

  color:var(--muted);

  font-size:11px;
}


.production-ai-learning-foot b{
  color:var(--text);
}


/* Sugestia AI przy produkcie */

.production-ai-inline{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:7px;

  margin-top:7px;
  padding:7px 8px;

  border:
    1px solid
    transparent;

  border-radius:11px;

  background:#f8fafc;
  color:#475467;

  font-size:10px;
  line-height:1.35;
}


.production-ai-inline button{
  flex:0 0 auto;

  border:0;
  border-radius:9px;

  padding:5px 7px;

  background:#eef4ff;
  color:var(--brand);

  font-size:9px;
  font-weight:950;

  cursor:pointer;
}


.production-ai-inline.is-learning{
  display:block;

  color:#98a2b3;
}


.production-ai-confidence-low{
  border-color:#fde7b3;
}


.production-ai-confidence-medium{
  border-color:#c7d7fe;
}


.production-ai-confidence-high{
  border-color:#bbebc8;
}


/* AI zauważyło */

.production-ai-section-title{
  display:flex;
  align-items:flex-start;

  gap:11px;
}


.production-ai-section-title > span{
  width:38px;
  height:38px;

  flex:
    0 0 38px;

  display:grid;
  place-items:center;

  border-radius:14px;

  background:#eef4ff;

  font-size:20px;
}


.production-ai-section-title strong,
.production-ai-section-title small{
  display:block;
}


.production-ai-section-title small{
  margin-top:4px;

  color:var(--muted);

  font-size:12px;
  line-height:1.4;
}


.production-ai-observation-list{
  display:grid;

  gap:9px;

  margin-top:14px;
}


.production-ai-observation-card{
  display:grid;

  grid-template-columns:
    34px minmax(0,1fr);

  gap:10px;

  padding:13px 14px;

  border:
    1px solid
    #edf0f4;

  border-radius:17px;

  background:#fbfcfe;
}


.production-ai-observation-card p{
  margin:
    4px 0 0;

  color:#475467;

  font-size:12px;
  line-height:1.45;
}


.production-ai-observation-card small{
  display:block;

  margin-top:7px;

  color:var(--muted);

  font-size:10px;
  font-weight:850;
}


.production-ai-commentary{
  margin-top:12px;

  padding:13px 14px;

  border-radius:17px;

  background:#eef4ff;
  color:#344054;

  font-size:12px;
  line-height:1.5;
}


.production-ai-commentary p{
  margin:
    5px 0 0;
}


/* Produkcja w toku */

.production-live-products{
  display:grid;

  gap:8px;

  margin-top:14px;
}


.production-live-product{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:12px;

  padding:12px 13px;

  border:
    1px solid
    #edf0f4;

  border-radius:16px;

  background:#fff;
}


.production-live-product strong,
.production-live-product span{
  display:block;
}


.production-live-product span{
  margin-top:4px;

  color:var(--muted);

  font-size:11px;
}


.production-live-product .small-btn{
  flex:0 0 auto;

  margin:0;
}


/* Zamknięcie dnia */

.production-settlement-row{
  grid-template-columns:
    minmax(170px,1.3fr)
    repeat(
      5,
      minmax(100px,.7fr)
    );
}


.production-settlement-extra{
  grid-column:
    1 / -1;

  display:grid;

  grid-template-columns:
    minmax(150px,.55fr)
    minmax(220px,1fr)
    minmax(220px,1fr);

  gap:10px;

  align-items:end;

  padding-top:11px;

  border-top:
    1px dashed
    #e3e8ef;
}


.production-leftover-summary{
  min-height:43px;

  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:10px;

  padding:10px 12px;

  border-radius:13px;

  background:#f8fafc;
}


.production-leftover-summary span{
  margin:0!important;

  color:
    var(--muted)!important;

  font-size:11px!important;
  font-weight:800;
}


.production-leftover-summary strong{
  font-size:18px;
}


.production-leftover-reason[hidden],
.production-balance-warning[hidden]{
  display:none!important;
}


.production-balance-warning{
  grid-column:
    1 / -1;

  padding:10px 12px;

  border-radius:13px;

  background:#fff1f2;
  color:#b42318;

  font-size:11px;
  font-weight:850;
}


/* Podsumowanie zamkniętego dnia */

.production-day-done{
  display:flex;
  align-items:center;

  gap:16px;

  background:
    linear-gradient(
      135deg,
      #fff,
      #f4fff7
    );

  border-color:#ccebd5;
}


.production-day-done-icon{
  width:58px;
  height:58px;

  flex:
    0 0 58px;

  display:grid;
  place-items:center;

  border-radius:20px;

  background:#dcfce7;
  color:#15803d;

  font-size:29px;
  font-weight:950;
}


.production-day-done span{
  color:#15803d;

  font-size:11px;
  font-weight:900;
}


.production-day-done h1{
  margin:
    4px 0 0;

  font-size:28px;
}


.production-day-done p{
  margin:
    6px 0 0;

  color:var(--muted);

  font-size:12px;
  line-height:1.45;
}


.production-day-summary-grid{
  grid-template-columns:
    repeat(
      4,
      minmax(0,1fr)
    );
}


.production-sold-out-summary{
  margin:12px 0;

  padding:13px 14px;

  border:
    1px solid
    #fed7aa;

  border-radius:17px;

  background:#fff7ed;
  color:#9a3412;

  font-size:12px;
  font-weight:900;
  line-height:1.5;
}


@media(max-width:980px){

  .production-settlement-row{
    grid-template-columns:
      repeat(
        2,
        minmax(0,1fr)
      );
  }


  .production-settlement-extra{
    grid-template-columns:
      1fr 1fr;
  }


  .production-day-summary-grid{
    grid-template-columns:
      1fr 1fr;
  }

}


@media(max-width:620px){

  .production-ai-learning-head,
  .production-ai-learning-foot,
  .production-live-product,
  .production-day-done{
    align-items:stretch;
    flex-direction:column;
  }


  .production-ai-days{
    width:100%;
  }


  .production-live-product
  .small-btn{
    width:100%;
  }


  .production-settlement-row,
  .production-settlement-extra,
  .production-day-summary-grid{
    grid-template-columns:
      1fr;
  }


  .production-settlement-extra{
    grid-column:auto;
  }

}
