:root {
  --map-yellow: #ffec00;
  --map-yellow-deep: #e7d600;
  --ink: #1d1d1b;
  --ink-soft: #3f403c;
  --muted: #686a63;
  --canvas: #f4f4f1;
  --surface: #ffffff;
  --surface-soft: #f8f8f5;
  --border: #deded8;
  --border-strong: #a5a69f;
  --danger: #a52b22;
  --danger-soft: #fff0ee;
  --success: #26704a;
  --success-soft: #edf8f1;
  --radius-sm: .5rem;
  --radius-md: .75rem;
  --radius-lg: 1.25rem;
  --content-width: 74rem;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
}

* { box-sizing: border-box; }

[hidden] { display: none !important; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  min-width: 20rem;
  background: var(--canvas);
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

body::selection { background: var(--map-yellow); color: var(--ink); }

h1, h2, h3 {
  margin-block: 0 1rem;
  color: var(--ink);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
}

h1 { max-width: 25ch; font-size: clamp(2rem, 4vw, 2.8rem); }
h2 { font-size: clamp(1.3rem, 2.5vw, 1.65rem); }
h3 { font-size: 1.15rem; }
p { margin-block: 0 1rem; }
a { color: var(--ink); text-decoration-color: var(--map-yellow-deep); text-decoration-thickness: .14em; text-underline-offset: .18em; }
a:hover { text-decoration-color: var(--ink); }
code { border-radius: .25rem; background: #eeeef0; padding: .08em .3em; }
code, pre { overflow-wrap: anywhere; white-space: pre-wrap; }

.skip-link {
  position: fixed;
  z-index: 100;
  left: 1rem;
  top: -5rem;
  border: 2px solid var(--ink);
  background: var(--map-yellow);
  color: var(--ink);
  padding: .7rem 1rem;
  font-weight: 700;
}

.skip-link:focus { top: 1rem; }

:focus-visible {
  outline: 3px solid var(--map-yellow-deep);
  outline-offset: 3px;
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  padding: 0 !important;
  white-space: nowrap !important;
}

.environment {
  width: fit-content;
  margin-block: 0 1rem;
  border-radius: var(--radius-sm);
  background: #e8e8e2;
  color: var(--muted);
  padding: .2rem .65rem;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
}

/* Wspólny znak inspirowany identyfikacją MAP. */
.brand-lockup {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  color: var(--ink);
  line-height: 1;
}

.brand-symbol {
  color: var(--map-yellow-deep);
  font-family: Georgia, serif;
  font-size: 4.5rem;
  font-weight: 700;
  line-height: .65;
}

.brand-copy { display: grid; gap: .16rem; }
.brand-name { font-size: 2.05rem; font-weight: 800; letter-spacing: -.03em; }
.brand-product { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.brand-lockup--inverse { color: white; }
.brand-lockup--compact .brand-symbol { font-size: 3.4rem; }
.brand-lockup--compact .brand-name { font-size: 1.65rem; }
.brand-lockup--compact .brand-product { font-size: .58rem; }

/* Publiczne tokeny i rejestracja: bez nawigacji oraz bez logowania. */
.layout-public {
  min-height: 100vh;
  border-top: .4rem solid var(--map-yellow);
  background: var(--canvas);
}

.public-shell {
  display: grid;
  grid-template-rows: auto 1fr auto;
  width: min(100% - 2rem, 72rem);
  min-height: calc(100vh - .4rem);
  margin-inline: auto;
}

.public-masthead {
  --public-logo-height: 3.35rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 7rem;
  border-bottom: 1px solid var(--border);
}

.public-brand-link { display: inline-flex; flex: 0 0 auto; align-items: center; text-decoration: none; }
.public-brand-logo { display: block; width: auto; height: var(--public-logo-height); object-fit: contain; }
.public-funding-notice {
  display: flex;
  flex: 0 1 23rem;
  align-items: center;
  justify-content: flex-start;
  gap: .8rem;
  max-width: 23rem;
  margin-right: auto;
  color: var(--ink-soft);
  font-size: .73rem;
  font-weight: 750;
  line-height: 1.35;
  text-decoration: none;
}
.public-funding-notice img { width: auto; height: var(--public-logo-height); flex: 0 0 auto; object-fit: contain; }
.public-funding-notice span { max-width: 11.5rem; }
.public-funding-notice:hover { color: var(--ink); }
.public-funding-notice:hover span { text-decoration: underline; text-decoration-color: var(--map-yellow-deep); text-underline-offset: .2rem; }
.public-masthead__actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; }
.public-login-link { min-height: 2.5rem; padding: .5rem .8rem; font-size: .8rem; }
.public-session-status {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--ink-soft);
  font-size: .78rem;
}
.public-session-status__indicator {
  width: .5rem;
  height: .5rem;
  border-radius: 50%;
  background: #6a8700;
  box-shadow: 0 0 0 3px rgb(106 135 0 / 12%);
}
.public-session-status strong { color: var(--ink); }

.edition-pill, .context-label {
  width: fit-content;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  padding: .5rem .85rem;
  color: var(--ink-soft);
  font-size: .8rem;
  font-weight: 700;
  box-shadow: 0 1px 2px rgb(29 29 27 / 4%);
}

.public-shell > main { padding-block: clamp(2rem, 5vw, 4.5rem); }

.public-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: clamp(3rem, 7vw, 5rem);
  border-top: 1px solid var(--border);
  padding-block: 1.4rem 1.75rem;
  color: var(--muted);
  font-size: .84rem;
}

