:root {
  --bg: #f5f7f7;
  --surface: #ffffff;
  --surface-strong: #f9fbfb;
  --ink: #17201f;
  --muted: #64726f;
  --line: #dce5e3;
  --accent: #0f766e;
  --accent-strong: #0b5f59;
  --accent-soft: #e4f4f2;
  --gold: #b7791f;
  --rose: #bd3d5b;
  --green: #4d7c47;
  --blue: #476da8;
  --warning: #b4531f;
  --shadow: 0 1px 2px rgba(18, 31, 29, 0.06), 0 12px 30px rgba(18, 31, 29, 0.06);
  --shadow-soft: 0 1px 2px rgba(18, 31, 29, 0.05);
  --radius: 8px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  color: var(--ink);
  background:
    linear-gradient(180deg, #ffffff 0, var(--bg) 280px),
    var(--bg);
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

.app-shell {
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 22px 16px;
  border-right: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.94);
  color: var(--ink);
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 8px;
  overflow: hidden;
  color: #fff;
  background: #fff;
  font-weight: 800;
  box-shadow: 0 8px 18px rgba(15, 118, 110, 0.16);
}

.brand-mark img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 3px;
  object-fit: contain;
}

.brand strong,
.brand span {
  display: block;
}

.brand span {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.84rem;
}

.nav-list {
  display: grid;
  gap: 4px;
}

.nav-button {
  display: block;
  width: 100%;
  min-height: 40px;
  padding: 10px 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #3a4644;
  background: transparent;
  text-align: left;
  font-size: 0.94rem;
  font-weight: 650;
}

.nav-button:hover,
.nav-button.active {
  border-color: #cfe6e2;
  color: var(--accent-strong);
  background: var(--accent-soft);
}

.sidebar-note {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: auto;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  background: var(--surface-strong);
  font-size: 0.88rem;
}

.status-dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: #22a06b;
}

.workspace {
  min-width: 0;
  padding: 30px 34px 42px;
}

.topbar,
.section-header,
.panel-header,
.detail-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.topbar {
  margin-bottom: 26px;
}

.topbar h1,
.section-header h2,
.detail-top h2,
.panel h2 {
  margin: 0;
  letter-spacing: 0;
}

.topbar h1 {
  font-size: 2.08rem;
  line-height: 1.1;
  font-weight: 820;
}

.section-header {
  margin-bottom: 18px;
}

.eyebrow {
  margin: 0 0 4px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.topbar-actions,
.filter-row,
.segmented-control {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.primary-button,
.icon-button,
.link-button,
.filter-pill,
.segmented-control button,
.segmented-control a,
.tab {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
  transition: background 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.primary-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 16px;
  border-color: var(--accent);
  color: #fff;
  background: var(--accent);
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(15, 118, 110, 0.18);
}

.primary-button:hover {
  background: var(--accent-strong);
  transform: translateY(-1px);
}

.icon-button {
  width: 40px;
  padding: 0;
  font-size: 1.2rem;
}

.link-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  color: var(--accent-strong);
  font-weight: 700;
}

.link-button:hover,
.filter-pill:hover,
.segmented-control button:hover,
.segmented-control a:hover,
.tab:hover {
  border-color: #b9d9d5;
  background: #f2faf8;
}

.filter-pill,
.segmented-control button,
.segmented-control a,
.tab {
  padding: 0 12px;
}

.filter-pill.active,
.segmented-control .selected,
.tab.active {
  border-color: var(--accent);
  color: var(--accent-strong);
  background: var(--accent-soft);
}

.view {
  display: none;
}

.view.active {
  display: block;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}

.metric,
.panel,
.table-panel,
.contact-card,
.room-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.metric {
  position: relative;
  min-height: 126px;
  padding: 18px;
  overflow: hidden;
}

.metric::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: var(--accent);
}

.metric span,
.metric small,
.result-grid span,
.event-meta,
.soft-label {
  color: var(--muted);
}

.metric strong {
  display: block;
  margin: 12px 0 7px;
  font-size: 2.18rem;
  line-height: 1;
  letter-spacing: 0;
}

.metric.attention {
  border-color: #f0d3b5;
  background: #fffaf4;
}

.metric.attention::before {
  background: var(--gold);
}

.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
  gap: 20px;
  margin-bottom: 20px;
}

.panel {
  min-width: 0;
  padding: 20px;
}

.panel-header {
  margin-bottom: 16px;
}

.panel h2 {
  font-size: 1.08rem;
}

.timeline,
.settlement-list,
.event-list,
.task-grid,
.document-list,
.contact-grid,
.room-grid {
  display: grid;
  gap: 12px;
}

.timeline-item,
.settlement-item,
.task-item,
.event-card,
.document-list div {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.timeline-item {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 76px;
  padding: 12px;
}

.timeline-date {
  color: var(--accent-strong);
  font-weight: 800;
}

.timeline-title,
.event-card strong,
.settlement-item strong,
.task-item strong {
  display: block;
}

.room-tag,
.badge,
.soft-label {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 9px;
  border-radius: 999px;
  background: #edf2f1;
  font-size: 0.78rem;
  font-weight: 700;
}

.room-tag.big {
  color: #153d41;
  background: #d9ecea;
}

.room-tag.stubo {
  color: #50310d;
  background: #f4dfba;
}

.badge {
  color: #fff;
  background: var(--accent);
  box-shadow: 0 6px 14px rgba(15, 118, 110, 0.18);
}

.settlement-item,
.task-item {
  display: grid;
  gap: 6px;
  padding: 12px;
}

.settlement-item {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.task-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.task-item {
  min-height: 98px;
}

.priority-high {
  border-left: 4px solid var(--rose);
}

.priority-normal {
  border-left: 4px solid var(--blue);
}

.calendar-board {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.calendar-grid {
  display: grid;
  grid-template-columns: 150px repeat(7, minmax(150px, 1fr));
  min-width: 1120px;
}

.calendar-cell {
  min-height: 118px;
  padding: 12px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.calendar-cell.header,
.calendar-cell.room-name {
  min-height: 58px;
  background: #f7faf9;
  font-weight: 800;
}

.calendar-cell.room-name {
  display: flex;
  align-items: center;
}

.calendar-event {
  display: grid;
  gap: 4px;
  min-height: 68px;
  margin-bottom: 8px;
  padding: 9px;
  border-left: 4px solid var(--accent);
  border-radius: 7px;
  background: #edf8f6;
  box-shadow: var(--shadow-soft);
}

.calendar-event.rental {
  border-left-color: var(--gold);
  background: #fff2d2;
}

.month-board {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(140px, 1fr));
  min-width: 980px;
}

.month-weekday {
  min-height: 46px;
  padding: 12px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #f7faf9;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
}

.month-day {
  min-height: 142px;
  padding: 10px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.month-day.outside {
  background: #f8fbfa;
}

.month-day.outside .month-day-number {
  color: #a4adaa;
}

.month-day-number {
  margin-bottom: 8px;
  color: var(--accent-strong);
  font-weight: 800;
}

.month-items {
  display: grid;
  gap: 6px;
}

.month-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 2px 7px;
  padding: 7px;
  border-left: 4px solid var(--accent);
  border-radius: 7px;
  background: #edf8f6;
  box-shadow: var(--shadow-soft);
}

.month-item.rental {
  border-left-color: var(--gold);
  background: #fff2d2;
}

.month-item span,
.month-item small {
  color: var(--muted);
  font-size: 0.76rem;
}

.month-item strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.82rem;
}

.month-item small {
  grid-column: 2;
}

.event-layout {
  display: grid;
  grid-template-columns: minmax(300px, 368px) minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}

.event-list-panel,
.detail-panel {
  min-height: 620px;
}

.event-card {
  display: block;
  width: 100%;
  padding: 15px;
  text-align: left;
  transition: border-color 140ms ease, background 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.event-card.active {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.event-card:hover {
  border-color: #b9d9d5;
  transform: translateY(-1px);
}

.event-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
  font-size: 0.88rem;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
  margin-top: 18px;
}

.form-grid.compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

label {
  display: grid;
  gap: 7px;
  color: #4d5b58;
  font-size: 0.84rem;
  font-weight: 720;
}

.field-hint {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 500;
  line-height: 1.35;
}

.settlement-hidden {
  display: none !important;
}

.readonly-field {
  display: grid;
  gap: 7px;
  color: #4d5b58;
  font-size: 0.84rem;
  font-weight: 720;
}

.readonly-field strong {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f7faf9;
}

.toggle-row,
.permission-toggle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.toggle-switch {
  position: relative;
  flex: 0 0 auto;
  width: 48px;
  height: 28px;
  border: 1px solid #c7d5d2;
  border-radius: 999px;
  background: #e7eeee;
  box-shadow: inset 0 1px 2px rgba(18, 31, 29, 0.10);
  cursor: pointer;
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.toggle-switch::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 7px rgba(18, 31, 29, 0.22);
  transition: transform 160ms ease;
}

.toggle-row input:checked + .toggle-switch,
.permission-toggle input:checked + .toggle-switch {
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: inset 0 1px 2px rgba(18, 31, 29, 0.12), 0 0 0 3px rgba(15, 118, 110, 0.10);
}

.toggle-row input:checked + .toggle-switch::after,
.permission-toggle input:checked + .toggle-switch::after {
  transform: translateX(20px);
}

.toggle-row input:focus-visible + .toggle-switch,
.permission-toggle input:focus-visible + .toggle-switch {
  box-shadow: inset 0 1px 2px rgba(18, 31, 29, 0.10), 0 0 0 4px rgba(15, 118, 110, 0.16);
}

.permission-toggle input:disabled + .toggle-switch {
  cursor: not-allowed;
  opacity: 0.65;
}

.permissions-panel {
  margin-top: 22px;
}

.permission-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
}

.permission-group {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.permission-group h3 {
  margin: 0 0 4px;
  font-size: 0.95rem;
}

.permission-toggle {
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid #edf2f1;
  border-radius: 8px;
  background: #fbfdfd;
  color: var(--ink);
  font-weight: 620;
}

.permission-toggle:hover {
  border-color: #d1e3df;
  background: #f7fbfa;
}

input,
select,
textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: #fbfdfd;
  box-shadow: inset 0 1px 1px rgba(18, 31, 29, 0.03);
  transition: border-color 140ms ease, box-shadow 140ms ease, background 140ms ease;
}

textarea {
  min-height: 96px;
  resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
  outline: 0;
  border-color: var(--accent);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.14);
}

input[type="checkbox"] {
  width: auto;
  min-height: 0;
  justify-self: start;
}

.toggle-row input[type="checkbox"],
.permission-toggle input[type="checkbox"] {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.wide {
  grid-column: 1 / -1;
}

.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 22px 0 16px;
}

.tab-panel {
  display: none;
}

.tab-panel.active {
  display: block;
}

.settlement-editor {
  display: grid;
  gap: 18px;
}

.settlement-board {
  display: grid;
  gap: 16px;
}

.settlement-method-card,
.settlement-card,
.settlement-notes-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.settlement-method-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
  gap: 20px;
  align-items: end;
  padding: 16px;
  background: #f6fbfa;
}

.settlement-method-card label {
  margin: 0;
}

.settlement-method-copy {
  display: grid;
  gap: 4px;
}

