:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  color: #18191c;
  background: #fff;
  font-synthesis: none;
  --red: #d01e30;
  --red-dark: #b71829;
  --line: #e8e9ec;
  --gray: #f0f1f3;
  --muted: #777982;
  --green: #dff4e8;
  --green-ink: #176d44;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-width: 300px; }
body.modal-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
button, .sharegrid a {
  border: 1px solid #dadce1;
  background: white;
  border-radius: 10px;
  padding: 12px 15px;
  color: #22242a;
  font-weight: 650;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
}
button:disabled { opacity: .35; cursor: default; }
button:not(:disabled):hover, .sharegrid a:hover { border-color: #9e9fa6; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, a:focus-visible, summary:focus-visible {
  outline: 3px solid #e6a2aa;
  outline-offset: 2px;
}
button.primary { background: var(--red); color: white; border-color: var(--red); }
button.primary:hover { background: var(--red-dark); border-color: var(--red-dark); }
button.danger { background: #22242a; border-color: #22242a; }
input, textarea, select {
  width: 100%; min-width: 0; background: #fff; color: #202126;
  border: 1px solid #d6d8dc; border-radius: 10px; padding: 12px 13px;
}
input:focus, textarea:focus, select:focus { border-color: var(--red); outline: 2px solid #f8d6da; }
label { display: flex; flex-direction: column; gap: 8px; font-size: 13px; font-weight: 700; }
label small { font-weight: 400; color: var(--muted); }
h1, h2, h3, p { overflow-wrap: anywhere; }
h1 { font-weight: 780; letter-spacing: -.052em; line-height: 1.12; }
h2 { font-size: 20px; letter-spacing: -.03em; margin: 0; }
h3 { font-size: 16px; margin: 0; }
p { line-height: 1.55; }
.eyebrow { color: var(--red); letter-spacing: .13em; font-size: 10px; font-weight: 850; }
.muted, .hint { color: var(--muted); font-size: 13px; line-height: 1.5; }
.stack { display: flex; flex-direction: column; gap: 17px; }
.stack p { margin: 0; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.panel { border: 1px solid var(--line); border-radius: 15px; padding: 23px; margin-top: 17px; background: white; }
.alert, .success { border-radius: 10px; padding: 11px 14px; font-size: 13px; margin: 12px 0; }
.alert { background: #fff1f3; border: 1px solid #f2bdc5; color: #9f1425; }
.success { background: #eef8f1; border: 1px solid #bce2c9; color: #21603e; }
.sectionhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; }

/* Landing / event creation */
.home-header { max-width: 940px; padding: 24px 22px; margin: auto; border-bottom: 1px solid #f1f1f2; }
.brand { font-weight: 900; letter-spacing: -.07em; font-size: 23px; text-decoration: none; color: var(--red); }
.brand span { color: #25252b; font-size: 16px; letter-spacing: .07em; font-weight: 750; }
.home-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.meet-counter { display: inline-flex; align-items: baseline; gap: 4px; flex: 0 0 auto; padding: 7px 10px; border: 1px solid #e9eaee; background: #f8f8fa; border-radius: 999px; color: #757780; font-size: 11px; font-weight: 650; white-space: nowrap; }
.meet-counter strong { color: var(--red); font-weight: 850; font-size: 12px; font-variant-numeric: tabular-nums; }

.create-page { max-width: 710px; padding: 48px 20px 76px; margin: auto; }
.create-page h1 { font-size: clamp(34px, 6vw, 52px); margin: 12px 0; }
.lead { color: var(--muted); font-size: 17px; margin: 0 0 24px; }

/* Minimal extra fields on the creation form. */
.section-divider { margin-top: 3px; padding-top: 17px; border-top: 1px solid var(--line); color: #282a31; font-weight: 780; font-size: 13px; }
#duration-help { margin: -8px 0 0; }
.event-place { margin-top: 12px; display: flex; align-items: flex-start; gap: 10px; background: #fafafb; border: 1px solid #e9ebee; padding: 11px 12px; border-radius: 10px; }
.event-place .place-mark { flex: 0 0 27px; height: 27px; display: grid; place-items: center; color: var(--red); background: #fbe8eb; border-radius: 7px; font-weight: 800; }
.event-place strong { display: block; font-size: 11px; color: #686c76; }
.event-place p { margin: 3px 0 0; font-size: 13px; color: #24262d; overflow-wrap: anywhere; }
.event-place a { color: #b71829; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.confirmed-hours { font-weight: 750; margin-bottom: 10px !important; color: #24613e !important; }

/* Event: everything useful starts at the top */
.event-page { width: min(100%, 700px); margin: 0 auto; padding: 16px 18px 48px; }
.event-utility { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.event-utility .meet-counter { padding: 5px 8px; font-size: 10px; }
.event-utility .meet-counter strong { font-size: 11px; }
.brand-mini { font-size: 12px; text-decoration: none; color: var(--red); font-weight: 850; letter-spacing: -.015em; }
.brand-mini strong { color: #202127; margin-left: 3px; }
.utility-right { display: flex; align-items: center; gap: 14px; }
.event-status { display: inline-flex; align-items: center; gap: 6px; color: #64666d; font-size: 11px; white-space: nowrap; }
.status-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
.event-status.locked .status-dot { background: #208953; }
.adminlink { font-size: 11px; color: #777982; text-decoration: none; white-space: nowrap; }
.adminlink:hover { color: var(--red); }
.event-intro { margin-top: 18px; }
.event-intro h1 { font-size: clamp(29px, 5vw, 39px); margin: 0 0 8px; }
.event-description, .description-more { font-size: 13px; color: #696b74; margin: 0 0 12px; line-height: 1.5; }
.description-more summary { cursor: pointer; }
.description-more summary strong { white-space: nowrap; color: var(--red); font-size: 12px; }
.description-more p { padding: 10px 0; margin: 0; }
.meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.meta span { display: inline-flex; align-items: center; gap: 6px; background: #f1f2f4; padding: 7px 10px; border-radius: 7px; font-size: 11px; font-weight: 650; color: #53555e; }
.meta b { color: #777982; font-weight: 750; font-size: 14px; }

/* The two step participation flow */
.identity-card { border: 1px solid var(--line); border-radius: 15px; padding: 24px; margin-top: 20px; display: flex; flex-direction: column; gap: 12px; }
.step-label { color: var(--red); font-size: 11px; font-weight: 850; letter-spacing: .08em; }
.step-label span { color: #a4a6ad; }
.identity-card h2 { font-size: 23px; }
.identity-card p { margin: -3px 0 4px; color: var(--muted); font-size: 13px; }
.identity-card label { margin-top: 5px; }
.identity-card input { padding: 15px; font-size: 16px; }
.identity-card .continue { display: flex; align-items: center; justify-content: space-between; margin-top: 4px; padding: 14px 18px; }
.form-error { color: #b21d2a; background: #fff0f2; border-radius: 8px; padding: 9px 11px; font-size: 12px; margin: 0; }
.calendar-step { margin-top: 20px; }
.calendar-heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 12px; }
.calendar-heading h2 { font-size: 21px; }
.calendar-heading p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
button.nickname-edit { min-width: 94px; max-width: 42%; font-size: 12px; background: #f3f3f5; border-color: #f3f3f5; padding: 8px 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-radius: 9px; }
.nickname-edit span:first-child { display: inline-block; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; max-width: calc(100% - 22px); }
.legend { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 13px; margin-bottom: 10px; color: #747780; font-size: 10.5px; }
.legend span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.legend-dot { width: 12px; height: 12px; border-radius: 3px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 12px; }
.legend-dot.all { background: #c5efd7; border: 1px solid #8bd0ab; }
.legend-dot.half { background: linear-gradient(135deg,#c5efd7 0 49%,#e9eaed 50%); border: 1px solid #9aaba3; }
.legend-dot.custom { background: #ffecaf; border: 1px solid #e6c876; }
.legend-dot.unavailable { background: #f9e5e7; border: 1px solid #ebbbc0; color: #bd5360; font-weight: 850; font-size: 12px; line-height: 1; font-style: normal; }
.calendar-shell { border: 1px solid var(--line); border-radius: 14px; padding: 14px; }
.calendar-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.calendar-head strong { font-weight: 750; letter-spacing: -.025em; font-size: 17px; text-transform: capitalize; }
.calendar-head button { font-size: 23px; line-height: 1; padding: 5px 13px; border-color: transparent; background: #f4f5f6; border-radius: 8px; }
.calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 7px; }
.weekday { text-align: center; font-size: 11px; color: #9a9ca3; padding: 3px 0 6px; font-weight: 650; }
button.calday { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; aspect-ratio: 1.08; min-height: 43px; border-radius: 9px; font-size: 15px; border: 1px solid #e7e8eb; padding: 3px; background: #f1f2f4; color: #777a82; isolation: isolate; transition: border-color .15s, filter .15s; }
.calday strong { font-weight: 780; transform: translateY(-2px); }
button.calday.mode-all { background: #c6efd8; color: #14653e; border-color: #8ecfa9; }
/* Diagonal division: morning = top left, afternoon = bottom right. */
button.calday.mode-morning { background: linear-gradient(135deg, #c6efd8 0 49%, #edf0f2 50% 100%); color: #17543a; border-color: #bdd9c9; }
button.calday.mode-afternoon { background: linear-gradient(135deg, #edf0f2 0 49%, #c6efd8 50% 100%); color: #17543a; border-color: #bdd9c9; }
button.calday.mode-custom { background: #fff0bd; color: #755300; border-color: #e5c87c; }
/* Neutral gray = still unfilled; muted red with cross = explicitly unavailable. */
button.calday.mode-none { background: #f9e5e7; color: #a44852; border-color: #ebbbc0; }
button.calday:not(:disabled):hover { border-color: #53826e; filter: saturate(1.12); }
button.calday.mode-unset:not(:disabled):hover { border-color: #a4a6ae; background: #e8e9ed; }
button.calday.mode-none:not(:disabled):hover { border-color: #d39da5; background: #f5dbdf; }
button.calday:disabled { border-color: transparent; opacity: .33; background: transparent; }
.calday.selected { outline: 2px solid var(--red); outline-offset: 0; }
.day-mark { position: absolute; right: 4px; bottom: 3px; display: flex; align-items: center; justify-content: center; }
.day-check { color: #1a8b51; font-size: 14px; font-weight: 900; line-height: 1; }
.day-clock { color: #936b09; }
.day-cross { color: #bb5361; font-size: 16px; font-weight: 800; line-height: .9; }
.day-part { font-size: 8px; font-weight: 850; line-height: 1; letter-spacing: -.03em; color: #286346; }
.calendar-foot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 13px 1px 0; color: #767880; font-size: 11px; }
.calendar-foot strong { color: #25262c; }
#unsaved-indicator { color: var(--red); font-weight: 700; }
/* Quiet bulk action: muted red communicates unavailability without alarm. */
.bulk-unavailable { display: flex; width: 100%; align-items: center; gap: 12px; margin-top: 12px; padding: 12px 13px; border: 1px solid #efcdd2; background: #fffafa; text-align: left; border-radius: 11px; }
.bulk-unavailable:not(:disabled):hover { border-color: #d8a3ad; background: #fff2f3; }
.bulk-unavailable:disabled { opacity: 1; background: #f7f7f8; border-color: #e8e9ec; cursor: default; }
.bulk-unavailable-mark { flex: 0 0 30px; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 8px; color: #a94c57; background: #f8e2e5; font-size: 21px; font-weight: 750; }
.bulk-unavailable:disabled .bulk-unavailable-mark { color: #a1a3aa; background: #eceef0; }
.bulk-unavailable-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.bulk-unavailable-text strong { font-size: 13px; font-weight: 750; }
.bulk-unavailable-text small { font-size: 11px; line-height: 1.4; font-weight: 400; color: #89818a; }
.bulk-unavailable-arrow { flex: 0 0 auto; font-size: 18px; color: #b45b66; }
.bulk-unavailable:disabled .bulk-unavailable-arrow { color: #a1a3aa; }
.save-button { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-top: 14px; padding: 15px 18px; }
.calendar-hint { text-align: center; color: #92949c; font-size: 11px; margin: 10px 0 0; }
.draft-feedback { text-align: center; color: #688575; font-size: 11px; margin: 5px 0 0; }
.draft-feedback.error { color: #ac1b30; }

/* Bottom-sheet day editor */
.day-modal { position: fixed; width: min(95vw, 490px); max-height: min(87dvh, 720px); margin: auto; padding: 0; border: none; border-radius: 17px; box-shadow: 0 26px 75px #18191b3b; color: #191a1e; }
.day-modal::backdrop { background: rgb(10 13 20 / 54%); }
.modal-layout { display: flex; flex-direction: column; max-height: min(87dvh, 720px); }
.modal-head { display: flex; gap: 12px; align-items: flex-start; justify-content: space-between; padding: 21px 23px 14px; border-bottom: 1px solid #eceef0; }
.modal-head h2 { margin: 6px 0 4px; font-size: 21px; text-transform: capitalize; }
.modal-head p { margin: 0; }
.icon-close { font-size: 27px; font-weight: 400; line-height: 1; border: none; background: #f3f3f5; border-radius: 9px; padding: 5px 11px; }
.modal-body { padding: 17px 23px 20px; overflow-y: auto; overscroll-behavior: contain; }
.choices { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.choices button { text-align: left; font-size: 13px; padding: 13px 12px; min-height: 47px; }
.choices button.chosen { background: #fff1f2; color: #b71a2b; border-color: var(--red); box-shadow: inset 0 0 0 1px var(--red); }
.choices .choice-custom { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; }
/* Scope custom editor styles: the legend swatch also uses a .custom class. */
#custom-panel.custom { display: flex; flex-direction: column; gap: 11px; border-top: 1px solid #eceef0; margin-top: 15px; padding-top: 14px; }
#custom-panel.custom strong { font-size: 13px; }
#ranges { display: flex; flex-direction: column; gap: 9px; }
.range { display: flex; align-items: center; gap: 7px; }
.range select { padding: 11px 8px; font-size: 14px; }
.range span { color: #a1a3aa; }
.range .remove-range { flex: 0 0 auto; padding: 11px 13px; font-size: 19px; font-weight: 400; }
.add-range { font-size: 12px; padding: 10px; color: #555962; }
.modal-actions { padding: 12px 23px max(16px,env(safe-area-inset-bottom)); border-top: 1px solid #eceef0; background: white; }
.modal-actions button { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; }


/* Save confirmation: only appears if some dates are still gray. */
.remaining-days-modal { width: min(92vw, 440px); max-height: 85dvh; margin: auto; padding: 0; border: 0; border-radius: 16px; color: #202127; background: #fff; box-shadow: 0 26px 75px #18191b3b; }
.remaining-days-modal::backdrop { background: rgb(10 13 20 / 54%); }
.remaining-dialog-content { padding: 26px; }
.remaining-dialog-icon { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 11px; background: #fff1f2; color: #ae2939; font-size: 23px; font-weight: 800; margin-bottom: 15px; }
.remaining-dialog-content h2 { font-size: 20px; line-height: 1.25; margin: 0 0 9px; }
.remaining-dialog-content > p { font-size: 13px; line-height: 1.55; color: #64666e; margin: 0 0 14px; }
.remaining-dialog-content .remaining-days-note { display: flex; gap: 9px; align-items: flex-start; background: #fff5f6; border: 1px solid #f2dee1; border-radius: 10px; padding: 11px 12px; color: #86505a; font-size: 12px; }
.remaining-days-note span { font-size: 19px; font-weight: 800; line-height: 1; color: #b94a58; }
.remaining-dialog-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 23px; }
.remaining-dialog-actions button { min-height: 49px; font-size: 12px; padding: 11px; }
.remaining-dialog-actions button.primary { display: flex; align-items: center; justify-content: center; gap: 6px; }
@media (max-width: 520px) {
  .remaining-days-modal { width: calc(100% - 26px); }
  .remaining-dialog-content { padding: 21px; }
}

/* Confirmed event and administration */
.confirmed { margin-top: 22px; border-color: #b6dfc6; background: #f7fcf9; }
.confirmed h2 { margin: 9px 0 3px; font-size: 25px; }
.bigtime { font-size: 34px; font-weight: 800; letter-spacing: -.045em; margin: 4px 0 13px; }
.confirmed p { color: #66746b; font-size: 13px; margin: 0; }
.linkbtn { border: 0; color: var(--muted); font-size: 12px; padding: 5px; }
.candidate { display: grid; grid-template-columns: 1fr auto; gap: 9px; align-items: center; border: 1px solid var(--line); border-radius: 10px; padding: 13px; }
.candidate strong { font-size: 14px; }
.candidate .hint { margin: 4px 0; }
.candidate .score { white-space: nowrap; color: var(--red); font-size: 16px; font-weight: 800; }
.candidate button { grid-column: 1 / -1; }

/* Participants and the deliberately last, collapsed sharing menu */
.participants { margin-top: 28px; }
.participants h2 { font-size: 15px; }
.participants h2 span { color: #a4a6ad; font-weight: 500; }
.tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.tags span { background: #f1f2f4; border-radius: 100px; padding: 7px 11px; font-size: 12px; color: #5f626b; }
.share-collapsible { margin-top: 30px; border: 1px solid #e3e4e7; border-radius: 15px; background: #fafafb; overflow: hidden; box-shadow: 0 3px 13px #191b2208; }
.share-collapsible summary { display: flex; align-items: center; gap: 13px; padding: 16px; list-style: none; cursor: pointer; }
.share-collapsible summary::-webkit-details-marker { display: none; }
.share-symbol { flex: 0 0 42px; display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 11px; background: #fae5e8; color: var(--red); font-size: 24px; font-weight: 700; }
.share-summary-copy { flex: 1; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.share-summary-copy strong { font-size: 14px; font-weight: 800; letter-spacing: -.02em; }
.share-summary-copy small { font-size: 11px; color: #797b83; }
.share-expand { background: #f0f0f2; border-radius: 8px; width: 30px; height: 30px; display: flex; justify-content: center; align-items: center; font-size: 22px; color: #777982; transition: transform .2s; }
.share-collapsible[open] .share-expand { transform: rotate(180deg); }
.share-content { padding: 15px 16px 18px; background: white; border-top: 1px solid #ebecee; }
.share-caption { color: #737782; font-size: 12px; margin: 0 0 14px; }
.share-link-row { border: 1px solid #e6e7eb; background: #f8f9fa; border-radius: 10px; padding: 6px; display: flex; align-items: center; gap: 9px; }
.urlbox { flex: 1; min-width: 0; padding: 8px; overflow-wrap: anywhere; font-size: 12px; font-weight: 650; color: #4f525a; }
.share-link-row .share-copy { flex: 0 0 auto; padding: 10px 14px; border-radius: 8px; font-size: 12px; }
.share-divider { color: #8b8d95; font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .085em; margin-top: 19px; }
.sharegrid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 9px; }
.sharegrid button, .sharegrid a { font-size: 12px; padding: 13px 9px; display: flex; justify-content: center; align-items: center; }
.page-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; max-width: 700px; margin: 0 auto; padding: 23px 18px 30px; border-top: 1px solid #eceef0; }
.footer-medallion { display: inline-flex; gap: 7px; align-items: baseline; border: 1px solid #e7e8eb; background: white; box-shadow: 0 2px 8px #11111106; border-radius: 10px; padding: 9px 12px; font-size: 12px; font-weight: 900; letter-spacing: -.03em; white-space: nowrap; }
.footer-rxb { color: var(--red); }
.footer-slash { color: #c2c3c8; font-weight: 400; }
.footer-meet { color: #26272d; }
.footer-credits { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; font-size: 10px; color: #999ba3; }
.footer-credits a { color: #555861; font-size: 11px; font-weight: 750; text-decoration: none; }
.footer-credits a:hover { color: var(--red); text-decoration: underline; }

@media (max-width: 520px) {
  .home-header { padding: 19px 17px; }
  .event-utility { gap: 6px; }
  .event-utility .meet-count-label, .event-utility .meet-count-tail { display: none; }
  .event-utility .meet-counter { padding: 5px 6px; gap: 3px; font-size: 10px; }
  .event-utility .utility-right { gap: 9px; }
  .event-utility .adminlink span { display: none; }
  .home-header .meet-counter { padding: 6px 8px; }
  .create-page { padding: 34px 15px 50px; }
  .event-page { padding: 11px 13px 37px; }
  .event-intro { margin-top: 15px; }
  .event-intro h1 { font-size: 30px; }
  .event-description { font-size: 12px; margin-bottom: 9px; }
  .meta span { padding: 6px 8px; font-size: 10px; }
  .calendar-step { margin-top: 18px; }
  .calendar-shell { padding: 10px; }
  .calendar { gap: 4px; }
  button.calday { min-height: 39px; border-radius: 8px; font-size: 14px; }
  .day-check { font-size: 12px; }
  .day-cross { font-size: 14px; }
  .day-part { font-size: 7px; }
  .identity-card { padding: 19px; }
  .panel { padding: 17px; }
  .day-modal { width: 100%; max-height: 88dvh; border-radius: 18px 18px 0 0; margin: auto 0 0; }
  .modal-layout { max-height: 88dvh; }
  .modal-head { padding: 19px 19px 13px; }
  .modal-body { padding: 16px 19px; }
  .modal-actions { padding-left: 19px; padding-right: 19px; }
  .choices button { min-height: 44px; }
  .share-collapsible summary { padding: 13px; }
  .share-content { padding: 13px; }
  .share-symbol { flex-basis: 39px; width: 39px; height: 39px; }
  .share-summary-copy small { font-size: 10px; }
  .page-footer { padding: 20px 14px 26px; }
}

/* RXB Meet v3.6: fixed meeting start + Czech date inputs */
.cz-date-input { font-variant-numeric: tabular-nums; letter-spacing: .03em; }
.date-format-hint { color: #92949b; font-size: 11px; margin: -8px 0 0 !important; }
#fixed-start-field { margin-top: -3px; }

/* Matrix of submitted availabilities. The whole dialog stays independent of
   the narrow event page; only the table scrolls in two directions. */
.matrix-open { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; padding: 14px 15px; border: 1px solid #d8e2dc; background: #f7fbf8; color: #183b2b; }
.matrix-open:hover { background: #ecf7f0; border-color: #79bf96 !important; }
.matrix-open .matrix-icon { flex: 0 0 38px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 9px; background: #dbf0e4; color: #16754b; font-size: 22px; }
.matrix-open span:nth-child(2) { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.matrix-open strong { font-size: 13px; font-weight: 800; }
.matrix-open small { font-size: 11px; line-height: 1.35; font-weight: 450; color: #648173; }
.matrix-open > span:last-child { font-size: 22px; color: #2e8960; }
.matrix-modal { position: fixed; width: min(1320px,calc(100vw - 28px)); max-width: none; max-height: min(92dvh,960px); margin: auto; padding: 0; color: #23252c; border: 1px solid #dfe3e1; border-radius: 16px; background: #fff; box-shadow: 0 32px 110px #11162455; }
.matrix-modal::backdrop { background: rgb(10 13 20 / 61%); }
.matrix-modal-shell { display: flex; flex-direction: column; max-height: min(92dvh,960px); min-height: 280px; }
.matrix-modal-head { flex: 0 0 auto; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 19px 22px 14px; }
.matrix-modal-head h2 { margin: 6px 0; font-size: clamp(19px,3vw,25px); }
.matrix-modal-head p { margin: 0; color: #787b83; font-size: 12px; max-width: 770px; }
.matrix-modal-head .icon-close { flex: 0 0 auto; }
.matrix-toolbar { flex: 0 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 20px; background: #fafbfb; border-block: 1px solid #e9eceb; }
.matrix-key { display: flex; align-items: center; flex-wrap: wrap; gap: 9px 16px; color: #777a81; font-size: 10px; }
.matrix-key span { display: inline-flex; align-items: center; gap: 5px; }
.matrix-swatch { display: inline-block; width: 12px; height: 12px; border: 1px solid #dedee1; border-radius: 3px; }
.matrix-swatch.available { background: #5da780; border-color: #5da780; }
.matrix-swatch.unavailable { background: #f3d8dc; border-color: #efb6c0; }
.matrix-swatch.unset { background: #eceef0; }
.matrix-swatch.best { background: #d1f0dd; border-color: #4a9e70; }
.matrix-nav { display: flex; flex: 0 0 auto; gap: 5px; }
.matrix-nav button { width: 37px; height: 32px; padding: 0; border-radius: 7px; }
.matrix-scroll { flex: 1 1 auto; min-height: 140px; overflow: auto; overscroll-behavior: contain; scrollbar-color: #b9c1bc #f1f2f3; }
.matrix-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12px; table-layout: fixed; }
.matrix-table th, .matrix-table td { border-right: 1px solid #e9eceb; border-bottom: 1px solid #eceeec; vertical-align: top; }
.matrix-table thead th { position: sticky; top: 0; z-index: 2; height: 100px; background: #f9fafb; }
.matrix-table .matrix-name { position: sticky; left: 0; z-index: 3; width: 148px; min-width: 148px; max-width: 148px; background: #fff; padding: 16px 11px; text-align: left; font-size: 12px; font-weight: 750; word-break: break-word; box-shadow: 5px 0 10px #29332d08; }
.matrix-table thead .matrix-corner { z-index: 5; background: #f5f6f7; color: #666a70; font-size: 10px; text-transform: uppercase; letter-spacing: .055em; }
.matrix-day-heading { width: 156px; min-width: 156px; padding: 9px 10px; text-align: left; }
.matrix-day-heading .matrix-dow { display: block; color: #84878e; font-size: 10px; margin-bottom: 2px; }
.matrix-day-heading strong { display: block; color: #2b2e33; font-size: 12px; font-variant-numeric: tabular-nums; }
.matrix-score { display: inline-block; color: #34805a; font-size: 11px; font-weight: 800; margin-top: 6px; }
.matrix-score.is-best { padding: 3px 6px; border-radius: 5px; background: #bdebd0; color: #135d38; }
.matrix-score-empty { display: block; margin-top: 6px; color: #b1b4b6; }
.matrix-day-heading small { display: block; margin-top: 2px; font-size: 10px; color: #6b7770; }
.matrix-pick { display: inline-block; font-size: 10px; font-weight: 750; color: #176b44; border: 1px solid #c2decf; padding: 3px 7px; margin-top: 6px; background: white; border-radius: 5px; }
.matrix-pick:hover { background: #edf9f2; }
.matrix-table thead .matrix-best-column { background: #d9f3e4; }
.matrix-table .matrix-cell { width: 156px; min-width: 156px; height: 81px; padding: 11px 10px; background: #fff; }
.matrix-table .matrix-cell.matrix-best-column { background: #effaf3; box-shadow: inset 2px 0 #6ab88d, inset -2px 0 #6ab88d; }
.matrix-table tbody tr:nth-child(even) .matrix-name { background: #fafbfb; }
.matrix-cell-top { display: flex; gap: 5px; justify-content: space-between; align-items: center; min-height: 15px; }
.matrix-status { font-size: 10px; color: #a2a6ab; }
.matrix-status.available { color: #23814f; font-weight: 700; }
.matrix-status.unavailable { color: #b45763; font-weight: 700; }
.matrix-match { font-size: 9px; font-weight: 800; color: #14774a; white-space: nowrap; }
.matrix-track { position: relative; height: 10px; overflow: hidden; background: #ebedef; border-radius: 4px; margin: 9px 0 7px; }
.matrix-interval { position: absolute; top: 0; bottom: 0; background: #62b38b; opacity: .96; }
.matrix-best-window { position: absolute; top: 0; bottom: 0; border-inline: 2px solid #cf5663; outline: 1px solid #cf5663; outline-offset: -1px; z-index: 1; }
.matrix-best-window.match { border-color: #0b7244; outline-color: #0b7244; background: #0f7b4a55; }
.matrix-times { min-height: 18px; color: #777b83; font-size: 10px; line-height: 1.45; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.matrix-no-data { min-width: 250px; padding: 18px; color: #91949c; }
.matrix-modal-foot { flex: 0 0 auto; display: flex; gap: 20px; justify-content: space-between; align-items: center; padding: 12px 20px; border-top: 1px solid #ebedee; }
.matrix-modal-foot span { color: #8a8e94; font-size: 11px; line-height: 1.4; }
.matrix-modal-foot button { padding: 8px 14px; border-radius: 8px; font-size: 12px; }
@media (max-width: 650px) {
 .matrix-modal { width: 100vw; max-height: 100dvh; height: 100dvh; margin: 0; border: 0; border-radius: 0; }
 .matrix-modal-shell { max-height: 100dvh; height: 100dvh; }
 .matrix-modal-head { padding: 17px 14px 12px; }
 .matrix-modal-head p { font-size: 11px; }
 .matrix-toolbar { padding: 9px 12px; }
 .matrix-key { gap: 5px 9px; font-size: 9px; }
 .matrix-table .matrix-name { min-width: 106px; max-width: 106px; width: 106px; padding: 12px 8px; font-size: 11px; }
 .matrix-day-heading, .matrix-table .matrix-cell { width: 143px; min-width: 143px; }
 .matrix-modal-foot { padding: 10px 12px max(10px,env(safe-area-inset-bottom)); gap: 10px; }
 .matrix-modal-foot span { font-size: 9px; }
}


/* RXB Meet v3.7 — confirmed calendar export + QR invitation */
.calendar-add { margin-top: 20px; padding: 15px; background: #fff; border: 1px solid #cfe3d6; border-radius: 12px; }
.calendar-add-heading { display: flex; align-items: center; gap: 11px; margin-bottom: 12px; }
.calendar-add-icon { display: grid; place-items: center; flex: 0 0 37px; width: 37px; height: 37px; background: #e9f5ee; color: #167047; border-radius: 9px; font-size: 21px; }
.calendar-add-heading strong { display: block; font-size: 13px; color: #22372b; line-height: 1.3; }
.calendar-add-heading small { display: block; font-size: 11px; color: #7a8a80; line-height: 1.5; margin-top: 2px; }
.calendar-add-actions { display: grid; grid-template-columns: 1.1fr 1fr; gap: 8px; }
.calendar-add-actions a { display: flex; justify-content: center; align-items: center; text-align: center; min-height: 44px; padding: 10px 8px; border-radius: 9px; font-size: 12px; font-weight: 800; text-decoration: none; line-height: 1.35; }
.calendar-add-download { background: #198150; color: #fff; border: 1px solid #198150; }
.calendar-add-download:hover { background: #126f43; }
.calendar-add-google { background: #fff; color: #2a5740; border: 1px solid #cbdcd2; }
.calendar-add-google:hover { background: #eff8f2; }
.calendar-add-hint { margin: 11px 0 0 !important; font-size: 10px !important; line-height: 1.55; color: #7a887f !important; }
.share-qr { display: flex; gap: 16px; align-items: center; margin-top: 15px; padding: 14px; border: 1px solid #e2e4e8; border-radius: 12px; background: #fbfbfc; }
.share-qr-image { display: grid; place-items: center; flex: 0 0 172px; padding: 9px; background: #fff; border: 1px solid #e9eaec; border-radius: 10px; }
.share-qr-image img { display: block; width: 100%; height: auto; aspect-ratio: 1; image-rendering: crisp-edges; }
.share-qr-info { flex: 1; min-width: 0; }
.share-qr-info strong, .share-qr-missing strong { color: #292b31; font-size: 13px; font-weight: 800; }
.share-qr-info p, .share-qr-missing p { font-size: 11px; line-height: 1.6; color: #777b83; margin: 6px 0 11px; }
.share-qr-info a { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 8px 11px; border: 1px solid #d4d8dc; background: #fff; border-radius: 7px; color: #2d333c; font-size: 11px; font-weight: 750; text-decoration: none; }
.share-qr-info a:hover { background: #f1f3f5; }
.share-qr-missing { width: 100%; }
.share-qr-missing code { color: #5a2630; font-size: 11px; }
@media (max-width: 520px) {
 .calendar-add { padding: 12px; }
 .calendar-add-actions { grid-template-columns: 1fr; }
 .share-qr { flex-direction: column; align-items: stretch; padding: 13px; gap: 12px; }
 .share-qr-image { align-self: center; width: 185px; flex-basis: auto; }
 .share-qr-info { text-align: center; }
 .share-qr-info a { width: 100%; }
}

/* RXB Meet v3.8 — native calendar picker beside editable Czech dates. */
.date-with-picker { display: flex; position: relative; width: 100%; align-items: stretch; }
.date-with-picker > .cz-date-input { padding-right: 56px; font-variant-numeric: tabular-nums; }
.date-picker-action { position: absolute; top: 1px; bottom: 1px; right: 1px; width: 47px; display: grid; place-items: center; color: #52565e; background: #f6f7f8; border-left: 1px solid #e2e4e7; border-radius: 0 9px 9px 0; overflow: hidden; }
.date-picker-action:hover { color: #a61c2d; background: #fdf2f4; }
.date-picker-action:focus-within { outline: 2px solid #b71829; outline-offset: 1px; }
.date-picker-action .date-native { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; outline: none; cursor: pointer; opacity: 0; z-index: 2; }
.date-picker-action .date-native::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; cursor: pointer; }
.date-picker-action .date-native:focus { outline: none; }
/* Four clear, equal choices; no extra heading or third-party widgets. */
.calendar-add-actions { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.calendar-add-actions a { justify-content: flex-start; gap: 7px; text-align: left; padding: 11px 12px; font-size: 12px; }
.calendar-action-symbol { display: grid; place-items: center; flex: 0 0 25px; height: 25px; border-radius: 6px; background: #f1f3f5; color: #555f6d; font-weight: 800; font-size: 16px; }
.calendar-add-outlook, .calendar-add-m365, .calendar-add-google, .calendar-add-download { background: #fff; color: #252f36; border: 1px solid #dadde0; }
.calendar-add-outlook:hover, .calendar-add-m365:hover, .calendar-add-google:hover, .calendar-add-download:hover { background: #f5f7f9; border-color: #c0c6cc; }
.calendar-add-google .calendar-action-symbol { color: #12693c; background: #e8f6ee; }
.calendar-add-outlook .calendar-action-symbol, .calendar-add-m365 .calendar-action-symbol { color: #1869a6; background: #e9f3fc; }
.calendar-add-download .calendar-action-symbol { color: #a82032; background: #fbecef; }
@media (max-width: 520px) {
 .calendar-add-actions { grid-template-columns: 1fr 1fr; }
 .calendar-add-actions a { font-size: 11px; padding: 10px 9px; gap: 5px; }
 .calendar-action-symbol { flex-basis: 23px; height: 23px; }
}
@media (max-width: 345px) {
 .calendar-add-actions { grid-template-columns: 1fr; }
}

/* RXB Meet 3.9 — quiet, compact inputs and an explicitly provisional result. */
.identity-card { gap: 12px; }
.identity-card h2 { margin-bottom: 2px; }
.password-wrap { position: relative; display: block; }
.password-wrap > input { padding-right: 60px; }
.password-toggle { position: absolute; right: 4px; top: 4px; bottom: 4px; width: 47px; display: grid; place-items: center; padding: 0; border-color: transparent; background: #f6f7f8; color: #515760; border-radius: 8px; }
.password-toggle:hover, .password-toggle[aria-pressed="true"] { background: #fcebee; color: #a51f2e; }
.provisional { padding: 13px 14px; margin-bottom: 16px; border: 1px solid #e5e7ea; border-radius: 12px; background: #fafbfc; }
.provisional-head { display: flex; justify-content: space-between; align-items: center; gap: 7px; margin-bottom: 7px; }
.provisional-head strong { font-size: 13px; font-weight: 800; }
.provisional-head span { flex: 0 0 auto; padding: 4px 7px; border-radius: 6px; background: #fff3dd; color: #85621b; font-size: 10px; font-weight: 700; }
.provisional-result { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 6px; }
.provisional-result strong { font-size: 14px; line-height: 1.4; }
.provisional-result span { font-weight: 800; color: #1c7550; font-size: 13px; white-space: nowrap; }
.provisional p { margin: 3px 0; color: #686c75; font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
.provisional small { display: block; margin-top: 9px; font-size: 10.5px; line-height: 1.5; color: #858993; }
.confirm-period { display: flex; flex-direction: column; gap: 14px; }
.confirm-group { padding: 14px; border: 1px solid #e6e7eb; border-radius: 12px; background: #fafafa; }
.confirm-group > strong { display: block; margin-bottom: 11px; font-size: 12px; letter-spacing: .12em; color: #b51c2d; }
.confirm-group label { min-width: 0; }
.confirm-group input[type="time"] { min-height: 46px; font-variant-numeric: tabular-nums; }
.confirm-group .date-with-picker input.cz-date-input { font-size: 14px; }
.confirm-group .two { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
@media (max-width: 355px) {
  .confirm-group { padding: 10px; }
  .confirm-group .two { grid-template-columns: 1fr; gap: 10px; }
  .confirm-group input { padding: 11px 8px; }
  .confirm-group .date-with-picker > .cz-date-input { padding-right: 42px; }
  .confirm-group .date-picker-action { width: 39px; }
  .provisional-head strong { font-size: 12px; }
  .provisional-result strong { font-size: 12px; }
}

/* v3.9.3: zřetelná kolize přezdívky přímo u vstupu. */
#nickname[aria-invalid="true"] { border-color: #b21d2a; box-shadow: 0 0 0 2px rgba(178,29,42,.08); }

@media (max-width: 390px) {
  .home-header .meet-count-label, .home-header .meet-count-tail { display: none; }
}

/* v3.10.0 — low-profile PWA install affordance; only appears if supported. */
.pwa-install-btn { padding: 7px 10px; background: #fff; color: #a91a29; border: 1px solid #efd1d5; border-radius: 8px; font-size: 11px; font-weight: 800; }
.pwa-install-btn:hover { background: #fff3f5; }
.pwa-install-guide { max-width: 260px; font-size: 11px; color: #777a83; text-align: right; }
.pwa-install-guide summary { cursor: pointer; list-style: none; color: #777a83; font-weight: 650; }
.pwa-install-guide summary::-webkit-details-marker { display: none; }
.pwa-install-guide summary::before { content: '↘ '; color: #c91f2d; }
.pwa-install-guide p { margin: 7px 0 0; padding: 10px; border: 1px solid #eceef0; background: #fafafb; border-radius: 8px; line-height: 1.5; }
[hidden] { display: none !important; }

/* SEO guide links: deliberately below the main creation form, never above it. */
.seo-guides{margin-top:39px;padding-top:23px;border-top:1px solid #ebecf0}.seo-kicker{font-size:11px;letter-spacing:.1em;color:var(--red);font-weight:850}.seo-guides h2{font-size:21px;letter-spacing:-.035em;margin:5px 0 4px}.seo-guides p{font-size:13px;line-height:1.6;color:#72747b;margin:0 0 15px}.seo-guides-links{display:grid;grid-template-columns:1fr 1fr;gap:9px}.seo-guides-links a{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:13px 12px;border:1px solid #e7e8eb;border-radius:10px;color:#33353b;text-decoration:none;font-size:12px;font-weight:750;background:white}.seo-guides-links a:hover{border-color:var(--red);color:var(--red)}
@media(max-width:420px){.seo-guides-links{grid-template-columns:1fr}.seo-guides{margin-top:30px}}
