:root {
  --bg: #f4f6f8;
  --surface: #fff;
  --ink: #17212b;
  --muted: #647180;
  --line: #dce2e8;
  --brand: #155e75;
  --brand-dark: #0e4b5f;
  --accent: #f4a261;
  --danger: #b42318;
  --success: #18794e;
  --organization-primary: #0e4b5f;
  --organization-accent: #f3a85f;
  --organization-page: #f4f7f8;
  --organization-surface: #fff;
  --organization-field: #fff;
  --organization-field-ink: #172b34;
  --organization-text: var(--ink);
  --organization-surface-ink: #172b34;
  --organization-page-ink: #172b34;
  --organization-hero-text: #fff;
  --organization-primary-ink: #fff;
  --organization-accent-ink: #302017;
  --organization-logo-background: transparent;
  --radius: 14px;
  --shadow: 0 12px 35px rgba(23, 33, 43, .08);
  color: var(--ink);
  background: var(--bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Activity receipts: one reusable visual language for every project module. */
.has-unread-activity {
    position: relative;
    border-color: #ff2ebd !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, #ff2ebd 62%, transparent), var(--shadow, 0 12px 30px rgba(0, 0, 0, .12));
}

.activity-eye {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    width: max-content;
    margin-inline-start: .35rem;
    padding: .18rem .45rem;
    border-radius: 999px;
    background: #b00079;
    color: #fff;
    font-size: .76rem;
    font-weight: 800;
    line-height: 1.2;
}

.activity-zone-list {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-block: .65rem;
}

.activity-zone-list span {
    padding: .2rem .5rem;
    border-radius: 999px;
    background: color-mix(in srgb, #ff2ebd 16%, var(--surface, #fff));
    color: var(--text-color, #1d1d25);
    font-size: .78rem;
    font-weight: 700;
}

.has-unread-zone {
    border-color: #ff2ebd !important;
    box-shadow: inset 0 0 0 1px #ff2ebd;
}

.project-readership {
    margin-block: 1rem;
}

.project-readership > summary {
    cursor: pointer;
}

.project-readership > summary span {
    display: grid;
    gap: .2rem;
}

.project-view-totals,
.project-readership-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .75rem;
    margin-block: 1rem;
}

.project-view-totals span,
.project-readership-list article {
    padding: .8rem;
    border: 1px solid var(--border-color, #ddd);
    border-radius: var(--radius-small, 10px);
    background: var(--surface-soft, #f7f7fa);
}

.project-readership-list h3,
.project-readership-list p {
    margin: 0 0 .35rem;
}

.workspace-audience-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .45rem 1rem;
    margin-block: 1rem;
}

.workspace-audience-summary small {
    flex-basis: 100%;
    color: var(--muted-color, #626272);
}

/* Theme-safe project planning and calendar surfaces. Keep future modules on
   these semantic tokens instead of introducing white/grey literals. */
.public-portal .agenda-section,
.public-portal .task-timeline,
.public-portal .day-schedule,
.public-portal .kanban-column,
.public-portal .task-card,
.public-portal .event-detail,
.public-portal .event-detail-body,
.public-portal .event-detail .card,
.public-portal .calendar-month,
.public-portal .calendar-day,
.public-portal .calendar-event-popover {
    color: var(--organization-text);
}

.public-portal .task-card,
.public-portal .event-detail,
.public-portal .event-detail .card,
.public-portal .calendar-month,
.public-portal .calendar-event-popover {
    background: var(--surface);
    border-color: var(--line);
}

.public-portal .kanban-column,
.public-portal .day-schedule,
.public-portal .calendar-day {
    background: var(--surface-soft);
    border-color: var(--line);
}

.public-portal .calendar-day.has-events,
.public-portal .calendar-item,
.public-portal .reservation-preview-offers span {
    color: var(--organization-text);
    background: var(--surface-selected);
    border-color: color-mix(in srgb, var(--organization-primary) 55%, var(--line));
}

.public-portal .calendar-item:hover,
.public-portal .calendar-item:focus-visible {
    color: var(--organization-text);
    background: color-mix(in srgb, var(--organization-primary) 30%, var(--surface));
}

.public-portal :is(.calendar-item span, .calendar-day-number, .event-row p, .event-detail .muted, .event-detail small, .task-card small, .day-schedule-task small) {
    color: var(--muted);
}

.public-portal .event-detail-body .portal-header {
    color: var(--organization-text);
    background: transparent;
}

.public-portal .event-lead,
.public-portal .question-body {
    color: var(--organization-text);
}

.public-portal .task-timeline {
    gap: .7rem;
    padding: .9rem;
    overflow: visible;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface-soft);
}

.public-portal .task-timeline-row {
    grid-template-columns: minmax(11rem, 15rem) minmax(0, 1fr);
    min-width: 0;
    gap: 1rem;
}

.public-portal .task-timeline-row > span {
    color: var(--organization-text);
    font-size: .92rem;
    line-height: 1.25;
    white-space: normal;
}

.public-portal .task-timeline-track {
    min-width: 0;
    min-height: 2.35rem;
    border: 1px solid var(--line);
    background: color-mix(in srgb, var(--organization-text) 9%, var(--surface));
}

.public-portal .task-timeline-popover {
    inset-block: .3rem;
}

.public-portal .task-timeline-bar {
    min-height: 1.7rem;
    padding: .35rem .7rem;
    font-size: .78rem;
    font-weight: 800;
}

.public-portal .task-timeline-tooltip {
    color: var(--organization-text);
    background: var(--surface);
    border-color: var(--line);
}

.public-portal .task-timeline-tooltip a {
    color: var(--brand);
    font-weight: 800;
}

.public-portal .task-coverage-legend {
    margin: 0 0 1.2rem;
    color: var(--organization-page-ink);
    font-size: .82rem;
}

.public-portal .kanban {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
    gap: 1rem;
}

.public-portal .kanban-column {
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--line);
}

.public-portal .kanban-column > h3 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding-bottom: .65rem;
    margin: 0 0 .75rem;
    border-bottom: 2px solid var(--line);
    color: var(--organization-text);
    font-size: 1.05rem;
}

.public-portal .kanban-column > h3 small {
    display: grid;
    min-width: 1.8rem;
    height: 1.8rem;
    padding-inline: .35rem;
    place-items: center;
    border-radius: 999px;
    color: var(--organization-text);
    background: var(--surface-selected);
}

.public-portal .task-card {
    gap: .55rem;
    padding: 1rem;
    margin-top: .75rem;
    border: 1px solid var(--line);
    box-shadow: 0 5px 16px color-mix(in srgb, var(--organization-text) 10%, transparent);
}

.public-portal .task-card > strong {
    color: var(--organization-text);
    font-size: 1rem;
    line-height: 1.3;
}

.public-portal .task-card p {
    color: var(--muted);
    line-height: 1.45;
}

.public-portal .task-card :is(.task-management, .task-people, .task-journal) > summary {
    padding: .45rem .55rem;
    border-radius: .45rem;
    color: var(--organization-text);
    background: var(--surface-soft);
}

.public-portal .task-card select,
.public-portal .task-card input,
.public-portal .task-card textarea {
    color: var(--field-text, var(--organization-text));
    background: var(--field-background, var(--surface));
    border-color: var(--line);
}

@media (max-width: 720px) {
    .public-portal .task-timeline {
        padding: .65rem;
    }

    .public-portal .task-timeline-row {
        display: grid;
        grid-template-columns: 1fr;
        gap: .35rem;
    }

    .public-portal .task-timeline-track {
        width: 100%;
    }

    .public-portal .task-timeline-tooltip {
        right: 0;
        left: auto;
        width: min(21rem, calc(100vw - 3rem));
        min-width: 0;
    }

    .public-portal .kanban {
        grid-template-columns: 1fr;
    }

    .public-portal .event-detail-body {
        padding: 1rem;
    }

    .public-portal .event-modules {
        grid-template-columns: 1fr;
    }
}

.legal-document > header,
.reservation-rescheduled {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.legal-copy {
  line-height: 1.65;
  white-space: normal;
}

.legal-editor textarea {
  min-height: 22rem;
}

.legal-version-list {
  display: grid;
  gap: .65rem;
}

.legal-document-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.legal-version-list > div,
.reservation-rescheduled {
  padding: .8rem 1rem;
  border: 1px solid var(--border-color, #dfe5ec);
  border-radius: .75rem;
}

.legal-version-list small,
.reservation-rescheduled span {
  display: block;
  color: var(--muted-color, #667085);
}

.reservation-rescheduled {
  margin-top: .8rem;
  flex-direction: column;
  color: var(--organization-surface-ink, var(--ink));
  background: color-mix(in srgb, #f4a261 18%, var(--surface));
}

.reservation-terms {
  margin: 1rem 0;
  padding: .8rem 1rem;
  border-radius: .75rem;
  color: var(--organization-surface-ink, var(--ink));
  background: var(--surface-soft, #f7f9fc);
}

.reservation-terms .legal-copy {
  max-height: 18rem;
  margin-top: .8rem;
  padding-right: .5rem;
  overflow: auto;
}

.reservation-terms-accept {
  margin: 1rem 0;
}

.room-plan-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; }
.room-plan-workspace { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 1rem; align-items: start; }
.room-plan-tools { display: grid; gap: .8rem; position: sticky; top: 1rem; }
.room-plan-tool-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; }
.room-plan-tool-grid button { padding: .65rem; border: 1px solid var(--line); border-radius: .65rem; color: var(--organization-field-ink, var(--ink)); background: var(--organization-field, var(--surface)); cursor: pointer; }
.room-plan-scroll { padding: 1rem; overflow: auto; background: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 10%, var(--surface)); }
.room-plan-canvas { position: relative; min-width: 320px; min-height: 320px; overflow: hidden; border-radius: .7rem; color: #17212b; background-color: #fff; background-image: linear-gradient(#e6ebf0 1px, transparent 1px), linear-gradient(90deg, #e6ebf0 1px, transparent 1px); background-size: 20px 20px; box-shadow: inset 0 0 0 1px #ccd5df; touch-action: none; color-scheme: light; }
.room-plan-item { position: absolute; display: grid; align-content: center; min-width: 20px; min-height: 20px; padding: .3rem; overflow: visible; border: 2px solid #5d7485; border-radius: .65rem; background: #fff; color: #17212b; text-align: center; cursor: move; touch-action: none; }
.room-plan-item small { position: absolute; right: .2rem; bottom: .1rem; font-size: .6rem; font-weight: 500; }
.room-plan-item.is-selected { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(21, 94, 117, .2); }
.room-plan-item.is-zone { z-index: 1; border-style: dashed; background: color-mix(in srgb, var(--zone-color, #dbeafe) 45%, transparent); }
.room-plan-item.is-table { z-index: 2; overflow: hidden; border-color: transparent; background: transparent; }
.room-plan-item.is-table.is-selected { border-color: var(--brand); }
.room-plan-item.is-table::before { position: absolute; z-index: 0; inset: 0; border: 2px solid #73808c; border-radius: .5rem; background: #cfd4d9; content: ''; }
.room-plan-item.is-table.is-client-reservable::before { border-color: #7aa8c5; background: #cfe9f7; }
.room-plan-item.is-table.is-organizer-only::before { border-color: #58636d; background: #9ba5ad; }
.room-plan-item.is-table.is-round::before { inset: 0; border-radius: 50%; }
.room-plan-item.is-table > strong { position: absolute; z-index: 2; inset: 30% 13%; display: grid; place-items: center; overflow: visible; color: #20262d; font-size: clamp(.68rem, 1.7vw, 1rem); line-height: 1.05; }
.room-plan-seat-preview { position: absolute; z-index: 3; inset: .15rem; display: grid; grid-template-columns: repeat(var(--seat-columns), 1fr); grid-template-rows: repeat(var(--seat-rows), 1fr); align-items: center; justify-items: center; }
.room-plan-seat-preview i { display: grid; width: 1.2rem; height: 1.2rem; place-items: center; border: 1px solid #7c8791; border-radius: 50%; background: #eef1f4; color: #20262d; font-size: .6rem; font-style: normal; }
.room-plan-item.is-round .room-plan-seat-preview i { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(calc(360deg / var(--seat-count) * var(--seat-index))) translateY(-2.35em) rotate(calc(-360deg / var(--seat-count) * var(--seat-index))); transform-origin: center; }
.room-plan-table-builder { display: grid; gap: .55rem; padding: .75rem; border: 1px solid var(--line); border-radius: .75rem; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-soft, #f8fafc); }
.room-plan-item.is-stage { background: #efe4ff; }
.room-plan-item.is-obstacle { background: #e1e6eb; }
.room-plan-item.is-label { border-style: dashed; background: #fffbe8; }
.room-plan-item.is-background { z-index: 0; padding: 0; overflow: hidden; border-style: dashed; background: rgba(255,255,255,.35); }
.room-plan-item.is-background img { width: 100%; height: 100%; object-fit: fill; pointer-events: none; user-select: none; }
.room-plan-item.is-background strong { position: absolute; top: .25rem; left: .25rem; padding: .15rem .35rem; border-radius: .35rem; background: rgba(255,255,255,.82); font-size: .7rem; }
.room-plan-resize-handle { position: absolute; z-index: 8; right: -.35rem; bottom: -.35rem; width: 1rem; height: 1rem; border: 2px solid #fff; border-radius: 50%; background: var(--brand); box-shadow: 0 1px 4px rgba(15, 23, 42, .35); cursor: nwse-resize; touch-action: none; }
.room-plan-zone-membership { margin: 0; padding: .55rem .7rem; border-radius: .55rem; background: #eef6ff; color: #234d69; font-size: .85rem; font-weight: 700; }
.room-plan-actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: flex-end; }
@media (max-width: 800px) { .room-plan-workspace { grid-template-columns: 1fr; } .room-plan-tools { position: static; } .room-plan-scroll { max-height: 65vh; } }
.reservation-seat-picker { margin: 1rem 0; }
.reservation-zone-choice { display: flex; gap: .65rem; align-items: center; justify-content: space-between; margin: .65rem 0; padding: .65rem .8rem; border: 1px solid color-mix(in srgb, var(--organization-primary) 45%, var(--line)); border-radius: .7rem; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-selected, #eef8ff); }
.reservation-price-summary { margin: .65rem 0; font-weight: 800; }
.reservation-room-plan { position: relative; width: 100%; aspect-ratio: auto; padding-bottom: var(--plan-ratio); overflow: hidden; border: 1px solid var(--line); border-radius: .8rem; color: #17212b; background: #f8fafc; color-scheme: light; }
.reservation-room-plan[data-room-plan] { --view-zoom: 1; aspect-ratio: var(--plan-aspect); padding-bottom: 0; flex: 0 0 auto; }
.reservation-room-plan[data-room-plan] .placement-seat { width: calc(1.35rem * var(--view-zoom)); height: calc(1.35rem * var(--view-zoom)); border-width: calc(2px * var(--view-zoom)); font-size: calc(.65rem * var(--view-zoom)); }
.reservation-room-plan-viewport { max-height: min(78vh, 900px); overflow: auto; border-radius: .8rem; overscroll-behavior: contain; }
.room-plan-view-controls { display: flex; align-items: center; justify-content: flex-end; gap: .35rem; margin: 0 0 .55rem; }
.room-plan-view-controls > span { margin-right: .25rem; color: var(--muted); font-size: .82rem; font-weight: 700; }
.room-plan-view-controls button { display: grid; min-width: 2.35rem; min-height: 2.35rem; padding: .35rem .55rem; place-items: center; border: 1px solid var(--line); border-radius: .55rem; background: var(--surface); color: var(--brand-dark); font-weight: 800; cursor: pointer; }
.room-plan-view-controls button:disabled { opacity: .4; cursor: default; }
.room-plan-view-controls .room-plan-zoom-value { min-width: 4.25rem; }
.reservation-room-item { position: absolute; display: grid; align-content: center; padding: .2rem; overflow: hidden; border: 1px solid #8ca0ad; border-radius: .5rem; background: #fff; color: #17212b; text-align: center; font-size: clamp(.6rem, 1.5vw, .9rem); }
.reservation-room-item.is-table { overflow: visible; border-color: transparent; background: transparent; }
.reservation-room-item.is-table::before { position: absolute; z-index: 0; inset: 0; border: 2px solid #73808c; border-radius: .45rem; background: #cfd4d9; content: ''; }
.reservation-room-item.is-table[data-table-label]::after { position: absolute; z-index: 20; bottom: calc(100% + .45rem); left: 50%; padding: .38rem .6rem; color: #fff; background: #102a36; border-radius: .45rem; box-shadow: 0 5px 16px rgba(15, 23, 42, .28); content: attr(data-table-label); font-size: .82rem; font-weight: 850; line-height: 1; opacity: 0; pointer-events: none; transform: translate(-50%, .2rem); transition: opacity .12s ease, transform .12s ease; white-space: nowrap; }
.reservation-room-item.is-table[data-table-label]:hover::after, .reservation-room-item.is-table[data-table-label]:focus-within::after { opacity: 1; transform: translate(-50%, 0); }

/* Tenant device fleet */
.device-fleet-page { display: grid; gap: 1rem; }
.device-fleet-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.device-fleet-summary .card { display: grid; gap: .15rem; padding: 1rem; }
.device-fleet-summary strong { color: var(--color-primary, #155e75); font-size: clamp(1.45rem, 3vw, 2rem); }
.device-fleet-summary span { color: #64748b; font-size: .83rem; }
.terrain-release-card { display: grid; gap: 1.25rem; }
.terrain-release-variants { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.terrain-release-variant { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1rem; border: 1px solid #dbe4ea; border-radius: .8rem; background: #f8fafc; }
.terrain-release-variant.is-stripe { border-color: #c4b5fd; background: #faf7ff; }
.terrain-release-variant h3 { margin: .15rem 0; }
.terrain-release-card figure { margin: 0; text-align: center; }
.terrain-release-card figure img { display: block; max-width: 100%; border-radius: 1rem; }
.terrain-release-card figcaption { margin-top: .35rem; color: #64748b; font-size: .78rem; }
.terrain-release-card code { display: block; overflow-wrap: anywhere; margin-top: .4rem; }
.device-update-notice { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .65rem .85rem; background: #fff4cc; color: #654d00; }
.device-about { margin-top: .75rem; color: #64748b; font-size: .78rem; }
.device-about summary { cursor: pointer; font-weight: 750; }
.device-about p { margin: .5rem 0 .2rem; }
.production-station-create { padding: 1rem 0; }
.production-station-create form { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(10rem, .65fr) auto; align-items: end; gap: .7rem; }
.production-station-create label { display: grid; gap: .3rem; }
.production-station-settings { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: .65rem; margin-bottom: 1rem; }
.production-station-settings details { padding: .75rem; }
.production-station-settings summary { display: flex; align-items: center; justify-content: space-between; gap: .5rem; cursor: pointer; }
.production-station-settings summary > span:first-child { display: flex; align-items: center; gap: .5rem; }
.production-station-settings form { display: grid; gap: .65rem; margin-top: .75rem; }
.production-station-actions { display: flex; justify-content: flex-end; }
.production-filter-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; padding-top: .65rem; }
.production-filter-grid fieldset { display: grid; align-content: start; gap: .35rem; }
.production-filter-grid label { display: flex; align-items: center; gap: .4rem; font-weight: 500; }
.production-matrix-scroll { overflow: auto; border: 1px solid var(--line); border-radius: .75rem; }
.production-matrix { width: 100%; min-width: max-content; border-collapse: collapse; }
.production-matrix th, .production-matrix td { height: 3.25rem; padding: .45rem .6rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: center; }
.production-matrix thead th { position: sticky; z-index: 2; top: 0; min-width: 9.5rem; color: #eef6f8; background: #27363d; }
.production-matrix thead th:first-child { z-index: 3; left: 0; min-width: 17rem; }
.production-matrix thead small { display: block; margin-top: .15rem; color: #b8c9cf; font-weight: 500; }
.production-matrix tbody th { position: sticky; z-index: 1; left: 0; min-width: 17rem; background: #fff; text-align: left; }
.production-matrix tbody td { min-width: 9.5rem; background: #fbfcfc; }
.production-family-row th { font-weight: 800; }
.production-family-row button { display: flex; align-items: center; gap: .45rem; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.production-family-row button span { display: grid; width: 1.45rem; height: 1.45rem; place-items: center; border: 2px solid #06a8bb; border-radius: 50%; color: #0694a5; font-weight: 900; }
.production-family-label { padding-left: 1.9rem; }
.production-product-row th { padding-left: 3rem; font-weight: 500; }
.production-product-row[hidden] { display: none; }
.production-matrix select { width: 100%; min-width: 5.5rem; padding: .38rem .45rem; border: 1px solid transparent; background: transparent; color: #0798aa; font-weight: 800; text-align: center; cursor: pointer; }
.production-matrix select:focus { border-color: #06a8bb; background: #ecfeff; outline: 0; }
.production-matrix-save { position: sticky; z-index: 4; bottom: .5rem; display: flex; align-items: center; justify-content: flex-end; gap: 1rem; margin-top: .75rem; padding: .65rem; border: 1px solid var(--line); border-radius: .7rem; background: rgba(255, 255, 255, .94); box-shadow: 0 8px 24px rgba(15, 23, 42, .12); }
.production-matrix-save span { margin-right: auto; color: var(--muted); font-size: .8rem; }
.sales-receipt-components { display: grid; gap: .1rem; margin-top: .3rem; padding-left: .55rem; border-left: 2px solid var(--line); color: var(--muted); font-weight: 500; }
.sales-menu-new-product { margin: .7rem 0; padding: .75rem; border: 1px solid var(--line); border-radius: .7rem; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-soft, var(--organization-surface, var(--surface))); }
.sales-menu-new-product > div { display: grid; grid-template-columns: minmax(12rem, 1.5fr) repeat(3, minmax(8rem, 1fr)); gap: .65rem; }
.sales-menu-new-product label { display: grid; gap: .25rem; }
@media (max-width: 760px) { .sales-menu-new-product > div { grid-template-columns: 1fr; } }
.device-pairing-secret { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1.25rem; border: 2px solid #0f766e; background: #f0fdfa; }
.device-pairing-secret > img { width: min(18rem, 100%); height: auto; padding: .5rem; border: 1px solid #99f6e4; border-radius: .75rem; background: #fff; }
.device-pairing-secret code { display: block; overflow-wrap: anywhere; padding: .65rem; border-radius: .55rem; background: #ccfbf1; color: #134e4a; }
.device-pairing-scan-message { min-height: 1.35rem; margin: .6rem 0 0; color: #166534; font-weight: 700; }
.device-pairing-scan-message.is-error { color: #b91c1c; }
.device-launcher-assignments button > span { margin-left: auto; color: #475569; font-size: .76rem; font-weight: 800; }
.device-launcher-assignments button.is-selected > span { color: #166534; }
.device-launcher-assignments button[aria-busy="true"] { opacity: .72; cursor: wait; }
.device-seller-unlock { scroll-margin-top: 1rem; }
.device-seller-dialog { width: min(92vw, 32rem); padding: 1.2rem; border: 0; border-radius: 1rem; color: #0f172a; box-shadow: 0 24px 70px rgb(0 0 0 / 45%); }
.device-seller-dialog::backdrop { background: rgb(3 15 24 / 82%); }
.device-seller-dialog.is-dialog-fallback { display: block; position: fixed; inset: 1rem; z-index: 1000; max-height: calc(100vh - 2rem); margin: auto; overflow: auto; }
.device-seller-dialog h2, .device-seller-dialog p { margin-top: .35rem; }
.device-seller-dialog-close { display: flex; justify-content: flex-end; }
.device-seller-dialog-close button { width: 2.5rem; height: 2.5rem; border: 0; border-radius: 50%; background: #e2e8f0; font-size: 1.5rem; cursor: pointer; }
.device-seller-dialog-form { display: grid; gap: .8rem; margin-top: 1rem; }
.device-seller-dialog-form label { display: grid; gap: .3rem; font-weight: 750; }
.device-seller-dialog-form input, .device-seller-dialog-form select, .device-seller-dialog-form button { min-height: 3rem; }
.device-seller-badge { display: grid; gap: .65rem; margin-top: 1rem; padding: .9rem; border: 1px solid #cbdde5; border-radius: .9rem; background: #f4fafb; }
.device-seller-badge h2,.device-seller-badge h3,.device-seller-badge p { margin: 0; }
.device-seller-badge form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: .55rem; }
.device-seller-badge label { display: grid; gap: .25rem; font-weight: 750; }
.sales-unlock .device-seller-badge form { grid-template-columns: 1fr; }
.device-seller-camera { position: relative; overflow: hidden; border-radius: .8rem; background: #000; }
.device-seller-camera video { display: block; width: 100%; max-height: 42vh; object-fit: cover; }
.device-seller-camera button { position: absolute; right: .5rem; bottom: .5rem; }
.device-seller-manual { margin-top: .8rem; padding: .75rem; border: 1px solid #d7e1e5; border-radius: .8rem; }
.device-seller-manual > summary { cursor: pointer; font-weight: 800; }
.seller-badge-page { display: grid; min-height: 100vh; place-items: center; padding: 1rem; }
.seller-badge-sheet { width: min(100%, 30rem); text-align: center; }
.seller-badge-sheet figure { display: grid; justify-items: center; gap: .6rem; }
.seller-badge-sheet img { width: min(100%, 22rem); padding: .5rem; background: #fff; }
.seller-badge-sheet figcaption { display: grid; gap: .2rem; font-size: 1.2rem; }
.seller-badge-sheet figcaption small { color: var(--muted); font-size: .78rem; }
.seller-badge-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem; }
@media (max-width: 600px) { .device-seller-badge form { grid-template-columns: 1fr; } }
@media print { body:has(.seller-badge-page) > :not(.seller-badge-page) { display: none !important; } .seller-badge-page { min-height: auto; padding: 0; } .seller-badge-sheet { border: 0; box-shadow: none; } .seller-badge-actions,.seller-badge-sheet > .muted { display: none; } }
.device-receipt-print-prompt{width:min(92vw,30rem);padding:0;border:0;border-radius:1.1rem;color:#17212b;background:#fff;box-shadow:0 24px 70px rgb(0 0 0/45%)}
.device-receipt-print-prompt::backdrop{background:rgb(3 15 24/78%)}
.device-receipt-print-prompt form{display:grid;gap:.7rem;padding:1.4rem}.device-receipt-print-prompt :is(h2,p){margin:0}.device-receipt-print-prompt .eyebrow{color:#6d28d9}
.device-receipt-print-prompt-actions{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:.55rem}.device-receipt-print-prompt-actions .button{min-height:3.25rem}
@media(max-width:480px){.device-receipt-print-prompt-actions{grid-template-columns:1fr}.device-receipt-print-prompt-actions .button-primary{grid-row:1}}
.device-create-panel > summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; }
.device-create-panel > summary span:first-child { display: grid; gap: .2rem; }
.device-create-panel > summary small { color: #64748b; font-weight: 500; }
.device-create-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); align-items: end; gap: .75rem; margin-top: 1rem; }
.profile-assigned-devices { overflow: hidden; }
.profile-assigned-devices[open] { display: grid; gap: 1rem; }
.profile-terrain-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; }
.profile-terrain-header::-webkit-details-marker { display: none; }
.profile-terrain-header :is(h2, p) { margin-bottom: .25rem; }
.profile-terrain-summary-meta { display: flex; align-items: center; gap: .55rem; }
.profile-terrain-chevron { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; color: var(--organization-primary, var(--brand)); background: var(--surface-soft); font-size: 1.2rem; font-weight: 900; transition: transform .18s ease; }
.profile-assigned-devices[open] .profile-terrain-chevron { transform: rotate(180deg); }
.profile-collapsible { overflow: hidden; }
.profile-collapsible-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; }
.profile-collapsible-summary::-webkit-details-marker { display: none; }
.profile-collapsible-summary > span:first-child { display: grid; gap: .15rem; }
.profile-collapsible-summary .eyebrow { margin: 0; }
.profile-collapsible-summary small { color: var(--muted); font-weight: 500; }
.profile-collapsible[open] .profile-terrain-chevron { transform: rotate(180deg); }
.profile-collapsible-content { display: grid; gap: .75rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.profile-collapsible-content :is(p, .subscription-actions) { margin: 0; }
.profile-device-step { display: grid; flex: 0 0 auto; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: 50%; color: #fff; background: var(--organization-primary, var(--brand)); font-size: .78rem; font-weight: 900; }
.profile-terrain-setup-heading { display: flex; align-items: center; gap: .75rem; padding: .85rem 1rem; border: 1px solid #cfe1e7; border-radius: .9rem; background: linear-gradient(135deg, #f1fafb, #f8fbfc); }
.profile-terrain-setup-heading > div { display: grid; gap: .15rem; }
.profile-terrain-setup-heading small { color: var(--muted); }
.profile-terrain-choice-notice { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .35rem .8rem; align-items: start; padding: .8rem .9rem; border: 1px solid #f4cf78; border-left: 4px solid #d99a16; border-radius: .75rem; color: #5f4310; background: #fff9e9; font-size: .84rem; line-height: 1.45; }
.profile-terrain-choice-notice strong { white-space: nowrap; }
.profile-terrain-choice-notice b { font-weight: 850; }
.profile-terrain-downloads { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.profile-terrain-download { display: grid; grid-template-rows: auto auto auto 1fr auto; justify-items: center; gap: .55rem; min-width: 0; padding: 1rem; border: 1px solid #d8e3e7; border-top: 4px solid var(--organization-primary, var(--brand)); border-radius: 1rem; background: #fff; box-shadow: 0 8px 24px rgb(15 23 42 / 6%); text-align: center; }
.profile-terrain-download.is-stripe { border-top-color: #635bff; }
.profile-terrain-download :is(h3, p, figure) { margin: 0; }
.profile-terrain-download header > div { display: grid; justify-items: center; gap: .3rem; }
.profile-terrain-download h3 { font-size: 1rem; }
.profile-terrain-download p { max-width: 30rem; color: #394b53; font-size: .88rem; line-height: 1.4; }
.profile-terrain-download-badge { width: fit-content; padding: .2rem .5rem; border-radius: 999px; color: var(--organization-primary, var(--brand)); background: var(--surface-soft); font-size: .68rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.profile-terrain-download.is-stripe .profile-terrain-download-badge { color: #4f46e5; background: #eef2ff; }
.profile-terrain-compatibility { min-height: 2.4em; color: var(--muted); font-size: .76rem; }
.profile-terrain-download figure { display: grid; justify-items: center; align-self: end; gap: .25rem; padding: .55rem; border: 1px solid #e0e7ea; border-radius: .8rem; background: #fff; }
.profile-terrain-download figure img { display: block; width: min(100%, 176px); height: auto; }
.profile-terrain-download figcaption { color: var(--muted); font-size: .72rem; font-weight: 700; }
.profile-terrain-download > .button { width: min(100%, 14rem); }
.profile-terrain-store-note { margin: -.15rem 0 0; color: var(--muted); font-size: .78rem; text-align: center; }
.profile-device-list { display: grid; gap: .65rem; }
.profile-device-list article { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem; border: 1px solid var(--line); border-radius: .85rem; background: var(--surface); box-shadow: 0 5px 16px rgb(15 23 42 / 5%); }
.profile-device-identity { display: flex; align-items: center; gap: .7rem; min-width: 0; }
.profile-device-identity > span:last-child { display: grid; gap: .15rem; min-width: 0; }
.profile-device-icon { display: grid; flex: 0 0 auto; width: 2.25rem; height: 2.25rem; place-items: center; border-radius: .65rem; color: var(--organization-primary, var(--brand)); background: var(--surface-soft); font-size: 1rem; }
.profile-device-pairing { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(12.5rem, 14rem); gap: 1rem; overflow: hidden; border-color: #b9d9de; background: linear-gradient(145deg, #fff, #f2fafb); }
.profile-device-pairing::before { position: absolute; inset: 0 auto 0 0; width: .3rem; content: ''; background: var(--organization-primary, var(--brand)); }
.profile-device-pairing-copy { display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; gap: .6rem .75rem; padding-left: .2rem; }
.profile-device-pairing-copy > :not(.profile-device-step, div:first-of-type) { grid-column: 1 / -1; }
.profile-device-pairing-copy :is(h2, p) { margin: 0; }
.profile-device-pairing-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .25rem; }
.profile-device-security { padding: .55rem .7rem; border-radius: .55rem; color: #52636b; background: rgb(255 255 255 / 72%); font-size: .78rem; }
.profile-device-pairing-qr { position: relative; display: grid; justify-items: center; gap: .55rem; margin: 0; padding: .8rem; border: 1px solid #d9e4e8; border-radius: 1rem; background: #fff; box-shadow: 0 10px 25px rgb(15 23 42 / 8%); text-align: center; }
.profile-device-pairing-qr .profile-device-step { position: absolute; top: .6rem; left: .6rem; }
.profile-device-pairing-qr img { display: block; width: min(100%, 188px); height: auto; padding: .3rem; border-radius: .65rem; background: #fff; }
.profile-device-pairing-qr figcaption { display: grid; gap: .18rem; line-height: 1.25; }
.profile-device-pairing-qr figcaption small { color: var(--muted); font-size: .75rem; }
.device-create-form label, .device-row-actions label { display: grid; gap: .3rem; }
.device-list { display: grid; gap: .65rem; margin-top: 1rem; }
.device-row { display: grid; grid-template-columns: minmax(17rem, 1.15fr) minmax(9.5rem, .55fr) minmax(31rem, 1.8fr); align-items: center; gap: 1rem; padding: .85rem; border: 1px solid #dbe4ea; border-left: 4px solid #94a3b8; border-radius: .75rem; background: #fff; }
.device-row.is-active { border-left-color: #16a34a; }
.device-row.is-suspended { border-left-color: #d97706; background: #fffbeb; }
.device-row.is-revoked { opacity: .68; border-left-color: #dc2626; }
.device-row-main { display: flex; align-items: center; gap: .8rem; min-width: 0; }
.device-row-main h3, .device-row-main p { margin: 0; }
.device-row-main small { display: block; overflow: hidden; color: #64748b; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.device-type-icon { display: grid; flex: 0 0 2.5rem; height: 2.5rem; place-items: center; border-radius: .65rem; background: #e0f2fe; color: #075985; font-size: 1.25rem; }
.device-row-state { display: grid; justify-items: start; gap: .3rem; }
.device-row-state small { color: #64748b; }
.status-pill { padding: .25rem .55rem; border-radius: 999px; background: #e2e8f0; font-size: .76rem; font-weight: 750; }
.status-pill.is-active { color: #166534; background: #dcfce7; }
.status-pill.is-suspended { color: #92400e; background: #fef3c7; }
@media (max-width: 700px) {
  .device-pairing-secret { grid-template-columns: 1fr; }
  .device-pairing-secret > img { justify-self: center; }
}
.status-pill.is-revoked { color: #991b1b; background: #fee2e2; }
.status-pill.is-pending { color: #1e40af; background: #dbeafe; }
.device-row-actions { display: grid; grid-template-columns: repeat(3, minmax(8.25rem, 1fr)); align-items: stretch; justify-content: end; gap: .45rem; min-width: 0; }
.device-row-actions > :is(form, details) { min-width: 0; margin: 0; }
.device-row-actions > form > .button, .device-row-actions > details > summary { display: grid; width: 100%; min-height: 3rem; padding: .48rem .58rem; place-items: center; line-height: 1.12; text-align: center; white-space: normal; }
.device-row-actions details { position: relative; }
.device-row-actions details > summary { cursor: pointer; list-style: none; }
.device-row-actions details > summary::-webkit-details-marker { display: none; }
.device-row-actions details > form { position: absolute; z-index: 10; top: calc(100% + .35rem); right: 0; display: grid; gap: .5rem; width: min(19rem, 80vw); padding: .7rem; border: 1px solid #cbd5e1; border-radius: .65rem; background: #fff; box-shadow: 0 12px 30px rgba(15, 23, 42, .18); }
.device-revoke > summary { border: 1px solid color-mix(in srgb, #dc2626 38%, var(--line)); border-radius: .55rem; color: #ef7777; background: color-mix(in srgb, #dc2626 7%, transparent); font-size: .8rem; font-weight: 750; }
.device-fiscal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: .65rem; margin-top: .8rem; }
.device-fiscal-grid article { display: grid; gap: .25rem; padding: .75rem; border: 1px solid #dbe4ea; border-radius: .65rem; background: #f8fafc; }
.device-fiscal-grid span { color: #64748b; font-size: .8rem; }
@media (max-width: 900px) {
  .device-fleet-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .terrain-release-variants { grid-template-columns: 1fr; }
  .production-station-create form, .production-filter-grid { grid-template-columns: 1fr; }
  .terrain-release-card figure { justify-self: center; }
  .device-create-form, .device-row { grid-template-columns: 1fr; }
  .device-row-actions { justify-content: flex-start; flex-wrap: wrap; }
  .device-row-actions details > form { right: auto; left: 0; }
}
@media (max-width: 1180px) and (min-width: 901px) {
  .device-row { grid-template-columns: minmax(17rem, 1fr) minmax(10rem, auto); align-items: start; }
  .device-row-actions { grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(8rem, 1fr)); }
}
@media (max-width: 520px) {
  .terrain-release-variant { grid-template-columns: 1fr; }
  .device-fleet-summary { grid-template-columns: 1fr 1fr; }
  .device-row { min-width: 0; gap: .65rem; }
  .device-row-main small { white-space: normal; }
  .device-row-actions { grid-template-columns: 1fr; }
}
@media (min-width: 521px) and (max-width: 900px) { .device-row-actions { grid-template-columns: repeat(2, minmax(8rem, 1fr)); } }

/* Standalone machine session: deliberately separate from member navigation. */
.device-shell { min-height: 100svh; display: grid; place-items: center; padding: clamp(1rem, 4vw, 3rem); background: radial-gradient(circle at top, #164e63, #07151d 65%); color: #e2e8f0; }
.device-auth-card, .device-launcher-card { width: min(100%, 38rem); padding: clamp(1.15rem, 4vw, 2rem); border: 1px solid rgba(148, 163, 184, .35); border-radius: 1rem; background: #fff; box-shadow: 0 24px 70px rgba(0, 0, 0, .32); color: #0f172a; }
.device-auth-card { text-align: center; }
.device-auth-card > p { color: #64748b; }
.device-auth-icon { display: grid; width: 3.5rem; height: 3.5rem; margin: 0 auto .8rem; place-items: center; border-radius: 1rem; background: #cffafe; color: #155e75; font-size: 1.7rem; }
.device-pairing-form { display: grid; gap: .8rem; margin-top: 1.2rem; text-align: left; }
.device-pairing-form label { display: grid; gap: .35rem; font-weight: 700; }
.device-pairing-form input { min-height: 3rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.device-auth-note { margin: 1rem 0 0; font-size: .8rem; }
.device-launcher-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.device-launcher-card h1, .device-launcher-card header p { margin: 0; }
.device-launcher-ready { display: flex; align-items: center; gap: 1rem; margin: 1.2rem 0; padding: 1rem; border-radius: .8rem; background: #ecfeff; }
.device-launcher-ready > span { font-size: 2.3rem; color: #0e7490; }
.device-launcher-ready h2, .device-launcher-ready p { margin: 0; }
.device-capability-list { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; }
.device-capability-list h2 { flex: 1 0 100%; margin-bottom: .2rem; font-size: 1rem; }
.device-capability-list span { padding: .3rem .55rem; border-radius: 999px; background: #e2e8f0; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .73rem; }
.device-next-step { margin: 1rem 0; padding: .9rem; border-left: 4px solid #f59e0b; background: #fffbeb; }
.device-next-step h2, .device-next-step p { margin: 0; }
.device-next-step h2 { font-size: 1rem; }
.device-next-step p { margin-top: .25rem; color: #78350f; }
.device-install-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem; margin-bottom: 1rem; }
.device-install-actions details { color: #475569; font-size: .82rem; }
.device-install-actions summary { cursor: pointer; font-weight: 700; }
.device-install-actions p { max-width: 30rem; margin: .35rem 0 0; }
.device-assignment-panel { grid-column: 1 / -1; padding-top: .7rem; border-top: 1px solid #e2e8f0; }
.device-assignment-list { display: flex; flex-wrap: wrap; gap: .4rem; margin: .45rem 0; }
.device-assignment-list > span { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .5rem; border-radius: .5rem; background: #f1f5f9; font-size: .78rem; }
.device-assignment-list form { display: inline; }
.device-assignment-list button { border: 0; background: transparent; color: #b91c1c; cursor: pointer; font-size: 1rem; }
.device-assignment-create > summary { color: #0e7490; cursor: pointer; font-size: .82rem; font-weight: 750; }
.device-assignment-create > form { display: grid; grid-template-columns: repeat(2, minmax(12rem, 1fr)) auto; align-items: end; gap: .6rem; margin-top: .6rem; }
.device-assignment-create label { display: grid; gap: .25rem; }
.device-assignment-create fieldset { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; }
.device-launcher-assignments { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .5rem; margin-top: .7rem; }
.device-launcher-assignments button { display: grid; width: 100%; gap: .2rem; padding: .7rem; border: 1px solid #d6c27d; border-radius: .6rem; background: #fff; color: #422006; cursor: pointer; text-align: left; }
.device-launcher-assignments button.is-selected { border-color: #0e7490; outline: 2px solid #67e8f9; background: #ecfeff; color: #164e63; }
.device-seller-unlock { margin: 1rem 0; padding: .9rem; border-radius: .7rem; background: #f8fafc; }
.device-seller-unlock h2 { margin-top: 0; font-size: 1rem; }
.device-seller-unlock form { display: grid; grid-template-columns: 1fr 7rem auto; align-items: end; gap: .6rem; }
.device-seller-unlock label { display: grid; gap: .25rem; }
.device-seller-active { color: #166534; }
@media (max-width: 700px) { .device-assignment-create > form { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .device-seller-unlock form { grid-template-columns: 1fr; } }
.reservation-room-item.is-table.is-client-reservable::before { border-color: #7aa8c5; background: #cfe9f7; }
.reservation-room-item.is-table.is-organizer-only::before { border-color: #58636d; background: #9ba5ad; }
.reservation-room-item.is-table.is-round::before { inset: 0; border-radius: 50%; }
.reservation-room-item.is-background { z-index: 0; padding: 0; border: 0; background: transparent; }
.reservation-room-item.is-background img { width: 100%; height: 100%; object-fit: fill; opacity: .78; }
.reservation-room-item.is-background > strong { display: none; }
.reservation-room-item.is-zone { z-index: 1; border: 2px dashed color-mix(in srgb, var(--zone-color, #dbeafe) 75%, #334155); background: color-mix(in srgb, var(--zone-color, #dbeafe) 38%, transparent); color: #334155; }
.reservation-room-item.is-table { z-index: 3; }
.reservation-room-item.is-table > strong { position: absolute; z-index: 2; inset: 29% 12%; display: grid; place-items: center; overflow: visible; color: #20262d; font-size: clamp(.55rem, 1.25vw, .95rem); line-height: 1.05; }
.reservation-seats { position: absolute; z-index: 3; inset: 0; display: grid; grid-template-columns: repeat(var(--seat-columns), 1fr); grid-template-rows: repeat(var(--seat-rows), 1fr); align-items: center; justify-items: center; }
.reservation-room-item.is-round .reservation-seat, .reservation-room-item.is-round .placement-seat { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(calc(360deg / var(--seat-count) * var(--seat-index))) translateY(-2.5em) rotate(calc(-360deg / var(--seat-count) * var(--seat-index))); transform-origin: center; }
.reservation-seat input { position: absolute; opacity: 0; pointer-events: none; }
.reservation-seat span { display: grid; width: 1.35rem; height: 1.35rem; place-items: center; border-radius: 50%; color: #17212b; background: #fff; border: 1px solid #557080; cursor: pointer; font-size: .68rem; }
.reservation-seat input:checked + span { color: #fff; border-color: var(--brand); background: var(--brand); }
.reservation-seat.is-occupied span { color: #8b98a4; border-color: #ccd4db; background: #dfe5ea; cursor: not-allowed; text-decoration: line-through; }
.placement-map-card > header, .placement-list-card > header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.placement-room-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; }
.placement-operations { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(24rem, .85fr); grid-template-areas: 'create create' 'map list'; align-items: start; gap: 1rem; }
.placement-operations > .placement-map-card { grid-area: map; position: sticky; top: 1rem; }
.placement-operations > .reservation-collapsible { grid-area: create; }
.placement-operations > .placement-list-card { grid-area: list; }
.placement-operations.is-checkin-only { grid-template-areas: 'map list'; }
.reservation-capacity, .reservation-seat-summary { margin: .65rem 0 0; padding: .55rem .75rem; border-radius: .65rem; background: #edf7f2; color: #175c3b; }
.placement-legend { display: flex; flex-wrap: wrap; gap: .4rem; }
.placement-legend span { padding: .3rem .5rem; border-radius: 999px; font-size: .75rem; color: #fff; }
.placement-seat { display: grid; width: 1.35rem; height: 1.35rem; padding: 0; place-items: center; border: 2px solid transparent; border-radius: 50%; color: #fff; font-size: .65rem; cursor: default; }
.placement-seat.is-free, .placement-legend .is-free { background: #98a2ad; }
.placement-seat.is-paid, .placement-legend .is-paid { background: #2878d0; }
.placement-seat.is-present, .placement-legend .is-present { background: #168a55; }
.placement-seat.is-exited, .placement-legend .is-exited { background: #5b6b7d; }
.admission-header-gauge { padding:.38rem .72rem; border-radius:999px; color:#effaff; background:#176b88; font-weight:800; white-space:nowrap }
.admission-setting-check { display:flex !important; align-items:center; gap:.5rem }
.admission-setting-check input { width:1rem; height:1rem; margin:0 }
.analysis-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.75rem; margin-bottom:1rem }
.analysis-kpis article { background:#123f56; color:#eefaff; border-radius:14px; padding:1rem; display:grid }
.analysis-kpis strong { font-size:1.8rem }
.analysis-timeline { display:grid; gap:.45rem }
.admission-audit-row.has-alert { box-shadow:inset 4px 0 #dc3545; background:#fff8f7 }
.analysis-timeline article { display:grid; grid-template-columns:75px minmax(150px,1fr) 80px minmax(180px,1fr); gap:.7rem; padding:.6rem 0; border-bottom:1px solid #e3eaee }
@media(max-width:700px){.analysis-timeline article{grid-template-columns:65px 1fr}.analysis-timeline article small{grid-column:2}}
.placement-seat.is-unpaid, .placement-legend .is-unpaid { background: #e88919; }
.placement-seat.is-no-show, .placement-legend .is-no-show { background: #c83232; }
.placement-seat.is-locked, .placement-legend .is-locked { background: #111827; }
.placement-seat.is-held { background: repeating-linear-gradient(135deg, #6d28d9 0 4px, #a78bfa 4px 8px); box-shadow: 0 0 0 2px #6d28d9; }
.placement-seat.is-placement-available { border-color: #fff; box-shadow: 0 0 0 2px #155e75; cursor: pointer; }
.placement-seat.is-placement-selected { border-color: #fff; background: #7c3aed; box-shadow: 0 0 0 3px #7c3aed; cursor: pointer; }
.placement-seat.is-search-match { z-index: 8; border-color: #fff; background: #d000b7; box-shadow: 0 0 0 4px #d000b7, 0 0 16px rgba(208,0,183,.75); }
.reservation-room-item.is-table:has(.placement-seat.is-search-match)::before { border: 4px solid #d000b7; box-shadow: 0 0 0 3px rgba(208,0,183,.22), 0 0 22px rgba(208,0,183,.55); }
.placement-seat-toolbar { position: sticky; z-index: 20; bottom: .5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .8rem 1rem; border: 1px solid #7c3aed; border-radius: .8rem; background: rgba(255,255,255,.96); box-shadow: 0 8px 30px rgba(31,41,55,.2); }
.placement-seat-toolbar[hidden] { display: none; }
.placement-seat-toolbar > div:first-child { display: grid; gap: .15rem; }
.placement-search { min-width: min(22rem, 100%); }
.placement-search-map { flex: 1 1 20rem; max-width: 30rem; }
.placement-list-tools { display: flex; align-items: end; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; }
.placement-list-tools > label { display: grid; gap: .3rem; color: var(--muted); font-size: .8rem; font-weight: 750; }
.placement-list-tools select { min-height: 2.5rem; padding: .45rem 2rem .45rem .65rem; border: 1px solid var(--line); border-radius: .55rem; background: var(--surface); color: var(--text); }
.auth-page.placement-shell { padding: clamp(.5rem, 1vw, 1.25rem); place-items: stretch; }
.public-portal.placement-portal { width: 100%; max-width: none; }
.reservation-pilot-dashboard { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.reservation-pilot-links { display: flex; flex-wrap: wrap; gap: .55rem; }
@media (max-width: 720px) { .reservation-pilot-dashboard { align-items: stretch; flex-direction: column; } .reservation-pilot-links .button { width: 100%; } }
.placement-search input { width: 100%; }
.placement-inline-form, .placement-attendance { display: flex; align-items: center; gap: .35rem; }
.reservation-phone-offers { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .65rem; }
.reservation-phone-offers label { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .7rem .8rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); }
.reservation-phone-offers label span { display: grid; gap: .15rem; }
.reservation-phone-offers input { width: 4.5rem; margin: 0; text-align: center; }
.reservation-phone-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.reservation-phone-summary span { display: grid; gap: .15rem; padding: .75rem; border-radius: .75rem; background: color-mix(in srgb, var(--brand) 8%, var(--surface)); }
.reservation-phone-summary strong { font-size: 1.1rem; }
.reservation-contact-card { display: grid; gap: 1rem; padding: 1rem; overflow: visible; border: 1px solid var(--line); border-radius: var(--radius); background: color-mix(in srgb, var(--brand) 4%, var(--surface)); }
.reservation-contact-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.reservation-contact-heading h3, .reservation-contact-heading p { margin: 0; }
.reservation-contact-search, .reservation-contact-fields label { display: grid; min-width: 0; gap: .4rem; margin: 0; color: var(--text); font-weight: 700; }
.reservation-contact-search input, .reservation-contact-fields input { display: block; width: 100%; min-width: 0; min-height: 46px; margin: 0; padding: .7rem .8rem; color: var(--text); background: var(--surface); border: 1px solid #b9c4ce; border-radius: .6rem; appearance: none; }
.reservation-contact-search input:focus, .reservation-contact-fields input:focus { border-color: var(--brand); outline: 3px solid color-mix(in srgb, var(--brand) 18%, transparent); }
.reservation-contact-search small { color: var(--muted); font-weight: 400; line-height: 1.35; }
.reservation-contact-fields { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr) minmax(0, 1.2fr); gap: .75rem; align-items: start; }
.reservation-contact-results { display: grid; gap: .35rem; padding: .35rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); }
.reservation-contact-result { display: flex; justify-content: space-between; gap: .75rem; width: 100%; padding: .6rem .7rem; border: 0; border-radius: .55rem; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.reservation-contact-result:hover, .reservation-contact-result:focus-visible { background: color-mix(in srgb, var(--brand) 10%, var(--surface)); }
.reservation-contact-result span { display: grid; gap: .1rem; }
@media (max-width: 640px) { .reservation-phone-summary { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .reservation-contact-card { padding: .85rem; border-radius: .85rem; }
  .reservation-contact-heading { align-items: flex-start; }
  .reservation-contact-fields { grid-template-columns: minmax(0, 1fr); gap: .85rem; }
  .reservation-contact-search input, .reservation-contact-fields input { min-height: 48px; font-size: 16px; }
}
.placement-attendance button { padding: .35rem .5rem; border: 1px solid var(--line); border-radius: .5rem; background: #fff; cursor: pointer; }
.placement-attendance button.is-active { color: #fff; border-color: var(--brand); background: var(--brand); }
.reservation-collapsible { padding: 0; overflow: clip; }
.reservation-collapsible > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.15rem; cursor: pointer; list-style: none; }
.reservation-collapsible > summary::-webkit-details-marker, .reservation-admin-order-summary::-webkit-details-marker { display: none; }
.reservation-collapsible > summary > span:first-child { display: grid; gap: .15rem; }
.reservation-collapsible > summary strong { font-size: 1.12rem; }
.reservation-collapse-hint { color: var(--brand); font-size: .9rem; font-weight: 750; }
.reservation-collapse-hint::after { content: 'Ouvrir'; }
.reservation-collapsible[open] .reservation-collapse-hint::after { content: 'Refermer'; }
.reservation-collapsible-content { padding: 0 1.15rem 1.15rem; border-top: 1px solid var(--line); }
.reservation-collapsible-content > .form-grid { margin-top: 1rem; }
.placement-list-card .reservation-admin-order { position: relative; display: block; padding: 0; overflow: visible; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); }
.reservation-admin-list { display: grid; gap: .6rem; }
.reservation-admin-order-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto 1.25rem; align-items: center; gap: .75rem; min-height: 66px; padding: .75rem .85rem; cursor: pointer; list-style: none; }
.reservation-admin-order-summary { position: relative; padding-left: 1.15rem; overflow: visible; }
.reservation-admin-order:hover { z-index: 20; }
.reservation-admin-order-summary::before { position: absolute; top: 0; left: 0; width: 1.15rem; height: 1.15rem; background: #2563eb; clip-path: polygon(0 0, 100% 0, 0 100%); content: ''; }
.reservation-admin-order-summary[data-hover-summary]::after { position: absolute; z-index: 80; bottom: calc(100% + .4rem); left: .75rem; width: max-content; max-width: min(34rem, calc(100vw - 3rem)); padding: .55rem .7rem; color: #fff; background: #102a36; border-radius: .55rem; box-shadow: 0 8px 24px rgba(15, 23, 42, .3); content: attr(data-hover-summary); font-size: .78rem; font-weight: 650; line-height: 1.4; opacity: 0; pointer-events: none; transform: translateY(.2rem); transition: opacity .12s ease, transform .12s ease; }
.reservation-admin-order-summary[data-hover-summary]:hover::after { opacity: 1; transform: translateY(0); }
.reservation-admin-order.status-unplaced .reservation-admin-order-summary::before { background: #eab308; }
.reservation-admin-order.status-partial .reservation-admin-order-summary::before { background: #7c3aed; }
.reservation-admin-order.status-placed-paid .reservation-admin-order-summary::before { background: #2878d0; }
.reservation-admin-order.status-placed-unpaid .reservation-admin-order-summary::before { background: #e88919; }
.reservation-admin-order.status-present .reservation-admin-order-summary::before { background: #16a34a; }
.reservation-admin-order.status-no-show .reservation-admin-order-summary::before { background: #c83232; }
.placement-status-legend { margin: -.25rem 0 .8rem; border-bottom: 1px solid var(--line); }
.placement-status-legend > summary { width: max-content; margin-left: auto; padding: .4rem 0 .6rem; color: var(--brand); font-size: .82rem; font-weight: 750; cursor: pointer; }
.placement-status-legend > div { display: flex; flex-wrap: wrap; gap: .45rem .8rem; padding: 0 0 .75rem; }
.placement-status-legend span { display: inline-flex; align-items: center; gap: .4rem; color: var(--muted); font-size: .78rem; }
.placement-status-legend span::before { width: .7rem; height: .7rem; flex: 0 0 auto; background: #eab308; clip-path: polygon(0 0, 100% 0, 0 100%); content: ''; }
.placement-status-legend .status-partial::before { background: #7c3aed; }
.placement-status-legend .status-placed-paid::before { background: #2878d0; }
.placement-status-legend .status-placed-unpaid::before { background: #e88919; }
.placement-status-legend .status-present::before { background: #16a34a; }
.placement-status-legend .status-no-show::before { background: #c83232; }
.reservation-admin-order-summary > span:first-child { display: grid; min-width: 0; gap: .15rem; }
.reservation-admin-order-summary small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reservation-order-summary-meta { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; font-size: .86rem; }
.reservation-order-chevron { width: .65rem; height: .65rem; border-right: 2px solid var(--brand); border-bottom: 2px solid var(--brand); transform: rotate(45deg); transition: transform .18s ease; }
.reservation-admin-order[open] .reservation-order-chevron { transform: rotate(225deg); }
.reservation-admin-order-content { display: grid; grid-template-columns: minmax(130px,.9fr) minmax(220px,1.5fr); align-items: center; gap: .65rem; padding: .75rem .85rem; border-top: 1px solid var(--line); }
.reservation-attendance-actions { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; padding-top: .65rem; border-top: 1px solid var(--line); }
.reservation-attendance-actions > span { margin-right: .25rem; color: var(--muted); font-size: .82rem; font-weight: 750; }
.badge.badge-warning { color: #8a4b08; background: #fff1d6; }
.badge.badge-danger { color: #8d1b13; background: #fde7e5; }
.button.button-success { color: #fff; border-color: #168a55; background: #168a55; }
.reservation-order-placement { display: grid; gap: .15rem; }
.reservation-admin-order.is-search-result { border-color: #d000b7; box-shadow: 0 0 0 2px rgba(208,0,183,.14); }
.reservation-checkin-summary { display: grid; justify-items: end; gap: .25rem; }
.reservation-checkin { grid-column: 1 / -1; padding-top: .55rem; border-top: 1px solid var(--line); }
.reservation-checkin > summary { color: var(--brand); font-weight: 700; cursor: pointer; }
.reservation-checkin form { display: grid; grid-template-columns: minmax(9rem,.6fr) minmax(16rem,1.4fr) minmax(16rem,1fr); gap: .75rem; margin-top: .75rem; align-items: end; }
.reservation-checkin fieldset { display: grid; gap: .35rem; margin: 0; padding: .55rem .7rem; border: 1px solid var(--line); border-radius: .65rem; }
.reservation-checkin fieldset label { display: grid; grid-template-columns: 1fr 5rem; align-items: center; gap: .5rem; }
.reservation-checkin fieldset input { width: 100%; }
.checkin-payment { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.reservation-checkin .muted, .reservation-checkin button { grid-column: 1 / -1; }
@media (max-width: 900px) {
  .reservation-admin-order-content { grid-template-columns: 1fr; align-items: stretch; }
  .placement-map-card > header, .placement-list-card > header, .placement-seat-toolbar { align-items: stretch; flex-direction: column; }
  .placement-search-map { flex: 0 0 auto; width: 100%; max-width: none; min-width: 0; }
}
@media (max-width: 900px) { .reservation-checkin form { grid-template-columns: 1fr; } .reservation-checkin-summary { justify-items: start; } }
@media (max-width: 640px) {
  .reservation-admin-order-summary { grid-template-columns: minmax(0, 1fr) 1.1rem; }
  .reservation-order-summary-meta { grid-column: 1; justify-content: flex-start; flex-wrap: wrap; }
  .reservation-order-chevron { grid-column: 2; grid-row: 1 / span 2; }
  .reservation-collapsible > summary { align-items: flex-start; }
  .reservation-attendance-actions .button { flex: 1 1 calc(50% - .45rem); }
  .reservation-attendance-actions > span { flex-basis: 100%; }
}
@media (max-width: 1100px) {
  .placement-operations, .placement-operations.is-checkin-only { display: flex; flex-direction: column; }
  .placement-operations > .placement-map-card, .placement-operations > .reservation-collapsible, .placement-operations > .placement-list-card { position: static; width: 100%; }
}
.reconciliation-kpis { display: grid; grid-template-columns: repeat(auto-fit,minmax(10rem,1fr)); gap: .75rem; margin-bottom: 1rem; }
.reconciliation-kpis .card { display: grid; gap: .35rem; padding: 1rem; }
.reconciliation-kpis span { color: var(--muted); font-size: .82rem; }
.reconciliation-kpis strong { font-size: clamp(1.25rem,3vw,2rem); }
.reconciliation-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin-bottom: 1rem; }
.metric-list { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.metric-list li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--line); }
.reservation-reconciliation table small { display: block; color: var(--muted); }
.audit-timeline { display: grid; gap: .75rem; }
.audit-timeline article { display: grid; grid-template-columns: 9rem 1fr; gap: 1rem; padding: .75rem; border-left: 3px solid var(--brand); background: #f8fafc; }
.audit-timeline article.is-reversal { border-left-color: #be123c; background: #fff1f2; }
.audit-timeline p { margin: .2rem 0 0; color: var(--muted); }
.reversal-form { min-width: 14rem; }
.reversal-form form { display: grid; gap: .5rem; margin-top: .5rem; }
.reversal-form textarea { min-height: 4rem; }
@media (max-width: 720px) { .reconciliation-columns { grid-template-columns: 1fr; } .audit-timeline article { grid-template-columns: 1fr; gap: .25rem; } }

.pickup-manual-audit { display: grid; gap: .75rem; }
.pickup-manual-audit article { padding: .75rem; border-left: 3px solid #d97706; background: #fffbeb; }
.pickup-manual-audit article small { display: block; color: var(--muted); }
@media print {
  body:has(.pickup-management-page) > :not(.pickup-management-page) { display: none !important; }
  .pickup-management-page { padding: 0; background: #fff; }
  .pickup-management-page .public-portal { box-shadow: none; border: 0; }
  .pickup-management-page nav,
  .pickup-screen-actions,
  .pickup-proof-rule,
  .pickup-manual-audit { display: none !important; }
  .pickup-management-page .portal-content { padding: 0; }
  .pickup-management-page .card { break-inside: avoid; box-shadow: none; }
  .pickup-management-page .reservation-admin-order { break-inside: avoid; }
  .pickup-management-page .table-scroll { overflow: visible; }
}

/* Éditeur tablette : le visuel conserve toujours son ratio et les outils restent compacts. */
.reservation-customization-dialog {
  width: calc(100vw - .75rem);
  max-width: 96rem;
  height: calc(100dvh - .75rem);
  max-height: none;
}

.reservation-customization-dialog-shell {
  height: 100%;
  max-height: none;
  gap: .55rem;
  padding: .65rem;
}

.reservation-customization-dialog-shell > header p:not(.eyebrow) {
  overflow: hidden;
  max-width: 55rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.reservation-customization-workspace {
  grid-template-areas: "tools visual";
  grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr);
  gap: .65rem;
}

.reservation-customization-tools {
  grid-area: tools;
  gap: .5rem;
  min-width: 0;
  padding-right: .2rem;
}

.reservation-customization-tools > *,
.reservation-customization-tools fieldset,
.reservation-customization-tools details,
.reservation-customization-tools label,
.reservation-customization-tools input,
.reservation-customization-tools select,
.reservation-customization-tools button {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
}

.reservation-customization-tools input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.reservation-customization-tools select {
  width: 100%;
}

.customization-essential-tools {
  gap: .35rem;
  padding: .45rem;
}

.customization-essential-actions {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .25rem;
}

.customization-essential-actions .button {
  min-height: 2.2rem;
  padding: .25rem .2rem;
  font-size: .68rem;
  white-space: normal;
}

.customization-object-sliders {
  gap: .2rem;
}

.customization-object-sliders label {
  grid-template-columns: 3.5rem minmax(0, 1fr) 3.1rem;
  gap: .2rem;
  font-size: .68rem;
}

.customization-object-sliders output {
  min-width: 0;
  padding-inline: .2rem;
  font-size: .65rem;
}

.customization-ratio-lock {
  min-height: 2rem;
  padding: .25rem .45rem;
  font-size: .68rem;
}

.customization-shape-picker {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .25rem;
  padding: .45rem;
}

.customization-shape-picker button {
  min-height: 2.2rem;
  padding: .2rem;
  font-size: 1rem;
}

.customization-motif-picker {
  grid-auto-columns: 3.6rem;
  min-height: 4.6rem;
  padding: .4rem .4rem .75rem;
}

.customization-motif-picker button {
  min-width: 3.6rem;
  min-height: 3.6rem;
  padding: .3rem;
}

.customization-motif-picker button svg {
  width: 2.35rem;
  height: 2.35rem;
}

.reservation-customization-visual {
  grid-area: visual;
  display: grid;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  place-items: center;
  border-radius: 1rem;
  background: color-mix(in srgb, var(--surface-soft) 72%, var(--surface));
}

.reservation-customization-stage {
  position: relative;
  top: auto;
  width: var(--fitted-width, 100%) !important;
  height: var(--fitted-height, auto) !important;
  max-width: none !important;
  min-height: 0 !important;
  align-self: center;
  justify-self: center !important;
}

.reservation-customization-stage > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.workshop-product-actions {
  grid-template-columns: 1fr;
}

.workshop-draft-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
  gap: .65rem;
}

.workshop-draft-card {
  display: grid;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(23, 79, 94, .18);
  border-radius: .9rem;
  background: #f7fbfa;
}

.workshop-draft-edit {
  display: grid;
  gap: .35rem;
  min-width: 0;
  padding: .45rem;
  border: 0;
  color: inherit;
  background: transparent;
  cursor: pointer;
}

.workshop-draft-edit strong {
  font-size: .78rem;
}

.workshop-draft-preview {
  position: relative;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: inherit;
  overflow: hidden;
  border-radius: .6rem;
  background: #fff;
}

.workshop-customer-identity {
  display: grid;
  gap: 1rem;
  margin: 1rem 0 7.5rem;
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid color-mix(in srgb, var(--color-primary) 20%, var(--color-border));
  border-radius: 1.25rem;
  background: color-mix(in srgb, var(--color-surface) 94%, var(--color-primary) 6%);
  box-shadow: var(--shadow-sm);
}

.workshop-customer-heading {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.workshop-customer-heading h2,
.workshop-customer-heading p {
  margin: 0;
}

.workshop-customer-heading p {
  margin-top: .25rem;
  color: var(--color-text-muted);
}

.workshop-customer-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}

.workshop-customer-fields label {
  display: grid;
  gap: .35rem;
  font-weight: 700;
}

.workshop-customer-fields input {
  width: 100%;
  min-height: 3.25rem;
  padding: .75rem .9rem;
  border: 2px solid color-mix(in srgb, var(--color-text) 36%, var(--color-border));
  border-radius: .85rem;
  background: #fff;
  color: var(--color-text);
  font: inherit;
  box-shadow: inset 0 1px 2px rgb(15 23 42 / 7%);
}

.workshop-customer-fields input:focus {
  border-color: var(--color-primary);
  outline: 3px solid color-mix(in srgb, var(--color-primary) 18%, transparent);
}

.workshop-customer-email {
  grid-column: 1 / -1;
}

.workshop-customer-identity > small {
  color: var(--color-text-muted);
}

.workshop-kiosk-session-actions {
  display: grid;
  justify-items: end;
  gap: .65rem;
}

.workshop-abandon-button {
  border-color: color-mix(in srgb, #b42318 36%, var(--color-border));
  background: color-mix(in srgb, #fff 94%, #b42318 6%);
  color: #8f1d16;
  white-space: nowrap;
}

.workshop-abandon-button:hover,
.workshop-abandon-button:focus-visible {
  border-color: #b42318;
  background: color-mix(in srgb, #fff 88%, #b42318 12%);
}

@media (max-width: 700px) {
  .workshop-customer-identity {
    margin-bottom: 9rem;
  }

  .workshop-customer-heading,
  .workshop-customer-fields {
    grid-template-columns: minmax(0, 1fr);
  }

  .workshop-customer-heading {
    display: grid;
  }

  .workshop-kiosk-session-actions {
    justify-items: start;
  }

  .workshop-customer-email {
    grid-column: auto;
  }
}

.workshop-draft-preview .reservation-customization-zone {
  pointer-events: none;
}

.workshop-draft-stepper {
  display: grid;
  grid-template-columns: 2.7rem minmax(2.5rem, 1fr) 2.7rem;
  align-items: center;
  border-top: 1px solid rgba(23, 79, 94, .12);
}

.workshop-draft-stepper button {
  min-height: 2.7rem;
  border: 0;
  color: #174f5e;
  background: #e5f2ef;
  font-size: 1.55rem;
  font-weight: 900;
  cursor: pointer;
  touch-action: manipulation;
}

.workshop-draft-stepper output {
  text-align: center;
  font-size: 1.1rem;
  font-weight: 900;
}

@media (max-width: 900px) and (orientation: portrait) {
  .reservation-customization-dialog-shell > header {
    gap: .45rem;
  }

  .reservation-customization-dialog-shell > header p:not(.eyebrow) {
    display: none;
  }

  .reservation-customization-workspace {
    grid-template-areas:
      "visual"
      "tools";
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(18rem, 56dvh) minmax(0, 1fr);
  }

  .reservation-customization-visual {
    min-height: 18rem;
  }

  .reservation-customization-tools {
    padding-right: .1rem;
  }

  .customization-essential-actions {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .reservation-customization-dialog {
    width: calc(100vw - .25rem);
    height: calc(100dvh - .25rem);
  }

  .reservation-customization-dialog-shell {
    padding: .4rem;
  }

  .customization-essential-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

body {
  min-height: 100vh;
  margin: 0;
  background: var(--bg);
}

a {
  color: inherit;
}

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

.app-shell {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  display: flex;
  flex-direction: column;
  padding: 28px 20px;
  color: #edf7f9;
  background: #102a36;
}

.brand {
  display: flex;
  gap: 12px;
  align-items: center;
  text-decoration: none;
}

.brand span:last-child {
  display: grid;
}

.brand small {
  margin-top: 2px;
  color: #a9c1ca;
}

.brand-mark {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  color: #302017;
  font-weight: 800;
  background: var(--accent);
  border-radius: 12px;
}

.platform-brand-logo {
  display: block;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  object-fit: contain;
}

.auth-brand .platform-brand-logo {
  width: 56px;
  height: 56px;
  flex-basis: 56px;
}

.sidebar nav {
  display: grid;
  gap: 6px;
  margin-top: 42px;
}

.sidebar nav a {
  padding: 11px 12px;
  color: #d8e8ed;
  text-decoration: none;
  border-radius: 9px;
}

.sidebar nav a:hover,
.sidebar nav a:focus-visible {
  background: #1b3e4c;
}

.sidebar-footer {
  margin-top: auto;
}

.platform-publisher-footer {
  display: flex;
  gap: 12px 24px;
  align-items: center;
  justify-content: space-between;
  margin-top: 32px;
  padding: 18px 4px 4px;
  color: var(--muted);
  font-size: .88rem;
  border-top: 1px solid var(--line);
}

.platform-publisher-footer a {
  color: var(--brand);
  font-weight: 750;
}

.site-publisher-credit {
  width: 100%;
  padding: 12px 16px 16px;
  color: var(--muted);
  font-size: .72rem;
  line-height: 1;
  text-align: center;
}

.site-publisher-credit a {
  color: inherit;
  letter-spacing: .02em;
  text-decoration: none;
  opacity: .72;
  transition: opacity .15s ease, color .15s ease;
}

.site-publisher-credit a:hover,
.site-publisher-credit a:focus-visible {
  color: var(--brand);
  opacity: 1;
}

.platform-about-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr);
  gap: 20px;
}

.platform-about-card h2 {
  margin-top: 0;
}

.platform-about-signature {
  display: grid;
  gap: 7px;
  padding: 18px;
  background: color-mix(in srgb, var(--accent) 14%, transparent);
  border-radius: 14px;
}

.platform-about-signature address {
  color: inherit;
  font-style: normal;
}

.main-content {
  width: 100%;
  max-width: 1500px;
  min-width: 0;
  padding: 48px;
}

.page-header {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 30px;
}

.page-header h1 {
  margin: 3px 0 7px;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
}

.header-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.eyebrow {
  margin: 0;
  color: var(--brand);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.muted {
  color: var(--muted);
}

.button {
  display: inline-flex;
  min-height: 42px;
  padding: 9px 16px;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 9px;
}

.button-primary {
  color: #fff;
  background: var(--brand);
  border-color: var(--brand);
}

.button-primary:hover {
  background: var(--brand-dark);
}

.button-ghost {
  background: transparent;
}

.button-small {
  min-height: 34px;
  padding: 6px 11px;
  font-size: .875rem;
}

.button-danger {
  color: var(--danger);
}

.sidebar .button-ghost {
  width: 100%;
  color: #fff;
  border-color: #42606b;
}

.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
}

.card,
.form-card,
.table-card,
.module-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.card {
  padding: 24px;
}

.card h2 {
  margin: 16px 0 7px;
}

.card p {
  margin: 0;
  color: var(--muted);
}

.card-link {
  text-decoration: none;
  transition: transform .15s ease;
}

.card-link:hover {
  transform: translateY(-2px);
}

.card-action {
  display: inline-block;
  margin-top: 18px;
  color: var(--brand);
  font-weight: 750;
}

.card-disabled {
  opacity: .62;
}

.organization-choice-card {
  --choice-primary: var(--brand);
  --choice-accent: var(--accent);
  --choice-logo-background: transparent;
  position: relative;
  min-height: 178px;
  overflow: hidden;
  isolation: isolate;
}

.organization-directory-search {
  display: grid;
  grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(130px, 1fr)) auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 20px;
  padding: 16px;
}

.organization-directory-search > div {
  display: grid;
  gap: 5px;
}

.organization-directory-actions {
  display: flex !important;
  gap: 7px;
}

.organization-choice-background,
.organization-choice-background img,
.organization-choice-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.organization-choice-background {
  z-index: -2;
  overflow: hidden;
}

.organization-choice-background img {
  object-fit: cover;
}

.organization-choice-overlay {
  z-index: -1;
  background: linear-gradient(90deg, rgba(8, 20, 27, .9) 0%, rgba(8, 20, 27, .72) 65%, rgba(8, 20, 27, .5) 100%);
}

.organization-choice-content {
  position: relative;
  z-index: 1;
  display: block;
  max-width: none;
  padding-left: 126px;
}

.organization-choice-content p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.organization-choice-card.has-visual h2,
.organization-choice-card.has-visual p {
  color: #fff;
  text-shadow: 0 1px 5px rgba(0, 0, 0, .45);
}

.organization-choice-location {
  display: block;
  margin: -2px 0 6px;
  color: var(--muted);
  font-weight: 750;
}

.organization-choice-card.has-visual .organization-choice-location {
  color: rgba(255, 255, 255, .85);
}

.organization-choice-card .card-action {
  color: var(--choice-primary);
}

.organization-choice-card.has-visual .card-action {
  color: #fff;
}

.organization-choice-logo,
.organization-choice-mark {
  position: absolute;
  z-index: 2;
  top: 16px;
  bottom: 16px;
  left: 16px;
  display: grid;
  width: 110px;
  height: auto;
  padding: 8px;
  place-items: center;
  background: var(--choice-logo-background);
  border-radius: 13px;
}

.organization-choice-logo:not(.logo-background-transparent) {
  box-shadow: 0 8px 20px rgba(0, 0, 0, .2);
}

.organization-choice-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.organization-choice-mark {
  color: #2d2118;
  font-size: 2rem;
  font-weight: 900;
  background: var(--choice-accent);
}

.card-icon {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  color: var(--organization-primary-ink, #fff);
  font-weight: 800;
  background: var(--organization-primary, var(--brand));
  border: 1px solid color-mix(in srgb, var(--organization-primary-ink, #fff) 28%, transparent);
  border-radius: 10px;
}

.form-card {
  max-width: 680px;
  padding: 28px;
}

.project-create-panel > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  list-style: none;
}

.project-create-panel > summary::-webkit-details-marker { display: none; }
.project-create-panel > summary::after { content: "+"; font-size: 1.5rem; font-weight: 800; color: var(--brand); }
.project-create-panel[open] > summary::after { content: "−"; }
.project-create-panel > summary span { display: grid; gap: 3px; }
.project-create-panel > summary strong { font-size: 1.1rem; }
.project-create-panel > summary small { color: var(--muted); font-weight: 500; }
.project-create-panel > form { margin-top: 18px; }

.stack {
  display: grid;
  gap: 10px;
}

.stack label {
  display: block;
  margin: 8px 0 6px;
  font-weight: 750;
}

.stack input,
.stack select,
.stack textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid #b9c4ce;
  border-radius: 8px;
}

.stack textarea {
  resize: vertical;
}

.stack input:focus,
.stack select:focus,
.stack textarea:focus {
  border-color: var(--brand);
  outline: 3px solid rgba(21, 94, 117, .18);
}

.stack small {
  color: var(--muted);
}

.form-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 20px;
}

.mail-config-card {
  max-width: 820px;
}

.mail-status {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 20px;
}

.mail-status small {
  color: var(--muted);
}

.mail-test-form {
  padding-top: 20px;
  margin-top: 24px;
  border-top: 1px solid var(--line);
}

.inline-check {
  display: flex !important;
  gap: 9px;
  align-items: center;
}

.stack .inline-check input {
  width: 17px;
  height: 17px;
  min-height: 0;
}

.field-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
}

.module-catalog {
  display: flex;
  gap: 28px;
  align-items: center;
  justify-content: space-between;
  padding: 22px 26px;
  margin-bottom: 24px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.module-catalog h2 {
  margin: 5px 0 4px;
}

.module-catalog p:last-child {
  margin-bottom: 0;
}

.module-pills {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.module-pill {
  display: grid;
  min-width: 125px;
  padding: 10px 14px;
  color: var(--muted);
  text-align: left;
  cursor: pointer;
  background: #f7f8f9;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.module-pill span {
  color: var(--ink);
  font-weight: 750;
}

.module-pill small {
  margin-top: 2px;
}

.module-pill.is-enabled {
  background: #dff4e9;
  border-color: #a8dcc2;
}

.module-pill.is-enabled small {
  color: var(--success);
}

.organization-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: start;
}

.role-create-card {
  max-width: 1020px;
  margin-bottom: 24px;
}

.role-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 24px;
  align-items: start;
  max-width: 1020px;
}

.role-card .module-card-header {
  min-height: 0;
}

.role-section {
  padding: 20px 28px;
  border-top: 1px solid var(--line);
}

.role-section h3 {
  margin: 0 0 12px;
  font-size: 1rem;
}

.choice-list {
  display: grid;
  gap: 8px;
}

.choice-list form {
  margin: 0;
}

.choice-button {
  display: grid;
  width: 100%;
  padding: 10px 12px;
  color: var(--muted);
  text-align: left;
  cursor: pointer;
  background: var(--surface-soft, #f7f8f9);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.choice-button span {
  color: var(--ink);
  font-weight: 700;
}

.choice-button code,
.choice-button small {
  margin-top: 3px;
  font-size: .75rem;
}

.choice-button.is-selected {
  background: var(--surface-positive, #dff4e9);
  border-color: color-mix(in srgb, var(--success) 58%, var(--line));
  box-shadow: inset 3px 0 var(--success);
}

.participant-card {
  display: grid;
  gap: 12px;
  padding: 14px;
  background: var(--surface-soft, #f7f8f9);
  border: 1px solid var(--line);
  border-radius: 9px;
}

.participant-card.is-selected {
  border-color: #9bd4b7;
  box-shadow: inset 3px 0 var(--success);
}

.participant-card>div:first-child {
  display: grid;
  gap: 3px;
}

.participant-card small {
  color: var(--muted);
}

.checkbox-fieldset {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.checkbox-fieldset legend {
  padding: 0 6px;
  font-weight: 750;
}

.checkbox-group {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
  gap: 8px;
}

.checkbox-group label {
  display: inline-flex;
  min-height: 38px;
  padding: 8px 10px;
  gap: 8px;
  align-items: center;
  margin: 0;
  color: var(--ink);
  font-size: .9rem;
  font-weight: 700;
  cursor: pointer;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.checkbox-group label:has(input:checked) {
  color: #0f6841;
  background: #e8f7ef;
  border-color: #9bd4b7;
}

.stack .checkbox-group input {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  min-height: 0;
  margin: 0;
  accent-color: var(--success);
}

.module-card {
  min-width: 0;
  overflow: hidden;
}

.module-card-header {
  min-height: 150px;
  padding: 26px 28px 18px;
}

.module-card-header h2 {
  margin: 6px 0 8px;
  font-size: 1.45rem;
}

.module-card-header p:last-child {
  margin-bottom: 0;
}

.module-form {
  padding: 0 28px 28px;
}

.module-form>.button {
  margin-top: 8px;
}

.embedded-table {
  border-top: 1px solid var(--line);
}

.empty-cell {
  padding: 24px;
  color: var(--muted);
  text-align: center;
}

.table-card {
  overflow: hidden;
}

.table-scroll {
  overflow-x: auto;
}

.external-access-matrix th:not(:nth-child(2)),
.external-access-matrix td:not(:nth-child(2)) {
  min-width: 58px;
  text-align: center;
}

.external-access-matrix td {
  padding-top: 8px;
  padding-bottom: 8px;
}

.external-access-toggle {
  display: inline-flex;
  width: 30px;
  min-height: 30px;
  align-items: center;
  justify-content: center;
  margin: 0;
  cursor: pointer;
  border-radius: 9px;
}

.external-access-toggle:hover,
.external-access-toggle:focus-within {
  background: #eef1f4;
}

.external-access-toggle input[type='checkbox'] {
  width: 18px;
  height: 18px;
  min-height: 18px;
  padding: 0;
  margin: 0;
  cursor: pointer;
  accent-color: var(--success);
}

@media (max-width: 720px) {
  .external-access-matrix th:not(:nth-child(2)),
  .external-access-matrix td:not(:nth-child(2)) {
    min-width: 72px;
  }

  .external-access-toggle {
    width: 48px;
    min-height: 48px;
  }

  .external-access-toggle input[type='checkbox'] {
    width: 22px;
    height: 22px;
    min-height: 22px;
  }
}

.external-actor-grid {
  grid-template-columns: minmax(0, 1fr);
  max-width: none;
}

.external-actor-card > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  list-style: none;
}

.external-actor-card > summary::-webkit-details-marker {
  display: none;
}

.external-actor-card > summary > span:first-child {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.external-actor-card > summary strong {
  overflow: hidden;
  font-size: 1.1rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.external-actor-card > summary small {
  color: var(--muted);
}

.external-actor-card-toggle {
  flex: 0 0 auto;
  color: var(--brand);
  font-size: .82rem;
  font-weight: 750;
}

.external-actor-card-toggle::before {
  content: '▸ ';
}

.external-actor-card[open] .external-actor-card-toggle {
  font-size: 0;
}

.external-actor-card[open] .external-actor-card-toggle::before {
  content: '▾ Masquer la fiche';
  font-size: .82rem;
}

table {
  width: 100%;
  border-collapse: collapse;
}

th,
td {
  padding: 15px 18px;
  text-align: left;
  border-bottom: 1px solid var(--line);
}

th {
  color: var(--muted);
  font-size: .75rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}

tbody tr:last-child td {
  border-bottom: 0;
}

.actions {
  text-align: right;
}

.actions form {
  display: inline;
}

.badge {
  display: inline-block;
  padding: 4px 9px;
  font-size: .78rem;
  font-weight: 800;
  border-radius: 999px;
}

.badge-stack {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.people-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 24px;
}

.people-summary>div {
  display: grid;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.people-summary strong {
  color: var(--brand);
  font-size: 1.8rem;
}

.people-summary span {
  color: var(--muted);
  font-size: .88rem;
}

.access-health {
  display: flex;
  gap: 10px 24px;
  align-items: center;
  padding: 16px 20px;
  margin-bottom: 24px;
  border-radius: 10px;
}

.access-health.is-ok {
  color: #0f6841;
  background: #dff4e9;
}

.access-health.is-warning {
  color: #8d5313;
  background: #fff0d7;
}

.badge-draft,
.badge-invited,
.badge-pending {
  color: #53606d;
  background: #edf0f2;
}

.badge-published,
.badge-active,
.badge-verified {
  color: var(--success);
  background: #dff4e9;
}

.badge-retired,
.badge-archived,
.badge-suspended,
.badge-disabled {
  color: var(--danger);
  background: #fde7e5;
}

.status-button {
  cursor: pointer;
  border: 0;
}

.empty-state {
  padding: 56px 24px;
  text-align: center;
}

.unit-list {
  margin-top: 24px;
}

.external-actor-grid {
  margin-top: 24px;
}

.question-list {
  display: grid;
  max-width: 1020px;
  gap: 24px;
}

.question-card .module-card-header {
  min-height: 0;
}

.question-body,
.version-card p {
  line-height: 1.6;
  white-space: pre-wrap;
}

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

.version-card {
  padding: 14px;
  background: #f7f8f9;
  border: 1px solid var(--line);
  border-radius: 9px;
}

.version-card.is-published {
  background: #e8f7ef;
  border-color: #9bd4b7;
}

.question-actions form {
  display: flex;
  gap: 10px;
  align-items: center;
}

.visibility-form {
  display: flex;
  min-width: 320px;
  gap: 8px;
  align-items: center;
}

.visibility-form select {
  min-height: 38px;
  padding: 7px 9px;
  background: #fff;
  border: 1px solid #b9c4ce;
  border-radius: 8px;
}

.flash {
  padding: 13px 15px;
  margin-bottom: 20px;
  border-radius: 9px;
}

.flash-success {
  color: #0f6841;
  background: #dff4e9;
}

.flash-info {
  color: #1e3a5f;
  background: #e8f2ff;
  border: 1px solid #bdd7f5;
}

.flash-error {
  color: #8d1b13;
  background: #fde7e5;
}

.global-profile-completion {
  position: relative;
  z-index: 30;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1rem;
  align-items: center;
  justify-content: center;
  margin: 0;
  border-radius: 0;
  color: var(--organization-surface-ink, var(--ink));
  background: color-mix(in srgb, var(--organization-accent, var(--accent)) 18%, var(--surface));
}

.global-profile-completion .button { margin: 0; }

.portal-help-link {
  display: grid;
  flex: 0 0 2.35rem;
  width: 2.35rem;
  height: 2.35rem;
  place-items: center;
  border: 1px solid #cbd5e1;
  border-radius: 50%;
  color: #475569;
  background: #f8fafc;
  font-weight: 850;
  text-decoration: none;
}

.portal-help-link:hover,
.portal-help-link.is-active {
  color: var(--organization-primary, #0f766e);
  border-color: currentColor;
  background: #f0fdfa;
}

.help-header { align-items: flex-start; }
.help-summary { position: sticky; z-index: 20; top: .5rem; display: flex; overflow-x: auto; gap: .45rem; padding: .65rem; margin-bottom: 1.5rem; border: 1px solid #dbe4ea; border-radius: .85rem; background: rgb(255 255 255 / 94%); box-shadow: 0 8px 24px rgb(15 23 42 / 8%); scrollbar-width: thin; }
.help-summary a { flex: 0 0 auto; padding: .55rem .75rem; border-radius: .55rem; color: #334155; background: #f1f5f9; font-size: .84rem; font-weight: 750; text-decoration: none; }
.help-summary a:hover { color: #fff; background: var(--organization-primary, #0f766e); }
.help-section { padding: 1.25rem 0; scroll-margin-top: 6rem; }
.help-section + .help-section { border-top: 1px solid #e2e8f0; }
.help-concept-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.help-concept-grid .card { position: relative; padding-top: 3.2rem; }
.help-number { position: absolute; top: 1rem; left: 1rem; display: grid; width: 1.7rem; height: 1.7rem; place-items: center; border-radius: 50%; color: #fff; background: var(--organization-primary, #0f766e); font-size: .78rem; font-weight: 850; }
.help-rule, .help-permission { padding: .85rem 1rem; margin: 1rem 0 0; border-left: 4px solid var(--organization-primary, #0f766e); border-radius: .45rem; color: #334155; background: #f0fdfa; }
.help-permission { border-left-color: #d97706; background: #fffbeb; }
.help-troubleshooting { margin-top: .8rem; border: 1px solid #dbe4ea; border-radius: .7rem; background: #f8fafc; }
.help-troubleshooting summary { padding: .8rem 1rem; color: #334155; cursor: pointer; font-weight: 750; }
.help-troubleshooting[open] summary { border-bottom: 1px solid #dbe4ea; }
.help-troubleshooting p { padding: 0 1rem 1rem; margin: .8rem 0 0; color: #64748b; }
.help-steps { display: grid; gap: .7rem; padding: 0; margin: 1rem 0 0; list-style: none; counter-reset: help-step; }
.help-steps li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .75rem; align-items: start; padding: .85rem 1rem; border: 1px solid #e2e8f0; border-radius: .7rem; background: #fff; counter-increment: help-step; }
.help-steps li::before { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: 50%; color: var(--organization-primary, #0f766e); background: #e6fffb; content: counter(help-step); font-size: .78rem; font-weight: 850; }
.help-steps p, .help-sale-flow p { margin: .25rem 0 0; color: #64748b; }
.help-sale-flow { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: 1rem; }
.help-sale-flow article { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: .75rem; padding: 1rem; border: 1px solid #dbe4ea; border-radius: .75rem; background: #fff; }
.help-sale-flow article > span { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: .55rem; color: #fff; background: var(--organization-primary, #0f766e); font-size: .8rem; font-weight: 850; }
.help-sale-flow h3, .help-concept-grid h3 { margin: 0; }
.help-final-checklist { padding: 1.25rem; margin-top: 1rem; border-radius: 1rem; color: #f8fafc; background: linear-gradient(135deg, #0f172a, #1e3a5f); }
.help-final-checklist h2 { color: #fff; }
.help-final-checklist ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem 1.5rem; padding-left: 1.2rem; }
@media (max-width: 760px) {
  .help-summary { top: .25rem; margin-inline: -.25rem; }
  .help-concept-grid, .help-sale-flow, .help-final-checklist ul { grid-template-columns: 1fr; }
  .help-section .section-heading { align-items: flex-start; }
}

.device-toast-stack {
  position: fixed;
  z-index: 250;
  top: max(10px, env(safe-area-inset-top));
  right: max(10px, env(safe-area-inset-right));
  display: grid;
  max-width: min(22rem, calc(100vw - 20px));
  gap: 6px;
  pointer-events: none;
}

.device-toast {
  padding: 8px 11px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .24);
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.25;
}

.device-toast-success {
  color: #d1fae5;
  background: rgba(6, 78, 59, .96);
}

.device-toast-error {
  color: #fee2e2;
  background: rgba(127, 29, 29, .96);
}

.device-receipts-page,
.device-receipt-page {
  align-items: start;
  padding: clamp(10px, 2vw, 24px);
}

.device-receipts-card,
.device-receipt-card {
  width: min(100%, 72rem);
  padding: clamp(12px, 2.5vw, 24px);
  border-radius: 14px;
  background: #fff;
  color: #0f172a;
}

.device-receipts-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.device-receipts-header h1,
.device-receipts-header p {
  margin: 0;
}

.device-receipts-header nav {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.device-receipt-list {
  display: grid;
  gap: 6px;
}

.device-receipt-row {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr) auto 1rem;
  align-items: center;
  gap: 10px;
  min-height: 4.25rem;
  padding: 10px 12px;
  border: 1px solid #dbe3e8;
  border-radius: 11px;
  background: #fff;
  color: #0f172a;
  text-decoration: none;
}

.device-receipt-row:hover {
  border-color: #0e7490;
  background: #ecfeff;
}

.device-receipt-row.is-cancelled {
  opacity: .68;
  background: #f8fafc;
}

.device-receipt-index {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 50%;
  background: #e6f4f7;
  color: #0e6474;
  font-size: .78rem;
  font-weight: 800;
}

.device-receipt-summary {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.device-receipt-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.device-receipt-title strong {
  overflow: hidden;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .9rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.device-receipt-title em {
  padding: 2px 6px;
  border-radius: 999px;
  background: #e0f2fe;
  color: #075985;
  font-size: .65rem;
  font-style: normal;
  font-weight: 800;
  text-transform: uppercase;
}

.device-receipt-title .device-receipt-cancelled {
  background: #fee2e2;
  color: #991b1b;
}

.device-receipt-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  color: #64748b;
  font-size: .75rem;
}

.device-receipt-meta > span:not(:last-child)::after,
.device-receipt-meta time::after {
  margin-left: 10px;
  color: #cbd5e1;
  content: '•';
}

.device-receipt-amount {
  color: #123d4a;
  font-size: 1.12rem;
  white-space: nowrap;
}

.device-receipt-chevron {
  color: #94a3b8;
  font-size: 1.5rem;
}

.device-printer-page {
  align-items: start;
  padding: clamp(10px, 2vw, 24px);
}

.device-printer-card {
  display: grid;
  width: min(100%, 58rem);
  gap: 18px;
  padding: clamp(14px, 2.5vw, 24px);
  border-radius: 14px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--organization-surface-ink, var(--ink));
}

.device-text-scale {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) auto;
  align-items: center;
  gap: .8rem 1rem;
  padding: 14px;
  border: 1px solid color-mix(in srgb, var(--brand) 30%, var(--line));
  border-radius: 12px;
  background: color-mix(in srgb, var(--brand) 5%, var(--surface));
}
.device-text-scale :is(h2, p) { margin: 0; }
.device-text-scale > small { grid-column: 1 / -1; color: var(--muted); }
.device-text-scale-controls { display: grid; grid-template-columns: 2.7rem 4.5rem 2.7rem auto; align-items: center; gap: .4rem; }
.device-text-scale-controls > button:not(.button) { min-height: 2.7rem; color: var(--brand-dark); background: var(--surface); border: 1px solid var(--line); border-radius: .6rem; font-size: 1.25rem; font-weight: 900; }
.device-text-scale-controls output { text-align: center; font-weight: 850; font-variant-numeric: tabular-nums; }
.device-text-scale-preview { display: grid; grid-template-columns: minmax(8rem, .7fr) minmax(12rem, 1.3fr); grid-column: 1 / -1; gap: .6rem; padding: .7rem; color: #eef4f5; background: #10171b; border-radius: .7rem; }
.device-text-scale-preview .sales-key { min-height: 3.4rem; font-size: calc(.82rem * var(--terrain-sale-text-scale, 1)); }
.device-text-scale-preview .sales-key span { font-size: calc(.7rem * var(--terrain-sale-text-scale, 1)); }
.device-text-scale-preview .sales-cart-line { padding: .35rem; font-size: calc(.78rem * var(--terrain-sale-text-scale, 1)); }
.device-text-scale-preview .sales-cart-line small { font-size: calc(.68rem * var(--terrain-sale-text-scale, 1)); }

.device-printer-capabilities,
.device-printer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.device-printer-mode {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-soft);
}

.device-printer-mode[hidden] {
  display: none;
}

.device-printer-mode.is-native {
  border-color: color-mix(in srgb, var(--brand) 48%, var(--line));
  background: color-mix(in srgb, var(--brand) 8%, var(--surface));
}

.device-printer-mode h2,
.device-printer-mode p {
  margin: 0;
}

.device-printer-mode h2 {
  font-size: 1.05rem;
}

.device-printer-capabilities span {
  padding: 5px 9px;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 750;
}

.device-printer-capabilities .is-available {
  background: color-mix(in srgb, var(--success) 14%, var(--surface));
  color: var(--success);
}

.device-printer-capabilities .is-unavailable {
  background: var(--surface-soft);
  color: var(--muted);
}

.device-printer-message {
  min-height: 1.25rem;
  margin: 0;
  color: var(--success);
  font-size: .85rem;
  font-weight: 700;
}

.device-printer-message.is-error {
  color: var(--danger);
}

.device-printer-list {
  display: grid;
  gap: 9px;
}

.device-printer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 4rem;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-soft);
}

.device-printer-row > label {
  display: flex;
  align-items: center;
  flex: 1;
  gap: 10px;
  cursor: pointer;
}

.device-printer-row input {
  width: 1.15rem;
  height: 1.15rem;
  accent-color: #0e7490;
}

.device-printer-row label > span {
  display: grid;
  gap: 2px;
}

.device-printer-row small {
  color: var(--muted);
}

.device-printer-row-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.device-printer-network > summary {
  cursor: pointer;
  color: var(--brand-dark);
  font-weight: 800;
}

.device-printer-settings {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--brand) 3%, var(--surface));
}

.device-printer-browser-tools,
.device-printer-advanced {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-soft);
}

.device-printer-browser-tools[open] > summary,
.device-printer-advanced[open] > summary {
  margin-bottom: 12px;
}

.device-printer-network form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.device-printer-network label {
  display: grid;
  gap: 4px;
  font-weight: 700;
}

.device-printer-network label:nth-child(3),
.device-printer-network button {
  grid-column: 1 / -1;
}

.device-receipt-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(16rem, .6fr);
  gap: 16px;
}

.device-receipt-layout > aside {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 16px;
  border: 1px solid #dbe3e8;
  border-radius: 12px;
}

@media (max-width: 720px) {
  .device-text-scale { grid-template-columns: 1fr; }
  .device-text-scale > small,
  .device-text-scale-preview { grid-column: 1; }
  .device-text-scale-controls { grid-template-columns: 2.7rem 1fr 2.7rem; }
  .device-text-scale-controls .button { grid-column: 1 / -1; }
  .device-text-scale-preview { grid-template-columns: 1fr; }

  .device-printer-mode {
    align-items: stretch;
    flex-direction: column;
  }

  .device-receipts-header,
  .device-receipt-layout {
    grid-template-columns: 1fr;
  }

  .device-receipts-header {
    display: grid;
  }

  .device-receipt-row {
    grid-template-columns: minmax(0, 1fr) auto 1rem;
    min-height: 4.6rem;
  }

  .device-receipt-index {
    display: none;
  }

  .device-receipt-meta {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1px 8px;
  }

  .device-receipt-meta > span:last-child {
    grid-column: 1 / -1;
    color: #334155;
    font-weight: 700;
  }

  .device-receipt-meta > span::after,
  .device-receipt-meta time::after {
    display: none;
  }

  .device-printer-actions,
  .device-printer-actions .button,
  .device-printer-network form {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .device-printer-network label,
  .device-printer-network button {
    grid-column: 1;
  }
}

.customization-workspace{display:grid;gap:1.25rem}.customization-hero{overflow:hidden;padding:clamp(1.2rem,3vw,2.2rem);border-radius:1.35rem;background:linear-gradient(135deg,color-mix(in srgb,var(--organization-primary,var(--brand)) 18%,var(--surface)),var(--surface));box-shadow:0 18px 40px rgb(15 23 42 / 8%)}.customization-hero>div:first-child{max-width:48rem}.customization-hero h1{font-size:clamp(2rem,5vw,3.4rem);margin:.15rem 0}.customization-hero-mark{display:grid;place-items:center;min-width:7rem;aspect-ratio:1;border-radius:2rem;color:#fff;background:linear-gradient(145deg,var(--organization-primary,var(--brand)),var(--organization-accent,var(--accent)));transform:rotate(3deg);box-shadow:0 15px 35px rgb(15 23 42 / 20%)}.customization-hero-mark span{font-size:3.2rem;line-height:1}.customization-hero-mark small{font-weight:900;text-transform:uppercase;letter-spacing:.12em}.customization-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem}.customization-steps a{display:grid;grid-template-columns:auto 1fr;gap:.1rem .65rem;padding:.85rem;border:1px solid var(--line);border-radius:1rem;color:var(--organization-surface-ink,var(--ink));background:var(--surface);text-decoration:none}.customization-steps a>span{display:grid;grid-row:1/3;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--surface-soft);font-weight:900}.customization-steps a.is-active{border-color:var(--organization-primary,var(--brand));background:color-mix(in srgb,var(--organization-primary,var(--brand)) 7%,var(--surface))}.customization-steps a.is-active>span{color:#fff;background:var(--organization-primary,var(--brand))}.customization-steps small{color:var(--muted)}.customization-section{display:grid;gap:1rem;padding:clamp(1rem,3vw,1.6rem);border:1px solid var(--line);border-radius:1.25rem;background:var(--surface);box-shadow:0 10px 28px rgb(15 23 42 / 6%);scroll-margin-top:1rem}.customization-section .section-heading{align-items:flex-end}.customization-builder{display:grid;grid-template-columns:minmax(18rem,1.2fr) minmax(18rem,.8fr);gap:1.2rem;padding:1rem;border-radius:1.2rem;background:var(--surface-soft)}.customization-preview-panel{position:relative;display:grid;align-content:start;min-height:28rem;padding:.75rem;border-radius:1rem;background:linear-gradient(145deg,#e9eef2,#dce4e8)}.customization-dropzone{position:relative;display:grid;place-items:center;width:100%;height:min(58vw,25rem);overflow:hidden;border:2px dashed color-mix(in srgb,var(--organization-primary,var(--brand)) 45%,var(--line));border-radius:.85rem;background:repeating-linear-gradient(45deg,#fff,#fff 12px,#f8fafc 12px,#f8fafc 24px);cursor:pointer}.customization-dropzone>input{position:absolute;width:1px;height:1px;opacity:0}.customization-dropzone>img{width:100%;height:100%;object-fit:contain}.customization-dropzone-empty{display:grid;place-items:center;gap:.25rem;text-align:center;color:#334155}.customization-dropzone-empty b{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;color:#fff;background:var(--organization-primary,var(--brand));font-size:2rem}.customization-dropzone-empty small{color:#64748b}.customization-design-zone{position:absolute;z-index:2;display:grid;place-items:center;min-width:2rem;min-height:2rem;border:2px solid #ef4444;background:rgb(239 68 68 / 12%);box-shadow:0 0 0 1px #fff,0 4px 16px rgb(15 23 42 / 25%);cursor:move;touch-action:none}.customization-design-zone span{padding:.2rem .4rem;border-radius:.35rem;color:#fff;background:#dc2626;font-size:.7rem;font-weight:900;pointer-events:none}.customization-design-zone i{position:absolute;right:-.45rem;top:-.45rem;width:1rem;height:1rem;border:2px solid #fff;border-radius:50%;background:#dc2626;cursor:nwse-resize}.customization-preview-help{margin:.65rem .25rem 0;color:#475569;font-size:.82rem}.customization-builder-fields{display:grid;align-content:start;gap:.85rem}.customization-builder-fields h3{margin:.1rem 0;font-size:1.45rem}.customization-tool-picker{display:grid;gap:.5rem}.customization-tool-picker label{position:relative}.customization-tool-picker input{position:absolute;opacity:0}.customization-tool-picker span{display:block;padding:.7rem .8rem;border:1px solid var(--line);border-radius:.7rem;background:var(--surface);cursor:pointer}.customization-tool-picker input:checked+span{border-color:var(--organization-primary,var(--brand));background:color-mix(in srgb,var(--organization-primary,var(--brand)) 8%,var(--surface))}.customization-tool-picker input:checked+span::before{content:'✓ ';font-weight:900}.customization-precision{border-top:1px solid var(--line);padding-top:.7rem}.customization-precision summary{cursor:pointer;font-weight:800}.customization-main-action{min-height:3rem;font-size:1rem}.customization-gallery,.customization-offer-grid,.customization-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.85rem}.customization-product-card,.customization-offer-card,.customization-review-card{position:relative;display:grid;gap:.75rem;overflow:hidden;padding:.85rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-soft)}.customization-product-visual{position:relative;display:grid;place-items:center;height:13rem;overflow:hidden;border-radius:.75rem;background:repeating-linear-gradient(45deg,#fff,#fff 10px,#f1f5f9 10px,#f1f5f9 20px)}.customization-product-visual img{width:100%;height:100%;object-fit:contain}.customization-product-visual>i{position:absolute;border:2px solid #ef4444;background:rgb(239 68 68 / 10%)}.customization-product-card p,.customization-offer-card p{margin:.2rem 0;color:var(--muted)}.customization-offer-card.is-selected{border-color:var(--organization-primary,var(--brand));box-shadow:0 0 0 3px color-mix(in srgb,var(--organization-primary,var(--brand)) 12%,transparent)}.customization-offer-card h3{margin:.5rem 0 .15rem}.customization-link-state{display:flex;align-items:center;gap:.4rem;color:#15803d;font-weight:800}.customization-link-state span{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;color:#fff;background:#16a34a}.customization-empty{display:grid;place-items:center;min-height:10rem;padding:1.5rem;border:2px dashed var(--line);border-radius:1rem;text-align:center;color:var(--muted)}.customization-empty>span{font-size:2.5rem;color:var(--organization-primary,var(--brand))}.customization-empty p{margin:.25rem 0}.customization-production>details{border:1px solid var(--line);border-radius:.85rem;background:var(--surface-soft)}.customization-production>details>summary{display:flex;justify-content:space-between;padding:1rem;cursor:pointer;font-weight:900}.customization-production>details>summary span{padding:.15rem .5rem;border-radius:999px;background:var(--surface)}.customization-production>details>form,.customization-production>details>.customization-technical-list{margin:0 1rem 1rem}.customization-technical-list{display:grid;gap:.5rem}.customization-technical-list article{display:flex;justify-content:space-between;gap:1rem;padding:.7rem;border-radius:.65rem;background:var(--surface-soft)}
@media(max-width:860px){.customization-hero-mark{display:none}.customization-steps{display:flex;overflow-x:auto}.customization-steps a{min-width:12rem}.customization-builder{grid-template-columns:1fr}.customization-preview-panel{min-height:23rem}.customization-dropzone{height:min(85vw,22rem)}}
@media(max-width:560px){.customization-workspace{gap:.8rem}.customization-steps a{min-width:10.5rem}.customization-gallery,.customization-offer-grid,.customization-review-grid{grid-template-columns:1fr}.customization-technical-list article{flex-direction:column}}
.customization-draft-library{border:1px solid var(--line);border-radius:1rem;background:var(--surface);overflow:hidden}.customization-draft-library>summary{padding:.8rem 1rem;cursor:pointer;font-weight:900;background:var(--surface-soft)}.customization-draft-library>div{display:grid;gap:.65rem;padding:1rem}.customization-draft-library label{display:grid;gap:.3rem;font-weight:750}.customization-library-actions{display:flex;flex-wrap:wrap;gap:.4rem}.customization-shared-template-actions{display:grid;gap:.5rem;padding:.7rem;border-radius:.7rem;background:color-mix(in srgb,var(--organization-primary,var(--brand)) 8%,var(--surface))}.customization-shared-template-actions p{margin:0;color:var(--muted);font-size:.8rem}.customization-draft-library .button-danger{color:#991b1b;border-color:#fecaca;background:#fff7f7}
.reservation-customization-dialog-shell{grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}.reservation-customization-workspace{min-height:0;overflow:hidden}.reservation-customization-tools{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-right:.35rem}.reservation-customization-stage{position:sticky;top:0;align-self:start}.customization-essential-tools{position:sticky;z-index:8;top:0;display:grid;min-width:0;gap:.55rem;padding:.65rem;border:1px solid color-mix(in srgb,var(--organization-primary,var(--brand)) 30%,var(--line));border-radius:.85rem;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 8px 20px rgb(15 23 42 / 12%);backdrop-filter:blur(8px)}.customization-essential-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.customization-object-sliders{display:grid;min-width:0;gap:.35rem}.customization-object-sliders label{display:grid;min-width:0;grid-template-columns:4.2rem minmax(0,1fr) 2.7rem;align-items:center;gap:.35rem;font-size:.75rem}.customization-object-sliders input{width:100%;min-width:0}.customization-object-sliders output{text-align:center}.customization-shape-picker{display:grid;grid-template-columns:repeat(4,minmax(2.5rem,1fr));gap:.35rem;padding:.65rem;border:1px solid var(--line);border-radius:.75rem}.customization-shape-picker legend{padding:0 .3rem;font-weight:900}.customization-shape-picker button{min-height:2.7rem;padding:.35rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);font-size:1.3rem;cursor:pointer}.customization-shape-picker [data-customization-clear-drawing]{grid-column:1/-1;font-size:.75rem}.customization-motif-picker{max-height:15rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.customization-canvas-element.is-shape svg{width:100%;height:100%;overflow:visible;pointer-events:none}.customization-canvas-element.is-shape :is(circle,ellipse,rect,polygon,line,path){fill:none;stroke:#111;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
@media(max-width:760px){.reservation-customization-dialog-shell{height:calc(100dvh - 1rem);max-height:none}.reservation-customization-workspace{grid-template-rows:minmax(15rem,42dvh) minmax(0,1fr);height:100%}.reservation-customization-stage{grid-row:1;width:auto!important;height:100%!important}.reservation-customization-tools{grid-row:2}.customization-essential-tools{top:0}.customization-shape-picker{grid-template-columns:repeat(4,minmax(2.5rem,1fr))}}
.customization-client-page{display:grid;gap:1rem;width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:clamp(1rem,3vw,2.5rem) 0}.customization-client-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.customization-client-header h1{margin:.1rem 0;font-size:clamp(1.8rem,4vw,3rem)}.customization-client-header p{margin:0;color:var(--muted)}.customization-client-studio{display:grid;grid-template-columns:minmax(17rem,.65fr) minmax(20rem,1.35fr);min-height:70vh;overflow:hidden;border:1px solid var(--line);border-radius:1.5rem;background:var(--surface);box-shadow:0 24px 70px rgb(15 23 42 / 15%)}.customization-client-tools{display:grid;align-content:start;gap:1rem;padding:clamp(1rem,3vw,2rem);border-right:1px solid var(--line);background:var(--surface-soft)}.customization-client-tools h2{margin:.1rem 0}.customization-text-tool{display:grid;gap:.4rem}.customization-text-tool span,.customization-draw-tools strong,.customization-coming-tool>span{font-weight:900}.customization-text-tool input{min-height:3.25rem;font-size:1.1rem}.customization-draw-tools,.customization-coming-tool{display:grid;gap:.4rem;padding:1rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface)}.customization-draw-tools p{margin:0;color:var(--muted)}.customization-coming-tool{opacity:.65}.customization-client-actions{display:grid;gap:.6rem;margin-top:auto}.customization-object-stage{display:grid;place-items:center;align-content:center;gap:1rem;padding:clamp(1rem,4vw,3rem);background:radial-gradient(circle at 50% 35%,#fff 0,#edf2f5 58%,#dce4e8 100%)}.customization-object-frame{position:relative;width:min(100%,42rem);height:min(65vw,38rem);filter:drop-shadow(0 22px 26px rgb(15 23 42 / 18%))}.customization-object-frame>img{width:100%;height:100%;object-fit:contain}.customization-object-placeholder{display:grid;place-items:center;align-content:center;width:100%;height:100%;border:2px dashed #94a3b8;border-radius:50%;color:#475569;background:#fff}.customization-object-placeholder span{font-size:4rem}.customization-live-design{position:absolute;left:var(--design-left);bottom:var(--design-bottom);width:var(--design-width);height:var(--design-height);overflow:hidden;border:2px dashed #ef4444;background:rgb(255 255 255 / 18%);box-shadow:0 0 0 1px rgb(255 255 255 / 70%);touch-action:none}.customization-live-design canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.customization-live-design>span{position:absolute;inset:0;display:grid;place-items:center;padding:.2rem;color:#171717;font-size:clamp(.8rem,3vw,2.5rem);font-weight:900;text-align:center;line-height:1;pointer-events:none;text-shadow:0 1px #fff}.customization-object-stage>p{display:flex;align-items:center;gap:.5rem;margin:0;color:#475569;font-size:.82rem}.customization-object-stage>p>span{width:1.2rem;border-top:2px dashed #ef4444}
@media(max-width:800px){.customization-client-studio{grid-template-columns:1fr}.customization-client-tools{border-right:0;border-bottom:1px solid var(--line)}.customization-object-stage{grid-row:1}.customization-object-frame{height:min(95vw,32rem)}.customization-client-header{align-items:flex-start;flex-direction:column}}

@media print {
  .site-publisher-credit {
    display: none !important;
  }
  .device-receipt-page {
    display: block;
    padding: 0;
    background: #fff;
  }

  .device-receipt-card {
    width: 80mm;
    padding: 0;
  }

  .device-receipt-actions,
  .device-toast-stack {
    display: none !important;
  }

  .device-receipt-layout {
    display: block;
  }
}

.auth-page {
  display: grid;
  min-height: 100vh;
  padding: 24px;
  place-items: center;
  background: radial-gradient(circle at top right, #d7edf2, transparent 40%), var(--bg);
}

.auth-card {
  width: min(440px, 100%);
  padding: 36px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: var(--shadow);
}

.auth-brand {
  margin-bottom: 36px;
}

.auth-card h1 {
  margin-bottom: 8px;
}

.auth-card .button {
  margin-top: 18px;
}

.auth-switch {
  margin-top: 24px;
  color: var(--muted);
  text-align: center;
}

.auth-switch a {
  color: var(--brand);
  font-weight: 750;
}

.field-help {
  margin: 0;
  font-size: .9rem;
  text-align: right;
}

.field-help a {
  color: var(--brand);
  font-weight: 700;
}

.code-input {
  font-size: 1.35rem;
  letter-spacing: .25em;
  text-align: center;
}

.public-actions {
  display: flex;
  gap: 10px;
  margin-top: 24px;
  flex-wrap: wrap;
}

.public-portal {
  color-scheme: var(--organization-color-scheme, light);
  /*
   * Contrat de thème des modules d'organisation : tout nouveau composant doit
   * consommer ces jetons sémantiques et ne jamais supposer un fond blanc.
   */
  --surface: var(--organization-surface);
  --ink: var(--organization-text);
  --brand: color-mix(in srgb, var(--organization-primary) 35%, var(--organization-text));
  --brand-dark: var(--brand);
  --accent: var(--organization-accent);
  --muted: color-mix(in srgb, var(--organization-text) 68%, var(--organization-surface));
  --line: color-mix(in srgb, var(--organization-text) 20%, var(--organization-surface));
  --surface-soft: color-mix(in srgb, var(--organization-text) 6%, var(--organization-surface));
  --surface-selected: color-mix(in srgb, var(--organization-primary) 20%, var(--organization-surface));
  --surface-positive: color-mix(in srgb, #32a66a 22%, var(--organization-surface));
  width: 100%;
  max-width: none;
  min-width: 0;
  color: var(--organization-text);
  background: var(--organization-page);
  border-radius: var(--radius);
}

body:has(.public-portal) {
  color: var(--organization-page-ink);
  background: var(--organization-page);
}

body:has(.public-portal) .site-publisher-credit {
  color: color-mix(in srgb, var(--organization-page-ink) 72%, var(--organization-page));
  background: var(--organization-page);
}

.public-portal :is(.module-card, .public-card, .project-card, .idea-panel, .idea-management, .task-card) {
  color: var(--organization-text);
}

.public-portal .checkbox-group label,
.public-portal .module-pill,
.public-portal .choice-button,
.public-portal .participant-card,
.public-portal .version-card,
.public-portal .idea-comment,
.public-portal .idea-version-list > li,
.public-portal .idea-round-list > li,
.public-portal .idea-promotion-status,
.public-portal .idea-panel > summary,
.public-portal .idea-management > summary,
.public-portal .kanban-column {
  color: var(--organization-text);
  background: var(--surface-soft);
}

.public-portal .checkbox-group label:has(input:checked),
.public-portal .module-pill.is-enabled,
.public-portal .choice-button.is-selected,
.public-portal .participant-card.is-selected,
.public-portal .version-card.is-published {
  color: var(--organization-text);
  background: var(--surface-positive);
}

.public-portal :is(.badge-draft, .badge-invited, .badge-pending) {
  color: var(--organization-text);
  background: var(--surface-soft);
}

.public-portal :is(.badge-published, .badge-active, .badge-verified) {
  color: var(--organization-text);
  background: var(--surface-positive);
}

.public-portal .idea-panel,
.public-portal .idea-management,
.public-portal .idea-panel > :not(summary),
.public-portal .idea-management > :not(summary),
.public-portal .idea-version-rounds,
.public-portal dialog {
  color: var(--organization-text);
  background: var(--organization-surface);
}

.public-portal input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.public-portal select,
.public-portal textarea {
  color: var(--organization-field-ink);
  background: var(--organization-field);
  border-color: var(--line);
}

.public-portal input::placeholder,
.public-portal textarea::placeholder {
  color: color-mix(in srgb, var(--organization-field-ink) 62%, var(--organization-field));
  opacity: 1;
}

.public-portal .button-primary {
  color: var(--organization-primary-ink);
  background: var(--organization-primary);
  border-color: var(--organization-primary);
}

.public-portal .portal-nav-links a.is-active {
  color: var(--organization-primary-ink);
  background: var(--organization-primary);
}

.portal-nav {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px 18px;
  margin-bottom: 22px;
  background: color-mix(in srgb, var(--organization-surface) 94%, transparent);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.portal-nav-brand {
  display: flex;
  gap: 10px;
  align-items: center;
  text-decoration: none;
}

.portal-nav-brand .brand-mark {
  width: 34px;
  height: 34px;
  background: var(--organization-accent);
  color: var(--organization-accent-ink);
  border-radius: 9px;
}

.auth-page:has(.public-portal) {
  background: radial-gradient(circle at top right, color-mix(in srgb, var(--organization-primary) 18%, var(--organization-page)), transparent 42%), var(--organization-page);
}

.portal-organization-logo {
  width: 38px;
  height: 38px;
  object-fit: contain;
  background: var(--organization-logo-background, transparent);
  border: 1px solid var(--line);
  border-radius: 9px;
}

.portal-nav-brand>span:last-child {
  display: grid;
}

.portal-nav-brand small {
  color: var(--muted);
}

.portal-nav-links {
  display: flex;
  grid-column: 1 / -1;
  grid-row: 2;
  gap: 5px;
  justify-content: flex-start;
  padding: 4px;
  flex-wrap: wrap;
  background: var(--surface-soft, #edf2f4);
  border-radius: 10px;
}

.portal-nav-links a {
  padding: 8px 13px;
  color: var(--muted);
  font-weight: 750;
  text-decoration: none;
  border-radius: 7px;
}

.portal-nav-links a:hover,
.portal-nav-links a.is-active {
  color: var(--ink);
  background: color-mix(in srgb, var(--ink) 10%, var(--surface));
  box-shadow: 0 2px 8px rgba(23, 33, 43, .08);
}

.portal-nav-account {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  color: var(--muted);
  font-size: .88rem;
}

.portal-nav-account form {
  margin: 0;
}

.portal-nav-mobile {
  display: none;
}

.portal-notification-link { position: relative; display: grid; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; place-items: center; color: #7b8791; border-radius: 50%; text-decoration: none; }
.portal-notification-link:hover, .portal-notification-link:focus-visible { background: var(--surface-soft, #edf2f4); color: var(--brand-dark); }
.portal-notification-link svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.portal-notification-link.has-unread { color: #c83232; }
.portal-notification-link > span { position: absolute; top: -.2rem; right: -.3rem; display: grid; min-width: 1.15rem; height: 1.15rem; padding: 0 .25rem; place-items: center; color: #fff; background: #c83232; border: 2px solid var(--surface); border-radius: 999px; font-size: .64rem; font-weight: 850; line-height: 1; }
.portal-notifications { position: relative; }
.portal-notifications > summary { list-style: none; cursor: pointer; }
.portal-notifications > summary::-webkit-details-marker { display: none; }
.portal-notification-panel { position: absolute; z-index: 80; top: calc(100% + .7rem); right: 0; width: min(25rem, calc(100vw - 2rem)); padding: .65rem; color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); border: 1px solid color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 16%, transparent); border-radius: 1rem; box-shadow: 0 18px 45px rgba(15, 25, 35, .2); }
.portal-notification-panel > header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .25rem .35rem .6rem; }
.portal-notification-panel > header span { color: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 62%, transparent); font-size: .76rem; }
.portal-notification-items { display: grid; gap: .3rem; }
.portal-notification-items form { margin: 0; }
.portal-notification-items button { width: 100%; padding: .65rem .7rem; color: inherit; text-align: left; background: color-mix(in srgb, var(--organization-field, var(--surface-soft)) 84%, transparent); border: 1px solid transparent; border-radius: .7rem; cursor: pointer; }
.portal-notification-items button:hover, .portal-notification-items button:focus-visible { border-color: var(--organization-primary, var(--brand)); background: color-mix(in srgb, var(--organization-primary, var(--brand)) 10%, var(--organization-field, var(--surface-soft))); }
.portal-notification-items button > span { display: flex; align-items: baseline; justify-content: space-between; gap: .7rem; }
.portal-notification-items strong { overflow: hidden; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.portal-notification-items time { flex: 0 0 auto; color: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 58%, transparent); font-size: .69rem; }
.portal-notification-items small { display: -webkit-box; margin-top: .2rem; overflow: hidden; color: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 70%, transparent); font-size: .73rem; line-height: 1.3; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.portal-notification-empty { margin: .2rem; padding: 1rem; text-align: center; color: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 65%, transparent); }
.portal-mobile-notifications > summary { list-style: none; cursor: pointer; }
.portal-mobile-notifications > summary::-webkit-details-marker { display: none; }
.portal-mobile-notifications .portal-notification-items { padding: .4rem; }

@media (max-width: 600px) {
  .portal-nav {
    position: relative;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 11px 12px;
  }

  .portal-nav-brand,
  .portal-nav-brand > span:last-child {
    min-width: 0;
  }

  .portal-nav-brand strong,
  .portal-nav-brand small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .portal-nav > .portal-nav-desktop {
    display: none;
  }

  .portal-nav-mobile {
    display: block;
    align-self: center;
  }

  .portal-nav-mobile > summary {
    display: flex;
    gap: 7px;
    align-items: center;
    min-height: 40px;
    padding: 8px 11px;
    color: var(--brand-dark);
    font-weight: 800;
    cursor: pointer;
    list-style: none;
    background: var(--surface-soft, #edf2f4);
    border-radius: 9px;
  }

  .portal-nav-mobile > summary::-webkit-details-marker {
    display: none;
  }

  .portal-nav-mobile > summary svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
  }

  .portal-nav-mobile[open] > summary {
    color: var(--organization-primary-ink);
    background: var(--organization-primary);
  }

  .portal-nav-mobile-panel {
    position: absolute;
    z-index: 80;
    top: calc(100% - 3px);
    right: 12px;
    left: 12px;
    display: grid;
    gap: 10px;
    padding: 10px;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: 0 18px 42px rgb(23 42 51 / 22%);
  }

  .portal-nav-mobile-links,
  .portal-nav-mobile-account {
    display: grid;
    gap: 4px;
  }

  .portal-nav-mobile-links a,
  .portal-mobile-account-link,
  .portal-nav-mobile-account button {
    display: flex;
    width: 100%;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    padding: 9px 11px;
    color: var(--ink);
    font: inherit;
    font-weight: 750;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    background: transparent;
    border: 0;
    border-radius: 8px;
  }

  .portal-nav-mobile-links a:hover,
  .portal-nav-mobile-links a:focus-visible,
  .portal-mobile-account-link:hover,
  .portal-mobile-account-link:focus-visible,
  .portal-nav-mobile-account button:hover,
  .portal-nav-mobile-account button:focus-visible,
  .portal-nav-mobile-links a.is-active {
    color: var(--ink);
    background: var(--surface-soft, #edf4f6);
  }

  .portal-nav-mobile-account {
    padding-top: 8px;
    border-top: 1px solid var(--line);
  }

  .portal-nav-mobile-account form {
    margin: 0;
  }

  .portal-mobile-notification-count {
    display: grid;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    place-items: center;
    color: #fff;
    font-size: .72rem;
    background: #c83232;
    border-radius: 999px;
  }
}

.profile-link {
  display: flex;
  gap: 7px;
  align-items: center;
  color: var(--ink);
  text-decoration: none;
}

.profile-link img,
.profile-link>span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  object-fit: cover;
  color: #fff;
  font-weight: 800;
  background: var(--brand);
  border-radius: 50%;
}

.profile-header {
  display: flex;
  gap: 24px;
  align-items: center;
  justify-content: space-between;
  padding: 26px;
  margin-bottom: 22px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.profile-identity {
  display: flex;
  gap: 18px;
  align-items: center;
}

.profile-identity h1 {
  margin: 4px 0;
}

.profile-avatar {
  display: grid;
  width: 86px;
  height: 86px;
  flex: 0 0 86px;
  place-items: center;
  object-fit: cover;
  border: 4px solid #dff1f5;
  border-radius: 50%;
}

.profile-avatar-placeholder {
  color: #fff;
  font-size: 2rem;
  font-weight: 850;
  background: var(--brand);
}

.profile-card {
  max-width: none;
}

.profile-card h2 {
  margin-top: 7px;
}

.profile-future {
  margin-top: 22px;
}

.kanban {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}

.kanban-column {
  min-height: 180px;
  padding: 16px;
  background: #edf2f4;
  border-radius: var(--radius);
}

.kanban-column h3 {
  margin-top: 0;
}

.task-card {
  display: grid;
  gap: 8px;
  padding: 14px;
  margin-top: 10px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 9px;
}

.task-card p {
  margin: 0;
  color: var(--muted);
}

.task-card select {
  width: 100%;
  min-height: 36px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 7px;
}

.poll-options {
  display: grid;
  gap: 8px;
}

.poll-options label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 11px 12px;
  cursor: pointer;
  background: var(--surface-soft, #f7f9fa);
  border: 1px solid var(--line);
  border-radius: 9px;
}

.poll-options label:has(input:checked) {
  background: var(--surface-positive, #e8f7ef);
  border-color: color-mix(in srgb, var(--success) 58%, var(--line));
}

.poll-options strong {
  color: var(--brand);
  font-size: .8rem;
}

.idea-card {
  display: grid;
  gap: 12px;
  scroll-margin-top: 1rem;
}

.idea-card-heading,
.vote-actions,
.vote-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.vote-bar {
  display: flex;
  width: 100%;
  height: 14px;
  overflow: hidden;
  background: #d7dde0;
  border-radius: 999px;
}

.vote-bar span {
  min-width: 0;
  transition: width .2s ease;
}

.vote-yes,
.vote-legend i.yes {
  background: #24915f;
}

.vote-no,
.vote-legend i.no {
  background: #c74a4a;
}

.vote-blank,
.vote-legend i.blank {
  background: #f8fafc;
  box-shadow: inset 0 0 0 1px #94a3b8;
}

.vote-none,
.vote-legend i.none {
  background: #94a3b8;
}

.vote-legend {
  color: var(--muted);
  font-size: .8rem;
}

.vote-legend span {
  display: inline-flex;
  gap: 5px;
  align-items: center;
}

.idea-panel,
.idea-management {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.idea-panel > summary,
.idea-management > summary {
  padding: 11px 13px;
  cursor: pointer;
  color: var(--brand);
  background: #f7f9fa;
  font-weight: 750;
}

.idea-panel[open] > summary,
.idea-management[open] > summary {
  border-bottom: 1px solid var(--line);
}

.idea-panel > :not(summary),
.idea-management > :not(summary) {
  margin: 12px;
}

.idea-timeline {
  display: grid;
  gap: 8px;
}

.idea-all-comments {
  border-top: 1px dashed var(--line);
  padding-top: 8px;
}

.idea-all-comments > summary {
  cursor: pointer;
  color: var(--brand);
  font-weight: 700;
}

.idea-timeline-scroll {
  max-height: 24rem;
  overflow-y: auto;
  padding-right: 5px;
  margin-top: 10px;
}

.idea-comment {
  padding: 10px 12px;
  border-left: 3px solid color-mix(in srgb, var(--brand) 45%, #fff);
  background: #f7f9fa;
  border-radius: 0 8px 8px 0;
}

.idea-comment small {
  margin-left: 6px;
  color: var(--muted);
}

.idea-comment p,
.idea-history-list {
  margin-block: 6px 0;
}

.idea-comment-reactions {
  display: flex;
  gap: 7px;
  margin-top: 8px;
}

.reaction-button {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  padding: 3px 6px;
  cursor: pointer;
  border: 0;
  border-radius: 6px;
  background: transparent;
  box-shadow: none;
  font: inherit;
}

.reaction-button:hover:not(:disabled),
.reaction-button.is-selected {
  background: color-mix(in srgb, var(--brand) 10%, #fff);
}

.task-timeline { display:grid; gap:.55rem; margin:1rem 0 1.4rem; overflow-x:auto; }
.task-timeline-row { display:grid; grid-template-columns:minmax(9rem, 18rem) minmax(34rem, 1fr); align-items:center; gap:.75rem; }
.task-timeline-row > span { font-size:.88rem; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.task-timeline-row.is-late > span { color:#a52620; }
.task-timeline-row.is-late .task-timeline-track { outline:2px solid color-mix(in srgb, #b83a32 72%, transparent); }
.task-timeline-row.is-blocked:not(.is-late) > span { color:#855b00; }
.task-timeline-row.is-blocked:not(.is-late) .task-timeline-track { outline:2px dashed color-mix(in srgb, #b76b00 72%, transparent); }
.task-timeline-row.has-duration-warning .task-timeline-track { box-shadow:0 0 0 3px color-mix(in srgb, #b83a32 28%, transparent); }
.task-timeline-track { position:relative; min-height:2rem; border-radius:999px; background:color-mix(in srgb, var(--surface-muted, #eef2f7) 85%, transparent); }
.task-timeline-popover { position:absolute; inset-block:.22rem; min-width:5rem; z-index:2; }
.task-timeline-popover.is-milestone { width:0 !important; min-width:2rem; transform:translateX(-1rem); }
.task-timeline-popover.is-milestone .task-timeline-bar { width:2rem; min-width:2rem; padding:.28rem; overflow:visible; border-radius:.3rem; background:#275a9f; transform:rotate(45deg); }
.task-timeline-popover.is-milestone .task-timeline-label { display:block; width:8rem; margin-left:1.7rem; transform:rotate(-45deg) translateY(-.2rem); transform-origin:left center; color:var(--text, #172033); text-shadow:none; }
.task-timeline-popover.is-duration-short .task-timeline-bar::after { content:""; position:absolute; z-index:1; inset-block:0; left:var(--planned-ratio); right:0; background:repeating-linear-gradient(135deg, rgba(255,255,255,.1) 0 5px, rgba(184,58,50,.9) 5px 10px); }
.task-timeline-popover[open] { z-index:20; }
.task-timeline-bar { position:relative; display:block; min-height:1.55rem; padding:.28rem .65rem; overflow:hidden; border-radius:999px; color:#fff; background:#7b8493; font-size:.72rem; white-space:nowrap; text-overflow:ellipsis; cursor:pointer; list-style:none; }
.task-timeline-bar::-webkit-details-marker { display:none; }
.task-coverage-segments, .task-coverage-segments i { position:absolute; inset-block:0; }
.task-coverage-segments { inset-inline:0; overflow:hidden; border-radius:inherit; }
.task-coverage-segments i { display:block; }
.task-coverage-segments .coverage-none { background:#7b8493; }
.task-coverage-segments .coverage-partial { background:#d97706; }
.task-coverage-segments .coverage-filled { background:#17834f; }
.task-coverage-segments .coverage-overstaffed { background:#7c3aed; }
.task-timeline-label { position:relative; z-index:2; text-shadow:0 1px 2px rgba(0,0,0,.65); }
.task-coverage-legend { display:flex; flex-wrap:wrap; gap:.45rem 1rem; margin:-.8rem 0 1rem; font-size:.78rem; }
.task-coverage-legend span { display:inline-flex; align-items:center; gap:.35rem; }
.task-coverage-legend i { width:.75rem; height:.75rem; border-radius:50%; }
.task-coverage-legend .coverage-none { background:#7b8493; }
.task-coverage-legend .coverage-partial { background:#d97706; }
.task-coverage-legend .coverage-filled { background:#17834f; }
.task-coverage-legend .coverage-overstaffed { background:#7c3aed; }
.task-coverage-legend .coverage-milestone { border-radius:.15rem; background:#275a9f; transform:rotate(45deg); }
.task-timeline-tooltip { position:absolute; top:calc(100% + .4rem); left:0; min-width:18rem; max-width:24rem; padding:.75rem; border:1px solid var(--border, #d8dee8); border-radius:.75rem; background:var(--surface, #fff); box-shadow:0 12px 30px rgba(15,23,42,.18); color:var(--text, #172033); }
.task-timeline-tooltip p { margin:.25rem 0; font-size:.8rem; }
.task-timeline-popover:not([open]):hover .task-timeline-tooltip { display:block; }
.task-coverage-alert { display:grid; gap:.25rem; margin:.65rem 0; padding:.65rem; border-left:4px solid #b83a32; background:color-mix(in srgb, #b83a32 8%, transparent); }
.task-state-badges { display:flex; flex-wrap:wrap; gap:.35rem; margin:.4rem 0; }
.task-priority-low { background:#eef2f7; color:#445064; }
.task-priority-normal { background:#e7f0ff; color:#275a9f; }
.task-priority-high { background:#fff0d2; color:#855b00; }
.task-priority-critical, .task-state-late { background:#fde5e3; color:#a52620; }
.task-state-blocked { background:#fff0d2; color:#855b00; }
.task-duration-warning, .task-schedule-warning { margin:.55rem 0; padding:.65rem .75rem; border-left:4px solid #b83a32; border-radius:.35rem; background:#fde5e3; color:#7f201b; }
.task-schedule-warning p { margin:.25rem 0 0; }
.task-forecast-note { color:#855b00; font-weight:700; }
.day-schedule { margin:1.25rem 0 1.5rem; padding:1rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.day-schedule-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.day-schedule-heading h3, .day-schedule-heading p { margin:0; }
.day-schedule-heading form { display:flex; align-items:end; gap:.5rem; }
.day-schedule-heading label { font-weight:700; }
.day-schedule-heading input { display:block; margin-top:.25rem; }
.day-schedule-scroll { overflow-x:auto; }
.day-schedule-hours, .day-schedule-row { min-width:48rem; display:grid; grid-template-columns:12rem minmax(34rem, 1fr); gap:.75rem; }
.day-schedule-hours { margin-bottom:.3rem; padding-left:12.75rem; grid-template-columns:repeat(5, 1fr); font-size:.7rem; color:var(--muted); }
.day-schedule-hours span:last-child { text-align:right; }
.day-schedule-row { align-items:center; margin:.35rem 0; }
.day-schedule-task { display:grid; }
.day-schedule-task small { color:var(--muted); }
.day-schedule-track { position:relative; height:2rem; border-radius:.4rem; background:repeating-linear-gradient(to right, transparent 0 calc(25% - 1px), var(--line) calc(25% - 1px) 25%); }
.day-schedule-bar { position:absolute; inset-block:.25rem; min-width:1.25rem; padding:.22rem .45rem; overflow:hidden; border-radius:.35rem; color:#fff; background:#275a9f; font-size:.72rem; white-space:nowrap; text-overflow:ellipsis; }
.day-schedule-bar.priority-low { background:#687386; }
.day-schedule-bar.priority-high { background:#b76b00; }
.day-schedule-bar.priority-critical { background:#b83a32; }
.day-schedule-bar.is-milestone { width:1.25rem !important; min-width:1.25rem; padding:0; transform:rotate(45deg); }
.day-schedule-row.is-restricted { opacity:.42; filter:grayscale(.8); }
@media (max-width: 700px) { .day-schedule-heading { align-items:stretch; flex-direction:column; } .day-schedule-heading form, .day-schedule-heading label, .day-schedule-heading input { width:100%; } }
.task-availability-list { display:grid; gap:.2rem; }
.task-timeline-bar.status-done { background:#17834f; }
.task-timeline-bar.status-in_progress { background:#b76b00; }
.task-management, .task-people { margin-top:.55rem; }
.task-management > summary, .task-people > summary { cursor:pointer; font-weight:700; }
.task-journal { margin-top:.55rem; }
.task-journal > summary { cursor:pointer; font-weight:700; }
.task-comment-list { display:grid; gap:.45rem; max-height:18rem; margin:.55rem 0; overflow:auto; }
.task-comment { padding:.6rem; border-left:3px solid color-mix(in srgb, var(--primary, #5b43d6) 70%, transparent); background:color-mix(in srgb, var(--surface-muted, #eef2f7) 72%, transparent); border-radius:.25rem .65rem .65rem .25rem; }
.task-comment p { margin:.25rem 0 0; }
.task-application, .task-shift { display:flex; justify-content:space-between; align-items:flex-start; gap:.75rem; margin-top:.55rem; padding:.6rem; border:1px solid var(--border, #d8dee8); border-radius:.65rem; }
.task-application p { margin:.25rem 0 0; }

@media (max-width: 720px) {
  .task-timeline-row { grid-template-columns:7rem minmax(28rem, 1fr); }
  .task-application, .task-shift { align-items:stretch; flex-direction:column; }
}

.reaction-button:disabled {
  cursor: default;
  opacity: .55;
}

.idea-version-list,
.idea-round-list {
  display: grid;
  gap: 10px;
  padding: 0;
  list-style-position: inside;
}

.idea-version-list > li,
.idea-round-list > li {
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f7f9fa;
}

.idea-version-heading {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 6px 12px;
}

.idea-version-heading small,
.idea-version-reason {
  color: var(--muted);
}

.idea-version-list p {
  margin: 7px 0 0;
}

.idea-version-rounds {
  display: grid;
  gap: 5px;
  padding: 8px 10px;
  margin-top: 10px;
  border-left: 3px solid var(--brand);
  border-radius: 0 7px 7px 0;
  background: #fff;
}

.idea-version-rounds p {
  margin: 0;
}

.idea-promotion-status {
  padding: 8px 10px;
  margin: 0;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: #f7f9fa;
  font-size: .86rem;
}

.idea-history > h3 {
  margin-bottom: 4px;
  color: var(--text);
  font-size: 1rem;
}

.idea-history > h3:not(:first-of-type) {
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.idea-history-list {
  padding-left: 1.25rem;
  color: var(--muted);
}

.idea-management {
  display: grid;
  gap: 0;
}

.vote-legend i {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
}

.task-card {
  display: grid;
  gap: 8px;
}

.task-inline-form {
  gap: 4px;
}

.budget-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 22px;
}

.budget-summary article {
  display: grid;
  gap: 6px;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.budget-summary span,
.budget-summary small {
  color: var(--muted);
}

.budget-summary strong {
  font-size: 1.35rem;
}

.budget-summary .is-positive strong {
  color: #168052;
}

.budget-summary .is-negative strong {
  color: #b43d3d;
}

.budget-create {
  max-width: none;
}

.budget-form,
.budget-line-form {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
}

.budget-form label,
.budget-line-form label,
.budget-line>label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: .85rem;
  font-weight: 700;
}

.budget-lines {
  display: grid;
  gap: 14px;
}

.budget-line {
  display: grid;
  gap: 14px;
}

.budget-line h3 {
  margin: 6px 0 0;
}

.budget-line input[type="range"] {
  width: 100%;
}

.budget-line-totals {
  display: flex;
  gap: 20px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

@media (max-width: 1100px) {
  .budget-form,
  .budget-line-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .budget-form > .button,
  .budget-line-form > .button {
    grid-column: 1 / -1;
  }
}

.sales-admin-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.sales-key-editor {
  max-width: none;
  margin-top: 18px;
}

.sales-terminal {
  position: relative;
  min-height: 100vh;
  padding: 10px;
  color: #eef4f5;
  background: #0a0e11;
}

.sales-terminal>header {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  padding: 10px 13px;
  background: #151b20;
  border: 1px solid #263139;
  border-radius: 10px;
}

.sales-terminal>header div {
  display: grid;
}

.sales-terminal-menu > summary { display: none; }
.sales-terminal-menu > nav { display: flex; gap: 6px; }

.sales-unlock {
  display: grid;
  min-height: calc(100vh - 100px);
  place-items: center;
  color: var(--ink);
}

.sales-session {
  display: flex;
  justify-content: space-between;
  padding: 6px 11px;
  margin-top: 7px;
  color: #9eb0b8;
  background: #11171b;
  border-radius: 8px;
}

.terrain-diagnostic-dialog {
  width: min(34rem, calc(100% - 1rem));
  padding: 0;
  color: #eef4f5;
  background: #101a21;
  border: 1px solid #355266;
  border-radius: 1rem;
  box-shadow: 0 22px 70px rgb(0 0 0 / 55%);
}

.terrain-diagnostic-dialog::backdrop { background: rgb(2 8 12 / 78%); }
.terrain-diagnostic-dialog form { display: grid; gap: .9rem; padding: 1rem; }
.terrain-kiosk-controls { display: grid; gap: .55rem; padding: .8rem; border: 1px solid var(--line); border-radius: .8rem; background: color-mix(in srgb, var(--organization-primary) 7%, var(--surface)); }
.terrain-kiosk-controls[hidden] { display: none; }
.terrain-kiosk-controls h3, .terrain-kiosk-controls p { margin: 0; }
.terrain-kiosk-controls small { color: var(--muted); }
.terrain-diagnostic-dialog header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.terrain-diagnostic-dialog header :is(h2, p), .terrain-diagnostic-dialog > form > p { margin: 0; }
.terrain-diagnostic-dialog header > button { min-width: 2.5rem; min-height: 2.5rem; color: inherit; background: #1c2b35; border: 1px solid #355266; border-radius: .65rem; }
.terrain-diagnostic-state { padding: .7rem .8rem; color: #b9ced8; background: #16242c; border-radius: .7rem; }
.terrain-load-generator { display: grid; gap: .7rem; padding: .85rem; border: 1px solid #755d18; border-radius: .8rem; background: #241f10; }
.terrain-load-generator :is(h3, p) { margin: 0; }
.terrain-load-generator label { display: grid; gap: .35rem; }
.terrain-load-generator input { color: #eef4f5; background: #101a21; border-color: #526775; }
.terrain-load-generator > div { display: flex; flex-wrap: wrap; gap: .5rem; }

.sales-layout {
  display: grid;
  grid-template-columns: minmax(0, 2.4fr) minmax(260px, .75fr);
  gap: 8px;
  margin-top: 8px;
}

.sales-pad-wrap {
  min-width: 0;
}

.sales-pad {
  display: grid;
  grid-auto-rows: 74px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-flow: row;
  gap: 8px;
  align-content: start;
}

.sales-key {
  display: grid;
  gap: 4px;
  place-content: center;
  padding: 10px;
  color: #fff;
  text-align: center;
  background: var(--brand);
  border: 0;
  border-radius: 12px;
  box-shadow: var(--shadow);
  touch-action: manipulation;
}

.sales-key span {
  color: rgb(255 255 255 / 76%);
  font-size: .78rem;
}

.sales-terminal[data-machine-mode="1"] .sales-key { font-size: calc(1rem * var(--terrain-sale-text-scale, 1)); }
.sales-terminal[data-machine-mode="1"] .sales-key span { font-size: calc(.78rem * var(--terrain-sale-text-scale, 1)); }
.sales-terminal[data-machine-mode="1"] .sales-cart-line { font-size: calc(1rem * var(--terrain-sale-text-scale, 1)); }
.sales-terminal[data-machine-mode="1"] .sales-cart-line small,
.sales-terminal[data-machine-mode="1"] .sales-cart-menu-details { font-size: calc(.72rem * var(--terrain-sale-text-scale, 1)); }

.sales-menu-dialog { width: min(680px, calc(100% - 1rem)); max-height: calc(100dvh - 1rem); padding: 0; border: 1px solid #355266; border-radius: 1rem; background: #101a21; color: #fff; box-shadow: 0 22px 70px rgb(0 0 0 / 55%); }
.sales-menu-dialog::backdrop { background: rgb(2 8 12 / 75%); }
.sales-menu-dialog form { display: grid; max-height: calc(100dvh - 1rem); grid-template-rows: auto minmax(0, 1fr) auto; }
.sales-menu-dialog header, .sales-menu-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .8rem; background: #182832; }
.sales-menu-dialog h2 { margin: .1rem 0 0; }
.sales-menu-dialog header > button { width: 2.4rem; height: 2.4rem; border: 0; border-radius: 999px; background: #304754; color: #fff; font-size: 1.4rem; }
.sales-menu-dialog-groups { display: grid; gap: .65rem; overflow-y: auto; padding: .8rem; }
.sales-menu-dialog fieldset { display: grid; gap: .4rem; padding: .65rem; border: 1px solid #355266; border-radius: .7rem; }
.sales-menu-dialog fieldset.has-error { border-color: #ff6257; box-shadow: 0 0 0 2px rgb(255 98 87 / 22%); }
.sales-menu-dialog legend { display: flex; align-items: baseline; gap: .5rem; padding: 0 .3rem; font-weight: 800; }
.sales-menu-dialog legend small { color: #9eb0b8; font-weight: 500; }
.sales-menu-dialog fieldset > label { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .55rem; padding: .55rem; border-radius: .55rem; background: #20343f; }
.sales-menu-dialog fieldset > label > span:not(.sales-menu-reuse) { display: grid; }
.sales-menu-dialog fieldset small { color: #aabcc6; }
.sales-menu-reuse { color: #bfe8f3; font-size: .76rem; white-space: nowrap; }
.sales-menu-dialog footer strong { display: block; font-size: 1.2rem; }
.sales-product-action-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .35rem; padding: .65rem .8rem 0; }
.sales-product-action-tabs button { min-width: 0; min-height: 3.2rem; display: grid; place-items: center; gap: .1rem; padding: .3rem .15rem; color: #eaf4f8; background: #20343f; border: 1px solid #355266; border-radius: .65rem; }
.sales-product-action-tabs button[aria-pressed="true"] { color: #fff; background: #7046d8; border-color: #9d7ff0; }
.sales-product-action-tabs button span { font-size: 1.15rem; }
.sales-product-action-tabs button small { max-width: 100%; overflow: hidden; color: inherit; font-size: .7rem; text-overflow: ellipsis; }
.sales-menu-dialog [data-product-action-panel] { min-height: 8rem; overflow-y: auto; padding: .8rem; }
.sales-menu-dialog [data-product-action-panel="options"] { padding: 0; }
.sales-menu-dialog [data-product-action-panel] > label { display: grid; gap: .35rem; }
.sales-menu-dialog [data-product-action-panel] textarea { width: 100%; }
.sales-menu-dialog form > footer[hidden] { display: none; }
.sales-terrain-action-panel { display: grid; align-content: start; gap: .75rem; }
.sales-terrain-action-panel[hidden] { display: none; }
.sales-terrain-action-panel .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.sales-terrain-action-panel label { display: grid; gap: .3rem; color: #eaf4f8; font-size: .82rem; font-weight: 750; }
.sales-terrain-action-panel :is(input, select, textarea) { width: 100%; color: #fff; background: #20343f; border: 1px solid #4b6878; }
.sales-terrain-action-status { display: grid; gap: .25rem; padding: .75rem; border: 1px solid #355266; border-radius: .7rem; background: #182832; }
.sales-terrain-action-status small { color: #bcd0da; }
.sales-key.is-locally-unavailable { position: relative; filter: saturate(.25); opacity: .68; }
.sales-key.is-locally-unavailable::after { content: 'RUPTURE'; position: absolute; inset: auto .35rem .35rem; padding: .16rem .3rem; border-radius: .35rem; color: #fff; background: #a21a32; font-size: .62rem; font-weight: 900; letter-spacing: .04em; }

.sales-subpad[hidden],
[data-main-pad][hidden],
.sales-payment-view[hidden] {
  display: none !important;
}

.sales-subpad.is-list {
  display: grid;
  grid-auto-rows: 58px;
  grid-template-columns: 1fr;
}

.sales-subpad.is-list .sales-key {
  grid-column: span 1 !important;
  grid-row: span 1 !important;
  place-content: center start;
  text-align: left;
}

.sales-group-key {
  outline: 2px solid rgb(255 255 255 / 20%);
  outline-offset: -5px;
}

.sales-back-key {
  color: #d8e2e5;
  background: #28343a;
}

.sales-key:active {
  transform: scale(.97);
}

.sales-cart {
  position: relative;
  min-height: calc(100vh - 92px);
  padding: 12px;
  background: #151b20;
  border: 1px solid #263139;
  border-radius: 10px;
}

.sales-cart-head {
  display: flex;
  align-items: center;
  gap: .45rem;
  justify-content: space-between;
}

.sales-cart-head h2 {
  margin: 0;
  font-size: 1rem;
}

.sales-cart-head strong {
  color: #65d49a;
  font-size: 1.35rem;
}

.sales-cart-total {
  display: grid;
  flex: 0 0 auto;
  justify-items: end;
  line-height: 1.05;
}

.sales-cart-total small {
  color: #afbec4;
  font-size: .66rem;
  font-weight: 750;
}

.sales-cart-service {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .3rem;
  color: #afbec4;
  font-size: .65rem;
  font-weight: 750;
}

.sales-cart-service[hidden] { display: none; }

.sales-cart-service select {
  min-width: 0;
  max-width: 11rem;
  min-height: 28px;
  padding: .2rem 1.45rem .2rem .45rem;
  color: #eef4f5;
  background: #202b31;
  border: 1px solid #34464f;
  border-radius: 6px;
  font-size: .68rem;
  font-weight: 750;
}

.sales-cart-toggle {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: 0;
  color: #eef4f5;
  background: transparent;
  border: 0;
  font-size: 1rem;
  font-weight: 800;
}

.sales-cart-toggle [data-cart-toggle-icon] { display: none; }

.sales-cart-group-toggle {
  min-height: 28px;
  margin-left: auto;
  padding: .25rem .5rem;
  color: #b9c8cd;
  background: #202b31;
  border: 1px solid #34464f;
  border-radius: 6px;
  font-size: .68rem;
  font-weight: 750;
}

.sales-cart-group-toggle[aria-pressed="true"] { color: #c9f4dc; border-color: #39795a; background: #173526; }

.sales-cart-lines {
  max-height: 31vh;
  overflow-y: auto;
}

.sales-cart-family {
  position: sticky;
  z-index: 1;
  top: 0;
  padding: .26rem 0 .2rem;
  color: #8fc9ac;
  background: #151b20;
  border-bottom: 1px solid #345345;
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.sales-cart-family {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
}

.sales-cart-family strong {
  display: inline-grid;
  min-width: 1.25rem;
  min-height: 1.25rem;
  padding: 0 .25rem;
  color: #d9f7e7;
  background: #294c3a;
  border-radius: 999px;
  font-size: .62rem;
  letter-spacing: 0;
  place-items: center;
}

.sales-cart-line {
  display: flex;
  width: 100%;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
  padding: 11px 0;
  text-align: left;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
}

.sales-cart-line span {
  display: grid;
}

.sales-cart-line > span:first-child { min-width: 0; }
.sales-cart-menu-details { display: grid; gap: .12rem; margin-top: .28rem; padding-left: .45rem; border-left: 2px solid #4e6771; color: #b9c8cd !important; font-size: .72rem; line-height: 1.25; }
.sales-cart-menu-details span { overflow-wrap: anywhere; }
.sales-cart-menu-change { position: relative; z-index: 2; max-width: 100%; justify-self: start; min-height: 25px; margin-top: .25rem; padding: .2rem .4rem; color: #dbe8eb; background: #26343b; border: 1px solid #3c4e56; border-radius: 6px; font-size: .66rem; font-weight: 750; pointer-events: auto; touch-action: manipulation; }
.sales-cart-line-actions { display: flex !important; flex: 0 0 auto; align-items: center; gap: .35rem; }
.sales-cart-line-actions button { min-height: 32px; padding: .35rem .55rem; color: #dbe8eb; background: #26343b; border: 1px solid #3c4e56; border-radius: 7px; font-size: .72rem; font-weight: 750; }
.sales-cart-line-actions .sales-cart-remove { width: 34px; padding: 0; color: #ffb9b9; font-size: 1.25rem; }

.sales-menu-variant-picker { display: grid; gap: .35rem; margin: 0 1rem .8rem; color: #b9c8cd; font-size: .78rem; font-weight: 750; }
.sales-menu-variant-toggle { display: flex; width: 100%; min-height: 42px; align-items: center; justify-content: space-between; gap: .6rem; padding: .55rem .7rem; color: #eef5f6; text-align: left; background: #172127; border: 1px solid #3b4d55; border-radius: 8px; }
.sales-menu-variant-toggle strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sales-menu-variant-options { display: grid; max-height: min(16rem, 42dvh); gap: 1px; overflow-y: auto; overscroll-behavior: contain; padding: 3px; background: #0e161b; border: 1px solid #4c6a79; border-radius: 8px; box-shadow: 0 10px 24px rgb(0 0 0 / 45%); }
.sales-menu-variant-options button { min-height: 42px; padding: .55rem .65rem; color: #eaf4f8; text-align: left; background: #1b2a32; border: 0; border-radius: 5px; touch-action: manipulation; }
.sales-menu-variant-options button[aria-selected="true"] { color: #0a2017; background: #76d6a5; font-weight: 850; }
.sales-menu-smart { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: 0 1rem .8rem; padding: .75rem; color: #e9fbf2; background: #17352b; border: 1px solid #2e7658; border-radius: 9px; }
.sales-menu-smart span { display: grid; gap: .15rem; }
.sales-menu-smart small { color: #b9dfcd; }
.sales-menu-reuse {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  width: 42px;
  min-width: 42px;
  padding: .45rem;
  color: #dce8eb;
  font-size: .8rem;
  font-weight: 800;
  background: #263840;
  border: 1px solid #4d6974;
  border-radius: 8px;
  cursor: pointer;
}
.sales-menu-reuse svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sales-menu-reuse[aria-pressed="true"] { color: #071811; background: #71d6a5; border-color: #71d6a5; }
.sales-variant-links { display: grid; gap: .65rem; margin: 1rem 0; padding: .9rem; background: #f5f8f9; border: 1px solid var(--line); border-radius: 10px; }
.sales-variant-links > div, .sales-variant-links article span { display: grid; gap: .18rem; }
.sales-variant-links small { color: var(--muted); }
.sales-variant-links article { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .6rem .7rem; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.sales-variant-links > form { display: grid; grid-template-columns: minmax(160px, .7fr) minmax(260px, 1.3fr) auto; align-items: end; gap: .65rem; }
.sales-variant-links label { display: grid; gap: .3rem; }
.sales-variant-links select[multiple] { min-height: 9rem; }

.sales-cart-line,
.sales-cart-line small {
  color: #eaf0f2;
}

@media (max-width: 620px) {
  .sales-cart-line { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: start; gap: .3rem; }
  .sales-cart-line.has-menu-configuration > span:first-child { grid-column: 1 / -1; width: 100%; }
  .sales-cart-line > strong { margin-left: 0; white-space: nowrap; }
  .sales-cart-line-actions { width: auto; justify-content: flex-end; }
  .sales-cart-line-actions button:not(.sales-cart-remove) { grid-column: 1 / -1; }
  .sales-menu-smart { align-items: stretch; flex-direction: column; }
  .sales-variant-links > form { grid-template-columns: 1fr; }
}

@media (max-width: 1100px) {
  .sales-terminal[data-machine-mode="1"] .sales-terminal-menu { position: relative; flex: 0 0 auto; }
  .sales-terminal[data-machine-mode="1"] .sales-terminal-menu > summary {
    display: grid; width: 34px; height: 34px; place-items: center; list-style: none; cursor: pointer;
    color: #eef4f5; background: #27343b; border: 1px solid #3c4b53; border-radius: 7px;
  }
  .sales-terminal[data-machine-mode="1"] .sales-terminal-menu > summary::-webkit-details-marker { display: none; }
  .sales-terminal[data-machine-mode="1"] .sales-terminal-menu > nav {
    position: absolute; z-index: 120; top: calc(100% + 5px); right: 0; display: none;
    width: max-content; max-width: calc(100vw - 12px); padding: 5px;
    background: #151b20; border: 1px solid #3c4b53; border-radius: 7px; box-shadow: 0 10px 28px rgb(0 0 0 / 55%);
  }
  .sales-terminal[data-machine-mode="1"] .sales-terminal-menu[open] > nav { display: flex; gap: 4px; }
}

.sales-quick-payments {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
  margin-top: 10px;
}

.sales-quick-payments button,
.sales-open-payment,
.sales-finalize {
  min-height: 48px;
  color: #fff;
  font-weight: 800;
  background: #167a51;
  border: 0;
  border-radius: 8px;
}

.sales-quick-payments button:disabled,
.sales-open-payment:disabled {
  opacity: .35;
}

.sales-open-payment {
  width: 100%;
  margin-top: 7px;
  background: #316b80;
}

.sales-clear {
  width: 100%;
  padding: 9px;
  margin-top: 7px;
  color: #c7d1d5;
  background: transparent;
  border: 1px solid #3c484e;
  border-radius: 8px;
}

.sales-payment-view {
  position: absolute;
  z-index: 5;
  inset: 0;
  padding: 12px;
  background: #11171b;
  border-radius: 10px;
}

.sales-payment-view:not([hidden]) {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto auto auto;
  gap: 7px;
  overflow: hidden;
}

.sales-payment-view>header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sales-payment-view>header button {
  color: #dbe5e8;
  background: transparent;
  border: 0;
}

.sales-payment-view>header div {
  display: grid;
  text-align: right;
}

.sales-payment-view>header strong {
  color: #65d49a;
  font-size: 1.4rem;
}

.sales-payment-totals span:first-child {
  color: #a9b8be;
  font-size: .76rem;
}

.sales-payment-totals span:first-child strong {
  margin-left: 5px;
  color: #eef4f5;
  font-size: 1rem;
}

.sales-payment-totals [data-payment-status-label] {
  color: #a9b8be;
  font-size: .72rem;
  text-transform: uppercase;
}

.sales-payment-totals [data-payment-remaining].is-change {
  color: #ffbd72;
  font-size: 1.75rem;
}

.sales-payment-display {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2px 10px;
  align-items: center;
  padding: 9px 11px;
  text-align: right;
  background: #080c0e;
  border-radius: 8px;
}

.sales-payment-display>span {
  color: #a9b8be;
  text-align: left;
}

.sales-payment-display strong {
  font-size: 1.7rem;
}

.sales-payment-display button {
  grid-column: 1 / -1;
  padding: 5px;
  color: #f2c189;
  background: transparent;
  border: 1px solid #5a4735;
  border-radius: 6px;
}

.sales-payment-display button:disabled {
  opacity: .35;
}

.sales-numpad {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
}

.sales-numpad [data-divide-ticket] { color: #101a21; background: #65d49a; }
.sales-numpad [data-digit="0"] { grid-column: 1 / -1; }

.sales-manual-share-open { width: 100%; margin-top: 6px; }
.sales-division-summary { display: flex; gap: 5px; max-width: 100%; margin-top: 7px; overflow-x: auto; scrollbar-width: thin; }
.sales-division-summary[hidden] { display: none; }
.sales-division-summary button { display: grid; flex: 0 0 auto; grid-template-columns: auto auto; gap: 0 7px; min-width: 112px; padding: 5px 8px; color: #dbe5e8; text-align: left; background: #202a30; border: 1px solid #46545b; border-radius: 8px; }
.sales-division-summary button.is-current { color: #10251b; background: #9ae5bd; border-color: #65d49a; }
.sales-division-summary button.is-paid { color: #b9c7cc; background: #172027; border-color: #375044; }
.sales-division-summary button.is-paid strong { color: #65d49a; }
.sales-division-summary button.is-selected { outline: 2px solid #f2c189; outline-offset: -2px; }
.sales-division-summary button span { font-weight: 800; }
.sales-division-summary button small { grid-column: 1 / -1; font-size: .68rem; line-height: 1.15; }
.sales-completed-receipts { width: min(620px, calc(100vw - 24px)); padding: 0; border: 0; border-radius: 16px; color: #17232a; background: #fff; }
.sales-completed-receipts::backdrop { background: rgb(7 18 24 / .72); }
.sales-completed-receipts > header,.sales-completed-receipts > footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; }
.sales-completed-receipts > header { border-bottom: 1px solid #dce5e8; }
.sales-completed-receipts > header div { display: grid; }
.sales-completed-receipts-list { display: grid; gap: 8px; max-height: 60dvh; padding: 14px 16px; overflow: auto; }
.sales-completed-receipts-list article { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 10px; align-items: center; padding: 10px; border: 1px solid #dce5e8; border-radius: 10px; }
.sales-completed-receipts-list article div { display: grid; }
.sales-completed-receipts-list article > span { font-weight: 900; }
.sales-completed-receipt-actions { display: flex; gap: 5px; }
.sales-completed-receipt-actions .button { display: inline-grid; place-items: center; width: 38px; min-width: 38px; height: 38px; padding: 0; font-size: 1.15rem; line-height: 1; }
.sales-receipt-actions { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 520px) { .sales-completed-receipts-list article { grid-template-columns: minmax(0,1fr) auto auto; } }
.sales-manual-share { width: min(920px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); padding: 0; border: 0; border-radius: 16px; color: #17232a; background: #fff; }
.sales-manual-share::backdrop { background: rgb(7 18 24 / .72); }
.sales-manual-share > header, .sales-manual-share > footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; }
.sales-manual-share > header { border-bottom: 1px solid #dce5e8; }
.sales-manual-share > header div { display: grid; }
.sales-manual-share > header button { min-width: 38px; }
.sales-manual-share > label, .sales-manual-share > p { display: flex; align-items: center; gap: 10px; margin: 12px 16px; }
.sales-manual-share input { min-width: 72px; padding: 8px; border: 1px solid #aebfc5; border-radius: 8px; }
.sales-manual-share-grid { overflow: auto; max-height: 55dvh; margin: 0 16px; border: 1px solid #dce5e8; border-radius: 10px; }
.sales-manual-share-grid table { width: 100%; min-width: 540px; border-collapse: collapse; }
.sales-manual-share-grid th, .sales-manual-share-grid td { padding: 8px; border-bottom: 1px solid #e7edef; text-align: right; }
.sales-manual-share-grid th:first-child, .sales-manual-share-grid td:first-child { position: sticky; left: 0; z-index: 1; text-align: left; background: #fff; }
.sales-manual-share-grid th:first-child { min-width: 170px; }
.sales-manual-share-grid th small, .sales-manual-share-grid th em { display: block; margin-top: 3px; font-size: .72rem; font-style: normal; }
.sales-manual-share-grid tr.is-balanced > * { background-color: #ecfaf2; }
.sales-manual-share-grid tr.is-balanced th em { color: #176d42; }
.sales-manual-share-grid tr.is-under > * { background-color: #fff8e5; }
.sales-manual-share-grid tr.is-under th em { color: #8a5c00; }
.sales-manual-share-grid tr.is-over > * { background-color: #fff0ef; }
.sales-manual-share-grid tr.is-over th em { color: #a72525; }
.sales-manual-share-grid tfoot { position: sticky; bottom: 0; z-index: 2; font-weight: 900; background: #e8f0f2; }
.sales-manual-share-grid tfoot th:first-child { background: #e8f0f2; }
.sales-manual-share-grid input { width: 92px; }
.sales-share-cell { display: inline-grid; grid-template-columns: 24px minmax(72px, 92px); gap: 6px; align-items: center; }
.sales-share-cell input[type="checkbox"] { width: 20px; min-width: 20px; height: 20px; margin: 0; accent-color: #168352; }
.sales-share-cell:has(input[type="checkbox"]:checked) input[type="number"] { border-color: #168352; box-shadow: 0 0 0 2px rgb(22 131 82 / .14); }
@media (max-width: 620px) {
  .sales-manual-share { width: calc(100vw - 8px); }
  .sales-manual-share > header, .sales-manual-share > footer { padding: 10px 8px; }
  .sales-manual-share > label, .sales-manual-share > p { margin-right: 8px; margin-left: 8px; }
  .sales-manual-share-grid { margin-right: 4px; margin-left: 4px; }
  .sales-manual-share-grid table { min-width: max-content; }
  .sales-manual-share-grid th, .sales-manual-share-grid td { padding: 5px; }
  .sales-manual-share-grid th:first-child { width: 112px; min-width: 112px; max-width: 112px; overflow-wrap: anywhere; }
  .sales-manual-share-grid th:not(:first-child), .sales-manual-share-grid td:not(:first-child) { width: 86px; min-width: 86px; }
  .sales-share-cell { grid-template-columns: 18px 60px; gap: 3px; }
  .sales-share-cell input[type="checkbox"] { width: 18px; min-width: 18px; height: 18px; padding: 0; }
  .sales-share-cell input[type="number"] { width: 60px; min-width: 60px; padding: 6px 4px; }
}
.sales-manual-share footer button:disabled { cursor: not-allowed; opacity: .45; }
.sales-manual-share > p.is-error { color: #a72525; }
.sales-manual-share > p.is-valid { color: #176d42; }
.sales-equal-division-preview { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; max-height: 45dvh; overflow: auto; margin: 0 16px; }
.sales-equal-division-preview article { display: grid; gap: 3px; padding: 10px; background: #eef5f6; border: 1px solid #cbdadd; border-radius: 9px; }
.sales-equal-division-preview article span { font-weight: 700; }
.sales-equal-division-preview article strong { font-size: 1.1rem; }
.sales-provisional-note { width: 100%; margin-top: 8px; border: 1px solid #687b83; background: #f4f7f8; color: #17232a; }
.sales-provisional-dialog { width: min(680px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); padding: 0; border: 0; border-radius: 16px; color: #17232a; background: #fff; }
.sales-provisional-dialog::backdrop { background: rgb(7 18 24 / .72); }
.sales-provisional-dialog > header, .sales-provisional-dialog > footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; }
.sales-provisional-dialog > header { border-bottom: 1px solid #dce5e8; }
.sales-provisional-dialog > header div { display: grid; }
.sales-provisional-dialog > header button { min-width: 38px; }
.sales-provisional-dialog > div { overflow: auto; max-height: 65dvh; padding: 16px; }
.sales-provisional-warning { display: grid; gap: 4px; padding: 14px; border: 3px solid #17232a; text-align: center; }
.sales-provisional-warning strong { font-size: 1.35rem; }
.sales-provisional-warning span { font-weight: 900; }
.sales-provisional-dialog table { width: 100%; margin-top: 14px; border-collapse: collapse; }
.sales-provisional-dialog th, .sales-provisional-dialog td { padding: 7px; border-bottom: 1px solid #dce5e8; text-align: left; }
.sales-provisional-dialog th:last-child, .sales-provisional-dialog td:last-child { text-align: right; }
.sales-provisional-total { text-align: right; font-size: 1.25rem; }

.sales-numpad button {
  min-height: 46px;
  color: #eef4f5;
  font-size: 1.1rem;
  font-weight: 800;
  background: #263139;
  border: 0;
  border-radius: 7px;
}

.sales-detailed-methods {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
  margin-top: 8px;
}

.sales-detailed-methods button {
  display: grid;
  padding: 9px;
  color: #fff;
  text-align: left;
  background: #315b6b;
  border: 0;
  border-radius: 7px;
}

.sales-detailed-methods small {
  color: #b9ccd3;
}

.sales-payment-summary {
  display: grid;
  max-height: 76px;
  gap: 4px;
  overflow-y: auto;
}

.sales-payment-summary button {
  display: grid;
  grid-template-columns: 1fr auto;
  padding: 6px 8px;
  color: #dfe8eb;
  text-align: left;
  background: #20292e;
  border: 0;
  border-radius: 6px;
}

.sales-payment-summary button[data-payment-locked="1"] {
  opacity: 1;
  cursor: not-allowed;
  background: #173526;
  border: 1px solid #39795a;
}

.sales-payment-summary button[data-payment-locked="1"] strong {
  color: #8ee0b3;
}

.sales-payment-summary small {
  grid-column: 1 / -1;
  color: #f0b36d;
}

.sales-change-confirm {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  padding: 8px;
  color: #ffe0b8;
  font-weight: 800;
  background: #4b2d18;
  border: 1px solid #8d572d;
  border-radius: 7px;
}

.sales-change-confirm[hidden] {
  display: none;
}

.sales-finalize {
  width: 100%;
  margin-top: 8px;
}

.sales-builder {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 16px;
  margin-top: 18px;
}

.sales-product-tray {
  position: sticky;
  top: 10px;
  align-self: start;
  padding: 15px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow);
}

.sales-product-tray h2 {
  margin: 0;
}

.sales-product-tray>input,
.sales-product-tray>select {
  width: 100%;
  margin-top: 8px;
}

.sales-product-list {
  display: grid;
  max-height: 58vh;
  gap: 6px;
  margin-top: 10px;
  overflow-y: auto;
}

.sales-product-list button {
  display: grid;
  gap: 2px;
  padding: 9px;
  text-align: left;
  cursor: grab;
  background: #f2f6f7;
  border: 1px solid var(--line);
  border-radius: 7px;
}

.sales-product-list small {
  color: var(--muted);
}

.sales-keyboards {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.sales-keyboards>h2 {
  margin: 0;
}

.sales-editor-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sales-editor-heading h3,
.sales-editor-heading p {
  margin: 0;
}

.sales-keypad-actions {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.sales-keypad-actions details {
  position: relative;
}

.sales-keypad-actions summary {
  list-style: none;
  cursor: pointer;
}

.sales-keypad-actions summary::-webkit-details-marker {
  display: none;
}

.sales-keypad-duplicate {
  position: absolute;
  z-index: 20;
  top: calc(100% + 8px);
  right: 0;
  width: min(360px, calc(100vw - 48px));
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: #fff;
  background: #1c344a;
  box-shadow: 0 16px 36px rgb(0 0 0 / 28%);
}

@media (max-width: 720px) {
  .sales-editor-heading {
    align-items: flex-start;
    gap: 10px;
  }

  .sales-keypad-duplicate {
    position: fixed;
    inset: auto 16px 16px;
    width: auto;
    max-height: calc(100vh - 32px);
    overflow: auto;
  }
}

.sales-group-create {
  display: grid;
  grid-template-columns: 1fr 170px auto;
  gap: 7px;
  margin: 12px 0;
}

.sales-editor-group {
  outline: 3px dashed rgb(255 255 255 / 45%);
  outline-offset: -7px;
}

.sales-group-edit {
  position: absolute;
  z-index: 5;
  top: 6px;
  right: 6px;
}

.sales-group-edit > summary {
  padding: 3px 6px;
  color: #17252d;
  font-size: .66rem;
  line-height: 1.1;
  list-style: none;
  cursor: pointer;
  background: rgb(255 255 255 / 92%);
  border-radius: 5px;
}

.sales-group-edit > summary::-webkit-details-marker {
  display: none;
}

.sales-group-edit > form {
  position: absolute;
  top: calc(100% + 5px);
  right: 0;
  display: grid;
  width: min(280px, calc(100vw - 48px));
  gap: 8px;
  padding: 12px;
  color: #17252d;
  text-align: left;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 12px 30px rgb(0 0 0 / 24%);
}

.sales-group-edit label {
  display: grid;
  gap: 3px;
  font-size: .72rem;
  font-weight: 700;
}

.sales-editor-grid.is-drop-target,
.sales-editor-key.is-drop-target {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}

.sales-payments {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.sales-payments label {
  position: relative;
}

.sales-payments input {
  position: absolute;
  opacity: 0;
}

.sales-payments span {
  display: grid;
  min-height: 50px;
  place-items: center;
  background: #edf2f4;
  border: 2px solid transparent;
  border-radius: 9px;
}

.sales-payments input:checked+span {
  color: var(--brand-dark);
  background: #dff1f5;
  border-color: var(--brand);
}

.sales-layout-editor .portal-header {
  padding: 0 0 14px;
  margin: 0;
  border: 0;
  box-shadow: none;
}

.sales-editor-grid {
  display: grid;
  grid-auto-rows: 96px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-flow: row;
  min-height: 312px;
  gap: 8px;
  padding: 10px;
  background: #e9eff1;
  border-radius: 12px;
}

.sales-editor-key {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  align-items: center;
  gap: 4px;
  min-width: 0;
  padding: 7px;
  color: #fff;
  text-align: center;
  cursor: grab;
  background: var(--key-color);
  border-radius: 10px;
}

.sales-editor-key > strong {
  display: -webkit-box;
  overflow: hidden;
  align-self: center;
  min-width: 0;
  max-width: 100%;
  font-size: clamp(.68rem, 1vw, .8rem);
  line-height: 1.12;
  overflow-wrap: anywhere;
  text-wrap: balance;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.sales-editor-key > small {
  font-size: .66rem;
  line-height: 1;
}

.sales-editor-key.is-dragging {
  opacity: .45;
}

.sales-menu-overview { display: grid; gap: .5rem; margin-bottom: 1rem; }
.sales-menu-overview article { display: flex; align-items: center; gap: .5rem; padding: .65rem; border: 1px solid var(--line); border-radius: .7rem; color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); }
.sales-menu-overview article > div { display: grid; flex: 1; gap: .15rem; }
.sales-menu-overview article small { color: var(--muted); }
.sales-menu-builder { display: grid; gap: .75rem; padding: .8rem; border: 1px solid var(--line); border-radius: .8rem; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-soft, var(--organization-surface, var(--surface))); }
.sales-menu-builder > label:not(.choice-line) { display: grid; gap: .3rem; font-weight: 700; }
.sales-menu-group { display: grid; gap: .65rem; margin: .65rem 0 0; padding: .75rem; border: 1px solid var(--line); border-radius: .7rem; color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); }
.sales-menu-group-head { display: grid; grid-template-columns: minmax(12rem, 1fr) 6rem 6rem auto; align-items: end; gap: .5rem; }
.sales-menu-group-head label, .sales-menu-choice > label:not(.choice-line) { display: grid; gap: .2rem; font-size: .8rem; font-weight: 700; }
.sales-menu-group-head > button, .sales-menu-choice > button { min-width: 2.4rem; min-height: 2.4rem; border: 0; border-radius: .45rem; background: #f5d7d4; color: #8f251e; cursor: pointer; font-size: 1.2rem; }
.sales-menu-choice { display: grid; grid-template-columns: minmax(12rem, 1fr) 8rem auto auto; align-items: end; gap: .5rem; padding: .5rem; border: 1px solid var(--line); border-radius: .55rem; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-soft, var(--organization-surface, var(--surface))); }
.sales-menu-builder-actions { display: flex; justify-content: space-between; gap: .6rem; }
@media (max-width: 700px) { .sales-menu-group-head, .sales-menu-choice { grid-template-columns: 1fr 1fr; } .sales-menu-choice > select { grid-column: 1 / -1; } }

.sales-editor-key>div {
  display: flex;
  flex-wrap: nowrap;
  gap: 2px;
  justify-content: center;
  min-width: 0;
}

.sales-editor-key button {
  min-width: 0;
  padding: 3px 4px;
  color: #111;
  background: #fff;
  border: 0;
  border-radius: 5px;
  font-size: .68rem;
  line-height: 1.15;
}

.sales-editor-key input[type="color"] {
  width: 24px;
  height: 22px;
  padding: 0;
  border: 2px solid #fff;
}

.sales-editor-key .sales-key-delete {
  width: 24px;
  min-width: 24px;
  height: 22px;
  padding: 0;
}

.sales-terminal>header nav {
  display: flex;
  gap: 6px;
}

.sales-terminal-heading {
  position: relative;
  min-width: 0;
}

.sales-demo-indicator {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  align-items: center;
  padding: 2px 7px;
  margin-top: 3px;
  overflow: hidden;
  color: #1d2529;
  background: #f4dfae;
  border: 1px solid #c8a65b;
  border-radius: 999px;
  font-size: .55rem;
  font-weight: 850;
  letter-spacing: .03em;
  line-height: 1.15;
  pointer-events: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.sales-terminal-active,
body.sales-terminal-active {
  width: 100%;
  height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}

/*
 * Native WebViews need explicit, non-overlapping touch regions. The Web view
 * keeps its existing content-sized dialog; only the terminal app uses this
 * full-height stack with the S/XL selector pinned above the scrolling choices.
 */
.sales-terminal[data-machine-mode="1"] .sales-menu-dialog[data-sales-menu-dialog] {
  box-sizing: border-box;
  overflow: hidden;
}

.sales-terminal[data-machine-mode="1"] .sales-menu-dialog[data-sales-menu-dialog] form {
  display: flex;
  width: 100%;
  height: min(720px, calc(100dvh - 1rem));
  max-height: calc(100dvh - 1rem);
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
}

.sales-terminal[data-machine-mode="1"] .sales-menu-dialog[data-sales-menu-dialog] :is(header, footer, .sales-menu-variant-picker, .sales-menu-smart) {
  flex: 0 0 auto;
}

.sales-terminal[data-machine-mode="1"] .sales-menu-dialog[data-sales-menu-dialog] > form > .sales-menu-dialog-groups {
  min-height: 0;
  flex: 1 1 auto;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.sales-terminal[data-machine-mode="1"] .sales-menu-variant-picker {
  position: relative;
  z-index: 2;
  margin: 0;
  padding: .65rem .8rem;
  color: #d9e6ea;
  background: #101a21;
  border-bottom: 1px solid #2d414c;
  pointer-events: auto;
}

.sales-terminal[data-machine-mode="1"] .sales-menu-variant-toggle,
.sales-terminal[data-machine-mode="1"] .sales-menu-variant-options {
  position: relative;
  z-index: 3;
  border-color: #4c6a79;
  pointer-events: auto;
  touch-action: manipulation;
}

.sales-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.sales-kpis article {
  display: grid;
  gap: 4px;
  padding: 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow);
}

.sales-kpis span,
.sales-kpis small {
  color: var(--muted);
}

.sales-kpis strong {
  color: var(--brand-dark);
  font-size: 1.55rem;
}

.sales-kpis .is-warning {
  background: #fff7ed;
  border-color: #f0c38d;
}

.sales-report-filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  align-items: end;
  padding: 14px;
  margin-bottom: 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.sales-report-filters .sales-filter-reference {
  grid-column: span 2;
}

.sales-report-filters label {
  display: grid;
  gap: 4px;
  color: var(--muted);
  font-size: .76rem;
  font-weight: 750;
}

.seller-cash-count-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 0;
}

.seller-cash-count-form .compact-check-row,
.seller-cash-count-form .cash-count-preview,
.seller-cash-count-form .button {
  grid-column: 1 / -1;
}

.seller-cash-count-form .compact-check-row {
  display: flex;
  align-items: center;
  gap: .55rem;
}

.seller-cash-count-form .compact-check-row input {
  width: 1rem;
  height: 1rem;
  margin: 0;
}

.cash-count-preview {
  min-height: 2.5rem;
  margin: 0;
  padding: .65rem .75rem;
  border-radius: .65rem;
  background: #eef5f8;
  color: var(--brand-dark);
  font-size: .88rem;
}

.cash-validation-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
  margin-top: .75rem;
}

.cash-movement-form {
  display: grid;
  grid-template-columns: minmax(9rem, 1.1fr) minmax(7rem, .7fr) minmax(12rem, 1.8fr) auto;
  gap: .55rem;
  align-items: end;
  margin-top: .55rem;
}

.cash-movement-history {
  display: grid;
  gap: .35rem;
  margin-top: .65rem;
}

@media (max-width: 760px) {
  .cash-movement-form {
    grid-template-columns: 1fr;
  }
}

.cash-validation-form label {
  display: grid;
  gap: .3rem;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 750;
}

.cash-validation-form > div {
  display: flex;
  grid-column: 1 / -1;
  gap: .5rem;
}

.sales-report-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 16px;
}

.sales-report-grid > * { min-width: 0; }

.sales-report-grid h2,
.sales-ticket-panel h2 {
  margin-top: 2px;
}

.sales-breakdown {
  display: grid;
  gap: 2px;
}

.sales-breakdown p {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 5px 14px;
  padding: 9px 0;
  margin: 0;
  border-bottom: 1px solid var(--line);
}

.sales-breakdown p>small {
  grid-column: 1 / -1;
  color: var(--muted);
}

.sales-breakdown span {
  display: grid;
}

.sales-breakdown span small {
  color: var(--muted);
}

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

.sales-ticket-panel {
  margin-bottom: 16px;
  overflow: hidden;
}

.sales-ticket-table {
  overflow-x: auto;
}

.sales-ticket-row {
  display: grid;
  min-width: 940px;
  grid-template-columns: minmax(175px, 1.2fr) 125px minmax(160px, 1fr) minmax(170px, 1fr) 90px 95px;
  gap: 12px;
  align-items: center;
  padding: 11px 5px;
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid var(--line);
}

.sales-ticket-reference {
  display: grid;
  gap: 2px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .82rem;
}

.sales-ticket-reference small {
  font-family: inherit;
  font-size: .66rem;
  font-weight: 650;
}

.sales-ticket-row span {
  display: grid;
}

.sales-ticket-row small {
  color: var(--muted);
}

.sales-ticket-row>strong:last-child {
  text-align: right;
}

.sales-ticket-row.is-cancelled {
  color: var(--muted);
  background: #faf6f4;
  text-decoration: line-through;
}

.sales-ticket-labels {
  color: var(--muted);
  font-size: .7rem;
  font-weight: 850;
  text-transform: uppercase;
}

.sales-close-total {
  margin: 0;
  color: var(--brand);
  font-size: 2rem;
  font-weight: 850;
}
.closure-job-status { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:16px 0; padding:16px 18px; border:1px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 30%, var(--line)); border-left:5px solid var(--organization-primary, var(--brand)); border-radius:14px; background:color-mix(in srgb, var(--organization-primary, var(--brand)) 7%, var(--surface)); box-shadow:0 8px 24px rgb(15 23 42 / 5%); }
.closure-job-status > div:first-child { display:grid; gap:3px; min-width:0; }
.closure-job-status .eyebrow,.closure-job-status p { margin:0; }
.closure-job-status--completed { border-left-color:#16805d; background:color-mix(in srgb, #16805d 7%, var(--surface)); }
.closure-job-status--failed { border-left-color:#b42318; background:color-mix(in srgb, #b42318 7%, var(--surface)); }
.closure-job-status--pending { border-left-color:#b76b00; }
.closure-job-progress { display:grid; grid-template-columns:minmax(150px,240px) auto; align-items:center; gap:10px; flex:0 1 310px; }
.closure-job-progress progress { width:100%; height:12px; accent-color:var(--organization-primary, var(--brand)); }
.closure-job-progress b { min-width:3.5rem; text-align:right; }
@media (max-width:680px) { .closure-job-status { align-items:stretch; flex-direction:column; } .closure-job-progress { flex:auto; grid-template-columns:1fr auto; } }

.sales-close-summary { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.sales-close-summary h2 { margin-bottom: 4px; }
.sales-close-primary-action { display: grid; justify-items: start; gap: 7px; margin: 18px 0; }
.sales-close-checks,
.sales-close-advanced { margin-top: 12px; border: 1px solid var(--line); border-radius: 12px; padding: 0 14px; background: var(--surface-soft, #f5f8f9); }
.sales-close-checks > summary,
.sales-close-advanced > summary { cursor: pointer; padding: 13px 0; font-weight: 700; }
.sales-close-check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.sales-close-check-grid p { display: grid; gap: 3px; margin: 0; padding: 10px; border-radius: 10px; background: var(--surface, #fff); }
.sales-close-check-grid span { color: var(--muted); }
.sales-close-advanced { max-width: 100%; overflow: hidden; background: color-mix(in srgb, var(--organization-surface, var(--surface)) 92%, var(--organization-primary, var(--brand)) 8%); }
.sales-close-advanced > summary { display: flex; min-height: 3rem; align-items: center; }
.sales-close-advanced > form { min-width: 0; padding: 2px 0 16px; }
.sales-close-scope-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 0; margin: 0 0 14px; background: transparent; border: 0; }
.sales-close-scope-fields label { min-width: 0; padding: 10px; color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); border: 1px solid var(--line); border-radius: 10px; font-size: .78rem; }
.sales-close-scope-fields label:last-child { grid-column: 1 / -1; }
.sales-close-scope-fields :is(input, select) { width: 100%; min-width: 0; max-width: 100%; min-height: 42px; padding: 8px 10px; color: var(--organization-field-ink, var(--ink)); background: var(--organization-field, var(--surface)); border: 1px solid color-mix(in srgb, var(--line) 78%, var(--organization-primary, var(--brand)) 22%); border-radius: 8px; }
.sales-close-scope-fields :is(input, select):focus { border-color: var(--organization-primary, var(--brand)); outline: 3px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 22%, transparent); }
.sales-close-advanced > form > .muted { margin: 4px 0 12px; }
.sales-closure-tree { padding-bottom: 12px; }
.sales-closure-tree-node { position: relative; overflow: visible; margin-top: 4px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.sales-closure-node-disclosure > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 3.8rem; padding: 10px 14px; cursor: pointer; }
.sales-closure-node-disclosure > summary > span { display: grid; min-width: 0; gap: 1px; }
.sales-closure-node-disclosure > summary > span:last-child { justify-items: end; }
.sales-closure-node-disclosure > summary small { color: var(--organization-primary, var(--brand)); font-size: .65rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.sales-closure-node-disclosure > summary em { overflow: hidden; color: var(--muted); font-size: .75rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.sales-closure-node-disclosure > summary b { color: var(--organization-primary, var(--brand)); }
.sales-close-advanced .sales-closure-node-disclosure > summary :is(small, b) { color: color-mix(in srgb, var(--organization-primary, var(--brand)) 38%, white); }
.sales-closure-node-action { position: absolute; z-index: 2; top: 10px; left: clamp(190px, 32%, 300px); }
.sales-closure-node-action .button { min-height: 2.35rem; padding: 7px 10px; white-space: nowrap; }
.sales-closure-tree-children { display: grid; gap: 2px; margin-left: 10px; padding-left: 20px; border-left: 1px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 45%, var(--line)); }
.sales-closure-tree-children > .sales-closure-tree-node::before { position: absolute; top: 1.9rem; left: -20px; width: 16px; border-top: 1px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 45%, var(--line)); content: ''; }
.sales-closure-tree-node--seller > .sales-closure-node-disclosure > summary { cursor: default; }
.sales-closure-period { margin: 4px 0 14px; border-top: 1px solid var(--line); }
.sales-closure-period > summary { padding: 14px 0; cursor: pointer; font-weight: 750; }
.sales-closure-period > form { padding-bottom: 4px; }
.sales-closure-scope-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
.sales-closure-scope-summary span { display: grid; gap: 2px; min-width: 0; padding: 9px 11px; border-left: 3px solid var(--organization-primary, var(--brand)); background: color-mix(in srgb, var(--organization-surface, var(--surface)) 94%, var(--organization-primary, var(--brand)) 6%); }
.sales-closure-scope-summary strong { color: var(--muted); font-size: .7rem; letter-spacing: .04em; text-transform: uppercase; }
.sales-closure-preview-tickets { margin-top: 10px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.sales-closure-preview-tickets > summary { padding: 10px 0; cursor: pointer; font-weight: 750; }
.sales-closure-preview-tickets > div { display: grid; gap: 5px; max-height: 18rem; padding-bottom: 10px; overflow-y: auto; }
.sales-closure-preview-tickets a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 8px; color: inherit; text-decoration: none; border: 1px solid var(--line); border-radius: 8px; background: var(--surface, #fff); }
.sales-closure-preview-tickets a span { min-width: 0; overflow-wrap: anywhere; color: var(--muted); }
@media (max-width: 680px) {
  .sales-close-summary { display: grid; }
  .sales-close-check-grid { grid-template-columns: 1fr; }
  .sales-close-scope-fields { grid-template-columns: 1fr; }
  .sales-close-scope-fields label:last-child { grid-column: auto; }
  .sales-closure-scope-summary { grid-template-columns: 1fr; }
  .sales-closure-preview-tickets a { grid-template-columns: auto 1fr; }
  .sales-closure-preview-tickets a > strong:last-child { grid-column: 2; }
  .sales-closure-node-disclosure > summary { grid-template-columns: 1fr; padding-right: 12px; }
  .sales-closure-node-disclosure > summary > span:last-child { grid-template-columns: auto auto; justify-content: space-between; justify-items: start; }
  .sales-closure-node-action { position: static; display: flex; justify-content: stretch; margin: 0 0 8px; }
  .sales-closure-node-action .button { width: 100%; }
  .sales-closure-tree-children { margin-left: 5px; padding-left: 14px; }
  .sales-closure-tree-children > .sales-closure-tree-node::before { left: -14px; width: 11px; }
}

.sales-closures {
  display: grid;
  gap: 7px;
}

.sales-closures details {
  padding: 9px;
  background: #f5f8f9;
  border-radius: 8px;
}

.sales-closures summary {
  display: flex;
  justify-content: space-between;
  cursor: pointer;
}

.sales-closures code {
  display: block;
  overflow-wrap: anywhere;
  color: var(--muted);
  font-size: .68rem;
}

.cash-drawer-create-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: end;
  gap: .55rem;
  width: min(100%, 34rem);
}

.cash-drawer-create-form .button { grid-column: 1 / -1; justify-self: start; }

.cash-drawer-list {
  gap: .75rem;
}

.cash-drawer-card {
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: .85rem !important;
  background: var(--organization-surface, var(--surface)) !important;
}

.cash-drawer-card > summary {
  align-items: center;
  min-height: 3.5rem;
  padding: .7rem .85rem;
  gap: .75rem;
}

.cash-drawer-card > summary > span:first-child {
  display: grid;
  gap: .12rem;
}

.cash-drawer-card > summary small {
  color: var(--muted);
  font-weight: 600;
}

.cash-drawer-card[open] > summary {
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--brand) 5%, var(--surface));
}

.cash-drawer-card-body {
  display: grid;
  gap: .75rem;
  padding: .75rem;
  min-width: 0;
}

.cash-drawer-config-block {
  display: grid;
  gap: .65rem;
  padding: .8rem;
  border: 1px solid var(--line);
  border-radius: .7rem;
  background: var(--surface-soft);
  min-width: 0;
}

.cash-drawer-config-block :is(input, select, textarea) { width: 100%; min-width: 0; max-width: 100%; }
.cash-drawer-config-block .button { border-color: var(--brand); background: var(--brand); color: #fff; }

.cash-drawer-config-block :is(h4, p) {
  margin: 0;
}

.cash-drawer-output-block {
  border-left: 4px solid var(--brand);
  background: color-mix(in srgb, var(--brand) 4%, var(--surface));
}

.cash-drawer-compact-form,
.cash-drawer-add-device {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: .55rem;
}

.cash-drawer-compact-form label,
.cash-drawer-output-form label {
  display: grid;
  gap: .3rem;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 750;
}

.cash-drawer-device-list {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.cash-drawer-device-list > span {
  display: grid;
  gap: .1rem;
  padding: .45rem .6rem;
  border: 1px solid var(--line);
  border-radius: .6rem;
  background: var(--surface);
  font-size: .78rem;
}

.cash-drawer-device-list small {
  color: var(--muted);
}

.cash-drawer-output-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}

.cash-drawer-card .cash-movement-form { grid-template-columns: 1fr; }
.cash-drawer-card .cash-movement-form .button { justify-self: start; }

.cash-drawer-output-form > :is(div, small, button) {
  grid-column: 1 / -1;
}

@media (max-width: 760px) {
  .cash-drawer-create-form,
  .cash-drawer-compact-form,
  .cash-drawer-add-device,
  .cash-drawer-output-form {
    grid-template-columns: 1fr;
  }

  .cash-drawer-create-form .button,
  .cash-drawer-compact-form .button,
  .cash-drawer-add-device .button,
  .cash-drawer-output-form .button {
    width: 100%;
  }
}

@media (max-width: 1280px) {
  .sales-ticket-panel > .sales-report-grid { grid-template-columns: 1fr; }
  .sales-ticket-panel > .sales-section-head { align-items: stretch; flex-direction: column; gap: 1rem; }
  .sales-ticket-panel > .sales-section-head .cash-drawer-create-form { width: 100%; }
  .sales-closure-layout { grid-template-columns: 1fr; }
}

/* Les formulaires de caisse héritent autrement du bouton neutre du portail,
   dont le contraste devient insuffisant avec certains thèmes d'organisation. */
.public-portal .cash-drawer-config-block .button,
.public-portal .cash-drawer-create-form .button {
  color: var(--organization-primary-ink, #fff);
  background: var(--organization-primary, var(--brand));
  border-color: var(--organization-primary, var(--brand));
}

.public-portal .cash-drawer-config-block .button:hover,
.public-portal .cash-drawer-create-form .button:hover {
  filter: brightness(.92);
}

.sales-receipt-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr);
  gap: 16px;
}

.sales-receipt-paper>p {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  margin: 0;
  border-bottom: 1px dashed var(--line);
}

.sales-receipt-identity {
  padding-bottom: 18px;
  margin-bottom: 18px;
  border-bottom: 2px solid var(--ink);
}

.sales-receipt-logo {
  display: block;
  width: auto;
  max-width: min(160px, 38%);
  max-height: 160px;
  margin: 0 auto 16px;
  object-fit: contain;
  filter: grayscale(1) contrast(1.12);
}

.sales-receipt-identity h2 {
  margin: 3px 0 8px;
}

.sales-receipt-demo {
  position: fixed;
  z-index: 80;
  top: max(4px, env(safe-area-inset-top));
  left: max(6px, env(safe-area-inset-left));
  max-width: 8rem;
  padding: 3px 9px;
  margin: 0;
  overflow: hidden;
  color: var(--ink);
  background: color-mix(in srgb, var(--organization-accent) 28%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--organization-accent) 55%, var(--line));
  border-radius: 999px;
  box-shadow: var(--shadow);
  font-size: .62rem;
  text-align: center;
  font-weight: 800;
  letter-spacing: .04em;
  pointer-events: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sales-offline-notice {
  position: fixed;
  z-index: 190;
  right: max(8px, env(safe-area-inset-right));
  bottom: max(8px, env(safe-area-inset-bottom));
  width: min(24rem, calc(100vw - 16px));
  padding: 8px 11px;
  margin: 0;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  font-size: .78rem;
  line-height: 1.25;
}

.sales-receipt-proof {
  margin: 10px 0 0;
  color: var(--muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .7rem;
  overflow-wrap: anywhere;
}

.sales-receipt-identity address {
  color: var(--muted);
  font-style: normal;
  line-height: 1.45;
}

.sales-receipt-legal,
.sales-receipt-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  color: var(--muted);
  font-size: .8rem;
}

.sales-receipt-meta {
  justify-content: space-between;
  padding: 12px;
  margin-top: 14px;
  background: var(--surface-muted, #f5f7fa);
  border-radius: 9px;
}

.sales-receipt-paper>.sales-receipt-vat-note {
  display: block;
  padding-top: 14px;
  color: var(--muted);
  font-size: .78rem;
  border-bottom: 0;
}

.sales-receipt-paper>p span {
  display: grid;
}

.sales-receipt-paper>p small {
  color: var(--muted);
}

.sales-receipt-paper footer {
  display: flex;
  justify-content: space-between;
  padding-top: 18px;
  font-size: 1.4rem;
}

.sales-cancellation {
  padding: 13px;
  margin-top: 18px;
  background: #fff0ed;
  border: 1px solid #eeb5a9;
  border-radius: 9px;
}

.library-publish {
  display: flex;
  gap: 20px;
  align-items: end;
  justify-content: space-between;
}

.library-publish h2 {
  margin: 2px 0 5px;
}

.library-publish form {
  display: flex;
  min-width: min(100%, 440px);
  gap: 8px;
}

.library-publish input {
  flex: 1;
}

.library-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 16px;
}

.library-card {
  display: grid;
  gap: 12px;
}

.library-card h3 {
  margin: 0;
}

.library-card details {
  padding: 9px;
  background: #f5f8f9;
  border-radius: 9px;
}

.library-card summary {
  cursor: pointer;
  font-weight: 750;
}

.library-products {
  display: grid;
  max-height: 245px;
  gap: 4px;
  padding-top: 8px;
  overflow-y: auto;
}

.library-products label {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 8px;
  align-items: center;
  padding: 7px;
  background: #fff;
  border-radius: 7px;
}

.library-projects {
  display: grid;
  gap: 8px;
}

.library-projects article {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.library-projects article>div {
  display: grid;
}

.sales-key-tools form {
  display: inline-flex;
  margin: 0;
}

.sales-editor-key .sales-key-delete {
  color: #fff;
  font-size: 1rem;
  background: #9e3030;
}

.sales-editor-key .sales-group-contents {
  display: flex;
  max-height: 55px;
  gap: 4px;
  align-content: flex-start;
  overflow-y: auto;
}

.sales-group-contents form {
  display: inline-flex;
  gap: 2px;
  align-items: center;
  padding-left: 6px;
  color: #253137;
  font-size: .68rem;
  background: rgb(255 255 255 / 88%);
  border-radius: 10px;
}

.sales-group-contents form button {
  padding: 1px 5px;
  color: #9e3030;
  background: transparent;
}

.sales-group-contents em {
  color: rgb(255 255 255 / 78%);
  font-size: .72rem;
}

.sales-subkeypad-editors {
  display: grid;
  gap: .65rem;
  margin-top: 1rem;
}

.sales-subkeypad-editor {
  overflow: clip;
  border: 1px solid var(--line);
  border-radius: .8rem;
  background: var(--surface-soft);
}

.sales-subkeypad-editor > summary {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  padding: .75rem 1rem;
  cursor: pointer;
  list-style: none;
}

.sales-subkeypad-editor > summary::-webkit-details-marker { display: none; }
.sales-subkeypad-editor > summary > span:first-child { display: grid; gap: .15rem; }
.sales-subkeypad-editor > summary small { color: var(--muted); font-weight: 500; }
.sales-subkeypad-editor[open] > summary > span:last-child { transform: rotate(45deg); }
.sales-subkeypad-editor-body { padding: 0 1rem 1rem; border-top: 1px solid var(--line); }
.sales-subkeypad-grid { margin-top: .75rem; background: var(--surface); }
.sales-subkeypad-back-key {
  --key-color: color-mix(in srgb, var(--muted) 36%, var(--surface));
  cursor: not-allowed;
  opacity: .78;
  border-style: dashed;
}

.catalog-header {
  padding: 22px 26px;
}

.catalog-toolbar {
  position: relative;
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.catalog-tabs {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  background: #eaf0f2;
  border-radius: 11px;
}

.catalog-tab {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 8px 13px;
  color: var(--muted);
  font-size: .88rem;
  font-weight: 750;
  text-decoration: none;
  border-radius: 8px;
}

.catalog-tab span {
  display: grid;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  place-items: center;
  color: var(--muted);
  font-size: .72rem;
  background: #fff;
  border-radius: 12px;
}

.catalog-tab.is-active {
  color: var(--brand-dark);
  background: #fff;
  box-shadow: 0 2px 8px rgb(28 55 64 / 9%);
}

.catalog-add {
  position: relative;
}

.catalog-add>summary {
  list-style: none;
  cursor: pointer;
}

.catalog-add>summary::-webkit-details-marker {
  display: none;
}

.catalog-create-form {
  position: absolute;
  z-index: 5;
  top: calc(100% + 8px);
  right: 0;
  display: grid;
  width: min(680px, calc(100vw - 38px));
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 13px;
  box-shadow: 0 18px 50px rgb(20 43 51 / 18%);
}
.catalog-create-form>.catalog-inventory-field{grid-column:1/-1;padding:.7rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface-soft)}
.catalog-inventory-field{position:relative;display:grid;gap:.35rem;min-width:0}
.catalog-inventory-field>label{display:grid;gap:3px}
.catalog-inventory-field>label>span{display:none;color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase}
.catalog-inventory-new{position:absolute;z-index:7;top:calc(100% + .35rem);right:0;display:grid;width:min(22rem,calc(100vw - 3rem));grid-template-columns:minmax(0,2fr) minmax(90px,1fr);gap:.45rem;padding:.65rem;border:1px solid var(--line);border-radius:.7rem;background:var(--organization-surface,var(--surface));box-shadow:0 12px 28px rgb(20 43 51 / 20%)}
.catalog-create-form .catalog-inventory-new{position:static;width:100%;box-shadow:none}
.catalog-inventory-new[hidden]{display:none}

.catalog-create-form label:not(.catalog-check) {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 750;
}
.catalog-create-form :is(input:not([type="checkbox"]),select){width:100%;min-width:0;height:42px;padding:.65rem .75rem;color:var(--organization-field-ink,var(--text));background:color-mix(in srgb,var(--organization-field,var(--surface)) 94%,var(--organization-page,var(--surface-soft)));border:1px solid var(--line);border-radius:.65rem;box-shadow:none;font:inherit;font-size:.9rem}
.catalog-create-form :is(input:not([type="checkbox"]),select):focus{outline:0;border-color:var(--organization-primary,var(--primary));box-shadow:0 0 0 3px color-mix(in srgb,var(--organization-primary,var(--primary)) 16%,transparent)}
.catalog-create-form>.catalog-check{min-height:42px;padding:.55rem .7rem;border:1px solid var(--line);border-radius:.65rem;background:var(--surface-soft)}
.catalog-create-form>.catalog-check input{width:17px;height:17px;margin:0;accent-color:var(--organization-primary,var(--primary))}
.catalog-create-form>.button{min-height:42px;justify-self:start;padding-inline:1.2rem}
.catalog-analytics-fields{grid-column:1/-1;border:1px solid var(--line);border-radius:.75rem;background:var(--surface-soft);overflow:hidden}.catalog-analytics-fields>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .8rem;cursor:pointer}.catalog-analytics-fields>summary span{color:var(--muted);font-size:.78rem}.catalog-analytics-fields>div{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.2fr);gap:.75rem;padding:0 .8rem .8rem}.catalog-analytics-fields label{display:grid;gap:.3rem;color:var(--muted);font-size:.78rem;font-weight:750}.catalog-analytics-fields textarea{width:100%;min-height:6.5rem;padding:.65rem .75rem;color:var(--organization-field-ink,var(--text));background:var(--organization-field,var(--surface));border:1px solid var(--line);border-radius:.65rem;resize:vertical}.catalog-analytics-fields small{font-weight:500}

.catalog-check {
  display: flex;
  gap: 7px;
  align-items: center;
  font-size: .83rem;
}

.catalog-panel {
  overflow: visible;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow);
}

.catalog-list-header,
.catalog-row {
  display: grid;
  grid-template-columns: minmax(150px, 1.35fr) minmax(120px, .9fr) 90px 75px minmax(160px, 1.15fr) 115px minmax(190px, auto);
  gap: 10px;
  align-items: center;
}

.catalog-list-header {
  padding: 10px 14px;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--line);
}

.catalog-row {
  position: relative;
  row-gap:8px;
  min-height:72px;
  padding: 12px 14px 9px;
  border-bottom: 1px solid #e9edef;
}

.catalog-row>form[id^="product-update-"] {
  display: contents;
}

.catalog-row:last-child {
  border-bottom: 0;
}

.catalog-row:hover {
  z-index: 2;
  background:color-mix(in srgb,var(--organization-primary) 4%,var(--organization-surface,var(--surface)));
}

.catalog-row>label {
  display: grid;
  gap: 3px;
}

.catalog-row>label>span:first-child {
  display: none;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
}

.catalog-row input:not([type="checkbox"]),
.catalog-row select {
  width: 100%;
  min-width: 0;
  height: 40px;
  padding: 7px 10px;
  font-size: .88rem;
  background:color-mix(in srgb,var(--organization-field,var(--surface)) 94%,var(--organization-page,var(--surface-soft)));
  border:1px solid color-mix(in srgb,var(--line) 75%,transparent);
  border-radius:.55rem;
  box-shadow: none;
}

.catalog-row:hover input:not([type="checkbox"]),
.catalog-row:hover select,
.catalog-row input:focus,
.catalog-row select:focus {
  border-color:var(--organization-primary,var(--primary));
  box-shadow:0 0 0 2px color-mix(in srgb,var(--organization-primary,var(--primary)) 15%,transparent);
}
.catalog-inventory-field select.is-linked{border-color:color-mix(in srgb,#16a34a 48%,var(--line));background:color-mix(in srgb,#16a34a 8%,var(--organization-field,var(--surface)))}
.catalog-inventory-field select.is-unlinked{color:color-mix(in srgb,var(--organization-surface-ink,var(--text)) 72%,var(--organization-surface,var(--surface)))}

.catalog-row.is-archived input,
.catalog-row.is-archived select {
  color: var(--muted);
  background: transparent;
}

.catalog-tax-exempt {
  display: inline-grid;
  width: max-content;
  height: 28px;
  padding: 0 9px;
  place-items: center;
  color: #587078;
  font-size: .72rem;
  font-weight: 750;
  background: #edf2f3;
  border-radius: 14px;
}

.catalog-options {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-content:center;
  min-height:40px;
  padding:.25rem .45rem;
  border:1px solid color-mix(in srgb,var(--line) 72%,transparent);
  border-radius:.55rem;
  background:var(--surface-soft);
}

.catalog-options label {
  display: flex;
  gap: 4px;
  align-items: center;
  color: var(--muted);
  font-size: .74rem;
}

.catalog-actions {
  display: flex;
  gap: 6px;
  align-items: center;
  justify-content: flex-end;
}

.catalog-actions form {
  margin: 0;
}

.catalog-actions .button {
  min-height:40px;
  padding-inline:.75rem;
  white-space: nowrap;
}

.catalog-more {
  position: relative;
}

.catalog-more>summary {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  color: var(--muted);
  cursor: pointer;
  list-style: none;
  border-radius: 8px;
}

.catalog-more>summary:hover {
  color: var(--brand-dark);
  background: #eaf1f3;
}

.catalog-more>summary::-webkit-details-marker {
  display: none;
}

.catalog-more>div {
  position: absolute;
  z-index: 6;
  top: 38px;
  right: 0;
  display: grid;
  min-width: 205px;
  padding: 6px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 9px;
  box-shadow: 0 12px 30px rgb(20 43 51 / 18%);
}

.catalog-more button {
  width: 100%;
  padding: 9px 10px;
  text-align: left;
  cursor: pointer;
  background: transparent;
  border: 0;
  border-radius: 6px;
}

.catalog-more button:hover {
  background: #edf3f4;
}

.catalog-more button.is-danger {
  color: #a53232;
}

.catalog-history {
  grid-column: 1 / -1;
  margin-top:0;
  padding-top:.1rem;
}

.catalog-history>summary {
  width: max-content;
  color: var(--muted);
  font-size: .73rem;
  cursor: pointer;
  list-style:none;
}
.catalog-history>summary::-webkit-details-marker{display:none}
.catalog-history>summary::before{content:'▸';display:inline-block;margin-right:.28rem;transition:transform .15s ease}
.catalog-history[open]>summary::before{transform:rotate(90deg)}

.catalog-history>summary span {
  display: inline-grid;
  min-width: 18px;
  height: 18px;
  place-items: center;
  background: #eaf0f2;
  border-radius: 10px;
}

.catalog-history>div {
  display: grid;
  gap: 5px;
  padding: 8px 0 2px;
}

.catalog-history p {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3px 18px;
  padding: 8px 10px;
  margin: 0;
  font-size: .78rem;
  background: #f4f7f8;
  border-radius: 7px;
}

.catalog-history p small {
  grid-column: 1 / -1;
  color: var(--muted);
}

.catalog-settings {
  margin-top: 16px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
}

.catalog-settings>summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  cursor: pointer;
  list-style: none;
}

.catalog-settings>summary::-webkit-details-marker {
  display: none;
}

.catalog-settings>summary > span:first-child {
  display: grid;
  gap: 2px;
}

.catalog-settings>summary small {
  color: var(--muted);
}

.catalog-settings>summary > span:last-child {
  color: var(--brand);
  font-size: 0;
  font-weight: 750;
}

.catalog-settings>summary > span:last-child::before { content: "+"; font-size: 1.45rem; }
.catalog-settings[open]>summary > span:last-child::before { content: "−"; }

.catalog-settings>div {
  padding: 0 16px 16px;
}

.portal-header {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  justify-content: space-between;
  padding: 28px;
  margin-bottom: 22px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.portal-header h1 {
  margin: 6px 0 8px;
}

.public-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 30px;
  align-items: center;
  min-height: 330px;
  padding: 48px;
  overflow: hidden;
  color: var(--organization-hero-text);
  background: linear-gradient(135deg, var(--organization-primary), var(--organization-primary));
  border-radius: 22px;
  box-shadow: var(--shadow);
}

.public-hero.has-banner {
  position: relative;
  isolation: isolate;
  background-image: linear-gradient(90deg, rgba(0, 0, 0, .72), rgba(0, 0, 0, .38)), var(--organization-banner);
  background-position: center;
  background-size: cover;
}

.public-hero-content,
.public-hero-logo,
.public-hero-mark {
  position: relative;
  z-index: 1;
}

.public-hero h1 {
  margin: 8px 0 14px;
  font-size: clamp(2rem, 5vw, 3.4rem);
  line-height: 1.05;
}

.public-hero p:not(.eyebrow) {
  max-width: 620px;
  color: var(--organization-hero-text);
  font-size: 1.05rem;
}

.public-hero .eyebrow {
  color: var(--organization-accent);
}

.public-hero .button:not(.button-primary) {
  color: #fff;
  background: transparent;
  border-color: #7db1bf;
}

.public-hero-mark {
  display: grid;
  width: 190px;
  height: 190px;
  place-items: center;
  justify-self: end;
  color: var(--organization-accent-ink);
  font-size: 5rem;
  font-weight: 900;
  background: var(--organization-accent);
  border-radius: 42% 58% 62% 38%;
  transform: rotate(5deg);
}

.public-hero-logo {
  display: grid;
  width: 190px;
  height: 190px;
  padding: 18px;
  place-items: center;
  justify-self: end;
  background: var(--organization-logo-background, transparent);
  border-radius: 28px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .2);
}

.public-hero-logo.logo-background-transparent {
  padding: 0;
  box-shadow: none;
}

.portal-organization-logo.logo-background-transparent {
  border-color: transparent;
}

.public-hero-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.appearance-upload-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.appearance-upload-grid section {
  display: grid;
  gap: 10px;
  align-content: start;
  padding: 18px;
  color: var(--organization-surface-ink, var(--text));
  background: var(--surface-soft);
  border: 1px solid var(--line);
  border-radius: 14px;
}

.appearance-upload-grid section h2,
.appearance-upload-grid section label {
  color: var(--organization-surface-ink, var(--text));
}

.appearance-upload-grid section small {
  color: color-mix(in srgb, var(--organization-surface-ink, var(--text)) 68%, var(--organization-surface, var(--surface)));
}

.appearance-preview-logo,
.appearance-preview-banner {
  width: 100%;
  height: 180px;
  object-fit: contain;
  background-color: var(--organization-field, var(--surface));
  background-image:
    linear-gradient(45deg, color-mix(in srgb, var(--organization-field-ink, var(--text)) 7%, transparent) 25%, transparent 25%),
    linear-gradient(-45deg, color-mix(in srgb, var(--organization-field-ink, var(--text)) 7%, transparent) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, color-mix(in srgb, var(--organization-field-ink, var(--text)) 7%, transparent) 75%),
    linear-gradient(-45deg, transparent 75%, color-mix(in srgb, var(--organization-field-ink, var(--text)) 7%, transparent) 75%);
  background-position: 0 0, 0 6px, 6px -6px, -6px 0;
  background-size: 12px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.appearance-preview-banner {
  object-fit: cover;
}

.appearance-preview-banner-mobile {
  height: 240px;
  aspect-ratio: 4 / 5;
  justify-self: center;
}

.appearance-section {
  display: grid;
  gap: 18px;
  padding: 20px;
  color: var(--organization-surface-ink, var(--text));
  background: color-mix(in srgb, var(--organization-surface, var(--surface)) 96%, var(--organization-page, var(--background)));
  border: 1px solid var(--line);
  border-radius: 14px;
}

.appearance-section legend {
  padding: 0 8px;
  font-size: 1.1rem;
  font-weight: 800;
}

.appearance-color-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
}

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

.appearance-color {
  display: grid;
  gap: 7px;
}

.appearance-color > span:last-child {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 8px;
}

.appearance-color input[type="color"] {
  width: 48px;
  height: 42px;
  padding: 3px;
}

.appearance-theme-actions {
  display: flex;
  gap: .75rem;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: .85rem;
}

.appearance-theme-actions small {
  color: var(--organization-text);
  font-weight: 700;
}

.appearance-theme-actions small.is-warning {
  color: var(--organization-text);
}

.appearance-theme-actions small.is-warning::before {
  content: "⚠ ";
}

.appearance-contrast-modes {
  margin-top: .85rem;
}

@media (prefers-contrast: more) {
  .public-portal {
    --line: currentColor;
    --shadow: none;
  }

  .public-portal .card,
  .public-portal .portal-nav,
  .public-portal .portal-header,
  .public-portal .public-entry-card {
    border-width: 2px;
  }

  .public-portal a:focus-visible,
  .public-portal button:focus-visible,
  .public-portal input:focus-visible,
  .public-portal select:focus-visible,
  .public-portal textarea:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .public-portal .portal-nav {
    background: var(--organization-surface);
  }

  .public-hero.has-banner {
    background-image: linear-gradient(90deg, rgba(0, 0, 0, .84), rgba(0, 0, 0, .72)), var(--organization-banner);
  }
}

@media (forced-colors: active) {
  .public-portal,
  .public-hero,
  .public-portal .card,
  .public-portal .portal-nav,
  .public-portal .portal-header,
  .public-portal .public-entry-card {
    color: CanvasText;
    background: Canvas;
    border-color: CanvasText;
    box-shadow: none;
  }

  .public-portal .button-primary,
  .public-portal .portal-nav-links a.is-active {
    color: HighlightText;
    background: Highlight;
    border-color: Highlight;
  }
}

.preview-badge {
  display: inline-flex;
  padding: 5px 9px;
  color: var(--organization-primary);
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  background: var(--organization-accent);
  border-radius: 999px;
}

.event-image-editor {
  display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(280px, 1.2fr);
  gap: 20px;
  align-items: start;
  padding: 18px;
  background: #f5f8f9;
  border: 1px solid var(--line);
  border-radius: 14px;
}

.event-image-editor img {
  width: 100%;
  max-height: 280px;
  object-fit: contain;
  background: #fff;
  border-radius: 10px;
}

.calendar-history-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.calendar-history-tabs a span {
  display: inline-grid;
  min-width: 22px;
  min-height: 22px;
  margin-left: 5px;
  padding: 0 6px;
  place-items: center;
  font-size: .78rem;
  background: rgba(0, 0, 0, .08);
  border-radius: 999px;
}

.event-year-heading {
  display: flex;
  gap: 10px;
  align-items: baseline;
  margin: 22px 0 4px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
}

.event-year-heading small {
  color: var(--muted);
  font-size: .85rem;
  font-weight: 600;
}

.treasury-period-bar {
  display: flex;
  gap: 18px;
  align-items: end;
  justify-content: space-between;
}

.treasury-page > :is(.portal-header, .treasury-fold, .treasury-period-bar, .treasury-kpis, .treasury-account-state, .treasury-dashboard-grid, .empty-state) {
  margin-top: 1rem;
  margin-bottom: 0;
}

.treasury-page > .portal-header { margin-top: 1.35rem; }
.treasury-page > .treasury-fold,
.treasury-page > .treasury-period-bar,
.treasury-page > .treasury-account-state { scroll-margin-top: 1rem; }
.treasury-page > .treasury-fold > summary { min-height: 3.25rem; }
.treasury-page > .treasury-period-bar { padding-block: 1rem; }
.treasury-page > .treasury-period-bar label { display: inline-flex; gap: .45rem; align-items: center; font-weight: 750; }
.treasury-page > .treasury-period-bar select { min-height: 2.55rem; border-radius: .55rem; }
.treasury-page > .treasury-sales-access { margin-top: 1rem; scroll-margin-top: 1rem; }

.payment-journal-wrap { max-width: 100%; overflow-x: auto; }
.payment-journal-filters { display: flex; flex-wrap: wrap; gap: .75rem; align-items: end; margin: 1rem 0; }
.payment-journal-filters label { display: grid; gap: .3rem; min-width: 11rem; font-weight: 700; }
.payment-journal-filters select { min-height: 2.5rem; }
.payment-journal { width: 100%; table-layout: fixed; font-size: .82rem; }
.payment-journal th:nth-child(1) { width: 7.4rem; }
.payment-journal th:nth-child(2) { width: 8.5rem; }
.payment-journal th:nth-child(3) { width: 8rem; }
.payment-journal th:nth-child(4) { width: 6.5rem; }
.payment-journal th:nth-child(5) { width: 5.8rem; }
.payment-journal th:nth-child(6) { width: 6.5rem; }
.payment-journal th:nth-child(7) { width: 10rem; }
.payment-journal th:nth-child(8) { width: 9rem; }
.payment-journal :is(th, td) { padding: .45rem .4rem; }
.payment-journal tr { scroll-margin-top: 1rem; }
.payment-journal td { vertical-align: top; overflow-wrap: anywhere; }
.payment-journal td small { display: block; margin-top: .25rem; }
.payment-reference details { margin-top: .3rem; }
.payment-reference summary { cursor: pointer; color: var(--muted); font-size: .78rem; }
.payment-reference details code { display: block; margin-top: .25rem; white-space: normal; overflow-wrap: anywhere; }
.payment-resolution { min-width: 10rem; }
.payment-resolution form + form { margin-top: .35rem; }
.payment-resolution .button { width: 100%; white-space: normal; }
.payment-manual-resolution { margin-top: .35rem; }
.payment-manual-resolution > summary { cursor: pointer; list-style: none; }
.payment-manual-resolution > summary::-webkit-details-marker { display: none; }
.payment-manual-resolution form { display: grid; gap: .4rem; margin-top: .45rem; padding: .55rem; border: 1px solid var(--line); border-radius: .55rem; background: var(--surface-soft); }
.payment-manual-resolution label { display: grid; gap: .25rem; font-size: .78rem; font-weight: 700; }
.payment-manual-resolution :is(input, textarea) { width: 100%; min-width: 0; }
.payment-manual-resolution textarea { min-height: 5rem; resize: vertical; }
.payment-resolution-dialog { position: fixed; inset: 1rem; z-index: 1000; width: min(68rem, calc(100% - 2rem)); max-height: calc(100vh - 2rem); margin: auto; padding: 1rem; overflow: auto; border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); color: var(--text); box-shadow: 0 1.5rem 4rem rgb(0 0 0 / .28); }
.payment-resolution-dialog::backdrop { background: rgb(0 0 0 / .48); }
.payment-resolution-preview-list { display: grid; gap: .75rem; margin-top: 1rem; }
.payment-resolution-preview-list > article { padding: .75rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface-soft); }
.payment-resolution-preview-list article > header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; }
.payment-resolution-attempts { display: grid; gap: .4rem; margin-top: .6rem; }
.payment-resolution-attempts > div { display: grid; grid-template-columns: 9rem minmax(10rem, 1fr) auto minmax(15rem, 1.5fr); gap: .6rem; align-items: center; padding: .45rem; border-radius: .5rem; background: var(--surface); }
.payment-resolution-attempts small { color: var(--muted); }
.payment-resolution-confirm { display: flex; justify-content: flex-end; margin-top: 1rem; }
@media (max-width: 900px) {
  .payment-journal-wrap { overflow: visible; }
  .payment-journal, .payment-journal tbody, .payment-journal tr, .payment-journal td { display: block; width: 100%; }
  .payment-journal { table-layout: auto; }
  .payment-journal thead { display: none; }
  .payment-journal tr { margin-bottom: .75rem; padding: .35rem .65rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); }
  .payment-journal td { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: .65rem; padding: .35rem 0; border: 0; }
  .payment-journal td::before { content: attr(data-label); color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
  .payment-journal .payment-resolution { min-width: 0; }
  .payment-journal .payment-resolution > :is(form, details, small) { grid-column: 2; }
  .payment-resolution-attempts > div { grid-template-columns: 1fr auto; }
  .payment-resolution-attempts > div > :is(strong, small) { grid-column: 1 / -1; }
}
.treasury-sales-access .treasury-section-heading { margin-bottom: .85rem; }
.treasury-sales-access .treasury-section-heading :is(h2, p) { margin-bottom: .2rem; }
.treasury-sales-link--restricted { border-color: color-mix(in srgb, var(--warning, #b7791f) 38%, var(--line)); background: color-mix(in srgb, var(--warning, #b7791f) 7%, var(--surface)); }
.treasury-sales-link--restricted > div:first-child { display: grid; gap: .3rem; }
.treasury-unassigned { display: grid; gap: .75rem; margin-bottom: 1.25rem; }
.treasury-unassigned h3, .treasury-bank-balance > h3 { margin: 0; }
.treasury-unassigned-list { display: grid; gap: .75rem; }
.treasury-unassigned-list > article { display: grid; grid-template-columns: minmax(13rem, .8fr) minmax(22rem, 1.4fr); gap: 1rem; align-items: end; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft, #f5f8f9); }
.treasury-unassigned-list > article > div { display: grid; gap: .3rem; }
.treasury-assignment-form { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(12rem, 1.2fr) auto; gap: .65rem; align-items: end; }
.treasury-assignment-form label { margin: 0; }
.treasury-sales-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: .7rem; }
.treasury-sales-links article { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .8rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface-soft); }
.treasury-sales-links article > div:first-child { display: grid; gap: .15rem; min-width: 0; }
.treasury-sales-links article small { color: var(--muted); }
.treasury-sales-links .compact-actions { justify-content: flex-end; margin: 0; }

@media (max-width: 700px) {
  .treasury-sales-links { grid-template-columns: 1fr; }
  .treasury-sales-links article { align-items: stretch; flex-direction: column; }
  .treasury-sales-links .compact-actions { display: grid; }
  .treasury-sales-links .button { width: 100%; }
}

.treasury-period-bar form {
  min-width: min(100%, 320px);
}

.treasury-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 18px 0;
}

.treasury-kpis article {
  display: grid;
  gap: 8px;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow);
}

.treasury-kpis span,
.treasury-entry small {
  display: block;
  color: var(--muted);
}

.treasury-kpis strong {
  font-size: 1.35rem;
}

.positive { color: #16794b; }
.negative { color: #b23a31; }

.treasury-fold > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  list-style: none;
}

.treasury-fold > summary::-webkit-details-marker { display: none; }
.treasury-fold > summary::after { content: "+"; flex: 0 0 auto; color: var(--muted); font-size: 1.45rem; font-weight: 700; }
.treasury-fold[open] > summary::after { content: "−"; }
.treasury-fold > summary > span:first-child { display: grid; gap: 2px; }
.treasury-fold > summary strong { color: var(--text); font-size: 1.08rem; }
.treasury-fold[open] > summary { margin-bottom: 16px; }

.treasury-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin: 18px 0;
}
.treasury-dashboard-grid > details[open] { grid-column: 1 / -1; }

.treasury-section-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.treasury-section-heading h2 { margin: 2px 0 0; }
.treasury-account-state { margin-top: 18px; }
.treasury-account-state-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.treasury-account-state-grid article,
.treasury-account-state-grid .treasury-account-card { display: grid; gap: 5px; padding: 14px; background: var(--surface-soft, #f5f8f9); border: 1px solid var(--line); border-radius: 12px; color: inherit; text-decoration: none; }
.treasury-account-state-grid .treasury-account-card:hover,
.treasury-account-state-grid .treasury-account-card:focus-visible,
.treasury-account-state-grid .treasury-account-card.is-selected { border-color: var(--primary); box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 18%, transparent); }
.treasury-account-card .button { justify-self: start; margin-top: 5px; }
.treasury-account-detail { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); scroll-margin-top: 1rem; }
.treasury-cash-deposit { margin-top: 18px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft, #f5f8f9); scroll-margin-top: 1rem; }
.treasury-cash-deposit table input[type="checkbox"] { width: 1.15rem; height: 1.15rem; }
.treasury-deposit-total { display: flex; justify-content: flex-end; gap: .5rem; margin: 0; font-size: 1.05rem; }
.treasury-account-type { color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.treasury-account-balance { font-size: clamp(1.35rem, 2.5vw, 1.85rem); line-height: 1; }
.treasury-account-state-grid small { color: var(--muted); }

.treasury-cash-followups {
  margin: 16px 0;
  padding: 16px;
  border: 1px solid color-mix(in srgb, var(--warning, #b7791f) 30%, transparent);
  border-radius: 14px;
  background: color-mix(in srgb, var(--warning, #b7791f) 6%, var(--surface, #fff));
}
.treasury-followup-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.treasury-followup-grid article { display: grid; gap: 7px; align-content: start; padding: 14px; border-radius: 12px; background: var(--surface, #fff); box-shadow: 0 1px 0 rgb(15 23 42 / 8%); }

.treasury-breakdown {
  display: grid;
  gap: 9px;
}

.treasury-breakdown > div {
  display: grid;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}

.treasury-breakdown-values { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.treasury-breakdown-values > span { display: grid; gap: 2px; font-weight: 700; }
.treasury-breakdown-values small { color: var(--muted); font-size: .75rem; font-weight: 500; }
.treasury-result { color: var(--text); }
.treasury-result.negative { color: #b23a31; }
.treasury-projects-breakdown { gap: 0; }
.treasury-project-breakdown { padding: 10px 0; border-bottom: 1px solid var(--line); }
.treasury-project-breakdown > summary { display: grid; gap: 12px; cursor: pointer; list-style: none; }
.treasury-project-breakdown > summary::-webkit-details-marker { display: none; }
.treasury-project-breakdown > summary > strong::before { content: "+"; display: inline-block; width: 1.4rem; color: var(--brand); }
.treasury-project-breakdown[open] > summary > strong::before { content: "−"; }
.treasury-project-entries { display: grid; gap: 7px; margin-top: 12px; padding: 10px; background: var(--surface-soft, #f5f8f9); border-radius: 10px; }
.treasury-project-entries > div { display: flex; align-items: start; justify-content: space-between; gap: 14px; padding: 7px 0; border-bottom: 1px solid var(--line); }
.treasury-project-entries > div:last-child { border-bottom: 0; }
.treasury-project-entries span { display: grid; gap: 2px; min-width: 0; }
.treasury-project-entries small { color: var(--muted); }
.treasury-entry-drilldown { padding: 7px 0; border-bottom: 1px solid var(--line); }
.treasury-entry-drilldown:last-child { border-bottom: 0; }
.treasury-entry-drilldown > summary,
.treasury-source-record > summary { display: flex; align-items: start; justify-content: space-between; gap: 14px; cursor: pointer; list-style: none; }
.treasury-entry-drilldown > summary::-webkit-details-marker,
.treasury-source-record > summary::-webkit-details-marker { display: none; }
.treasury-entry-drilldown > summary > span,
.treasury-source-record > summary > span { display: grid; gap: 2px; min-width: 0; }
.treasury-entry-drilldown > summary > span::before { content: "+"; float: left; margin-right: 6px; color: var(--brand); font-weight: 800; }
.treasury-entry-drilldown[open] > summary > span::before { content: "−"; }
.treasury-source-records { display: grid; gap: 7px; margin: 8px 0 0 18px; padding: 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 9px; }
.treasury-source-records > p { margin: 0; color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.treasury-source-record { padding: 7px 0; border-bottom: 1px solid var(--line); }
.treasury-source-record:last-child { border-bottom: 0; }
.treasury-product-lines { display: grid; gap: 5px; margin-top: 8px; padding-left: 14px; }
.treasury-product-lines > div { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; padding: 6px 0; font-size: .88rem; border-top: 1px dashed var(--line); }
.treasury-product-lines span { display: grid; gap: 1px; }
.treasury-source-views { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0 18px; }
.treasury-source-view { flex: 1 1 100%; }
.treasury-source-view > summary,
.treasury-category-products > summary { display: inline-flex; cursor: pointer; list-style: none; }
.treasury-source-view > summary::-webkit-details-marker,
.treasury-category-products > summary::-webkit-details-marker { display: none; }
.treasury-source-view[open] > summary,
.treasury-category-products[open] > summary { color: #fff; background: var(--brand); }
.treasury-product-summary { display: grid; margin-top: 8px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 9px; }
.treasury-product-summary > div { display: grid; grid-template-columns: minmax(0, 1fr) 7rem 9rem; gap: 12px; align-items: center; padding: 8px 10px; border-bottom: 1px solid var(--line); }
.treasury-product-summary > div:last-child { border-bottom: 0; }
.treasury-product-summary-head { color: var(--muted); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.treasury-category-products { margin-top: 10px; }
.treasury-configuration > section + section { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.treasury-accounting-list { display: grid; gap: 8px; margin-top: 16px; }
.treasury-accounting-list > form,
.treasury-accounting-list > article,
.treasury-accounting-list > article > form:first-child { display: grid; grid-template-columns: minmax(9rem, 1fr) minmax(7rem, .7fr) minmax(9rem, .8fr) auto; align-items: end; gap: 10px; }
.treasury-accounting-list > article > form:last-child { margin-top: 6px; }

.treasury-ledger table {
  width: 100%;
  border-collapse: collapse;
}

.treasury-ledger th,
.treasury-ledger td {
  padding: 12px 10px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--line);
}

.treasury-entry--cancelled {
  opacity: .62;
}

.treasury-entry--cancelled td {
  text-decoration-color: #b23a31;
}

.category-chip-list {
  display: flex;
  gap: 9px;
  margin-top: 16px;
  flex-wrap: wrap;
}

.category-chip-list form {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 7px;
  background: #f5f8f9;
  border: 1px solid var(--line);
  border-radius: 10px;
}

@media (max-width: 900px) {
  .treasury-unassigned-list > article,
  .treasury-assignment-form {
    grid-template-columns: 1fr;
  }

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

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

  .treasury-accounting-list > form,
  .treasury-accounting-list > article,
  .treasury-accounting-list > article > form:first-child { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
  .treasury-period-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .treasury-kpis {
    grid-template-columns: 1fr;
  }

  .treasury-section-heading { align-items: stretch; flex-direction: column; }

  .treasury-breakdown-values,
  .treasury-accounting-list > form,
  .treasury-accounting-list > article,
  .treasury-accounting-list > article > form:first-child { grid-template-columns: 1fr; }
  .treasury-product-summary > div { grid-template-columns: minmax(0, 1fr) auto; }
  .treasury-product-summary > div > :last-child { grid-column: 1 / -1; }
  .treasury-product-summary-head { display: none !important; }
}

@media (max-width: 700px) {
  .appearance-upload-grid,
  .event-image-editor {
    grid-template-columns: 1fr;
  }
}

.public-entry-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 20px;
}

.public-entry-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 22px;
  text-decoration: none;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.public-entry-card:hover {
  border-color: var(--brand);
  transform: translateY(-1px);
}

.public-entry-card h2 {
  margin: 0 0 4px;
}

.public-entry-card p {
  margin: 0;
  color: var(--muted);
}

.document-groups {
  display: grid;
  gap: 18px;
}

.document-folder h2 {
  margin-top: 0;
}

.document-list {
  display: grid;
  gap: 8px;
}

.document-row {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  text-decoration: none;
  color: var(--organization-surface-ink, var(--ink));
  background: var(--surface-soft, var(--organization-surface, var(--surface)));
  border: 1px solid var(--line);
  border-radius: 9px;
}

.document-row:hover {
  border-color: var(--brand);
  background: var(--surface-selected, var(--surface-soft));
}

.document-row span:first-child {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.document-row strong {
  overflow-wrap: anywhere;
}

.document-row small {
  color: var(--muted);
}

.document-row span:last-child {
  color: var(--brand);
  font-weight: 750;
}

.event-feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
  margin: 12px 0 32px;
}

.event-feature {
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.event-feature img {
  width: 100%;
  height: 190px;
  object-fit: cover;
}

.event-feature>div {
  padding: 22px;
}

.event-feature h2 {
  margin: 10px 0 6px;
}

.agenda-section {
  margin-top: 28px;
}

.subscription-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
    gap: 1rem;
}

.subscription-card,
.calendar-subscription-secret {
    display: grid;
    gap: 1rem;
}

.push-settings {
  display: grid;
  gap: 16px;
  margin-top: 22px;
}

.push-settings h2 {
  margin: 6px 0;
}

.push-status {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--background, #f4f7f8);
  font-weight: 700;
}

.push-status.is-active {
  border-color: #86c89a;
  background: #edf9f0;
  color: #216236;
}

.offline-card {
  text-align: center;
}

.notification-preferences {
  display: grid;
  gap: 18px;
  margin-top: 22px;
}

.notification-preferences h2 {
  margin: 6px 0;
}

.notification-preferences form {
  display: grid;
  gap: 16px;
}

.notification-preference-table {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.notification-preference-head,
.notification-preference-row {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) repeat(3, 92px);
  align-items: center;
}

.notification-preference-head {
  padding: 10px 14px;
  background: #eef3f5;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-align: center;
  text-transform: uppercase;
}

.notification-preference-head span:first-child {
  text-align: left;
}

.notification-preference-group {
  padding: 8px 14px;
  border-top: 1px solid var(--line);
  background: #f8fafb;
  color: var(--brand);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.notification-preference-row {
  min-height: 68px;
  padding: 10px 14px;
  border-top: 1px solid var(--line);
}

.notification-preference-row > div {
  display: grid;
  gap: 3px;
}

.notification-preference-row small {
  color: var(--muted);
}

.notification-preference-row label {
  display: grid;
  place-items: center;
  min-height: 42px;
  cursor: pointer;
}

.notification-preference-row input[type='checkbox'] {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--brand);
}

.notification-preference-row label span {
  display: none;
}

@media (max-width: 680px) {
  .notification-preference-head {
    display: none;
  }

  .notification-preference-row {
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }

  .notification-preference-row > div {
    grid-column: 1 / -1;
    margin-bottom: 4px;
  }

  .notification-preference-row label {
    grid-template-columns: 18px auto;
    place-content: center;
    gap: 7px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
  }

  .notification-preference-row label span {
    display: inline;
    font-size: 12px;
    font-weight: 700;
  }
}

.subscription-card h3,
.calendar-subscription-secret h2 {
    margin: .55rem 0 .35rem;
}

.subscription-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.calendar-subscribe-button {
    width: fit-content;
    min-height: 2.85rem;
}

.calendar-subscribe-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.calendar-copy-status {
    margin: 0;
}

.subscription-help {
    padding: .75rem .85rem;
    border: 1px solid var(--line);
    border-radius: .75rem;
    background: var(--surface-soft, #f7f8fb);
}

.subscription-help summary {
    color: var(--primary, #2563eb);
    font-weight: 700;
    cursor: pointer;
}

.subscription-help p {
    margin: .75rem 0;
}

.subscription-url {
    width: 100%;
    min-width: 0;
    padding: .75rem .85rem;
    border: 1px solid var(--border-color, #d8dee9);
    border-radius: .65rem;
    background: var(--surface-soft, #f7f8fb);
    color: inherit;
    font: .82rem/1.4 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.calendar-subscription-secret {
    margin-bottom: 1.25rem;
    padding: 1.25rem;
    border: 1px solid #f0c36a;
    border-radius: 1rem;
    background: #fff9e9;
}

.view-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 14px;
}

.view-heading h2 {
  margin: 5px 0 0;
}

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

.event-row {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 18px;
  color: inherit;
  text-decoration: none;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
}

.event-row:hover {
  border-color: var(--brand);
}

.event-row time {
  display: grid;
  text-align: center;
  color: var(--brand);
}

.event-row time strong {
  font-size: 1.8rem;
  line-height: 1;
}

.event-row h3 {
  margin: 7px 0 4px;
}

.event-row p {
  margin: 0;
  color: var(--muted);
}

.event-arrow {
  color: var(--brand);
  font-size: 1.5rem;
}

.calendar-toolbar {
  align-items: center;
}

.calendar-controls {
  display: flex;
  min-width: 250px;
  gap: 12px;
  align-items: center;
  justify-content: flex-end;
}

.calendar-controls strong {
  min-width: 125px;
  color: var(--brand-dark);
  text-align: center;
  text-transform: capitalize;
}

.calendar-controls button:disabled {
  cursor: not-allowed;
  opacity: .4;
}

.calendar-months {
  display: block;
  min-width: 0;
  max-width: 100%;
}

.calendar-month[hidden] {
  display: none;
}

.calendar-month {
  min-width: 0;
  max-width: 100%;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.calendar-month>h3 {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.calendar-scroll {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

.calendar-grid {
  display: grid;
  min-width: 650px;
  grid-template-columns: repeat(7, minmax(80px, 1fr));
  gap: 5px;
}

.calendar-weekday {
  padding: 7px;
  color: var(--muted);
  font-size: .7rem;
  font-weight: 800;
  text-align: center;
  text-transform: uppercase;
}

.calendar-day {
  min-height: 80px;
  padding: 7px;
  background: var(--surface-soft, #f7f9fa);
  border: 1px solid transparent;
  border-radius: 8px;
}

.calendar-day.is-empty {
  background: transparent;
}

.calendar-day.has-events {
  background: var(--surface-selected, #eef8fa);
  border-color: color-mix(in srgb, var(--organization-primary, var(--brand)) 62%, var(--line));
}

.calendar-day-number {
  display: block;
  margin-bottom: 7px;
  color: var(--muted);
  font-size: .8rem;
  font-weight: 800;
}

.calendar-item {
  display: grid;
  gap: 2px;
  padding: 6px;
  margin-top: 4px;
  color: var(--ink);
  font-size: .72rem;
  text-decoration: none;
  background: color-mix(in srgb, var(--calendar-entry-color, var(--brand)) 18%, var(--organization-surface, #fff));
  border-left: 3px solid var(--calendar-entry-color, var(--brand));
  border-radius: 6px;
}

.calendar-item:hover,
.calendar-item:focus-visible {
  background: #cae8ee;
  outline: none;
}

.calendar-item strong {
  overflow-wrap: anywhere;
}

.calendar-item span {
  color: var(--muted);
  font-size: .7rem;
}

.calendar-item.calendar-item--continuation {
  min-height: 5px;
  padding: 0;
  background: var(--calendar-entry-color, #d97706);
  border: 0;
  border-radius: 999px;
}

.calendar-item.calendar-item--continuation:hover,
.calendar-item.calendar-item--continuation:focus-visible {
  min-height: 9px;
  background: color-mix(in srgb, var(--calendar-entry-color, #d97706) 78%, #000);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--calendar-entry-color, #d97706) 30%, transparent);
}

.calendar-item.calendar-item--milestone {
  position: relative;
  border-left-width: 5px;
}

.calendar-item.calendar-item--milestone::before {
  position: absolute;
  top: 7px;
  left: -5px;
  width: 9px;
  height: 9px;
  content: "";
  background: var(--calendar-entry-color, var(--brand));
  border: 2px solid var(--organization-surface, #fff);
  border-radius: 50%;
  transform: translateX(-50%);
}

.calendar-mobile-item {
  display: none;
}

.calendar-mobile-legend {
  display: none;
}

.event-detail {
  overflow: hidden;
  background: var(--surface);
  border-radius: 18px;
  box-shadow: var(--shadow);
}

.event-hero {
  display: block;
  width: 100%;
  max-height: 480px;
  object-fit: cover;
}

.event-detail-body {
  padding: 28px;
}

.event-detail-body .portal-header {
  padding: 0 0 24px;
  border: 0;
  box-shadow: none;
}

.event-lead {
  font-size: 1.15rem;
  line-height: 1.6;
}

.event-modules {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 18px;
  margin-top: 20px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  white-space: nowrap;
  border: 0;
  clip: rect(0, 0, 0, 0);
}

@media (max-width: 1050px) {
  .organization-grid {
    grid-template-columns: 1fr;
  }

  .module-card-header {
    min-height: 0;
  }
}

@media (max-width: 760px) {
  .auth-page {
    width: 100%;
    max-width: 100vw;
    padding: 12px;
    overflow-x: hidden;
    place-items: start center;
  }

  .public-portal {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
    min-width: 0;
  }

  .organization-choice-logo,
  .organization-choice-mark {
    width: 88px;
  }

  .organization-choice-content {
    padding-left: 101px;
  }

  .organization-directory-search {
    grid-template-columns: 1fr 1fr;
  }

  .organization-directory-search > div:first-child,
  .organization-directory-actions {
    grid-column: 1 / -1;
  }

  .platform-publisher-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .platform-about-grid {
    grid-template-columns: 1fr;
  }

  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    padding: 16px;
  }

  .sidebar nav {
    grid-template-columns: 1fr 1fr;
    margin-top: 20px;
  }

  .sidebar-footer {
    margin-top: 18px;
  }

  .main-content {
    padding: 28px 18px;
  }

  .page-header {
    flex-direction: column;
  }

  .page-header>.button {
    width: 100%;
  }

  .header-actions {
    width: 100%;
    flex-direction: column;
  }

  .header-actions .button {
    width: 100%;
  }

  .field-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .people-summary {
    grid-template-columns: 1fr 1fr;
  }

  .access-health {
    align-items: flex-start;
    flex-direction: column;
  }

  .portal-header {
    flex-direction: column;
    gap: 10px;
    padding: 16px;
    margin-bottom: 14px;
  }

  .portal-header h1 {
    margin: 3px 0 5px;
    font-size: 1.55rem;
  }

  .portal-header p {
    margin: 0;
    font-size: .88rem;
  }

  .profile-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .public-hero {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 32px 24px;
  }

  .public-hero.has-banner {
    background-image: linear-gradient(90deg, rgba(0, 0, 0, .68), rgba(0, 0, 0, .36)), var(--organization-mobile-banner, var(--organization-banner));
  }

  .public-hero-mark {
    display: none;
  }

  .appearance-upload-grid,
  .form-grid-2 {
    grid-template-columns: 1fr;
  }

  .public-entry-grid {
    grid-template-columns: 1fr;
  }

  .kanban {
    grid-template-columns: 1fr;
  }

  .budget-summary {
    grid-template-columns: 1fr 1fr;
  }

  .budget-form,
  .budget-line-form {
    grid-template-columns: 1fr;
  }

.sales-admin-grid {
    grid-template-columns: 1fr;
  }

  .sales-kpis {
    grid-template-columns: 1fr 1fr;
  }

  .sales-report-filters {
    grid-template-columns: 1fr 1fr;
  }

  .seller-cash-count-form {
    grid-template-columns: 1fr;
  }

  .cash-validation-form {
    grid-template-columns: 1fr;
  }

  .sales-report-grid,
  .sales-receipt-layout {
    grid-template-columns: 1fr;
  }

  .library-publish {
    align-items: stretch;
    flex-direction: column;
  }

  .library-publish form {
    min-width: 0;
    flex-direction: column;
  }

  .sales-layout {
    grid-template-columns: 1fr;
  }

  .sales-cart {
    position: relative;
    min-height: 300px;
    padding: 10px;
  }

  .sales-cart-lines {
    max-height: 18vh;
  }

  .sales-pad {
    grid-auto-rows: 54px;
    gap: 6px;
  }

  .sales-key {
    min-height: 54px;
    padding: 6px;
    font-size: .82rem;
  }

  .sales-terminal {
    padding: 7px;
  }

  .sales-payment-view {
    position: fixed;
    z-index: 100;
    inset: 0;
    min-height: 100dvh;
    padding: max(9px, env(safe-area-inset-top)) max(9px, env(safe-area-inset-right)) max(9px, env(safe-area-inset-bottom)) max(9px, env(safe-area-inset-left));
    border-radius: 0;
  }

  .sales-payment-view:not([hidden]) {
    grid-template-rows: auto auto minmax(180px, 1fr) auto minmax(0, 76px) auto auto;
    gap: 6px;
  }

  .sales-payment-view>header {
    min-height: 42px;
  }

  .sales-payment-display {
    padding: 7px 9px;
  }

  .sales-payment-display strong {
    font-size: 1.45rem;
  }

  .sales-numpad {
    min-height: 180px;
  }

  .sales-numpad button {
    min-height: 40px;
  }

  .sales-detailed-methods {
    margin-top: 0;
  }

  .sales-detailed-methods button {
    padding: 7px;
  }

  .sales-finalize {
    min-height: 46px;
    margin-top: 0;
  }

  .sales-editor-grid {
    grid-auto-rows: 88px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sales-builder {
    grid-template-columns: 1fr;
  }

  .sales-product-tray {
    position: static;
  }

  .sales-product-list {
    max-height: 240px;
  }

  .sales-group-create {
    grid-template-columns: 1fr;
  }

  .catalog-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .catalog-tabs {
    width: 100%;
  }

  .catalog-tab {
    flex: 1;
    justify-content: center;
  }

  .catalog-add>summary {
    width: 100%;
    text-align: center;
  }

  .catalog-create-form {
    position: static;
    width: 100%;
    grid-template-columns: 1fr;
    margin-top: 8px;
    box-shadow: var(--shadow);
  }

  .catalog-list-header {
    display: none;
  }

  .catalog-row {
    grid-template-columns: 1fr 1fr;
    gap: 9px;
    padding: 14px;
  }

  .catalog-row>label:first-of-type {
    grid-column: 1 / -1;
  }

  .catalog-row>label>span:first-child {
    display: block;
  }

  .catalog-inventory-field>label>span{display:block}
  .catalog-inventory-field{grid-column:1/-1}
  .catalog-inventory-new{position:static;width:100%;grid-template-columns:1fr;box-shadow:none}

  .catalog-row input:not([type="checkbox"]),
  .catalog-row select {
    border-color: var(--line);
  }

  .catalog-options {
    grid-column: 1 / -1;
  }
  .catalog-analytics-fields>div{grid-template-columns:1fr}.catalog-analytics-fields>summary{align-items:flex-start;flex-direction:column}

  .catalog-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
    padding-top: 3px;
  }

  .catalog-actions .button {
    min-height: 38px;
  }

  .catalog-more {
    margin-left: auto;
  }

  .catalog-history p {
    grid-template-columns: 1fr;
  }

  .catalog-history p small {
    grid-column: auto;
  }

  .event-row {
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 10px;
    padding: 11px;
  }

  .event-row time strong {
    font-size: 1.35rem;
  }

  .event-row h3 {
    margin: 4px 0 0;
    font-size: 1rem;
  }

  .event-row p {
    display: none;
  }

  .event-arrow {
    display: none;
  }

  .calendar-month {
    padding: 8px;
  }

  .agenda-section,
  .calendar-toolbar,
  .calendar-months,
  .calendar-month,
  .calendar-scroll {
    min-width: 0;
    max-width: 100%;
  }

  .calendar-toolbar {
    gap: 8px;
    align-items: flex-start;
    flex-direction: column;
  }

  .calendar-view-heading > div:first-child {
    display: none;
  }

  .calendar-controls {
    display: grid;
    min-width: 0;
    width: 100%;
    grid-template-columns: 40px minmax(0, 1fr) 40px;
    gap: 6px;
    align-items: center;
  }

  .calendar-controls strong {
    min-width: 0;
    font-size: .92rem;
  }

  .calendar-controls .button {
    width: 40px;
    min-width: 0;
    min-height: 38px;
    padding: 0;
    place-content: center;
  }

  .calendar-scroll {
    overflow: visible;
  }

  .calendar-grid {
    min-width: 0;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 3px;
  }

  .calendar-weekday {
    padding: 4px 0;
    font-size: .58rem;
  }

  .calendar-day {
    position: relative;
    min-width: 0;
    min-height: 48px;
    padding: 4px 2px;
    border-radius: 6px;
  }

  .calendar-day-number {
    margin-bottom: 4px;
    font-size: .7rem;
    text-align: center;
  }

  .calendar-item {
    display: none;
  }

  .calendar-mobile-item {
    display: inline-block;
    margin: 0 1px;
  }

  .calendar-mobile-item > summary {
    list-style: none;
  }

  .calendar-mobile-item > summary::-webkit-details-marker {
    display: none;
  }

  .calendar-event-dot {
    display: block;
    width: 9px;
    height: 9px;
    cursor: pointer;
    background: var(--brand);
    border: 1px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgb(17 79 96 / 22%);
  }

  .calendar-event-dot--school_council {
    background: #7b5ac7;
  }

  .calendar-event-dot--sale {
    background: #d97706;
  }

  .calendar-event-dot--sale.is-continuation {
    width: 22px;
    height: 5px;
    border-radius: 999px;
  }

  .calendar-event-dot--meeting {
    background: #e18a28;
  }

  .calendar-mobile-item[open] .calendar-event-dot {
    box-shadow: 0 0 0 3px rgb(17 110 132 / 22%);
  }

  .calendar-event-popover {
    position: fixed;
    z-index: 120;
    right: 14px;
    bottom: 14px;
    left: 14px;
    display: grid;
    gap: 10px;
    align-items: stretch;
    padding: 14px;
    color: var(--ink);
    text-align: left;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 13px;
    box-shadow: 0 18px 50px rgb(20 43 51 / 28%);
  }

  .calendar-event-popover > div:first-child {
    display: grid;
    min-width: 0;
    gap: 4px;
  }

  .calendar-event-popover strong {
    overflow-wrap: anywhere;
  }

  .calendar-event-popover small {
    color: var(--muted);
  }

  .calendar-event-popover-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
  }

  .calendar-event-popover-actions .button {
    width: 100%;
    min-width: 0;
    justify-content: center;
    text-align: center;
  }

  .agenda-section {
    margin-top: 18px;
  }

  .agenda-section > .view-heading {
    margin-bottom: 9px;
  }

  .agenda-section > .view-heading h2 {
    margin-top: 2px;
    font-size: 1.25rem;
  }

  .calendar-mobile-legend {
    display: flex;
    gap: 10px;
    margin-top: 8px;
    flex-wrap: wrap;
    color: var(--muted);
    font-size: .68rem;
  }

  .calendar-mobile-legend span {
    display: flex;
    gap: 5px;
    align-items: center;
  }

  .calendar-subscribe-button {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .calendar-subscribe-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .module-catalog {
    align-items: stretch;
    flex-direction: column;
  }

  .module-pills {
    justify-content: stretch;
  }

  .module-pills form,
  .module-pill {
    width: 100%;
  }

  .module-card-header,
  .module-form {
    padding-right: 20px;
    padding-left: 20px;
  }
}

.sales-config-card { padding: 0; overflow: hidden; }
.sales-config-card > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; cursor: pointer; list-style: none; }
.sales-config-card > summary::-webkit-details-marker { display: none; }
.sales-config-card > summary span { color: var(--brand); font-size: 1.35rem; font-weight: 800; }
.sales-config-card[open] > summary span { font-size: 0; }
.sales-config-card[open] > summary span::before { content: "−"; font-size: 1.35rem; }
.sales-config-card > form,
.sales-config-card > p,
.sales-config-card > ul { margin: 0 16px 16px; }
.sales-config-existing { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 16px 14px; }
.sales-config-existing > span { display: grid; gap: 2px; padding: 7px 9px; background: #f5f8f9; border: 1px solid var(--line); border-radius: 8px; }
.sales-config-existing small { color: var(--muted); }
.sales-seller-list { display: grid; gap: 5px; margin-bottom: 12px; }
.sales-seller-list article { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: #f5f8f9; border: 1px solid var(--line); border-radius: 9px; }
.sales-seller-onboarding-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: .8rem; align-items: start; margin-top: .9rem; }
.sales-seller-onboarding-grid > .sales-config-card { margin: 0; }
.sales-seller-hr-card { padding: 1rem; border-style: dashed !important; }
.sales-seller-hr-card p { margin: .45rem 0 0; color: var(--muted); font-size: .9rem; line-height: 1.45; }
.sales-seller-settings .sales-config-card { margin-top: 14px; border: 1px solid var(--line); border-radius: 10px; }
.sales-seller-settings .sales-seller-onboarding-grid > .sales-config-card { margin-top: 0; }
.sales-seller-settings .sales-seller-row { margin-top: 0; border-radius: 7px; }
.sales-seller-row > summary { display: grid; grid-template-columns: minmax(10rem, 1fr) auto 1.25rem; min-height: 2.65rem; gap: .65rem; padding: .45rem .65rem; }
.sales-seller-row > summary > span { color: inherit; font-size: inherit; }
.sales-seller-row[open] > summary > span { font-size: inherit; }
.sales-seller-row[open] > summary > span::before { content: none; }
.sales-seller-identity { display: grid; min-width: 0; gap: .05rem; }
.sales-seller-identity strong { overflow: hidden; font-size: .88rem; text-overflow: ellipsis; white-space: nowrap; }
.sales-seller-identity small { overflow: hidden; color: var(--muted); font-size: .68rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.sales-seller-flags { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .25rem; }
.sales-seller-flags .badge { padding: .16rem .38rem; font-size: .62rem; }
.sales-seller-chevron { align-self: center; color: var(--brand) !important; font-size: 1rem !important; font-weight: 900; text-align: center; }
.sales-seller-row[open] .sales-seller-chevron { transform: rotate(45deg); }
.sales-seller-editor { padding: .65rem; border-top: 1px solid var(--line); }
.sales-seller-edit-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: .55rem .75rem; }
.sales-seller-edit-form label { display: grid; gap: .2rem; margin: 0; font-size: .75rem; font-weight: 750; }
.sales-seller-edit-form :is(input, select) { min-height: 2.25rem; padding: .38rem .5rem; font-size: .78rem; }
.sales-seller-edit-form .choice-line { align-self: center; margin: 0; }
.sales-seller-help { margin: 0; font-size: .68rem; line-height: 1.25; }
.sales-seller-save { justify-self: start; min-height: 2.25rem; padding: .4rem .75rem; }
.sales-seller-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .55rem; padding-top: .55rem; border-top: 1px dashed var(--line); }
.sales-seller-actions form { margin: 0; }
.sales-seller-settings .choice-line {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 4px 0 10px;
  font-size: .88rem;
  line-height: 1.25;
  font-weight: 650;
}
.sales-seller-settings .choice-line input[type="checkbox"] {
  flex: 0 0 17px;
  width: 17px;
  min-width: 17px;
  height: 17px;
  min-height: 0;
  padding: 0;
  margin: 0;
}
@media (max-width: 720px) {
  .sales-seller-row > summary { grid-template-columns: minmax(8rem, 1fr) 1.25rem; }
  .sales-seller-flags { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; }
  .sales-seller-chevron { grid-column: 2; grid-row: 1; }
  .sales-seller-edit-form { grid-template-columns: 1fr; }
}
.sales-pos-settings > div { padding: 0 16px 16px; }
.sales-pos-settings .sales-config-card { margin-top: 5px; border: 1px solid var(--line); border-radius: 7px; }
.sales-pos-row > summary { display: grid; grid-template-columns: minmax(10rem, 1fr) auto 1.25rem; min-height: 2.65rem; gap: .65rem; padding: .45rem .65rem; }
.sales-pos-row > summary > span,.sales-pos-row[open] > summary > span { color: inherit; font-size: inherit; }
.sales-pos-row[open] > summary > span::before { content: none; }
.sales-pos-identity { display: grid; min-width: 0; gap: .05rem; }
.sales-pos-identity strong { overflow: hidden; font-size: .88rem; text-overflow: ellipsis; white-space: nowrap; }
.sales-pos-identity small { color: var(--muted); font-size: .68rem; font-weight: 600; }
.sales-pos-flags { display: flex; align-items: center; }
.sales-pos-flags .badge { padding: .16rem .38rem; font-size: .62rem; }
.sales-pos-chevron { align-self: center; color: var(--brand) !important; font-size: 1rem !important; font-weight: 900; text-align: center; }
.sales-pos-row[open] .sales-pos-chevron { transform: rotate(45deg); }
.sales-pos-form { display: grid; gap: .65rem; padding: .65rem; border-top: 1px solid var(--line); }
.sales-pos-basics { display: grid; grid-template-columns: minmax(12rem, 1fr) auto; align-items: end; gap: .75rem; }
.sales-pos-basics > label:first-child { display: grid; gap: .2rem; font-size: .75rem; font-weight: 750; }
.sales-pos-basics input:not([type="checkbox"]) { min-height: 2.25rem; padding: .38rem .5rem; }
.sales-pos-form fieldset { margin: 0; padding: .55rem .65rem; border: 1px solid var(--line); border-radius: .55rem; }
.sales-pos-form fieldset legend { padding: 0 .25rem; font-size: .76rem; font-weight: 800; }
.sales-pos-form fieldset p { margin: 0 0 .4rem; font-size: .68rem; }
.sales-compact-checks { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.sales-compact-checks label { display: flex; align-items: center; gap: 6px; margin: 0; font-size: .84rem; font-weight: 650; }
.sales-compact-checks input[type="checkbox"], .sales-permission-matrix input[type="checkbox"] { width: 16px; min-width: 16px; height: 16px; min-height: 0; padding: 0; margin: 0; }
.sales-permission-matrix { min-width: 520px; font-size: .82rem; }
.sales-permission-matrix th, .sales-permission-matrix td { padding: 7px 9px; text-align: center; }
.sales-permission-matrix th:first-child { position: sticky; left: 0; z-index: 1; text-align: left; background: var(--surface); }
.sales-permission-matrix tr.is-muted { opacity: .48; }
@media (max-width: 720px) {
  .sales-pos-row > summary { grid-template-columns: minmax(8rem, 1fr) auto 1.25rem; }
  .sales-pos-basics { grid-template-columns: 1fr; }
}
.sales-payment-method-list > details { min-width: 210px; padding: 8px 10px; background: #f5f8f9; border: 1px solid var(--line); border-radius: 8px; }
.sales-payment-method-list > details > summary { display: grid; gap: 2px; cursor: pointer; }
.sales-payment-method-list > details > form { margin-top: 10px; }
.sales-payment-method-list .choice-line { display: flex; align-items: center; gap: 7px; font-size: .84rem; }
.sales-payment-method-list .choice-line input { width: 16px; min-width: 16px; height: 16px; min-height: 0; padding: 0; }

.workspace-projects,
.project-pulse {
  margin-top: 1.5rem
}

.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem
}

.project-overview-card h3,
.project-pulse h3 {
  margin: .6rem 0
}

.project-card-stats {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 1rem 0
}

.project-card-stats span {
  padding: .45rem .65rem;
  border-radius: 999px;
  background: var(--surface-soft, #f2f4f7);
  font-size: .82rem
}

.project-card-stats .needs-action,
.card-needs-action {
  border-color: color-mix(in srgb, #e7a52b 75%, var(--line));
  background: color-mix(in srgb, #e7a52b 18%, var(--surface))
}

.project-view-settings {
  margin-top: 2rem;
  padding: 1rem;
  border: 1px solid var(--border, #dfe3e8);
  border-radius: 1rem;
  background: var(--surface, #fff)
}

.project-view-settings>summary {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer
}

.project-view-settings>summary span:first-child {
  display: grid;
  gap: .2rem
}

.project-view-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin: 1rem 0
}

.project-view-grid fieldset {
  margin: 0
}

.project-view-grid legend {
  display: grid;
  gap: .2rem
}

.project-view-grid legend small {
  font-weight: 400;
  color: var(--muted, #667085)
}

@media(max-width:680px) {
  .section-heading {
    align-items: stretch;
    flex-direction: column
  }

  .project-view-grid {
    grid-template-columns: 1fr
  }
}

.question-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr);
  gap: 1rem;
  margin: 1.25rem 0;
}

.question-followup {
  align-self: start;
}

.question-followup article {
  display: grid;
  gap: .35rem;
  padding: .8rem 0;
  border-bottom: 1px solid var(--line);
}

.question-topic-grid,
.question-routing-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}

.question-topic {
  display: grid;
  gap: .8rem;
}

.question-opinion-summary,
.question-opinion-actions {
  display: flex;
  gap: .6rem;
  align-items: center;
}

.question-opinion-summary span {
  padding: .35rem .65rem;
  border-radius: 999px;
  font-weight: 800;
}

.question-opinion-summary .is-support {
  color: #166534;
  background: #dcfce7;
}

.question-opinion-summary .is-oppose {
  color: #991b1b;
  background: #fee2e2;
}

.question-actions-progress {
  display: grid;
  gap: .65rem;
  margin-top: .9rem;
  padding-top: .9rem;
  border-top: 1px solid var(--line);
}

.question-action-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .7rem;
  border-radius: .75rem;
  background: var(--surface-soft, #f2f4f7);
}

.question-action-row span,
.question-action-row small {
  display: block;
}

.question-action-builder {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.question-action-builder summary {
  cursor: pointer;
  font-weight: 750;
}

.question-action-builder form {
  margin-top: 1rem;
}

.question-action-fields {
  display: grid;
  gap: .75rem;
  margin: 0;
  padding: .9rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
}

[data-question-action-fields][hidden],
[data-question-poll-scope][hidden] {
  display: none !important;
}

.question-action-choices,
.question-recipient-groups {
  display: grid;
  gap: .75rem;
}

.question-action-choices {
  margin: 0;
  padding: 0;
  border: 0;
}

.question-action-choice {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .75rem;
  align-items: start;
  margin: 0;
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  cursor: pointer;
}

.question-action-choice > input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: .15rem 0 0;
  padding: 0;
  accent-color: var(--brand);
}

.question-action-choice span,
.question-action-choice small,
.question-recipient-groups strong {
  display: block;
}

.question-recipient-groups {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.question-recipient-groups > div {
  display: grid;
  align-content: start;
  gap: .5rem;
  padding: .75rem;
  border-radius: .65rem;
  background: var(--surface-soft, #f2f4f7);
}

.question-action-fields legend {
  padding: 0 .35rem;
  font-weight: 750;
}

.question-poll {
  display: grid;
  gap: .55rem;
  padding: .8rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
}

.question-poll-option {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: .55rem;
  align-items: center;
  margin: 0;
  padding: .55rem .65rem;
  border-radius: .6rem;
  background: var(--surface-soft, #f2f4f7);
}

.question-response-versions,
.question-workflow-panel {
  display: grid;
  gap: .65rem;
  margin-top: 1rem;
}

.question-response-version {
  padding: .8rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  background: var(--surface-soft, #f2f4f7);
}

.question-response-version.is-published {
  border-color: var(--brand);
}

.question-response-version p {
  margin: .35rem 0;
  white-space: pre-wrap;
}

.question-workflow-actions {
  display: flex;
  gap: .5rem;
  margin: 1rem 0;
}

.question-published-response {
  padding: .9rem;
  border-left: 4px solid var(--brand);
  border-radius: .65rem;
  background: var(--surface-soft, #f2f4f7);
}

.question-published-response p {
  margin: .4rem 0 0;
  white-space: pre-wrap;
}

.external-question-page {
  max-width: 1020px;
}

.external-question-workspace {
  display: grid;
  gap: 0;
}

.external-question-workspace > .question-body,
.external-question-empty {
  margin: 1rem 0 0;
}

.external-question-workspace .question-workflow-panel,
.external-question-validation {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.external-question-workspace .question-workflow-panel > summary {
  cursor: pointer;
  font-weight: 750;
}

.external-question-workspace .question-workflow-panel > form,
.external-question-validation > form {
  margin-top: .85rem;
}

.external-question-validation > p:last-child {
  margin-bottom: 0;
}

.notification-list {
  display: grid;
  gap: 1rem;
}

.notification-card.is-unread {
  border-left: 4px solid var(--brand);
}

.own-question {
  color: var(--brand-dark);
  font-weight: 700;
}

.question-routing-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.question-routing .question-routing-list { grid-template-columns: 1fr; }
.question-work-card { display: block; width: 100%; min-width: 0; padding: 0; overflow: clip; }
.question-work-summary { display: flex; min-width: 0; align-items: center; gap: .65rem; padding: .65rem .8rem; list-style: none; color: var(--organization-surface-ink, var(--ink)); cursor: pointer; }
.question-work-summary::-webkit-details-marker { display: none; }
.question-work-summary::marker { content: ""; }
.question-work-summary-chevron { display: grid; width: 1.5rem; height: 1.5rem; flex: 0 0 1.5rem; place-items: center; border-radius: 50%; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-selected); font-size: 1.25rem; font-weight: 900; line-height: 1; transition: transform .16s ease; }
.question-work-fold[open] > .question-work-summary .question-work-summary-chevron { transform: rotate(90deg); }
.question-work-summary-main { display: grid; min-width: 0; flex: 1; gap: .12rem; }
.question-work-summary-title { display: flex; min-width: 0; align-items: center; gap: .45rem; flex-wrap: wrap; }
.question-work-summary-title > strong { overflow: hidden; text-overflow: ellipsis; }
.question-work-summary-main > small { overflow: hidden; color: var(--muted); font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.question-work-summary-tags { display: flex; max-width: 42%; align-items: center; justify-content: flex-end; gap: .3rem; flex-wrap: wrap; }
.question-work-summary-tags .question-state-tag { min-height: 1.45rem; padding: .16rem .42rem; font-size: .68rem; }
.question-work-content { display: grid; gap: .55rem; padding: .45rem .7rem .7rem; border-top: 1px solid var(--line); }
.question-work-zone { display: grid; gap: .4rem; padding: .55rem .65rem; border: 1px solid var(--line); border-radius: .65rem; color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); }
.question-work-zone > :is(p,h4) { margin-block: .15rem; }
.question-work-zone.is-empty { background: var(--surface-soft); }
.question-work-zone.is-official { border-color: color-mix(in srgb, var(--brand) 58%, var(--line)); background: var(--surface-selected); }
.question-zone-heading { display: flex; align-items: center; gap: .45rem; padding-bottom: .32rem; border-bottom: 1px solid var(--line); }
.question-zone-heading > span { display: grid; width: 1.45rem; height: 1.45rem; flex: 0 0 1.45rem; place-items: center; border-radius: 999px; color: var(--organization-field-ink, var(--ink)); background: var(--surface-selected); font-size: .7rem; font-weight: 900; }
.question-zone-heading > div { display: grid; gap: .1rem; }
.question-zone-heading :is(strong,small) { display: block; }
.question-zone-heading small { color: var(--muted); font-weight: 450; }
.question-zone-heading > strong { min-width: 0; }
.question-context-help { position: relative; margin-left: auto; }
.question-context-help > summary { display: inline-flex; min-width: 1.75rem; min-height: 1.75rem; padding: .2rem .48rem; align-items: center; justify-content: center; gap: .35rem; list-style: none; border: 1px solid var(--line); border-radius: 999px; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-selected); font-size: .78rem; font-weight: 900; cursor: pointer; }
.question-context-help > summary::-webkit-details-marker { display: none; }
.question-context-help > p { position: absolute; z-index: 8; top: calc(100% + .45rem); right: 0; width: min(22rem, 75vw); margin: 0; padding: .7rem .8rem; border: 1px solid var(--line); border-radius: .7rem; color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); box-shadow: var(--shadow); font-size: .82rem; font-weight: 450; line-height: 1.45; }
.question-help-menu { display: flex; gap: .4rem; flex-wrap: wrap; }
.question-help-menu .question-context-help { margin: 0; }
.question-help-menu .question-context-help > p { right: auto; left: 0; }
.external-question-workspace .question-zone-heading small { display: none; }
.external-module-fold.has-new-activity .external-submodule.has-new-activity { box-shadow: none; border-color: color-mix(in srgb, #ff2ebd 58%, var(--line)); }
.external-module-fold.has-new-activity .document-row.has-new-activity { box-shadow: none; border-left: 4px solid #ff2ebd; }
.question-discussion-thread { display: grid; gap: .55rem; max-height: 24rem; overflow: auto; }
.question-discussion-thread article { padding: .65rem .75rem; border-left: 3px solid var(--organization-accent, var(--accent)); border-radius: .35rem .7rem .7rem .35rem; background: var(--surface-soft); }
.question-discussion-thread p { margin: .3rem 0 0; }
.question-discussion-form { display: grid; gap: .5rem; }
.question-participants { display: grid; gap: .4rem; padding: .5rem .6rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--surface-soft); }
.question-participants-head { display: flex; min-width: 0; align-items: baseline; justify-content: space-between; gap: .5rem; }
.question-participants-head small { color: var(--muted); font-size: .72rem; }
.question-participant-list { display: flex; gap: .35rem; flex-wrap: wrap; }
.question-participant { display: inline-flex; min-width: 0; align-items: center; gap: .35rem; padding: .3rem .48rem; border: 1px solid var(--line); border-radius: .55rem; color: var(--organization-surface-ink,var(--ink)); background: var(--organization-surface,var(--surface)); }
.question-participant > span:last-child { display: grid; min-width: 0; gap: .02rem; }
.question-participant strong { font-size: .75rem; }
.question-participant small { color: var(--muted); font-size: .66rem; }
.question-participant-avatar { display: grid; width: 1.3rem; height: 1.3rem; flex: 0 0 1.3rem; place-items: center; border-radius: 50%; color: var(--organization-surface,var(--surface)); background: var(--organization-accent,var(--primary)); font-size: .65rem; font-weight: 900; }
.question-state-tags,.question-tag-actions,.question-tag-admin-list { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.question-state-tag { display: inline-flex; align-items: center; min-height: 1.8rem; padding: .28rem .58rem; border: 1px solid color-mix(in srgb, var(--question-tag-color) 58%, var(--line)); border-radius: 999px; color: var(--organization-surface-ink, var(--ink)); background: color-mix(in srgb, var(--question-tag-color) 15%, var(--organization-surface, var(--surface))); font: inherit; font-size: .76rem; font-weight: 800; cursor: default; }
button.question-state-tag { cursor: pointer; }
.question-state-tag.is-applied { box-shadow: inset 0 0 0 1px var(--question-tag-color); background: color-mix(in srgb, var(--question-tag-color) 27%, var(--organization-surface, var(--surface))); }
.question-state-tag.is-archived { opacity: .55; text-decoration: line-through; }
.question-state-tag form { display: inline-flex; margin: 0 0 0 .2rem; }
.question-tag-remove { display: inline-grid; place-items: center; width: 1.15rem; height: 1.15rem; padding: 0; border: 0; border-radius: 50%; color: inherit; background: color-mix(in srgb, currentColor 12%, transparent); font: inherit; font-size: .95rem; font-weight: 900; line-height: 1; cursor: pointer; }
.question-tag-remove:hover,.question-tag-remove:focus-visible { background: color-mix(in srgb, currentColor 24%, transparent); outline: 2px solid color-mix(in srgb, var(--question-tag-color) 60%, transparent); outline-offset: 1px; }
.question-tag-cycle { padding: 0; border: 0; color: inherit; background: transparent; font: inherit; font-weight: 800; cursor: pointer; }
.question-tag-cycle:hover,.question-tag-cycle:focus-visible { text-decoration: underline; text-underline-offset: .16rem; outline: none; }
.question-tag-picker { margin-top: .45rem; }
.question-tag-picker > summary { width: fit-content; color: var(--organization-surface-ink, var(--ink)); font-size: .82rem; font-weight: 800; cursor: pointer; }
.question-tag-picker[open] > .question-tag-actions { margin-top: .45rem; }
.question-tag-catalog,.question-invite-panel,.question-rejection-panel { padding: .7rem .8rem; border: 1px solid var(--line); border-radius: .75rem; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-soft); }
.question-tag-catalog > summary,.question-invite-panel > summary,.question-rejection-panel > summary { cursor: pointer; font-weight: 800; }
.question-tag-editor { display: grid; gap: .85rem; margin-top: .8rem; }
.question-tag-create-card,.question-tag-library { padding: .8rem; border: 1px solid color-mix(in srgb,var(--line) 78%,transparent); border-radius: .7rem; background: color-mix(in srgb,var(--organization-surface,var(--surface)) 72%,transparent); }
.question-tag-section-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: .7rem; }
.question-tag-section-head > div { display: grid; gap: .08rem; }
.question-tag-section-head strong { font-size: .94rem; }
.question-tag-section-head small { color: var(--muted); font-size: .76rem; }
.question-tag-create { display: grid; grid-template-columns: minmax(9rem,.7fr) minmax(13rem,1.3fr); align-items: end; gap: .65rem .8rem; margin: 0; }
.question-tag-create > label { display: grid; align-content: end; gap: .28rem; margin: 0; font-size: .8rem; font-weight: 750; }
.question-tag-create > label input:not([type="checkbox"]),.question-tag-create > label select,.question-tag-create > label textarea { width: 100%; }
.question-tag-create > .checkbox-line { display: flex; align-items: center; align-self: center; gap: .45rem; min-height: 2.3rem; }
.question-tag-create > .checkbox-line input { flex: 0 0 auto; width: 1rem; height: 1rem; margin: 0; }
.question-tag-create > .button { justify-self: end; min-width: 7rem; }
.question-workflow-steps { grid-column: 1 / -1; }
.question-workflow-steps { display: grid; gap: .5rem; min-width: 0; margin: 0; padding: .65rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--surface-soft); }
.question-workflow-steps[hidden] { display: none; }
.question-workflow-steps legend { padding: 0 .3rem; font-size: .8rem; font-weight: 850; }
.question-workflow-steps > small { color: var(--muted); font-size: .72rem; }
[data-question-step-list] { display: grid; gap: .38rem; }
.question-step-row { display: grid; grid-template-columns: 1.5rem minmax(8rem,1fr) 3rem 2rem; align-items: center; gap: .42rem; }
.question-step-row > span { display: grid; width: 1.35rem; height: 1.35rem; place-items: center; border-radius: 50%; color: var(--organization-surface,var(--surface)); background: var(--organization-surface-ink,var(--ink)); font-size: .68rem; font-weight: 900; }
.question-step-row input[type="color"] { width: 3rem; min-width: 3rem; height: 2.25rem; padding: .15rem; }
.question-step-row button { display: grid; width: 2rem; height: 2rem; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: .5rem; color: var(--danger); background: var(--organization-surface,var(--surface)); font: inherit; font-weight: 900; cursor: pointer; }
.question-step-row button:disabled { visibility: hidden; }
.question-state-tag small { margin-left: .25rem; color: inherit; opacity: .78; }
.question-tag-library-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,19rem),1fr)); gap: .55rem; }
.question-tag-library-row,.question-tag-workflow-card { min-width: 0; border: 1px solid var(--line); border-radius: .65rem; background: var(--organization-surface,var(--surface)); }
.question-tag-library-row { display: flex; align-items: center; justify-content: space-between; gap: .55rem; padding: .55rem .65rem; }
.question-tag-library-row > div,.question-tag-workflow-card li > div { display: flex; min-width: 0; align-items: center; flex-wrap: wrap; gap: .35rem; }
.question-tag-default { color: var(--muted); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.question-tag-workflow-card { grid-column: 1 / -1; padding: .65rem; }
.question-tag-workflow-card > header { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: 0 .1rem .5rem; border-bottom: 1px solid var(--line); }
.question-tag-workflow-card > header > div { display: grid; gap: .05rem; }
.question-tag-workflow-card > header small { color: var(--muted); font-size: .72rem; }
.question-tag-workflow-card > header > span { color: var(--organization-accent,var(--primary)); font-size: 1.25rem; font-weight: 900; }
.question-tag-workflow-card ol { display: grid; gap: .35rem; margin: .55rem 0 0; padding: 0; list-style: none; counter-reset: workflow-step; }
.question-tag-workflow-card li { display: flex; align-items: center; justify-content: space-between; gap: .5rem; min-width: 0; }
.question-tag-workflow-card li::before { counter-increment: workflow-step; content: counter(workflow-step); display: grid; flex: 0 0 1.35rem; width: 1.35rem; height: 1.35rem; place-items: center; border-radius: 50%; color: var(--organization-surface,var(--surface)); background: var(--organization-surface-ink,var(--ink)); font-size: .68rem; font-weight: 900; }
.question-tag-row-actions { position: relative; flex: 0 0 auto; }
.question-tag-row-actions > summary { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid var(--line); border-radius: .55rem; color: var(--organization-surface-ink,var(--ink)); background: var(--surface-soft); font-weight: 900; letter-spacing: .08em; cursor: pointer; list-style: none; }
.question-tag-row-actions > summary::-webkit-details-marker { display: none; }
.question-tag-row-actions > div { position: absolute; z-index: 15; top: calc(100% + .25rem); right: 0; display: grid; min-width: 12rem; padding: .3rem; border: 1px solid var(--line); border-radius: .6rem; box-shadow: 0 .55rem 1.4rem color-mix(in srgb,var(--organization-surface-ink,var(--ink)) 18%,transparent); background: var(--organization-surface,var(--surface)); }
.question-tag-row-actions form { margin: 0; }
.question-tag-row-actions button { width: 100%; padding: .48rem .55rem; border: 0; border-radius: .4rem; color: var(--organization-surface-ink,var(--ink)); background: transparent; text-align: left; font: inherit; font-size: .78rem; cursor: pointer; }
.question-tag-row-actions button:hover,.question-tag-row-actions button:focus-visible { background: var(--surface-soft); outline: none; }
.question-tag-row-actions button.is-danger { color: var(--danger); }
.question-tag-admin-list { margin-top: .7rem; }
.question-rejection-panel[open] { border-color: color-mix(in srgb, var(--danger) 48%, var(--line)); }
@media(max-width:680px){.question-tag-create{grid-template-columns:1fr}.question-tag-create>.button{justify-self:stretch}.question-work-summary{align-items:flex-start}.question-work-summary-tags{display:none}.question-work-zone{padding:.5rem}.question-participants-head{align-items:flex-start;flex-direction:column}.question-participant{width:100%}.question-tag-admin-list{align-items:flex-start}.question-tag-library-grid{grid-template-columns:1fr}.question-tag-workflow-card li{align-items:flex-start}.question-tag-row-actions>div{position:fixed;top:auto;right:1rem;bottom:1rem;left:1rem}}

@media(max-width:760px) {
  .question-layout {
    grid-template-columns: 1fr;
  }

  .question-routing-head {
    flex-direction: column;
  }

  .question-opinion-actions .button {
    flex: 1;
  }

  .question-action-row {
    align-items: stretch;
    flex-direction: column;
  }
}

.decision-summary {
  display: grid;
  gap: .35rem;
  margin: 1rem 0;
  padding: 1rem;
  border-left: 4px solid var(--brand);
  border-radius: .75rem;
  background: var(--surface-selected, #eef8fa)
}

.decision-summary p {
  margin: 0
}

.decision-summary small {
  color: var(--muted)
}

.poll-decision {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line)
}

.poll-decision>summary {
  cursor: pointer;
  font-weight: 700;
  color: var(--brand-dark)
}

.inventory-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem
}

.inventory-balance {
  display: grid;
  gap: .35rem;
  margin: .75rem 0
}

.inventory-balance strong {
  font-size: 1.65rem;
  color: var(--brand-dark)
}

.inventory-balance span {
  color: var(--muted);
  font-size: .9rem
}

.inventory-grid details {
  padding-top: .75rem;
  border-top: 1px solid var(--line)
}

.inventory-grid summary {
  cursor: pointer;
  font-weight: 700
}

@media(max-width:680px) {
  .inventory-grid {
    grid-template-columns: 1fr
  }

  .inventory-balance strong {
    font-size: 1.4rem
  }
}

.poll-options label>strong {
  display: grid;
  justify-items: end
}

.poll-options label>strong small {
  font-weight: 500;
  color: var(--muted)
}

.poll-vote-form {
  margin-top: 1rem;
  padding: 1rem;
  border-radius: .8rem;
  background: var(--surface-soft, #f7f9fa)
}

.poll-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem
}

.poll-voters {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: .8rem
}

.poll-voters>summary {
  cursor: pointer;
  font-weight: 750
}

.poll-voter-list {
  display: grid;
  gap: .65rem;
  margin-top: .8rem
}

.poll-voter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .75rem;
  border-radius: .65rem;
  background: var(--surface-soft, #f7f9fa)
}

.poll-voter-row>div {
  display: grid;
  gap: .15rem
}

.poll-voter-row span,
.poll-voter-row small {
  color: var(--muted)
}

.poll-voter-row.is-withdrawn {
  opacity: .65
}

.poll-invalidate {
  display: flex;
  align-items: center;
  gap: .5rem
}

.poll-invalidate input {
  max-width: 230px
}

@media(max-width:680px) {

  .poll-voter-row,
  .poll-invalidate {
    align-items: stretch;
    flex-direction: column
  }

  .poll-invalidate input {
    max-width: none
  }

  .poll-form-actions .button {
    width: 100%
  }
}
.reservation-page { display: grid; gap: 1rem; }
.reservation-builder-heading,.reservation-next-step{display:flex;align-items:center;gap:1rem}.reservation-builder-heading h2,.reservation-builder-heading p,.reservation-next-step p{margin:0}.reservation-step-number,.reservation-summary-step{display:inline-grid;place-items:center;flex:0 0 auto;width:2.35rem;height:2.35rem;border-radius:50%;color:#fff;background:var(--organization-primary,var(--brand));font-weight:900}.reservation-purpose-picker,.reservation-type-picker{padding:0;border:0}.reservation-purpose-options,.reservation-type-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.reservation-purpose-option,.reservation-type-option{position:relative;cursor:pointer}.reservation-purpose-option>input,.reservation-type-option>input{position:absolute;opacity:0;pointer-events:none}.reservation-purpose-option>span,.reservation-type-option>span{display:grid;height:100%;gap:.35rem;padding:1rem;border:2px solid var(--line);border-radius:1rem;background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.reservation-purpose-option>span{grid-template-columns:auto 1fr}.reservation-purpose-option strong,.reservation-purpose-option small{grid-column:2}.reservation-purpose-option small,.reservation-type-option small{color:var(--muted);font-weight:500;line-height:1.35}.reservation-purpose-mark{display:grid;grid-row:1/3;place-items:center;width:2.4rem;height:2.4rem;border-radius:.75rem;color:var(--organization-primary,var(--brand));background:color-mix(in srgb,var(--organization-primary,var(--brand)) 12%,var(--surface));font-size:1.25rem;font-weight:900}.reservation-purpose-option>input:checked+span,.reservation-type-option>input:checked+span{border-color:var(--organization-primary,var(--brand));box-shadow:0 0 0 3px color-mix(in srgb,var(--organization-primary,var(--brand)) 16%,transparent);transform:translateY(-1px)}.reservation-purpose-option>input:focus-visible+span,.reservation-type-option>input:focus-visible+span{outline:3px solid var(--organization-accent,var(--accent));outline-offset:2px}.reservation-type-option.is-future{cursor:not-allowed;opacity:.55}.reservation-next-step{justify-content:space-between;padding:1rem;border:1px solid color-mix(in srgb,var(--organization-primary,var(--brand)) 35%,var(--line));border-radius:1rem;background:color-mix(in srgb,var(--organization-primary,var(--brand)) 7%,var(--surface))}.reservation-next-step>div{flex:1}.reservation-offer-builder>summary{display:flex;align-items:center;gap:.65rem}.reservation-summary-step{width:1.75rem;height:1.75rem;font-size:.82rem}
.reservation-campaign { display: grid; gap: 1rem; }
.reservation-campaign-header { display: flex; justify-content: space-between; gap: 1rem; }
.reservation-offers { display: grid; gap: .75rem; margin: 1rem 0; }
.reservation-offer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem; border: 1px solid var(--line, #dbe3ea); border-radius: .85rem; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-soft, #f8fafc); }
.reservation-offer-copy { display: grid; gap: .2rem; }
.reservation-offer-copy h3, .reservation-offer-copy p { margin: 0; }
.reservation-offer-copy small { color: var(--muted); }
.reservation-quantity { width: 7rem; flex: 0 0 auto; }
.reservation-quantity input { width: 100%; }
.reservation-payment-choice { display: grid; gap: .6rem; margin: 1rem 0; padding: .85rem; border: 1px solid var(--line); border-radius: .85rem; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-soft); }
.reservation-payment-choice legend { padding: 0 .35rem; font-weight: 800; }
.reservation-payment-choice .check-row { align-items: flex-start; padding: .65rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface); }
.reservation-payment-choice .check-row > span { display: grid; gap: .15rem; }
.reservation-payment-choice small { color: var(--muted); font-weight: 500; }
.reservation-payment-notice { margin: 1rem 0; padding: .75rem .85rem; border-left: .25rem solid var(--organization-accent, var(--accent)); border-radius: .35rem; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-soft); }
.reservation-manage { margin-top: .5rem; border-top: 1px solid var(--line); padding-top: .8rem; color: var(--organization-surface-ink, var(--ink)); }
.reservation-manage summary { cursor: pointer; font-weight: 700; }
.reservation-preview-offers { display: flex; flex-wrap: wrap; gap: .45rem; margin: .75rem 0 1rem; }
.reservation-preview-offers span { padding: .45rem .65rem; border-radius: 999px; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-selected, #eef4f7); font-size: .9rem; }
.reservation-order-list, .reservation-admin-list { display: grid; gap: .75rem; }
.reservation-order { padding: .9rem; border: 1px solid var(--line); border-radius: .85rem; color: var(--organization-surface-ink, var(--ink)); background: var(--surface-soft, #f8fafc); }
.reservation-order header, .reservation-order footer, .reservation-admin-order { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.reservation-order header div, .reservation-admin-order > div { display: grid; gap: .15rem; }
.reservation-order small, .reservation-admin-order small { color: var(--muted); }
.reservation-order ul { display: grid; gap: .35rem; padding: .7rem 0; margin: .7rem 0; border-block: 1px solid var(--line); list-style: none; }
.reservation-order li { display: flex; justify-content: space-between; gap: 1rem; }
.reservation-admin-order { padding: .75rem; border-bottom: 1px solid var(--line); color: var(--organization-surface-ink, var(--ink)); }
.reservation-admin-list .reservation-admin-order { display: grid; align-items: stretch; gap: .8rem; padding: 1rem; border: 1px solid var(--line); border-radius: .85rem; background: var(--surface-soft); }
.reservation-admin-order-heading, .reservation-admin-order-total { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.reservation-admin-order-heading > div:first-child { display: grid; gap: .15rem; }
.reservation-admin-products { display: grid; gap: .35rem; }
.reservation-admin-products > span { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .1rem 1rem; padding: .55rem .65rem; border-radius: .6rem; background: var(--surface); }
.reservation-admin-products small { grid-column: 1; }
.reservation-admin-products em { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-style: normal; font-weight: 800; }
.reservation-admin-order-total { padding-top: .65rem; border-top: 1px solid var(--line); }
.reservation-admin-order-total strong { margin-left: auto; }
.reservation-manual-payment { padding: .7rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface); }
.reservation-manual-payment summary { cursor: pointer; font-weight: 800; }
.reservation-manual-payment form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: .75rem; }
.reservation-manual-payment label, .reservation-admin-order > form.form-grid label { display: grid; align-content: start; gap: .3rem; }
.reservation-manual-payment input, .reservation-manual-payment select, .reservation-admin-order > form.form-grid input { width: 100%; }
.reservation-manual-payment .form-span { grid-column: 1 / -1; }
.reservation-manual-payment .button { justify-self: start; }
.reservation-admin-order > form.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .65rem; align-items: end; padding: .7rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface); }
.reservation-pickup-blocker { display: flex; align-items: center; gap: .65rem; padding: .7rem; border: 1px solid color-mix(in srgb, var(--warning, #d97706) 45%, var(--line)); border-radius: .7rem; color: var(--organization-surface-ink, var(--ink)); background: color-mix(in srgb, var(--warning, #d97706) 12%, var(--surface)); }
.reservation-pickup-blocker span { flex: 1; }
.reservation-pickup-blocker form { margin-left: auto; }
.reservation-cancel-form { display: flex; align-items: end; justify-content: space-between; gap: .75rem; margin-top: .8rem; }
.reservation-cancel-form label { flex: 1; }
@media (max-width: 640px) { .reservation-cancel-form { align-items: stretch; flex-direction: column; } }
@media (max-width: 720px) { .reservation-admin-order-heading, .reservation-admin-order-total, .reservation-pickup-blocker { align-items: flex-start; flex-direction: column; } .reservation-admin-order-total strong, .reservation-pickup-blocker form { margin-left: 0; } .reservation-manual-payment form { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .reservation-offer { align-items: stretch; flex-direction: column; } .reservation-quantity { width: 100%; } }

.reservation-customization-preview{position:relative;flex:0 0 6.5rem;overflow:hidden;align-self:stretch;min-height:7rem;border-radius:.75rem;background:#fff}.reservation-customization-preview img{width:100%;height:100%;object-fit:contain}.reservation-customization-preview span{position:absolute;left:.35rem;bottom:.35rem;padding:.2rem .45rem;border-radius:99rem;color:#fff;background:#172b34;font-size:.68rem;font-weight:900}.reservation-offer-actions{display:grid;justify-items:end;gap:.4rem}.reservation-customization-dialog{width:min(72rem,calc(100% - 1rem));max-width:none;padding:0;border:0;border-radius:1.4rem;background:transparent}.reservation-customization-dialog::backdrop{background:rgb(15 23 42 / 70%);backdrop-filter:blur(5px)}.reservation-customization-dialog-shell{display:grid;gap:1rem;max-height:calc(100vh - 2rem);overflow:auto;padding:1rem;border-radius:1.4rem;background:var(--surface)}.reservation-customization-dialog-shell>header,.reservation-customization-dialog-shell>footer{display:flex;align-items:center;justify-content:space-between;gap:1rem}.reservation-customization-dialog-shell h3,.reservation-customization-dialog-shell p{margin:.1rem 0}.reservation-customization-dialog-shell>nav{display:flex;gap:.4rem;overflow:auto}.reservation-customization-workspace{display:grid;grid-template-columns:minmax(15rem,.55fr) minmax(19rem,1.45fr);gap:1rem}.reservation-customization-tools{display:grid;align-content:start;gap:.7rem}.reservation-customization-tools label,.reservation-photo-tool{display:grid;gap:.25rem;font-weight:800}.customization-format-buttons{display:flex;gap:.35rem}.customization-format-buttons button{min-width:2.5rem;padding:.55rem;border:1px solid var(--line);border-radius:.55rem;background:var(--surface);cursor:pointer}.reservation-customization-stage{position:relative;overflow:hidden;min-height:24rem;border-radius:1rem;background:radial-gradient(circle,#fff,#dce4e8)}.reservation-customization-stage>img{width:100%;height:100%;object-fit:contain}.reservation-customization-zone{position:absolute;left:var(--design-left);bottom:var(--design-bottom);width:var(--design-width);height:var(--design-height);overflow:hidden;border:2px dashed #ef4444;background:rgb(255 255 255 / 20%);touch-action:none}.reservation-customization-zone.is-circle{clip-path:circle(50%);border-radius:50%}.reservation-customization-zone.is-ellipse{clip-path:ellipse(50% 50%);border-radius:50%}.customization-canvas-element{position:absolute;display:grid;place-items:center;margin:0;padding:0;border:1px solid transparent;color:#111;background:transparent;line-height:1;touch-action:none;cursor:move}.customization-canvas-element.is-selected{border:1px dashed #2563eb;background:rgb(255 255 255 / 15%)}.customization-canvas-element.is-outline{-webkit-text-stroke:1px #111;color:transparent}.customization-canvas-element.is-image{object-fit:contain;filter:grayscale(1) contrast(1.35);mix-blend-mode:multiply}.reservation-photo-tool{padding:.75rem;border:1px solid var(--line);border-radius:.75rem}.reservation-photo-tool small{color:var(--muted);font-weight:500}@media(max-width:760px){.reservation-customization-workspace{grid-template-columns:1fr}.reservation-customization-stage{grid-row:1;min-height:20rem}.reservation-offer-actions{justify-items:stretch}.reservation-customization-dialog-shell>header{align-items:flex-start}}
@media (max-width: 720px) { .reservation-purpose-options,.reservation-type-options{grid-template-columns:1fr}.reservation-next-step{align-items:flex-start;flex-wrap:wrap}.reservation-next-step .button{width:100%} }

.reservation-ticket-page { padding: clamp(1rem, 4vw, 3rem); }
.reservation-ticket { width: min(900px, 100%); margin: 0 auto; overflow: hidden; }
.reservation-ticket-header, .reservation-ticket-body, .reservation-ticket-actions { display: flex; justify-content: space-between; gap: 1.5rem; }
.reservation-ticket-header { align-items: start; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.reservation-ticket-header h1 { margin: .15rem 0; }
.reservation-ticket-reference { padding: .75rem 1rem; border-radius: .8rem; background: #102a43; color: #fff; font-size: 1.2rem; letter-spacing: .08em; white-space: nowrap; }
.reservation-ticket-body { align-items: center; padding: 1.5rem 0; }
.reservation-ticket-details { flex: 1; min-width: 0; }
.reservation-ticket-details ul { display: grid; gap: .45rem; padding: .8rem 0; border-block: 1px solid var(--line); list-style: none; }
.reservation-ticket-details li, .reservation-ticket-total { display: flex; justify-content: space-between; gap: 1rem; }
.reservation-ticket-seats { padding: .7rem; border-radius: .65rem; background: #edf7f2; color: #175c3b; }
.reservation-ticket-qr { width: min(320px, 42%); margin: 0; text-align: center; }
.reservation-ticket-qr img { display: block; width: 100%; border-radius: .8rem; background: #fff; }
.reservation-ticket-qr figcaption { color: var(--muted); font-size: .82rem; }
.reservation-ticket-actions { align-items: center; flex-wrap: wrap; padding-top: 1rem; border-top: 1px solid var(--line); }
.reservation-individual-tickets { padding-top: 1.5rem; border-top: 1px solid var(--line); }
.reservation-entitlement-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; }
.reservation-entitlement-grid article { display: grid; gap: .35rem; padding: .65rem; border: 1px solid var(--line); border-radius: .75rem; text-align: center; }
.reservation-entitlement-grid img { width: 100%; max-width: 240px; margin: auto; }
.reservation-qr-expand { display: grid; gap: .25rem; padding: 0; border: 0; background: transparent; color: var(--brand-dark); cursor: zoom-in; font: inherit; font-size: .76rem; font-weight: 800; }
.reservation-qr-dialog { width: min(94vw, 34rem); padding: 1rem; border: 0; border-radius: 1rem; text-align: center; }
.reservation-qr-dialog::backdrop { background: rgb(2 12 20 / 82%); }
.reservation-qr-dialog form { display: flex; justify-content: flex-end; }
.reservation-qr-dialog form button { width: 2.5rem; height: 2.5rem; border: 0; border-radius: 50%; background: #e2e8f0; font-size: 1.5rem; cursor: pointer; }
.reservation-qr-dialog > strong, .reservation-qr-dialog > small { display: block; margin: .45rem 0; }
.reservation-qr-dialog > img { width: min(78vw, 28rem); height: auto; }
.reservation-ticket-actions form { margin-left: auto; }

@media (max-width: 680px) {
  .reservation-ticket-header, .reservation-ticket-body, .reservation-ticket-actions { align-items: stretch; flex-direction: column; }
  .reservation-ticket-reference { align-self: start; }
  .reservation-ticket-qr { width: min(300px, 100%); align-self: center; }
  .reservation-ticket-actions .button, .reservation-ticket-actions form { width: 100%; margin: 0; }
  .reservation-ticket-actions form .button { width: 100%; }
}

@media print {
  .reservation-ticket-page { padding: 0; background: #fff; }
  .reservation-ticket { border: 0; box-shadow: none; }
  .reservation-ticket-actions, .portal-nav, .cookie-banner { display: none !important; }
}

.admission-control-page { min-height: 100vh; padding: clamp(.75rem, 2vw, 1.5rem); place-items: start center; background: #07131f; color: #eaf2f8; }
.admission-control-shell { display: grid; gap: 1rem; width: min(920px, 100%); margin: 0 auto; }
.admission-control-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.admission-control-header h1, .admission-control-header p { margin: .15rem 0; }
.admission-header-actions { position: relative; display: flex; align-items: center; gap: .55rem; }
.admission-settings-menu { position: relative; }
.admission-settings-menu > summary { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; border: 1px solid #476073; border-radius: .75rem; background: #102536; color: #fff; cursor: pointer; font-size: 1.25rem; list-style: none; }
.admission-settings-menu > summary::-webkit-details-marker { display: none; }
.admission-settings-menu > div { position: absolute; z-index: 20; top: calc(100% + .5rem); right: 0; display: grid; gap: .75rem; width: min(330px, calc(100vw - 2rem)); padding: 1rem; border: 1px solid #476073; border-radius: .85rem; background: #102536; box-shadow: 0 14px 40px rgb(0 0 0 / 45%); }
.admission-settings-menu label { display: grid; gap: .35rem; font-weight: 700; }
.admission-result { display: grid; place-content: center; gap: .3rem; width: 100%; height: 100%; padding: clamp(1.25rem, 5vw, 2.5rem); color: #fff; text-align: center; }
.admission-result strong { font-size: clamp(1.8rem, 8vw, 3.8rem); line-height: 1; }
.admission-result span { font-size: clamp(1.1rem, 3vw, 1.5rem); font-weight: 750; }
.admission-result small { font-size: 1rem; opacity: .9; }
.admission-result .admission-last-entry { margin-top: .45rem; padding-top: .45rem; border-top: 1px solid rgb(255 255 255 / 35%); }
.admission-movement-balance { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-top: .5rem; }
.admission-movement-balance span { display: grid; gap: .05rem; min-width: 5rem; padding: .45rem .6rem; border: 1px solid rgb(255 255 255 / 35%); border-radius: .55rem; background: rgb(0 0 0 / 14%); }
.admission-movement-balance b { font-size: 1.3rem; }
.admission-movement-balance small { font-size: .75rem; text-transform: uppercase; }
.admission-countdown { margin-top: .5rem; padding: .55rem .75rem; border: 1px solid rgb(255 255 255 / 45%); border-radius: .55rem; background: rgb(0 0 0 / 18%); font-size: .95rem; }
.admission-countdown b { font-size: 1.15rem; }
.admission-override-form { margin-top: .55rem; }
.admission-override-form .button { border-color: #fff; background: #fff; color: #7d241d; font-weight: 800; }
.admission-scanner { display: grid; gap: 1rem; background: #102536; color: #fff; border-color: #29465c; }
.admission-period-status { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .85rem; border-radius: .7rem; }
.admission-period-status.is-active { background: #0d5d3b; color: #e9fff4; }
.admission-period-status.is-inactive { background: #65312d; color: #fff0ee; }
.admission-period-status span { font-size: .9rem; }
.admission-camera-frame { overflow: hidden; width: min(460px, 100%); aspect-ratio: 1; margin: 0 auto; border: 5px solid #5f7485; border-radius: 1rem; background: #21384a; box-shadow: 0 12px 32px rgb(0 0 0 / 30%); }
.admission-camera-frame.is-ready { border-color: #5f7485; }
.admission-camera-frame.has-result.is-accepted { border-color: #20bd6b; background: #08783e; }
.admission-camera-frame.has-result.is-warning { border-color: #ffb14a; background: #c76a05; }
.admission-camera-frame.has-result.is-rejected { border-color: #ff6257; background: #b42318; }
.admission-camera-frame.has-result.is-reentry { border-color: #52aef5; background: #1463a5; }
.admission-camera-frame.is-camera-active { border-color: #55b9cf; background: #000; }
.admission-camera-frame video { display: block; width: 100%; height: 100%; object-fit: cover; }
.admission-camera-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; width: min(460px, 100%); margin: .65rem auto 0; }
.admission-camera-controls[hidden], .admission-camera-controls label[hidden] { display: none; }
.admission-camera-controls label { display: grid; gap: .3rem; color: #d9e7ef; font-size: .8rem; font-weight: 750; }
.admission-camera-controls select, .admission-camera-controls input { width: 100%; }
.admission-camera-controls input { accent-color: #55b9cf; }
.admission-camera-button { min-height: 3.4rem; font-size: 1.05rem; }
@media (max-width: 520px) { .admission-camera-controls { grid-template-columns: 1fr; } }
.admission-period-editor { display: grid; gap: .75rem; }
.admission-period-editor > p { margin: 0; }
.admission-period-row { display: grid; grid-template-columns: minmax(9rem, .8fr) repeat(2, minmax(13rem, 1fr)) auto; align-items: end; gap: .65rem; padding: .7rem; border: 1px solid var(--line); border-radius: .7rem; background: #f8fafc; }
.admission-period-row label { display: grid; gap: .3rem; }
@media (max-width: 800px) { .admission-period-row { grid-template-columns: 1fr; } }
.admission-sound-button { min-height: 3.4rem; white-space: nowrap; }
.admission-scanner form { display: grid; grid-template-columns: minmax(0, 1fr) 160px auto; align-items: end; gap: .75rem; }
.admission-code-field { display: grid; gap: .35rem; }
.admission-code-label { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: #eaf2f8; font-weight: 700; }
.admission-manual-entry { padding: .2rem .5rem; border: 1px solid #668095; border-radius: .45rem; background: #183247; color: #eaf2f8; cursor: pointer; font: inherit; font-size: .75rem; font-weight: 750; }
.admission-manual-entry[aria-pressed="true"] { border-color: #55b9cf; background: #176b88; color: #fff; }
.admission-scanner label { display: grid; gap: .35rem; color: #eaf2f8; font-weight: 700; }
.admission-scanner input, .admission-scanner select { min-height: 3rem; }
.admission-scanner form .button { min-height: 3rem; }
.admission-history { overflow: visible; background: #102536; color: #eaf2f8; border-color: #29465c; }
.admission-history > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; }
.admission-history > summary::-webkit-details-marker { display: none; }
.admission-history > summary > span:first-child { display: grid; gap: .2rem; }
.admission-history > summary small { color: #a9bdca; }
.admission-history-summary { display: flex; gap: .4rem; }
.admission-history-summary b { min-width: 2rem; padding: .3rem .45rem; border-radius: 999px; color: #fff; text-align: center; }
.admission-history-summary .is-accepted { background: #08783e; }
.admission-history-summary .is-warning { background: #c76a05; }
.admission-history-summary .is-rejected { background: #b42318; }
.admission-history-list { display: grid; gap: .45rem; margin-top: 1rem; }
.admission-history-row { display: grid; grid-template-columns: 70px minmax(180px, 1fr) 90px minmax(140px, auto); align-items: center; gap: .75rem; padding: .7rem; border-left: 4px solid #5f7485; border-radius: .55rem; background: #183247; }
.admission-history-row.is-accepted, .admission-history-row.is-reentry, .admission-history-row.is-override { border-left-color: #20bd6b; }
.admission-history-row.is-override-repeat { border-left-color: #ffb14a; }
.admission-history-row.is-warning { border-left-color: #ffb14a; }
.admission-history-row.is-rejected { border-left-color: #ff6257; }
.admission-history-row > div { display: grid; gap: .15rem; }
.admission-history-row time, .admission-history-row small { color: #a9bdca; }
.admission-audit-table { overflow-x: auto; margin-top: 1rem; }
.admission-audit-head, .admission-audit-row { display: grid; grid-template-columns: minmax(190px, 1fr) repeat(8, minmax(72px, auto)); align-items: center; gap: .55rem; min-width: 900px; padding: .65rem; }
.admission-audit-head { color: #a9bdca; font-size: .78rem; font-weight: 750; text-transform: uppercase; }
.admission-audit-row { border-top: 1px solid #29465c; }
.admission-audit-row > span { display: grid; gap: .1rem; }
.admission-audit-row small { color: #a9bdca; }
.admission-audit-row b { text-align: center; }

@media (max-width: 680px) {
  .admission-control-page { padding: .4rem; }
  .admission-control-shell { gap: .45rem; }
  .admission-control-header { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .4rem; }
  .admission-control-header .eyebrow { display: none; }
  .admission-control-header h1 { overflow: hidden; margin: 0; font-size: 1rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
  .admission-control-header h1 + p { overflow: hidden; margin: .08rem 0 0; color: #aec2cf; font-size: .72rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
  .admission-header-gauge { padding: .26rem .52rem; font-size: .78rem; }
  .admission-header-actions { justify-content: flex-end; gap: .3rem; }
  .admission-header-actions > .button { display: none; }
  .admission-settings-menu > summary { width: 2.2rem; height: 2.2rem; border-radius: .55rem; font-size: 1rem; }
  .admission-settings-menu > div { position: fixed; top: 3rem; right: .5rem; max-height: calc(100dvh - 3.5rem); overflow-y: auto; }
  .admission-scanner { gap: .45rem; padding: .5rem; }
  .admission-period-status { display: block; overflow: hidden; padding: .38rem .55rem; border-radius: .5rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
  .admission-period-status strong { font-size: .78rem; }
  .admission-period-status span { margin-left: .35rem; font-size: .68rem; }
  .admission-camera-frame { width: min(100%, 38dvh, 290px); border-width: 3px; border-radius: .7rem; box-shadow: none; }
  .admission-result { gap: .18rem; padding: .6rem; }
  .admission-result strong { font-size: clamp(1.25rem, 7vw, 2.2rem); }
  .admission-result span { font-size: .9rem; }
  .admission-result small { font-size: .7rem; }
  .admission-scan-help { overflow: hidden; margin: 0; color: #b9cad5; font-size: .7rem; line-height: 1.2; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
  .admission-camera-button { min-height: 2.45rem; padding: .42rem .7rem; font-size: .86rem; }
  .admission-scanner form { grid-template-columns: minmax(0, 1fr) minmax(6.8rem, .55fr) auto; gap: .4rem; }
  .admission-code-field, .admission-scanner label { gap: .18rem; }
  .admission-code-label, .admission-scanner label > span { font-size: .7rem; }
  .admission-manual-entry { padding: .12rem .35rem; font-size: .68rem; }
  .admission-scanner input, .admission-scanner select, .admission-scanner form .button { min-height: 2.4rem; padding-top: .35rem; padding-bottom: .35rem; font-size: .82rem; }
  .admission-scanner form .button { padding-right: .55rem; padding-left: .55rem; }
  .admission-history-row { grid-template-columns: 64px 1fr; }
  .admission-history-row > span, .admission-history-row > div:last-child { grid-column: 2; }
}

@media (max-width: 420px) {
  .admission-scanner form { grid-template-columns: minmax(0, 1fr) 6.5rem; }
  .admission-scanner form > .button { grid-column: 1 / -1; min-height: 2.25rem; }
}

@media (max-width: 680px) and (max-height: 740px) {
  .admission-camera-frame { width: min(100%, 32dvh, 230px); }
  .admission-control-header h1 + p, .admission-scan-help { display: none; }
}

.permission-editor { position: relative; }
.permission-choice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .65rem; }
.permission-choice { position: relative; display: grid; gap: .2rem; min-height: 4.25rem; padding: .8rem .85rem .8rem 2.75rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface, #fff); cursor: pointer; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.permission-choice:hover { border-color: #8ca7bd; box-shadow: 0 5px 14px rgb(24 53 75 / 8%); }
.permission-choice.is-selected { border-color: var(--organization-primary, #2774a6); background: var(--surface-selected, #edf7ff); box-shadow: inset 0 0 0 1px var(--organization-primary, #2774a6); }
.permission-choice input { position: absolute; top: 1rem; left: .9rem; width: 1.15rem; height: 1.15rem; margin: 0; accent-color: #176b9a; }
.permission-choice span { font-weight: 750; }
.permission-choice code { overflow-wrap: anywhere; color: var(--muted); font-size: .78rem; }
.permission-save-bar { position: sticky; z-index: 30; bottom: 1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: min(760px, calc(100% - 1rem)); margin: 1rem auto 0; padding: .8rem 1rem; border: 1px solid #244e68; border-radius: .9rem; background: #102f43; color: #fff; box-shadow: 0 16px 36px rgb(15 38 54 / 28%); }
.permission-save-bar[hidden] { display: none; }
.permission-save-bar > div:first-child { display: grid; gap: .1rem; }
.permission-save-bar small { color: #c9dae5; }
.permission-save-actions { display: flex; gap: .5rem; }

@media (max-width: 680px) {
  .permission-choice-grid { grid-template-columns: 1fr; }
  .permission-save-bar { align-items: stretch; flex-direction: column; bottom: .5rem; }
  .permission-save-actions .button { flex: 1; }
}

.deployment-maintenance-card { margin-top: 1rem; }
.deployment-maintenance-card form { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.deployment-maintenance-card small { color: var(--muted); }
.sales-payment-progress {
  width: min(92vw, 34rem);
  padding: 0;
  border: 0;
  border-radius: 1.4rem;
  color: #fff;
  background: #0a0910;
  box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 55%), 0 0 0 1px rgb(155 108 255 / 24%);
}

.sales-payment-progress::backdrop {
  background: rgb(2 18 28 / 78%);
  backdrop-filter: blur(3px);
}

.sales-payment-progress-card {
  position: relative;
  overflow: hidden;
  padding: clamp(1.5rem, 6vw, 2.5rem);
  text-align: center;
  background: radial-gradient(circle at 50% 0, rgb(139 92 246 / 24%), transparent 42%), linear-gradient(160deg, #15121e, #08070c 72%);
}

.sales-payment-progress-card::before { position: absolute; inset: 0; pointer-events: none; content: ""; background: linear-gradient(120deg, transparent 25%, rgb(255 255 255 / 4%) 48%, transparent 70%); }

.sales-payment-brand { position: relative; display: inline-flex; align-items: center; gap: .7rem; margin-bottom: 1.15rem; padding: .45rem .8rem .45rem .45rem; border: 1px solid rgb(255 255 255 / 10%); border-radius: 1rem; background: rgb(255 255 255 / 6%); color: #fff; box-shadow: 0 .45rem 1.2rem rgb(0 0 0 / 25%); }
.sales-payment-brand img { width: 3rem; height: 3rem; border-radius: .75rem; object-fit: contain; }
.sales-payment-brand div { display: grid; justify-items: start; }
.sales-payment-brand strong { font-size: 1.2rem; letter-spacing: -.03em; }
.sales-payment-brand strong span { color: #9b6cff; }
.sales-payment-brand small { color: #d7c8ff; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.sales-payment-progress-card h2 {
  margin: .45rem 0;
  font-size: clamp(1.65rem, 7vw, 2.35rem);
}

.sales-payment-progress-card p:not(.eyebrow) {
  margin: 0;
  color: #c4bfd0;
  font-size: 1.05rem;
}

.sales-payment-progress-icon {
  display: grid;
  width: 4rem;
  height: 4rem;
  margin: 0 auto .9rem;
  place-items: center;
  border-radius: 1.15rem;
  background: rgb(139 92 246 / 18%);
  color: #c4a7ff;
  box-shadow: inset 0 0 0 1px rgb(155 108 255 / 35%), 0 0 2rem rgb(139 92 246 / 18%);
  font-size: 2rem;
  font-weight: 800;
}

.sales-payment-progress-spinner {
  width: 2.4rem;
  height: 2.4rem;
  margin: 1.4rem auto 0;
  border: .3rem solid rgb(255 255 255 / 15%);
  border-top-color: #9b6cff;
  border-radius: 50%;
  animation: sales-payment-spin .8s linear infinite;
}

.sales-payment-progress-help { margin-top: 1.15rem !important; padding-top: 1rem; border-top: 1px solid rgb(255 255 255 / 10%); color: #aaa2b8 !important; font-size: .86rem !important; line-height: 1.45; }

.sales-payment-success-actions { display: grid; gap: .75rem; margin-top: 1.25rem; }
.sales-payment-success-actions[hidden] { display: none; }
.sales-payment-success-actions form { display: grid; gap: .45rem; padding: .85rem; border: 1px solid rgb(255 255 255 / 12%); border-radius: .9rem; background: rgb(255 255 255 / 8%); text-align: left; }
.sales-payment-success-actions form label { font-weight: 750; }
.sales-payment-success-actions form div { display: flex; gap: .5rem; }
.sales-payment-success-actions form input { min-width: 0; flex: 1; }
.sales-payment-success-actions small { color: #c4d8c9; }
.sales-payment-progress[data-state="success"] { box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 55%), 0 0 0 1px rgb(34 197 94 / 32%); }
.sales-payment-progress[data-state="success"] .sales-payment-progress-card { background: radial-gradient(circle at 50% 0, rgb(34 197 94 / 25%), transparent 42%), linear-gradient(160deg, #102418, #07110b 72%); }
.sales-payment-progress[data-state="success"] .sales-payment-progress-icon { background: rgb(34 197 94 / 18%); color: #76f09d; box-shadow: inset 0 0 0 1px rgb(34 197 94 / 42%), 0 0 2rem rgb(34 197 94 / 22%); }
.sales-payment-progress[data-state="success"] .sales-payment-progress-spinner,
.sales-payment-progress[data-state="success"] .sales-payment-progress-help { display: none; }

@media (max-width: 480px) {
  .sales-payment-progress { width: calc(100vw - 1rem); }
  .sales-payment-progress-card { padding: 1.1rem; }
  .sales-payment-success-actions form div { align-items: stretch; flex-direction: column; }
}

@keyframes sales-payment-spin {
  to { transform: rotate(360deg); }
}

.member-directory-page { padding-bottom: 3rem; }
.directory-consent-card { display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: start; margin-bottom: 1.25rem; }
.directory-consent-card h2 { margin-top: 0; }
.directory-consent-card form { display: grid; width: 100%; gap: .75rem; justify-items: start; }
.directory-consent-card form > label:not(.switch-row) { display: grid; width: 100%; gap: .3rem; }
.directory-consent-card form > label small { display: block; font-weight: 400; }
.member-directory-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1rem; }
.member-directory-card { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 1rem; align-items: start; }
.member-directory-portrait { width: 84px; height: 84px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: color-mix(in srgb, var(--organization-primary, #3157a4) 16%, #fff); color: var(--organization-primary, #3157a4); font-size: 1.35rem; font-weight: 800; }
.member-directory-portrait img { width: 100%; height: 100%; object-fit: cover; }
.member-directory-identity h2 { margin: .15rem 0 .2rem; font-size: 1.05rem; }
.member-directory-nickname { margin: 0 0 .55rem; color: var(--muted); font-size: .9rem; }
.directory-visibility-form, .directory-photo-review { display: grid; gap: .55rem; margin-top: .85rem; }
.directory-visibility-form label { display: flex; gap: .45rem; align-items: center; font-size: .88rem; }
.directory-photo-review div { display: flex; flex-wrap: wrap; gap: .4rem; }
.profile-camera-actions { display: flex; flex-wrap: wrap; gap: .45rem; }
.profile-photo-preview { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; border: 2px solid var(--line); }
.avatar-mode-choice { display: flex; flex-wrap: wrap; gap: .45rem 1rem; width: 100%; padding: .65rem; border: 1px solid var(--line); border-radius: .75rem; }
.avatar-mode-choice legend { padding: 0 .3rem; font-weight: 750; }
.avatar-mode-choice label { display: flex; align-items: center; gap: .35rem; }
.avatar-builder { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: .85rem; width: 100%; padding: .75rem; border: 1px solid var(--line); border-radius: .85rem; background: color-mix(in srgb, var(--surface, #fff) 92%, var(--organization-primary, #3157a4)); }
.avatar-builder[hidden] { display: none; }
.avatar-builder-preview { width: 112px; height: 112px; overflow: hidden; border-radius: 50%; box-shadow: 0 0 0 3px #fff, 0 5px 15px rgb(22 37 55 / 16%); }
.avatar-builder-preview svg { display: block; width: 100%; height: 100%; }
.avatar-builder-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.avatar-builder-fields label { display: grid; gap: .2rem; min-width: 0; font-size: .78rem; font-weight: 750; }
.avatar-builder-fields select { min-width: 0; width: 100%; padding: .4rem; }
.avatar-color-fields { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5, minmax(48px, 1fr)); gap: .4rem; }
.avatar-color-fields input[type="color"] { width: 100%; min-height: 2.2rem; padding: .1rem; }

@media (max-width: 700px) {
  .directory-consent-card { grid-template-columns: 1fr; }
  .member-directory-grid { grid-template-columns: 1fr; }
  .avatar-builder { grid-template-columns: 82px minmax(0, 1fr); }
  .avatar-builder-preview { width: 82px; height: 82px; }
  .avatar-builder-fields { grid-template-columns: 1fr; }
  .avatar-color-fields { grid-template-columns: repeat(3, minmax(48px, 1fr)); }
}
.sales-line-discount{display:block;color:#b42318;font-size:.72rem;font-weight:700}.sales-cart-line>strong .sales-line-discount{margin-bottom:.15rem}.sales-adjustment-dialog label{display:grid;gap:.35rem}

/* Final theme contract for planning and calendar components. */
.public-portal :is(.task-timeline,.day-schedule,.kanban-column,.task-card,.event-detail,.event-detail .card,.calendar-month,.calendar-day,.calendar-event-popover){color:var(--organization-surface-ink);border-color:var(--line)}
.public-portal :is(.task-card,.event-detail,.event-detail .card,.calendar-month,.calendar-event-popover){background:var(--organization-surface)}
.public-portal :is(.kanban-column,.day-schedule,.calendar-day,.task-timeline){background:var(--surface-soft)}
.public-portal :is(.task-card>strong,.kanban-column>h3,.task-timeline-row>span,.event-detail h1,.event-detail h2,.event-detail h3,.event-lead,.question-body,.calendar-event-popover strong){color:var(--organization-surface-ink)}
.public-portal :is(.task-card p,.task-card small,.event-detail .muted,.event-detail small,.calendar-item span,.calendar-day-number,.day-schedule-task small){color:color-mix(in srgb,var(--organization-surface-ink) 68%,var(--organization-surface))}
.public-portal :is(.calendar-day.has-events,.calendar-item,.reservation-preview-offers span){color:var(--organization-surface-ink);background:var(--surface-selected)}
.public-portal .calendar-item.calendar-item--continuation {
  min-height: 5px;
  background: var(--calendar-entry-color, #d97706);
}
.public-portal .calendar-item.calendar-item--continuation:hover,
.public-portal .calendar-item.calendar-item--continuation:focus-visible {
  min-height: 9px;
  background: color-mix(in srgb, var(--calendar-entry-color, #d97706) 78%, #000);
}
.public-portal .calendar-item:not(.calendar-item--continuation) {
  background: color-mix(in srgb, var(--calendar-entry-color, var(--brand)) 18%, var(--organization-surface));
  border-left-color: var(--calendar-entry-color, var(--brand));
}
.calendar-entry-themed {
  border-left: 4px solid var(--calendar-entry-color, var(--brand));
}
.calendar-event-dot[style] {
  background: var(--calendar-entry-color, var(--brand));
}
.public-portal .calendar-item.calendar-item--ghost {
  color: var(--organization-surface-ink);
  cursor: default;
  background: color-mix(in srgb, var(--calendar-entry-color) 8%, transparent);
  border: 1px dashed color-mix(in srgb, var(--calendar-entry-color) 65%, transparent);
  border-left-width: 4px;
  opacity: .72;
}
.calendar-item--ghost strong::before {
  content: "◇ ";
}
.calendar-ghost-action {
  display: inline-flex;
  width: fit-content;
  margin-top: .25rem;
  color: var(--organization-link, var(--brand));
  font-size: .78rem;
  font-weight: 700;
  text-decoration: underline;
}
.calendar-ghost-legend {
  margin: .8rem 0 0;
  color: var(--muted);
  font-size: .82rem;
}
.calendar-additional-periods {
  display: grid;
  gap: .8rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.calendar-recurrence {
  display: grid;
  gap: .8rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.calendar-additional-period {
  display: grid;
  grid-template-columns: minmax(10rem, 1fr) repeat(2, minmax(12rem, 1fr)) auto;
  gap: .75rem;
  align-items: end;
}
@media (max-width: 760px) {
  .calendar-additional-period { grid-template-columns: 1fr; }
}
.public-portal .task-timeline{grid-template-columns:1fr;gap:.7rem;padding:.9rem;overflow:visible;border:1px solid var(--line);border-radius:var(--radius)}
.public-portal .task-timeline-row{grid-template-columns:minmax(11rem,15rem) minmax(0,1fr);min-width:0;gap:1rem}
.public-portal .task-timeline-row>span{overflow:visible;font-size:.92rem;line-height:1.25;text-overflow:clip;white-space:normal}
.public-portal .task-timeline-row>span{display:grid;gap:.18rem}.public-portal .task-timeline-row>span small{color:color-mix(in srgb,var(--organization-surface-ink) 68%,var(--organization-surface));font-size:.72rem;font-weight:650}
.public-portal .task-timeline-track{min-width:0;min-height:2.35rem;border:1px solid var(--line);background:color-mix(in srgb,var(--organization-surface-ink) 9%,var(--organization-surface))}
.public-portal .task-timeline-bar{min-height:1.7rem;padding:.35rem .7rem;font-size:.78rem;font-weight:800}
.public-portal .task-timeline-tooltip{color:var(--organization-surface-ink);background:var(--organization-surface);border-color:var(--line)}
.public-portal .task-timeline-popover.align-right .task-timeline-tooltip{right:0;left:auto}
.public-portal .kanban{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1rem}
.public-portal .kanban-column{min-width:0;padding:1rem;border:1px solid var(--line)}
.public-portal .kanban-column>h3{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.65rem;margin:0 0 .75rem;border-bottom:2px solid var(--line);font-size:1.05rem}
.public-portal .kanban-column>h3 small{display:grid;min-width:1.8rem;height:1.8rem;padding-inline:.35rem;place-items:center;border-radius:999px;color:var(--organization-surface-ink);background:var(--surface-selected)}
.public-portal .task-card{gap:.55rem;padding:1rem;margin-top:.75rem;border:1px solid var(--line);box-shadow:0 5px 16px color-mix(in srgb,var(--organization-surface-ink) 10%,transparent)}
.public-portal .kanban-column{position:relative;overflow:hidden;border-top-width:4px}
.public-portal .kanban-column-todo{border-top-color:#718096}
.public-portal .kanban-column-in_progress{border-top-color:#d18a18}
.public-portal .kanban-column-done{border-top-color:#2c9564}
.public-portal .kanban-column>h3{position:sticky;top:0;z-index:1;padding:.15rem .1rem .8rem;background:inherit}
.public-portal .kanban-column>h3 span{font-weight:850;letter-spacing:-.01em}
.public-portal .kanban-column>h3 small{font-weight:850;box-shadow:inset 0 0 0 1px var(--line)}
.public-portal .kanban-column>.muted{margin:.9rem .1rem;color:color-mix(in srgb,var(--organization-surface-ink) 58%,var(--organization-surface))}
.public-portal .task-card{position:relative;padding:1rem;border-radius:calc(var(--radius) - .15rem);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.public-portal .task-card:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));box-shadow:0 9px 24px color-mix(in srgb,var(--organization-surface-ink) 14%,transparent);transform:translateY(-1px)}
.public-portal .task-card>strong{padding-right:.4rem;font-size:1.05rem;line-height:1.3}
.public-portal .task-card>p{padding:.55rem .65rem;border-radius:.5rem;background:color-mix(in srgb,var(--organization-surface-ink) 5%,var(--organization-surface))}
.public-portal .task-card>small{display:block;padding-inline:.1rem;line-height:1.35}
.public-portal .task-state-badges{margin:.05rem 0 .15rem}
.public-portal .task-state-badges .badge{padding:.28rem .58rem;border:1px solid color-mix(in srgb,currentColor 22%,transparent);font-size:.72rem;font-weight:800}
.public-portal .task-card :is(.task-management,.task-people,.task-journal)>summary{padding:.45rem .55rem;border-radius:.45rem;color:var(--organization-surface-ink);background:var(--surface-soft)}
.public-portal .task-card :is(.task-management,.task-people,.task-journal){margin-top:.1rem;border:1px solid transparent;border-radius:.55rem}
.public-portal .task-card :is(.task-management,.task-people,.task-journal)[open]{padding:.55rem;border-color:var(--line);background:color-mix(in srgb,var(--organization-surface-ink) 3%,var(--organization-surface))}
.public-portal .task-card :is(.task-management,.task-people,.task-journal)[open]>summary{margin:-.55rem -.55rem .65rem;border-radius:.5rem .5rem 0 0;border-bottom:1px solid var(--line)}
.public-portal .task-card :is(.task-management,.task-people,.task-journal)>summary{line-height:1.3}
.public-portal .task-card .task-inline-form{display:grid;gap:.7rem;margin-top:.65rem}
.public-portal .task-card .task-inline-form>label{display:grid;gap:.3rem;font-size:.8rem;font-weight:750}
.public-portal .task-card .task-inline-form>.button{justify-self:start;min-width:9rem}
.public-portal .task-card .checkbox-fieldset{padding:.7rem;border:1px solid var(--line);border-radius:.55rem}
.public-portal .task-card .checkbox-group{display:grid;gap:.35rem;margin-top:.35rem}
.public-portal .task-card .checkbox-group label{display:flex;gap:.45rem;align-items:flex-start;font-size:.82rem;font-weight:600}
.public-portal .task-card .checkbox-group input{width:auto;margin-top:.12rem}
.public-portal .task-card form.task-inline-form:has(>label[for^="status_"]){grid-template-columns:auto minmax(0,1fr);align-items:center;padding-top:.45rem;border-top:1px solid var(--line)}
.public-portal .task-card form.task-inline-form:has(>label[for^="status_"]) label{margin:0}
.public-portal .task-card :is(select,input,textarea){color:var(--organization-field-ink);background:var(--organization-field);border-color:var(--line)}
.public-portal .task-effort-editor{padding:.7rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-soft)}
.public-portal .task-effort-editor>summary{cursor:pointer;font-weight:750;color:var(--organization-surface-ink)}
.public-portal .task-effort-row{display:grid;grid-template-columns:repeat(2,minmax(7rem,1fr));gap:.65rem;align-items:end;margin-top:.55rem}
.public-portal .task-effort-row label{display:grid;gap:.25rem;font-size:.8rem}
.public-portal .task-planning-guests{margin:.35rem 0 0;padding-left:1.25rem;color:var(--organization-surface-ink)}
@media(max-width:560px){.public-portal .task-effort-row{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.public-portal .task-timeline-row{grid-template-columns:1fr;gap:.35rem}.public-portal .task-timeline-tooltip{right:auto;left:0;width:min(21rem,calc(100vw - 3rem));min-width:0}.public-portal .task-timeline-popover.align-right .task-timeline-tooltip{right:0;left:auto}.public-portal .kanban{grid-template-columns:1fr}.public-portal .kanban-column{padding:.75rem}.public-portal .task-card{padding:.85rem}.public-portal .task-card:hover{transform:none}.public-portal .event-detail-body{padding:1rem}.public-portal .event-modules{grid-template-columns:1fr}}
.public-portal .has-new-activity{border-color:#ff2ebd!important;box-shadow:0 0 0 2px color-mix(in srgb,#ff2ebd 62%,transparent),0 6px 18px color-mix(in srgb,#ff2ebd 16%,transparent)}
.public-portal .activity-summary{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .7rem;padding:.7rem .85rem;border-left:4px solid #ff2ebd;border-radius:.55rem;color:var(--organization-surface-ink);background:var(--organization-surface)}
.public-portal .activity-summary span:last-child{color:color-mix(in srgb,var(--organization-surface-ink) 68%,var(--organization-surface));font-size:.82rem}
.customer-message-page{display:grid;gap:1rem}
.customer-message-page .portal-header{margin-bottom:.25rem}
.customer-message-help{padding:1rem 1.15rem;border-left:4px solid var(--primary)}
.customer-message-help h2{margin:0 0 .45rem;font-size:1.05rem}
.customer-message-help p{margin:.25rem 0;line-height:1.5}
.customer-message-help code{display:inline-block;padding:.12rem .32rem;border:1px solid var(--line);border-radius:.35rem;color:var(--organization-surface-ink);background:var(--surface-soft)}
.customer-message-group{margin:1.15rem 0 0;padding-bottom:.55rem;border-bottom:2px solid var(--line);font-size:1.2rem}
.customer-message-card{display:grid;gap:.85rem;padding:1.15rem}
.customer-message-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.customer-message-card>header h3{margin:0 0 .2rem}
.customer-message-card>header p{margin:0}
.customer-message-card form.stack{display:grid;gap:.75rem}
.customer-message-card form.stack label{display:grid;gap:.32rem;font-weight:750}
.customer-message-card textarea{min-height:7rem;resize:vertical}
.customer-message-variables{margin-top:-.4rem}
.customer-message-variables summary{width:max-content;cursor:pointer;color:var(--primary);font-size:.86rem;font-weight:800;list-style:none}
.customer-message-variables summary::-webkit-details-marker{display:none}
.customer-message-variable-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem;padding:.65rem;border:1px solid var(--line);border-radius:.7rem;background:var(--surface-soft)}
.customer-message-variable-list button{display:inline-flex;align-items:center;gap:.35rem;padding:.38rem .55rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--organization-surface-ink);cursor:pointer;font:inherit;font-size:.78rem}
.customer-message-variable-list button:hover{border-color:var(--primary);box-shadow:0 2px 8px rgb(0 0 0 / 8%)}
.customer-message-variable-list code{color:var(--primary);font-weight:850}
.customer-message-variable-list span{color:var(--muted)}
.customer-message-card>.header-actions{justify-content:flex-start}
@media(min-width:900px){.customer-message-page{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-message-page>.portal-header,.customer-message-page>.flash,.customer-message-page>.customer-message-help,.customer-message-page>.customer-message-group{grid-column:1/-1}.customer-message-card{align-self:start}}

/* Reservation and room-plan theme contract. Reservation cards use the tenant
   surface palette; the plan itself deliberately keeps a paper-like light
   canvas and therefore owns a fixed dark ink instead of inheriting the page. */
.public-portal :is(.reservation-campaign,.reservation-history,.room-plan-cards>.card,.room-plan-tools,.placement-map-card,.placement-list-card,.reservation-ticket){color:var(--organization-surface-ink);background:var(--organization-surface);border-color:var(--line)}
.public-portal :is(.reservation-campaign,.reservation-history,.room-plan-cards>.card,.room-plan-tools,.placement-map-card,.placement-list-card,.reservation-ticket) :is(h1,h2,h3,h4,strong,summary,label,legend){color:inherit}
.public-portal :is(.reservation-campaign,.reservation-history,.room-plan-cards>.card,.room-plan-tools,.placement-map-card,.placement-list-card,.reservation-ticket) :is(p,small,.muted){color:color-mix(in srgb,var(--organization-surface-ink) 68%,var(--organization-surface))}
.public-portal :is(.reservation-room-plan,.room-plan-canvas) :is(strong,small,label,span){color:inherit}
.public-portal .reservation-room-plan :is(.reservation-room-item.is-table>strong,.reservation-seat span){color:#17212b}

/* External pickup station: a compact, high-contrast field interface shared by
   the browser and the installed PWA. */
.pickup-station-shell{min-height:100dvh;padding:clamp(.75rem,2vw,1.5rem);color:#e6f6f4;background:radial-gradient(circle at 50% 0,#123d42 0,#071a22 48%,#041116 100%)}
.pickup-station-shell :is(h1,h2,p){margin-top:0}.pickup-station-header{display:flex;max-width:980px;margin:0 auto 1rem;align-items:center;justify-content:space-between;gap:1rem}.pickup-station-header h1{margin:.15rem 0;font-size:clamp(1.35rem,4vw,2rem)}.pickup-station-header p{margin-bottom:0;color:#a9ceca}.pickup-station-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.pickup-network-state{padding:.42rem .7rem;border:1px solid #2e837b;border-radius:999px;color:#8ef0c5;background:#0b332f;font-size:.75rem;font-weight:800}.pickup-network-state.is-offline{color:#ffd5a4;background:#4a2a0c;border-color:#a76624}
.pickup-scan-card,.pickup-result-card{max-width:760px;margin:0 auto 1rem;padding:clamp(1rem,3vw,1.5rem);border:1px solid rgb(116 214 200/25%);border-radius:1.25rem;background:rgb(7 31 38/92%);box-shadow:0 1.2rem 3rem rgb(0 0 0/24%)}.pickup-scan-intro{display:flex;gap:1rem;align-items:center}.pickup-scan-icon{display:grid;width:3.5rem;height:3.5rem;flex:0 0 auto;place-items:center;border-radius:1rem;color:#b6fff1;background:#0f766e;font-size:2rem;font-weight:900}.pickup-scan-intro h2{margin-bottom:.25rem}.pickup-scan-intro p{margin-bottom:0;color:#a9ceca}.pickup-camera-launch,.pickup-confirm-button{display:flex;width:100%;min-height:4rem;margin-top:1rem;align-items:center;justify-content:center;gap:.7rem;border:0;border-radius:1rem;color:#04201c;background:linear-gradient(135deg,#5eead4,#2dd4bf);box-shadow:0 .7rem 1.8rem rgb(45 212 191/22%);font-size:1.05rem;font-weight:900;cursor:pointer}.pickup-camera-launch span{font-size:1.5rem}.pickup-camera-frame{position:relative;overflow:hidden;margin-top:1rem;border-radius:1rem;background:#000}.pickup-camera-frame video{display:block;width:100%;max-height:58dvh;object-fit:cover}.pickup-camera-frame>.button{position:absolute;right:.75rem;bottom:.75rem;color:#fff;background:rgb(0 0 0/68%)}.pickup-camera-target{position:absolute;inset:50% auto auto 50%;width:min(68vw,290px);aspect-ratio:1;translate:-50% -50%;border:3px solid #5eead4;border-radius:1rem;box-shadow:0 0 0 999px rgb(0 0 0/28%),inset 0 0 1.2rem rgb(94 234 212/20%)}.pickup-reference-search{margin-top:1rem;padding:.8rem;border:1px solid rgb(116 214 200/18%);border-radius:.8rem}.pickup-reference-search summary{color:#b8d6d3;font-weight:750;cursor:pointer}.pickup-reference-search form{margin-top:.8rem}.pickup-reference-search small,.pickup-install-help{display:block;margin:.65rem 0 0;color:#8fb7b3;font-size:.78rem}
.pickup-result-card.is-verified{border-color:#34d399;box-shadow:0 0 0 2px rgb(52 211 153/12%),0 1.2rem 3rem rgb(0 0 0/24%)}.pickup-result-card.is-readonly{border-color:#f59e0b}.pickup-result-card .section-heading{align-items:flex-start}.pickup-customer-name{margin:.25rem 0 0;color:#d7ece9;font-size:1.05rem}.pickup-result-lines{display:grid;padding:0;margin:1rem 0;gap:.65rem;list-style:none}.pickup-result-lines li{display:flex;padding:.85rem 1rem;align-items:center;justify-content:space-between;gap:1rem;border-radius:.8rem;background:rgb(255 255 255/7%)}.pickup-result-lines li>div{display:grid;gap:.2rem}.pickup-result-lines li>div small{color:#9fc5c1}.pickup-result-lines li>span{display:grid;min-width:4rem;text-align:center;color:#5eead4;font-size:1.65rem;font-weight:900}.pickup-result-lines li>span small{color:#9fc5c1;font-size:.62rem;text-transform:uppercase}
.pickup-delivery-form{display:grid;gap:.75rem}.pickup-quantity{display:flex;padding:.8rem 1rem;align-items:center;justify-content:space-between;gap:1rem;border:1px solid rgb(116 214 200/18%);border-radius:.85rem}.pickup-quantity>div:first-child{display:grid;gap:.2rem}.pickup-quantity>div:first-child small{color:#9fc5c1}.pickup-quantity>div:last-child{display:grid;grid-template-columns:3rem 4.2rem 3rem;align-items:center}.pickup-quantity button{height:3rem;border:0;color:#eafffb;background:#155e58;font-size:1.45rem;font-weight:900;cursor:pointer}.pickup-quantity button:first-child{border-radius:.7rem 0 0 .7rem}.pickup-quantity button:last-child{border-radius:0 .7rem .7rem 0}.pickup-quantity input{height:3rem;padding:.25rem;text-align:center;border:1px solid #2b746d;border-radius:0;color:#082520;background:#e9fffb;font-size:1.2rem;font-weight:900}.pickup-confirm-button:disabled{cursor:not-allowed;filter:grayscale(.8);opacity:.48}
.pickup-preparation-filters{display:flex;gap:.45rem;flex-wrap:wrap;margin:1rem 0}.pickup-preparation-filters .button{display:inline-flex;align-items:center;gap:.4rem}.pickup-preparation-filters .filter-count{display:inline-grid;min-width:1.45rem;height:1.45rem;padding:0 .35rem;margin-left:.15rem;place-items:center;border-radius:999px;color:var(--brand-dark);background:var(--surface-selected);font-size:.72rem;font-weight:900}.pickup-preparation-filters .button-primary .filter-count{color:var(--brand-dark);background:#fff}.pickup-preparation-order{border-left:4px solid #94a3b8}.pickup-preparation-order.is-pending{border-left-color:#f97316}.pickup-preparation-order.is-in_progress{border-left-color:#f59e0b}.pickup-preparation-order.is-ready{border-left-color:#0ea5e9}.pickup-preparation-order.is-partial{border-left-color:#8b5cf6}.pickup-preparation-order.is-complete{border-left-color:#10b981}.pickup-preparation-order[hidden]{display:none!important}.pickup-order-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.pickup-order-heading>div{display:grid;gap:.15rem}.pickup-state-badge{display:inline-flex;align-items:center;white-space:nowrap;padding:.3rem .55rem;border-radius:999px;color:#fff;background:#64748b;font-size:.72rem;font-weight:850}.pickup-state-badge.is-pending{background:#c2410c}.pickup-state-badge.is-in_progress{color:#422006;background:#fbbf24}.pickup-state-badge.is-ready{background:#0369a1}.pickup-state-badge.is-partial{background:#7c3aed}.pickup-state-badge.is-complete{background:#047857}.pickup-order-preparation-form{display:grid;gap:.7rem}.pickup-order-save{display:flex;align-items:center;justify-content:flex-end;gap:.8rem}.pickup-order-save small{margin-right:auto}.pickup-preparation .pickup-prepare-line{grid-template-columns:minmax(10rem,1fr) auto!important}.pickup-preparation .pickup-prepare-stepper{grid-template-columns:2.6rem 3.6rem 2.6rem}.pickup-preparation .pickup-prepare-stepper button,.pickup-preparation .pickup-prepare-stepper input{height:2.65rem;min-height:2.65rem}.pickup-prepare-save--order{width:100%;margin-top:.15rem}.pickup-terrain-order.is-pending{border-color:#f97316!important}.pickup-terrain-order.is-in_progress{border-color:#f59e0b!important}.pickup-terrain-order.is-ready{border-color:#0ea5e9!important}
@media(max-width:620px){.pickup-station-header{align-items:flex-start}.pickup-station-header,.pickup-quantity{flex-direction:column}.pickup-station-header-actions{justify-content:flex-start}.pickup-station-header-actions .button{min-height:36px;padding:7px 10px}.pickup-quantity{align-items:stretch}.pickup-quantity>div:last-child{align-self:stretch;grid-template-columns:3rem 1fr 3rem}.pickup-scan-card,.pickup-result-card{border-radius:1rem}.pickup-camera-launch{position:sticky;bottom:.65rem;z-index:2}}
@media(display-mode:standalone){.pickup-station-shell{padding-top:max(.75rem,env(safe-area-inset-top));padding-bottom:max(.75rem,env(safe-area-inset-bottom))}.pickup-install-help,[data-pwa-install]{display:none!important}.site-publisher-credit{display:none}}

/* Neutral partner workspace: client themes never leak into the cross-client hub. */
body.external-hub{--bg:#eef3f5;--surface:#fff;--surface-soft:#f5f8f9;--surface-selected:#e6f4f3;--ink:#17212b;--text:#17212b;--muted:#60717a;--line:#d5e0e4;--brand:#0f766e;--brand-dark:#0b5d57;--accent:#7c3aed;--organization-primary:#0f766e;--organization-accent:#7c3aed;--organization-page:#eef3f5;--organization-surface:#fff;--organization-field:#fff;--organization-field-ink:#17212b;--organization-text:#17212b;--organization-surface-ink:#17212b;--organization-page-ink:#17212b;color:#17212b;background:#eef3f5}
.external-hub-shell{min-height:100vh;padding:clamp(1rem,3vw,2.5rem)}.external-hub-content{width:min(1240px,100%);margin:0 auto}.external-hub-header,.external-client-group>header{display:flex;gap:1rem;align-items:center;justify-content:space-between}.external-hub-header{margin-bottom:1.25rem;padding:clamp(1.2rem,3vw,2rem);border-radius:1.25rem;color:#fff;background:linear-gradient(135deg,#073b4c,#0f766e 62%,#6d28d9);box-shadow:var(--shadow)}.external-hub-header :is(h1,p){color:#fff}.external-hub-header h1,.external-client-group h2{margin:.2rem 0}.external-hub-nav{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.external-hub-header .external-hub-nav .button:not(.button-primary){color:#fff;border-color:rgb(255 255 255/45%);background:rgb(255 255 255/10%)}.external-client-group{margin:1rem 0;padding:clamp(1rem,2.5vw,1.5rem);border:1px solid var(--line);border-radius:1.1rem;background:var(--surface);box-shadow:var(--shadow)}
.external-hub-nav form{margin:0}.external-hub-header>.external-hub-nav{justify-content:flex-end}.external-team-group>header{padding-bottom:1rem;border-bottom:1px solid var(--line)}.external-team-list{display:grid;margin-top:1rem;gap:.65rem}.external-team-member{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:1rem;align-items:center;padding:.85rem 1rem;border:1px solid var(--line);border-radius:.85rem;background:var(--surface-soft)}.external-team-member.is-suspended{opacity:.68}.external-team-identity{display:flex;min-width:0;gap:.75rem;align-items:center}.external-team-identity .profile-avatar{width:2.6rem;height:2.6rem;flex:0 0 2.6rem;font-size:1rem}.external-team-identity>span:last-child{display:grid;min-width:0;gap:.15rem}.external-team-identity small{overflow:hidden;color:var(--muted);text-overflow:ellipsis}.external-team-member>.badge-stack{display:flex;justify-content:flex-end;gap:.35rem;flex-wrap:wrap}.external-team-editor{position:relative}.external-team-editor>summary{list-style:none;white-space:nowrap}.external-team-editor>summary::-webkit-details-marker{display:none}.external-team-editor[open]{grid-column:1/-1}.external-team-editor>form{margin-top:.75rem;padding:1rem;border-top:1px solid var(--line);background:var(--surface)}.external-permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.45rem}.external-permission-grid .check-row{display:flex;margin:0;padding:.5rem .6rem;gap:.55rem;align-items:flex-start;border:1px solid var(--line);border-radius:.65rem;background:var(--surface-soft);font-size:.88rem;font-weight:650;cursor:pointer}.external-permission-grid .check-row input[type=checkbox]{width:16px;min-width:16px;height:16px;min-height:16px;padding:0;margin:.1rem 0 0;flex:0 0 16px;accent-color:var(--brand)}.external-permission-grid .check-row:has(input:checked){border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:var(--surface-selected)}.external-team-invite{margin-top:1rem}.external-team-invite>summary{cursor:pointer}.external-team-invite>summary>span{display:grid;gap:.2rem}.external-team-invite>summary small{color:var(--muted);font-weight:400}.external-team-invite>.details-content{margin-top:1rem}
.external-module-grid{align-items:start}.external-module-fold{padding:0;overflow:hidden}.external-module-fold>summary{display:flex;min-height:7rem;padding:1rem;align-items:center;justify-content:space-between;gap:1rem;list-style:none;cursor:pointer}.external-module-fold>summary::-webkit-details-marker{display:none}.external-module-fold>summary::after{content:'＋';color:var(--brand);font-size:1.25rem;font-weight:900}.external-module-fold[open]>summary::after{content:'−'}.external-module-heading{display:grid;min-width:12rem;gap:.18rem}.external-module-heading>strong{font-size:1.05rem}.external-module-heading>small{color:var(--muted)}.external-module-kpis{display:flex;margin-left:auto;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.external-module-kpis>span{display:grid;min-width:5.2rem;padding:.5rem .6rem;text-align:center;border:1px solid var(--line);border-radius:.7rem;background:var(--surface-soft)}.external-module-kpis strong{color:var(--brand-dark);font-size:1.1rem}.external-module-kpis small{color:var(--muted);font-size:.66rem;line-height:1.15}.external-module-content{padding:1rem;border-top:1px solid var(--line);background:var(--surface-soft)}.external-module-content>p:first-child{margin-top:0}
.external-module-grid{grid-template-columns:1fr}.external-module-links{display:grid;gap:.55rem}.external-submodule{border:1px solid var(--line);border-radius:.7rem;background:var(--surface)}.external-submodule>summary{display:flex;padding:.7rem .8rem;align-items:center;justify-content:space-between;gap:.75rem;cursor:pointer}.external-submodule>div{padding:.7rem;border-top:1px solid var(--line)}.pickup-order-list-fold{margin-top:1rem;border:1px solid var(--line);border-radius:.9rem}.pickup-order-list-fold>summary{padding:.85rem 1rem;color:var(--brand-dark);font-weight:800;cursor:pointer}.pickup-order-list-fold>.pickup-preparation-filters,.pickup-order-list-fold>.reservation-admin-list{margin-inline:1rem}.pickup-order-list-fold>.reservation-admin-list{margin-bottom:1rem}
.pickup-product-summary{margin:1rem 0;border:1px solid var(--line);border-radius:.9rem;background:var(--surface-soft)}.pickup-product-summary>summary{padding:.85rem 1rem;color:var(--brand-dark);font-weight:800;cursor:pointer}.pickup-product-summary table small{display:block;color:var(--muted)}.pickup-order-products{display:grid;gap:.55rem}.pickup-order-products>div{display:flex;gap:.75rem;align-items:center;justify-content:space-between;padding:.55rem .65rem;border-radius:.65rem;background:var(--surface-soft)}.pickup-order-products form{display:flex;gap:.4rem;align-items:center}.pickup-order-products input[type=number]{width:4.5rem;min-height:2.25rem}
.pickup-preparation-screen{scroll-behavior:smooth}.pickup-station-header--compact{margin-bottom:.55rem}.pickup-station-header--compact h1{font-size:clamp(1.12rem,3vw,1.55rem)}.pickup-station-header--compact .eyebrow{font-size:.65rem}.pickup-station-header--compact p:last-child{font-size:.78rem}.pickup-preparation-tabs{position:sticky;z-index:5;top:0;display:grid;max-width:760px;margin:0 auto .65rem;grid-template-columns:1fr 1fr;gap:.35rem;padding:.3rem;border:1px solid rgb(116 214 200/22%);border-radius:.8rem;background:rgb(4 17 22/94%);backdrop-filter:blur(8px)}.pickup-preparation-tabs a{padding:.65rem;text-align:center;color:#dffbf6;border-radius:.6rem;background:rgb(255 255 255/7%);font-size:.85rem;font-weight:850;text-decoration:none}.pickup-section-title{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.pickup-section-title h2{margin-bottom:0}.pickup-section-title>span{padding:.35rem .55rem;border-radius:999px;color:#b6fff1;background:#155e58;font-size:.72rem;font-weight:850}.pickup-reference-grid{display:grid;margin-top:.8rem;gap:.55rem}.pickup-reference-grid article{display:grid;grid-template-columns:minmax(9rem,1fr) auto;align-items:center;gap:.8rem;padding:.7rem .8rem;border:1px solid rgb(116 214 200/16%);border-radius:.75rem;background:rgb(255 255 255/5%)}.pickup-reference-grid article>div{display:grid;grid-template-columns:repeat(3,minmax(3.5rem,1fr));gap:.35rem}.pickup-reference-grid span{display:grid;text-align:center}.pickup-reference-grid b{color:#5eead4;font-size:1.15rem}.pickup-reference-grid small{color:#9fc5c1;font-size:.62rem}.pickup-terrain-order{display:grid!important;padding:.75rem!important;gap:.65rem!important;color:#e6f6f4!important;border:1px solid rgb(116 214 200/18%)!important;border-radius:.85rem!important;background:rgb(255 255 255/5%)!important}.pickup-terrain-order>header{display:flex;align-items:center;justify-content:space-between;gap:.65rem}.pickup-terrain-order>header>div{display:grid;gap:.12rem}.pickup-terrain-order small{color:#9fc5c1!important}.pickup-prepare-line{display:grid!important;grid-template-columns:minmax(8rem,1fr) auto auto;align-items:center!important;gap:.55rem!important;padding:.6rem!important;border:1px solid rgb(116 214 200/15%);border-radius:.75rem;background:rgb(2 18 23/55%)}.pickup-prepare-label{display:grid;min-width:0;gap:.1rem}.pickup-prepare-label strong{overflow:hidden;text-overflow:ellipsis}.pickup-prepare-stepper{display:grid;grid-template-columns:3rem 3.5rem 3rem;align-items:center}.pickup-prepare-stepper button,.pickup-prepare-stepper input{width:100%;height:3.15rem;min-height:3.15rem;margin:0}.pickup-prepare-stepper button{border:0;color:#eafffb;background:#155e58;font-size:1.5rem;font-weight:900}.pickup-prepare-stepper button:first-child{border-radius:.65rem 0 0 .65rem}.pickup-prepare-stepper button:last-child{border-radius:0 .65rem .65rem 0}.pickup-prepare-stepper input{padding:.2rem;text-align:center;color:#082520;border:1px solid #2b746d;border-radius:0;background:#e9fffb;font-size:1.15rem;font-weight:900}.pickup-prepare-save{min-height:3.15rem;padding:0 .9rem;border:0;border-radius:.65rem;color:#04201c;background:#5eead4;font-weight:900}.pickup-prepare-line :disabled{cursor:not-allowed;filter:grayscale(.75);opacity:.5}.pickup-prepare-blocked{display:block;padding:.5rem .6rem;color:#ffd5a4!important;border-radius:.55rem;background:#4a2a0c}
@media(max-width:620px){.pickup-preparation-screen{padding:.45rem}.pickup-station-header--compact{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem}.pickup-station-header--compact>div:first-child p:last-child{display:none}.pickup-station-header--compact .pickup-station-header-actions{display:grid;grid-template-columns:1fr 1fr}.pickup-station-header--compact .button{white-space:nowrap}.pickup-preparation-screen .pickup-result-card{padding:.75rem;margin-bottom:.65rem}.pickup-reference-grid article{grid-template-columns:1fr}.pickup-prepare-line{grid-template-columns:1fr auto!important}.pickup-prepare-label{grid-column:1/-1}.pickup-prepare-stepper{grid-template-columns:3.25rem 1fr 3.25rem}.pickup-prepare-save{min-width:5.5rem}.pickup-reference-totals .pickup-reference-grid small{font-size:.6rem}}
.external-team-actions{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;flex-wrap:wrap}.external-team-actions>form{margin:0}
@media(max-width:720px){.external-hub-header,.external-client-group>header,.pickup-order-products>div{align-items:stretch;flex-direction:column}.external-hub-header>.external-hub-nav{justify-content:flex-start}.external-hub-nav .button,.external-hub-nav form,.external-hub-nav form .button{width:100%}.external-team-member{grid-template-columns:1fr;align-items:stretch}.external-team-member>.badge-stack{justify-content:flex-start}.external-team-actions{align-items:stretch;justify-content:flex-start;flex-direction:column}.external-team-actions>form,.external-team-actions .button{width:100%}.external-team-editor>summary{width:100%;text-align:center}.external-module-fold>summary{align-items:stretch;flex-direction:column}.external-module-kpis{width:100%;margin-left:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.external-module-kpis>span{min-width:0}.external-module-fold>summary::after{position:absolute;right:1.2rem}.external-module-fold{position:relative}}
.receipt-presentation-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);gap:1.25rem;align-items:start}.receipt-preview{max-width:var(--receipt-columns);margin:1rem auto;padding:1rem;background:#fff;color:#111;border:1px dashed #9aa4ad;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.35;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.08);overflow-wrap:anywhere}.receipt-preview span{float:right}.receipt-preview hr{clear:both;border:0;border-top:1px dashed #555;margin:.65rem 0}.receipt-preview-logo{display:block;max-width:54%;max-height:64px;object-fit:contain;margin:0 auto .6rem;filter:grayscale(1) contrast(1.12)}.receipt-presentation-layout .check-row{display:flex;align-items:flex-start;gap:.55rem}.receipt-presentation-layout .check-row input{width:1rem;height:1rem;flex:0 0 auto;margin-top:.15rem}.sales-receipt-branding{margin-top:1.5rem;text-align:center;padding-top:1rem;border-top:1px dashed var(--border-color,#ccd5da)}.sales-receipt-branding p{white-space:pre-line}.sales-receipt-branding small{display:block;margin-top:1rem}@media(max-width:850px){.receipt-presentation-layout{grid-template-columns:1fr}}

/* Configuration pages obey the complete tenant theme contract. This late
   layer intentionally neutralizes legacy white cards without changing the
   paper preview used to represent a physical receipt. */
.public-portal .organization-settings-page{color:var(--organization-page-ink, var(--text))}
.public-portal .organization-settings-page :is(.card,.device-row,.terrain-release-variant,.device-assignment-panel,.device-fiscal-grid>article,.mail-config-card,.directory-config-card){color:var(--organization-surface-ink, var(--text));background:var(--organization-surface, var(--surface));border-color:var(--line)}
.public-portal .organization-settings-page :is(.card,.device-row,.terrain-release-variant,.device-assignment-panel,.device-fiscal-grid>article,.mail-config-card,.directory-config-card) :is(h1,h2,h3,h4,strong,label,legend,summary,code){color:inherit}
.public-portal .organization-settings-page :is(.muted,small,.device-row-main small,.device-row-state small,.device-fleet-summary span,.terrain-release-card figcaption){color:color-mix(in srgb,var(--organization-surface-ink, var(--text)) 68%,var(--organization-surface, var(--surface)))}
.public-portal .organization-settings-page :is(input:not([type=checkbox]):not([type=radio]),select,textarea){color:var(--organization-field-ink, var(--text));background:var(--organization-field, var(--surface));border-color:var(--line)}
.public-portal .organization-settings-page :is(.device-row-actions details>form,.device-seller-unlock,.device-launcher-assignments button,.device-assignment-create form){color:var(--organization-surface-ink, var(--text));background:var(--surface-soft);border-color:var(--line)}
.public-portal .organization-settings-page .terrain-release-variant.is-stripe{background:color-mix(in srgb,var(--organization-accent) 8%,var(--organization-surface));border-color:color-mix(in srgb,var(--organization-accent) 45%,var(--line))}
.public-portal .organization-settings-page .device-row.is-suspended{background:color-mix(in srgb,#d97706 10%,var(--organization-surface))}
.public-portal .organization-settings-page table :is(th,td){color:var(--organization-surface-ink, var(--text));border-color:var(--line)}
.public-portal .organization-settings-page table th{background:var(--surface-soft)}
.public-portal .organization-settings-page .device-assignment-list>span{color:var(--organization-surface-ink,var(--text));background:color-mix(in srgb,var(--organization-primary) 10%,var(--organization-surface));border:1px solid color-mix(in srgb,var(--organization-primary) 28%,var(--line))}
.public-portal .organization-settings-page :is(.print-route-matrix,.print-relay-printer){color:var(--organization-surface-ink,var(--text));background:color-mix(in srgb,var(--organization-page) 42%,var(--organization-surface));border-color:var(--line)}
.public-portal .organization-settings-page .print-route-row{color:var(--organization-surface-ink,var(--text));background:var(--organization-surface);border-color:var(--line)}
.print-relay-jobs{display:grid;margin-top:1rem;border:1px solid var(--line);border-radius:.75rem;overflow:hidden;background:var(--organization-surface)}.print-relay-jobs>header{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .75rem;border-bottom:1px solid var(--line);font-size:.78rem}.print-relay-jobs>header small{color:var(--muted)}.print-relay-job{border-bottom:1px solid var(--line)}.print-relay-job:last-child{border-bottom:0}.print-relay-job>summary{display:grid;grid-template-columns:7.5rem 6.5rem auto minmax(10rem,1fr);align-items:center;gap:.6rem;min-height:2.35rem;padding:.35rem .75rem;cursor:pointer;font-size:.76rem;list-style:none}.print-relay-job>summary::-webkit-details-marker{display:none}.print-relay-job>summary:hover{background:var(--surface-soft)}.print-relay-job>summary time{font-variant-numeric:tabular-nums;color:var(--muted)}.print-relay-job-route{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.print-relay-job-diagnostic{display:grid;gap:.2rem;padding:.55rem .75rem .65rem 14.6rem;border-top:1px dashed var(--line);background:var(--surface-soft);font-size:.74rem;line-height:1.35}.print-relay-job-diagnostic code{font-size:.72rem}@media(max-width:720px){.print-relay-job>summary{grid-template-columns:6.8rem 1fr auto}.print-relay-job-route{grid-column:1/-1}.print-relay-job-diagnostic{padding-left:.75rem}}
.print-relay-list{display:grid;gap:1rem}.print-relay-card{overflow:hidden;border:1px solid var(--line);border-radius:.9rem;background:var(--organization-surface)}.print-relay-card>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-bottom:1px solid var(--line)}.print-relay-card>header>div{display:grid;gap:.2rem}.print-relay-heading-actions{display:flex!important;grid-auto-flow:column;align-items:center;gap:.5rem!important}.print-relay-heading-actions form{margin:0}.print-relay-card>header span:not(.status-pill){color:color-mix(in srgb,var(--organization-surface-ink) 68%,var(--organization-surface));font-size:.78rem}.print-relay-printers{display:grid;gap:.65rem;padding:1rem}.print-relay-printer{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));align-items:end;gap:.65rem;padding:.8rem;border:1px solid var(--line);border-left:4px solid #94a3b8;border-radius:.75rem;background:var(--surface-soft)}.print-relay-printer.is-enabled{border-left-color:#16a34a}.print-relay-printer>label:not(.check-row){display:grid;gap:.25rem;font-size:.78rem;font-weight:750}.print-relay-printer .check-row{align-self:center;margin:0;font-size:.78rem}.print-relay-printer .check-row input{width:16px;min-width:16px;height:16px;min-height:16px;padding:0;flex:0 0 16px}.print-relay-printer input[readonly]{opacity:.78}.print-relay-document-types{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.55rem;border:1px solid var(--line);border-radius:.6rem}.print-relay-document-types legend{padding:0 .3rem;font-size:.75rem;font-weight:800}

.reservation-page,.reservation-campaign,.reservation-campaign-header,.reservation-campaign-header>div{min-width:0;max-width:100%}.reservation-commercial-timeline{display:block;width:100%;max-width:100%;margin:1rem 0;overflow-x:auto;padding:.25rem .25rem .45rem;scrollbar-width:thin}.reservation-commercial-track{position:relative;display:flex;width:max-content;min-width:100%;align-items:flex-start}.reservation-commercial-line{position:absolute;left:1.25rem;right:1.25rem;top:1rem;height:3px;border-radius:3px;background:color-mix(in srgb,var(--organization-primary) 45%,var(--line))}.reservation-commercial-milestone{position:relative;z-index:1;display:grid;justify-items:center;align-content:start;gap:.2rem;min-width:8.75rem;max-width:11rem;padding:0 .45rem;text-align:center}.reservation-commercial-milestone i{display:block;width:1.55rem;height:1.55rem;border:4px solid var(--organization-surface);border-radius:50%;background:var(--organization-primary);box-shadow:0 0 0 1px var(--line)}.reservation-commercial-milestone.is-payment i{background:var(--organization-accent)}.reservation-commercial-milestone.is-pickup i{background:#16a34a}.reservation-commercial-milestone.is-close i{background:#dc2626}.reservation-commercial-milestone time{display:flex;gap:.3rem;font-size:.72rem;font-weight:800;color:var(--organization-surface-ink)}.reservation-commercial-milestone time small{font:inherit;color:var(--muted)}.reservation-commercial-milestone strong{font-size:.72rem;line-height:1.2}.reservation-pickup-location{margin:.35rem 0;font-size:.82rem}.payment-deadline-editor{display:grid;gap:.65rem}.payment-deadline-editor legend{font-weight:800}.payment-deadline-row{display:grid;grid-template-columns:minmax(9rem,.7fr) minmax(11rem,1fr) minmax(12rem,1fr) auto;align-items:end;gap:.55rem}.payment-deadline-row>label{display:grid;gap:.25rem}.payment-deadline-row>.button{margin-bottom:.1rem}@media(max-width:720px){.payment-deadline-row{grid-template-columns:1fr auto}.payment-deadline-row>label{grid-column:1}.payment-deadline-row>.button{grid-column:2;grid-row:1/4;align-self:center}}
.event-linked-projects{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.8rem 0;padding:.7rem .85rem;border-left:4px solid var(--organization-accent);border-radius:.65rem;background:var(--surface-soft)}
.reservation-commercial-timeline{contain:inline-size;overscroll-behavior-inline:contain}
@media(max-width:1100px){.print-relay-printer{grid-template-columns:repeat(2,minmax(0,1fr))}.print-relay-printer .button{width:fit-content}}@media(max-width:620px){.print-relay-card>header{align-items:flex-start;flex-direction:column}.print-relay-printer{grid-template-columns:1fr}.print-relay-printer .button{width:100%}}
.print-route-matrix{display:grid;gap:.6rem;margin-bottom:1rem;padding:1rem;border:1px solid var(--line);border-radius:.9rem;background:var(--surface-soft)}.print-route-matrix .section-heading{margin:0}.print-route-row{display:grid;grid-template-columns:minmax(10rem,.65fr) minmax(18rem,2fr) auto;align-items:end;gap:.75rem;padding:.7rem;border:1px solid var(--line);border-radius:.7rem;background:var(--organization-surface)}.print-route-row>div,.print-route-row>label{display:grid;gap:.25rem}.print-route-row small{font-size:.75rem;color:color-mix(in srgb,var(--organization-surface-ink) 65%,transparent)}@media(max-width:760px){.print-route-row{grid-template-columns:1fr}.print-route-row .button{width:100%}}

/* Theme contract for legacy module panels.
   Public organization pages must never couple a literal light background with
   text inherited from a custom dark theme. Keep intentionally paper-like
   previews and room-plan canvases outside this compatibility layer. */
.public-portal :is(
  .sales-menu-overview article,
  .sales-menu-group,
  .sales-variant-links article,
  .idea-version-heading,
  .catalog-editor,
  .catalog-toolbar,
  .catalog-filter-popover,
  .sales-product-tray,
  .sales-kpis article,
  .sales-report-filters,
  .catalog-panel,
  .catalog-create-form,
  .catalog-more > div,
  .catalog-tab.is-active,
  .library-products label,
  .sales-config-card,
  .production-matrix tbody th,
  .placement-attendance button
) {
  color: var(--organization-surface-ink, var(--ink));
  background: var(--organization-surface, var(--surface));
  border-color: var(--line);
}

.public-portal :is(
  .sales-menu-builder,
  .sales-menu-choice,
  .sales-menu-new-product,
  .sales-product-list button,
  .sales-ticket-row.is-cancelled,
  .sales-cancellation,
  .sales-variant-links,
  .idea-panel > summary,
  .idea-comment,
  .idea-version-card,
  .idea-version-rounds p,
  .sales-closures details,
  .library-card details,
  .sales-config-existing > span,
  .sales-seller-list article,
  .sales-payment-method-list > details,
  .admission-period-row,
  .audit-timeline article,
  .production-matrix tbody td,
  .catalog-row:hover,
  .catalog-history p,
  .event-image-editor,
  .category-chip-list form,
  .notification-preference-group
) {
  color: var(--organization-surface-ink, var(--ink));
  background: var(--surface-soft, var(--organization-surface, var(--surface)));
  border-color: var(--line);
}

.public-portal :is(
  .sales-menu-overview article,
  .sales-menu-builder,
  .sales-menu-group,
  .sales-menu-choice,
  .sales-variant-links,
  .idea-panel,
  .idea-comment,
  .idea-version-card,
  .sales-config-card,
  .sales-product-tray,
  .sales-product-list button,
  .sales-kpis article,
  .sales-report-filters,
  .sales-cancellation,
  .sales-config-existing > span,
  .sales-seller-list article,
  .sales-payment-method-list > details,
  .admission-period-row,
  .audit-timeline article
) :is(p, small, .muted) {
  color: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 68%, var(--organization-surface, var(--surface)));
}

.public-portal :is(.sales-menu-builder, .sales-menu-group, .sales-menu-choice, .sales-variant-links, .sales-product-tray, .sales-report-filters, .catalog-editor, .catalog-panel, .catalog-create-form, .catalog-more > div, .sales-config-card, .admission-period-row)
  :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]), select, textarea) {
  color: var(--organization-field-ink, var(--ink));
  background: var(--organization-field, var(--surface));
  border-color: var(--line);
}

.public-portal :is(.catalog-tab span, .catalog-history > summary span) {
  color: var(--organization-surface-ink, var(--ink));
  background: var(--surface-soft, var(--organization-surface, var(--surface)));
}

.public-portal :is(.catalog-more > summary:hover, .catalog-more button:hover) {
  color: var(--organization-surface-ink, var(--ink));
  background: var(--surface-selected, var(--surface-soft));
}

.public-portal :is(.admission-audit-row.has-alert, .audit-timeline article.is-reversal) {
  color: var(--organization-surface-ink, var(--ink));
  background: color-mix(in srgb, var(--danger) 10%, var(--organization-surface, var(--surface)));
}

/* Choice-control contract -------------------------------------------------
   Text-field rules intentionally make ordinary inputs full width and at
   least 44px high. Checkbox and radio controls must never inherit those
   dimensions: their surrounding label owns the accessible click/touch area. */
body input:is([type="checkbox"], [type="radio"]) {
  width: 16px;
  min-width: 16px;
  max-width: 16px;
  height: 16px;
  min-height: 16px;
  max-height: 16px;
  padding: 0;
  margin: .1rem .4rem .1rem 0;
  flex: 0 0 16px;
  vertical-align: middle;
  accent-color: var(--brand);
  box-shadow: none;
}

:where(.stack, .form-grid, .module-form) :is(.check-row, .checkbox-line, .choice-line, .switch-row) {
  display: flex;
  width: auto;
  min-width: 0;
  min-height: 36px;
  align-items: flex-start;
  gap: .5rem;
}

:where(.stack, .form-grid, .module-form) :is(.check-row, .checkbox-line, .choice-line, .switch-row) > input:is([type="checkbox"], [type="radio"]) {
  margin-top: .15rem;
  margin-right: 0;
}

:where(.check-row, .checkbox-line, .choice-line, .switch-row) > span {
  display: grid;
  min-width: 0;
  gap: .2rem;
}

:where(.check-row, .checkbox-line, .choice-line, .switch-row) > span > small {
  display: block;
  line-height: 1.35;
}
.sales-cart-line-editable,
[data-sales-terminal] [data-product-id],
.sales-cart-line-editable *,
[data-sales-terminal] [data-product-id] * {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

.sales-cart-line-editable { cursor: context-menu; }

.sales-persistent-note-list {
  display: grid;
  gap: .4rem;
  max-height: 12rem;
  overflow: auto;
  padding: .5rem;
  border: 1px solid var(--border-color, rgba(127, 127, 127, .3));
  border-radius: .65rem;
  background: var(--field-background, rgba(127, 127, 127, .08));
}

.sales-manager-pin-dialog {
  width: min(24rem, calc(100% - 1rem));
  padding: 0;
  color: #f4fbff;
  border: 1px solid #456579;
  border-radius: 1.1rem;
  background: #101a21;
  box-shadow: 0 24px 80px rgb(0 0 0 / 65%);
}
.sales-manager-pin-dialog::backdrop { background: rgb(2 8 12 / 82%); backdrop-filter: blur(3px); }
.sales-manager-pin-dialog form { display: grid; gap: .9rem; padding: 1rem; }
.sales-manager-pin-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.sales-manager-pin-dialog header h2 { margin: .1rem 0 0; font-size: 1.15rem; }
.sales-manager-pin-dialog header small { color: #9fc0d0; }
.sales-manager-pin-dialog header > button { width: 2.5rem; height: 2.5rem; padding: 0; color: #fff; border: 0; border-radius: 999px; background: #304754; font-size: 1.45rem; }
.sales-manager-pin-display { display: block; padding: .7rem; text-align: center; color: #cdbdff; border: 1px solid #486577; border-radius: .8rem; background: #182832; font-size: 1.45rem; font-weight: 900; letter-spacing: .28rem; }
.sales-manager-pin-pad { display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem; }
.sales-manager-pin-pad button { min-height: 3.7rem; padding: .35rem; color: #fff; border: 1px solid #4d6f82; border-radius: .8rem; background: #203946; font-size: 1.35rem; font-weight: 900; touch-action: manipulation; }
.sales-manager-pin-pad button:active { transform: scale(.96); background: #7046d8; }
.sales-manager-pin-dialog footer { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }

.sales-option-config-card {
  display: grid;
  gap: .8rem;
  margin: 0;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: .85rem;
  color: var(--organization-surface-ink, var(--ink));
  background: var(--surface-soft, var(--organization-surface, var(--surface)));
}

.sales-option-config-card > legend {
  padding: 0 .4rem;
  font-weight: 800;
}

.sales-option-config-card .sales-menu-group-head {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}

.sales-option-config-card .sales-menu-group-head > label,
.sales-option-config-card .form-grid > label {
  display: grid;
  min-width: 0;
  gap: .3rem;
  font-size: .82rem;
  font-weight: 750;
}

.sales-option-config-card .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  align-items: start;
}

.sales-option-config-card .form-grid select[multiple] {
  width: 100%;
  min-height: 10.5rem;
  padding: .45rem;
}

.sales-option-settings .sales-menu-builder-actions { justify-content: flex-end; }

[data-reusable-option-choices] { display: grid; gap: .7rem; }

.sales-option-choice-card {
  display: grid;
  gap: .65rem;
  padding: .8rem;
  border: 1px solid var(--line);
  border-radius: .75rem;
  color: var(--organization-surface-ink, var(--ink));
  background: var(--organization-surface, var(--surface));
}

.sales-option-choice-main {
  display: grid;
  grid-template-columns: minmax(12rem, 1.4fr) minmax(10rem, .9fr) minmax(8rem, .7fr) minmax(12rem, 1fr);
  gap: .7rem;
  align-items: end;
}

.sales-option-choice-main > label { display: grid; gap: .25rem; font-size: .8rem; font-weight: 750; }
.sales-option-value { display: grid; grid-template-columns: 1fr 2.5rem; align-items: center; }
.sales-option-value input { border-radius: .55rem 0 0 .55rem; }
.sales-option-value span { display: grid; height: 100%; place-items: center; border: 1px solid var(--line); border-left: 0; border-radius: 0 .55rem .55rem 0; background: var(--surface-selected, var(--surface-soft)); font-weight: 800; }
.sales-option-choice-card > footer { display: flex; gap: .75rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.sales-option-choice-card > footer > small { flex: 1 1 16rem; color: var(--organization-muted-ink, var(--muted)); }
.sales-option-choice-card > footer > small.is-positive { color: var(--success, #1f7a4f); font-weight: 750; }
.sales-option-choice-card > footer > small.is-negative { color: var(--danger, #b42318); font-weight: 750; }

@media (max-width: 950px) {
  .sales-option-choice-main { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .sales-option-config-card .sales-menu-group-head,
  .sales-option-config-card .form-grid,
  .sales-option-choice-main { grid-template-columns: 1fr; }
  .sales-option-choice-card > footer { align-items: stretch; }
  .sales-option-choice-card > footer > .button { width: 100%; }
  .sales-terrain-action-panel .form-grid { grid-template-columns: 1fr; }
}
[data-unwired-feature][hidden] { display: none !important; }
.inventory-zone-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 30rem), 1fr)); margin-top: 1rem; }
.inventory-zone-card { display: block; }
.inventory-zone-card > header { display: flex; justify-content: space-between; gap: 1rem; }
.inventory-zone-card > header div { display: grid; gap: .2rem; }
.inventory-zone-card .form-grid { padding: .8rem; border-radius: var(--radius-small); background: color-mix(in srgb, var(--surface-color) 88%, var(--accent-color)); }
.inventory-zone-summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .15rem; cursor: pointer; list-style: none; }
.inventory-zone-summary::-webkit-details-marker { display: none; }
.inventory-zone-summary > span:first-child { display: grid; gap: .15rem; min-width: 0; }
.inventory-zone-summary strong { font-size: .95rem; }
.inventory-zone-summary small { overflow: hidden; color: var(--organization-surface-ink, var(--ink)); opacity: .68; text-overflow: ellipsis; white-space: nowrap; }
.inventory-zone-summary-count { flex: 0 0 auto; font-size: .72rem; color: var(--organization-primary, var(--brand)); }
.inventory-zone-card[open] > .inventory-zone-summary { padding-bottom: .55rem; border-bottom: 1px solid var(--line); }
.inventory-zone-card[open] > .inventory-zone-summary .inventory-zone-summary-count { font-size: 0; }
.inventory-zone-card[open] > .inventory-zone-summary .inventory-zone-summary-count::after { content: 'Replier'; font-size: .72rem; }
.inventory-zone-card > :not(summary) { margin-top: .55rem; }
.inventory-zone-tool { color: var(--organization-surface-ink, var(--ink)); background: color-mix(in srgb, var(--organization-surface, var(--surface)) 94%, var(--organization-primary, var(--brand))); border: 1px solid var(--line); border-radius: var(--radius-small); }
.inventory-zone-tool > summary { padding: .55rem .65rem; cursor: pointer; font-size: .82rem; font-weight: 750; }
.inventory-zone-tool > .form-grid { margin: 0 .55rem .55rem; }
.inventory-zone-products { display: grid; gap: .35rem; padding: 0 .55rem .45rem; }
.inventory-zone-product-row { display: grid; grid-template-columns: minmax(9rem, 1fr) auto; align-items: center; gap: .45rem; padding: .45rem .5rem; color: var(--organization-surface-ink, var(--ink)); background: color-mix(in srgb, var(--organization-surface, var(--surface)) 97%, var(--organization-primary, var(--brand))); border: 1px solid var(--line); border-radius: calc(var(--radius-small) * .7); }
.inventory-zone-product-row > strong, .inventory-zone-product-row > span { align-self: center; }
.inventory-zone-product-row > span { font-size: .78rem; opacity: .72; }
.inventory-zone-product-row label { gap: .15rem; font-size: .68rem; }
.inventory-zone-product-row input { min-height: 2.1rem; padding: .35rem .45rem; }
.inventory-zone-add-product { display: flex; align-items: end; gap: .45rem; margin: 0 .55rem .55rem; padding-top: .45rem; border-top: 1px solid var(--line); }
.inventory-zone-add-product label { flex: 1 1 18rem; gap: .2rem; font-size: .72rem; }
.inventory-zone-empty { margin: 0; padding: .4rem .1rem; font-size: .8rem; }
@media (max-width: 800px) {
  .inventory-zone-product-row { grid-template-columns: minmax(0, 1fr) auto; }
  .inventory-zone-product-row label { grid-column: span 1; }
  .inventory-zone-product-row .button { grid-column: 1 / -1; }
}

.appearance-live-preview { display: grid; gap: .65rem; margin-top: .9rem; padding: 1rem; color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); border: 1px solid var(--line); border-radius: var(--radius-small); }
.appearance-live-preview p { margin: 0; color: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 70%, var(--organization-surface, var(--surface))); }
.appearance-live-preview > div { display: flex; gap: .5rem; flex-wrap: wrap; }

.stock-plan-toolbar { display: flex; align-items: end; gap: .55rem; flex-wrap: wrap; margin: .8rem 0; }
.stock-plan-toolbar label { min-width: min(22rem, 100%); flex: 1 1 18rem; }
.stock-plan-toolbar small { flex: 1 0 100%; color: var(--organization-surface-ink, var(--ink)); opacity: .78; }
.stock-plan-toolbar .is-active { outline: 3px solid color-mix(in srgb, var(--organization-accent, var(--accent-color)) 50%, transparent); }
.stock-plan-editor { position: relative; min-width: 50rem; min-height: 34rem; overflow: auto; isolation: isolate; border: 1px solid var(--line); border-radius: var(--radius-small); background-color: var(--organization-page, var(--page)); background-image: radial-gradient(circle, color-mix(in srgb, var(--organization-page-ink, var(--ink)) 20%, transparent) 1px, transparent 1px); background-size: 20px 20px; }
.stock-plan-editor > svg { position: absolute; inset: 0; z-index: 2; overflow: visible; pointer-events: none; }
.stock-plan-edge { fill: none; stroke: var(--organization-primary, var(--brand)); stroke-width: 3; pointer-events: stroke; cursor: pointer; }
.stock-plan-arrow { fill: var(--organization-primary, var(--brand)); }
.stock-plan-edge.is-bidirectional { stroke-dasharray: 9 5; }
.stock-plan-edge:hover { stroke: var(--danger); stroke-width: 5; }
.stock-plan-area { position: absolute; z-index: 1; display: grid; align-content: start; min-width: 180px; min-height: 120px; border: 2px dashed color-mix(in srgb, var(--organization-accent, var(--accent-color)) 72%, var(--organization-page-ink, var(--ink))); border-radius: .9rem; background: color-mix(in srgb, var(--organization-accent, var(--accent-color)) 8%, transparent); }
.stock-plan-area strong { padding: .45rem .65rem; color: var(--organization-page-ink, var(--ink)); cursor: move; touch-action: none; }
.stock-plan-area button { position: absolute; top: .25rem; right: .35rem; width: 1.8rem; height: 1.8rem; padding: 0; color: var(--organization-page-ink, var(--ink)); background: transparent; border: 0; }
.stock-plan-area-resize { position: absolute; right: .2rem; bottom: .2rem; width: 1.4rem; height: 1.4rem; border-right: 3px solid var(--organization-accent, var(--accent-color)); border-bottom: 3px solid var(--organization-accent, var(--accent-color)); border-radius: 0 0 .35rem 0; cursor: nwse-resize; touch-action: none; }
.stock-plan-area-resize::before { content: ''; position: absolute; right: .28rem; bottom: .28rem; width: .5rem; height: .5rem; border-right: 2px solid color-mix(in srgb, var(--organization-accent, var(--accent-color)) 70%, transparent); border-bottom: 2px solid color-mix(in srgb, var(--organization-accent, var(--accent-color)) 70%, transparent); }
.stock-plan-node { position: absolute; z-index: 3; width: 11.5rem; min-height: 6rem; display: grid; gap: .18rem; padding: .65rem; color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); border: 2px solid var(--organization-primary, var(--brand)); border-radius: .75rem; box-shadow: 0 8px 22px color-mix(in srgb, var(--organization-page-ink, var(--ink)) 14%, transparent); cursor: move; user-select: none; touch-action: none; }
.stock-plan-node.is-keypad { border-color: var(--organization-accent, var(--accent-color)); }
.stock-plan-node.is-device { border-style: dashed; }
.stock-plan-node.is-connection-start { outline: 4px solid color-mix(in srgb, var(--organization-accent, var(--accent-color)) 55%, transparent); }
.stock-plan-node small { color: var(--organization-surface-ink, var(--ink)); opacity: .68; text-transform: uppercase; letter-spacing: .08em; }
.stock-plan-node span { color: var(--organization-surface-ink, var(--ink)); opacity: .76; font-size: .76rem; }
.stock-plan-node div { display: flex; gap: .4rem; margin-top: .35rem; }
.stock-plan-node :is(a, button) { padding: 0; color: var(--organization-primary, var(--brand)); background: transparent; border: 0; font: inherit; font-size: .72rem; text-decoration: underline; cursor: pointer; }

/* Last-resort semantic inheritance for legacy tenant modules. Components may
   still define state colors, but ordinary copy and form controls always use
   the tenant tokens instead of historic black/white declarations. */
.public-portal :where(.card, .form-card, .module-card, .agenda-section, .document-row, .portal-panel, details) :where(h1, h2, h3, h4, label, legend, summary, th, td) { color: inherit; }
.public-portal :where(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]), select, textarea) { color: var(--organization-field-ink, var(--ink)); background-color: var(--organization-field, var(--surface)); border-color: var(--line); }
.public-portal :where(input, select, textarea)::placeholder { color: color-mix(in srgb, var(--organization-field-ink, var(--ink)) 58%, var(--organization-field, var(--surface))); }

@media (max-width: 860px) {
  .stock-plan-section { overflow-x: auto; }
  .stock-plan-editor { min-width: 44rem; min-height: 30rem; }
}
.inventory-terrain-link form { align-items: end; }
.inventory-page { --inventory-gap: .65rem; }
.inventory-page .agenda-section,
.inventory-page .module-card { padding: .85rem; }
.inventory-page .section-heading { margin-bottom: .65rem; }
.inventory-page .section-heading h2,
.inventory-page .form-card h3,
.inventory-page .inventory-card h3 { margin: 0; }
.inventory-page .form-grid { gap: .55rem; }
.inventory-page .form-grid > label { display: grid; align-content: end; gap: .2rem; min-width: 0; font-size: .78rem; }
.inventory-operation-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); align-items: end; gap: .65rem; padding: .7rem; color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); border: 1px solid var(--line); border-radius: var(--radius-small); }
.inventory-ean-form { grid-template-columns: minmax(15rem, 2fr) minmax(12rem, 1fr) auto; }
.inventory-movement-form { grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); }
.inventory-topology-forms { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); align-items: start; }
.inventory-advanced-fallback { color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); border: 1px solid var(--line); border-radius: var(--radius-small); }
.inventory-advanced-fallback > summary { padding: .7rem; cursor: pointer; font-weight: 750; }
.inventory-advanced-fallback > form { padding: 0 .7rem .7rem; }
.stock-plan-direction { flex: 0 1 auto !important; min-width: 0 !important; align-self: center; padding: .45rem .6rem; color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); border: 1px solid var(--line); border-radius: var(--radius-small); }
.inventory-page :where(input, select) { min-height: 2.35rem; padding-block: .42rem; }
.inventory-page .button:not(.portal-nav *) { min-height: 2.35rem; padding: .42rem .7rem; }
.inventory-page .inventory-grid,
.inventory-page .inventory-zone-grid { gap: .65rem; }
.inventory-page { display: grid; gap: 1rem; }
.inventory-page > .portal-header { margin-bottom: 0; }
.inventory-page > .agenda-section { margin: 0; padding: 1.15rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--organization-surface, var(--surface)); box-shadow: 0 .35rem 1.1rem rgb(0 0 0 / .06); }
.inventory-page > .agenda-section .section-heading { margin-bottom: .85rem; }
.inventory-page > .agenda-section .section-heading h2 { margin: .08rem 0 .25rem; }
.inventory-page .inventory-operation-form { display: grid; gap: .75rem; padding: .85rem; border: 1px solid color-mix(in srgb, var(--line) 78%, transparent); border-radius: .8rem; background: color-mix(in srgb, var(--organization-page, var(--page)) 72%, var(--organization-surface, var(--surface))); }
.inventory-page .inventory-operation-form label { display: grid; gap: .35rem; min-width: 0; color: var(--muted); font-size: .75rem; font-weight: 850; letter-spacing: .035em; text-transform: uppercase; }
.inventory-page .inventory-operation-form :is(input, select) { width: 100%; min-height: 2.75rem; border-radius: .62rem; color: var(--text); background: var(--organization-surface, var(--surface)); font-size: .9rem; font-weight: 650; letter-spacing: normal; text-transform: none; }
.inventory-page .inventory-operation-form :is(input, select):focus { border-color: var(--organization-primary, var(--brand)); outline: 3px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 22%, transparent); }
.inventory-page .inventory-ean-form { grid-template-columns: minmax(16rem, 1.35fr) minmax(12rem, .65fr) auto; align-items: end; }
.inventory-page .inventory-movement-form { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; }
.inventory-page .inventory-movement-form .button { justify-self: start; min-width: 12rem; }
.inventory-page .inventory-create-item-form { display: grid; grid-template-columns: minmax(15rem, 1.4fr) minmax(9rem, .6fr) minmax(11rem, .7fr) auto; gap: .75rem; align-items: end; margin-bottom: 1rem; padding: .85rem; border: 1px solid color-mix(in srgb, var(--line) 78%, transparent); border-radius: .8rem; background: color-mix(in srgb, var(--organization-page, var(--page)) 72%, var(--organization-surface, var(--surface))); }
.inventory-page .inventory-create-item-form label, .inventory-page .inventory-card form label { display: grid; gap: .35rem; min-width: 0; color: var(--muted); font-size: .75rem; font-weight: 850; letter-spacing: .035em; text-transform: uppercase; }
.inventory-page .inventory-create-item-form :is(input, select), .inventory-page .inventory-card form :is(input, select) { width: 100%; min-height: 2.7rem; border-radius: .62rem; color: var(--text); background: var(--organization-surface, var(--surface)); font-size: .9rem; font-weight: 650; letter-spacing: normal; text-transform: none; }
.inventory-page .inventory-grid { gap: .75rem; }
.inventory-page .inventory-card { display: grid; gap: .75rem; padding: 1rem; background: color-mix(in srgb, var(--organization-surface, var(--surface)) 94%, var(--organization-primary, var(--brand)) 6%); }
.inventory-page .inventory-card header { padding-bottom: .65rem; border-bottom: 1px solid var(--line); }
.inventory-page .inventory-card h3 { margin: 0 0 .15rem; }
.inventory-page .inventory-card form { display: grid; grid-template-columns: minmax(10rem, .75fr) minmax(14rem, 1.25fr) minmax(10rem, .75fr) auto; gap: .65rem; align-items: end; padding-top: .2rem; }
.inventory-page > .module-card { margin: 0; border-radius: 1rem; }
.inventory-page > .module-card > summary { padding: 1rem 1.15rem; }
.inventory-page .inventory-card { border-radius: .85rem; }
.inventory-page :where(.inventory-card, .inventory-zone-card) { gap: .5rem; padding: .7rem; }
.inventory-page .inventory-zone-card .form-grid { padding: .55rem; }
.inventory-page .inventory-product-links { gap: .45rem; }
.inventory-page .inventory-product-links .document-row { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(12rem, 1.25fr) auto; gap: .55rem; padding: .55rem .65rem; }
.inventory-page .inventory-product-links .document-row select { width: 100%; color: var(--organization-field-ink, var(--ink)); background: var(--organization-field, var(--surface)); border-color: var(--line); }

.stock-network-legend { display: flex; gap: .8rem; flex-wrap: wrap; font-size: .75rem; }
.stock-network-legend span { display: flex; align-items: center; gap: .3rem; }
.stock-network-legend i { width: .8rem; height: .8rem; border: 2px solid var(--organization-primary, var(--accent-color)); border-radius: .2rem; background: var(--organization-surface, var(--surface)); }
.stock-network-legend i.is-external { border-style: dashed; border-color: var(--organization-accent, var(--accent-color)); }
.stock-network { min-height: 12rem; overflow: auto; border: 1px solid var(--line); border-radius: .8rem; background: color-mix(in srgb, var(--organization-page, var(--page)) 82%, var(--organization-surface, var(--surface))); }
.stock-network svg { display: block; min-width: 100%; min-height: 12rem; }
.stock-network .stock-edge { fill: none; stroke: color-mix(in srgb, var(--organization-primary, var(--accent-color)) 70%, var(--organization-surface-ink, var(--ink))); stroke-width: 2.25; }
.stock-network .stock-edge.is-hierarchy { stroke: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 42%, var(--organization-surface, var(--surface))); stroke-dasharray: 5 5; }
.stock-network .stock-node rect { fill: var(--organization-surface, var(--surface)); stroke: var(--organization-primary, var(--accent-color)); stroke-width: 2; }
.stock-network .stock-node.is-external rect { stroke: var(--organization-accent, var(--accent-color)); stroke-dasharray: 6 4; }
.stock-network .stock-node text { fill: var(--organization-surface-ink, var(--ink)); pointer-events: none; }
.stock-network .stock-node .stock-node-name { font-size: 13px; font-weight: 800; }
.stock-network .stock-node .stock-node-meta { font-size: 10px; opacity: .72; }
.stock-network .empty-state { padding: 2rem; text-align: center; }

.mailbox-page { display: grid; gap: 1rem; }
.mailbox-addresses { display: flex; gap: .55rem; overflow-x: auto; padding-bottom: .2rem; }
.mailbox-addresses a { display: grid; flex: 0 0 auto; gap: .1rem; min-width: 12rem; padding: .65rem .8rem; color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); border: 1px solid var(--line); border-radius: .7rem; text-decoration: none; }
.mailbox-addresses a.is-active { border-color: var(--organization-primary, var(--brand)); box-shadow: inset 0 0 0 1px var(--organization-primary, var(--brand)); }
.mailbox-addresses small, .mailbox-config-list small { opacity: .7; }
.mailbox-row-subject { display: flex; align-items: center; gap: .45rem; min-width: 0; }
.mailbox-row-subject b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mailbox-row-subject em { flex: 0 0 auto; padding: .1rem .38rem; border-radius: 999px; color: var(--organization-primary, var(--primary)); background: color-mix(in srgb, var(--organization-primary, var(--primary)) 11%, transparent); font-size: .68rem; font-style: normal; font-weight: 750; }
.mailbox-layout { display: grid; grid-template-columns: minmax(18rem, 1fr) minmax(20rem, .85fr); gap: 1rem; align-items: start; }
.mailbox-list, .mailbox-compose { min-width: 0; }
.mailbox-row { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr) auto; gap: .6rem; align-items: center; padding: .65rem .2rem; color: inherit; border-bottom: 1px solid var(--line); text-decoration: none; }
.mailbox-row > span:nth-child(2) { display: grid; min-width: 0; }
.mailbox-row small { overflow: hidden; opacity: .72; text-overflow: ellipsis; white-space: nowrap; }
.mailbox-row time { opacity: .65; font-size: .75rem; }
.mailbox-row.is-unread { border-inline-start: 3px solid var(--organization-accent, var(--accent-color)); padding-inline-start: .45rem; }
.mailbox-message dl { display: grid; gap: .35rem; margin: 0 0 1rem; }
.mailbox-message dl div { display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: .5rem; }
.mailbox-message dt { font-weight: 750; }
.mailbox-message dd { margin: 0; overflow-wrap: anywhere; }
.mailbox-message-body { padding-top: 1rem; border-top: 1px solid var(--line); white-space: normal; }
.mailbox-config-list { display: grid; gap: .5rem; }
.mailbox-config-list > details { color: var(--organization-surface-ink, var(--ink)); background: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 4%, var(--organization-surface, var(--surface))); border: 1px solid var(--line); border-radius: .55rem; }
.mailbox-config-list > details > summary { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(13rem, 1.5fr) auto; gap: .7rem; padding: .65rem; cursor: pointer; }
.mailbox-config-list > details > form { padding: 0 .65rem .65rem; border-top: 1px solid var(--line); }
.mailbox-status { justify-self: end; padding: .18rem .5rem; border-radius: 999px; color: var(--organization-muted, var(--muted)); background: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 7%, transparent); font-size: .75rem; font-weight: 750; }
.mailbox-status.is-active { color: var(--organization-primary, var(--primary)); background: color-mix(in srgb, var(--organization-primary, var(--primary)) 13%, var(--organization-surface, var(--surface))); }
.mailbox-access-fieldset { display: grid; gap: .6rem; padding: .8rem; border: 1px solid var(--line); border-radius: .7rem; background: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 2.5%, var(--organization-surface, var(--surface))); }
.mailbox-access-fieldset legend { padding: 0 .35rem; font-weight: 800; color: var(--organization-surface-ink, var(--ink)); }
.mailbox-access-help { margin: 0; color: var(--organization-muted, var(--muted)); font-size: .82rem; }
.mailbox-role-picker { position: relative; display: grid; gap: .55rem; }
.mailbox-role-search { display: grid; grid-template-columns: auto minmax(12rem, 22rem); align-items: center; justify-content: start; gap: .55rem; margin: 0; font-size: .8rem; font-weight: 750; }
.mailbox-role-search input { min-height: 2.25rem; padding-block: .4rem; }
.mailbox-role-results { position: absolute; z-index: 5; top: 3.9rem; left: 0; display: grid; width: min(28rem, 100%); max-height: 14rem; overflow: auto; padding: .35rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--organization-surface, var(--surface)); box-shadow: 0 .6rem 1.5rem color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 18%, transparent); }
.mailbox-role-result { display: flex; justify-content: space-between; gap: .75rem; width: 100%; padding: .55rem .65rem; border: 0; border-radius: .4rem; color: var(--organization-surface-ink, var(--ink)); background: transparent; text-align: left; cursor: pointer; }
.mailbox-role-result:hover, .mailbox-role-result:focus-visible { background: color-mix(in srgb, var(--organization-primary, var(--primary)) 12%, transparent); }
.mailbox-role-result small { color: var(--organization-primary, var(--primary)); font-weight: 800; }
.mailbox-role-matrix { overflow: hidden; border: 1px solid var(--line); border-radius: .65rem; background: var(--organization-surface, var(--surface)); }
.mailbox-role-matrix-head, .mailbox-role-row { display: grid; grid-template-columns: minmax(11rem, 1fr) repeat(3, minmax(5.6rem, .58fr)) 2.75rem; align-items: stretch; }
.mailbox-role-matrix-head { color: var(--organization-muted, var(--muted)); background: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 6%, var(--organization-surface, var(--surface))); font-size: .72rem; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; }
.mailbox-role-matrix-head > span { display: flex; justify-content: center; align-items: center; gap: .3rem; min-height: 2.25rem; padding: .35rem .55rem; text-align: center; }
.mailbox-role-matrix-head > span:first-child { justify-content: flex-start; }
.mailbox-role-matrix-head small { font: inherit; }
.mailbox-role-row { border-top: 1px solid var(--line); transition: background-color .16s ease; }
.mailbox-role-row:has(input:checked) { background: color-mix(in srgb, var(--organization-primary, var(--primary)) 5%, var(--organization-surface, var(--surface))); }
.mailbox-role-row > strong { display: flex; align-items: center; min-width: 0; padding: .55rem .65rem; font-size: .86rem; line-height: 1.25; }
.mailbox-role-row > label { position: relative; display: grid; place-items: center; min-height: 2.65rem; margin: 0; border-left: 1px solid var(--line); cursor: pointer; }
.mailbox-role-row > label:hover { background: color-mix(in srgb, var(--organization-primary, var(--primary)) 8%, transparent); }
.mailbox-role-row input[type="checkbox"] { width: 1.05rem; min-width: 1.05rem; height: 1.05rem; min-height: 0; margin: 0; padding: 0; accent-color: var(--organization-primary, var(--primary)); }
.mailbox-role-row label > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.mailbox-role-remove { display: grid; place-items: center; min-height: 2.65rem; padding: 0; border: 0; border-left: 1px solid var(--line); border-radius: 0; color: var(--organization-muted, var(--muted)); background: transparent; font-size: 1.15rem; cursor: pointer; }
.mailbox-role-remove:hover, .mailbox-role-remove:focus-visible { color: var(--danger, #b42318); background: color-mix(in srgb, var(--danger, #b42318) 10%, transparent); }
.mailbox-role-empty { margin: 0; padding: .8rem; color: var(--organization-muted, var(--muted)); text-align: center; font-size: .82rem; }
.mailbox-form-actions { display: flex; justify-content: flex-end; }
.compact-checks { display: flex; flex-wrap: wrap; gap: .55rem 1rem; }
.compact-checks label { display: inline-flex; gap: .4rem; align-items: center; }
.compact-checks input[type="checkbox"] { width: 1rem; height: 1rem; margin: 0; }

@media (max-width: 850px) { .mailbox-layout { grid-template-columns: 1fr; } .mailbox-config-list > details > summary { grid-template-columns: 1fr; } .mailbox-status { justify-self: start; } }
@media (max-width: 620px) {
  .mailbox-access-fieldset { padding: .55rem; }
  .mailbox-role-search { grid-template-columns: 1fr; }
  .mailbox-role-results { top: 4.8rem; }
  .mailbox-role-matrix-head, .mailbox-role-row { grid-template-columns: minmax(8.5rem, 1fr) repeat(3, 3.2rem) 2.5rem; }
  .mailbox-role-matrix-head > span { padding-inline: .2rem; }
  .mailbox-role-matrix-head small { display: none; }
  .mailbox-role-row > strong { padding-inline: .5rem; font-size: .8rem; }
}

/* Collaborative mailbox: intentionally composed only from tenant color tokens. */
.mailbox-header { display: flex; justify-content: space-between; gap: 1rem; align-items: end; padding: 1rem 1.15rem; color: var(--organization-surface-ink, var(--ink)); background: linear-gradient(135deg, color-mix(in srgb, var(--organization-primary, var(--brand)) 10%, var(--organization-surface, var(--surface))), var(--organization-surface, var(--surface))); border: 1px solid var(--line); border-radius: 1rem; }
.mailbox-header h1, .mailbox-header p { margin: 0; }
.mailbox-header h1 { font-size: clamp(1.65rem, 3vw, 2.4rem); }
.mailbox-header p:not(.eyebrow) { margin-top: .25rem; opacity: .72; }
.mailbox-shell { display: grid; grid-template-columns: 13.5rem minmax(18rem, .8fr) minmax(23rem, 1.15fr); min-height: 37rem; overflow: hidden; color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); border: 1px solid var(--line); border-radius: 1rem; box-shadow: 0 16px 38px color-mix(in srgb, var(--organization-page-ink, var(--ink)) 10%, transparent); }
.mailbox-sidebar { display: grid; align-content: start; gap: 1.15rem; padding: .9rem; background: color-mix(in srgb, var(--organization-primary, var(--brand)) 6%, var(--organization-surface, var(--surface))); border-right: 1px solid var(--line); }
.mailbox-new { width: 100%; justify-content: center; }
.mailbox-sidebar-section { display: grid; gap: .25rem; }
.mailbox-sidebar-title { padding: .35rem .55rem; opacity: .55; font-size: .68rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.mailbox-sidebar-section > a { display: flex; gap: .55rem; align-items: center; min-width: 0; padding: .55rem; color: inherit; border-radius: .55rem; text-decoration: none; }
.mailbox-sidebar-section > a:hover { background: color-mix(in srgb, var(--organization-primary, var(--brand)) 9%, transparent); }
.mailbox-sidebar-section > a.is-active { color: var(--organization-primary-ink, #fff); background: var(--organization-primary, var(--brand)); }
.mailbox-address > span:last-child { display: grid; min-width: 0; }
.mailbox-address small { overflow: hidden; opacity: .68; font-size: .68rem; text-overflow: ellipsis; }
.mailbox-address-mark, .mailbox-sender-mark { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; color: var(--organization-primary-ink, #fff); background: var(--organization-primary, var(--brand)); border-radius: 50%; font-weight: 850; }
.mailbox-sidebar-section > a.is-active .mailbox-address-mark { color: var(--organization-primary, var(--brand)); background: var(--organization-primary-ink, #fff); }
.mailbox-inbox, .mailbox-compose { min-width: 0; background: var(--organization-surface, var(--surface)); }
.mailbox-inbox { border-right: 1px solid var(--line); }
.mailbox-pane-heading { display: flex; justify-content: space-between; gap: .75rem; align-items: center; min-height: 5rem; padding: .85rem 1rem; border-bottom: 1px solid var(--line); }
.mailbox-pane-heading h2, .mailbox-pane-heading .eyebrow { margin: 0; }
.mailbox-pane-heading h2 { font-size: 1.15rem; }
.mailbox-count, .mailbox-compose-icon { display: grid; min-width: 2rem; height: 2rem; padding: 0 .45rem; place-items: center; color: var(--organization-primary, var(--brand)); background: color-mix(in srgb, var(--organization-primary, var(--brand)) 12%, transparent); border-radius: 999px; font-weight: 850; }
.mailbox-rows { max-height: 42rem; overflow-y: auto; }
.mailbox-shell .mailbox-row { grid-template-columns: 2.25rem minmax(0, 1fr); gap: .65rem; padding: .8rem 1rem; border: 0; border-bottom: 1px solid var(--line); }
.mailbox-shell .mailbox-row:hover { background: color-mix(in srgb, var(--organization-primary, var(--brand)) 5%, var(--organization-surface, var(--surface))); }
.mailbox-shell .mailbox-row.is-selected { background: color-mix(in srgb, var(--organization-primary, var(--brand)) 11%, var(--organization-surface, var(--surface))); box-shadow: inset 3px 0 0 var(--organization-primary, var(--brand)); }
.mailbox-shell .mailbox-row.is-unread { padding-inline-start: .75rem; background: color-mix(in srgb, var(--organization-accent, var(--accent-color)) 7%, var(--organization-surface, var(--surface))); border-left: .25rem solid var(--organization-accent, var(--accent-color)); }
.mailbox-sender-mark.is-outgoing { color: var(--organization-accent-ink, #fff); background: var(--organization-accent, var(--accent-color)); }
.mailbox-row-main { display: grid; gap: .15rem; min-width: 0; }
.mailbox-row-main > span { display: flex; justify-content: space-between; gap: .5rem; min-width: 0; }
.mailbox-row-main :is(strong, b, small) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mailbox-row-main strong { font-size: .79rem; }
.mailbox-row-main b { font-size: .86rem; }
.mailbox-row-main small { opacity: .58; }
.mailbox-row-main time { flex: 0 0 auto; opacity: .52; font-size: .67rem; }
.mailbox-empty { display: grid; justify-items: center; gap: .3rem; padding: 4rem 1rem; text-align: center; }
.mailbox-empty > span { font-size: 2rem; opacity: .4; }
.mailbox-empty p { margin: 0; opacity: .6; }
.mailbox-compose-form { display: grid; gap: .75rem; padding: 1rem; }
.mailbox-compose-form > label, .mailbox-cc label { display: grid; gap: .3rem; }
.mailbox-compose-form label > span, .mailbox-cc summary { opacity: .68; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.mailbox-from { grid-template-columns: 2.4rem minmax(0, auto) 1fr; align-items: baseline; padding: .65rem .75rem; background: color-mix(in srgb, var(--organization-primary, var(--brand)) 6%, var(--organization-field, var(--surface))); border: 1px solid var(--line); border-radius: .6rem; }
.mailbox-from small { justify-self: end; opacity: .62; }
.mailbox-cc summary { padding: .25rem 0; cursor: pointer; }
.mailbox-cc label { margin-top: .5rem; }
.mailbox-body textarea { min-height: 14rem; resize: vertical; }
.mailbox-compose-footer { display: flex; justify-content: space-between; gap: .75rem; align-items: center; }
.mailbox-compose-footer > span { max-width: 15rem; opacity: .55; font-size: .7rem; }
.mailbox-compose-footer > div, .mailbox-thread-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.mailbox-drafts > summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; font-weight: 800; }
.mailbox-drafts > summary small { display: grid; place-items: center; min-width: 1.45rem; height: 1.45rem; padding: 0 .35rem; border-radius: 999px; color: var(--organization-primary-ink, var(--surface)); background: var(--organization-primary, var(--brand)); }
.mailbox-draft-list { display: grid; gap: .25rem; }
.mailbox-draft-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; border: 1px solid transparent; border-radius: .6rem; }
.mailbox-draft-item:hover, .mailbox-draft-item.is-active { border-color: color-mix(in srgb, var(--organization-primary, var(--brand)) 42%, var(--line)); background: color-mix(in srgb, var(--organization-primary, var(--brand)) 8%, transparent); }
.mailbox-draft-item > a { display: grid; min-width: 0; gap: .12rem; padding: .5rem .25rem .5rem .55rem; color: inherit; text-decoration: none; }
.mailbox-draft-item strong, .mailbox-draft-item small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mailbox-draft-item small { opacity: .65; }
.mailbox-draft-item button { width: 1.8rem; height: 1.8rem; margin-right: .25rem; padding: 0; color: inherit; background: transparent; border: 0; border-radius: 999px; font-size: 1.15rem; cursor: pointer; }
.mailbox-draft-item button:hover { color: var(--danger); background: color-mix(in srgb, var(--danger) 12%, transparent); }
.trusted-device-choice { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .65rem; padding: .75rem; border: 1px solid var(--line); border-radius: .7rem; background: color-mix(in srgb, var(--surface) 90%, var(--page)); cursor: pointer; }
.trusted-device-choice input { width: 1.15rem; height: 1.15rem; margin-top: .1rem; accent-color: var(--brand); }
.trusted-device-choice span { display: grid; gap: .15rem; }
.trusted-device-choice small { color: var(--muted); font-weight: 500; }
.mailbox-preview { display: grid; align-content: start; min-width: 0; background: var(--organization-surface, var(--surface)); }
.mailbox-preview-heading { padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); }
.mailbox-preview-heading h2 { margin: .2rem 0 0; overflow-wrap: anywhere; font-size: 1.05rem; }
.mailbox-preview > header { display: grid; grid-template-columns: 2.4rem minmax(0, 1fr) auto; gap: .65rem; align-items: center; padding: .9rem 1.2rem; border-bottom: 1px solid var(--line); }
.mailbox-preview > header > div { display: grid; min-width: 0; }
.mailbox-preview > header small, .mailbox-preview > header time { overflow: hidden; opacity: .6; font-size: .72rem; text-overflow: ellipsis; }
.mailbox-preview .mailbox-message-details { margin: .7rem 1.2rem 0; }
.mailbox-preview .mailbox-message-body { min-height: 14rem; margin: 0 1.2rem; padding: 1.2rem 0; line-height: 1.6; overflow-wrap: anywhere; }
.mailbox-preview > footer { display: flex; flex-wrap: wrap; gap: .5rem; padding: .9rem 1.2rem; border-top: 1px solid var(--line); }
.mailbox-preview-empty { display: grid; place-items: center; align-content: center; min-height: 25rem; padding: 2rem; color: var(--organization-muted, var(--muted)); text-align: center; }
.mailbox-preview-empty > span { font-size: 2rem; }
.mailbox-preview-empty p { margin: .25rem 0 0; }
.mailbox-reading { color: var(--organization-surface-ink, var(--ink)); background: var(--organization-surface, var(--surface)); border: 1px solid var(--line); border-radius: 1rem; box-shadow: 0 16px 38px color-mix(in srgb, var(--organization-page-ink, var(--ink)) 10%, transparent); }
.mailbox-reading > header { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto; gap: .75rem; align-items: center; padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); }
.mailbox-reading > header > div { display: grid; }
.mailbox-reading > header small, .mailbox-reading > header time { opacity: .6; }
.mailbox-message-details { margin: .8rem 1.2rem 0; }
.mailbox-message-details summary { cursor: pointer; opacity: .65; font-size: .75rem; }
.mailbox-message-details dl { display: grid; gap: .3rem; padding: .6rem; background: color-mix(in srgb, var(--organization-surface-ink, var(--ink)) 4%, var(--organization-surface, var(--surface))); border-radius: .5rem; }
.mailbox-message-details dl div { display: grid; grid-template-columns: 4rem 1fr; }
.mailbox-message-details dd { margin: 0; }
.mailbox-reading .mailbox-message-body { min-height: 16rem; margin: 0 1.2rem; padding: 1.4rem 0; line-height: 1.65; }
.mailbox-attachment-input input[type="file"] { padding: .65rem; border: 1px dashed var(--line); border-radius: .7rem; background: var(--surface-soft); color: var(--text); }
.mailbox-attachment-input small { color: var(--muted); font-size: .75rem; }
.mailbox-attachments { display: grid; gap: .45rem; margin: 0 1.2rem 1rem; padding: .9rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--surface-soft); }
.mailbox-attachments > strong { font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.mailbox-attachments a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .5rem; padding: .55rem .65rem; border-radius: .55rem; color: var(--text); text-decoration: none; background: var(--surface); border: 1px solid var(--line); }
.mailbox-attachments a:hover { border-color: var(--accent); }
.mailbox-attachments a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mailbox-attachments a small { color: var(--muted); }
.mailbox-color-dot { width: .65rem; height: .65rem; border-radius: 999px; background: var(--mailbox-item-color); flex: 0 0 auto; }
.mailbox-tag-panel { display: block; }
.mailbox-tag-panel > summary { display: flex; justify-content: space-between; align-items: center; padding: .35rem .55rem; cursor: pointer; opacity: .68; font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.mailbox-tag-panel > summary small { display: grid; min-width: 1.35rem; height: 1.35rem; place-items: center; border-radius: 999px; background: color-mix(in srgb, var(--organization-primary, var(--brand)) 12%, transparent); }
.mailbox-tag-cloud { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: .35rem .2rem; }
.mailbox-tag { display: inline-flex; align-items: center; gap: .35rem; width: auto; min-height: 1.8rem; padding: .22rem .65rem .22rem .42rem; border: 1px solid color-mix(in srgb, var(--mailbox-item-color) 45%, var(--line)); border-radius: 999px; background: linear-gradient(135deg, color-mix(in srgb, var(--mailbox-item-color) 17%, var(--organization-surface, var(--surface))), color-mix(in srgb, var(--mailbox-item-color) 6%, var(--organization-surface, var(--surface)))); color: var(--organization-surface-ink, var(--text)); box-shadow: 0 2px 7px color-mix(in srgb, var(--mailbox-item-color) 13%, transparent); font-size: .72rem; font-weight: 750; text-decoration: none; cursor: pointer; }
.mailbox-tag i { width: .48rem; height: .48rem; flex: 0 0 auto; border-radius: 50%; background: var(--mailbox-item-color); box-shadow: 0 0 0 2px color-mix(in srgb, var(--mailbox-item-color) 18%, transparent); }
.mailbox-tag.is-active { background: var(--mailbox-item-color); color: #fff; }
.mailbox-tag.is-active i { background: currentColor; }
.mailbox-tag-hint { display: block; padding: .2rem .35rem 0; opacity: .5; font-size: .63rem; line-height: 1.3; }
.mailbox-organizer { margin-top: .7rem; border-top: 1px solid var(--line); padding-top: .65rem; }
.mailbox-organizer summary { cursor: pointer; color: var(--muted); font-weight: 700; }
.mailbox-organizer form { display: grid; grid-template-columns: minmax(0, 1fr) 2.2rem; gap: .35rem; margin-top: .55rem; }
.mailbox-organizer form label, .mailbox-organizer form button { grid-column: 1 / -1; }
.mailbox-organizer input[type="color"] { width: 2.2rem; min-height: 2.2rem; padding: .15rem; }
.mailbox-local-actions { display: grid; gap: .65rem; margin: 0 1.2rem 1rem; padding: .8rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--surface-soft); }
.mailbox-local-actions > form { display: flex; gap: .45rem; }
.mailbox-local-actions select { min-width: 0; flex: 1; }
.mailbox-action-tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.mailbox-action-tags form { margin: 0; }
.mailbox-tag-picker { width: fit-content; }
.mailbox-tag-picker > summary { display: inline-flex; align-items: center; min-height: 2rem; padding: .35rem .7rem; border: 1px solid var(--line); border-radius: 999px; background: var(--organization-field, var(--surface)); cursor: pointer; font-size: .78rem; font-weight: 800; }
.mailbox-tag-picker[open] { width: 100%; }
.mailbox-tag-picker[open] > summary { margin-bottom: .55rem; }
.mailbox-row.is-tag-drop-target { outline: 2px dashed var(--organization-accent, var(--accent-color)); outline-offset: -4px; background: color-mix(in srgb, var(--organization-accent, var(--accent-color)) 12%, var(--organization-surface, var(--surface))); }
.mailbox-row.is-tag-drop-pending { opacity: .58; }
.mailbox-row.is-tag-drop-success { box-shadow: inset 4px 0 0 #16a34a; }
.mailbox-project-sharing { border-top: 1px solid var(--line); padding-top: .55rem; }
.mailbox-project-sharing summary { cursor: pointer; font-weight: 700; }
.mailbox-project-sharing form { display: flex; align-items: center; gap: .45rem; margin-top: .45rem; }
.mailbox-project-sharing select { min-width: 0; flex: 1; }
.project-shared-mail-list { display: grid; gap: .45rem; margin-top: .75rem; }
.project-shared-mail-list > a { display: flex; align-items: center; gap: .65rem; padding: .65rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--surface-soft); color: var(--text); text-decoration: none; }
.project-shared-mail-list > a > span:last-child { display: grid; min-width: 0; }
.project-shared-mail-list small { color: var(--muted); }
.mailbox-reading > footer form, .mailbox-preview > footer form { display: inline-flex; gap: .35rem; }
.mailbox-contact-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); gap: 1rem; }
.mailbox-contact-search { display: grid; gap: .3rem; margin-bottom: .8rem; }
.mailbox-contact-list { display: grid; gap: .45rem; }
.mailbox-contact-browser { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .65rem; align-items: start; }
.mailbox-contact-alphabet { position: sticky; top: .6rem; display: grid; gap: .25rem; max-height: 70vh; overflow-y: auto; }
.mailbox-contact-alphabet .button { min-width: 2.4rem; padding: .3rem .45rem; }
.mailbox-contact-organization-filters { display: flex; gap: .4rem; margin: -.35rem 0 1rem; padding-bottom: .25rem; overflow-x: auto; }
.mailbox-contact-organization-filters .button { flex: 0 0 auto; }
.mailbox-contact-card { border: 1px solid var(--line); border-radius: .7rem; background: var(--surface-soft); overflow: hidden; }
.mailbox-contact-card > summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: .65rem; padding: .65rem; cursor: pointer; list-style: none; }
.mailbox-contact-card > summary::-webkit-details-marker { display: none; }
.mailbox-contact-card > summary::after { content: '›'; color: var(--muted); font-size: 1.2rem; transform: rotate(90deg); transition: transform .15s ease; }
.mailbox-contact-card[open] > summary::after { transform: rotate(-90deg); }
.mailbox-contact-summary, .mailbox-contact-collapsed-body > div:first-child { display: grid; min-width: 0; }
.mailbox-contact-collapsed-body { display: flex; justify-content: space-between; gap: .75rem; padding: .65rem; border-top: 1px solid var(--line); background: var(--surface); }
.mailbox-contact-create-form { margin-top: 1rem; }
.mailbox-contact-list a, .mailbox-contact-list small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.mailbox-contact-shares { display: grid; gap: .5rem; }
.mailbox-contact-toolbar { display: grid; grid-template-columns: minmax(18rem, 1fr) minmax(12rem, .35fr) minmax(12rem, .35fr); gap: .75rem; margin: 1rem 0; padding: .85rem; border: 1px solid color-mix(in srgb, var(--line) 76%, transparent); border-radius: .9rem; background: color-mix(in srgb, var(--surface) 86%, var(--organization-primary, var(--brand)) 14%); box-shadow: 0 .35rem 1.1rem rgb(0 0 0 / .08); }
.mailbox-contact-toolbar label { display: grid; gap: .38rem; min-width: 0; color: var(--muted); font-size: .74rem; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; }
.mailbox-contact-toolbar label > span { display: flex; gap: .35rem; align-items: center; min-height: 1.1rem; }
.mailbox-contact-toolbar input, .mailbox-contact-toolbar select { width: 100%; min-height: 2.85rem; border: 1px solid color-mix(in srgb, var(--line) 82%, white 18%); border-radius: .65rem; padding: .62rem .75rem; color: var(--text); background: var(--surface); font-size: .93rem; font-weight: 650; letter-spacing: normal; text-transform: none; box-shadow: inset 0 1px 0 rgb(255 255 255 / .035); }
.mailbox-contact-toolbar input:focus, .mailbox-contact-toolbar select:focus { border-color: var(--organization-primary, var(--brand)); outline: 3px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 24%, transparent); }
.mailbox-contact-search-field input { padding-left: .85rem; }
.mailbox-contact-directory { min-width: 0; }
.mailbox-contact-main { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .65rem; align-items: center; min-width: 0; color: inherit !important; text-decoration: none; }
.mailbox-contact-main > span:last-child { display: grid; min-width: 0; }
.mailbox-contact-actions { display: flex !important; grid-auto-flow: column; gap: .35rem; }
.mailbox-contact-list [data-contact-heading] { margin: .8rem 0 .15rem; padding-bottom: .25rem; border-bottom: 1px solid var(--line); color: var(--organization-primary, var(--brand)); font-size: .92rem; }
.mailbox-contact-detail { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(20rem, .8fr); gap: 1rem; }
.mailbox-contact-profile { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; align-items: start; }
.mailbox-contact-avatar { display: grid; width: 4rem; height: 4rem; place-items: center; border-radius: 1rem; color: white; background: var(--organization-primary, var(--brand)); font-size: 1.6rem; font-weight: 900; }
.mailbox-contact-profile dl { display: grid; gap: .5rem; margin: 1rem 0 0; }
.mailbox-contact-profile dl div { display: grid; grid-template-columns: 6rem 1fr; gap: .5rem; }
.mailbox-contact-profile dt { color: var(--muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.mailbox-contact-profile dd { margin: 0; }
.mailbox-contact-private-notes { padding: .65rem; border-left: 3px solid var(--organization-primary, var(--brand)); border-radius: .4rem; background: var(--surface-soft); }
.mailbox-contact-profile-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; }
.mailbox-contact-profile-actions form { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; }
.mailbox-contact-profile-actions label { display: grid; gap: .25rem; }
.mailbox-check-list { display: grid; gap: .3rem; max-height: 14rem; overflow: auto; padding: .45rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--surface-soft); }
.mailbox-check-list label { display: flex; align-items: center; gap: .4rem; font-size: .85rem; }
@media (max-width: 850px) { .mailbox-contact-layout, .mailbox-contact-detail, .mailbox-contact-toolbar { grid-template-columns: 1fr; } .mailbox-contact-browser { grid-template-columns: 1fr; } .mailbox-contact-alphabet { position: static; display: flex; overflow-x: auto; } .mailbox-contact-collapsed-body { align-items: flex-start; flex-direction: column; } }
@media (max-width: 700px) {
  .profile-terrain-header { align-items: stretch; flex-direction: column; }
  .profile-terrain-header > .badge { align-self: flex-start; }
  .profile-terrain-downloads { grid-template-columns: 1fr; }
  .profile-terrain-download { grid-template-rows: auto; }
  .profile-terrain-choice-notice { grid-template-columns: 1fr; }
  .profile-device-pairing { grid-template-columns: 1fr; }
  .profile-device-pairing-actions { display: grid; }
  .profile-device-pairing-actions .button { width: 100%; }
  .profile-device-pairing-qr { width: min(100%, 15rem); justify-self: center; }
  .profile-device-list article { align-items: stretch; flex-direction: column; }
  .profile-device-list article .button { width: 100%; }
}
@media (max-width: 850px) { .inventory-page .inventory-ean-form, .inventory-page .inventory-movement-form, .inventory-page .inventory-create-item-form, .inventory-page .inventory-card form { grid-template-columns: 1fr; } .inventory-page .inventory-movement-form .button, .inventory-page .inventory-create-item-form .button, .inventory-page .inventory-card form .button { width: 100%; } }
.mailbox-reading > footer { padding: 1rem 1.2rem; border-top: 1px solid var(--line); }

@media (max-width: 1100px) { .mailbox-shell { grid-template-columns: 12rem minmax(18rem, 1fr); } .mailbox-compose { grid-column: 1 / -1; border-top: 1px solid var(--line); } .mailbox-preview { display: none; } }
@media (max-width: 720px) { .mailbox-header { align-items: start; } .mailbox-shell { display: block; } .mailbox-sidebar { border-right: 0; border-bottom: 1px solid var(--line); } .mailbox-sidebar-section { grid-template-columns: repeat(3, minmax(0, 1fr)); } .mailbox-sidebar-title { grid-column: 1 / -1; } .mailbox-sidebar-section > a { justify-content: center; font-size: .76rem; } .mailbox-address { justify-content: start !important; } .mailbox-inbox { border-right: 0; } .mailbox-from { grid-template-columns: 1fr; } .mailbox-from small { justify-self: start; } .mailbox-compose-footer { align-items: stretch; flex-direction: column; } }

@media (max-width: 720px) {
  .inventory-page .agenda-section, .inventory-page .module-card { padding: .7rem; }
  .inventory-page .inventory-product-links .document-row { grid-template-columns: 1fr; }
  .stock-network svg { min-width: 48rem; }
  .inventory-ean-form { grid-template-columns: 1fr; }
}

/* Fiscal attestations: compact, action-oriented admin workflow. */
.fiscal-attestation-admin-header { margin-bottom: 1rem; }
.fiscal-attestation-admin-header h1 { margin-bottom: .3rem; }
.fiscal-attestation-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.fiscal-attestation-summary article { display: grid; gap: .15rem; padding: .85rem 1rem; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.fiscal-attestation-summary strong { font-size: 1.55rem; line-height: 1; }
.fiscal-attestation-summary span { color: var(--muted); font-size: .78rem; font-weight: 750; }
.fiscal-attestation-summary .is-actionable { border-color: color-mix(in srgb, var(--brand) 45%, var(--line)); background: color-mix(in srgb, var(--brand) 6%, var(--surface)); }
.fiscal-attestation-create { display: grid; grid-template-columns: minmax(15rem, .8fr) minmax(24rem, 1.2fr); gap: 1.2rem; align-items: end; margin-bottom: 1rem; }
.fiscal-attestation-create h2, .fiscal-attestation-create p { margin-block: .2rem; }
.fiscal-attestation-create form { display: grid; grid-template-columns: minmax(13rem, 1fr) auto; gap: .65rem; align-items: end; }
.fiscal-attestation-create label { display: grid; gap: .3rem; color: var(--muted); font-size: .78rem; font-weight: 750; }
.fiscal-attestation-create select { width: 100%; min-height: 2.75rem; color: var(--ink); background: var(--surface); border: 1px solid var(--line); }
.fiscal-attestation-list { display: grid; gap: .75rem; }
.fiscal-attestation-list > header { display: flex; justify-content: space-between; align-items: end; gap: 1rem; padding: .2rem .15rem; }
.fiscal-attestation-list > header :is(h2, p) { margin: 0; }
.fiscal-attestation-total { padding: .3rem .65rem; color: var(--muted); background: var(--surface); border: 1px solid var(--line); border-radius: 999px; font-size: .75rem; font-weight: 800; }
.fiscal-attestation-card { overflow: hidden; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.fiscal-attestation-card > header { display: flex; justify-content: space-between; align-items: start; gap: 1rem; padding: .9rem 1rem .75rem; border-bottom: 1px solid var(--line); }
.fiscal-attestation-card > header :is(h3, p) { margin: 0; }
.fiscal-attestation-card > header h3 { margin-top: .15rem; font-size: 1.05rem; }
.fiscal-attestation-badge { flex: 0 0 auto; padding: .3rem .65rem; color: var(--brand-dark); background: color-mix(in srgb, var(--brand) 10%, var(--surface)); border: 1px solid color-mix(in srgb, var(--brand) 24%, var(--line)); border-radius: 999px; font-size: .72rem; font-weight: 850; }
.fiscal-attestation-status-user_completed .fiscal-attestation-badge, .fiscal-attestation-status-manual_reviewed .fiscal-attestation-badge { color: var(--success); background: color-mix(in srgb, var(--success) 9%, var(--surface)); border-color: color-mix(in srgb, var(--success) 28%, var(--line)); }
.fiscal-attestation-status-revoked .fiscal-attestation-badge { color: var(--danger); background: color-mix(in srgb, var(--danger) 8%, var(--surface)); border-color: color-mix(in srgb, var(--danger) 24%, var(--line)); }
.fiscal-attestation-meta { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 0; margin: 0; border-bottom: 1px solid var(--line); }
.fiscal-attestation-meta div { min-width: 0; padding: .65rem 1rem; }
.fiscal-attestation-meta div + div { border-left: 1px solid var(--line); }
.fiscal-attestation-meta dt { margin-bottom: .15rem; color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.fiscal-attestation-meta dd { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fiscal-attestation-meta code { font-size: .74rem; }
.fiscal-attestation-next-step { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .8rem 1rem; background: color-mix(in srgb, var(--brand) 3%, var(--surface)); }
.fiscal-attestation-next-step > div { min-width: 0; }
.fiscal-attestation-next-step p { margin: .15rem 0 0; color: var(--muted); font-size: .82rem; }
.fiscal-attestation-next-step form { flex: 0 0 auto; margin: 0; }
.fiscal-attestation-corrections { border-top: 1px solid var(--line); }
.fiscal-attestation-corrections > summary { padding: .7rem 1rem; color: var(--muted); cursor: pointer; font-size: .8rem; font-weight: 800; }
.fiscal-attestation-corrections > p { margin: 0; padding: 0 1rem .7rem; }
.fiscal-attestation-correction-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; padding: 0 1rem 1rem; }
.fiscal-attestation-correction-grid form { display: grid; align-content: start; gap: .65rem; padding: .85rem; background: var(--surface-soft, color-mix(in srgb, var(--ink) 3%, var(--surface))); border: 1px solid var(--line); border-radius: .75rem; }
.fiscal-attestation-correction-grid h4 { margin: 0; }
.fiscal-attestation-correction-grid label { display: grid; gap: .3rem; color: var(--muted); font-size: .75rem; font-weight: 750; }
.fiscal-attestation-correction-grid :is(input, textarea) { box-sizing: border-box; width: 100%; color: var(--ink); background: var(--surface); border: 1px solid var(--line); }
.fiscal-attestation-correction-grid button { justify-self: start; }
.fiscal-attestation-empty { display: grid; justify-items: center; gap: .2rem; padding: 2.5rem 1rem; color: var(--muted); background: var(--surface); border: 1px dashed var(--line); border-radius: var(--radius); text-align: center; }
.fiscal-attestation-empty > span { font-size: 1.8rem; opacity: .5; }
.fiscal-attestation-empty p { margin: 0; }

@media (max-width: 900px) {
  .fiscal-attestation-create, .fiscal-attestation-correction-grid { grid-template-columns: 1fr; }
  .fiscal-attestation-meta { grid-template-columns: 1fr; }
  .fiscal-attestation-meta div + div { border-top: 1px solid var(--line); border-left: 0; }
}
@media (max-width: 640px) {
  .fiscal-attestation-summary { grid-template-columns: 1fr; }
  .fiscal-attestation-create form { grid-template-columns: 1fr; }
  .fiscal-attestation-card > header, .fiscal-attestation-next-step { align-items: stretch; flex-direction: column; }
  .fiscal-attestation-next-step form .button { width: 100%; }
}
.sales-external-sharing{display:grid;gap:1rem}.sales-share-create{border:1px solid var(--border,#d9e2e7);border-radius:14px;background:var(--surface-soft,#f7fafb);overflow:hidden}.sales-share-create>summary{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.1rem;cursor:pointer}.sales-share-create>summary span{color:var(--muted,#5f6f78);font-size:.9rem}.sales-share-create .details-content{padding:0 1.1rem 1.1rem}.sales-share-create .field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.85rem}.sales-share-create .field-grid label{display:grid;gap:.35rem;min-width:0}.sales-share-create .field-grid select,.sales-share-create .field-grid input{width:100%;min-width:0}.sales-share-create fieldset{border:0;padding:0;margin:0}.sales-share-create legend{font-weight:700;margin-bottom:.6rem}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.65rem}.checkbox-grid label{display:flex;gap:.55rem;align-items:flex-start;padding:.7rem;border:1px solid var(--border,#d9e2e7);border-radius:10px;background:#fff;color:#172a34}.checkbox-grid input{flex:0 0 auto;margin-top:.15rem}.sales-share-list{display:grid;gap:.65rem}.sales-share-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid var(--border,#d9e2e7);border-radius:12px;background:#fff;color:#172a34}.sales-share-row>div{display:grid;gap:.18rem}.sales-share-row span,.sales-share-row small{color:var(--muted,#5f6f78)}.sales-share-row.is-revoked{opacity:.62;background:var(--surface-soft,#f7fafb)}.external-sales-status{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.75rem 1rem;border-radius:12px;background:#fff;border:1px solid var(--border,#d9e2e7)}.external-sales-status .button{margin-left:auto}.external-sales-metrics article{min-width:180px}.sales-share-breakdown{display:grid;gap:.55rem}.sales-share-breakdown>div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--border,#d9e2e7)}
@media(max-width:720px){.sales-share-row{align-items:flex-start;flex-direction:column}.sales-share-row form,.sales-share-row .button{width:100%}.external-sales-status .button{margin-left:0}.checkbox-grid{grid-template-columns:1fr}}
.external-analytics-filters{display:grid;gap:1rem}.external-analytics-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem;align-items:end}.external-analytics-filter-grid label{display:grid;gap:.35rem;font-weight:700;color:#172a34}.external-analytics-filter-grid :is(input,select){width:100%;min-width:0}.external-analytics-filter-actions{display:flex;gap:.5rem;align-items:center}.external-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.external-chart{min-width:0;padding:1rem;border:1px solid var(--border,#d9e2e7);border-radius:14px;background:linear-gradient(180deg,#fff,#f7fafb)}.external-chart h3,.external-product-peak h3{margin:0 0 1rem}.external-bars{height:240px;display:flex;gap:.5rem;align-items:stretch;overflow-x:auto;padding:.5rem .25rem 0}.external-bar-column{min-width:54px;flex:1;display:grid;grid-template-rows:2.2rem 1fr 1.5rem;gap:.3rem;align-items:end;text-align:center;color:#53636c}.external-bar-column i{display:block;width:min(34px,75%);height:max(3px,var(--bar-size));margin:0 auto;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#0f766e,#073b4c);box-shadow:0 5px 14px rgb(7 59 76 / 18%)}.external-bar-value{align-self:end;font-size:.72rem;font-weight:800;color:#17303a;white-space:nowrap}.external-bar-column small{font-size:.72rem}.external-bars-hours .external-bar-column{min-width:48px}.external-product-peak{scroll-margin-top:5rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border,#d9e2e7)}
.external-category-list{display:grid;gap:.6rem}.external-category-list>details{overflow:hidden;border:1px solid var(--border,#d9e2e7);border-radius:12px;background:#fff}.external-category-list>details>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.85rem 1rem;cursor:pointer;color:#172a34}.external-category-list>details>summary::marker{color:#0f766e}.external-category-list>details>summary span{color:#5f6f78;font-size:.88rem;white-space:nowrap}.external-category-list>details[open]>summary{background:#f2f8f8;border-bottom:1px solid var(--border,#d9e2e7)}.external-category-products{display:grid}.external-category-products-head,.external-category-product{display:grid;grid-template-columns:minmax(0,1fr) 7rem 9rem;gap:.75rem;align-items:center;padding:.65rem 1rem}.external-category-products-head{color:#687982;background:#fbfcfc;font-size:.72rem;font-weight:800;text-transform:uppercase}.external-category-product{color:#17303a;text-decoration:none;border-top:1px solid #edf1f3}.external-category-product:hover,.external-category-product:focus-visible{background:#eef9f8}.external-category-product.is-selected{color:#075f59;background:#e1f5f2}.external-category-product span{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:820px){.external-chart-grid{grid-template-columns:1fr}.external-analytics-filter-actions{grid-column:1/-1}.external-analytics-filter-actions .button{flex:1}.external-bars{height:210px}}
@media(max-width:620px){.external-category-list>details>summary{grid-template-columns:1fr;gap:.2rem}.external-category-list>details>summary span{white-space:normal}.external-category-products-head{display:none}.external-category-product{grid-template-columns:minmax(0,1fr) auto;padding:.7rem .8rem}.external-category-product span:last-child{grid-column:1/-1;color:#5f6f78}.external-category-product span:last-child::before{content:'Montant : '}}

/*
 * Native cashier shell (Android and iOS).
 * The keypad uses only the height it needs (and scrolls if it cannot fit),
 * while the ticket stretches down to the permanently anchored checkout bar.
 */
@media (max-width: 1100px) {
  .sales-terminal[data-machine-mode="1"] {
    box-sizing: border-box;
    display: flex;
    height: 100dvh;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
  }

  .sales-terminal[data-machine-mode="1"] > header,
  .sales-terminal[data-machine-mode="1"] .sales-session {
    flex: 0 0 auto;
  }

  .sales-terminal[data-machine-mode="1"] .sales-layout {
    display: grid;
    height: auto;
    min-height: 0;
    flex: 1 1 auto;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, auto) minmax(132px, 1fr);
    overflow: hidden;
  }

  .sales-terminal[data-machine-mode="1"] .sales-pad-wrap {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .sales-terminal[data-machine-mode="1"] .sales-cart {
    position: relative;
    display: flex;
    height: 100%;
    min-height: 0;
    max-height: none;
    flex-direction: column;
    overflow: hidden;
  }

  .sales-terminal[data-machine-mode="1"] .sales-cart-head,
  .sales-terminal[data-machine-mode="1"] .sales-cart > form {
    flex: 0 0 auto;
  }

  .sales-terminal[data-machine-mode="1"] .sales-cart-lines {
    min-height: 0;
    max-height: none;
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

/* Compact cashier layout for short phones such as the iPhone SE. */
@media (max-width: 480px) and (max-height: 760px) {
  .sales-terminal[data-machine-mode="1"] {
    box-sizing: border-box;
    height: 100dvh;
    min-height: 0;
    padding: 4px;
    overflow: hidden;
  }

  .sales-terminal[data-machine-mode="1"] > header {
    min-height: 34px;
    gap: 4px;
    padding: 3px 5px;
    border-radius: 6px;
  }

  .sales-terminal[data-machine-mode="1"] > header > div {
    min-width: 0;
    flex: 1 1 auto;
  }

  .sales-terminal[data-machine-mode="1"] > header > div strong {
    overflow: hidden;
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .sales-terminal[data-machine-mode="1"] > header > div small,
  .sales-terminal[data-machine-mode="1"] .sales-nav-label {
    display: none;
  }

  .sales-terminal[data-machine-mode="1"] .sales-terminal-menu {
    position: relative;
    flex: 0 0 auto;
  }

  .sales-terminal[data-machine-mode="1"] .sales-terminal-menu > summary {
    display: grid;
    width: 30px;
    height: 30px;
    color: #eef4f5;
    background: #27343b;
    border: 1px solid #3c4b53;
    border-radius: 6px;
    cursor: pointer;
    font-size: 1rem;
    list-style: none;
    place-items: center;
  }

  .sales-terminal[data-machine-mode="1"] .sales-terminal-menu > summary::-webkit-details-marker { display: none; }

  .sales-terminal[data-machine-mode="1"] .sales-terminal-menu > nav {
    position: absolute;
    z-index: 120;
    top: calc(100% + 5px);
    right: 0;
    display: none;
    width: max-content;
    max-width: calc(100vw - 12px);
    padding: 5px;
    background: #151b20;
    border: 1px solid #3c4b53;
    border-radius: 7px;
    box-shadow: 0 10px 28px rgb(0 0 0 / 55%);
  }

  .sales-terminal[data-machine-mode="1"] .sales-terminal-menu[open] > nav {
    display: flex;
    gap: 4px;
  }

  .sales-terminal[data-machine-mode="1"] > header nav .button {
    min-width: 30px;
    min-height: 30px;
    padding: 4px 7px;
    font-size: .78rem;
  }

  .sales-terminal[data-machine-mode="1"] .sales-session {
    min-height: 24px;
    align-items: center;
    padding: 2px 7px;
    margin-top: 3px;
    border-radius: 5px;
    font-size: .7rem;
  }

  .sales-terminal[data-machine-mode="1"] .sales-layout {
    height: auto;
    min-height: 0;
    flex: 1 1 auto;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, auto) minmax(150px, 1fr);
    gap: 4px;
    margin-top: 4px;
  }

  .sales-terminal[data-machine-mode="1"] .sales-pad-wrap {
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .sales-terminal[data-machine-mode="1"] .sales-pad {
    grid-auto-rows: 46px;
    gap: 4px;
    padding-bottom: 2px;
  }

  .sales-terminal[data-machine-mode="1"] .sales-key {
    min-height: 46px;
    gap: 1px;
    padding: 3px;
    border-radius: 7px;
    font-size: calc(.68rem * var(--terrain-sale-text-scale, 1));
    line-height: 1.05;
  }

  .sales-terminal[data-machine-mode="1"] .sales-key span { font-size: calc(.62rem * var(--terrain-sale-text-scale, 1)); }

  .sales-terminal[data-machine-mode="1"] .sales-cart {
    position: relative;
    display: flex;
    height: 100%;
    min-height: 0;
    max-height: none;
    flex-direction: column;
    padding: 5px 6px max(5px, env(safe-area-inset-bottom));
    overflow: hidden;
    border-radius: 7px;
    box-shadow: 0 -7px 18px rgb(0 0 0 / 32%);
  }

  .sales-terminal[data-machine-mode="1"] .sales-cart-toggle [data-cart-toggle-icon] { display: inline; }
  .sales-terminal[data-machine-mode="1"] .sales-cart:not(.is-expanded) .sales-cart-lines { display: none; }
  .sales-terminal[data-machine-mode="1"] .sales-cart-lines { min-height: 0; max-height: none; flex: 1 1 auto; margin-top: 2px; overflow-y: auto; }
  .sales-terminal[data-machine-mode="1"] .sales-cart > form { flex: 0 0 auto; }
  .sales-terminal[data-machine-mode="1"] .sales-cart.is-overlay-expanded {
    position: fixed;
    z-index: 160;
    right: 4px;
    bottom: 4px;
    left: 4px;
    height: min(70dvh, 470px);
    max-height: calc(100dvh - 8px);
    box-shadow: 0 -12px 32px rgb(0 0 0 / 68%);
  }
  .sales-terminal[data-machine-mode="1"] .sales-cart-line { gap: 4px; padding: 3px 0; font-size: calc(.66rem * var(--terrain-sale-text-scale, 1)); line-height: 1.15; }
  .sales-terminal[data-machine-mode="1"] .sales-cart-line small { font-size: calc(.58rem * var(--terrain-sale-text-scale, 1)); }
  .sales-terminal[data-machine-mode="1"] .sales-cart-menu-details { gap: .06rem; margin-top: .12rem; padding-left: .3rem; font-size: calc(.58rem * var(--terrain-sale-text-scale, 1)); }
  .sales-terminal[data-machine-mode="1"] .sales-cart-menu-change { min-height: 22px; margin-top: 2px; padding: 1px 3px; font-size: .56rem; }
  .sales-terminal[data-machine-mode="1"] .sales-cart-line-actions { width: auto; }
  .sales-terminal[data-machine-mode="1"] .sales-cart-line-actions button { min-height: 27px; padding: 2px 5px; }
  .sales-terminal[data-machine-mode="1"] .sales-cart-line-actions .sales-cart-remove { width: 27px; min-width: 27px; }
  .sales-terminal[data-machine-mode="1"] .sales-cart-family { padding-block: .18rem; font-size: .56rem; }
  .sales-terminal[data-machine-mode="1"] .sales-cart-group-toggle { min-height: 24px; padding: 2px 4px; font-size: .58rem; }
  .sales-terminal[data-machine-mode="1"] .sales-cart-service > span { display: none; }
  .sales-terminal[data-machine-mode="1"] .sales-cart-service select { max-width: 88px; min-height: 24px; padding: 1px 16px 1px 4px; font-size: .58rem; }
  .sales-terminal[data-machine-mode="1"] .sales-cart-total small { font-size: .54rem; }
  .sales-terminal[data-machine-mode="1"] .sales-cart-head strong { font-size: 1.05rem; }
  .sales-terminal[data-machine-mode="1"] .sales-cart-toggle { font-size: .76rem; }

  .sales-terminal[data-machine-mode="1"] .sales-quick-payments {
    grid-template-columns: repeat(auto-fit, minmax(74px, 1fr));
    gap: 4px;
    margin-top: 4px;
  }

  .sales-terminal[data-machine-mode="1"] :is(.sales-quick-payments button, .sales-open-payment) {
    min-height: 36px;
    padding: 3px 5px;
    font-size: .7rem;
  }

  .sales-terminal[data-machine-mode="1"] .sales-open-payment { margin-top: 4px; }
  .sales-terminal[data-machine-mode="1"] .sales-clear { min-height: 28px; padding: 3px; margin-top: 4px; font-size: .68rem; }
  .sales-terminal[data-machine-mode="1"] .sales-receipt-demo { top: 2px; left: 2px; padding: 2px 5px; font-size: .52rem; }
}
/* Analyse des ventes accessible à l'organisation. */
.internal-sales-analytics{display:grid;gap:1.25rem;margin-top:1rem}.internal-sales-product-filter{display:flex;gap:.65rem;align-items:end;flex-wrap:wrap}.internal-sales-product-filter label{display:grid;gap:.3rem;min-width:min(280px,100%)}.internal-sales-categories{margin-top:.25rem}
.sales-journal-pagination{display:flex;justify-content:center;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:1rem}.sales-journal-pagination span{font-weight:700;color:#53636c}
.sales-ticket-journal{overflow:hidden}.sales-ticket-journal-more{margin-top:.85rem}.sales-ticket-journal-more>summary{cursor:pointer;color:var(--brand,#1c6b5a);font-weight:800;padding:.65rem .8rem;border:1px solid var(--line);border-radius:.65rem;background:var(--surface-soft,#f5f8f7)}.sales-ticket-journal-more[open]>summary{margin-bottom:.75rem}.sales-ticket-table-scroll{max-height:min(70vh,46rem);overflow:auto;overscroll-behavior:contain;padding-right:.3rem}@media(max-width:720px){.sales-ticket-table-scroll{max-height:65vh}}
.customization-preview-canvas{position:relative;width:100%;aspect-ratio:1/1;max-height:25rem}.customization-preview-canvas .customization-dropzone{height:100%;min-width:0;min-height:0}.customization-preview-canvas .customization-dropzone>img{position:absolute;inset:0;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain}
.customization-gallery{grid-template-columns:repeat(auto-fill,minmax(15rem,20rem));align-items:start}.customization-product-card{max-width:20rem}.customization-product-visual{width:100%;height:auto;max-height:24rem}.customization-product-visual img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain}.customization-object-frame{height:auto;max-height:38rem}.customization-object-frame>img{display:block;min-width:0;min-height:0}
.reservation-customization-dialog{--customization-font-ready:1}@font-face{font-family:Montserrat;src:url("../fonts/customization/Montserrat-2a_PCE0.ttf") format('truetype');font-weight:100 900;font-display:swap}@font-face{font-family:'Playfair Display';src:url("../fonts/customization/PlayfairDisplay-k_Yje_d.ttf") format('truetype');font-weight:400 900;font-display:swap}@font-face{font-family:'Great Vibes';src:url("../fonts/customization/GreatVibes-Regular-tFK2q0F.ttf") format('truetype');font-display:swap}@font-face{font-family:'Cinzel Decorative';src:url("../fonts/customization/CinzelDecorative-Regular-EWUdzFO.ttf") format('truetype');font-display:swap}@font-face{font-family:'Mountains of Christmas';src:url("../fonts/customization/MountainsOfChristmas-6yzes5t.ttf") format('truetype');font-display:swap}
.customization-design-zone.is-circle{border-radius:50%;clip-path:circle(50%)}.customization-design-zone.is-ellipse{border-radius:50%;clip-path:ellipse(50% 50%)}
.customization-motif-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;padding:.65rem;border:1px solid var(--line);border-radius:.75rem}.customization-motif-picker legend{padding:0 .3rem;font-weight:900}.customization-motif-picker button{display:grid;place-items:center;min-height:4rem;padding:.45rem;border:1px solid var(--line);border-radius:.55rem;background:var(--surface);cursor:pointer}.customization-motif-picker button:hover{border-color:var(--organization-primary,var(--brand));background:color-mix(in srgb,var(--organization-primary,var(--brand)) 6%,var(--surface))}.customization-motif-picker button svg{width:2.9rem;height:2.9rem;overflow:visible;pointer-events:none}.customization-motif-picker button path,.customization-canvas-element.is-motif path{fill:none;stroke:#111;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.customization-canvas-element.is-motif svg{width:100%;height:100%;overflow:visible;pointer-events:none}
.reservation-customization-stage{justify-self:center!important;width:auto!important;height:min(64vh,42rem)!important;min-height:0!important;max-width:100%!important}.reservation-customization-stage>img{display:block}.reservation-customization-tools output{justify-self:end;min-width:2.5rem;padding:.15rem .4rem;border-radius:99rem;color:var(--muted);background:var(--surface-soft);font-size:.75rem;text-align:center}@media(max-width:760px){.reservation-customization-stage{width:100%!important;height:auto!important;min-height:0!important}}
.reservation-customization-stage.has-cropped-mockup>img{position:absolute;max-width:none;max-height:none;object-fit:fill}

/* L'atelier conserve le visuel à l'écran et fait défiler uniquement les outils. */
.reservation-customization-dialog{
  box-sizing:border-box;
  width:calc(100vw - 2rem);
  max-width:72rem;
  margin:auto;
}

.reservation-customization-dialog-shell,
.reservation-customization-workspace{
  box-sizing:border-box;
  width:100%;
  max-width:100%;
}

.reservation-customization-workspace{
  grid-template-columns:minmax(21rem,.85fr) minmax(22rem,1.15fr);
}

.reservation-customization-tools{
  scrollbar-gutter:stable;
}

.customization-essential-tools,
.customization-essential-actions,
.customization-object-sliders,
.customization-object-sliders label,
.customization-shape-picker,
.customization-motif-picker{
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  min-width:0;
  min-inline-size:0;
}

.customization-essential-actions .button,
.customization-shape-picker button{
  width:100%;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}

.customization-object-sliders label{
  grid-template-columns:4.2rem minmax(0,1fr) 2.7rem;
}

.customization-motif-picker{
  display:grid;
  grid-auto-columns:4.5rem;
  grid-auto-flow:column;
  grid-template-columns:none;
  max-height:none;
  min-height:5.75rem;
  overflow-x:auto;
  overflow-y:hidden;
  padding-bottom:1.15rem;
  scroll-snap-type:x proximity;
}

.customization-motif-picker button{
  min-width:4.5rem;
  border-color:#d6c5ad;
  color:#15110d;
  background:#fffdf8;
  scroll-snap-align:start;
}

.customization-motif-picker button :is(path,circle,ellipse,rect,polygon,line,polyline){
  fill:none;
  stroke:#15110d;
}

.customization-decoration-library{
  display:grid;
  min-width:0;
  gap:.45rem;
}

.customization-decoration-categories{
  display:flex;
  gap:.35rem;
  overflow-x:auto;
  padding:.1rem 0 .25rem;
}

.customization-decoration-categories button{
  flex:0 0 auto;
  padding:.35rem .7rem;
  border:1px solid var(--line);
  border-radius:99rem;
  color:var(--text);
  background:var(--surface);
  font-size:.75rem;
  font-weight:800;
  cursor:pointer;
}

.customization-decoration-categories button.is-active{
  border-color:var(--organization-primary,var(--brand));
  color:#fff;
  background:var(--organization-primary,var(--brand));
}

.customization-decoration-admin-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
  gap:.75rem;
  margin-top:1rem;
}

.customization-decoration-admin-grid article{
  display:grid;
  grid-template-columns:4rem minmax(0,1fr) auto;
  align-items:center;
  gap:.7rem;
  padding:.7rem;
  border:1px solid var(--line);
  border-radius:.8rem;
  background:var(--surface-soft);
}

.customization-decoration-admin-grid svg{
  width:4rem;
  height:4rem;
  padding:.35rem;
  border-radius:.55rem;
  background:#fffdf8;
}

.customization-decoration-admin-grid path{
  fill:none;
  stroke:#15110d;
  stroke-width:1.25;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}

.customization-decoration-admin-grid article>div{
  display:grid;
  gap:.15rem;
}

.customization-shape-picker [data-customization-shape].is-active{
  border-color:var(--organization-primary,var(--brand));
  color:#fff;
  background:var(--organization-primary,var(--brand));
}

.customization-shape-picker [data-customization-shape-status]{
  grid-column:1/-1;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.35;
}

.customization-curve-handle{
  position:absolute;
  z-index:4;
  width:1rem;
  height:1rem;
  translate:-50% -50%;
  border:2px solid #fff;
  border-radius:50%;
  background:#2563eb;
  box-shadow:0 0 0 1px #1e3a8a;
  cursor:move;
  touch-action:none;
}

.customization-canvas-element.is-curve.is-selected{
  border-color:transparent;
  background:transparent;
}

.customization-canvas-element.is-shape svg{
  position:absolute;
  inset:0;
  display:block;
}

.customization-shape-preview{
  position:absolute;
  z-index:5;
  pointer-events:none;
}

.customization-shape-preview svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}

.customization-shape-preview :is(circle,ellipse,rect,polygon,line,path){
  fill:none;
  stroke:#2563eb;
  stroke-width:1.5;
  stroke-dasharray:4 3;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}

.customization-resize-handle{
  position:absolute;
  z-index:6;
  width:1rem;
  height:1rem;
  translate:-50% -50%;
  border:2px solid #fff;
  border-radius:50%;
  background:#2563eb;
  box-shadow:0 0 0 1px #1e3a8a;
  touch-action:none;
}

.customization-resize-handle.is-nw{left:0;top:0;cursor:nwse-resize}
.customization-resize-handle.is-ne{left:100%;top:0;cursor:nesw-resize}
.customization-resize-handle.is-sw{left:0;top:100%;cursor:nesw-resize}
.customization-resize-handle.is-se{left:100%;top:100%;cursor:nwse-resize}

.customization-object-sliders label{
  grid-template-columns:4.5rem minmax(0,1fr) 4.5rem;
}

.customization-object-sliders label[hidden]{
  display:none;
}

.customization-ratio-lock{width:100%;margin-top:.2rem;font-weight:900}
.customization-ratio-lock.is-active{color:#fff;background:var(--organization-primary,var(--brand))}

.customization-image-controls{
  display:grid;
  gap:.55rem;
  padding:.75rem;
  border:1px solid color-mix(in srgb,var(--organization-primary,var(--brand)) 28%,var(--line));
  border-radius:.85rem;
  background:var(--surface-soft);
}

.customization-image-controls[hidden]{display:none}
.customization-image-controls h4{margin:0}
.customization-image-controls>label{grid-template-columns:6.5rem minmax(0,1fr) 2.5rem;align-items:center}
.customization-image-controls>label:has(select){grid-template-columns:6.5rem minmax(0,1fr)}
.customization-image-controls fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;padding:.55rem;border:1px solid var(--line);border-radius:.65rem}
.customization-image-controls fieldset legend{padding:0 .3rem;font-weight:900}
.customization-image-controls fieldset label{display:grid;grid-template-columns:3.5rem minmax(0,1fr);align-items:center;gap:.35rem;font-size:.75rem}
.customization-image-controls .customization-image-cleanup{grid-template-columns:1fr}
.customization-image-controls .customization-image-cleanup label{grid-template-columns:5.2rem minmax(0,1fr) 2.5rem}
.customization-image-cleanup small{color:var(--muted);line-height:1.35}
.customization-image-controls .customization-transparent-toggle{display:flex;align-items:center;gap:.45rem}
.customization-image-controls .customization-transparent-toggle input{width:auto}
.customization-image-render-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}
.customization-outline-preview{width:100%;border-color:color-mix(in srgb,var(--organization-primary,var(--brand)) 45%,var(--line));font-weight:900}
.customization-outline-preview.is-active{color:#fff;background:var(--organization-primary,var(--brand));box-shadow:0 0 0 3px color-mix(in srgb,var(--organization-primary,var(--brand)) 18%,transparent)}
.customization-canvas-element.is-image{object-fit:fill;filter:none;mix-blend-mode:normal;user-select:none;-webkit-user-drag:none}
@media(max-width:560px){.customization-image-render-actions{grid-template-columns:1fr}}

.customization-curve-endpoint{
  position:absolute;
  z-index:3;
  width:.65rem;
  height:.65rem;
  translate:-50% -50%;
  border:2px solid #2563eb;
  border-radius:50%;
  background:#fff;
  pointer-events:none;
}

@media(max-width:760px){
  .reservation-customization-workspace{
    grid-template-columns:1fr;
  }
}
.customization-draw-actions{display:grid;grid-template-columns:1fr auto;gap:.4rem}.customization-drawing-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.customization-drawing-layer.is-active{z-index:4;pointer-events:auto;touch-action:none;cursor:crosshair}.customization-canvas-element{z-index:2}
.customization-drawing-layer.is-erasing{cursor:cell}
.customization-tool-picker{display:none!important}.customization-capability-picker{display:grid;gap:.55rem;padding:.8rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface)}.customization-capability-picker legend{padding:0 .35rem;font-weight:900}.customization-capability-picker label{display:flex;align-items:flex-start;gap:.55rem;padding:.55rem;border-radius:.65rem;background:var(--surface-soft);cursor:pointer}.customization-capability-picker label span{display:grid;gap:.1rem}.customization-capability-picker small{color:var(--muted);font-weight:500}
.customization-product-visual>i.is-circle,.customization-product-visual>i.is-ellipse{border-radius:50%}.customization-template-editor{border-top:1px solid var(--line);padding-top:.65rem}.customization-template-editor>summary{list-style:none;cursor:pointer;text-align:center}.customization-template-editor>summary::-webkit-details-marker{display:none}.customization-template-editor>form{display:grid;gap:.7rem;margin-top:.75rem;padding:.75rem;border-radius:.8rem;background:var(--surface)}.customization-template-editor .field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customization-template-editor .customization-capability-picker{padding:.55rem}.customization-template-editor .customization-capability-picker label{padding:.4rem}
.customization-capability-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.customization-capability-picker label{position:relative;border:1px solid transparent;transition:border-color .16s ease,background .16s ease,transform .16s ease}.customization-capability-picker label:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--organization-primary,var(--brand)) 35%,var(--line))}.customization-capability-picker label>span{grid-template-columns:1.75rem 1fr;align-items:center;width:100%}.customization-capability-picker label>span::before{content:'';display:grid;place-items:center;grid-row:1/3;width:1.55rem;height:1.55rem;border:2px solid #64748b;border-radius:.48rem;background:#fff;color:#fff;font-size:.9rem;font-weight:1000}.customization-capability-picker input:checked+span::before{content:'✓';border-color:var(--organization-primary,var(--brand));background:var(--organization-primary,var(--brand))}.customization-capability-picker label:has(input:checked){border-color:color-mix(in srgb,var(--organization-primary,var(--brand)) 50%,var(--line));background:color-mix(in srgb,var(--organization-primary,var(--brand)) 9%,var(--surface))}.customization-capability-picker label:has(input[value="photo_raster"]){border-color:#f59e0b;border-style:dashed;background:#fff7ed;color:#431407}.customization-capability-picker label:has(input[value="photo_raster"]) small{color:#7c2d12}.customization-capability-picker label:has(input[value="photo_raster"]:checked){border-color:#b45309;background:#ffedd5}.customization-capability-picker label:has(input[value="photo_raster"]) strong::after{content:' · essai requis';color:#9a3412;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.customization-template-editor[open]{grid-column:1/-1}.customization-template-editor[open]>summary{color:#fff;background:var(--organization-primary,var(--brand))}
.customization-capability-picker{border-color:color-mix(in srgb,var(--organization-primary,var(--brand)) 24%,var(--line));background:color-mix(in srgb,var(--organization-primary,var(--brand)) 6%,#e8eef5)}.customization-capability-picker label{background:#fff;box-shadow:0 2px 8px rgb(15 23 42 / 6%)}.customization-capability-picker label small{color:#526173}.customization-template-editor>form{border:1px solid color-mix(in srgb,var(--organization-primary,var(--brand)) 22%,var(--line));background:color-mix(in srgb,var(--organization-primary,var(--brand)) 5%,#edf2f7);box-shadow:inset 0 1px 0 rgb(255 255 255 / 80%)}.customization-template-editor>form>label,.customization-template-editor .field-grid>label{padding:.55rem;border:1px solid #d8e0e8;border-radius:.65rem;background:#fff}.customization-template-editor input,.customization-template-editor select{background:#f8fafc}
.customization-capability-picker label>span>strong,.customization-capability-picker label>span>small{grid-column:2}.customization-capability-picker label>span>strong{grid-row:1;color:#1e293b}.customization-capability-picker label>span>small{grid-row:2}.customization-capability-picker label:has(input:checked)>span>strong{color:var(--organization-surface-ink,var(--ink))}.customization-capability-picker label:has(input:checked)>span>small{color:color-mix(in srgb,var(--organization-surface-ink,var(--ink)) 72%,transparent)}
.customization-preview-panel>label,.customization-template-editor form label{color:#27364a}.customization-product-card:has(.customization-template-editor[open]){grid-column:1/-1;grid-template-columns:minmax(15rem,20rem) minmax(22rem,1fr);max-width:none;align-items:start}.customization-product-card:has(.customization-template-editor[open])>.customization-product-visual{grid-column:1;grid-row:1/3}.customization-product-card:has(.customization-template-editor[open])>.customization-template-editor{grid-column:2;grid-row:1/3;border-top:0;padding:0}.customization-product-card:has(.customization-template-editor[open])>.customization-template-editor>form{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.65rem}.customization-product-card:has(.customization-template-editor[open])>.customization-template-editor>form>.customization-capability-picker,.customization-product-card:has(.customization-template-editor[open])>.customization-template-editor>form>button{grid-column:1/-1}@media(max-width:760px){.customization-product-card:has(.customization-template-editor[open]){grid-template-columns:1fr}.customization-product-card:has(.customization-template-editor[open])>.customization-product-visual,.customization-product-card:has(.customization-template-editor[open])>.customization-template-editor{grid-column:1;grid-row:auto}.customization-product-card:has(.customization-template-editor[open])>.customization-template-editor>form{grid-template-columns:1fr}}
.customization-template-editor{display:none!important}.customization-edit-main{width:100%;justify-content:center;text-align:center}
.customization-template-archive{margin-top:auto;padding-top:.55rem;border-top:1px solid var(--line)}.customization-template-archive .button{width:100%;justify-content:center}
.customization-review-card{align-content:start}.customization-review-visual{display:grid;place-items:center;overflow:hidden;min-height:11rem;border:1px solid color-mix(in srgb,var(--organization-primary,var(--brand)) 18%,var(--line));border-radius:.8rem;background:repeating-linear-gradient(45deg,#fff,#fff 10px,#f5f7f8 10px,#f5f7f8 20px)}.customization-review-visual canvas{display:block;width:100%;height:100%;object-fit:contain;background:#fff}.customization-review-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.customization-review-card h3{margin:0;font-size:1rem}.customization-review-card>.muted{margin:0}.customization-review-card>.public-actions{margin-top:auto}
.customization-review-search{width:min(24rem,100%)}.customization-review-search input{width:100%;min-width:18rem}.customization-review-links{display:flex;flex-wrap:wrap;gap:.45rem}.customization-review-links .button{flex:1 1 10rem;justify-content:center}
.customization-review-heading>div{display:flex;flex-wrap:wrap;gap:.35rem}.customization-source-badge.is-onsite_workshop{color:#075985;background:#e0f2fe}.customization-source-badge.is-online{color:#166534;background:#dcfce7}.customization-duplicate-warning{display:grid;gap:.15rem;margin:0;padding:.55rem .65rem;border:1px solid #f59e0b;border-radius:.65rem;color:#78350f;background:#fffbeb;font-size:.78rem}.customization-duplicate-warning span{color:#92400e}.customization-review-card>form:last-child .button{width:100%;justify-content:center}
.customization-precision[open]{padding:.8rem;border:1px solid color-mix(in srgb,var(--organization-primary,var(--brand)) 25%,var(--line));border-radius:.85rem;background:color-mix(in srgb,var(--organization-primary,var(--brand)) 5%,#e8eef5)}.customization-precision[open]>summary{margin-bottom:.75rem;color:#1e293b}.customization-dimension-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.customization-dimension-grid>label{display:grid;gap:.35rem;padding:.65rem;border:1px solid #d7e0e8;border-radius:.7rem;background:#fff;color:#27364a;font-size:.78rem;font-weight:850}.customization-dimension-grid>label[data-dimension-group="position"]{border-left:4px solid #0284c7}.customization-dimension-grid>label[data-dimension-group="size"]{border-left:4px solid #7c3aed}.customization-dimension-control{display:grid;grid-template-columns:2.35rem minmax(4rem,1fr) auto 2.35rem;align-items:center;overflow:hidden;border:1px solid #b8c5d1;border-radius:.6rem;background:#f8fafc}.customization-dimension-control button{align-self:stretch;border:0;background:#e6edf3;color:#1e293b;font-size:1.25rem;font-weight:900;cursor:pointer}.customization-dimension-control button:hover{color:#fff;background:var(--organization-primary,var(--brand))}.customization-dimension-control input{min-width:0;border:0!important;background:#fff!important;text-align:right;font-size:1rem;font-weight:850;color:#172033}.customization-dimension-unit{padding:0 .45rem;color:#64748b;font-size:.75rem;font-weight:800}.customization-dimension-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem}.customization-dimension-actions .button{color:#1e293b;background:#fff}@media(max-width:560px){.customization-dimension-grid{grid-template-columns:1fr}.customization-dimension-control{grid-template-columns:2.75rem minmax(5rem,1fr) auto 2.75rem}.customization-dimension-control button{min-height:2.75rem}}
.customization-dimension-control{grid-template-columns:2.2rem minmax(0,1fr) 2rem 2.2rem}.customization-dimension-control input{width:100%!important;max-width:100%;padding:.45rem .2rem!important;color:#172033!important;-moz-appearance:textfield}.customization-dimension-control input::-webkit-inner-spin-button,.customization-dimension-control input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.customization-dimension-unit{padding:0 .2rem;text-align:center}
.customization-scale-calibration{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:center;margin-top:.65rem;padding:.7rem;border:1px solid #c5d1dc;border-radius:.8rem;background:#fff;color:#27364a}.customization-scale-calibration>div{display:grid}.customization-scale-calibration small{color:#64748b}.customization-scale-calibration>label{display:grid;grid-column:1/-1;gap:.25rem;color:#27364a;font-size:.78rem;font-weight:850}.customization-scale-calibration>label>span{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;overflow:hidden;border:1px solid #b8c5d1;border-radius:.55rem;background:#f8fafc}.customization-scale-calibration input{width:100%;border:0!important;background:#fff!important;color:#172033!important}.customization-scale-calibration b{padding:0 .55rem;color:#64748b}.customization-scale-calibration output{grid-column:1/-1;padding:.4rem .55rem;border-radius:.5rem;background:#e8eef5;color:#334155;font-size:.76rem}.customization-scale-calibration [data-calibration-validate]{grid-column:1/-1;justify-self:stretch}.customization-calibration-ruler{position:absolute;z-index:6;inset:0;width:100%;height:100%;pointer-events:none}.customization-preview-canvas.is-calibrating{cursor:crosshair}.customization-preview-canvas.is-calibrating .customization-calibration-ruler{pointer-events:auto}.customization-calibration-ruler line{stroke:#0284c7;stroke-width:4;stroke-dasharray:8 5}.customization-calibration-ruler circle{fill:#fff;stroke:#0284c7;stroke-width:4}.customization-calibration-ruler:not(.is-visible) line,.customization-calibration-ruler:not(.is-visible) circle{display:none}@media(max-width:560px){.customization-scale-calibration{grid-template-columns:1fr}.customization-scale-calibration>.button{width:100%}}
.customization-contour-tools{display:grid;gap:.55rem;margin-top:.65rem;padding:.7rem;border:1px solid #c5d1dc;border-radius:.8rem;background:#fff;color:#27364a}.customization-contour-tools>div:first-child{display:grid}.customization-contour-tools small{color:#64748b}.customization-contour-tools>label{display:grid;grid-template-columns:auto minmax(5rem,1fr) 2.5rem;align-items:center;gap:.55rem;font-size:.78rem;font-weight:850}.customization-contour-tools input{accent-color:var(--organization-primary,var(--brand))}.customization-contour-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.customization-contour-actions [data-contour-clear]{grid-column:1/-1}.customization-contour-tools output{padding:.4rem .55rem;border-radius:.5rem;background:#e8eef5;color:#334155;font-size:.76rem}.customization-contour-overlay{position:absolute;z-index:5;inset:0;width:100%;height:100%;pointer-events:none}.customization-contour-overlay polygon{fill:rgb(2 132 199 / 18%);stroke:#0284c7;stroke-width:3;stroke-linejoin:round}.customization-contour-overlay text{fill:#fff;stroke:#0f172a;stroke-width:3;paint-order:stroke;font-size:12px;font-weight:900}.customization-contour-overlay:not(.is-visible) polygon,.customization-contour-overlay:not(.is-visible) text{display:none}
.customization-geometry-tools {
  display: grid;
  align-self: start;
  gap: .7rem;
}

.customization-geometry-tools .customization-scale-calibration,
.customization-geometry-tools .customization-contour-tools {
  margin-top: 0;
}

.customization-builder-fields label.is-derived-dimension::after {
  display: block;
  margin-top: .25rem;
  color: var(--muted);
  font-size: .72rem;
  content: "Calculé depuis l’échelle et le contour validés";
}

.customization-builder-fields label.is-derived-dimension input {
  cursor: not-allowed;
  background: color-mix(in srgb, var(--surface-soft) 78%, var(--line));
}

@media (min-width: 861px) {
  .customization-preview-panel {
    position: sticky;
    top: 1rem;
  }

  .customization-geometry-tools {
    max-height: calc(100vh - 2rem);
    padding-right: .2rem;
    overflow: auto;
  }
}

@media (max-width: 860px) {
  .customization-geometry-tools {
    grid-row: auto;
  }

  .customization-builder-fields {
    display: contents;
  }

  .customization-builder-fields > .customization-geometry-tools {
    display: grid;
  }

  .customization-builder-fields > *:not(.customization-geometry-tools) {
    margin-inline: .75rem;
  }

  .customization-main-action {
    margin-bottom: .75rem;
  }
}
.reservation-customization-zone.has-technical-contour{clip-path:var(--design-contour);border:0;border-radius:0;outline:2px dashed #ef4444}
.customization-layer-switch{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.customization-layer-switch .button{justify-content:center}.customization-preview-canvas [data-technical-scan-image]{filter:grayscale(.15) contrast(1.05)}
.customization-levels{display:grid;gap:.45rem;padding:.55rem;border:1px solid #d7e0e8;border-radius:.65rem;background:#f8fafc}.customization-levels legend{padding:0 .3rem;color:#334155;font-size:.75rem;font-weight:900}.customization-levels label{display:grid;grid-template-columns:5.6rem minmax(5rem,1fr) 3rem;align-items:center;gap:.45rem;color:#475569;font-size:.74rem;font-weight:800}.customization-levels output{text-align:right;background:transparent;padding:0}
.customization-product-contour{position:absolute;z-index:2;inset:0;width:100%;height:100%;pointer-events:none}.customization-product-contour polygon{fill:rgb(2 132 199 / 14%);stroke:#0284c7;stroke-width:3;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.customization-batch-builder,.customization-batches{display:grid;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:1rem;background:color-mix(in srgb,var(--organization-primary,var(--brand)) 4%,var(--surface))}.customization-batch-builder h3,.customization-batches h3{margin:.1rem 0}.customization-batch-builder form{display:grid;gap:1rem}.customization-production-queue{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.65rem}.customization-production-queue>label{display:flex;align-items:flex-start;gap:.7rem;padding:.85rem;border:1px solid var(--line);border-radius:.8rem;background:var(--surface);cursor:pointer}.customization-production-queue>label:has(input:checked){border-color:var(--organization-primary,var(--brand));box-shadow:0 0 0 2px color-mix(in srgb,var(--organization-primary,var(--brand)) 15%,transparent)}.customization-production-queue input{width:1.15rem;height:1.15rem;margin-top:.15rem;accent-color:var(--organization-primary,var(--brand))}.customization-production-queue span{display:grid;gap:.2rem}.customization-production-queue small,.customization-batches small{color:var(--muted)}.customization-batches .customization-technical-list article>div:first-child{display:grid;gap:.2rem}.customization-batches .public-actions{justify-content:flex-end;align-items:center}.customization-batches form{margin:0}
.customization-capability-picker label:has(input[value="photo_raster"]),.customization-capability-picker label:has(input[value="photo_raster"]:checked){border-color:transparent;border-style:solid;background:#fff;color:#1e293b}.customization-capability-picker label:has(input[value="photo_raster"]:checked){border-color:color-mix(in srgb,var(--organization-primary,var(--brand)) 50%,var(--line));background:color-mix(in srgb,var(--organization-primary,var(--brand)) 9%,#fff)}.customization-capability-picker label:has(input[value="photo_raster"])>span>strong,.customization-capability-picker label:has(input[value="photo_raster"]:checked)>span>strong{color:#1e293b}.customization-capability-picker label:has(input[value="photo_raster"])>span>small,.customization-capability-picker label:has(input[value="photo_raster"]:checked)>span>small{color:#526173}
.customization-capability-picker label:has(input[value="photo_raster"]) strong::after{content:none}
.customization-jig-composer>form{display:grid;gap:1rem;margin-top:1rem}.customization-jig-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.7rem}.customization-jig-settings label,.customization-jig-library>label{display:grid;gap:.35rem;color:#334155;font-size:.78rem;font-weight:900}.customization-jig-workspace{display:grid;grid-template-columns:minmax(15rem,20rem) minmax(22rem,1fr);gap:1rem;align-items:start}.customization-jig-library{display:grid;gap:.75rem;padding:.85rem;border:1px solid var(--line);border-radius:.85rem;background:#f8fafc}.customization-jig-slot-list{display:grid;gap:.5rem;max-height:28rem;overflow:auto}.customization-jig-slot-list article{display:grid;grid-template-columns:1fr auto;gap:.25rem .5rem;padding:.6rem;border:1px solid #dbe3ec;border-radius:.7rem;background:#fff}.customization-jig-slot-list article>small{grid-column:1}.customization-jig-slot-list article>.button{grid-column:2;grid-row:1/3}.customization-jig-coordinates{display:flex;grid-column:1/-1;gap:.5rem}.customization-jig-coordinates label{display:flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:900}.customization-jig-coordinates input{width:5.2rem;padding:.35rem}.customization-jig-ruler{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.45rem;color:#475569;font-size:.76rem;font-weight:800}.customization-jig-canvas-shell{padding:1.2rem;border-radius:1rem;background:#dce4ec;overflow:auto}.customization-jig-canvas{position:relative;width:100%;max-height:65vh;border:2px solid #334155;background-color:#f8fafc;background-image:linear-gradient(#cbd5e1 1px,transparent 1px),linear-gradient(90deg,#cbd5e1 1px,transparent 1px);background-size:5% 5%;box-shadow:0 10px 25px rgb(15 23 42 / 15%);touch-action:none}.customization-jig-slot{position:absolute;display:grid;place-items:center;min-width:0;min-height:0;padding:0;border:2px solid #0f766e;background:rgb(20 184 166 / 14%);color:#115e59;font-weight:1000;cursor:grab;touch-action:none}.customization-jig-slot:active{cursor:grabbing}.customization-jig-slot.is-circle,.customization-jig-slot.is-ellipse{border-radius:50%}.customization-jig-submit{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-radius:.85rem;background:color-mix(in srgb,var(--organization-primary,var(--brand)) 8%,#f8fafc)}.customization-jig-submit p{display:grid;gap:.2rem;margin:0}.customization-jig-submit small{color:#526173}@media(max-width:800px){.customization-jig-workspace{grid-template-columns:1fr}.customization-jig-submit{align-items:stretch;flex-direction:column}}
.public-editorial-page {
    width: min(860px, calc(100% - 2rem));
    margin: 2rem auto;
    padding: clamp(1.5rem, 4vw, 3rem);
}

.reservation-manual-entry {
  padding: clamp(.85rem, 2vw, 1.2rem);
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: var(--surface-soft);
}

.reservation-payment-routing-note {
  display: grid;
  gap: .25rem;
  padding: .8rem 1rem;
  border-left: 4px solid var(--organization-primary, var(--brand));
  border-radius: .65rem;
  background: var(--surface);
}

.reservation-payment-routing-note span,
.reservation-admin-order-contact {
  color: var(--muted);
  font-size: .86rem;
}

.reservation-admin-order > summary {
  cursor: pointer;
  list-style: none;
}

.reservation-admin-order > summary::-webkit-details-marker {
  display: none;
}

.reservation-admin-order > summary::after {
  content: "+";
  color: var(--organization-primary, var(--brand));
  font-size: 1.35rem;
  font-weight: 900;
}

.reservation-admin-order[open] > summary::after {
  content: "−";
}

.reservation-admin-order-contact {
  margin: -.35rem 0 0;
}

.reservation-builder-summary {
  display: flex;
  align-items: center;
  gap: .8rem;
  cursor: pointer;
  list-style: none;
}

.reservation-builder-summary::-webkit-details-marker {
  display: none;
}

.reservation-builder-summary > span:last-child {
  display: grid;
  gap: .15rem;
}

.reservation-builder-summary small {
  color: var(--muted);
}

.reservation-campaign-builder[open] .reservation-builder-summary {
  margin-bottom: 1rem;
  padding-bottom: .8rem;
  border-bottom: 1px solid var(--line);
}

.public-editorial-page .lead {
    font-size: clamp(1.05rem, 2vw, 1.3rem);
    color: var(--muted-color, #475569);
}

.editorial-content {
    margin: 2rem 0;
    font-size: 1.05rem;
    line-height: 1.75;
}

/* Atelier de personnalisation sur place */
.workshop-kiosk {
  min-height: 100dvh;
  padding: clamp(1rem, 2.5vw, 2rem);
  color: #18343f;
  background:
    radial-gradient(circle at 8% 5%, rgba(244, 168, 95, .24), transparent 28rem),
    linear-gradient(145deg, #f8fbfa 0%, #eef7f4 48%, #fff8ef 100%);
}

.workshop-welcome {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: grid;
  grid-template-columns: minmax(19rem, .9fr) minmax(22rem, 1.1fr);
  align-items: center;
  gap: clamp(1.5rem, 5vw, 5rem);
  overflow: hidden;
  padding: clamp(2rem, 7vw, 7rem);
  color: var(--organization-surface-ink, #18343f);
  background:
    radial-gradient(circle at 78% 15%, color-mix(in srgb, var(--organization-accent, #f4a85f) 34%, transparent), transparent 32rem),
    radial-gradient(circle at 12% 88%, color-mix(in srgb, var(--organization-primary, #174f5e) 22%, transparent), transparent 30rem),
    linear-gradient(145deg, #fffdf8, #eaf5f1);
  transition: opacity .4s ease, transform .4s ease;
}

.workshop-kiosk.is-workshop-started .workshop-welcome {
  opacity: 0;
  transform: scale(1.025);
  pointer-events: none;
}

.workshop-welcome-copy { position: relative; z-index: 2; display: grid; justify-items: start; gap: 1rem; }
.workshop-welcome-copy h1 { margin: 0; font-size: clamp(3rem, 7vw, 7.5rem); line-height: .82; letter-spacing: -.07em; }
.workshop-welcome-copy h1 em { color: var(--organization-primary, #174f5e); font-style: normal; }
.workshop-welcome-copy > p:not(.eyebrow) { max-width: 32rem; margin: 0; color: #52676f; font-size: clamp(1.15rem, 2.3vw, 1.75rem); font-weight: 750; }
.workshop-welcome-copy .button { min-height: 4.3rem; margin-top: .5rem; padding-inline: 2rem; border-radius: 999px; font-size: clamp(1.05rem, 2vw, 1.4rem); box-shadow: 0 16px 35px color-mix(in srgb, var(--organization-primary, #174f5e) 28%, transparent); }
.workshop-welcome-copy small { color: #60747b; font-weight: 700; }
.workshop-welcome-gallery { position: relative; min-height: min(70dvh, 47rem); }
.workshop-welcome-gallery figure { position: absolute; display: grid; width: min(72%, 27rem); margin: 0; overflow: hidden; border: .65rem solid rgba(255,255,255,.92); border-radius: 2.4rem; background: #fff; box-shadow: 0 28px 70px rgba(22, 62, 72, .2); transform: translate(calc(var(--welcome-index) * 17%), calc(var(--welcome-index) * 19%)) rotate(calc((var(--welcome-index) - 1) * 5deg)); }
.workshop-welcome-gallery figure:nth-child(1) { left: 0; top: 0; }
.workshop-welcome-gallery figure:nth-child(2) { left: 13%; top: 15%; }
.workshop-welcome-gallery figure:nth-child(3) { left: 25%; top: 30%; }
.workshop-welcome-gallery img { width: 100%; height: clamp(15rem, 36dvh, 26rem); object-fit: contain; background: linear-gradient(145deg, #eff7f4, #fff5e8); }
.workshop-welcome-gallery figcaption { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; font-size: 1.05rem; }
.workshop-welcome-gallery figcaption span { color: var(--organization-primary, #174f5e); font-weight: 900; }

@media (orientation: portrait) and (max-width: 900px) {
  .workshop-welcome { grid-template-columns: 1fr; grid-template-rows: auto minmax(15rem, 1fr); align-content: center; padding: clamp(1.5rem, 5vw, 3rem); }
  .workshop-welcome-copy { justify-items: center; text-align: center; }
  .workshop-welcome-copy h1 { font-size: clamp(3.4rem, 12vw, 6.5rem); }
  .workshop-welcome-gallery { width: min(100%, 39rem); min-height: 34dvh; margin-inline: auto; }
  .workshop-welcome-gallery figure { width: min(62%, 20rem); }
  .workshop-welcome-gallery img { height: clamp(11rem, 23dvh, 18rem); }
}

@media (prefers-reduced-motion: reduce) {
  .workshop-welcome { transition: none; }
}

.workshop-kiosk-header,
.workshop-kiosk-checkout {
  width: min(1180px, 100%);
  margin-inline: auto;
}

.workshop-kiosk-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.5rem;
  padding: clamp(1rem, 3vw, 2.2rem) 0;
}

.workshop-kiosk-header h1,
.workshop-ticket-card h1 {
  margin: .2rem 0;
  font-size: clamp(2rem, 5vw, 4.8rem);
  line-height: .98;
  letter-spacing: -.045em;
}

.workshop-kiosk-header p { max-width: 48rem; font-size: clamp(1rem, 1.8vw, 1.25rem); }
.workshop-kiosk-step { display: inline-flex; width: max-content; padding: .55rem .85rem; border-radius: 999px; color: #fff; background: #174f5e; font-weight: 850; }
.workshop-kiosk-form { width: min(1180px, 100%); margin: 0 auto; }
.workshop-product-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); gap: 1rem; }
.workshop-product-card { display: grid; grid-template-rows: minmax(15rem, 1fr) auto auto; overflow: hidden; border: 1px solid rgba(23, 79, 94, .13); border-radius: 1.5rem; background: rgba(255, 255, 255, .94); box-shadow: 0 18px 45px rgba(24, 52, 63, .1); }
.workshop-product-visual { position: relative; display: grid; min-height: 15rem; place-items: center; padding: 1.2rem; background: linear-gradient(160deg, #e4f1ed, #fdf5e9); }
.workshop-product-visual img { width: 100%; height: 100%; max-height: 20rem; object-fit: contain; filter: drop-shadow(0 12px 18px rgba(18, 43, 52, .12)); }
.workshop-product-visual span { position: absolute; top: .8rem; left: .8rem; padding: .4rem .7rem; border-radius: 999px; color: #174f5e; background: rgba(255,255,255,.92); font-size: .78rem; font-weight: 850; }
.workshop-product-copy { padding: 1.1rem 1.2rem .4rem; }
.workshop-product-copy h2 { margin: 0; font-size: 1.35rem; }
.workshop-product-copy p { color: #5f7178; }
.workshop-product-copy > strong { color: #174f5e; font-size: 1.45rem; }
.workshop-product-actions { display: grid; grid-template-columns: 7rem 1fr; gap: .65rem; align-items: end; padding: 1rem 1.2rem 1.25rem; }
.workshop-product-actions label { display: grid; gap: .3rem; font-weight: 750; }
.workshop-product-actions input { min-height: 3rem; text-align: center; font-size: 1.15rem; }
.workshop-product-actions .button { min-height: 3rem; }
.workshop-product-actions small { grid-column: 1 / -1; color: #5f7178; }
.workshop-kiosk-checkout { position: sticky; z-index: 15; bottom: .75rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; padding: 1rem 1.2rem; border: 1px solid rgba(255,255,255,.7); border-radius: 1.3rem; color: #fff; background: rgba(17, 58, 70, .96); box-shadow: 0 18px 50px rgba(14, 43, 53, .28); backdrop-filter: blur(14px); }
.workshop-kiosk-checkout > div { display: grid; gap: .2rem; }
.workshop-kiosk-checkout .workshop-kiosk-step { padding: 0; color: #f6bd7c; background: none; }
.workshop-kiosk-checkout small { color: #d6e4e8; }
.workshop-submit { min-height: 3.4rem; padding-inline: 1.4rem; font-size: 1.05rem; }

.workshop-ticket-page { min-height: 100dvh; display: grid; place-items: center; padding: clamp(1rem, 3vw, 3rem); background: linear-gradient(145deg, #e9f6f2, #fff7ec); }
.workshop-ticket-card { width: min(980px, 100%); padding: clamp(1rem, 3vw, 2.5rem); border-radius: 2rem; background: #fff; box-shadow: 0 24px 70px rgba(24, 52, 63, .16); }
.workshop-ticket-card > header { display: flex; gap: 1rem; align-items: start; }
.workshop-ticket-card h1 { font-size: clamp(1.8rem, 4vw, 3.5rem); }
.workshop-success-mark { display: grid; flex: 0 0 3.2rem; width: 3.2rem; height: 3.2rem; place-items: center; border-radius: 50%; color: #fff; background: #18755f; font-size: 1.6rem; font-weight: 900; }
.workshop-ticket-content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, 18rem); gap: 1.2rem; margin: 1.5rem 0; }
.workshop-ticket-designs { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .75rem; }
.workshop-ticket-designs article { display: grid; gap: .4rem; padding: .7rem; border-radius: 1rem; background: #f1f6f4; text-align: center; font-weight: 750; }
.workshop-ticket-designs canvas { width: 100%; height: auto; border-radius: .75rem; background: #fff; object-fit: contain; }
.workshop-ticket-qr { display: grid; align-content: center; justify-items: center; gap: .35rem; padding: 1rem; border: 2px dashed #174f5e; border-radius: 1.2rem; text-align: center; }
.workshop-ticket-qr img { width: min(100%, 15rem); aspect-ratio: 1; }
.workshop-ticket-qr strong { font-size: 1.3rem; letter-spacing: .08em; }
.device-workshop-checkout { min-height: 100dvh; display: grid; place-items: center; padding: 1rem; background: linear-gradient(145deg, #0b2730, #174f5e); }
.device-workshop-checkout > .card { width: min(42rem, 100%); display: grid; gap: 1rem; }
.device-workshop-checkout header, .workshop-checkout-summary, .workshop-checkout-lines span { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.workshop-checkout-scan { min-height: 18rem; display: grid; place-content: center; justify-items: center; gap: 1rem; text-align: center; }
.workshop-checkout-scan > span { font-size: 5rem; color: #174f5e; }
.workshop-checkout-summary { padding: 1rem; border-radius: 1rem; background: #e9f4f3; }
.workshop-checkout-summary div { display: grid; }
.workshop-checkout-summary > strong { font-size: 2rem; }
.workshop-checkout-lines { display: grid; gap: .5rem; }
.workshop-checkout-lines span { padding: .7rem 0; border-bottom: 1px solid #d8e0e5; }
.sales-workshop-scan-shortcut { white-space: nowrap; }
.sales-system-keys { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; margin-bottom: .55rem; }
.sales-system-key { min-height: 4.6rem; display: grid; align-content: center; text-decoration: none; background: linear-gradient(145deg, #174f5e, #0f3540); color: #fff; border: 2px solid #7bd4c5; }
.sales-system-key span { color: #d9f6f0; }
@media (max-width: 720px) {
  .sales-workshop-scan-shortcut { padding: .55rem .7rem; font-size: .78rem; }
  .sales-system-keys { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.workshop-ticket-lines { display: flex; flex-wrap: wrap; gap: .5rem; }
.workshop-ticket-lines span { padding: .4rem .65rem; border-radius: 999px; background: #edf4f2; font-weight: 750; }
.workshop-ticket-warning { padding: .8rem 1rem; border-radius: .8rem; color: #7b430e; background: #fff1d7; }
.workshop-ticket-card > footer { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }
.workshop-ticket-card > footer p { flex-basis: 100%; margin: 0; }
.workshop-ticket-customer { display: grid; justify-items: center; max-width: 100%; margin-top: .25rem; }
.workshop-ticket-customer strong,
.workshop-ticket-customer span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workshop-kiosk-empty { width: min(44rem, 100%); margin: 4rem auto; padding: 2rem; border-radius: 1.5rem; background: #fff; text-align: center; }

@media screen {
  .workshop-ticket-page { height: 100dvh; min-height: 0; padding: clamp(.5rem, 1.5vw, 1rem); overflow: hidden; }
  .workshop-ticket-card { display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto auto; max-height: calc(100dvh - clamp(1rem, 3vw, 2rem)); padding: clamp(.75rem, 1.5vw, 1.25rem); overflow: hidden; border-radius: 1.25rem; }
  .workshop-ticket-card > header { align-items: center; }
  .workshop-ticket-card > header p { margin: .15rem 0; }
  .workshop-ticket-card h1 { margin: .1rem 0; font-size: clamp(1.35rem, 3vw, 2.2rem); line-height: 1; }
  .workshop-success-mark { flex-basis: 2.5rem; width: 2.5rem; height: 2.5rem; }
  .workshop-ticket-content { min-height: 0; gap: .75rem; margin: .65rem 0; }
  .workshop-ticket-designs { min-height: 0; grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr)); align-content: center; gap: .5rem; }
  .workshop-ticket-designs article { min-height: 0; padding: .4rem; }
  .workshop-ticket-designs canvas { width: auto; max-width: 100%; height: min(25dvh, 12rem); justify-self: center; }
  .workshop-ticket-qr { min-height: 0; padding: .55rem; }
  .workshop-ticket-qr img { width: min(100%, 10.5rem, 22dvh); }
  .workshop-ticket-lines { gap: .3rem; }
  .workshop-ticket-lines span { padding: .25rem .5rem; font-size: .82rem; }
  .workshop-ticket-warning { margin: .45rem 0; padding: .45rem .65rem; }
  .workshop-ticket-card > footer { gap: .4rem; }
}

@media (max-width: 720px) {
  .workshop-kiosk-header,
  .workshop-kiosk-checkout { grid-template-columns: 1fr; flex-direction: column; align-items: stretch; }
  .workshop-kiosk-header { align-items: start; }
  .workshop-ticket-content { grid-template-columns: minmax(0, 1fr) minmax(8rem, 42%); }
  .workshop-ticket-qr { max-width: 20rem; justify-self: stretch; }
}

@media print {
  .workshop-ticket-page { display: block; min-height: 0; padding: 0; background: #fff; }
  .workshop-ticket-card { width: 100%; padding: 0; box-shadow: none; }
  .workshop-ticket-card > header p,
  .workshop-ticket-card > footer,
  .workshop-ticket-warning { display: none; }
}

/* Les cartes de brouillon de l'atelier suivent le ratio technique du mockup. */
.workshop-product-actions {
  grid-template-columns: minmax(0, 1fr);
}

.workshop-product-actions > * {
  grid-column: 1;
}

.workshop-draft-gallery {
  align-items: start;
}

.workshop-draft-card {
  align-self: start;
}

.workshop-draft-edit {
  display: block;
}

.workshop-draft-edit > strong {
  display: block;
  margin-top: .35rem;
}

.workshop-draft-preview {
  display: block;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto;
}

/* Réunions : une interface dense pendant la séance, lisible comme un compte rendu ensuite. */
.auth-page:has(> .meeting-room) {
  background:
    radial-gradient(
      circle at 50% -12rem,
      color-mix(in srgb, var(--organization-primary, var(--brand)) 34%, var(--organization-page, var(--bg))) 0,
      var(--organization-page, var(--bg)) 34rem
    );
}
.meeting-hub,
.meeting-room { display: grid; gap: 1.2rem; }
.meeting-room {
  color: var(--organization-page-ink, var(--ink));
}
.meeting-room-header,
.meeting-minutes-head,
.meeting-topic-tools,
.meeting-capture,
.meeting-chat,
.meeting-report {
  color: var(--organization-surface-ink, var(--ink));
  border: 1px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 18%, var(--line));
  border-radius: 1.15rem;
  background: var(--organization-surface, var(--surface));
  box-shadow: 0 .75rem 2rem color-mix(in srgb, var(--organization-primary, var(--brand)) 9%, transparent);
}
.meeting-room-header {
  padding: 1.2rem;
}
.meeting-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1rem; }
.meeting-list.compact { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.meeting-card { display: grid; gap: .45rem; align-content: start; min-height: 10rem; }
.meeting-card > div { display: flex; flex-wrap: wrap; gap: .4rem; }
.meeting-create summary,
.meeting-settings summary { cursor: pointer; font-size: 1.05rem; font-weight: 850; }
.meeting-calendar-link { margin-top: 1rem; padding: .8rem 1rem; border-radius: .8rem; background: color-mix(in srgb, #15803d 12%, var(--surface)); }
.meeting-calendar-create { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(12rem, 1fr) auto; align-items: end; gap: .75rem; margin-top: 1rem; padding: 1rem; border: 1px solid var(--border); border-radius: 1rem; background: color-mix(in srgb, var(--surface) 85%, var(--primary) 15%); }
.meeting-calendar-create > strong { grid-column: 1 / -1; }
.meeting-calendar-create label { display: grid; gap: .35rem; font-weight: 750; }
.meeting-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; margin-top: 1rem; }
.meeting-form-grid label { display: grid; gap: .35rem; color: var(--text-muted); font-weight: 750; }
.meeting-form-grid .form-span { grid-column: 1 / -1; }
.meeting-attendees { grid-column: 1 / -1; padding: 1rem; border: 1px solid var(--border); border-radius: 1rem; }
.meeting-attendees > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .5rem; max-height: 15rem; overflow: auto; }
.meeting-attendees label { display: flex; grid-template-columns: auto 1fr; align-items: center; gap: .5rem; padding: .55rem; border-radius: .65rem; background: color-mix(in srgb, var(--surface) 82%, var(--primary) 18%); }
.meeting-summary-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.meeting-summary-strip > div { display: grid; gap: .2rem; padding: .85rem 1rem; color: var(--organization-surface-ink, var(--ink)); border-radius: 1rem; background: var(--organization-surface, var(--surface)); border: 1px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 18%, var(--line)); box-shadow: 0 .45rem 1.2rem color-mix(in srgb, var(--organization-primary, var(--brand)) 7%, transparent); }
.meeting-summary-strip small { color: var(--text-muted); }
.meeting-minutes-head { display: grid; grid-template-columns: minmax(14rem, .7fr) minmax(18rem, 1.3fr); gap: 1.2rem; padding: 1.1rem; }
.meeting-minutes-head p { margin: .25rem 0; }
.meeting-minutes-head > div + div { padding-left: 1.2rem; border-left: 1px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 16%, var(--line)); }
.meeting-person { display: inline-flex; margin: .2rem; padding: .35rem .6rem; border-radius: 999px; background: color-mix(in srgb, var(--primary) 12%, var(--surface)); font-weight: 750; }
.meeting-person.is-guest { border: 1px dashed var(--border); }
.meeting-retrospective { padding: .7rem 1rem; border-left: .25rem solid var(--primary); background: color-mix(in srgb, var(--surface) 90%, var(--primary) 10%); }
.meeting-retrospective summary { cursor: pointer; font-weight: 800; }
.meeting-retrospective form { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; margin-top: .75rem; }
.meeting-retrospective label { display: grid; gap: .3rem; }
.meeting-topic-tools { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; padding: 1rem; }
.meeting-topic-tools form { display: flex; flex-wrap: wrap; align-items: end; gap: .6rem; }
.meeting-topic-tools label { display: grid; gap: .3rem; }
.meeting-agenda-picker { flex: 1 1 100%; padding-top: .75rem; border-top: 1px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 15%, var(--line)); }
.meeting-agenda-picker summary { width: max-content; cursor: pointer; font-weight: 850; }
.meeting-agenda-picker form { display: grid; gap: .75rem; margin-top: .75rem; }
.meeting-agenda-picker form > div { display: flex; flex-wrap: wrap; gap: .55rem; }
.meeting-agenda-picker label { cursor: pointer; }
.meeting-agenda-picker input { position: absolute; opacity: 0; pointer-events: none; }
.meeting-agenda-picker span { display: block; padding: .55rem .8rem; color: var(--organization-field-ink, var(--ink)); border: 1px solid var(--line); border-radius: 999px; background: var(--organization-field, var(--surface)); font-weight: 750; transition: .15s ease; }
.meeting-agenda-picker input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 35%, transparent); outline-offset: 2px; }
.meeting-agenda-picker input:checked + span { color: var(--organization-primary-ink, #fff); border-color: var(--organization-primary, var(--brand)); background: var(--organization-primary, var(--brand)); box-shadow: 0 .35rem .8rem color-mix(in srgb, var(--organization-primary, var(--brand)) 18%, transparent); }
.meeting-minutes { display: grid; gap: 1rem; }
.meeting-topic { overflow: hidden; border: 1px solid var(--border); border-radius: 1rem; background: var(--surface); }
.meeting-topic > header { display: grid; grid-template-columns: 2.5rem 1fr; gap: .8rem; align-items: start; padding: 1rem; background: color-mix(in srgb, var(--surface) 85%, var(--primary) 15%); }
.meeting-topic > header h3 { margin: .2rem 0; }
.meeting-topic-number { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; color: #fff; background: var(--primary); font-weight: 900; }
.meeting-topic-notes { display: grid; padding: 0 1rem; }
.meeting-minute-line { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .75rem; align-items: start; padding: .8rem 0; border-bottom: 1px solid var(--border); }
.meeting-minute-line p { margin: .25rem 0 0; }
.meeting-vote-result, .meeting-electronic-vote { margin: .8rem 1rem; padding: .65rem .8rem; border-radius: .7rem; background: color-mix(in srgb, #15803d 11%, var(--surface)); }
.meeting-topic-decision { margin: .8rem 1rem 1rem; padding: .7rem; border: 1px solid var(--border); border-radius: .75rem; }
.meeting-topic-decision summary { cursor: pointer; font-weight: 800; }
.meeting-topic-decision form { display: grid; gap: .6rem; margin-top: .7rem; }
.meeting-hand-vote { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.meeting-hand-vote label { display: grid; gap: .25rem; }
.meeting-followups { display: grid; gap: .5rem; }
.meeting-live-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; min-height: 2.8rem; }
.meeting-live-indicator { color: #b42318; font-weight: 900; animation: meetingPulse 1.7s infinite; }
@keyframes meetingPulse { 50% { opacity: .55; } }
.meeting-capture { display: grid; grid-template-columns: 1fr; gap: .85rem; padding: 1.1rem; border-width: 2px; }
.meeting-capture > div h2,
.meeting-capture > div p { margin-block: .2rem; }
.meeting-capture form { display: grid; gap: .75rem; }
.meeting-capture-toolbar { display: grid; grid-template-columns: minmax(12rem, .8fr) minmax(20rem, 1.2fr); gap: .75rem; align-items: end; }
.meeting-capture-toolbar > label { display: grid; gap: .35rem; font-weight: 750; }
.meeting-capture input,
.meeting-capture select,
.meeting-capture textarea,
.meeting-chat textarea {
  color: var(--organization-field-ink, var(--ink));
  border-color: color-mix(in srgb, var(--organization-primary, var(--brand)) 22%, var(--line));
  background: var(--organization-field, var(--surface));
}
.meeting-kind-picker { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .55rem; margin: 0; padding: 0; border: 0; }
.meeting-kind-picker legend { margin-bottom: .55rem; font-weight: 800; }
.meeting-kind-picker label { cursor: pointer; }
.meeting-kind-picker input { position: absolute; opacity: 0; pointer-events: none; }
.meeting-kind-picker span { display: grid; gap: .18rem; min-height: 100%; padding: .7rem .8rem; color: var(--organization-field-ink, var(--ink)); border: 1px solid var(--border); border-radius: .8rem; background: var(--organization-field, var(--surface)); }
.meeting-kind-picker span strong { font-size: .9rem; }
.meeting-kind-picker span small { color: color-mix(in srgb, var(--organization-field-ink, var(--ink)) 68%, transparent); font-size: .75rem; font-weight: 600; line-height: 1.3; }
.meeting-kind-picker input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 35%, transparent); outline-offset: 2px; }
.meeting-kind-picker input:checked + span { color: var(--organization-primary-ink, #fff); background: var(--organization-primary, var(--brand)); border-color: var(--organization-primary, var(--brand)); box-shadow: 0 .45rem 1rem color-mix(in srgb, var(--organization-primary, var(--brand)) 22%, transparent); }
.meeting-kind-picker input:checked + span small { color: color-mix(in srgb, var(--organization-primary-ink, #fff) 78%, transparent); }
.meeting-capture .meeting-kind-picker { display: flex; flex-wrap: wrap; align-items: end; }
.meeting-capture .meeting-kind-picker legend { flex-basis: 100%; }
.meeting-capture .meeting-kind-picker span { min-height: 0; padding: .48rem .7rem; border-radius: 999px; }
.meeting-live-note textarea { width: 100%; min-height: 14rem; padding: 1rem; font: inherit; font-size: 1rem; line-height: 1.55; resize: vertical; }
.meeting-notes { display: grid; gap: .65rem; }
.meeting-note { display: grid; grid-template-columns: 2.7rem minmax(0, 1fr); gap: .8rem; padding: 1rem; border: 1px solid var(--border); border-left: .35rem solid #8c9a97; border-radius: 1rem; background: var(--surface); }
.meeting-note.is-idea { border-left-color: #7c3aed; }
.meeting-note.is-task { border-left-color: #d97706; }
.meeting-note.is-poll { border-left-color: #2563eb; }
.meeting-note.is-decision { border-left-color: #15803d; }
.meeting-note-index { display: grid; place-items: center; align-self: start; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: color-mix(in srgb, var(--primary) 14%, var(--surface)); font-weight: 900; }
.meeting-note-content { min-width: 0; }
.meeting-note-heading { display: flex; justify-content: space-between; gap: .6rem; }
.meeting-note-content h3 { margin: .55rem 0 .3rem; }
.meeting-note-content p { white-space: normal; }
.meeting-converted { color: #157347; font-weight: 800; }
.meeting-convert { margin-top: .65rem; padding: .65rem; border-radius: .7rem; background: color-mix(in srgb, var(--surface) 75%, var(--primary) 25%); }
.meeting-convert form { display: grid; gap: .55rem; margin-top: .6rem; }
.meeting-report dl { display: grid; gap: .5rem; }
.meeting-report dl > div { display: grid; grid-template-columns: 10rem 1fr; gap: .75rem; padding-bottom: .5rem; border-bottom: 1px solid var(--border); }
.meeting-report dt { font-weight: 850; }
.meeting-report dd { margin: 0; }
.project-meeting-summary { margin-block: 1rem; }
.meeting-project-list { display: grid; gap: .65rem; margin-top: 1rem; }
.meeting-project-list > a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; padding: .8rem; color: inherit; text-decoration: none; border: 1px solid var(--border); border-radius: .85rem; background: color-mix(in srgb, var(--surface) 92%, var(--primary) 8%); }
.meeting-project-list > a:hover { border-color: var(--primary); transform: translateY(-1px); }
.meeting-project-list small { color: var(--text-muted); text-align: right; }
@media (max-width: 760px) {
  .meeting-form-grid,
  .meeting-capture,
  .meeting-capture-toolbar,
  .meeting-calendar-create { grid-template-columns: 1fr; }
  .meeting-summary-strip { grid-template-columns: repeat(2, 1fr); }
  .meeting-minutes-head { grid-template-columns: 1fr; }
  .meeting-minutes-head > div + div { padding-top: 1rem; padding-left: 0; border-top: 1px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 16%, var(--line)); border-left: 0; }
  .meeting-minute-line { grid-template-columns: 1fr; }
  .meeting-hand-vote { grid-template-columns: 1fr; }
  .meeting-room-header .header-actions { align-items: stretch; }
  .meeting-project-list > a { grid-template-columns: 1fr; }
  .meeting-project-list small { text-align: left; }
}
@media print {
  .meeting-room > nav,
  .meeting-room-header .header-actions,
  .meeting-settings,
  .meeting-live-bar,
  .meeting-capture,
  .meeting-chat,
  .meeting-convert,
  .meeting-notes .section-heading { display: none !important; }
  .meeting-room { color: #111; background: #fff; }
  .meeting-note { break-inside: avoid; box-shadow: none; }
}
.meeting-electronic-vote {
  display: grid;
  gap: .75rem;
  margin: 1rem;
  padding: 1rem;
  color: var(--organization-surface-ink, var(--ink));
  border: 1px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 32%, var(--line));
  border-radius: 1rem;
  background: color-mix(in srgb, var(--organization-primary, var(--brand)) 7%, var(--organization-surface, var(--surface)));
}

.meeting-electronic-vote.is-open {
  box-shadow: inset .25rem 0 0 var(--organization-primary, var(--brand));
}

.meeting-electronic-vote p {
  margin: .2rem 0;
}

.meeting-live-options,
.meeting-vote-open-form {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: end;
}

.meeting-live-options .button {
  min-width: 8rem;
}

.meeting-vote-open-form label {
  min-width: 8rem;
  flex: 0 1 10rem;
}

.meeting-vote-open-form .muted {
  flex-basis: 100%;
  font-size: .88rem;
}

.meeting-chat {
  position: fixed;
  z-index: 80;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  display: block;
  width: min(25rem, calc(100vw - 2rem));
  margin: 0;
  padding: 0;
  overflow: hidden;
  overscroll-behavior: contain;
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--organization-primary, var(--brand)) 8%, var(--organization-surface, var(--surface))),
      var(--organization-surface, var(--surface)) 42%
    );
  box-shadow: 0 1.25rem 3.5rem rgba(0, 0, 0, .28);
}

.meeting-chat-toggle {
  display: flex;
  width: 100%;
  min-height: 2.65rem;
  align-items: center;
  gap: .45rem;
  padding: .3rem .45rem .3rem .75rem;
  color: var(--organization-primary-ink, #fff);
  border: 0;
  background: linear-gradient(110deg, color-mix(in srgb, var(--organization-primary, var(--brand)) 84%, #102a33), var(--organization-primary, var(--brand)));
  text-align: left;
}

.meeting-chat-toggle > button:first-child {
  display: grid;
  flex: 1;
  gap: .05rem;
  padding: .15rem 0;
  color: inherit;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.meeting-chat-toggle small {
  color: color-mix(in srgb, var(--organization-primary-ink, #fff) 75%, transparent);
  font-size: .66rem;
}

.meeting-chat-window-actions {
  display: flex;
  gap: .15rem;
}

.meeting-chat-window-actions button {
  display: grid;
  width: 1.75rem;
  height: 1.75rem;
  place-items: center;
  padding: 0;
  color: inherit;
  border: 0;
  border-radius: 999px;
  background: color-mix(in srgb, var(--organization-primary-ink, #fff) 9%, transparent);
  cursor: pointer;
}

.chat-window-icon {
  position: relative;
  display: block;
  width: .72rem;
  height: .58rem;
}

.chat-window-icon::before,
.chat-window-icon::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  border-color: currentColor;
}

.chat-window-icon.is-collapse::before {
  bottom: .08rem;
  border-bottom: 1.5px solid;
}

.chat-window-icon.is-half::before,
.chat-window-icon.is-full::before {
  inset: 0;
  border: 1.5px solid;
  border-radius: .12rem;
}

.chat-window-icon.is-half::after {
  right: .08rem;
  bottom: .08rem;
  left: .08rem;
  height: .2rem;
  background: currentColor;
}

.meeting-chat-window-actions button:hover,
.meeting-chat-window-actions button:focus-visible {
  background: color-mix(in srgb, var(--organization-primary-ink, #fff) 23%, transparent);
}

.meeting-chat-unread {
  display: grid;
  place-items: center;
  min-width: 1.65rem;
  height: 1.65rem;
  padding-inline: .35rem;
  border-radius: 999px;
  color: #fff;
  background: #b42318;
  font-size: .78rem;
  font-weight: 900;
}

.meeting-chat-unread[hidden] {
  display: none;
}

.meeting-chat-body {
  display: grid;
  grid-template-rows: auto auto minmax(5rem, 1fr) auto;
  gap: .5rem;
  height: min(26rem, calc(52vh - 3rem));
  padding: .65rem;
  overflow: hidden;
  overscroll-behavior: contain;
  opacity: 1;
  transition: height .22s ease, padding .22s ease, opacity .16s ease;
}

.meeting-chat.is-collapsed .meeting-chat-body {
  height: 0;
  padding-block: 0;
  opacity: 0;
  pointer-events: none;
}

.meeting-chat.is-full {
  top: max(1rem, env(safe-area-inset-top));
}

.meeting-chat.is-full .meeting-chat-body {
  height: calc(100vh - 4.65rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));
}

.meeting-chat-people,
.meeting-chat-tabs {
  display: flex;
  gap: .35rem;
  overflow-x: auto;
  scrollbar-width: thin;
}

.meeting-chat-people {
  align-items: center;
  min-height: 1.6rem;
  font-size: .66rem;
  white-space: nowrap;
}

.meeting-chat-people > span {
  color: var(--muted);
}

.meeting-chat-people i {
  margin-left: .2rem;
  padding: .12rem .3rem;
  color: var(--chat-author-color, var(--organization-primary, var(--brand)));
  border-radius: 999px;
  background: color-mix(in srgb, var(--chat-author-color, #fff) 16%, #102a33);
  font-style: normal;
  font-weight: 800;
}

.meeting-chat-people i::before {
  content: "●";
  margin-right: .2rem;
}

.meeting-chat-people i.is-guest {
  color: var(--muted);
}

.meeting-chat-tabs {
  padding-bottom: .15rem;
}

.meeting-chat-tabs button {
  flex: 0 0 auto;
  padding: .32rem .58rem;
  color: var(--organization-field-ink, var(--ink));
  border: 1px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 18%, var(--line));
  border-radius: 999px;
  background: var(--organization-field, var(--surface));
  font: inherit;
  font-size: .72rem;
  cursor: pointer;
}

.meeting-chat-tabs button:not(:first-child) {
  color: var(--chat-author-color, var(--organization-field-ink, var(--ink)));
}

.meeting-chat-tabs button.is-active {
  color: var(--organization-primary-ink, #fff);
  border-color: var(--organization-primary, var(--brand));
  background: var(--organization-primary, var(--brand));
}

.meeting-chat-stream {
  display: grid;
  align-content: start;
  gap: .2rem;
  min-height: 5rem;
  max-height: none;
  overflow: auto;
  overscroll-behavior: contain;
  padding: .65rem .75rem;
  color: var(--organization-field-ink, var(--ink));
  border: 1px solid color-mix(in srgb, var(--organization-primary, var(--brand)) 14%, var(--line));
  border-radius: .85rem;
  background: color-mix(in srgb, var(--organization-primary, var(--brand)) 5%, var(--organization-field, var(--surface)));
  scrollbar-color: color-mix(in srgb, var(--organization-primary, var(--brand)) 45%, transparent) transparent;
}

.meeting-chat-stream article {
  display: block;
  min-width: 0;
  max-width: 100%;
  padding: .38rem .7rem .38rem .35rem;
  color: var(--organization-field-ink, var(--ink));
}

.meeting-chat-stream article[hidden] { display: none; }

.meeting-chat-stream article strong {
  display: inline;
  color: var(--chat-author-color, var(--organization-primary, var(--brand)));
  padding: .08rem .28rem;
  border-radius: .35rem;
  background: color-mix(in srgb, var(--chat-author-color, #fff) 14%, #102a33);
  font-size: .78rem;
  line-height: 1.35;
  white-space: nowrap;
}

.meeting-chat-stream article strong::after {
  content: " :";
}

.meeting-chat-stream article p {
  display: block;
  margin: 0;
  padding-left: .65rem;
  color: var(--organization-field-ink, var(--ink));
  line-height: 1.45;
  text-indent: -.35rem;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.meeting-chat-stream article p small {
  display: inline;
  margin-left: .25rem;
  color: var(--muted);
  font-size: .64rem;
}

.meeting-chat-stream time {
  display: block;
  margin: .05rem 0 0 .65rem;
  color: color-mix(in srgb, var(--organization-field-ink, var(--ink)) 62%, transparent);
  font-size: .64rem;
  line-height: 1.25;
}

.meeting-chat form {
  display: flex;
  gap: .75rem;
  align-items: end;
  padding-top: .15rem;
}

.meeting-chat textarea {
  flex: 1;
  min-width: 0;
  min-height: 3.25rem;
  resize: vertical;
}

.meeting-chat form .button {
  flex: 0 0 auto;
}

.meeting-chat textarea::placeholder {
  color: color-mix(in srgb, var(--organization-field-ink, var(--ink)) 55%, transparent);
}

@media (max-width: 760px) {
  .meeting-chat {
    right: max(.6rem, env(safe-area-inset-right));
    bottom: max(.6rem, env(safe-area-inset-bottom));
    width: calc(100vw - 1.2rem);
  }

  .meeting-chat.is-full {
    top: max(.6rem, env(safe-area-inset-top));
  }

  .meeting-chat form {
    flex-direction: column;
    align-items: stretch;
  }
}