.settlement-method-copy > span {
  color: var(--accent-strong);
  font-size: 0.72rem;
  font-weight: 820;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.settlement-method-copy > strong {
  font-size: 1rem;
}

.settlement-method-copy > small {
  color: var(--muted);
  line-height: 1.45;
}

.settlement-legacy-warning {
  padding: 12px 14px;
  border: 1px solid #e7c16d;
  border-radius: 6px;
  background: #fff8e7;
  color: #6b4a10;
  font-weight: 700;
}

.settlement-shortfall {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 18px;
  align-items: center;
  padding: 13px 15px;
  border: 1px solid #e4a49f;
  border-radius: 7px;
  background: #fff3f2;
  color: #8d2923;
}

.settlement-shortfall > span,
.settlement-shortfall > small {
  display: block;
}

.settlement-shortfall > strong {
  grid-column: 2;
  grid-row: 1 / span 2;
  font-size: 1.35rem;
}

.settlement-included-service {
  display: grid;
  gap: 4px;
  padding: 12px;
  border-left: 3px solid var(--accent);
  background: #f1f8f6;
}

.settlement-included-service span {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.settlement-external-sales {
  display: grid;
  gap: 12px;
  padding: 13px;
  border: 1px solid #d8e4e1;
  border-radius: 7px;
  background: #fbfdfc;
}

.settlement-ticket-math {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.settlement-ticket-math span {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 10px;
  border-radius: 6px;
  background: #edf5f3;
  color: var(--muted);
  font-size: 0.76rem;
}

.settlement-ticket-math strong {
  color: var(--ink);
  font-size: 1rem;
}

.settlement-total-revenue {
  border-color: #b9d2cc;
  background: #eef7f5;
}

.settlement-legacy-fields {
  display: grid;
  gap: 12px;
}

.settlement-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.settlement-kpis article {
  min-height: 104px;
  padding: 15px;
  border: 1px solid #d5e5e2;
  border-radius: 8px;
  background: #f7fbfa;
  color: var(--ink);
}

.settlement-kpis article.primary {
  border-color: #13231f;
  background: #13231f;
  color: #fff;
  box-shadow: 0 14px 30px rgba(21, 36, 33, 0.18);
}

.settlement-kpis span,
.settlement-kpis small {
  display: block;
}

.settlement-kpis span {
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 760;
}

.settlement-kpis article.primary span,
.settlement-kpis article.primary small {
  color: #c9d0ca;
}

.settlement-kpis strong {
  display: block;
  margin: 8px 0 5px;
  font-size: 1.68rem;
  line-height: 1.05;
}

.settlement-kpis small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 560;
}



.settlement-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
}

.settlement-card {
  display: grid;
  gap: 14px;
  min-height: 100%;
  padding: 15px;
}

.settlement-card-head {
  display: grid;
  gap: 4px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e8efed;
}

.settlement-card-head span {
  color: var(--accent-strong);
  font-size: 0.72rem;
  font-weight: 820;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.settlement-card-head h3 {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.2;
}

.settlement-fields {
  display: grid;
  gap: 13px;
}

.settlement-notes-card {
  display: grid;
  gap: 8px;
  padding: 14px;
}

.settlement-notes-card textarea {
  min-height: 92px;
}
.document-list div {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 14px;
}

.warning-text {
  color: var(--warning);
  font-weight: 800;
}

.table-panel {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

table {
  width: 100%;
  min-width: 780px;
  border-collapse: collapse;
}

th,
td {
  padding: 15px 16px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}

th {
  color: var(--muted);
  background: #f7faf9;
  font-size: 0.82rem;
  text-transform: uppercase;
}

tbody tr:hover {
  background: #f7fbfa;
}

.contact-grid,
.room-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.contact-card,
.room-card {
  display: grid;
  gap: 10px;
  min-height: 168px;
  padding: 16px;
}

.room-card ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
}

.form-panel {
  margin-top: 18px;
}

.form-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
}

.settlement-form {
  display: block;
}

.alert {
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.alert.success {
  border-color: #9fc6ad;
  background: #edf8f0;
}

.alert.error {
  border-color: #d99a9a;
  background: #fff0f0;
}

.muted-text {
  color: var(--muted);
}

.logout-link {
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 700;
}

.logout-link:hover {
  color: var(--accent-strong);
}

.primary-link {
  color: var(--accent-strong);
  font-weight: 800;
}

.auth-page {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 100vh;
  padding: 24px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 18%, rgba(255, 255, 255, 0.92), rgba(245, 247, 247, 0.54) 33%, rgba(230, 239, 237, 0.9) 72%),
    linear-gradient(135deg, #f8fbfa 0%, #eef5f3 48%, #f7f2ea 100%);
}

.auth-backdrop {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.auth-backdrop::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -22vh;
  width: min(720px, 86vw);
  height: 42vh;
  border-radius: 50% 50% 0 0;
  background: radial-gradient(ellipse at center, rgba(183, 121, 31, 0.16), rgba(183, 121, 31, 0) 68%);
  transform: translateX(-50%);
}

.auth-light,
.auth-curtain {
  position: absolute;
  display: block;
}

.auth-light {
  --spot-start: 12deg;
  --spot-end: 18deg;
  --spot-shift-start: -10px;
  --spot-shift-end: 18px;
  top: -18vh;
  width: 28vw;
  min-width: 220px;
  height: 118vh;
  opacity: 0.52;
  filter: blur(4px);
  transform-origin: top center;
  background: linear-gradient(180deg, rgba(255, 246, 218, 0.78), rgba(255, 246, 218, 0.14) 54%, rgba(255, 246, 218, 0));
  animation: authSpotlight 9s ease-in-out infinite alternate;
}

.auth-light-left {
  left: 6vw;
}

.auth-light-right {
  --spot-start: -12deg;
  --spot-end: -18deg;
  --spot-shift-start: 10px;
  --spot-shift-end: -18px;
  right: 6vw;
  animation-delay: -3s;
}

.auth-curtain {
  --curtain-shift: 18px;
  top: -8vh;
  width: 28vw;
  min-width: 210px;
  max-width: 420px;
  height: 116vh;
  opacity: 0.12;
  background:
    linear-gradient(90deg, rgba(128, 28, 42, 0.38), rgba(189, 61, 91, 0.1) 54%, rgba(128, 28, 42, 0.24)),
    repeating-linear-gradient(90deg, rgba(98, 19, 32, 0.28) 0 2px, rgba(255, 255, 255, 0) 2px 42px);
  animation: authCurtain 11s ease-in-out infinite alternate;
}

.auth-curtain-left {
  left: -11vw;
  border-radius: 0 0 90% 0;
}

.auth-curtain-right {
  --curtain-shift: -18px;
  right: -11vw;
  border-radius: 0 0 0 90%;
  animation-delay: -4s;
}

.auth-card {
  position: relative;
  z-index: 1;
  width: min(460px, 100%);
  padding: 30px;
  border: 1px solid rgba(220, 229, 227, 0.82);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 20px 60px rgba(18, 31, 29, 0.13), 0 2px 8px rgba(18, 31, 29, 0.06);
  backdrop-filter: blur(18px);
}

.login-card {
  width: min(480px, 100%);
  padding: 34px;
}

.auth-card h1 {
  margin: 22px 0 8px;
}

.auth-logo-stage {
  display: grid;
  place-items: center;
  width: min(240px, 72vw);
  aspect-ratio: 1;
  margin: 0 auto 18px;
  border: 1px solid rgba(207, 230, 226, 0.9);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(15, 118, 110, 0.16);
}

.auth-logo-stage img {
  display: block;
  width: 92%;
  height: 92%;
  object-fit: contain;
}

.auth-brand {
  color: var(--ink);
}

.login-brand {
  display: block;
  text-align: center;
}

.login-brand strong {
  display: block;
  font-size: 1.46rem;
  line-height: 1.1;
}

.auth-brand span {
  color: var(--muted);
}

.login-brand span {
  display: block;
  margin-top: 4px;
}

@keyframes authSpotlight {
  0% {
    opacity: 0.42;
    transform: rotate(var(--spot-start)) translateX(var(--spot-shift-start));
  }

  100% {
    opacity: 0.62;
    transform: rotate(var(--spot-end)) translateX(var(--spot-shift-end));
  }
}

@keyframes authCurtain {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(var(--curtain-shift));
  }
}

.stack-form {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

code {
  padding: 2px 5px;
  border-radius: 5px;
  background: #edf2f1;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .settlement-method-card {
    grid-template-columns: 1fr;
  }

  .metric-grid,
  .task-grid,
  .contact-grid,
  .room-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-grid,
  .event-layout {
    grid-template-columns: 1fr;
  }

  .event-list-panel,
  .detail-panel {
    min-height: 0;
  }
}

@media (max-width: 760px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: static;
    height: auto;
    gap: 16px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .nav-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .workspace {
    padding: 18px;
  }

  .topbar,
  .section-header,
  .panel-header,
  .detail-top {
    align-items: flex-start;
    flex-direction: column;
  }

  .metric-grid,
  .task-grid,
  .form-grid,
  .form-grid.compact,
  .result-grid,
  .permission-grid,
  .contact-grid,
  .room-grid {
    grid-template-columns: 1fr;
  }

  .timeline-item {
    grid-template-columns: 1fr;
  }
}


@media (max-width: 1100px) {
  .settlement-kpis,
  .settlement-card-grid {
    grid-template-columns: 1fr;
  }
}
.rental-layout {
  display: grid;
  grid-template-columns: minmax(310px, 370px) minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}

.rental-list-panel {
  position: sticky;
  top: 20px;
  padding: 16px;
}

.rental-list-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 148px;
  gap: 8px;
}

.rental-search,
.rental-status-filter {
  display: block;
}

.rental-list-summary {
  display: flex;
  align-items: baseline;
  gap: 5px;
  margin: 14px 2px 10px;
  color: var(--muted);
  font-size: 0.82rem;
}

.rental-list-summary strong {
  color: var(--ink);
  font-size: 1rem;
}

.rental-list {
  display: grid;
  max-height: calc(100vh - 230px);
  gap: 8px;
  padding-right: 4px;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

.rental-card {
  display: grid;
  gap: 9px;
  min-width: 0;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  transition: border-color 140ms ease, background 140ms ease, box-shadow 140ms ease;
}

.rental-card:hover {
  border-color: #b9d9d5;
  box-shadow: var(--shadow-soft);
}

.rental-card.active {
  border-color: var(--accent);
  background: var(--accent-soft);
  box-shadow: 0 0 0 2px rgba(15, 118, 110, 0.08);
}

.rental-card-top,
.rental-card-meta {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.rental-card-top strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.rental-card-date {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  color: #33413f;
  font-size: 0.88rem;
  font-weight: 720;
}

.rental-card-date small {
  color: var(--muted);
  font-weight: 560;
  white-space: nowrap;
}

.rental-card-meta {
  flex-wrap: wrap;
  color: var(--muted);
  font-size: 0.78rem;
}

.rental-card-meta strong {
  margin-left: auto;
  color: var(--ink);
}

.rental-series-label {
  width: fit-content;
  padding: 4px 7px;
  border-radius: 5px;
  color: #765017;
  background: #fff2d2;
  font-size: 0.75rem;
  font-weight: 720;
}

.rental-empty-state {
  margin: 12px 0;
  padding: 18px 8px;
  color: var(--muted);
  text-align: center;
}

.rental-detail-panel {
  min-height: 640px;
  scroll-margin-top: 20px;
}

.rental-form-section {
  min-width: 0;
  margin: 22px 0 0;
  padding: 20px 0 0;
  border: 0;
  border-top: 1px solid var(--line);
}

.rental-form-section legend {
  padding: 0 10px 0 0;
  color: var(--ink);
  background: var(--surface);
  font-size: 0.92rem;
  font-weight: 800;
}

.rental-form-section .form-grid {
  margin-top: 2px;
}

.rental-series-preview {
  min-height: 40px;
  padding: 10px 12px;
  border-left: 3px solid var(--accent);
  border-radius: 0 6px 6px 0;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: 0.84rem;
  font-weight: 760;
}

.rental-series-preview.warning {
  border-left-color: var(--warning);
  color: var(--warning);
  background: #fff6ed;
}

.rental-notes {
  margin-top: 22px;
}

.rental-notes textarea {
  min-height: 96px;
}

.rental-form-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  margin: 18px -20px -20px;
  padding: 14px 20px;
  border-top: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.96);
}

.rental-settlement-section {
  display: grid;
  gap: 16px;
}

.rental-settlement-intro {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
}

.rental-settlement-intro > div {
  display: grid;
  gap: 3px;
}

.rental-settlement-intro span:not(.soft-label) {
  color: var(--muted);
  font-size: 0.82rem;
}

.rental-settlement-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.rental-cost-group {
  display: grid;
  align-content: start;
  gap: 14px;
  min-width: 0;
  padding: 16px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fbfdfc;
}

.rental-cost-head {
  display: flex;
  gap: 10px;
  align-items: center;
}

.rental-cost-head > span {
  display: grid;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--accent-strong);
  font-size: 0.78rem;
  font-weight: 800;
}

