.public-tools-overview,
.public-tools-board {
  width: min(1480px, calc(100vw - 32px));
  max-width: min(1480px, calc(100vw - 32px));
  margin-inline: auto;
}

[data-public-tool][hidden] {
  display: none !important;
}

.public-tools-settings-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.public-tools-settings-form > label,
.public-tools-fieldset > label,
.public-tools-material-row > label {
  min-width: 0;
}

.public-tools-settings-form .is-wide,
.public-tools-fieldset.is-wide {
  grid-column: 1 / -1;
}

.public-tools-fieldset {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 16px;
  border: 1px solid #2b3942;
  border-radius: 8px;
  background: #10181d;
}

.public-tools-fieldset legend {
  padding: 0 8px;
  color: #ff526e;
  font-size: .76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.public-tools-material-row {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: 120px minmax(180px, 1fr) minmax(160px, .7fr);
  gap: 12px;
  align-items: end;
  padding: 10px 0;
  border-bottom: 1px solid rgba(174, 184, 192, .14);
}

.public-tools-material-row:last-child { border-bottom: 0; }

.public-tools-switch {
  display: flex !important;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid #2b3942;
  border-radius: 7px;
  background: #0d151a;
}

.public-tools-switch input { flex: 0 0 auto; width: 18px !important; min-height: 18px !important; }
.public-tools-switch span { color: #eef4f6; font-weight: 700; }
.public-tools-switch small { margin-left: auto; color: #9eabb3; }

.public-tools-weekdays {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.public-tools-weekdays > span { width: 100%; color: #aeb8c0; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.public-tools-weekdays label { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 7px 10px; border: 1px solid #2b3942; border-radius: 7px; background: #0d151a; }
.public-tools-weekdays input { width: 16px !important; min-height: 16px !important; }

.public-tools-schedule {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 14px;
  padding: 14px;
  border: 1px solid #2b3942;
  border-radius: 8px;
  background: #0d151a;
}

.public-tools-schedule__heading {
  display: grid;
  grid-column: 1 / -1;
  gap: 3px;
  margin-bottom: 4px;
}

.public-tools-schedule__heading strong { color: #eef4f6; }
.public-tools-schedule__heading small { color: #9eabb3; line-height: 1.45; }

.public-tools-schedule label {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.public-tools-schedule label span {
  color: #c5d0d5;
  font-size: .78rem;
  font-weight: 700;
}

.public-tools-schedule input { min-width: 0; }

.public-tool-page { min-height: 100vh; background: #0b1115; color: #edf3f6; }
.public-tool-page main { min-height: 70vh; }
.public-tool-page .site-footer {
  box-sizing: border-box;
  display: flex;
  width: 100%;
  min-height: 0;
  padding: 30px max(18px, calc((100vw - 1120px) / 2));
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid #27343c;
  background: #0e1519;
}
.public-tool-page .site-footer > div { display: grid; gap: 4px; }
.public-tool-page .site-footer > div span { color: #9fabb2; }
.public-tool-page .site-footer nav { display: flex; flex-wrap: wrap; gap: 16px; }
.public-tool-page .site-footer a { color: #d8e0e4; text-decoration: none; }
.public-tool-page .site-footer a:hover { color: #ff526e; }
.public-tool-hero { padding: clamp(112px, 14vw, 170px) 0 clamp(54px, 8vw, 90px); border-bottom: 1px solid #27343c; background: radial-gradient(circle at 15% 10%, rgba(255, 35, 72, .12), transparent 32%), #10171c; }
.public-tool-hero .container { width: min(1120px, calc(100vw - 36px)); }
.public-tool-hero h1 { max-width: 900px; margin: 10px 0 16px; color: #f5f7f8; font-size: clamp(2.2rem, 5vw, 4.6rem); line-height: 1.02; }
.public-tool-hero p:last-child { max-width: 760px; margin: 0; color: #bcc8ce; font-size: clamp(1rem, 1.5vw, 1.2rem); line-height: 1.6; }

.public-calculator-layout,
.material-guide-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
  gap: 24px;
  align-items: start;
}

.public-calculator-form,
.material-guide-form,
.public-calculator-result,
.material-guide-result,
.public-tool-disabled,
.public-tool-success,
.public-appointment-form {
  padding: clamp(20px, 3vw, 34px);
  border: 1px solid #2b3942;
  border-radius: 8px;
  background: #141d23;
}

.public-calculator-form,
.material-guide-form,
.public-appointment-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.public-calculator-form label,
.material-guide-form label,
.public-appointment-form label {
  display: grid;
  gap: 7px;
  min-width: 0;
  color: #c8d2d7;
  font-size: .86rem;
  font-weight: 700;
}

.public-calculator-form input,
.public-calculator-form select,
.material-guide-form select,
.public-appointment-form input,
.public-appointment-form select,
.public-appointment-form textarea {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 10px 12px;
  color: #f2f6f7;
  border: 1px solid #394851;
  border-radius: 7px;
  background: #0d1418;
  font: inherit;
}

.public-tool-form-heading,
.public-calculator-options,
.public-calculator-form > button,
.material-guide-form > button,
.public-appointment-form .is-wide,
.public-appointment-form > button {
  grid-column: 1 / -1;
}

.public-tool-form-heading span,
.public-calculator-result > span,
.material-guide-result > span {
  color: #ff526e;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
}

.public-tool-form-heading h2,
.public-calculator-result h2,
.material-guide-result h2 { margin: 6px 0 0; font-size: clamp(1.5rem, 3vw, 2.35rem); }

.public-calculator-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 14px;
  border: 1px solid #2b3942;
  border-radius: 7px;
}

.public-calculator-options legend { padding: 0 7px; color: #aeb8c0; font-size: .8rem; font-weight: 800; }
.public-calculator-options label { display: flex; align-items: center; gap: 8px; min-height: 38px; }
.public-calculator-options input { width: 18px; min-height: 18px; }

.public-calculator-result,
.material-guide-result { position: sticky; top: 92px; }
.public-calculator-result p,
.material-guide-result p,
.public-tool-disabled p,
.public-tool-success p { color: #bdc8ce; line-height: 1.65; }
.public-calculator-result small,
.material-guide-result small { display: block; margin-top: 15px; color: #8f9ca4; line-height: 1.5; }
.public-calculator-result .button,
.material-guide-result .button { width: 100%; margin-top: 18px; }

.calculator-breakdown { display: grid; gap: 0; margin: 20px 0 0; border-top: 1px solid #2b3942; }
.calculator-breakdown div { display: flex; justify-content: space-between; gap: 18px; padding: 9px 0; border-bottom: 1px solid #2b3942; }
.calculator-breakdown dt { color: #9faeb6; }
.calculator-breakdown dd { margin: 0; color: #f2f6f7; font-weight: 800; }

.material-reference-grid,
.knowledge-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.material-reference-grid article,
.knowledge-grid article {
  min-width: 0;
  padding: 22px;
  border: 1px solid #2b3942;
  border-radius: 8px;
  background: #141d23;
}

.material-reference-grid strong { color: #ff526e; font-size: 1.1rem; }
.material-reference-grid p,
.knowledge-grid p { color: #bdc8ce; line-height: 1.6; }
.knowledge-grid article > span { color: #ff526e; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.knowledge-grid h2 { margin: 8px 0 12px; font-size: 1.35rem; }
.knowledge-grid a { color: #ff526e; font-weight: 750; }

.public-appointment-shell { width: min(980px, calc(100vw - 36px)); }
.public-appointment-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.public-tool-disabled,
.public-tool-success { max-width: 820px; margin: 0 auto; }
.public-tool-disabled strong,
.public-tool-success strong { display: block; color: #f5f7f8; font-size: clamp(1.45rem, 3vw, 2.25rem); }
.public-tool-disabled .button,
.public-tool-success .button { margin-top: 12px; }

.public-tools-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 26px;
}

.public-tools-links > a {
  display: grid;
  min-width: 0;
  gap: 7px;
  padding: 18px;
  color: #eef4f6;
  border: 1px solid #2b3942;
  border-radius: 8px;
  background: #141d23;
  text-decoration: none;
}

.public-tools-links > a span { color: #ff526e; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.public-tools-links > a strong { font-size: 1.05rem; }
.public-tools-links > a small { color: #aeb8c0; line-height: 1.45; }

.public-tools-links > a[data-public-entry] {
  position: relative;
}

.public-tools-links > a[data-public-entry].is-disabled {
  border-color: #46515a;
}

.public-tools-links > a[data-public-entry].is-disabled::after {
  content: "Obecnie wyłączone";
  width: max-content;
  max-width: 100%;
  margin-top: 4px;
  padding: 5px 8px;
  color: #bcc5ca;
  border: 1px solid #46515a;
  border-radius: 5px;
  background: #0d1418;
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
}

.home-public-tools {
  padding: 28px 0;
  border-bottom: 1px solid #27343c;
  background: #0e1519;
}

.home-public-tools .public-tools-links {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 0;
}

.home-public-tools .public-tools-links > a {
  min-height: 128px;
  align-content: start;
}

@media (max-width: 900px) {
  .public-tools-settings-form,
  .public-tools-fieldset,
  .public-calculator-layout,
  .material-guide-layout,
  .material-reference-grid,
  .knowledge-grid,
  .public-tools-links,
  .home-public-tools .public-tools-links { grid-template-columns: 1fr; }
  .public-tools-material-row { grid-template-columns: 1fr; }
  .public-tools-schedule { grid-template-columns: 1fr; }
  .public-calculator-result,
  .material-guide-result { position: static; }
  .public-appointment-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .public-calculator-form,
  .material-guide-form,
  .public-appointment-form,
  .public-calculator-options { grid-template-columns: 1fr; }
  .public-calculator-form > *,
  .material-guide-form > *,
  .public-appointment-form > * { grid-column: 1 !important; }
  .public-tools-switch { align-items: flex-start; flex-wrap: wrap; }
  .public-tools-switch small { width: 100%; margin-left: 28px; }
  .public-tool-page .site-footer { align-items: flex-start; flex-direction: column; }
}