.public-footer__brand, .public-footer__contact { display: flex; align-items: center; gap: .6rem; }
.public-footer__symbol { color: #b9ad00; font-weight: 900; }
.public-footer__contact > span { font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.public-footer__contact a { color: var(--ink); font-weight: 700; }

.registration-landing { display: grid; gap: clamp(2rem, 4vw, 3rem); }
.registration-entry { display: grid; gap: 1rem; }

.registration-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(13rem, .35fr);
  align-items: end;
  gap: clamp(2rem, 5vw, 5rem);
  overflow: hidden;
  border-radius: 1.5rem;
  background: var(--ink);
  color: white;
  padding: clamp(2rem, 4vw, 3rem);
}

.registration-hero::after {
  position: absolute;
  width: 5rem;
  height: 5rem;
  right: -2rem;
  top: -2rem;
  border-radius: 50%;
  background: var(--map-yellow);
  content: "";
}

.registration-intro { position: relative; z-index: 1; max-width: 43rem; }
.layout-home .public-shell > main { padding-top: clamp(1.5rem, 3vw, 2.5rem); }
.registration-intro h1 { margin-bottom: 1rem; color: white; font-size: clamp(2.4rem, 4.1vw, 3.6rem); letter-spacing: -.05em; }
.registration-intro > p:last-child { max-width: 38rem; margin-bottom: 0; color: #d3d3cd; font-size: clamp(1rem, 2vw, 1.15rem); }

.eyebrow {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: .8rem;
  color: var(--ink-soft);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.eyebrow::before { width: 1.6rem; height: .25rem; background: var(--map-yellow); content: ""; }
.registration-hero .eyebrow { color: var(--map-yellow); }

.registration-hero__edition {
  position: relative;
  z-index: 1;
  display: grid;
  gap: .25rem;
  border-top: 1px solid #51514d;
  padding-top: 1.25rem;
}

.registration-hero__edition small { color: #bdbdb7; font-size: .8rem; }
.registration-hero__edition strong { color: white; font-size: clamp(1.35rem, 3vw, 1.8rem); letter-spacing: -.025em; }
.registration-status { display: flex; align-items: center; gap: .45rem; margin-bottom: 1rem; color: white; font-size: .78rem; font-weight: 700; }
.registration-status span { width: .55rem; height: .55rem; border-radius: 50%; background: var(--map-yellow); box-shadow: 0 0 0 .25rem rgb(255 236 0 / 13%); }

.registration-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.registration-action {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
  min-height: 8rem;
  border: 2px solid var(--map-yellow);
  border-radius: 1rem;
  background: var(--map-yellow);
  padding: 1.25rem;
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 8px 24px rgb(29 29 27 / 6%);
  transition: transform .18s ease, box-shadow .18s ease;
}

.registration-action--secondary { border-color: var(--border); background: white; }
.registration-action:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgb(29 29 27 / 12%); }
.registration-action:focus-visible { outline-color: var(--ink); }
.registration-action__number {
  display: grid;
  place-items: center;
  width: 3.1rem;
  height: 3.1rem;
  border: 1px solid rgb(29 29 27 / 20%);
  border-radius: .8rem;
  font-size: .75rem;
  font-weight: 900;
}
.registration-action__copy { display: grid; gap: .2rem; }
.registration-action__copy small { color: var(--ink-soft); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.registration-action__copy strong { font-size: clamp(1.25rem, 2.5vw, 1.65rem); line-height: 1.2; }
.registration-action__copy > span { margin-top: .55rem; font-size: .84rem; font-weight: 800; }

.homepage-section-heading { max-width: 49rem; }
.homepage-section-heading h2 { margin: 0; font-size: clamp(1.8rem, 4vw, 2.65rem); letter-spacing: -.035em; }
.homepage-section-heading--compact h2 { font-size: clamp(1.55rem, 3vw, 2rem); }

.project-section { display: grid; gap: clamp(2rem, 4vw, 3rem); padding-block: clamp(1rem, 3vw, 2rem); }
.project-purpose {
  display: grid;
  grid-template-columns: minmax(16rem, .7fr) minmax(0, 1.3fr);
  gap: clamp(2rem, 5vw, 5rem);
  border-top: 1px solid var(--border-strong);
  padding-top: clamp(1.5rem, 3vw, 2.5rem);
}
.project-purpose__lead h3 { font-size: 1.2rem; }
.project-purpose__lead p { color: var(--ink-soft); font-size: 1.02rem; line-height: 1.65; }
.project-support-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.project-support-card { border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); padding: clamp(1.25rem, 3vw, 1.75rem); }
.project-support-card__label { display: block; margin-bottom: 1rem; color: var(--muted); font-size: .7rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.project-support-card h3 { margin-bottom: .75rem; }
.project-support-card ul { display: grid; gap: .55rem; margin: 0; padding-left: 1.15rem; color: var(--ink-soft); }
.project-support-card li::marker { color: #b4a700; }

.funding-section {
  display: grid;
  place-items: center;
  padding-block: clamp(1rem, 3vw, 2rem);
}
.funding-poster { width: min(100%, 32rem); margin: 0 auto; }
.funding-poster > a { display: block; overflow: hidden; border: 1px solid var(--border); background: #f1f2f3; box-shadow: 0 16px 35px rgb(29 29 27 / 12%); }
.funding-poster img { display: block; width: 100%; height: auto; }
.funding-poster figcaption { margin-top: .8rem; text-align: center; }
.funding-poster figcaption a { color: var(--ink-soft); font-size: .78rem; font-weight: 750; }

.project-partners { display: grid; gap: 2rem; border-top: 1px solid var(--border-strong); padding-top: clamp(2rem, 4vw, 3rem); }
.partner-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); }
.partner-group { min-width: 0; padding: clamp(1.25rem, 3vw, 2rem); }
.partner-group + .partner-group { border-left: 1px solid var(--border); }
.partner-group h3 { margin-bottom: 1.4rem; color: var(--muted); font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.partner-logos { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5rem 2rem; }
.partner-logos img { display: block; width: auto; max-width: 100%; object-fit: contain; }
.partner-logos--organizers img:first-child { height: 4.8rem; }
.partner-logos--organizers img:last-child { height: 4.6rem; }
.partner-logos--collaboration img { height: 4.4rem; }

.public-footer--homepage { align-items: start; gap: 2rem; padding-block: 2rem 2.5rem; }
.public-footer__identity { display: flex; align-items: flex-start; gap: .7rem; max-width: 24rem; color: var(--ink); }
.public-footer__identity > div { display: grid; gap: .15rem; }
.public-footer__identity strong { line-height: 1.35; }
.public-footer__identity span:last-child { color: var(--muted); }
.homepage-contact { display: grid; grid-template-columns: auto auto minmax(15rem, 1fr); gap: 1.5rem 2rem; margin-left: auto; font-style: normal; }
.homepage-contact > div { display: grid; align-content: start; gap: .25rem; }
.homepage-contact span { color: var(--muted); font-size: .68rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.homepage-contact a, .homepage-contact strong { color: var(--ink); font-size: .86rem; font-weight: 750; line-height: 1.45; }

.choice-heading h2 { margin: 0; font-size: clamp(1.65rem, 4vw, 2.25rem); letter-spacing: -.025em; }

.choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: -1rem;
}

.choice-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.25rem;
  min-height: 15rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  padding: clamp(1.35rem, 3vw, 2rem);
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 12px 32px rgb(29 29 27 / 5%);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.choice-card:hover { transform: translateY(-3px); border-color: #b4ab27; box-shadow: 0 18px 38px rgb(29 29 27 / 9%); }
.choice-card__icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: .85rem; background: var(--map-yellow); font-size: .75rem; font-weight: 900; }
.choice-card__body { display: flex; flex-direction: column; }
.choice-card__body h2 { margin-top: .35rem; font-size: clamp(1.35rem, 3vw, 1.75rem); letter-spacing: -.025em; }
.choice-card__body p { max-width: 34ch; color: var(--muted); }
.choice-card__action { display: inline-flex; align-items: center; gap: .55rem; margin-top: auto; padding-top: 1rem; font-weight: 800; }
.choice-card__action::after { font-size: 1.2em; content: "→"; transition: transform .18s ease; }
.choice-card:hover .choice-card__action::after { transform: translateX(.25rem); }

.public-heading { max-width: 49rem; margin-bottom: clamp(2rem, 5vw, 3.25rem); }
.public-heading h1 { margin-bottom: .85rem; font-size: clamp(2.4rem, 6vw, 4.2rem); letter-spacing: -.045em; }
.public-heading p { max-width: 60ch; color: var(--muted); font-size: 1.05rem; }
.step-label { margin-bottom: .7rem; color: var(--ink-soft); font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.back-link { display: inline-flex; margin-bottom: 1.8rem; color: var(--muted); font-size: .88rem; font-weight: 700; text-decoration: none; }
.back-link:hover { color: var(--ink); }

/* Publiczny panel uczestnika dostępny z bezpiecznego linku zgody. */
.consent-portal { display: grid; gap: 1rem; max-width: 68rem; margin-inline: auto; }
.consent-portal-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--ink);
  padding: clamp(1.5rem, 4vw, 2.5rem);
  color: white;
}
.consent-portal-hero::after { position: absolute; width: 5rem; height: 5rem; top: -2.5rem; right: -2.5rem; border-radius: 50%; background: var(--map-yellow); content: ""; }
.consent-portal-hero > * { position: relative; z-index: 1; }
.consent-portal-hero .eyebrow { color: var(--map-yellow); }
.consent-portal-hero h1 { margin-bottom: .7rem; color: white; font-size: clamp(2.25rem, 5vw, 3.7rem); letter-spacing: -.045em; }
.consent-portal-identity { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem .75rem; margin: 0; color: #d4d4ce; }
.consent-portal-identity strong { color: white; }
.consent-portal-identity span::before { margin-right: .75rem; color: #777771; content: "•"; }
.consent-status-pill { display: grid; flex: 0 0 auto; min-width: 12rem; gap: .18rem; border: 1px solid #55554f; border-radius: var(--radius-md); background: #292927; padding: .8rem 1rem; }
.consent-status-pill span { color: #aaa9a2; font-size: .66rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.consent-status-pill strong { font-size: .95rem; }
.consent-portal-alert { margin-block: 0; }
.consent-portal-alert--success { border-color: #7caf92; border-left-color: var(--success); background: var(--success-soft); }

.consent-progress { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin: 0; padding: 0; list-style: none; }
.consent-progress__item { display: grid; grid-template-columns: 2rem minmax(0, 1fr); align-items: center; gap: .65rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); padding: .75rem; }
.consent-progress__item > span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: #e8e8e2; color: var(--muted); font-size: .74rem; font-weight: 850; }
.consent-progress__item > div { display: grid; min-width: 0; }
.consent-progress__item strong { font-size: .82rem; }
.consent-progress__item small { color: var(--muted); font-size: .7rem; }
.consent-progress__item.is-complete > span { background: var(--success-soft); color: var(--success); }
.consent-progress__item.is-current { border-color: #c5b900; background: #fffef0; }
.consent-progress__item.is-current > span { background: var(--map-yellow); color: var(--ink); }

.consent-portal-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); align-items: start; gap: 1rem; }
.consent-portal-main { min-width: 0; }
.consent-portal-main > .card:first-child, .consent-portal-summary > .card:first-child { margin-top: 0; }
.consent-document-card--primary { border-top: .35rem solid var(--map-yellow-deep); }
.consent-document-card__header { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr); align-items: center; gap: 1rem; margin-bottom: 1rem; }
.consent-document-card__header h2, .consent-section-heading h2 { margin: 0; }
.consent-document-icon { display: grid; place-items: center; width: 3.2rem; height: 3.2rem; border-radius: .8rem; background: var(--map-yellow); font-size: .68rem; font-weight: 900; }
.consent-upload-card { padding: clamp(1.15rem, 3vw, 1.5rem); }
.consent-upload-card h2 { margin-bottom: .45rem; }
.consent-file-field { border: 1px dashed var(--border-strong); border-radius: var(--radius-md); background: var(--surface-soft); padding: 1rem; }
.consent-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.consent-section-heading > span { display: grid; place-items: center; min-width: 2rem; height: 2rem; border-radius: 999px; background: var(--ink); color: white; font-size: .78rem; font-weight: 800; }
.uploaded-document-list { display: grid; gap: .65rem; }
.uploaded-document-item { display: grid; grid-template-columns: 2.6rem minmax(0, 1fr) auto; align-items: center; gap: .8rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-soft); padding: .8rem; }
.uploaded-document-item__icon { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: .65rem; background: #e8e8e2; color: var(--ink-soft); font-size: .62rem; font-weight: 900; }
.uploaded-document-item > div { display: grid; min-width: 0; gap: .15rem; }
.uploaded-document-item strong { overflow: hidden; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.uploaded-document-item small { color: var(--muted); font-size: .7rem; }
.uploaded-document-item .badge { width: fit-content; margin-top: .15rem; }
.uploaded-document-item .button { min-height: 2.5rem; padding: .45rem .75rem; font-size: .76rem; }
.consent-portal-summary { position: sticky; top: 1rem; }
.participant-summary-card { padding: 1.25rem; }
.participant-summary-list { display: grid; gap: .7rem; margin: 0; }
.participant-summary-list > div { display: grid; gap: .12rem; border-bottom: 1px solid var(--border); padding-bottom: .65rem; }
.participant-summary-list > div:last-child { border-bottom: 0; padding-bottom: 0; }
.participant-summary-list dt { color: var(--muted); font-size: .65rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.participant-summary-list dd { margin: 0; overflow-wrap: anywhere; font-size: .83rem; font-weight: 650; }
.participant-summary-list dd small { display: block; margin-top: .12rem; color: var(--muted); font-size: .7rem; font-weight: 500; }
.participant-summary-contact { margin: 1rem 0 0; border-top: 1px solid var(--border); padding-top: .9rem; color: var(--muted); font-size: .75rem; }
.consent-readonly-details { padding: 0; }
.consent-readonly-details > summary { padding: 1rem 1.2rem; font-size: .88rem; font-weight: 750; cursor: pointer; }
.consent-readonly-details[open] > summary { border-bottom: 1px solid var(--border); }
.consent-readonly-details .participant-summary-list { padding: 1rem 1.2rem; }

/* Ekran logowania jest bramą panelu, a nie częścią rejestracji. */
.layout-auth { min-height: 100vh; background: var(--ink); }
.auth-shell { display: grid; grid-template-columns: minmax(18rem, .85fr) minmax(25rem, 1.15fr); min-height: 100vh; }
.auth-brand { display: flex; flex-direction: column; justify-content: space-between; background: var(--ink); padding: clamp(2rem, 6vw, 5rem); color: white; }
.auth-brand-copy { max-width: 24rem; }
.auth-brand-copy .eyebrow { color: var(--map-yellow); }
.auth-brand-copy .eyebrow::before { background: white; }
.auth-brand-copy > p:last-child { color: #c9c9c3; font-size: clamp(1.25rem, 3vw, 1.8rem); font-weight: 700; line-height: 1.35; }
.auth-content { display: grid; align-content: center; background: var(--surface); padding: clamp(1.5rem, 7vw, 6rem); }
.auth-content > * { width: min(100%, 31rem); margin-inline: auto; }
.auth-form { gap: 1rem; }
.auth-content h1 { font-size: clamp(2rem, 4vw, 2.8rem); }
.auth-content > .invitation-account { width: min(100%, 39rem); }
.auth-form .field-hint { margin: -.65rem 0 0; font-size: .8rem; }
.auth-form .legal-information { margin-bottom: .35rem; }

/* Właściwy panel dla administratora i prowadzącego. */
.layout-app { min-height: 100vh; background: var(--canvas); }
.app-frame { display: grid; grid-template-columns: 17.5rem minmax(0, 1fr); min-height: 100vh; }
.app-sidebar {
  position: sticky;
  z-index: 20;
  top: 0;
  display: flex;
  flex-direction: column;
  height: 100vh;
  overflow-y: auto;
  border-right: 1px solid #363632;
  background: var(--ink);
  color: white;
  padding: 1.35rem 1rem 1rem;
}

.app-sidebar__brand { display: block; width: fit-content; margin: 0 .55rem 1.5rem; color: white; text-decoration: none; }
.app-sidebar__brand .brand-symbol { color: var(--map-yellow); }
.app-workspace { min-width: 0; }
.app-pagebar {
  position: sticky;
  z-index: 10;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  min-height: 4.5rem;
  border-bottom: 1px solid var(--border);
  background: rgb(255 255 255 / 94%);
  padding: .75rem clamp(1.25rem, 3.5vw, 3rem);
  backdrop-filter: blur(10px);
}

.app-pagebar > div { display: grid; gap: .05rem; }
.app-pagebar__space { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.app-pagebar strong { font-size: .98rem; }
.app-pagebar__edition { max-width: 24rem; overflow: hidden; color: var(--muted); font-size: .82rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.app-main-container { width: min(100% - clamp(2rem, 7vw, 6rem), var(--content-width)); margin: clamp(1.75rem, 4vw, 3.25rem) auto 5rem; }
.app-main-container--anonymous { min-height: 100vh; }
.app-mobile-header { display: none; }
.app-mobile-header__context { display: none; }

.panel-navigation { display: flex; flex: 1; flex-direction: column; min-height: 0; color: white; }
.panel-scope {
  position: relative;
  display: grid;
  gap: .32rem;
  margin-bottom: 1.3rem;
  border: 1px solid #494943;
  border-radius: .85rem;
  background: #292927;
  padding: .9rem;
}

.panel-scope::before { position: absolute; inset: 0 auto 0 0; width: .23rem; border-radius: .85rem 0 0 .85rem; background: var(--map-yellow); content: ""; }
.panel-scope__location { display: flex; align-items: center; gap: .32rem; color: #aaa9a1; font-size: .65rem; font-weight: 700; }
.panel-scope__location strong { color: var(--map-yellow); font-size: inherit; letter-spacing: .06em; text-transform: uppercase; }
.panel-scope__dot { width: .4rem; height: .4rem; border-radius: 50%; background: var(--map-yellow); }
.panel-scope__title { overflow: hidden; margin-top: .15rem; font-size: .95rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.panel-scope__description { overflow: hidden; color: #aaa9a1; font-size: .72rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.panel-scope__back { width: fit-content; margin-top: .42rem; color: #d7d7d0; font-size: .74rem; font-weight: 700; text-decoration: none; }
.panel-scope__back:hover { color: var(--map-yellow); }
.panel-context__status { width: fit-content; margin-top: .25rem; border-radius: 999px; background: #44443f; padding: .13rem .48rem; color: #d5d5cf; font-size: .65rem; font-weight: 750; }
.panel-context__status--active { background: #193d2a; color: #bfe7cd; }
.panel-context__status--draft { background: #4d4612; color: #fff39d; }

.panel-nav { display: grid; gap: .22rem; margin-bottom: 1.25rem; }
.panel-nav__heading { margin: 0 .65rem .35rem; color: #8f8f88; font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.panel-nav__divider { width: calc(100% - 1.3rem); margin: .8rem .65rem .7rem; border: 0; border-top: 1px solid #44443f; }
.panel-nav__subheading { overflow: hidden; margin: .8rem .65rem .25rem; border-top: 1px solid #44443f; padding-top: .85rem; color: #aaa9a1; font-size: .64rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.panel-nav a {
  display: grid;
  grid-template-columns: 1.65rem minmax(0, 1fr);
  align-items: center;
  gap: .55rem;
  min-height: 2.65rem;
  border-radius: .62rem;
  color: #d1d1cb;
  padding: .42rem .55rem;
  font-size: .84rem;
  font-weight: 650;
  line-height: 1.25;
  text-decoration: none;
}

.panel-nav a > span { display: grid; place-items: center; width: 1.65rem; height: 1.65rem; border: 1px solid #4d4d47; border-radius: .45rem; color: #adada6; font-size: .66rem; font-weight: 850; }
.panel-nav a:hover { background: #30302d; color: white; }
.panel-nav a.panel-nav__section-active { background: #30302d; color: white; }
.panel-nav a.panel-nav__section-active > span { border-color: #756f1b; color: var(--map-yellow); }
.panel-nav a[aria-current="page"] { background: var(--map-yellow); color: var(--ink); }
.panel-nav a[aria-current="page"] > span { border-color: #cbbd00; color: var(--ink); }
.panel-nav__children { display: grid; margin: -.08rem 0 .2rem 1.35rem; border-left: 1px solid #55554e; padding: .22rem 0 .12rem .45rem; }
.panel-nav__children a { grid-template-columns: 1.35rem minmax(0, 1fr); min-height: 2.3rem; padding: .32rem .45rem; font-size: .76rem; }
.panel-nav__children a > span { width: 1.35rem; height: 1.35rem; border: 0; font-size: .75rem; }
.panel-navigation__spacer { flex: 1; min-height: .75rem; }
.panel-context-switches { display: grid; gap: .25rem; margin-bottom: .55rem; }
.panel-context-switches a { display: grid; grid-template-columns: 1.65rem minmax(0, 1fr); align-items: center; gap: .55rem; min-height: 2.45rem; border: 1px solid #43433e; border-radius: .62rem; color: #d1d1cb; padding: .35rem .55rem; font-size: .78rem; font-weight: 700; text-decoration: none; }
.panel-context-switches a:hover { border-color: #5a5a53; background: #30302d; color: white; }
.panel-context-switches a span { color: var(--map-yellow); text-align: center; }
.panel-more { margin-bottom: .7rem; }
.panel-more summary { border-radius: .55rem; color: #9d9d96; padding: .45rem .6rem; font-size: .7rem; font-weight: 700; cursor: pointer; list-style: none; }
.panel-more summary::-webkit-details-marker { display: none; }
.panel-more summary::after { float: right; content: "+"; }
.panel-more[open] summary::after { content: "−"; }
.panel-more summary:hover { background: #30302d; color: white; }
.panel-more__menu { display: grid; padding: .2rem .6rem .4rem; }
.panel-more__menu a { color: #c7c7c0; padding: .42rem 0; font-size: .74rem; font-weight: 650; text-decoration: none; }
.panel-more__menu a:hover { color: var(--map-yellow); }

.panel-account { display: grid; grid-template-columns: 2.2rem minmax(0, 1fr) auto; align-items: center; gap: .65rem; border-top: 1px solid #40403b; padding: 1rem .3rem 0; }
.panel-account__avatar { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--map-yellow); color: var(--ink); font-size: .72rem; font-weight: 850; }
.panel-account__identity { display: grid; min-width: 0; line-height: 1.2; }
.panel-account__identity strong, .panel-account__identity span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.panel-account__identity strong { font-size: .73rem; }
.panel-account__identity span { color: #9d9d96; font-size: .65rem; }
.panel-account form { display: block; }
.panel-account button { border: 0; background: transparent; color: #aaa9a1; padding: .25rem; font: inherit; font-size: .67rem; font-weight: 700; cursor: pointer; }
.panel-account button:hover { color: var(--map-yellow); }

.page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; margin-bottom: 1.5rem; }
.page-heading .eyebrow { margin-bottom: .45rem; }
.page-heading h1 { margin-bottom: .45rem; }
.page-heading > div > p:last-child { margin-bottom: 0; }
.page-heading > .button { flex: 0 0 auto; }
.page-eyebrow {
  margin-bottom: .35rem;
  color: var(--muted);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

/* Centrum zadań otwiera panel i prowadzi bezpośrednio do decyzji. */
.task-total {
  display: grid;
  min-width: 8.5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  padding: .8rem 1rem;
  text-align: center;
}
.task-total strong { font-size: 1.85rem; line-height: 1.1; }
.task-total span { color: var(--muted); font-size: .72rem; font-weight: 750; text-transform: uppercase; }
.task-list { display: grid; gap: .65rem; margin-bottom: 2.75rem; }
.task-item {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 1rem;
  min-height: 5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  padding: .85rem 1rem;
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 4px 18px rgb(29 29 27 / 3%);
  transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.task-item:hover { transform: translateY(-1px); border-color: var(--border-strong); box-shadow: 0 8px 24px rgb(29 29 27 / 7%); }
.task-item--primary { border-left: .35rem solid var(--map-yellow-deep); }
.task-item__icon { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .7rem; background: #efefe9; font-size: .72rem; font-weight: 900; }
.task-item--primary .task-item__icon { background: var(--map-yellow); }
.task-item > span:nth-child(2) { display: grid; gap: .16rem; }
.task-item small { color: var(--muted); font-size: .78rem; font-weight: 500; }
.task-item__count { min-width: 2.3rem; border-radius: 999px; background: var(--ink); padding: .28rem .65rem; color: white; font-size: .85rem; font-weight: 800; text-align: center; }
.task-item__arrow { color: var(--muted); font-size: 1.2rem; }
.task-empty { display: flex; align-items: center; gap: 1rem; margin-bottom: 2.75rem; }
.task-empty > span { display: grid; flex: 0 0 auto; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--success-soft); color: var(--success); font-weight: 900; }
.task-empty h2, .task-empty p { margin-bottom: 0; }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 1rem; }
.section-heading h2 { margin-bottom: 0; }
.overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.overview-card { display: flex; min-height: 15rem; flex-direction: column; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); padding: 1.2rem; }
.overview-card__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--border); padding-bottom: .75rem; }
.overview-card__heading h3 { margin: 0; }
.overview-card__heading > strong { font-size: 1.75rem; line-height: 1; }
.overview-card dl { display: grid; gap: .5rem; margin: 1rem 0; }
.overview-card dl div { display: flex; justify-content: space-between; gap: 1rem; }
.overview-card dt { color: var(--muted); }
.overview-card dd { margin: 0; font-weight: 750; }
.overview-card > a { margin-top: auto; font-size: .85rem; font-weight: 750; }
.overview-card--compact { min-height: 12rem; }
.overview-grid > a.overview-card { color: var(--ink); text-decoration: none; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.overview-grid > a.overview-card:hover { transform: translateY(-2px); border-color: #b8ad17; box-shadow: 0 10px 26px rgb(29 29 27 / 7%); }
.overview-grid > a.overview-card > strong { margin-block: auto .35rem; font-size: 2.5rem; line-height: 1; }
.overview-card__label { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.inline-decision { display: flex; align-items: end; gap: .5rem; }
.inline-decision input { min-width: 11rem; }
.sticky-actions { position: sticky; bottom: 1rem; display: flex; justify-content: flex-end; margin-top: 1rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: rgb(255 255 255 / 95%); padding: .75rem; box-shadow: 0 8px 28px rgb(29 29 27 / 10%); }
.activity-card { color: var(--ink); text-decoration: none; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.activity-card:hover { transform: translateY(-2px); border-color: #b8ad17; box-shadow: 0 10px 26px rgb(29 29 27 / 7%); }
.activity-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .78rem; }
.activity-card h2 { margin-top: 1rem; }
.button:disabled { opacity: .5; cursor: not-allowed; }
.form-note { margin-top: -.4rem; color: var(--muted); font-size: .82rem; }
.choice-grid legend { margin-bottom: .7rem; font-weight: 750; }
[data-activity-create-form] .choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 1rem; }
[data-activity-create-form] .choice-card { grid-template-columns: auto minmax(0, 1fr); min-height: 0; padding: 1rem; cursor: pointer; }
[data-activity-create-form] .choice-card input { width: auto; min-height: auto; margin-top: .2rem; accent-color: var(--ink); }
[data-activity-create-form] .choice-card span { display: grid; gap: .25rem; }
[data-activity-create-form] .choice-card small { color: var(--muted); font-weight: 500; line-height: 1.35; }
[data-activity-create-form] .choice-card:has(input:checked) { border-color: #b8ad17; background: #fffde7; }
.detail-heading { margin-bottom: 1.25rem; }
.detail-heading h1 { margin-bottom: .45rem; }
.detail-summary { border-top: .3rem solid var(--map-yellow); }
.detail-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.detail-section-heading h2 { margin: 0; }
.detail-section-heading span { color: var(--muted); font-size: .75rem; font-weight: 700; }
.detail-answers { display: grid; gap: 1.25rem; }
.detail-answers > div { border-top: 1px solid var(--border); padding-top: 1rem; }
.detail-answers h3 { margin-bottom: .45rem; color: var(--muted); font-size: .76rem; letter-spacing: .03em; text-transform: uppercase; }
.detail-answers p { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.detail-editor { padding: 0; }
.detail-editor > summary { padding: 1.1rem 1.25rem; font-size: 1.05rem; font-weight: 750; cursor: pointer; }
.detail-editor > summary::marker { color: var(--muted); }
.detail-editor[open] > summary { border-bottom: 1px solid var(--border); }
.detail-editor__form, .detail-editor__content { padding: 1.25rem; }
.detail-editor__form { display: grid; gap: 1rem; }
.detail-editor--danger > summary { color: var(--danger); }
.detail-decisions { margin-bottom: 1rem; }
.detail-decisions .card { margin-block: 0; }
.edition-choice-list { display: grid; gap: .75rem; max-width: 58rem; }
.edition-choice {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  padding: 1rem 1.15rem;
  text-decoration: none;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.edition-choice:hover { transform: translateY(-1px); border-color: #b8ad17; box-shadow: 0 8px 24px rgb(29 29 27 / 7%); }
.edition-choice--selected { border-left: .3rem solid var(--map-yellow-deep); }
.edition-choice__main { display: grid; }
.edition-choice__name { font-weight: 750; }
.edition-choice__meta { color: var(--muted); font-size: .78rem; }
.edition-choice__status { border-radius: 999px; background: #ecece7; padding: .24rem .62rem; color: var(--muted); font-size: .7rem; font-weight: 750; }
.edition-choice__status--active { background: var(--success-soft); color: var(--success); }
.edition-choice__status--draft { background: #fffbd0; color: #655e00; }
.edition-choice__action { font-size: .78rem; font-weight: 750; }

/* Jednoklikowa kolejka weryfikacji zgód. */
.quick-review-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 1.5rem; }
.quick-review-heading h1 { margin-bottom: .5rem; }
.quick-review-counter { display: grid; flex: 0 0 auto; min-width: 9rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); padding: .75rem 1rem; text-align: center; }
.quick-review-counter span { color: var(--muted); font-size: .7rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.quick-review-counter strong { font-size: 1.8rem; line-height: 1.15; }
.quick-review-counter small { color: var(--muted); font-size: .68rem; }

.consent-review-workbench { display: grid; grid-template-columns: minmax(20rem, 24rem) minmax(30rem, 1fr); align-items: start; gap: 1rem; }
.consent-review-person, .consent-preview { border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); box-shadow: 0 8px 26px rgb(29 29 27 / 5%); }
.consent-review-person { position: sticky; top: 5.5rem; max-height: calc(100vh - 6.5rem); overflow-y: auto; padding: 1.1rem; }
.consent-review-person__header { border-bottom: 1px solid var(--border); padding-bottom: 1rem; }
.consent-review-person__header h2 { margin: .65rem 0 .35rem; font-size: 1.5rem; }
.consent-review-person__header a { font-size: .78rem; font-weight: 700; }
.review-data-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; margin: 1rem 0; }
.review-data-list div { min-width: 0; }
.review-data-list dt { margin-bottom: .14rem; color: var(--muted); font-size: .68rem; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; }
.review-data-list dd { margin: 0; overflow-wrap: anywhere; font-size: .82rem; font-weight: 600; }
.review-data-list div:nth-child(n+3) { grid-column: 1 / -1; }
.review-consents { border: 1px solid var(--border); border-radius: .65rem; background: var(--surface-soft); padding: .85rem; }
.review-consents h3 { margin-bottom: .6rem; font-size: .9rem; }
.review-consents p { display: grid; grid-template-columns: 1rem minmax(0, 1fr); gap: .4rem; margin-bottom: .38rem; color: var(--ink-soft); font-size: .75rem; }
.review-consents p:last-child { margin-bottom: 0; }
.review-consents p > span { color: var(--success); font-weight: 850; }
.review-file-meta { display: grid; gap: .1rem; margin: .85rem 0; color: var(--muted); font-size: .7rem; }
.quick-review-secondary { margin: .5rem 0 .8rem; text-align: center; }
.quick-review-secondary a { color: var(--muted); font-size: .72rem; font-weight: 700; }
.quick-accept-form { position: sticky; bottom: 0; display: grid; gap: .55rem; margin: 0 -.15rem -.15rem; border-top: 1px solid var(--border); background: var(--surface); padding: .85rem .15rem .15rem; }
.quick-accept-button { width: 100%; min-height: 3.25rem; justify-content: space-between; padding-inline: 1rem; }
.queue-skip { color: var(--muted); font-size: .75rem; font-weight: 700; text-align: center; }
.quick-correction { margin-top: .85rem; border: 1px solid var(--border); border-radius: .65rem; background: var(--surface-soft); }
.quick-correction > summary { padding: .65rem .8rem; color: var(--danger); font-size: .78rem; font-weight: 750; cursor: pointer; }
.quick-correction form { display: grid; gap: .65rem; border-top: 1px solid var(--border); padding: .8rem; }
.quick-correction textarea { min-height: 6rem; }
.quick-correction .button { width: 100%; }
.mobile-review-actions { display: none; }

.consent-preview { overflow: hidden; }
.consent-preview__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.5rem; border-bottom: 1px solid var(--border); padding: .7rem 1rem; }
.consent-preview__bar h2 { margin: 0; font-size: 1rem; }
.consent-preview__bar a { font-size: .78rem; font-weight: 750; }
.consent-preview-frame { display: block; width: 100%; height: calc(100vh - 9.5rem); min-height: 40rem; border: 0; background: #d7d7d2; }
.consent-preview-image-wrap { display: grid; place-items: start center; height: calc(100vh - 9.5rem); min-height: 40rem; overflow: auto; background: #d7d7d2; padding: 1rem; }
.consent-preview-image { max-width: 100%; height: auto; background: white; box-shadow: 0 4px 20px rgb(0 0 0 / 18%); }
.quick-review-empty { max-width: 42rem; padding: clamp(2rem, 6vw, 4rem); text-align: center; }
.quick-review-empty__icon { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; margin: 0 auto 1.2rem; border-radius: 50%; background: var(--success-soft); color: var(--success); font-size: 1.5rem; font-weight: 850; }
.quick-review-empty h2 { font-size: 1.7rem; }
.quick-review-empty .actions { justify-content: center; }

/* Szybka kolejka decyzji dotyczących prowadzących. */
.instructor-review-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, 24rem); align-items: start; gap: 1rem; }
.instructor-review-profile { overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); box-shadow: 0 8px 26px rgb(29 29 27 / 5%); }
.instructor-review-identity { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; border-bottom: 1px solid var(--border); padding: 1.3rem; }
.instructor-review-identity h2 { margin: .55rem 0 .25rem; font-size: clamp(1.45rem, 3vw, 2rem); }
.instructor-review-identity p { margin: 0; color: var(--muted); overflow-wrap: anywhere; }
.instructor-review-identity > a { flex: 0 0 auto; font-size: .78rem; font-weight: 750; }
.instructor-review-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0; border-bottom: 1px solid var(--border); padding: 1.2rem 1.3rem; }
.instructor-review-facts div:last-child { grid-column: 1 / -1; }
.instructor-review-facts dt { margin-bottom: .2rem; color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.instructor-review-facts dd { margin: 0; overflow-wrap: anywhere; font-size: .88rem; font-weight: 650; white-space: pre-wrap; }
.instructor-review-pesel { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; border-bottom: 1px solid var(--border); background: var(--surface-soft); padding: 1rem 1.3rem; }
.instructor-review-pesel h3 { margin-bottom: .25rem; font-size: .9rem; }
.instructor-review-pesel p { margin: 0; min-height: 1.2rem; font-size: 1rem; font-weight: 750; letter-spacing: .08em; }
.instructor-review-pesel form { flex: 0 0 auto; }
.instructor-review-pesel .button { min-height: 2.5rem; font-size: .76rem; }
.instructor-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.instructor-profile-grid section { min-width: 0; border-bottom: 1px solid var(--border); padding: 1.2rem 1.3rem; }
.instructor-profile-grid section:nth-child(odd) { border-right: 1px solid var(--border); }
.instructor-profile-grid section:nth-last-child(-n+2) { border-bottom: 0; }
.instructor-profile-grid h3 { margin-bottom: .45rem; color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.instructor-profile-grid p { margin: 0; overflow-wrap: anywhere; color: var(--ink-soft); font-size: .88rem; white-space: pre-wrap; }
.instructor-review-actions { position: sticky; top: 5.5rem; display: grid; gap: 1rem; }
.queue-skip-button { width: 100%; }
.instructor-decision-card { display: grid; gap: 1rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); padding: 1.15rem; box-shadow: 0 8px 26px rgb(29 29 27 / 5%); }
.instructor-decision-card--accept { border-top: .3rem solid var(--map-yellow-deep); }
.instructor-decision-card--reject { border-top: .3rem solid var(--danger); }
.instructor-decision-card h2 { margin: .15rem 0 0; font-size: 1.15rem; }
.decision-label { color: var(--muted); font-size: .66rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.instructor-decision-card textarea { min-height: 6rem; }
.instructor-decision-button { justify-content: space-between; gap: .75rem; width: 100%; }

/* Formularze, karty i dane. */
form { display: grid; gap: .8rem; }
label { display: grid; gap: .38rem; color: var(--ink-soft); font-size: .92rem; font-weight: 600; }

input, select, textarea {
  width: 100%;
  min-height: 3rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--ink);
  padding: .7rem .8rem;
  font: inherit;
  font-weight: 500;
}

input:hover, select:hover, textarea:hover { border-color: var(--ink-soft); }
input:focus, select:focus, textarea:focus { border-color: var(--ink); outline: 3px solid rgb(255 236 0 / 55%); outline-offset: 1px; }
input:disabled, select:disabled, textarea:disabled { background: #eeeef0; color: var(--muted); cursor: not-allowed; }
textarea { min-height: 7rem; resize: vertical; }
input[type="file"] { padding: .55rem; }

fieldset {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-soft);
  padding: clamp(1rem, 3vw, 1.5rem);
}

legend { padding-inline: .45rem; color: var(--ink); font-size: 1.08rem; font-weight: 700; }

.card {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
  padding: clamp(1.15rem, 3vw, 2rem);
  margin-block: 1rem;
}

.public-form { gap: 1.15rem; border-top: .35rem solid var(--map-yellow); }
.public-form > fieldset { margin: 0; }
.narrow { max-width: 38rem; margin-inline: auto; }
.muted { color: var(--muted); }

.form-layout {
  display: grid;
  grid-template-columns: 13.5rem minmax(0, 1fr);
  align-items: start;
  gap: clamp(1.5rem, 4vw, 3.5rem);
}

.form-guide {
  position: sticky;
  top: 1.5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  padding: 1.25rem;
  box-shadow: 0 8px 24px rgb(29 29 27 / 4%);
}

.form-guide__title { margin-bottom: 1rem; font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.form-guide ol { display: grid; gap: .15rem; margin: 0; padding: 0; list-style: none; }
.form-guide a { display: grid; grid-template-columns: 1.5rem 1fr; gap: .55rem; border-radius: .6rem; padding: .65rem .5rem; color: var(--muted); font-size: .84rem; font-weight: 700; line-height: 1.3; text-decoration: none; }
.form-guide a span { color: #a19600; font-size: .7rem; letter-spacing: .04em; }
.form-guide a:hover { background: #fffde5; color: var(--ink); }
.form-guide__hint { margin: 1rem .5rem 0; border-top: 1px solid var(--border); padding-top: 1rem; color: var(--muted); font-size: .75rem; }
.required-mark {
  display: inline-block;
  margin-left: .3rem;
  border-radius: 999px;
  background: #f8dedb;
  padding: .08rem .42rem;
  color: #8f2a22;
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .025em;
  line-height: 1.35;
  text-transform: uppercase;
  vertical-align: .08rem;
}
.optional { color: var(--muted); font-size: .7rem; font-weight: 550; }
.field-label { display: inline; }
.form-field { display: grid; align-content: start; gap: .45rem; }
.form-field__heading { display: flex; align-items: center; gap: .45rem; min-height: 1.25rem; }
.form-field__heading > label { margin: 0; }
.field-help { position: relative; display: inline-flex; flex: 0 0 auto; }
.field-help > summary {
  display: grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
  border: 1px solid #a9aaa3;
  border-radius: 50%;
  background: var(--surface);
  color: var(--muted);
  font-size: .72rem;
  font-weight: 850;
  line-height: 1;
  cursor: help;
  list-style: none;
}
.field-help > summary::-webkit-details-marker { display: none; }
.field-help > summary:hover { border-color: var(--ink); color: var(--ink); }
.field-help > summary:focus-visible { outline: 3px solid rgb(255 236 0 / 48%); outline-offset: 2px; }
.field-help__content {
  position: absolute;
  z-index: 10;
  inset: calc(100% + .45rem) auto auto -.45rem;
  display: none;
  width: max-content;
  max-width: min(18rem, calc(100vw - 3rem));
  border: 1px solid #33332f;
  border-radius: .65rem;
  background: var(--ink);
  padding: .65rem .75rem;
  color: white;
  font-size: .78rem;
  font-weight: 550;
  line-height: 1.35;
  box-shadow: 0 8px 24px rgb(29 29 27 / 18%);
}
.field-help[open] .field-help__content,
.field-help:hover .field-help__content,
.field-help:focus-within .field-help__content { display: block; }

.public-form--sectioned { gap: 1rem; border: 0; }
.public-form--sectioned .form-section {
  scroll-margin-top: 1.5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  padding: clamp(1.25rem, 4vw, 2rem);
  box-shadow: 0 8px 30px rgb(29 29 27 / 4%);
}

.form-section > legend {
  display: flex;
  align-items: center;
  gap: .85rem;
  width: auto;
  margin-left: -.25rem;
  padding: 0 .25rem .75rem;
  font-size: 1.15rem;
  letter-spacing: -.015em;
}

.form-section > legend > span:last-child { display: grid; gap: .15rem; }
.form-section > legend small { color: var(--muted); font-size: .76rem; font-weight: 500; letter-spacing: 0; }
.form-section__number { display: grid; flex: 0 0 auto; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .75rem; background: var(--map-yellow); font-size: .68rem; font-weight: 900; }
.form-section__note { margin: -.1rem 0 1.25rem; border-left: .2rem solid var(--map-yellow); padding-left: .8rem; color: var(--muted); font-size: .88rem; }
.form-section[data-guardian-section] { transition: border-color .18s ease, background .18s ease, box-shadow .18s ease; }
.form-section[data-guardian-section][disabled] { border-color: #e3e3de; background: #f4f4f1; box-shadow: none; }
.form-section[data-guardian-section][disabled] label { color: #8a8b84; }
.form-section[data-guardian-state="minor"] { border-color: #c8bc21; }
.guardian-status { font-weight: 600; }
.guardian-required-mark { display: none; }
.form-section[data-guardian-state="minor"] .guardian-required-mark { display: inline; }
.form-section[data-guardian-state="adult"] .guardian-status { border-left-color: var(--success); color: var(--success); }
.second-guardian-toggle { margin-top: 1.15rem; border-top: 1px solid var(--border); padding-top: 1rem; }
.second-guardian-fields { margin-top: 1rem; border: 1px solid var(--border); border-radius: .85rem; background: var(--surface-soft); padding: 1rem; }
.second-guardian-fields__title { margin: 0 0 .9rem; color: var(--ink); font-size: .9rem; font-weight: 800; }

.layout-public .public-form label { color: var(--ink-soft); font-size: .86rem; font-weight: 700; }
.layout-public .public-form input:not([type="checkbox"]),
.layout-public .public-form select,
.layout-public .public-form textarea {
  min-height: 3.2rem;
  border-color: #c8c9c2;
  border-radius: .75rem;
  background: #fdfdfc;
  padding: .75rem .9rem;
  box-shadow: inset 0 1px 1px rgb(29 29 27 / 2%);
}

.layout-public .public-form input:not([type="checkbox"]):hover,
.layout-public .public-form select:hover,
.layout-public .public-form textarea:hover { border-color: #8f9089; }

.layout-public .public-form input:not([type="checkbox"]):focus,
.layout-public .public-form select:focus,
.layout-public .public-form textarea:focus { border-color: var(--ink); outline: 3px solid rgb(255 236 0 / 42%); }

.public-form--sectioned .form-grid { gap: 1rem 1.15rem; }
.public-form--sectioned .form-stack { display: grid; gap: 1.25rem; }
.public-form--sectioned .form-stack textarea { min-height: 10rem; line-height: 1.55; resize: vertical; }
.field-description { display: block; color: var(--muted); font-size: .78rem; font-weight: 500; line-height: 1.45; }
.previous-editions { display: grid; gap: .65rem; margin-top: 1.2rem; border-top: 1px solid var(--border); padding-top: 1.1rem; }
.previous-editions__title { margin: 0; color: var(--ink-soft); font-size: .86rem; font-weight: 800; }
.layout-public .public-form .previous-editions .checkbox { font-weight: 600; }
.public-form--sectioned .form-grid--textareas { margin-top: 1rem; }
.public-form--sectioned .school-picker { max-width: none; }
.public-form--sectioned .school-picker-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.15rem; }
.public-form--sectioned .school-picker-school-fields { display: grid; grid-template-columns: minmax(14rem, .75fr) minmax(18rem, 1.25fr); gap: 1rem 1.15rem; }
.form-error-summary { max-width: none; margin: 0 0 1.25rem; }
.form-error-summary strong { display: block; margin-bottom: .25rem; font-size: 1rem; }
.form-error-summary p { margin: .2rem 0 0; }

.form-submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--ink);
  padding: clamp(1.25rem, 3vw, 1.6rem);
  color: white;
}

.form-submit > p { max-width: 32rem; margin: 0; color: #cdcdc7; font-size: .86rem; }
.form-submit .actions { flex: 0 0 auto; margin: 0; }
.form-submit .button-secondary { border-color: #686862; background: transparent; color: white; }
.form-submit .button-secondary:hover { border-color: white; background: white; color: var(--ink); }

.choice-grid--compact { gap: .75rem; margin: 0 0 1rem; }
.choice-grid--compact .choice-card { grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .75rem; min-height: 0; border-radius: .9rem; padding: 1rem; cursor: pointer; box-shadow: none; }
.choice-grid--compact .choice-card:hover { transform: none; box-shadow: 0 8px 20px rgb(29 29 27 / 6%); }
.choice-grid--compact .choice-card:has(input:checked) { border-color: #b7aa00; background: #fffde7; }
.layout-public .public-form .choice-grid--compact input[type="radio"],
.layout-public .public-form .choice-grid--compact input[type="checkbox"] { width: 1.2rem; min-height: 1.2rem; margin-top: .15rem; padding: 0; accent-color: var(--ink); box-shadow: none; }
.choice-grid--compact .choice-card > span { display: grid; gap: .2rem; }
.choice-grid--compact .choice-card strong { color: var(--ink); font-size: .92rem; }
.choice-grid--compact .choice-card small { color: var(--muted); font-size: .78rem; font-weight: 500; }
.involvement-list { display: grid; margin-top: .65rem; overflow: hidden; border: 1px solid var(--border); border-radius: .75rem; background: var(--surface); }
.layout-public .public-form .involvement-choice { align-items: center; margin: 0; padding: .68rem .8rem; background: white; cursor: pointer; font-size: .85rem; font-weight: 600; line-height: 1.35; }
.involvement-choice:not(:last-child) { border-bottom: 1px solid var(--border); }
.layout-public .public-form .involvement-choice:hover { background: var(--surface-soft); }
.layout-public .public-form .involvement-choice:has(input:checked) { background: #fffde7; }
.layout-public .public-form .involvement-choice input { width: 1.1rem; min-height: 1.1rem; margin: 0; }
.file-upload-panel { border: 1px dashed #b7aa00; border-radius: .9rem; background: #fffef2; padding: 1rem; }
.layout-public .public-form .file-upload-panel input[type="file"] { width: 100%; margin-top: .55rem; background: white; }

.layout-public .button { min-height: 3rem; border-width: 1px; border-radius: .75rem; padding: .7rem 1.1rem; }
.layout-public .button:hover { border-color: var(--map-yellow); background: var(--map-yellow); color: var(--ink); }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 2.85rem;
  border: 2px solid var(--ink);
  border-radius: var(--radius-sm);
  background: var(--map-yellow);
  color: var(--ink);
  padding: .62rem 1.05rem;
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}

.button:hover { background: var(--ink); color: white; }
.button-secondary { border-color: var(--border-strong); background: var(--surface); color: var(--ink); }
.button-secondary:hover { border-color: var(--ink); }
.button-danger { border-color: var(--danger); background: var(--danger); color: white; }
.button-danger:hover { border-color: #741c16; background: #741c16; }
.button-header { min-height: 2.5rem; border-color: var(--map-yellow); background: transparent; color: var(--map-yellow); padding: .45rem .8rem; font-size: .84rem; }
.button-header:hover { background: var(--map-yellow); color: var(--ink); }

.alert {
  border: 1px solid #d3c731;
  border-left: .45rem solid var(--map-yellow-deep);
  border-radius: var(--radius-sm);
  background: #fffde5;
  padding: .9rem 1rem;
  margin-block: 1rem;
}

.alert-error { border-color: #db8079; border-left-color: var(--danger); background: var(--danger-soft); }
.alert-success { border-color: #82b695; border-left-color: var(--success); background: var(--success-soft); }
.status-code { margin-bottom: .5rem; color: var(--muted); font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 1rem; }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; }
.server-template-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.server-template-card { min-width: 0; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); padding: 1rem; }
.server-template-card__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.server-template-card__heading h2, .server-template-card__heading p { margin-block: 0; }
.server-template-preview { display: block; width: 100%; aspect-ratio: 210 / 297; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }

.mail-runtime { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; margin: 1.25rem 0; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--border); }
.mail-runtime > div { display: grid; gap: .3rem; min-width: 0; background: var(--surface); padding: .9rem 1rem; }
.mail-runtime span { color: var(--muted); font-size: .72rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.mail-runtime strong { overflow-wrap: anywhere; font-size: .9rem; }
.mail-catalog { display: grid; grid-template-columns: minmax(14rem, 19rem) minmax(0, 1fr); align-items: start; gap: 1.25rem; margin-top: 1.5rem; }
.mail-catalog__list { position: sticky; top: 1rem; display: grid; gap: .3rem; max-height: calc(100vh - 2rem); overflow-y: auto; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); padding: .65rem; }
.mail-catalog__category { margin: .7rem .55rem .2rem; color: var(--muted); font-size: .67rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.mail-catalog__category:first-child { margin-top: .25rem; }
.mail-catalog__list a { display: grid; gap: .25rem; border: 1px solid transparent; border-radius: var(--radius-sm); padding: .72rem .75rem; color: var(--ink); text-decoration: none; }
.mail-catalog__list a:hover { border-color: var(--border); background: var(--surface-soft); }
.mail-catalog__list a[aria-current="page"] { border-color: #c8bb00; background: var(--map-yellow); }
.mail-catalog__list strong { font-size: .86rem; line-height: 1.3; }
.mail-catalog__list span { color: var(--muted); font-size: .72rem; line-height: 1.35; }
.mail-catalog__list a[aria-current="page"] span { color: #514b00; }
.mail-detail { min-width: 0; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); padding: clamp(1rem, 2.5vw, 1.5rem); }
.mail-detail__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.mail-detail__heading h2, .mail-detail__heading p { margin-block: 0; }
.mail-facts { display: grid; gap: 0; margin: 1.25rem 0 1rem; border-block: 1px solid var(--border); }
.mail-facts > div { display: grid; grid-template-columns: minmax(8rem, 11rem) 1fr; gap: 1rem; padding: .8rem 0; }
.mail-facts > div + div { border-top: 1px solid var(--border); }
.mail-facts dt { color: var(--muted); font-size: .75rem; font-weight: 750; text-transform: uppercase; }
.mail-facts dd { margin: 0; font-size: .9rem; line-height: 1.55; overflow-wrap: anywhere; }
.mail-note { border-left: 4px solid var(--map-yellow); background: var(--surface-soft); padding: .75rem .9rem; font-size: .88rem; line-height: 1.5; }
.mail-preview-section { margin-top: 1.5rem; }
.mail-preview-section__heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.mail-preview-section__heading h3, .mail-preview-section__heading p { margin-block: 0; }
.mail-preview-section__heading p { margin-top: .2rem; font-size: .82rem; }
.mail-preview { display: block; width: 100%; height: 43rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: #f3f3f0; }
.mail-text-preview { margin-top: 1rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.mail-text-preview summary { cursor: pointer; padding: .85rem 1rem; font-weight: 750; }
.mail-text-preview pre { overflow: auto; margin: 0; border-top: 1px solid var(--border); padding: 1rem; background: var(--surface); color: var(--ink); font: .82rem/1.65 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.mail-catalog__footer { margin-top: 1rem; font-size: .82rem; }
.definition-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 1rem; }
.definition-list div { border-left: .25rem solid var(--map-yellow); padding-left: .75rem; }
.definition-list dt { color: var(--muted); font-size: .8rem; font-weight: 700; }
.definition-list dd { margin: .2rem 0 0; font-weight: 600; }
.actions { display: flex; align-items: flex-end; flex-wrap: wrap; gap: .75rem; margin-block: 1rem; }
.actions > h1 { margin-right: auto; margin-bottom: 0; }
.actions form { width: auto; }

.tabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .45rem;
  margin-block: 1.25rem 2rem;
  border-bottom: 1px solid var(--border);
  padding-bottom: .75rem;
}

.tabs a { border-radius: var(--radius-sm); background: var(--surface); padding: .48rem .85rem; font-size: .87rem; font-weight: 700; text-decoration: none; }
.tabs a:hover, .tabs a[aria-current="page"] { background: var(--ink); color: white; }
.status-tabs { margin-block: 1rem; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: thin; }
.status-tabs a { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .45rem; white-space: nowrap; }
.status-tabs a span { min-width: 1.4rem; border-radius: 999px; background: #e7e7e1; padding: .08rem .38rem; color: var(--muted); font-size: .7rem; text-align: center; }
.status-tabs a[aria-current="page"] span, .status-tabs a:hover span { background: #4d4d49; color: white; }

.badge {
  display: inline-block;
  border: 1px solid #d5c72b;
  border-radius: var(--radius-sm);
  background: #fffbd0;
  padding: .18rem .55rem;
  color: var(--ink-soft);
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.35;
}
.badge-danger { border-color: #d79a94; background: var(--danger-soft); color: var(--danger); }
.badge-success { border-color: #82b695; background: var(--success-soft); color: var(--success); }
.bulk-result-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1.5rem; }
.bulk-result-summary > div { display: grid; gap: .2rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-soft); padding: .9rem 1rem; }
.bulk-result-summary strong { font-size: 1.8rem; line-height: 1; }
.bulk-result-summary span { color: var(--muted); font-size: .72rem; font-weight: 750; text-transform: uppercase; }
.bulk-result-summary__success { border-color: #82b695 !important; background: var(--success-soft) !important; }
.bulk-result-summary__success strong { color: var(--success); }
.bulk-result-summary__failure { border-color: #d79a94 !important; background: var(--danger-soft) !important; }
.bulk-result-summary__failure strong { color: var(--danger); }
.bulk-result-reasons { display: grid; gap: .5rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.bulk-result-reasons li { display: flex; align-items: start; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--border); padding: .45rem 0; }
.bulk-result-reasons strong { flex: 0 0 auto; min-width: 2rem; border-radius: 999px; background: var(--ink); padding: .08rem .45rem; color: white; font-size: .75rem; text-align: center; }
.copy-field { display: flex; align-items: stretch; gap: .65rem; }
.copy-field input { min-width: 0; flex: 1 1 auto; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .8rem; }
.copy-field .button { flex: 0 0 auto; }
.table-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.table-actions form { width: auto; }
.table-actions .button { min-height: 2.35rem; padding: .42rem .7rem; font-size: .78rem; }

.table-scroll { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); }
table { width: 100%; border-collapse: collapse; background: var(--surface); font-size: .92rem; }
th, td { border-bottom: 1px solid var(--border); padding: .8rem .9rem; text-align: left; vertical-align: top; }
th { background: #efefe9; color: var(--ink-soft); font-size: .76rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover td { background: #fffef2; }
.list-row-action { font-weight: 750; }
.list-summary { margin: 1rem 0 .65rem; color: var(--muted); font-size: .85rem; }
.list-summary strong { color: var(--ink); }
.list-toolbar { grid-template-columns: minmax(15rem, 1fr) minmax(12rem, 16rem) auto auto; margin-block: .85rem 1rem; }
.list-toolbar--instructors { grid-template-columns: minmax(14rem, 1fr) minmax(11rem, 14rem) minmax(12rem, 16rem) auto auto; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1rem; }
.pagination > span { color: var(--muted); font-size: .82rem; font-weight: 700; }
.table-empty { padding: 2rem 1rem; color: var(--muted); text-align: center; }

.filters { display: grid; grid-template-columns: minmax(12rem, 30rem) auto; align-items: end; gap: .75rem; margin-block: 1rem; }
.checkbox { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .65rem; }
.checkbox input { width: 1.25rem; min-height: 1.25rem; margin-top: .15rem; accent-color: var(--ink); }
.consent-fieldset { display: grid; gap: 1rem; }
.consent-list { display: grid; gap: .75rem; }
.consent-list--required { border-bottom: 1px solid var(--border); padding-bottom: 1.15rem; }
.consent-choice { border: 1px solid var(--border); border-radius: .85rem; background: var(--surface-soft); padding: 1rem; font-weight: 500; line-height: 1.45; }
.consent-choice:hover { border-color: #b7b8b1; background: var(--surface); }
.consent-choice:has(input:checked) { border-color: #b7aa00; background: #fffde7; }
.consent-subheading { margin: .25rem 0 0; font-size: 1rem; }
.legal-information { border: 1px solid var(--border); border-radius: .85rem; background: var(--surface-soft); padding: .9rem 1rem; }
.legal-information summary { width: fit-content; cursor: pointer; font-size: .88rem; font-weight: 700; }
.legal-information ol { display: grid; gap: .55rem; margin-bottom: 0; padding-left: 1.4rem; color: var(--ink-soft); font-size: .9rem; }
.school-picker { display: grid; max-width: 52rem; gap: 1rem; }
.school-picker-fields { display: grid; gap: 1rem; }
.school-picker-step { display: grid; gap: .85rem; border: 1px solid var(--border); border-radius: .9rem; background: var(--surface-soft); padding: 1rem; }
.school-picker-step__heading { display: grid; grid-template-columns: 2rem minmax(0, 1fr); align-items: start; gap: .65rem; }
.school-picker-step__heading > span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: .6rem; background: var(--map-yellow); color: var(--ink); font-size: .76rem; font-weight: 900; }
.school-picker-step__heading > div { display: grid; gap: .15rem; }
.school-picker-step__heading strong { color: var(--ink); font-size: .9rem; }
.school-picker-step__heading small { color: var(--muted); font-size: .78rem; font-weight: 500; line-height: 1.4; }
.school-picker-school-fields { display: grid; gap: 1rem; }
.school-picker-status { margin: -.15rem 0 0; color: var(--muted); font-size: .82rem; }
.lessons-page { max-width: 72rem; margin-inline: auto; }
.lessons-heading { margin-bottom: 1rem; }
.lessons-heading p { max-width: 36rem; margin: .35rem 0 0; color: var(--muted); }
.lessons-heading > .actions { justify-content: flex-end; margin: 0; }
.lessons-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 13rem)); gap: .65rem; margin-bottom: 1rem; }
.lessons-summary > div { display: flex; align-items: baseline; gap: .5rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); padding: .65rem .8rem; }
.lessons-summary strong { font-size: 1.35rem; line-height: 1; }
.lessons-summary span { color: var(--muted); font-size: .72rem; font-weight: 750; }
.lessons-summary__attention { border-color: #d7c75e !important; background: #fffde7 !important; }
.lessons-summary__complete { border-color: #82b695 !important; background: var(--success-soft) !important; }
.lesson-list { display: grid; gap: .65rem; }
.lesson-item { display: grid; grid-template-columns: minmax(15rem, 1.15fr) minmax(22rem, 1.5fr) auto; align-items: center; gap: 1rem 1.25rem; border: 1px solid var(--border); border-left: .3rem solid var(--map-yellow-deep); border-radius: var(--radius-md); background: var(--surface); padding: .85rem 1rem; }
.lesson-item--cancelled { border-left-color: var(--border-strong); background: var(--surface-soft); }
.lesson-item__identity { display: grid; grid-template-columns: 5.7rem minmax(0, 1fr); align-items: center; gap: .9rem; min-width: 0; }
.lesson-item__identity time { color: var(--ink); font-size: .85rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.lesson-item__identity h2 { margin: 0 0 .18rem; overflow: hidden; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.lesson-item__identity h2 a { color: var(--ink); text-decoration: none; }
.lesson-item__identity h2 a:hover { text-decoration: underline; }
.lesson-item__instructors { margin: 0; overflow: hidden; color: var(--muted); font-size: .7rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.lesson-attendance { display: grid; grid-template-columns: minmax(7.5rem, .65fr) minmax(10rem, 1fr); align-items: center; gap: 1rem; border-left: 1px solid var(--border); padding-left: 1.25rem; }
.lesson-attendance__presence { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .15rem .55rem; }
.lesson-attendance__presence > span { display: grid; color: var(--muted); font-size: .7rem; font-weight: 750; }
.lesson-attendance__presence small { font-size: .58rem; font-weight: 600; }
.lesson-attendance__presence strong { font-size: 1.3rem; font-variant-numeric: tabular-nums; line-height: 1; white-space: nowrap; }
.lesson-attendance__completion { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .25rem .65rem; }
.lesson-attendance__completion progress { grid-column: 1 / -1; width: 100%; height: .42rem; border: 0; border-radius: 999px; overflow: hidden; background: #e4e4de; accent-color: var(--success); }
.lesson-attendance__completion progress::-webkit-progress-bar { border-radius: 999px; background: #e4e4de; }
.lesson-attendance__completion progress::-webkit-progress-value { border-radius: 999px; background: var(--success); }
.lesson-attendance__completion progress::-moz-progress-bar { border-radius: 999px; background: var(--success); }
.lesson-attendance__completion > small { grid-column: 2; grid-row: 1; color: var(--muted); font-size: .64rem; white-space: nowrap; }
.attendance-state { width: fit-content; font-size: .72rem; font-weight: 800; }
.attendance-state--complete { color: var(--success); }
.attendance-state--pending { color: #806b00; }
.attendance-state--empty { color: var(--muted); }
.lesson-item__cancelled-note { color: var(--muted); font-size: .8rem; }
.lesson-item__actions { display: grid; justify-items: stretch; gap: .35rem; min-width: 9.5rem; }
.lesson-item__actions .button { min-height: 2.4rem; padding: .45rem .7rem; font-size: .76rem; }
.lesson-item__details { color: var(--muted); padding: .35rem; font-size: .7rem; font-weight: 700; text-align: center; }
.lessons-empty { text-align: center; }
.lessons-empty p { color: var(--muted); }
.lessons-empty .button { margin-top: .5rem; }
.lesson-settings-page { max-width: 52rem; margin-inline: auto; }
.lesson-settings-form { gap: 1.25rem; border-top: .3rem solid var(--map-yellow-deep); }
.lesson-settings-form > h2 { margin-bottom: 0; }
.lesson-instructor-picker { display: grid; gap: .8rem; margin: 0; background: var(--surface-soft); }
.lesson-instructor-picker > p { margin: 0; color: var(--muted); font-size: .82rem; }
.lesson-instructor-picker__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.lesson-instructor-option { display: grid; grid-template-columns: auto 2rem minmax(0, 1fr); align-items: center; gap: .65rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); padding: .7rem; cursor: pointer; }
.lesson-instructor-option:hover { border-color: var(--border-strong); }
.lesson-instructor-option:has(input:checked) { border-color: #b7aa00; background: #fffde7; }
.lesson-instructor-option input { width: 1.15rem; min-height: 1.15rem; margin: 0; accent-color: var(--ink); }
.lesson-instructor-option__avatar { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--ink); color: white; font-size: .72rem; font-weight: 800; }
.lesson-instructor-option > span:last-child { display: grid; min-width: 0; gap: .08rem; }
.lesson-instructor-option strong, .lesson-instructor-option small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lesson-instructor-option strong { color: var(--ink); font-size: .84rem; }
.lesson-instructor-option small { color: var(--muted); font-size: .68rem; font-weight: 500; }
.lesson-instructor-option--historical { border-style: dashed; }
.lesson-instructor-option--historical .lesson-instructor-option__avatar { background: var(--muted); }
.lesson-instructor-picker .field-error { margin: 0; color: var(--danger); font-size: .78rem; font-weight: 700; }
.destructive-details { padding: 0; }
.destructive-details > summary { padding: 1rem 1.25rem; color: var(--danger); font-weight: 750; cursor: pointer; }
.destructive-details[open] > summary { border-bottom: 1px solid var(--border); }
.destructive-details > form { padding: 1.25rem; }
.attendance-page { max-width: 72rem; margin-inline: auto; }
.attendance-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 1.25rem; }
.attendance-heading h1 { margin-bottom: .35rem; }
.attendance-heading p { margin: 0; color: var(--muted); }
.attendance-heading .attendance-heading__instructors { margin-top: .2rem; color: var(--ink-soft); font-size: .78rem; font-weight: 650; }
.attendance-heading__state { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; }
.attendance-heading__state form { width: auto; }
.attendance-controls { display: grid; grid-template-columns: minmax(18rem, .8fr) minmax(20rem, 1.2fr); gap: 1rem 1.5rem; margin-bottom: 1rem; border: 1px solid var(--border); border-top: .3rem solid var(--map-yellow); border-radius: var(--radius-md); background: var(--surface); padding: 1rem; }
.attendance-progress { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.attendance-progress > div { display: grid; align-content: center; min-height: 4.2rem; padding: .55rem .8rem; }
.attendance-progress > div + div { border-left: 1px solid var(--border); }
.attendance-progress strong { font-size: 1.45rem; line-height: 1; }
.attendance-progress span { margin-top: .25rem; color: var(--muted); font-size: .66rem; font-weight: 750; letter-spacing: .03em; text-transform: uppercase; }
.attendance-progress__remaining { background: #fffde7; }
.attendance-quick-action { display: flex; align-items: center; gap: .8rem; }
.attendance-quick-action .button { flex: 0 0 auto; }
.attendance-quick-action small { max-width: 17rem; color: var(--muted); line-height: 1.35; }
.attendance-filters { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(16rem, 1fr) auto minmax(12rem, auto); align-items: end; gap: .8rem 1rem; border-top: 1px solid var(--border); padding-top: 1rem; }
.attendance-search { display: grid; gap: .3rem; }
.attendance-search > span { color: var(--muted); font-size: .75rem; font-weight: 750; }
.attendance-search input { min-height: 2.65rem; }
.attendance-unmarked-filter { display: flex; min-height: 2.65rem; align-items: center; gap: .55rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); padding: .55rem .75rem; cursor: pointer; white-space: nowrap; }
.attendance-unmarked-filter input { width: 1.1rem; min-height: 1.1rem; margin: 0; accent-color: var(--ink); }
.attendance-shortcuts { position: relative; align-self: center; font-size: .78rem; }
.attendance-shortcuts summary { width: fit-content; margin-left: auto; color: var(--muted); font-weight: 700; cursor: pointer; }
.attendance-shortcuts p { position: absolute; z-index: 5; top: calc(100% + .5rem); right: 0; width: min(25rem, 80vw); margin: 0; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--ink); color: white; padding: .75rem; box-shadow: 0 8px 24px rgb(29 29 27 / 18%); }
.attendance-shortcuts kbd, .attendance-choice kbd { border: 1px solid currentColor; border-radius: .25rem; padding: .05rem .3rem; font: inherit; font-size: .66rem; font-weight: 800; }
.attendance-results { min-height: 1.5rem; margin-bottom: .45rem; color: var(--muted); font-size: .8rem; font-weight: 650; }
.attendance-list { display: grid; gap: .45rem; }
.attendance-row { display: grid; grid-template-columns: minmax(13rem, 1fr) minmax(34rem, 2.7fr); align-items: center; gap: .75rem 1rem; margin: 0; border: 1px solid var(--border); border-left: .3rem solid var(--border-strong); border-radius: var(--radius-sm); background: var(--surface); padding: .5rem .7rem; transition: border-color .15s ease, box-shadow .15s ease; }
.attendance-row:focus { border-color: var(--border-strong); box-shadow: 0 0 0 3px rgb(231 214 0 / 25%); outline: none; }
.attendance-row[data-attendance-status="present"] { border-left-color: var(--success); }
.attendance-row[data-attendance-status="absent"] { border-left-color: var(--danger); }
.attendance-row[data-attendance-status="late"] { border-left-color: #a67900; }
.attendance-row[data-attendance-status="excused"] { border-left-color: #547083; }
.attendance-person { display: grid; grid-template-columns: 1.8rem minmax(0, 1fr); align-items: center; gap: .55rem; min-width: 0; }
.attendance-person__number { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--surface-soft); color: var(--muted); font-size: .7rem; font-weight: 800; }
.attendance-person strong { overflow: hidden; font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.attendance-choices { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(4.6rem, .55fr); gap: .35rem; }
.attendance-choice { display: flex; min-height: 2.65rem; align-items: center; justify-content: center; gap: .35rem; border: 1px solid var(--border-strong); border-radius: .45rem; background: var(--surface); color: var(--ink-soft); padding: .35rem .45rem; font-size: .76rem; font-weight: 750; text-align: center; cursor: pointer; user-select: none; }
.attendance-choice:hover { border-color: var(--ink); background: var(--surface-soft); }
.attendance-choice__input:focus-visible + .attendance-choice { outline: 3px solid var(--map-yellow-deep); outline-offset: 2px; }
.attendance-choice__input:checked + .attendance-choice { border-color: var(--ink); background: var(--ink); color: white; box-shadow: inset 0 -2px 0 rgb(0 0 0 / 20%); }
.attendance-choice__input:checked + .attendance-choice--present { border-color: var(--success); background: var(--success); }
.attendance-choice__input:checked + .attendance-choice--absent { border-color: var(--danger); background: var(--danger); }
.attendance-choice__input:checked + .attendance-choice--late { border-color: #8a6500; background: #8a6500; }
.attendance-choice__input:checked + .attendance-choice--excused { border-color: #496575; background: #496575; }
.attendance-choice__input:disabled + .attendance-choice { opacity: .72; cursor: default; }
.attendance-choice--clear { border-style: dashed; color: var(--muted); font-size: .7rem; }
.attendance-choice__input:checked + .attendance-choice--clear { border-color: var(--border-strong); background: var(--surface-soft); color: var(--muted); box-shadow: none; }
.attendance-savebar { position: sticky; z-index: 12; bottom: 1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; border: 1px solid var(--border-strong); border-radius: var(--radius-md); background: rgb(255 255 255 / 96%); padding: .75rem 1rem; box-shadow: 0 10px 30px rgb(29 29 27 / 15%); backdrop-filter: blur(8px); }
.attendance-savebar > div { display: grid; }
.attendance-savebar strong { font-size: .88rem; }
.attendance-savebar span { color: var(--muted); font-size: .72rem; }
.attendance-savebar[data-dirty="true"] { border-color: #b8ad17; }
.attendance-savebar[data-complete="true"] { border-color: #82b695; }

@media (max-width: 68rem) {
  .public-masthead { flex-wrap: wrap; padding-block: .8rem; }
  .public-masthead__actions { width: 100%; justify-content: flex-start; }
  .public-login-link { margin-left: auto; }
}

@media (max-width: 52rem) {
  .registration-hero { grid-template-columns: 1fr; }
  .registration-hero__edition { max-width: 18rem; }
  .registration-actions { grid-template-columns: 1fr; }
  .project-purpose { grid-template-columns: 1fr; gap: 1.5rem; }
  .partner-groups { grid-template-columns: 1fr; }
  .partner-group + .partner-group { border-top: 1px solid var(--border); border-left: 0; }
  .public-footer--homepage { display: grid; }
  .homepage-contact { width: 100%; margin-left: 0; }
  .choice-grid { grid-template-columns: 1fr; }
  .choice-card { min-height: 13rem; }
  .form-layout { grid-template-columns: 1fr; }
  .form-guide { position: static; overflow-x: auto; padding: .8rem; }
  .form-guide__title, .form-guide__hint { display: none; }
  .form-guide ol { display: flex; min-width: max-content; gap: .25rem; }
  .form-guide a { grid-template-columns: auto auto; align-items: center; padding: .6rem .7rem; }
  .auth-shell { grid-template-columns: 1fr; }
  .auth-brand { min-height: 16rem; padding: 2rem; }
  .auth-content { min-height: calc(100vh - 16rem); padding: 2rem 1.25rem 3rem; }
  .app-frame { display: block; }
  .app-sidebar, .app-pagebar { display: none; }
  .app-mobile-header {
    position: sticky;
    z-index: 30;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 4.5rem;
    border-bottom: .3rem solid var(--map-yellow);
    background: var(--surface);
    padding: .65rem 1rem;
  }
  .app-mobile-header__brand { color: var(--ink); text-decoration: none; }
  .app-mobile-header__context { display: grid; flex: 1; min-width: 0; line-height: 1.05; }
  .app-mobile-header__context small { color: var(--muted); font-size: .58rem; font-weight: 700; text-transform: uppercase; }
  .app-mobile-header__context strong { overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
  .app-mobile-header .brand-symbol { font-size: 2.8rem; }
  .app-mobile-header .brand-name { font-size: 1.35rem; }
  .app-mobile-header .brand-product { font-size: .48rem; }
  .app-mobile-menu { position: static; }
  .app-mobile-menu > summary { border: 1px solid var(--border-strong); border-radius: .55rem; background: var(--surface); padding: .48rem .7rem; font-size: .8rem; font-weight: 750; cursor: pointer; list-style: none; }
  .app-mobile-menu > summary::-webkit-details-marker { display: none; }
  .app-mobile-menu > summary::after { margin-left: .45rem; content: "↓"; }
  .app-mobile-menu[open] > summary::after { content: "↑"; }
  .app-mobile-menu__panel { position: absolute; inset: calc(100% + .3rem) 0 auto; max-height: calc(100vh - 4.8rem); overflow-y: auto; border-bottom: 1px solid #393934; background: var(--ink); padding: 1rem; box-shadow: 0 18px 34px rgb(0 0 0 / 22%); }
  .panel-navigation--mobile { min-height: min(34rem, calc(100vh - 7rem)); }
  .panel-navigation--mobile .panel-scope { max-width: 30rem; }
  .panel-navigation--mobile .panel-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .panel-navigation--mobile .panel-nav__heading { grid-column: 1 / -1; }
  .panel-navigation--mobile .panel-nav__children { grid-column: 1 / -1; }
  .panel-navigation--mobile .panel-account { margin-top: .5rem; }
  .app-main-container { width: min(100% - 2rem, var(--content-width)); margin-top: 2rem; }
  .consent-portal-grid { grid-template-columns: 1fr; }
  .consent-portal-summary { position: static; }
  .overview-grid { grid-template-columns: 1fr; }
  .grid--two { grid-template-columns: 1fr; }
  .bulk-result-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .list-toolbar { grid-template-columns: minmax(12rem, 1fr) minmax(11rem, .6fr) auto; }
  .list-toolbar .button-secondary { grid-column: 1 / -1; }
  .quick-review-heading { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .quick-review-counter { grid-template-columns: 1fr auto; align-items: center; gap: 1rem; width: 100%; text-align: left; }
  .consent-review-workbench { grid-template-columns: 1fr; }
  .consent-review-person { position: static; max-height: none; overflow: visible; }
  .quick-accept-form { position: static; }
  .consent-preview-frame, .consent-preview-image-wrap { height: 70vh; min-height: 30rem; }
  .mobile-review-actions { display: grid; gap: .65rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); padding: 1rem; }
  .mobile-review-actions form, .mobile-review-actions .button { width: 100%; }
  .mobile-review-actions .queue-skip { padding: .5rem; }
  .instructor-review-layout { grid-template-columns: 1fr; }
  .instructor-review-actions { position: static; }
  .server-template-grid { grid-template-columns: 1fr; }
  .mail-catalog { grid-template-columns: 1fr; }
  .mail-catalog__list { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: none; }
  .mail-catalog__category { grid-column: 1 / -1; }
  .lesson-item { grid-template-columns: minmax(14rem, .9fr) minmax(20rem, 1.2fr); }
  .lesson-item__actions { grid-column: 1 / -1; grid-template-columns: minmax(9rem, auto) auto; align-items: center; justify-content: end; }
  .attendance-controls { grid-template-columns: 1fr; }
  .attendance-filters { grid-template-columns: minmax(12rem, 1fr) auto; }
  .attendance-shortcuts { display: none; }
  .attendance-row { grid-template-columns: minmax(11rem, 1fr) minmax(0, 2.4fr); }
}

@media (max-width: 40rem) {
  h1 { font-size: clamp(1.85rem, 9vw, 2.3rem); }
  .server-template-card__heading { align-items: stretch; flex-direction: column; }
  .server-template-card__heading .button { width: 100%; }
  .mail-runtime { grid-template-columns: 1fr; }
  .mail-catalog__list { grid-template-columns: 1fr; }
  .mail-detail__heading, .mail-preview-section__heading { align-items: stretch; flex-direction: column; }
  .mail-preview-section__heading .button { width: 100%; }
  .mail-facts > div { grid-template-columns: 1fr; gap: .3rem; }
  .mail-preview { height: 36rem; }
  .copy-field { align-items: stretch; flex-direction: column; }
  .copy-field .button { width: 100%; }
  .public-shell, .app-main-container { width: min(100% - 1.25rem, var(--content-width)); }
  .public-masthead { --public-logo-height: 2.7rem; min-height: 5.75rem; padding-block: .7rem; }
  .public-funding-notice { order: 3; width: 100%; max-width: none; margin-right: 0; border-top: 1px solid var(--border); padding-block: .75rem .1rem; justify-content: flex-start; }
  .public-funding-notice span { max-width: 14rem; }
  .public-masthead__actions { order: 2; width: 100%; justify-content: flex-start; }
  .public-login-link { margin-left: auto; }
  .edition-pill { max-width: 10rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .public-shell > main { padding-block: 1.5rem 2.5rem; }
  .consent-portal-hero { align-items: stretch; flex-direction: column; gap: 1.2rem; border-radius: 1rem; }
  .consent-status-pill { min-width: 0; }
  .consent-progress { grid-template-columns: 1fr; }
  .uploaded-document-item { grid-template-columns: 2.6rem minmax(0, 1fr); }
  .uploaded-document-item .button { grid-column: 1 / -1; width: 100%; }
  .registration-landing { gap: 2.5rem; }
  .registration-hero { gap: 2rem; border-radius: 1.1rem; padding: 1.6rem 1.35rem; }
  .registration-hero::after { width: 3.5rem; height: 3.5rem; }
  .registration-intro h1 { font-size: clamp(2.25rem, 10vw, 3.1rem); }
  .registration-action { min-height: 0; padding: 1rem; }
  .registration-action__number { width: 2.7rem; height: 2.7rem; }
  .project-support-grid, .homepage-contact { grid-template-columns: 1fr; }
  .funding-section { padding-inline: .5rem; }
  .partner-logos { gap: 1.25rem; }
  .partner-logos--organizers img:first-child { height: 3.8rem; }
  .partner-logos--organizers img:last-child { height: 3.5rem; }
  .partner-logos--collaboration img { height: 3.4rem; }
  .instructor-review-identity, .instructor-review-pesel { align-items: stretch; flex-direction: column; }
  .instructor-review-identity > a, .instructor-review-pesel form { flex: initial; }
  .instructor-review-pesel .button { width: 100%; }
  .instructor-review-facts, .instructor-profile-grid { grid-template-columns: 1fr; }
  .instructor-review-facts div:last-child { grid-column: auto; }
  .instructor-profile-grid section, .instructor-profile-grid section:nth-child(odd), .instructor-profile-grid section:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid var(--border); }
  .instructor-profile-grid section:last-child { border-bottom: 0; }
  .choice-grid { gap: .8rem; margin-top: -1rem; }
  .choice-card { grid-template-columns: 1fr; gap: .75rem; min-height: 0; border-radius: 1rem; padding: 1.2rem; }
  .choice-card__icon { width: 2.6rem; height: 2.6rem; }
  .choice-card__body h2 { margin-bottom: .6rem; }
  .choice-card__action { margin-top: .5rem; }
  .public-heading h1 { font-size: clamp(2.25rem, 11vw, 3rem); }
  .back-link { margin-bottom: 1.35rem; }
  .form-layout { gap: 1rem; }
  .public-form--sectioned .form-section { border-radius: 1rem; padding: 1rem; }
  .form-section > legend { align-items: flex-start; gap: .65rem; padding-bottom: .6rem; font-size: 1.05rem; }
  .form-section__number { width: 2.2rem; height: 2.2rem; border-radius: .65rem; }
  .field-help__content { inset: calc(100% + .45rem) -.45rem auto auto; }
  .public-form--sectioned .school-picker-fields { grid-template-columns: 1fr; }
  .public-form--sectioned .school-picker-school-fields { grid-template-columns: 1fr; }
  .form-submit { align-items: stretch; flex-direction: column; border-radius: 1rem; }
  .form-submit .actions { width: 100%; }
  .panel-navigation--mobile .panel-nav { grid-template-columns: 1fr; }
  .edition-choice { grid-template-columns: minmax(0, 1fr) auto; }
  .edition-choice__action { grid-column: 1 / -1; }
  .page-heading { align-items: stretch; flex-direction: column; gap: 1rem; }
  .page-heading > .button { width: 100%; }
  .task-total { grid-template-columns: 1fr auto; align-items: center; width: 100%; text-align: left; }
  .task-item { grid-template-columns: 2.5rem minmax(0, 1fr) auto; gap: .75rem; }
  .task-item__arrow { display: none; }
  .task-item small { line-height: 1.35; }
  .overview-card { min-height: 13rem; }
  [data-activity-create-form] .choice-grid { grid-template-columns: 1fr; margin-top: 0; }
  [data-activity-create-form] .choice-card { grid-template-columns: auto minmax(0, 1fr); }
  .inline-decision { align-items: stretch; flex-direction: column; }
  .sticky-actions { bottom: .5rem; }
  .filters { grid-template-columns: 1fr; }
  .lessons-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lesson-item { grid-template-columns: 1fr; align-items: stretch; gap: .8rem; padding: .85rem; }
  .lesson-item__identity { grid-template-columns: 5.4rem minmax(0, 1fr); }
  .lesson-item__identity h2 { white-space: normal; }
  .lesson-item__instructors { white-space: normal; }
  .lesson-attendance { grid-template-columns: minmax(7rem, .55fr) minmax(10rem, 1fr); border-top: 1px solid var(--border); border-left: 0; padding-top: .8rem; padding-left: 0; }
  .lesson-item__actions { grid-column: auto; grid-template-columns: minmax(0, 1fr) auto; justify-content: stretch; }
  .attendance-heading { align-items: flex-start; flex-direction: column; gap: .75rem; }
  .attendance-heading__state { width: 100%; justify-content: flex-start; }
  .attendance-controls { gap: .8rem; padding: .8rem; }
  .attendance-quick-action { align-items: stretch; flex-direction: column; }
  .attendance-quick-action small { max-width: none; }
  .attendance-filters { grid-template-columns: 1fr; }
  .attendance-unmarked-filter { width: 100%; }
  .attendance-row { grid-template-columns: 1fr; gap: .65rem; padding: .7rem; }
  .attendance-person strong { white-space: normal; }
  .attendance-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .attendance-choice { min-height: 3rem; font-size: .8rem; }
  .attendance-choice--clear { grid-column: 1 / -1; min-height: 2.4rem; }
  .lesson-instructor-picker__list { grid-template-columns: 1fr; }
  .attendance-savebar { bottom: .5rem; align-items: stretch; flex-direction: column; }
  .attendance-savebar .button { width: 100%; }
  .list-toolbar .button-secondary { grid-column: auto; }
  .table-scroll--cards { overflow: visible; border: 0; background: transparent; }
  .responsive-table, .responsive-table tbody, .responsive-table tr, .responsive-table td { display: block; width: 100%; }
  .responsive-table { background: transparent; }
  .responsive-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .responsive-table tbody { display: grid; gap: .75rem; }
  .responsive-table tr { overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); }
  .responsive-table td { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: .65rem; border-bottom: 1px solid var(--border); padding: .65rem .8rem; overflow-wrap: anywhere; }
  .responsive-table td::before { color: var(--muted); content: attr(data-label); font-size: .68rem; font-weight: 750; letter-spacing: .025em; text-transform: uppercase; }
  .responsive-table td:last-child { border-bottom: 0; }
  .responsive-table .table-empty { display: block; padding: 1.5rem 1rem; text-align: center; }
  .responsive-table .table-empty::before { content: none; }
  .pagination { align-items: stretch; flex-direction: column; }
  .button:not(.button-header) { width: 100%; }
  .actions { align-items: stretch; flex-direction: column; }
  .actions > *, .actions form { width: 100%; }
  .public-footer { align-items: flex-start; flex-direction: column; margin-top: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