.rental-cost-head > div,
.rental-cost-fields {
  display: grid;
  gap: 3px;
}

.rental-cost-head small,
.rental-cost-fields small {
  color: var(--muted);
  font-size: 0.76rem;
}

.rental-cost-fields {
  gap: 11px;
}

.rental-inline-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rental-contact-picker {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
  min-width: 0;
}

.rental-contact-picker label {
  min-width: 0;
}

.rental-contact-picker .compact-button {
  min-height: 44px;
  white-space: nowrap;
}

.rental-contact-error {
  margin: 0;
  padding: 10px 12px;
  color: var(--danger);
  background: #fff1f0;
  border: 1px solid #efb0aa;
  border-radius: 6px;
}

.rental-bar-staff-group,
.rental-bar-summary-group {
  grid-column: 1 / -1;
}

.rental-bar-shifts {
  display: grid;
  gap: 8px;
}

.rental-bar-shifts-empty {
  margin: 0;
  padding: 11px 12px;
  color: var(--muted);
  background: #f7f9f8;
  border: 1px dashed var(--line);
  border-radius: 6px;
  font-size: .8rem;
}

.rental-bar-shift-row {
  display: grid;
  grid-template-columns: minmax(130px, 1fr) repeat(3, minmax(145px, .9fr)) 38px;
  gap: 8px;
  align-items: end;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--line);
}

.rental-bar-shift-row label {
  min-width: 0;
}

.rental-bar-shift-remove {
  display: grid;
  width: 38px;
  height: 42px;
  place-items: center;
  border: 1px solid #e2b6b2;
  border-radius: 6px;
  color: #ad3933;
  background: #fff;
  font-size: 1.2rem;
}

.rental-bar-shift-remove:disabled {
  cursor: not-allowed;
  opacity: .35;
}

.rental-bar-summary-group > label {
  display: grid;
  gap: 6px;
}

.rental-bar-summary-group textarea {
  resize: vertical;
}

.rental-bar-sales-head,
.rental-bar-open {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.rental-bar-sales-head > div {
  display: grid;
  gap: 2px;
}

.rental-bar-sales-head span,
.rental-bar-open span {
  color: var(--muted);
  font-size: .76rem;
}

.rental-bar-item-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--line);
}

.rental-bar-item-list span {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 10px;
  background: #fff;
}

.rental-bar-item-list small,
.rental-bar-empty {
  color: var(--muted);
  font-size: .78rem;
}

.rental-bar-empty {
  padding: 12px;
  border: 1px dashed #cbd6d2;
  border-radius: 6px;
}

.rental-floor-usage {
  display: grid;
  gap: 6px;
  padding: 11px;
  border: 1px solid #cdded9;
  border-radius: 7px;
  background: #f2f8f6;
}

.rental-floor-usage small {
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.4;
}
.rental-cost-line {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  padding-top: 11px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.82rem;
}

.rental-cost-line strong {
  color: var(--ink);
  font-size: 1rem;
}

.rental-settlement-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.rental-settlement-summary article {
  min-height: 102px;
  padding: 14px;
  border: 1px solid #d5e5e2;
  border-radius: 7px;
  background: #f7fbfa;
}

.rental-settlement-summary span,
.rental-settlement-summary small,
.rental-settlement-summary strong {
  display: block;
}

.rental-settlement-summary span,
.rental-settlement-summary small {
  color: var(--muted);
  font-size: 0.78rem;
}

.rental-settlement-summary strong {
  margin: 8px 0 5px;
  font-size: 1.5rem;
}

.rental-settlement-summary article.primary {
  border-color: #13231f;
  color: #fff;
  background: #13231f;
}

.rental-settlement-summary article.primary span,
.rental-settlement-summary article.primary small {
  color: #c9d0ca;
}

.rental-payment-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
}
.rental-readonly-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: 22px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.rental-readonly-details div {
  padding: 14px;
  background: var(--surface);
}

.rental-readonly-details dt {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.rental-readonly-details dd {
  margin: 5px 0 0;
  font-weight: 750;
}

@media (max-width: 1180px) {
  .rental-layout {
    grid-template-columns: 1fr;
  }

  .rental-list-panel {
    position: static;
  }

  .rental-list {
    max-height: 420px;
  }
}

@media (max-width: 760px) {
  .rental-list-toolbar,
  .rental-readonly-details,
  .rental-settlement-grid,
  .rental-settlement-summary,
  .rental-payment-fields {
    grid-template-columns: 1fr;
  }

  .rental-settlement-intro {
    align-items: flex-start;
    flex-direction: column;
  }

  .rental-bar-shift-row {
    grid-template-columns: 1fr;
  }

  .rental-bar-shift-remove {
    width: 100%;
  }

  .rental-bar-sales-head,
  .rental-bar-open {
    align-items: flex-start;
    flex-direction: column;
  }

  .rental-card-top,
  .rental-card-date {
    align-items: flex-start;
    flex-direction: column;
  }

  .rental-form-actions {
    margin-right: -18px;
    margin-left: -18px;
    padding-right: 18px;
    padding-left: 18px;
  }
}
.ticketing-editor {
  padding-top: 6px;
}

.ticketing-status-strip,
.order-admin-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 18px 0 22px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.ticketing-status-strip div,
.order-admin-kpis div {
  display: grid;
  gap: 6px;
  padding: 14px;
  background: var(--surface);
}

.ticketing-status-strip span,
.order-admin-kpis span,
.order-admin-kpis small {
  color: var(--muted);
  font-size: 0.78rem;
}

.input-with-suffix {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.input-with-suffix input {
  border-radius: 8px 0 0 8px;
}

.input-with-suffix > span {
  display: grid;
  place-items: center;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-left: 0;
  border-radius: 0 8px 8px 0;
  color: var(--muted);
  background: #f7faf9;
  font-size: 0.78rem;
}

.order-list-summary {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 14px;
  color: var(--muted);
  font-size: 0.82rem;
}

.order-list-summary strong {
  color: var(--ink);
  font-size: 1.2rem;
}

.order-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.order-admin-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.order-admin-details div {
  padding: 13px;
  background: var(--surface);
}

.order-admin-details dt {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 720;
}

.order-admin-details dd {
  margin: 5px 0 0;
  overflow-wrap: anywhere;
  font-weight: 700;
}

.order-admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}

.order-admin-actions form {
  margin: 0;
}

.danger-button {
  color: #9b3048;
  background: #fff0f3;
}

@media (max-width: 760px) {
  .ticketing-status-strip,
  .order-admin-kpis,
  .order-admin-details {
    grid-template-columns: 1fr;
  }
}
.checkin-page {
  min-height: 100vh;
  background: #f4f7f6;
}

.checkin-shell {
  width: min(680px, calc(100% - 28px));
  margin: 0 auto;
  padding: 18px 0 50px;
}

.checkin-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 28px;
}

.checkin-header .brand > span:last-child,
.checkin-header .brand small {
  display: block;
}

.checkin-header .brand small {
  color: var(--muted);
}

.checkin-tool {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.checkin-title h1 {
  margin: 0 0 22px;
  letter-spacing: 0;
}

.checkin-result {
  display: grid;
  gap: 6px;
  margin-bottom: 18px;
  padding: 18px;
  border-left: 5px solid var(--accent);
  background: var(--accent-soft);
}

.checkin-result strong {
  font-size: 1.35rem;
}

.checkin-result.valid {
  border-left-color: #4d7c47;
  background: #edf8e9;
}

.checkin-result.used {
  border-left-color: var(--gold);
  background: #fff8e8;
}

.checkin-result.invalid {
  border-left-color: var(--rose);
  background: #fff0f3;
}

.checkin-camera-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
  margin-bottom: 14px;
  overflow: hidden;
  border-radius: 8px;
  background: #17201f;
}

.checkin-camera-wrap video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.checkin-camera-wrap::after {
  content: "";
  position: absolute;
  inset: 18%;
  border: 3px solid rgba(255, 255, 255, 0.9);
  border-radius: 8px;
}

.checkin-camera-wrap > span {
  position: absolute;
  bottom: 16px;
  left: 50%;
  z-index: 2;
  padding: 7px 10px;
  color: #fff;
  background: rgba(23, 32, 31, 0.82);
  transform: translateX(-50%);
  white-space: nowrap;
}

.checkin-camera-button {
  width: 100%;
}

.checkin-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
  margin-top: 16px;
}

.checkin-camera-status {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 0.85rem;
}

@media (max-width: 560px) {
  .checkin-tool {
    padding: 18px;
  }

  .checkin-form {
    grid-template-columns: 1fr;
  }

  .checkin-form button {
    width: 100%;
  }
}
/* TiK identity */
:root {
  --bg: #f2f4f4;
  --surface: #ffffff;
  --surface-strong: #f7f8f8;
  --ink: #303b42;
  --muted: #6c777d;
  --line: #d9dee0;
  --accent: #c9453d;
  --accent-strong: #a8322d;
  --accent-soft: #fbeceb;
  --gold: #c8912f;
  --rose: #b93e61;
  --green: #397b55;
  --blue: #426f9c;
  --warning: #ad5a25;
  --shadow: 0 1px 2px rgba(48, 59, 66, 0.05), 0 12px 30px rgba(48, 59, 66, 0.07);
  --shadow-soft: 0 1px 2px rgba(48, 59, 66, 0.06);
}

body {
  background: var(--bg);
}

.app-shell {
  grid-template-columns: 260px minmax(0, 1fr);
}

.sidebar {
  gap: 18px;
  padding: 18px 16px;
  border-right-color: #263137;
  color: #fff;
  background: #303b42;
}

.sidebar .brand {
  display: grid;
  gap: 10px;
  min-height: 0;
}

.sidebar .brand-mark {
  width: 100%;
  height: 112px;
  border: 0;
  border-radius: 6px;
  box-shadow: none;
}

.sidebar .brand-mark img {
  padding: 6px;
}

.sidebar .brand > div:last-child strong {
  color: #fff;
  font-size: 1rem;
}

.sidebar .brand > div:last-child span {
  color: #bfc7ca;
}

.sidebar .nav-button {
  color: #e2e7e9;
}

.sidebar .nav-button:hover {
  border-color: rgba(255, 255, 255, 0.14);
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

.sidebar .nav-button.active {
  border-color: #d85e56;
  color: #fff;
  background: #b93c36;
}

.sidebar .sidebar-note {
  border-color: rgba(255, 255, 255, 0.13);
  color: #c9d0d3;
  background: rgba(255, 255, 255, 0.06);
}

.sidebar .logout-link {
  color: #c9d0d3;
}

.sidebar .logout-link:hover {
  color: #fff;
}

.metric::before {
  background: var(--accent);
}

.primary-button {
  color: #fff;
  background: var(--accent);
}

.primary-button:hover {
  background: var(--accent-strong);
}

.auth-page {
  background: #303b42;
}

.auth-backdrop::after {
  display: none;
}

.auth-light {
  opacity: 0.16;
  filter: none;
  background: rgba(255, 255, 255, 0.18);
}

.auth-curtain {
  opacity: 0.42;
  background: #8e2f34;
}

.auth-card {
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 28px 70px rgba(10, 17, 20, 0.28);
}

.login-card {
  width: min(510px, 100%);
}

.auth-logo-stage {
  width: min(310px, 76vw);
  aspect-ratio: 1.256 / 1;
  border-color: #d7dcde;
  box-shadow: 0 14px 34px rgba(48, 59, 66, 0.14);
}

.auth-logo-stage img {
  width: 96%;
  height: 96%;
}

.auth-card:not(.login-card) .brand-mark,
.checkin-header .brand-mark {
  width: 76px;
  height: 62px;
  box-shadow: none;
}

.ticketing-status-strip div:first-child {
  border-top: 3px solid var(--accent);
}

@media (max-width: 760px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    color: #fff;
  }

  .sidebar .brand {
    grid-template-columns: 130px minmax(0, 1fr);
    align-items: center;
  }

  .sidebar .brand-mark {
    height: 96px;
  }
}

.sumup-mode-control {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.sumup-mode-control > span { display: grid; line-height: 1.2; }
.sumup-mode-control small { color: var(--muted); font-size: 11px; }
.sumup-mode-control.is-test { border-color: #d97706; background: #fff7ed; }
.mode-switch { position: relative; flex: 0 0 auto; width: 48px; height: 28px; padding: 0; border: 1px solid #c7d5d2; border-radius: 999px; background: #dfe8e6; cursor: pointer; }
.mode-switch span { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 2px 7px rgba(18,31,29,.22); transition: transform 160ms ease; }
.sumup-mode-control.is-test .mode-switch { background: #d97706; border-color: #d97706; }
.sumup-mode-control.is-test .mode-switch span { transform: translateX(20px); }
.test-label { padding: 3px 6px; border-radius: 4px; background: #fff1d6; color: #9a4f00; font-size: 10px; font-weight: 800; }
.test-order-notice { display: grid; gap: 3px; margin-bottom: 18px; padding: 12px 14px; border-left: 4px solid #d97706; background: #fff7ed; color: #7c3f00; }
.test-order-notice span { font-size: 13px; }

@media (max-width: 760px) {
  .sumup-mode-control { width: 100%; justify-content: space-between; }
}

.rental-occurrence-focus {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
  padding: 14px 16px;
  border-left: 4px solid var(--accent);
  background: var(--accent-soft);
}

.rental-occurrence-focus > div {
  display: grid;
  gap: 4px;
}

.rental-occurrence-focus .eyebrow {
  margin: 0;
}

.rental-occurrence-focus span,
.rental-exception-row small {
  color: var(--muted);
  font-size: 0.78rem;
}

.rental-exceptions {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.rental-exceptions h3 {
  margin: 2px 0 12px;
  font-size: 1rem;
}

.rental-exception-list {
  display: grid;
  gap: 6px;
}

.rental-exception-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f8faf9;
}

.rental-exception-row > span {
  display: grid;
  gap: 2px;
}

@media (max-width: 760px) {
  .rental-occurrence-focus,
  .rental-exception-row {
    align-items: stretch;
    flex-direction: column;
  }
}

.sumup-mode-control.is-unavailable {
  border-color: #d6dedd;
  background: #f6f8f8;
}

.sumup-mode-control.is-unavailable .mode-switch:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.marketing-editor {
  display: grid;
  gap: 18px;
}

.marketing-copy-editor {
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}

.marketing-copy-fields {
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(360px, 1.2fr);
  gap: 14px;
  margin-top: 14px;
}

.marketing-copy-fields label {
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
  font-size: 0.78rem;
  font-weight: 750;
}

.marketing-copy-fields textarea {
  width: 100%;
  resize: vertical;
}

.marketing-copy-fields small {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 500;
}

.marketing-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
}

.marketing-head h3 {
  margin: 3px 0 0;
  font-size: 1.08rem;
}

.marketing-head > span {
  color: var(--muted);
  font-size: 0.78rem;
}

.marketing-image-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.marketing-image-card {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.marketing-image-preview {
  display: grid;
  place-items: center;
  width: 100%;
  overflow: hidden;
  border: 1px dashed #bdcbc8;
  border-radius: 6px;
  background: #f2f6f5;
  color: var(--muted);
  font-weight: 800;
}

.marketing-image-card.format-portrait .marketing-image-preview {
  aspect-ratio: 3 / 4;
  width: min(100%, 180px);
  justify-self: center;
}

.marketing-image-card.format-landscape .marketing-image-preview {
  aspect-ratio: 16 / 9;
}

.marketing-image-card.format-square .marketing-image-preview {
  aspect-ratio: 1;
}

.marketing-image-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.marketing-image-copy {
  display: grid;
  gap: 2px;
}

.marketing-image-copy small {
  color: var(--muted);
}

.marketing-file-input {
  display: block;
}

.marketing-file-input > span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid var(--accent);
  border-radius: 6px;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-weight: 800;
  cursor: pointer;
}

.marketing-file-input input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.marketing-remove {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #a63b32;
  font-size: 0.78rem;
  font-weight: 700;
}

.marketing-remove input {
  min-height: auto;
}

@media (max-width: 980px) {
  .marketing-image-grid {
    grid-template-columns: 1fr;
  }

  .marketing-image-card {
    grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
    align-items: center;
  }

  .marketing-image-preview {
    grid-row: span 3;
  }
}

@media (max-width: 600px) {
  .marketing-copy-fields {
    grid-template-columns: 1fr;
  }

  .marketing-head,
  .marketing-image-card {
    align-items: stretch;
    grid-template-columns: 1fr;
  }

  .marketing-image-preview {
    grid-row: auto;
  }
}

/* Check-in guest list */
.checkin-shell-wide{max-width:1440px}.checkin-event-bar{display:grid;grid-template-columns:minmax(280px,1fr) minmax(260px,.7fr);gap:24px;align-items:end;margin-bottom:18px}.checkin-event-select label{display:grid;gap:7px;font-weight:700}.checkin-event-select select,.checkin-search input{width:100%;min-height:46px;border:1px solid var(--border);background:#fff;padding:0 14px;font:inherit}.checkin-progress{display:grid;gap:8px}.checkin-progress span{font-size:14px;color:var(--muted)}.checkin-progress strong{font-size:20px;color:var(--ink)}.checkin-progress>div{height:8px;background:#dfe7e5;overflow:hidden}.checkin-progress i{display:block;height:100%;background:var(--primary)}.checkin-result-inline{margin-bottom:18px}.checkin-layout{display:grid;grid-template-columns:minmax(300px,390px) minmax(0,1fr);gap:20px;align-items:start}.checkin-layout .checkin-tool{position:sticky;top:20px}.checkin-guests{background:#fff;border:1px solid var(--border);padding:22px;box-shadow:var(--shadow)}.checkin-guests-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:18px}.checkin-guests-head h2{margin:3px 0 0;font-size:24px}.checkin-search{display:flex;gap:8px;min-width:min(430px,100%)}.checkin-order-list{display:grid;gap:10px}.checkin-order{border:1px solid var(--border);background:#fff}.checkin-order.is-complete{background:#f3f8f6;border-color:#b8d5cc}.checkin-order-main{display:grid;grid-template-columns:auto minmax(180px,1fr) auto auto;gap:12px;align-items:center;padding:14px}.checkin-order-main>div{display:grid;gap:3px}.checkin-order-main small{color:var(--muted)}.checkin-count{font-weight:800;font-variant-numeric:tabular-nums}.compact-button{min-height:38px;padding:8px 12px}.checkin-complete-label{font-weight:700;color:#256c58}.checkin-items{display:flex;flex-wrap:wrap;gap:7px;padding:0 14px 14px}.checkin-item{display:flex;align-items:center;gap:8px;min-height:36px;padding:5px 6px 5px 10px;border:1px solid var(--border);background:#f8faf9}.checkin-item.is-checked{background:#e6f2ed;color:#256c58;border-color:#b8d5cc}.checkin-item small{font-size:12px}.icon-checkin-button{width:28px;height:28px;border:0;background:var(--primary);color:#fff;font-size:17px;cursor:pointer}.checkin-empty{padding:36px;text-align:center;color:var(--muted);border:1px dashed var(--border)}.status-badge.warning{background:#fff4d6;color:#7a5600}
@media(max-width:980px){.checkin-layout{grid-template-columns:1fr}.checkin-layout .checkin-tool{position:static}.checkin-event-bar{grid-template-columns:1fr}.checkin-guests-head{align-items:stretch;flex-direction:column}.checkin-search{min-width:0;width:100%}}
@media(max-width:640px){.checkin-guests{padding:14px}.checkin-order-main{grid-template-columns:auto 1fr auto}.checkin-order-main form,.checkin-complete-label{grid-column:1/-1}.checkin-order-main form .compact-button{width:100%}.checkin-search{display:grid;grid-template-columns:1fr auto}.checkin-event-select select{font-size:14px}}

.checkin-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}.checkin-stat-grid>div{display:grid;gap:5px;padding:14px 16px;background:#fff;border:1px solid var(--border)}.checkin-stat-grid span{font-size:13px;color:var(--muted)}.checkin-stat-grid strong{font-size:27px;line-height:1;font-variant-numeric:tabular-nums}.checkin-stat-grid .is-positive{border-left:4px solid #2f8068}.checkin-stat-grid .is-open{border-left:4px solid #cf493f}.checkin-stat-grid .is-open strong{color:#a33129}@media(max-width:780px){.checkin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.checkin-stat-grid>div:first-child{grid-column:1/-1}}
/* Check-in layout refinement */
.checkin-page{background:#f3f5f5}
.checkin-shell.checkin-shell-wide{width:min(1180px,calc(100% - 40px));max-width:none;padding-top:24px}
.checkin-shell-wide .checkin-header{margin-bottom:22px}
.checkin-event-bar{grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:28px;margin-bottom:14px;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-soft)}
.checkin-event-select select,.checkin-search input{border-color:var(--line);border-radius:6px;background:var(--surface-strong);color:var(--ink)}
.checkin-progress>div{height:6px;border-radius:6px;background:#e3e8e7}
.checkin-progress i{border-radius:6px;background:var(--accent)}
.checkin-stat-grid{gap:0;margin-bottom:16px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;box-shadow:var(--shadow-soft)}
.checkin-stat-grid>div{min-width:0;padding:15px 20px;border:0;border-right:1px solid var(--line);background:transparent}
.checkin-stat-grid>div:last-child{border-right:0}
.checkin-stat-grid .is-positive,.checkin-stat-grid .is-open{border-left:0}
.checkin-stat-grid .is-positive strong{color:var(--accent)}
.checkin-stat-grid .is-open strong{color:#b43b33}
.checkin-layout{grid-template-columns:1fr;gap:16px}
.checkin-layout .checkin-tool{position:static;display:grid;grid-template-columns:minmax(210px,.65fr) minmax(190px,.55fr) minmax(360px,1.4fr);gap:18px;align-items:end;padding:20px;border-color:var(--line);box-shadow:var(--shadow-soft)}
.checkin-layout .checkin-title h1{margin:2px 0 0;font-size:25px}
.checkin-layout .checkin-camera-button{margin:0;min-height:46px;background:var(--accent);box-shadow:none}
.checkin-layout .checkin-form{grid-template-columns:minmax(0,1fr) auto;margin:0}
.checkin-layout .checkin-camera-status{grid-column:1/-1;margin:0}
.checkin-layout .checkin-camera-wrap{grid-column:1/-1;width:min(520px,100%);margin:0 auto}
.checkin-guests{padding:0;border-color:var(--line);border-radius:8px;box-shadow:var(--shadow-soft);overflow:hidden}
.checkin-guests-head{align-items:center;margin:0;padding:20px 22px;border-bottom:1px solid var(--line);background:#fff}
.checkin-guests-head h2{font-size:22px}
.checkin-search{flex:0 1 470px;min-width:0}
.checkin-search input{min-width:0}
.checkin-search .link-button{min-width:96px}
.checkin-order-list{gap:0}
.checkin-order{border:0;border-bottom:1px solid var(--line);background:#fff}
.checkin-order:last-child{border-bottom:0}
.checkin-order.is-complete{background:#f5faf8;border-color:var(--line)}
.checkin-order-main{grid-template-columns:100px minmax(240px,1fr) 70px 150px;gap:18px;min-height:72px;padding:14px 22px}
.checkin-order-main .status-badge{display:inline-flex;justify-content:center;width:100%;padding:6px 8px;border-radius:4px;font-size:12px;font-weight:750}
.checkin-order-main .status-badge.success{background:#e4f2ed;color:#236750}
.checkin-order-main .status-badge.warning{background:#fff2cf;color:#765500}
.checkin-order-main>div strong{font-size:16px}
.checkin-order-main>div small{white-space:normal}
.checkin-count{text-align:center}
.checkin-order-main .compact-button{width:150px;min-height:38px;border:1px solid var(--accent);background:transparent;color:var(--accent);box-shadow:none}
.checkin-order-main .compact-button:hover{background:var(--accent-soft)}
.checkin-complete-label{text-align:center;color:var(--accent)}
.checkin-items{gap:8px;padding:0 22px 14px 140px}
.checkin-item{border-color:var(--line);border-radius:5px;background:var(--surface-strong)}
.icon-checkin-button{display:grid;place-items:center;border-radius:4px;background:var(--accent)}
@media(max-width:900px){
  .checkin-shell.checkin-shell-wide{width:min(100% - 24px,760px)}
  .checkin-event-bar{grid-template-columns:1fr}
  .checkin-layout .checkin-tool{grid-template-columns:1fr 1fr}
  .checkin-layout .checkin-form{grid-column:1/-1}
  .checkin-stat-grid{grid-template-columns:repeat(5,minmax(100px,1fr));overflow-x:auto}
  .checkin-order-main{grid-template-columns:90px minmax(180px,1fr) 52px 140px}
  .checkin-items{padding-left:124px}
}
@media(max-width:650px){
  .checkin-shell.checkin-shell-wide{width:calc(100% - 20px);padding-top:12px}
  .checkin-header{margin-bottom:14px}
  .checkin-event-bar{padding:14px}
  .checkin-stat-grid{grid-template-columns:repeat(2,1fr);overflow:visible}
  .checkin-stat-grid>div{border-right:0;border-bottom:1px solid var(--line)}
  .checkin-stat-grid>div:first-child{grid-column:1/-1}
  .checkin-stat-grid>div:nth-child(even){border-right:1px solid var(--line)}
  .checkin-layout .checkin-tool{grid-template-columns:1fr;padding:16px}
  .checkin-layout .checkin-form{grid-column:auto;grid-template-columns:1fr}
  .checkin-guests-head{align-items:stretch;flex-direction:column;padding:16px}
  .checkin-search{flex-basis:auto;width:100%}
  .checkin-order-main{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:14px 16px}
  .checkin-order-main .status-badge{width:auto}
  .checkin-order-main form,.checkin-complete-label{grid-column:1/-1}
  .checkin-order-main .compact-button{width:100%}
  .checkin-items{padding:0 16px 14px}
}
.checkin-stat-grid .is-unpaid{background:#fff7f2}.checkin-stat-grid .is-unpaid strong{color:#b43b33}.checkin-order.has-unpaid{box-shadow:inset 4px 0 0 #d45545;background:#fffafa}.checkin-order-main .status-badge.warning{background:#fbe6e3;color:#a52f28;border:1px solid #efc0bb}.checkin-payment-due{display:block;margin-top:3px;color:#a52f28;font-size:13px;font-weight:800}.checkin-order.has-unpaid .checkin-items{background:#fffafa}

.room-plan-row{display:flex;justify-content:space-between;gap:12px;align-items:center}.room-plan-actions{display:flex;gap:10px;align-items:center}.room-plan-actions form{margin:0}.text-danger-button{padding:0;border:0;background:none;color:#a52f28;font:inherit;font-weight:700}
/* Sidebar logo fit */
.sidebar .brand{display:flex;align-items:flex-start;gap:10px}.sidebar .brand-mark{display:grid;width:104px;height:104px;flex:0 0 104px;place-items:center;overflow:hidden;background:#fff}.sidebar .brand-mark img{display:block;width:100%!important;height:100%!important;max-width:100%;max-height:100%;padding:5px!important;object-fit:contain!important;object-position:center!important}.sidebar .brand>div:last-child{width:100%}
@media(max-width:820px){.sidebar .brand-mark{width:72px;height:72px;flex-basis:72px}}

/* Unified event tabs */
.tabs>.tab{display:inline-flex;align-items:center;justify-content:center;height:44px;min-height:44px;margin:0;padding:0 16px;line-height:1;border-radius:7px;font:inherit;font-weight:500;white-space:nowrap;vertical-align:middle;text-decoration:none}.tabs>button.tab{appearance:none}.tabs>a.tab{box-sizing:border-box}


/* Today in TiK operations cockpit */
.today-cockpit{display:grid;gap:18px}
.today-control-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 0 4px}
.today-control-bar h2{margin:3px 0 2px;font-size:1.48rem}
.today-updated{color:var(--muted);font-size:.82rem}
.today-date-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.today-date-controls form{margin:0}
.today-date-controls input[type=date]{width:156px;height:42px;padding:0 11px;background:#fff}
.icon-day-button{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:1.2rem;font-weight:700;text-decoration:none;box-shadow:var(--shadow-soft)}
.icon-day-button:hover{border-color:var(--accent);color:var(--accent-strong)}
.today-date-controls .is-current{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}

.today-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.today-metrics article{min-width:0;padding:17px 19px;border-right:1px solid var(--line)}
.today-metrics article:last-child{border-right:0}
.today-metrics span,.today-metrics small{display:block;color:var(--muted)}
.today-metrics span{font-size:.78rem;font-weight:700;text-transform:uppercase}
.today-metrics strong{display:block;margin:8px 0 5px;font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}
.today-metrics small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}
.today-metrics .has-alert{box-shadow:inset 0 3px 0 #cf493f;background:#fffafa}
.today-metrics .has-alert strong{color:#ae3029}
.today-metrics .is-clear{box-shadow:inset 0 3px 0 #2f8068}

.today-primary-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.7fr);gap:18px;align-items:start}
.today-secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.today-section{min-width:0;padding:19px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}
.today-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}
.today-section-head h2{margin:2px 0 0;font-size:1.08rem}
.today-section-head .eyebrow{margin:0}
.today-schedule,.today-alert-list,.today-staff-list,.today-task-list{display:grid;gap:10px}

.today-schedule-item{display:grid;grid-template-columns:76px minmax(0,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.today-schedule-item.is-event{border-left:4px solid var(--accent)}
.today-schedule-item.is-rental{border-left:4px solid #b47b25}
.today-time{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 8px;border-right:1px solid var(--line);background:#f5f8f7}
.today-time strong{font-size:1.16rem;font-variant-numeric:tabular-nums}
.today-time span{margin-top:2px;color:var(--muted);font-size:.7rem;text-transform:uppercase}
.today-schedule-content{min-width:0;padding:14px 15px}
.today-item-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.today-item-title h3{margin:2px 0 0;font-size:1rem}
.today-kind{color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase}
.today-item-meta{margin:5px 0 12px;color:var(--muted);font-size:.8rem}
.today-progress-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.today-progress-row>div{display:grid;grid-template-columns:1fr auto;gap:5px;align-items:center}
.today-progress-row span{color:var(--muted);font-size:.74rem}
.today-progress-row strong{font-size:.78rem;font-variant-numeric:tabular-nums}
.today-progress-row i{grid-column:1/-1;display:block;height:6px;overflow:hidden;border-radius:4px;background:#e5ecea}
.today-progress-row i b{display:block;height:100%;border-radius:inherit;background:var(--accent)}
.today-progress-row>div+div i b{background:#2f8068}
.today-item-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding-top:11px;border-top:1px solid var(--line)}
.today-facts,.today-item-actions,.today-rental-facts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.today-facts span{padding:4px 7px;border-radius:4px;background:#edf2f1;color:#405152;font-size:.72rem;font-weight:700}
.today-facts .is-warning{background:#fff0df;color:#8a4d08}
.today-item-actions a,.today-rental-facts a{color:var(--ink);font-size:.76rem;font-weight:800;text-decoration:none}
.today-item-actions .accent{padding:6px 9px;border-radius:5px;background:var(--accent);color:#fff}
.today-rental-facts{padding-top:10px;border-top:1px solid var(--line);font-size:.78rem}
.today-rental-facts span{color:var(--muted)}
.today-rental-facts b{color:var(--ink)}
.today-rental-facts a{margin-left:auto;color:var(--accent-strong)}

.today-alerts{position:sticky;top:18px}
.today-alert{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:11px;border:1px solid #efd1ce;border-radius:7px;background:#fff8f7;color:var(--ink);text-decoration:none}
.today-alert>span{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#cf493f;color:#fff;font-weight:900}
.today-alert div{min-width:0}
.today-alert strong,.today-alert small{display:block}
.today-alert strong{font-size:.82rem}
.today-alert small{margin-top:2px;overflow:hidden;color:#755b58;font-size:.73rem;text-overflow:ellipsis;white-space:nowrap}
.today-alert.is-staff{border-color:#ead8b8;background:#fffaf1}
.today-alert.is-staff>span{background:#a76c1c}
.today-alert.is-task{border-color:#d7dfe6;background:#f8fafb}
.today-alert.is-task>span{background:#53636d}
.today-all-clear{display:grid;justify-items:center;gap:5px;padding:24px 12px;text-align:center}
.today-all-clear>span{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:#dceee8;color:#20634f;font-size:1.1rem;font-weight:900}
.today-all-clear small{color:var(--muted)}
.today-revenue{display:grid;gap:3px;margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.today-revenue span,.today-revenue small{color:var(--muted);font-size:.75rem}
.today-revenue strong{font-size:1.5rem}

.today-staff-list article,.today-task-list article{display:grid;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:7px}
.today-staff-list article{grid-template-columns:72px minmax(0,1fr) auto}
.today-staff-list article.is-open{border-left:4px solid #cf493f;background:#fffafa}
.today-staff-list article.is-filled{border-left:4px solid #2f8068}
.today-role{font-size:.75rem;font-weight:800;text-transform:uppercase}
.today-staff-list strong,.today-staff-list small,.today-task-list strong,.today-task-list small{display:block}
.today-staff-list small,.today-task-list small{margin-top:3px;color:var(--muted);font-size:.75rem}
.today-staff-list article>b{font-size:1.05rem;font-variant-numeric:tabular-nums}
.today-task-list article{grid-template-columns:minmax(0,1fr) auto}
.today-task-list article.is-high{border-left:4px solid #cf493f}
.today-task-list form{margin:0}
.today-task-list button{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid #b9d6ce;border-radius:6px;background:#edf7f4;color:#20634f;font-size:1rem;font-weight:900;cursor:pointer}
.today-empty{display:grid;justify-items:center;gap:6px;padding:44px 16px;border:1px dashed var(--line);border-radius:8px;text-align:center}
.today-empty span,.today-inline-empty{color:var(--muted);font-size:.82rem}
.today-inline-empty{margin:0;padding:14px;text-align:center}

@media(max-width:1180px){
  .today-primary-grid{grid-template-columns:1fr}
  .today-alerts{position:static}
  .today-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .today-metrics article:nth-child(2){border-right:0}
  .today-metrics article:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:820px){
  .today-control-bar,.today-section-head,.today-item-footer{align-items:stretch;flex-direction:column}
  .today-secondary-grid{grid-template-columns:1fr}
  .today-date-controls{display:grid;grid-template-columns:42px 1fr 42px 42px}
  .today-date-controls form{grid-column:1/-1;grid-row:2}
  .today-date-controls input[type=date]{width:100%}
  .today-date-controls .link-button{justify-content:center}
}
@media(max-width:560px){
  .today-metrics{grid-template-columns:1fr}
  .today-metrics article{border-right:0;border-bottom:1px solid var(--line)}
  .today-metrics article:last-child{border-bottom:0}
  .today-schedule-item{grid-template-columns:1fr}
  .today-time{align-items:baseline;flex-direction:row;justify-content:flex-start;gap:7px;border-right:0;border-bottom:1px solid var(--line)}
  .today-progress-row{grid-template-columns:1fr}
  .today-item-title{align-items:flex-start}
  .today-item-footer{gap:10px}
  .today-item-actions a{display:inline-flex;min-height:34px;align-items:center}
  .today-staff-list article{grid-template-columns:1fr auto}
  .today-role{grid-column:1/-1}
}
/* Veranstalter-Portal */
.event-portal-admin{display:grid;gap:14px}.portal-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.portal-admin-head h3,.portal-review-head h3{margin:2px 0 0}.portal-admin-status{padding:7px 10px;border:1px solid var(--line);border-radius:5px;background:#f1f4f3;color:var(--muted);font-size:.72rem;font-weight:800}.portal-admin-status.status-submitted{border-color:#ddb65d;background:#fff7e3;color:#875200}.portal-admin-status.status-approved{border-color:#9bcab8;background:#edf8f3;color:#176448}.portal-admin-settings{display:grid;grid-template-columns:1fr 1fr 180px;gap:10px;padding:14px;border:1px solid var(--line);border-radius:7px;background:#f8faf9}.portal-admin-settings label,.portal-link-row label,.portal-review-decision label{display:grid;gap:5px;font-size:.72rem;font-weight:800}.portal-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:8px}.portal-link-row input{width:100%;font-size:.74rem}.portal-admin-meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--muted);font-size:.7rem}.portal-admin-actions{display:flex;flex-wrap:wrap;gap:8px}.portal-admin-actions button{min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);font-weight:800;cursor:pointer}.portal-admin-actions .danger{color:#a33129}.portal-submission-review{display:grid;gap:14px;margin-top:6px;padding-top:18px;border-top:1px solid var(--line)}.portal-review-head{display:flex;justify-content:space-between;gap:12px}.portal-review-head>span{color:var(--muted);font-size:.7rem}.portal-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.portal-review-grid article,.portal-text-review article,.portal-notes,.portal-admin-note{padding:12px;border:1px solid var(--line);border-radius:6px;background:#f9fbfa}.portal-review-grid span,.portal-text-review span{display:block;margin-bottom:4px;color:var(--muted);font-size:.66rem;font-weight:800;text-transform:uppercase}.portal-review-grid strong,.portal-review-grid small{display:block}.portal-review-grid small{margin-top:3px;color:var(--muted);font-size:.7rem}.portal-text-review{display:grid;grid-template-columns:1fr 1fr;gap:8px}.portal-text-review p{max-height:260px;margin:0;overflow:auto;font-size:.78rem;white-space:normal}.portal-review-images{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.portal-review-images article{display:grid;gap:5px}.portal-review-images span{font-size:.7rem;font-weight:800}.portal-review-images img,.portal-review-images article>div{width:100%;height:180px;border:1px solid var(--line);border-radius:6px;object-fit:cover}.portal-review-images article>div{display:grid;place-items:center;background:#f2f4f3;color:var(--muted)}.portal-credit{margin:0;color:var(--muted);font-size:.72rem}.portal-notes{display:grid;grid-template-columns:1fr 1fr;gap:16px}.portal-notes p{margin:0;font-size:.76rem}.portal-review-decision{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;padding:14px;border:1px solid #ddbd78;border-radius:7px;background:#fff9eb}.portal-review-decision div{display:flex;gap:8px}.portal-review-decision button{min-height:44px;padding:0 13px;border:1px solid var(--line);border-radius:5px;background:#fff;font-weight:800;cursor:pointer}.portal-admin-note{border-color:#ddbd78;background:#fff9eb}.portal-admin-note p{margin:5px 0 0}.portal-admin-empty{display:grid;justify-items:center;gap:5px;padding:32px;border:1px dashed var(--line);border-radius:7px;color:var(--muted)}
@media(max-width:850px){.portal-admin-settings{grid-template-columns:1fr 1fr}.portal-admin-settings label:last-child{grid-column:1/-1}.portal-text-review,.portal-notes{grid-template-columns:1fr}.portal-review-decision{grid-template-columns:1fr}.portal-review-decision div{justify-content:flex-end}}@media(max-width:620px){.portal-admin-settings,.portal-review-grid,.portal-review-images{grid-template-columns:1fr}.portal-admin-settings label:last-child{grid-column:auto}.portal-link-row{grid-template-columns:1fr 1fr}.portal-link-row label{grid-column:1/-1}.portal-review-images img,.portal-review-images article>div{height:230px}.portal-review-decision div,.portal-admin-actions{display:grid;grid-template-columns:1fr}.portal-review-decision button,.portal-admin-actions button{width:100%}}
/* Ticketkategorien */
.ticket-category-editor{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:7px;background:#f8faf9}.ticket-category-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ticket-category-head span{color:var(--muted);font-size:.67rem;font-weight:800;text-transform:uppercase}.ticket-category-head h3{margin:2px 0 0;font-size:1rem}.ticket-category-list{display:grid;gap:8px}.ticket-category-row{display:grid;grid-template-columns:minmax(130px,1.2fr) 100px 110px minmax(140px,1fr) minmax(145px,1fr) minmax(145px,1fr) 70px 82px;align-items:end;gap:8px;padding:11px;border:1px solid var(--line);border-radius:6px;background:#fff}.ticket-category-row label{display:grid;gap:4px;min-width:0;color:var(--muted);font-size:.64rem;font-weight:800}.ticket-category-row input,.ticket-category-row select{width:100%;min-width:0}.ticket-category-row .category-active,.ticket-category-row .category-remove{display:flex;align-items:center;min-height:44px;gap:5px}.ticket-category-row .category-active input,.ticket-category-row .category-remove input{width:auto}.category-delete-new{min-height:42px;border:0;background:transparent;color:#a33129;font-weight:800;cursor:pointer}@media(max-width:1250px){.ticket-category-row{grid-template-columns:repeat(4,minmax(120px,1fr))}}@media(max-width:720px){.ticket-category-head{align-items:stretch;flex-direction:column}.ticket-category-row{grid-template-columns:1fr 1fr}.ticket-category-row .category-name{grid-column:1/-1}}
.checkin-item>span small{display:block;margin-top:2px;color:var(--muted);font-size:.65rem}

.today-bar-workspace{display:grid;gap:15px;padding-top:3px}
.today-bar-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:17px 19px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;background:#fff;box-shadow:var(--shadow)}
.today-bar-head h2{margin:2px 0 3px;font-size:1.2rem}
.today-bar-head>div:first-child>span{color:var(--muted);font-size:.78rem}
.today-bar-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.today-bar-head-actions>span{display:grid;gap:2px;min-width:105px;padding:7px 10px;border-left:1px solid var(--line);color:var(--muted);font-size:.67rem;text-transform:uppercase}
.today-bar-head-actions>span b{color:var(--ink);font-size:.89rem;text-transform:none;font-variant-numeric:tabular-nums}
.today-bar-head-actions>span.has-open b{color:#9b5c00}
.today-bar-readonly{display:grid;gap:4px;padding:24px;border:1px dashed var(--line);border-radius:8px;background:#fff;text-align:center}
.today-bar-readonly span{color:var(--muted);font-size:.8rem}
.today-bar-event{display:grid;gap:5px;color:var(--muted);font-size:.72rem;font-weight:800}
.today-bar-event select{width:100%;background:#fff}
.today-bar-pos .bar-products,.today-bar-pos .bar-cart{box-shadow:var(--shadow)}
@media(max-width:950px){.today-bar-head{align-items:stretch;flex-direction:column}.today-bar-head-actions{justify-content:flex-start}.today-bar-head-actions>span{border-left:0;border-right:1px solid var(--line)}}
@media(max-width:700px){.today-bar-head-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.today-bar-head-actions>span{min-width:0;border:0}.today-bar-head-actions .link-button{grid-column:1/-1;justify-content:center}}
.today-operations{display:grid;gap:13px;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}
.today-operations>.today-section-head{margin-bottom:0}.today-operations>.today-section-head>span{color:var(--muted);font-size:.74rem}
.today-operation-events{display:grid;gap:11px}
.today-operation-event{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}
.today-operation-event>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid var(--line);background:#f5f8f7}
.today-operation-event>header>div:first-child span,.today-operation-event>header>div:first-child strong{display:block}.today-operation-event>header>div:first-child span{color:var(--muted);font-size:.67rem;font-weight:800;text-transform:uppercase}.today-operation-event>header>div:first-child strong{margin-top:2px;font-size:.94rem}
.today-operation-progress{display:grid;grid-template-columns:auto 100px auto;align-items:center;gap:8px}.today-operation-progress>b{font-size:.78rem}.today-operation-progress>i{display:block;height:6px;overflow:hidden;border-radius:4px;background:#dfe8e5}.today-operation-progress>i span{display:block;height:100%;background:var(--accent)}.today-operation-progress>a{color:var(--accent-strong);font-size:.7rem;font-weight:850;text-decoration:none}
.today-operation-list{display:grid}
.today-operation-item{display:grid;grid-template-columns:52px 14px minmax(0,1fr) 80px auto;align-items:center;gap:9px;min-height:57px;padding:8px 12px;border-bottom:1px solid var(--line)}.today-operation-item:last-child{border:0}
.today-operation-item time{font-size:.84rem;font-weight:900;font-variant-numeric:tabular-nums}.today-operation-dot{width:10px;height:10px;border-radius:50%;background:#a2aeac;box-shadow:0 0 0 3px #edf1f0}
.today-operation-item>div strong,.today-operation-item>div small{display:block}.today-operation-item>div strong{font-size:.82rem}.today-operation-item>div small{margin-top:2px;color:var(--muted);font-size:.67rem}
.today-operation-item em{color:var(--muted);font-size:.68rem;font-style:normal;font-weight:800}.today-operation-item form{margin:0}.today-operation-item button{min-width:78px;min-height:38px;padding:0 9px;border:1px solid var(--accent);border-radius:5px;background:#fff;color:var(--accent-strong);font-size:.7rem;font-weight:850;cursor:pointer}.today-operation-item button.complete{background:var(--accent);color:#fff}
.today-operation-item.status-active{background:#fffbf3}.today-operation-item.status-active .today-operation-dot{background:#d68714;box-shadow:0 0 0 3px #f8e5c5}.today-operation-item.status-done{background:#f7fbfa}.today-operation-item.status-done .today-operation-dot{background:#2f8068;box-shadow:0 0 0 3px #dceee8}.today-operation-item.status-done>div strong{text-decoration:line-through;color:var(--muted)}.today-operation-item.status-skipped{opacity:.55}
.today-operation-empty{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px;color:var(--muted);font-size:.76rem}.today-operation-empty a{color:var(--accent-strong);font-weight:850;text-decoration:none}
@media(max-width:800px){.today-operation-event>header{align-items:flex-start;flex-direction:column}.today-operation-progress{width:100%;grid-template-columns:auto 1fr auto}.today-operation-item{grid-template-columns:45px 12px minmax(0,1fr) auto}.today-operation-item>em{grid-column:3}.today-operation-item>form{grid-column:4;grid-row:1/3}.today-operation-item button{min-height:44px}}
@media(max-width:520px){.today-operations{padding:12px}.today-operation-item{grid-template-columns:42px 10px minmax(0,1fr);padding:9px}.today-operation-item>em{grid-column:3}.today-operation-item>form{grid-column:1/-1;grid-row:auto;padding-left:61px}.today-operation-item button{width:100%}.today-operation-progress{grid-template-columns:auto 1fr}.today-operation-progress>a{grid-column:1/-1}}
/* Grouped application navigation */
.sidebar{overflow-y:auto}.sidebar .brand,.sidebar .nav-list,.sidebar .sidebar-note,.sidebar .logout-link{flex-shrink:0}.sidebar .nav-list{display:grid;gap:10px;min-height:0}
.sidebar .nav-primary{position:relative;border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.055)}
.sidebar .nav-groups{display:grid;gap:5px}
.sidebar .nav-group{border-top:1px solid rgba(255,255,255,.1)}
.sidebar .nav-group:last-child{border-bottom:1px solid rgba(255,255,255,.1)}
.sidebar .nav-group>summary{position:relative;display:flex;align-items:center;min-height:42px;padding:9px 30px 9px 11px;color:#d4dcde;cursor:pointer;list-style:none;font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase;user-select:none}
.sidebar .nav-group>summary::-webkit-details-marker{display:none}
.sidebar .nav-group>summary:after{position:absolute;right:12px;width:7px;height:7px;border-right:2px solid #9eaaae;border-bottom:2px solid #9eaaae;content:"";transform:rotate(45deg) translateY(-2px);transition:transform 150ms ease}
.sidebar .nav-group[open]>summary:after{transform:rotate(225deg) translate(-2px,-2px)}
.sidebar .nav-group>summary:hover,.sidebar .nav-group.is-active>summary{color:#fff;background:rgba(255,255,255,.055)}
.sidebar .nav-group.is-active>summary:before{position:absolute;left:0;width:3px;height:18px;border-radius:0 2px 2px 0;background:#e06961;content:""}
.sidebar .nav-submenu{display:grid;gap:2px;padding:2px 0 8px 10px}
.sidebar .nav-submenu .nav-button{min-height:36px;padding:8px 11px;border-radius:5px;color:#cbd3d6;font-size:.88rem;font-weight:650}
.sidebar .nav-submenu .nav-button:before{display:inline-block;width:12px;color:#7f8c90;content:"·"}
.sidebar .nav-submenu .nav-button.active:before{color:#fff;content:"›"}
.sidebar .nav-submenu .nav-button.active{border-color:#d85e56;color:#fff;background:#b93c36}
.sidebar .nav-submenu .nav-coming-soon{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1px solid transparent;background:transparent;text-align:left;cursor:pointer;opacity:.55}
.sidebar .nav-submenu .nav-coming-soon:before{content:"·"}
.sidebar .nav-submenu .nav-coming-soon>span{margin-right:auto}
.sidebar .nav-submenu .nav-coming-soon small{padding:2px 5px;border:1px solid rgba(255,255,255,.18);border-radius:3px;color:#d3dadd;font-size:.58rem;font-weight:800;white-space:nowrap}
.sidebar .nav-submenu .nav-coming-soon:hover{border-color:rgba(255,255,255,.12);color:#fff;background:rgba(255,255,255,.06);opacity:.85}
.feature-development-dialog{width:min(440px,calc(100% - 32px));padding:28px;border:0;border-radius:8px;color:var(--ink);background:#fff;box-shadow:0 24px 70px rgba(14,24,28,.3)}
.feature-development-dialog::backdrop{background:rgba(24,33,38,.68)}
.feature-development-dialog h2{margin:10px 0 7px;font-size:1.45rem}
.feature-development-dialog p{margin:0 0 22px;color:var(--muted);line-height:1.55}
.feature-development-dialog>form:last-child{display:flex;justify-content:flex-end}
.feature-dialog-status{color:var(--accent);font-size:.7rem;font-weight:850;text-transform:uppercase}
.feature-dialog-close{position:absolute;top:13px;right:13px;display:grid;width:34px;height:34px;padding:0;place-items:center;border:1px solid var(--line);border-radius:5px;color:var(--muted);background:#fff;font-size:1.25rem;cursor:pointer}
.feature-dialog-close:hover{color:var(--ink);background:var(--surface-strong)}
.sidebar .nav-group:not([open]) .nav-submenu{display:none}

@media(max-width:760px){
  .sidebar .nav-list{grid-template-columns:1fr}
  .sidebar .sidebar-note{margin-top:8px}
  .sidebar .nav-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px}
  .sidebar .nav-group{border:1px solid rgba(255,255,255,.11);border-radius:6px}
  .sidebar .nav-group:last-child{border-bottom:1px solid rgba(255,255,255,.11)}
  .sidebar .nav-group[open]{grid-column:1/-1}
  .sidebar .nav-group>summary{min-height:46px}
  .sidebar .nav-submenu{grid-template-columns:repeat(2,minmax(0,1fr));padding:4px 8px 9px}
}
@media(max-width:480px){
  .sidebar .nav-groups,.sidebar .nav-submenu{grid-template-columns:1fr}
  .sidebar .nav-group[open]{grid-column:auto}
}


.event-mail-draft-notice{display:flex;align-items:center;gap:10px;margin:18px 0;padding:13px 15px;border:1px solid #d6dfdb;border-left:4px solid var(--accent);border-radius:8px;background:#f6f8f7}.event-mail-draft-notice strong{flex:none}.event-mail-draft-notice span{color:var(--muted);font-size:.82rem}@media(max-width:760px){.event-mail-draft-notice{align-items:flex-start;flex-direction:column}}
.event-locked-notice{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;padding:14px 16px;border:1px solid #cbd9ea;border-left:4px solid var(--blue);border-radius:8px;background:#f3f7fc}.event-locked-notice div{display:grid;gap:3px}.event-locked-notice span{color:var(--muted);font-size:.8rem}.event-locked-notice a{flex:none;color:var(--accent-strong);font-size:.8rem;font-weight:800}@media(max-width:760px){.event-locked-notice{align-items:flex-start;flex-direction:column}}

/* Veranstaltungsbezogene Aufgaben */
.event-task-head,
.event-task-card-head,
.detail-tasks .task-item footer,
.event-task-create-head,
.event-task-create-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.event-task-head {
  margin-bottom: 14px;
}

.event-task-head h3,
.event-task-create h3 {
  margin: 0;
  font-size: 1rem;
}

.event-task-head > span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 750;
}

.detail-tasks {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.detail-tasks .task-item {
  min-height: 124px;
}

.detail-tasks .task-item p {
  margin: 0;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.45;
}

.detail-tasks .task-item footer {
  align-items: flex-end;
  margin-top: auto;
}

.detail-tasks .task-item footer small {
  color: var(--muted);
}

.detail-tasks .task-item.is-complete {
  opacity: 0.68;
}

.detail-tasks .task-item.is-complete strong {
  text-decoration: line-through;
}

.event-task-empty {
  grid-column: 1 / -1;
  padding: 24px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  text-align: center;
}

.event-task-create {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.event-task-create-head {
  margin-bottom: 14px;
}

.event-task-fields {
  display: grid;
  grid-template-columns: minmax(260px, 1.6fr) minmax(150px, 0.7fr) minmax(140px, 0.6fr);
  gap: 12px;
}

.event-task-fields label {
  display: grid;
  gap: 6px;
  min-width: 0;
  font-size: 0.76rem;
  font-weight: 750;
}

.event-task-create-actions {
  justify-content: flex-end;
  margin-top: 12px;
}

@media (max-width: 760px) {
  .detail-tasks,
  .event-task-fields {
    grid-template-columns: 1fr;
  }

  .detail-tasks .task-item footer {
    align-items: stretch;
    flex-direction: column;
  }
}
/* Event workspace navigation */
.event-list-panel{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:hidden}
.event-list-tools{display:grid;gap:9px;padding-bottom:13px;border-bottom:1px solid var(--line)}
.event-list-tools input,.event-list-tools select{min-height:40px;font-size:.78rem}
.event-past-toggle{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.72rem;font-weight:750}
.event-past-toggle input{width:17px;height:17px}
.event-list-summary{display:flex;align-items:baseline;gap:6px;padding:12px 2px 8px;color:var(--muted);font-size:.7rem;text-transform:uppercase}
.event-list-summary strong{color:var(--ink);font-size:1rem}
.event-list{max-height:calc(100vh - 245px);overflow:auto;padding-right:3px}
.event-card[hidden]{display:none}
.event-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.event-card-head strong{min-width:0}
.event-card-head small{flex:0 0 auto;padding:3px 5px;border:1px solid var(--line);border-radius:4px;color:var(--muted);font-size:.58rem;font-weight:800}
.event-list-empty{padding:36px 12px;color:var(--muted);font-size:.78rem;text-align:center}
.detail-panel{overflow:visible}
.event-editor-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.event-section-nav{position:sticky;top:18px;align-self:start;display:grid;gap:18px}
.event-nav-group{display:grid;gap:4px}
.event-nav-group>span{padding:0 8px 5px;color:var(--muted);font-size:.62rem;font-weight:850;text-transform:uppercase}
.event-section-link{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:40px;padding:8px;border:0;border-left:3px solid transparent;border-radius:0;background:transparent;color:var(--ink);box-shadow:none;font:inherit;font-size:.76rem;text-align:left;text-decoration:none;cursor:pointer}
.event-section-link:hover{border-color:#b9d9d5;background:#f4f8f7}
.event-section-link.active{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}
.event-section-link strong{min-width:0;font-weight:750}
.event-section-link small{flex:0 0 auto;padding:2px 5px;border-radius:4px;background:#e9efed;color:var(--muted);font-size:.58rem;font-weight:850}
.event-section-link small.is-warning{background:#fff0d2;color:#875200}
.event-section-link small.is-ok{background:#e1f2eb;color:#176448}
.event-editor-content{min-width:0}
.event-editor-content>.tab-panel{margin:0}
.event-overview-section{padding-bottom:22px}
.event-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:13px;border-bottom:1px solid var(--line)}
.event-panel-heading h3{margin:2px 0 0;font-size:1.08rem}
.event-panel-heading>span{color:var(--muted);font-size:.7rem}
.event-overview-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff}
.event-overview-kpis article{min-width:0;padding:14px;border-right:1px solid var(--line)}
.event-overview-kpis article:last-child{border-right:0}
.event-overview-kpis span,.event-overview-kpis small{display:block;color:var(--muted)}
.event-overview-kpis span{font-size:.62rem;font-weight:850;text-transform:uppercase}
.event-overview-kpis strong{display:block;margin:7px 0 4px;overflow:hidden;font-size:1.08rem;text-overflow:ellipsis;white-space:nowrap}
.event-overview-kpis small{font-size:.67rem}
.event-overview-kpis .has-alert{box-shadow:inset 0 3px 0 #cf493f;background:#fffafa}
.event-overview-kpis .is-clear{box-shadow:inset 0 3px 0 #2f8068}
.event-save-bar{position:sticky;z-index:8;bottom:0;align-items:center;gap:10px;margin:20px -24px -24px;padding:14px 24px;border-top:1px solid var(--line);background:rgba(255,255,255,.96);box-shadow:0 -10px 24px rgba(25,42,39,.08);backdrop-filter:blur(8px)}
@media(max-width:1280px){.event-editor-shell{grid-template-columns:190px minmax(0,1fr)}.event-overview-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.event-overview-kpis article:nth-child(2){border-right:0}.event-overview-kpis article:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:1100px){.event-list-panel{position:static;max-height:none}.event-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:340px}.event-editor-shell{grid-template-columns:210px minmax(0,1fr)}}
@media(max-width:820px){.event-editor-shell{grid-template-columns:1fr}.event-section-nav{position:static;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.event-nav-group{align-content:start;padding:8px;border:1px solid var(--line);border-radius:6px}.event-save-bar{margin-right:-16px;margin-left:-16px;padding-right:16px;padding-left:16px}}
@media(max-width:600px){.event-list{grid-template-columns:1fr}.event-section-nav{grid-template-columns:1fr}.event-overview-kpis{grid-template-columns:1fr}.event-overview-kpis article{border-right:0;border-bottom:1px solid var(--line)}.event-overview-kpis article:last-child{border-bottom:0}.event-panel-heading{display:grid}.event-save-bar{justify-content:space-between}.event-save-bar .primary-button{min-width:130px}}
/* Operations, global search and system health */
.global-search{position:relative;margin:0 14px 12px}.global-search input{width:100%;min-height:40px;padding:9px 12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff;border-radius:6px}.global-search input::placeholder{color:rgba(255,255,255,.62)}.global-search-results{position:absolute;z-index:50;top:46px;left:0;width:min(420px,calc(100vw - 32px));max-height:65vh;overflow:auto;background:#fff;border:1px solid #d9e0e1;box-shadow:0 18px 42px rgba(20,35,39,.2);border-radius:6px;padding:6px}.global-search-results a{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:10px 11px;color:#27353a;text-decoration:none;border-bottom:1px solid #edf0f0}.global-search-results a:last-child{border:0}.global-search-results a:hover{background:#f2f6f5}.global-search-results span{grid-column:1/-1;color:#88706b;font-size:11px;text-transform:uppercase;font-weight:700}.global-search-results small{color:#728086}.global-search-results p{padding:15px;margin:0;color:#728086}
.operations-alerts{margin:0 0 22px}.operations-alerts-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:10px}.operations-alerts-head h2{margin:2px 0 0}.operations-alerts-head>strong{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#29383d;color:#fff}.operations-alerts>div:last-child{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}.operation-alert{display:grid;grid-template-columns:5px 1fr auto;gap:11px;align-items:center;padding:13px 14px;background:#fff;border:1px solid #dfe5e5;border-radius:6px;color:#29383d;text-decoration:none}.operation-alert i{height:100%;border-radius:3px;background:#829096}.operation-alert span{display:grid;gap:2px}.operation-alert small{color:#718087}.operation-alert b{font-size:13px;color:#a62b27}.operation-alert.is-danger i{background:#ce4139}.operation-alert.is-warning i{background:#d49d31}.operation-alert.is-info i{background:#238b84}
.conflict-override{display:inline-flex!important;align-items:center;gap:8px;margin-left:auto;color:#8c322d;font-size:13px;font-weight:700}.conflict-override input{width:18px;height:18px}
.health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:20px}.health-grid article{display:grid;grid-template-columns:10px 1fr;gap:13px;padding:18px;background:#fff;border:1px solid #dce2e2;border-radius:6px}.health-grid i{border-radius:5px;background:#2a8b75}.health-grid article.has-error i{background:#ce4139}.health-grid article div{display:grid;gap:4px}.health-grid span,.health-grid small{color:#718087}.backup-panel{max-width:900px}.backup-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:7px}.backup-list span{padding:9px 11px;background:#f3f6f5;border-radius:4px;font-family:monospace;font-size:12px}
.waitlist-panel{align-self:start}.shop-success{padding:14px;background:#e6f4ef;border:1px solid #78b8a2;color:#195d4d;border-radius:6px}.reservation-self-service{margin-top:18px;border-top:1px solid #dfe5e5;padding-top:14px}.reservation-self-service summary{cursor:pointer;font-weight:800;color:#29383d}.reservation-self-service form{margin-top:14px}.reservation-self-service .danger-button{margin-top:8px}
@media(max-width:760px){.global-search-results{position:fixed;top:116px;left:16px;right:16px;width:auto}.operations-alerts>div:last-child{grid-template-columns:1fr}.conflict-override{width:100%;margin:0 0 8px}.health-grid{grid-template-columns:1fr}}

.portal-review-schedule{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:12px;border:1px solid var(--line);border-radius:6px;background:#f9fbfa}.portal-review-schedule>span{color:var(--muted);font-size:.66rem;font-weight:800;text-transform:uppercase}.portal-review-schedule>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 14px}.portal-review-schedule p{display:grid;grid-template-columns:46px minmax(0,1fr);gap:7px;margin:0;font-size:.74rem}.portal-review-schedule time{color:var(--accent);font-weight:900;font-variant-numeric:tabular-nums}.portal-review-schedule strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:850px){.portal-review-schedule{grid-template-columns:1fr}.portal-review-schedule>div{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.portal-review-schedule>div{grid-template-columns:1fr}}
.event-web-published{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 10px;border:1px solid #a9cfc0;border-radius:5px;background:#eef8f4;color:#23664f;font-size:.7rem;font-weight:850;white-space:nowrap}.event-web-published i{width:8px;height:8px;border-radius:50%;background:#2f8068}.publish-web-button{border-color:#2f8068!important;color:#24664f!important;background:#f1f8f5!important}@media(max-width:760px){.event-web-published{width:100%;justify-content:center;white-space:normal;text-align:center}}
.user-mail-rights {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.user-mail-rights-head,
.user-mail-right-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) repeat(4, 104px);
  align-items: center;
  gap: 8px;
}

.user-mail-rights-head {
  padding: 0 12px 10px;
}

.user-mail-rights-head h3,
.user-mail-rights-head p {
  margin: 0;
}

.user-mail-rights-head p {
  margin-top: 3px;
  color: var(--muted);
  font-size: .82rem;
}

.user-mail-rights-head > div:last-child {
  display: contents;
}

.user-mail-rights-head > div:last-child span {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 750;
  text-align: center;
}

.user-mail-right-row {
  min-height: 64px;
  padding: 8px 12px;
  border-top: 1px solid #e7ecea;
}

.user-mail-right-row > div:first-child {
  display: grid;
  gap: 2px;
}

.user-mail-right-row small {
  color: var(--muted);
}

.user-mail-right-toggle {
  justify-content: center;
  min-height: 42px;
  padding: 6px;
  border-color: transparent;
  background: transparent;
}

.user-mail-right-toggle > span:first-child {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.user-mail-rights > .field-hint {
  display: block;
  margin: 10px 12px 0;
}

@media (max-width: 820px) {
  .user-mail-rights-head {
    display: block;
  }

  .user-mail-rights-head > div:last-child {
    display: none;
  }

  .user-mail-right-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .user-mail-right-row > div:first-child {
    grid-column: 1 / -1;
    padding-bottom: 5px;
  }

  .user-mail-right-toggle {
    justify-content: space-between;
    padding: 8px 10px;
    border-color: #edf2f1;
    background: #fbfdfd;
  }

  .user-mail-right-toggle > span:first-child {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
  }
}

.system-integration-panel {
  max-width: 900px;
  margin-top: 16px;
}

.system-integration-panel .muted-text {
  max-width: 720px;
  margin: 0 0 16px;
}

.checkin-stat-grid>div small{color:var(--muted);font-size:.7rem;line-height:1.3}
.checkin-manual-attendance{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;padding:18px 20px;border:1px solid #cfdad5;border-left:4px solid var(--accent);border-radius:7px;background:#f5f8f6;box-shadow:var(--shadow-soft)}
.checkin-manual-attendance h2,.checkin-manual-attendance p{margin:0}.checkin-manual-attendance h2{margin:3px 0 5px;font-size:1.12rem}.checkin-manual-attendance p{max-width:690px;color:var(--muted);font-size:.84rem}
.checkin-manual-attendance form{display:flex;align-items:end;gap:9px;flex:0 0 auto}.checkin-manual-attendance label{display:grid;gap:5px;color:var(--muted);font-size:.72rem;font-weight:750}.checkin-manual-attendance input{width:120px;background:#fff}
@media(max-width:760px){.checkin-manual-attendance{align-items:stretch;flex-direction:column}.checkin-manual-attendance form{align-items:stretch}.checkin-manual-attendance label{flex:1}.checkin-manual-attendance input{width:100%}}
.event-card-badges{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:5px;flex:0 0 auto}.event-card-head .event-card-badges small{flex:0 0 auto}.event-card-head .event-card-badges .is-web{border-color:#b8d5cc;color:#276c59;background:#eaf4f0}.event-card-head .event-card-badges .is-web::before{content:"";display:inline-block;width:5px;height:5px;margin-right:4px;border-radius:50%;background:#2f8068;vertical-align:1px}
/* Reservierungssteuerung und öffentliche Mietanfragen */
.no-show-label,.inquiry-label{display:inline-flex;align-items:center;padding:3px 7px;border-radius:4px;font-size:10px;font-weight:850;text-transform:uppercase}.no-show-label{color:#9f2e28;background:#fde6e3}.inquiry-label{color:#805b12;background:#fff0c9}.badge.is-no-show{color:#9f2e28;border-color:#e8aaa5;background:#fff0ee}.reservation-admin-panel{display:grid;gap:14px;margin:18px 0;padding:18px;border:1px solid #dce3e0;border-left:4px solid #d19b32;background:#f8faf9}.reservation-admin-panel h3{margin:2px 0 0;font-size:18px}.reservation-admin-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.reservation-admin-actions form{display:flex;gap:8px;align-items:flex-end}.reservation-expiry-form label{display:grid;gap:5px;color:#617076;font-size:12px;font-weight:750}.reservation-expiry-form input{min-width:210px}.reservation-no-show-form input{min-width:180px}.rental-inquiry-reference{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:18px 0;padding:14px 16px;border-left:4px solid #d19b32;background:#fff8e6}.rental-inquiry-reference span{color:#7e641e;font-size:12px;font-weight:800;text-transform:uppercase}.rental-inquiry-reference strong{justify-self:end}.rental-inquiry-reference small{grid-column:1/-1;color:#756e5d}.rental-settlement-intro>.link-button{align-self:center}
@media(max-width:700px){.reservation-admin-actions,.reservation-admin-actions form{align-items:stretch;flex-direction:column}.reservation-expiry-form input,.reservation-no-show-form input{min-width:0;width:100%}}
/* Tasks created from mailbox follow-ups */
.task-mail-link {
  display: grid;
  gap: 2px;
  padding: 8px 10px;
  border-left: 3px solid #c9822f;
  color: var(--ink);
  background: #fff8ed;
  font-size: .76rem;
  font-weight: 700;
  text-decoration: none;
}

.task-mail-link span {
  color: #8a5d21;
  font-size: .64rem;
  font-weight: 850;
  text-transform: uppercase;
}

.task-mail-link:hover {
  background: #fff1dc;
}

.task-mail-source {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  padding: 12px 14px;
  border-left: 3px solid #c9822f;
  background: #fff8ed;
}

.task-mail-source > div {
  display: grid;
  gap: 2px;
}

.task-mail-source span {
  color: #8a5d21;
  font-size: .68rem;
  font-weight: 850;
  text-transform: uppercase;
}

.task-mail-source strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.task-mail-source .secondary-button {
  flex: 0 0 auto;
}

@media (max-width: 620px) {
  .task-mail-source {
    align-items: stretch;
    flex-direction: column;
  }

  .task-mail-source .secondary-button {
    width: 100%;
  }
}
/* System data retention */
.system-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 18px; }
.system-grid .panel { margin: 0; }
.retention-panel { margin-top: 18px; overflow: hidden; }
.retention-header { align-items: center; gap: 24px; }
.retention-header p { margin: 5px 0 0; color: #68777b; }
.retention-summary { display: grid; min-width: 190px; padding: 12px 15px; border-left: 3px solid #21856f; background: #eef5f2; }
.retention-summary span, .retention-summary small { color: #66777d; }
.retention-summary strong { color: #233239; font-size: 1.9rem; }
.retention-form { margin-top: 16px; }
.retention-toggle { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 14px 16px; border: 1px solid #d8e1df; border-radius: 7px; background: #f7f9f8; cursor: pointer; }
.retention-toggle span { display: grid; gap: 3px; }
.retention-toggle small { color: #66777d; }
.retention-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.retention-toggle i { position: relative; flex: 0 0 48px; width: 48px; height: 26px; border-radius: 14px; background: #a7b2b4; transition: background .18s ease; }
.retention-toggle i::after { content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 5px rgba(0,0,0,.2); transition: transform .18s ease; }
.retention-toggle input:checked + i { background: #21856f; }
.retention-toggle input:checked + i::after { transform: translateX(22px); }
.retention-toggle input:focus-visible + i { outline: 3px solid rgba(33,133,111,.25); outline-offset: 2px; }
.retention-list { display: grid; margin-top: 14px; border: 1px solid #d8e1df; border-radius: 7px; overflow: hidden; }
.retention-list article { display: grid; grid-template-columns: 100px minmax(0,1fr) auto; align-items: center; gap: 16px; min-height: 86px; padding: 12px 16px; border-bottom: 1px solid #e3e9e7; background: #fff; }
.retention-list article:last-child { border-bottom: 0; }
.retention-list h3 { margin: 0; color: #233239; font-size: 1rem; }
.retention-list p { margin: 4px 0 0; color: #66777d; font-size: .86rem; }
.retention-count { display: grid; padding-right: 14px; border-right: 1px solid #e1e7e5; color: #78878a; }
.retention-count.has-items { color: #a45600; }
.retention-count strong { font-size: 1.5rem; }
.retention-count span { font-size: .72rem; text-transform: uppercase; }
.retention-list label { display: flex; align-items: center; gap: 7px; color: #596a6e; font-size: .82rem; font-weight: 700; white-space: nowrap; }
.retention-list input { width: 82px; min-height: 40px; }
.retention-actions { display: flex; justify-content: flex-end; margin-top: 12px; }
.retention-run-form { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin: 18px -24px -24px; padding: 16px 24px; border-top: 1px solid #d8e1df; background: #edf3f1; }
.retention-run-form div { display: grid; gap: 3px; }
.retention-run-form span { color: #66777d; font-size: .85rem; }
.retention-run-form button:disabled { opacity: .45; cursor: not-allowed; }
@media (max-width: 980px) {
  .system-grid { grid-template-columns: 1fr; }
  .retention-list article { grid-template-columns: 82px minmax(0,1fr); }
  .retention-list label { grid-column: 2; }
}
@media (max-width: 680px) {
  .rental-contact-picker { grid-template-columns: 1fr; }
  .rental-contact-picker .compact-button { width: 100%; }
  .retention-header, .retention-run-form { align-items: stretch; flex-direction: column; }
  .retention-summary { min-width: 0; }
  .retention-list article { grid-template-columns: 68px minmax(0,1fr); gap: 10px; padding: 12px; }
  .retention-run-form { margin-left: -16px; margin-right: -16px; margin-bottom: -16px; padding: 15px 16px; }
}