@import url("../../jig/style/jig.css");
@import url("../../nef/app/style/common.css");

html,
body {
  margin: 0;
  min-height: 100%;
  background: #f4f6f5;
  color: #1f2926;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.geonefApp-gites-ops {
  min-height: 100vh;
}

.geonefDisplay-gites-ops {
  left: 0;
  top: 58px;
  background: #f4f6f5;
  overflow: hidden;
}

.atelierTopbar {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 58px;
  padding: 0 22px;
  background: #263a35;
  color: #fff;
}

.atelierTopbar h1 {
  flex: 0 0 auto;
  margin: 0;
  font-size: 19px;
  font-weight: 650;
  letter-spacing: 0;
  white-space: nowrap;
}

.atelierTopbar h1 a {
  color: inherit;
  text-decoration: none;
}

.atelierTopbar h1 a:hover {
  color: #fff;
}

.atelierTopbarCategories {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.atelierTopbarModules {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.atelierTopbarSeparator {
  flex: 0 0 auto;
  width: 1px;
  height: 24px;
  margin: 0 3px;
  background: rgba(255, 255, 255, 0.22);
}

.atelierTopbarModuleNav {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: 6px;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: thin;
}

.atelierTopbarCategory,
.atelierTopbarModule,
.atelierTopbarFullscreenButton {
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 6px;
  background: transparent;
  color: #dce6e2;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}

.atelierTopbarModule {
  flex: 0 0 auto;
  font-size: 12px;
}

.atelierTopbarFullscreenButton {
  flex: 0 0 auto;
  width: 34px;
  padding: 0;
  font-size: 18px;
  line-height: 1;
}

.atelierTopbarCategory:hover,
.atelierTopbarCategory.active,
.atelierTopbarModule:hover,
.atelierTopbarModule.active,
.atelierTopbarFullscreenButton:hover {
  border-color: rgba(255, 255, 255, 0.36);
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.atelierTopbarMeta {
  display: flex;
  flex: 0 0 auto;
  gap: 14px;
  margin-left: auto;
  color: #d5dfdb;
  font-size: 13px;
}

.atelierUserMenu {
  position: relative;
  flex: 0 0 auto;
  min-width: 0;
}

.atelierUserMenuAnonymous {
  color: #d5dfdb;
  font-size: 13px;
}

.atelierUserMenuButton.button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 0 10px 0 4px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

.atelierUserIcon {
  display: inline-grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: #dfe8e4;
  color: #263a35;
  font-size: 12px;
  font-weight: 750;
}

.atelierUserIcon.large {
  width: 36px;
  height: 36px;
  font-size: 13px;
}

.atelierUserName {
  max-width: 130px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.atelierUserMenuDropdown {
  position: absolute;
  z-index: 20;
  top: calc(100% + 10px);
  right: 0;
  width: 260px;
  padding: 14px;
  background: #fff;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  box-shadow: 0 14px 32px rgba(31, 41, 38, 0.18);
  color: #1f2926;
}

.atelierUserMenuIdentity {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e9e6;
}

.atelierUserMenuIdentity strong,
.atelierUserMenuIdentity span {
  display: block;
}

.atelierUserMenuIdentity span {
  color: #63716c;
  font-size: 12px;
}

.atelierUserMenuBlock {
  margin-top: 12px;
}

.atelierUserMenuBlock h3 {
  margin: 0 0 6px;
  color: #3f504a;
  font-size: 12px;
  text-transform: uppercase;
}

.atelierUserMenuBlock ul {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.atelierUserMenuBlock li {
  padding: 4px 7px;
  border: 1px solid #dbe4e0;
  border-radius: 999px;
  background: #f5f8f6;
  color: #33443e;
  font-size: 12px;
}

.atelierUserMenuLogout.button {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  margin-top: 14px;
  padding: 0 10px;
  border: 1px solid #cad5d1;
  border-radius: 6px;
  background: #fff;
  color: #2c3d38;
  font-size: 13px;
}

.atelierHomePane {
  height: calc(100vh - 58px);
  background: #f4f6f5;
  overflow: hidden;
}

.atelierWorkspace {
  display: flex;
  flex-direction: column;
  max-width: none;
  height: 100%;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
  overflow: hidden;
}

.atelierWorkspaceTabs {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.atelierLoginScreen {
  display: grid;
  min-height: calc(100vh - 58px);
  place-items: center;
  padding: 24px;
}

.atelierGuestScreen {
  max-width: 1180px;
  margin: 0 auto;
  padding: 28px 22px 40px;
}

.atelierLogin {
  width: min(100%, 360px);
  padding: 22px;
  background: #fff;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(31, 41, 38, 0.08);
}

.atelierLogin h2 {
  margin: 0 0 6px;
  font-size: 22px;
}

.atelierLogin p {
  margin: 0 0 18px;
  color: #63716c;
}

.atelierLoginField {
  display: grid;
  gap: 6px;
  margin-bottom: 12px;
  color: #3f504a;
  font-size: 13px;
  font-weight: 650;
}

.atelierLoginField select,
.atelierLoginField input {
  min-height: 38px;
  padding: 0 10px;
  border: 1px solid #c9d4d0;
  border-radius: 6px;
  background: #fff;
  color: #1f2926;
  font: inherit;
}

.atelierLogin .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  margin-top: 4px;
  padding: 0 14px;
  border: 1px solid #263a35;
  border-radius: 6px;
  background: #263a35;
  color: #fff;
}

.atelierLoginError {
  margin: 4px 0 10px;
  color: #9b2c2c;
  font-size: 13px;
}

.atelierAuthModal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 24px;
}

.atelierAuthModalBackdrop {
  position: absolute;
  inset: 0;
  background: rgba(17, 24, 22, 0.42);
}

.atelierAuthDialog {
  position: relative;
  z-index: 1;
  width: min(100%, 380px);
  padding: 22px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(17, 24, 22, 0.22);
}

.atelierAuthDialog h2 {
  margin: 0 0 6px;
  font-size: 21px;
}

.atelierAuthDialog p {
  margin: 0 0 18px;
  color: #63716c;
}

.atelierAuthActions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 4px;
}

.atelierApiErrorModal {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: grid;
  place-items: center;
  padding: 24px;
}

.atelierApiErrorBackdrop {
  position: absolute;
  inset: 0;
  background: rgba(32, 18, 18, 0.34);
}

.atelierApiErrorDialog {
  position: relative;
  z-index: 1;
  width: min(100%, 440px);
  padding: 18px;
  border: 1px solid #e1c5c5;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(32, 18, 18, 0.24);
}

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

.atelierApiErrorDialog h2 {
  margin: 0;
  font-size: 19px;
}

.atelierApiErrorDialog header button {
  width: 32px;
  height: 32px;
  border: 1px solid #d8caca;
  border-radius: 6px;
  background: #fff;
  color: #5c2f2f;
  font-size: 20px;
  line-height: 1;
}

.atelierApiErrorCode {
  margin: 0 0 8px;
  color: #842626;
  font-weight: 750;
}

.atelierApiErrorMessage,
.atelierApiErrorRequest {
  margin: 0 0 10px;
  color: #4f3838;
  overflow-wrap: anywhere;
}

.atelierApiErrorRequest {
  color: #7a6666;
  font-size: 13px;
}

.atelierApiErrorActions {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
}

.edgeFacetShell {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  height: 100%;
  min-height: 0;
  border: 1px solid #d6dedb;
  background: #fff;
}

.edgeFacetSidebar {
  display: grid;
  align-content: start;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
  overflow: hidden;
  padding: 14px;
  border-right: 1px solid #d6dedb;
  background: #f8faf9;
}

.edgeFacetSidebarTabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  min-width: 0;
}

.edgeFacetSidebarTab {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 0;
  min-height: 54px;
  padding: 6px 5px;
  border: 1px solid #c8d3cf;
  border-radius: 6px;
  background: #fff;
  color: #31423c;
  font: inherit;
  font-size: 11px;
  line-height: 1.1;
  cursor: pointer;
}

.edgeFacetSidebarTab i {
  color: #557068;
  font-size: 17px;
  line-height: 1;
}

.edgeFacetSidebarTab span {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-align: center;
  text-overflow: ellipsis;
}

.edgeFacetSidebarTab.active {
  border-color: #2d5b4d;
  background: #2d5b4d;
  color: #fff;
}

.edgeFacetSidebarTab.active i {
  color: #fff;
}

.edgeFacetSidebarPanel {
  display: grid;
  align-content: start;
  grid-auto-rows: max-content;
  gap: 14px;
  min-height: 0;
  min-width: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding-right: 4px;
  scrollbar-gutter: stable;
}

.edgeFacetSidebarPanelOpenFile {
  align-content: stretch;
  grid-auto-rows: minmax(0, 1fr);
  overflow: hidden;
}

.edgeFacetBlock {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.edgeFacetBlock h4 {
  margin: 0;
  color: #31423c;
  font-size: 13px;
  text-transform: uppercase;
}

.edgeFacetButton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid #c8d3cf;
  border-radius: 6px;
  background: #fff;
  color: #253631;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}

.edgeFacetButton i {
  flex: 0 0 auto;
  font-size: 12px;
  line-height: 1;
}

.edgeFacetVisuallyHidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.edgeFacetButton.primary,
.edgeFacetButton.active {
  border-color: #2d5b4d;
  background: #2d5b4d;
  color: #fff;
}

.edgeFacetButton.danger {
  border-color: #9d3b32;
  color: #8d2f27;
}

.edgeFacetButton.danger:hover {
  background: #fff1ef;
}

.edgeFacetButton:disabled {
  cursor: default;
  opacity: 0.45;
}

.edgeFacetSidebar .edgeFacetButton {
  width: 100%;
  min-width: 0;
}

.edgeFacetFilePanel {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  gap: 10px;
  min-height: 0;
  min-width: 0;
}

.edgeFacetFilePanelOpen {
  height: 100%;
}

.edgeFacetCurrentProject {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 9px;
  border: 1px solid #d6dedb;
  border-radius: 6px;
  background: #fff;
}

.edgeFacetCurrentTitle {
  gap: 4px;
}

.edgeFacetTitleInlineButton {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #1f2926;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.edgeFacetTitleInlineButton strong {
  min-width: 0;
  overflow: visible;
  overflow-wrap: anywhere;
  font-size: 15px;
  line-height: 1.2;
  text-overflow: clip;
  white-space: normal;
}

.edgeFacetTitleInlineButton i {
  color: #557068;
  font-size: 12px;
}

.edgeFacetTitleInlineInput {
  font-weight: 700;
}

.edgeFacetCurrentMeta {
  display: grid;
  gap: 2px;
  min-width: 0;
  color: #6d7a75;
  font-size: 12px;
}

.edgeFacetCurrentMeta span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edgeFacetCurrentActions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  min-width: 0;
}

.edgeFacetCurrentActionButton {
  width: 100%;
  min-width: 0;
  min-height: 32px;
  padding: 0;
}

.edgeFacetCurrentActionButton i {
  font-size: 13px;
}

.edgeFacetActionGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  min-width: 0;
}

.edgeFacetFileTabs {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
  min-width: 0;
}

.edgeFacetFileTabsPrimary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  min-width: 0;
}

.edgeFacetFileTabsSecondary {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}

.edgeFacetFileTab {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-width: 0;
  min-height: 44px;
  padding: 5px 3px;
  border: 1px solid #c8d3cf;
  border-radius: 6px;
  background: #fff;
  color: #31423c;
  font: inherit;
  font-size: 10.5px;
  line-height: 1.05;
  cursor: pointer;
}

.edgeFacetFileTab i {
  color: #557068;
  font-size: 13px;
  line-height: 1;
}

.edgeFacetFileTabsSecondary .edgeFacetFileTab {
  flex-direction: row;
  min-height: 34px;
  gap: 6px;
  font-size: 11px;
}

.edgeFacetFileTab span {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edgeFacetFileTab.active {
  border-color: #2d5b4d;
  background: #2d5b4d;
  color: #fff;
}

.edgeFacetFileTab.active i {
  color: #fff;
}

.edgeFacetFileBody {
  display: grid;
  align-content: start;
  grid-auto-rows: max-content;
  gap: 12px;
  min-height: 0;
  min-width: 0;
  overflow: visible;
}

.edgeFacetFileBodyOpen {
  align-content: stretch;
  grid-auto-rows: minmax(0, 1fr);
  overflow: hidden;
}

.edgeFacetFileBodyOpen .edgeFacetFileSummaryBlock.active {
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 0;
}

.edgeFacetFileBodyOpen .edgeFacetFileEditBody {
  align-content: stretch;
  grid-template-rows: minmax(0, 1fr);
  min-height: 0;
  overflow: hidden;
}

.edgeFacetOpenBlock,
.edgeFacetVersionsBlock,
.edgeFacetReferenceBlock {
  min-height: max-content;
}

.edgeFacetOpenPanel {
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr);
  gap: 9px;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}

.edgeFacetProjectControls {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  min-width: 0;
}

.edgeFacetInlineControls {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
}

.edgeFacetProjectListMeta {
  color: #6d7a75;
  font-size: 12px;
}

.edgeFacetBulkMove {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  min-width: 0;
}

.edgeFacetProjectList {
  display: grid;
  gap: 6px;
  max-height: min(320px, 42vh);
  overflow: auto;
  padding-right: 4px;
  scrollbar-gutter: stable;
}

.edgeFacetOpenPanel .edgeFacetProjectList {
  max-height: none;
  min-height: 0;
}

.edgeFacetProjectGroup {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.edgeFacetProjectGroupHeader {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  min-width: 0;
  min-height: 30px;
  padding: 0 7px;
  border: 1px solid #d6dedb;
  border-radius: 6px;
  background: #f8faf9;
  color: #31423c;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  text-align: left;
  cursor: pointer;
}

.edgeFacetProjectGroupHeader span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edgeFacetProjectGroupHeader em {
  color: #6d7a75;
  font-size: 11px;
  font-style: normal;
  font-weight: 650;
}

.edgeFacetProjectGroupItems {
  display: grid;
  gap: 6px;
}

.edgeFacetProjectItem {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) 30px 30px;
  align-items: center;
  gap: 6px;
  width: 100%;
  padding: 9px;
  border: 1px solid #d6dedb;
  border-radius: 6px;
  background: #fff;
  color: #263a35;
  text-align: left;
}

.edgeFacetProjectItem.deleted {
  background: #f8faf9;
  color: #697772;
}

.edgeFacetProjectSelect {
  width: 16px;
  height: 16px;
  margin: 0;
}

.edgeFacetProjectOpen {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.edgeFacetProjectItem.active {
  border-color: #2d5b4d;
  box-shadow: inset 3px 0 0 #2d5b4d;
}

.edgeFacetProjectOpen:disabled {
  cursor: default;
}

.edgeFacetProjectDelete,
.edgeFacetProjectRestore {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  min-width: 30px;
  min-height: 28px;
  padding: 0;
  border: 1px solid #9d3b32;
  border-radius: 5px;
  background: #fff;
  color: #8d2f27;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.edgeFacetProjectRestore {
  border-color: #2d5b4d;
  color: #2d5b4d;
}

.edgeFacetProjectDelete:hover {
  background: #fff1ef;
}

.edgeFacetProjectRestore:hover {
  background: #edf7f2;
}

.edgeFacetVersionList {
  display: grid;
  gap: 6px;
  max-height: min(320px, 42vh);
  overflow: auto;
  padding-right: 4px;
  scrollbar-gutter: stable;
}

.edgeFacetVersionCurrent {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 9px;
  border: 1px solid #d6dedb;
  border-radius: 6px;
  background: #fff;
}

.edgeFacetVersionCurrent.selected,
.edgeFacetVersionItem.selected {
  border-color: #2d5b4d;
  background: #edf4f1;
}

.edgeFacetVersionCurrent.clickable,
.edgeFacetVersionItem.clickable {
  cursor: pointer;
}

.edgeFacetVersionCurrent.clickable:hover,
.edgeFacetVersionItem.clickable:hover {
  border-color: #8daf9f;
  background: #f3f8f6;
}

.edgeFacetVersionCurrentHead {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px;
  min-width: 0;
}

.edgeFacetVersionCurrentHead > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.edgeFacetVersionTitleLine,
.edgeFacetVersionCurrentHead strong,
.edgeFacetVersionCurrentHead span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edgeFacetVersionTitleLine {
  display: inline-flex;
  max-width: 100%;
  min-width: 0;
  align-items: center;
  gap: 5px;
}

.edgeFacetVersionTitle {
  display: block;
  width: fit-content;
  max-width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: #263a34;
  font: inherit;
  font-weight: 750;
  text-align: left;
}

.edgeFacetVersionCurrentHead span {
  color: #6d7a75;
  font-size: 12px;
}

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

.edgeFacetVersionItem {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border: 1px solid #d6dedb;
  border-radius: 6px;
  background: #fff;
}

.edgeFacetVersionItem > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.edgeFacetVersionItem strong,
.edgeFacetVersionItem span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edgeFacetVersionItem span {
  color: #6d7a75;
  font-size: 12px;
}

.edgeFacetVersionBadges {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
}

.edgeFacetVersionMarker {
  display: inline-flex;
  width: fit-content;
  min-width: 20px;
  min-height: 18px;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  border: 1px solid #b8cdc5;
  border-radius: 999px;
  background: #f7faf9;
  color: #2d5b4d;
  font-size: 11px;
  font-style: normal;
  font-weight: 750;
}

.edgeFacetVersionContext {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 7px;
  margin: 0;
  padding: 7px 8px;
  border: 1px solid #d7e1dd;
  border-radius: 6px;
  background: #f7faf9;
  color: #4a5d57;
  font-size: 12px;
  line-height: 1.35;
}

.edgeFacetVersionContext.warning {
  border-color: #e2c878;
  background: #fff9e8;
  color: #6a5520;
}

.edgeFacetVersionContext i {
  margin-top: 2px;
}

.edgeFacetLocalHistoryList {
  display: grid;
  gap: 10px;
  max-height: min(360px, 48vh);
  min-width: 0;
  overflow: auto;
  padding-right: 4px;
  scrollbar-gutter: stable;
}

.edgeFacetLocalHistorySession {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.edgeFacetLocalHistorySession h5 {
  margin: 0;
  color: #4f625c;
  font-size: 12px;
  font-weight: 750;
}

.edgeFacetLocalHistoryItems {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.edgeFacetHistoryItem {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid #d6dedb;
  border-radius: 6px;
  background: #fff;
  color: #2c3d38;
  text-align: left;
}

.edgeFacetHistoryItem:hover {
  background: #f3f8f6;
  border-color: #a9c3ba;
}

.edgeFacetHistoryItem.active {
  background: #edf4f1;
  border-color: #2d5b4d;
  color: #315146;
  font-weight: 700;
}

.edgeFacetHistoryItem.redo {
  border-style: dashed;
}

.edgeFacetHistoryItem.initial {
  color: #51625d;
}

.edgeFacetHistoryItem:disabled {
  cursor: default;
  opacity: 1;
}

.edgeFacetHistoryAction {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edgeFacetHistoryMain {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
}

.edgeFacetHistoryMarkers {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 3px;
}

.edgeFacetHistoryMarker {
  display: inline-flex;
  min-width: 18px;
  height: 18px;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 0 4px;
  border: 1px solid #c6d6d0;
  border-radius: 999px;
  background: #f6faf8;
  color: #315146;
  font-size: 10px;
  font-weight: 750;
  line-height: 1;
}

.edgeFacetHistoryMarker i {
  font-size: 10px;
}

.edgeFacetHistoryPreview {
  pointer-events: none;
}

.edgeFacetHistoryPreviewEdge {
  fill: none;
  stroke: #d0438f;
  stroke-width: 5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 9 6;
  opacity: 0.82;
  vector-effect: non-scaling-stroke;
}

.edgeFacetHistoryAge {
  color: #6d7a75;
  font-size: 11px;
  white-space: nowrap;
}

.edgeFacetProjectItem strong,
.edgeFacetProjectItem span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edgeFacetProjectItem strong {
  overflow: visible;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}

.edgeFacetProjectItem span,
.edgeFacetMuted {
  color: #6d7a75;
  font-size: 12px;
}

.edgeFacetProjectTags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  min-width: 0;
}

.edgeFacetProjectTags em {
  display: inline-flex;
  max-width: 100%;
  min-height: 19px;
  align-items: center;
  padding: 0 6px;
  border-radius: 999px;
  background: #edf4f1;
  color: #315146;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edgeFacetProjectTags em.current {
  background: #2d5b4d;
  color: #fff;
}

.edgeFacetProjectTags em.tag {
  background: #f0eef8;
  color: #4d416d;
}

.edgeFacetProjectManage {
  display: grid;
  gap: 8px;
}

.edgeFacetProjectAssignRow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 32px;
  gap: 6px;
  min-width: 0;
}

.edgeFacetQuickProjectDialog {
  display: grid;
  gap: 8px;
  min-width: 0;
  width: min(360px, calc(100vw - 32px));
}

.edgeFacetQuickProjectDialog .edgeFacetCompactField {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

.edgeFacetQuickProjectDialog .edgeFacetCompactField > span {
  margin: 0;
}

@media (max-width: 420px) {
  .edgeFacetQuickProjectDialog .edgeFacetCompactField {
    grid-template-columns: minmax(0, 1fr);
  }
}

.edgeFacetFileSummaryBlock {
  gap: 8px;
  padding: 8px;
  border: 1px solid #d6dedb;
  border-radius: 6px;
  background: #fff;
}

.edgeFacetFileSummaryBlock.active {
  border-color: #9dbbb1;
  background: #fbfdfc;
}

.edgeFacetFileSummaryHeader {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.edgeFacetFileSummaryHeader > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.edgeFacetFileSummaryHeader h4,
.edgeFacetFileSummaryHeader .edgeFacetMetricLine {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edgeFacetFileEditBody {
  display: grid;
  gap: 9px;
  min-width: 0;
  padding-top: 2px;
}

.edgeFacetField {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: #3f504a;
  font-size: 13px;
  font-weight: 650;
}

.edgeFacetField input,
.edgeFacetField select,
.edgeFacetField textarea {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 34px;
  padding: 0 9px;
  border: 1px solid #c8d3cf;
  border-radius: 6px;
  background: #fff;
  color: #1f2926;
  font: inherit;
}

.edgeFacetField textarea {
  min-height: 92px;
  padding: 8px 9px;
  resize: vertical;
}

.edgeFacetFieldGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
  gap: 8px;
  min-width: 0;
}

.edgeFacetCheckField {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: #3f504a;
  font-size: 13px;
}

.edgeFacetCheckField input {
  width: 16px;
  height: 16px;
}

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

.edgeFacetMetricLine {
  min-width: 0;
  margin: 0;
  color: #566761;
  font-size: 12px;
  overflow-wrap: anywhere;
}

.edgeFacetWorkSummaryBlock {
  gap: 8px;
  padding: 8px;
  border: 1px solid #d6dedb;
  border-radius: 6px;
  background: #fff;
}

.edgeFacetWorkSummaryBlock.active {
  border-color: #9dbbb1;
  background: #fbfdfc;
}

.edgeFacetWorkSummaryHeader {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.edgeFacetWorkSummaryHeader > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.edgeFacetWorkSummaryHeader h4,
.edgeFacetWorkSummaryHeader .edgeFacetMetricLine {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edgeFacetWorkEditBody {
  display: grid;
  gap: 9px;
  min-width: 0;
  padding-top: 2px;
}

.edgeFacetWorkMeasureDetails {
  margin-top: 2px;
}

.edgeFacetCalibration {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.edgeFacetCalibrationMeasure {
  min-width: 0;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-gutter: stable;
}

.edgeFacetCalibrationBar {
  height: 12px;
  border: 1px solid #2d5b4d;
  border-radius: 2px;
  background: repeating-linear-gradient(
    90deg,
    rgba(45, 91, 77, 0.18) 0,
    rgba(45, 91, 77, 0.18) 1px,
    #ffffff 1px,
    #ffffff 10px
  );
}

.edgeFacetModalLayer {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(31, 41, 38, 0.28);
}

.edgeFacetModalDialog {
  display: grid;
  gap: 12px;
  width: min(720px, 100%);
  max-height: min(560px, calc(100% - 24px));
  overflow: auto;
  padding: 16px;
  border: 1px solid #c8d3cf;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(31, 41, 38, 0.22);
}

.edgeFacetModalHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.edgeFacetCorrectionReportDialog {
  width: min(920px, 100%);
}

.edgeFacetCorrectionReportText {
  width: 100%;
  min-height: 360px;
  padding: 10px;
  border: 1px solid #c8d3cf;
  border-radius: 6px;
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  font-size: 12px;
  line-height: 1.45;
  resize: vertical;
}

.edgeFacetCalibrationDialog .edgeFacetCalibrationMeasure {
  overflow-x: auto;
}

.edgeFacetIconButton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid #c8d3cf;
  border-radius: 6px;
  background: #fff;
  color: #253631;
  cursor: pointer;
}

.edgeFacetHiddenInput {
  display: none;
}

.edgeFacetPalette {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
}

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

.edgeFacetFillTools.inactive {
  opacity: 0.78;
}

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

.edgeFacetFillAction {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 32px;
  border: 1px solid #c8d3cf;
  border-radius: 6px;
  background: #fff;
  color: #253631;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.edgeFacetFillAction.active {
  border-color: #2d5b4d;
  background: #2d5b4d;
  color: #fff;
}

.edgeFacetFillModes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
}

.edgeFacetFillMode {
  min-height: 32px;
  border: 1px solid #c8d3cf;
  border-radius: 6px;
  background: #fff;
  color: #253631;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.edgeFacetFillMode.active {
  border-color: #2d5b4d;
  background: #2d5b4d;
  color: #fff;
}

.edgeFacetFillGroup {
  display: grid;
  gap: 7px;
}

.edgeFacetFillGroup h5 {
  margin: 0;
  color: #4b5c56;
  font-size: 12px;
  font-weight: 750;
}

.edgeFacetUsedFills,
.edgeFacetStrawLibrary {
  display: grid;
  gap: 6px;
}

.edgeFacetStrawLibrary {
  max-height: 240px;
  overflow: auto;
  padding-right: 4px;
  scrollbar-gutter: stable;
}

.edgeFacetFillOption {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 4px 7px;
  border: 1px solid #d6dedb;
  border-radius: 6px;
  background: #fff;
  color: #263a35;
  font: inherit;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}

.edgeFacetFillOption.active {
  border-color: #2d5b4d;
  box-shadow: inset 3px 0 0 #2d5b4d;
}

.edgeFacetFillSample {
  display: block;
  position: relative;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(38, 58, 53, 0.28);
  border-radius: 5px;
  background-color: #fff;
  background-size: 100% 100%;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45);
  overflow: hidden;
}

.edgeFacetFillSample.none {
  background:
    linear-gradient(135deg, transparent calc(50% - 1px), #9d3b32 calc(50% - 1px), #9d3b32 calc(50% + 1px), transparent calc(50% + 1px)),
    #fff;
}

.edgeFacetFillLabel {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edgeFacetFillLine {
  position: absolute;
  left: -8px;
  width: 46px;
  height: 1px;
  transform: rotate(-8deg);
  transform-origin: center;
  pointer-events: none;
}

.edgeFacetFillLine.glow {
  height: 3px;
  background: rgba(255, 255, 255, 0.2);
}

.edgeFacetFillLine.light {
  background: rgba(255, 255, 255, 0.68);
}

.edgeFacetFillLine.shadow {
  background: rgba(0, 0, 0, 0.14);
}

.edgeFacetSelection {
  display: grid;
  gap: 8px;
}

.edgeFacetSelectionSummary {
  display: grid;
  gap: 3px;
  padding: 8px;
  border: 1px solid #cfdad6;
  border-radius: 6px;
  background: #fff;
}

.edgeFacetSelectionSummary strong {
  color: #20312c;
  font-size: 13px;
}

.edgeFacetSelectionSummary span {
  color: #63716c;
  font-size: 12px;
  line-height: 1.35;
}

.edgeFacetSelectionDetails {
  display: grid;
  grid-template-columns: minmax(72px, auto) minmax(0, 1fr);
  gap: 5px 8px;
  margin: 0;
  color: #33443f;
  font-size: 12px;
}

.edgeFacetSelectionDetails dt {
  color: #697772;
  font-weight: 650;
}

.edgeFacetSelectionDetails dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.edgeFacetSelectionPanel {
  display: grid;
  gap: 7px;
  padding: 9px;
  border: 1px solid #d8e2df;
  border-radius: 7px;
  background: #f8fbfa;
}

.edgeFacetSelectionPanel--segment {
  border-color: #d5d7c2;
  background: #fbfbf4;
}

.edgeFacetSelectionPanel--edge {
  border-color: #ccd9d5;
  background: #f7fbfa;
}

.edgeFacetActionGroup {
  display: grid;
  gap: 6px;
  padding: 8px;
  border: 1px solid #d8e2df;
  border-radius: 7px;
  background: #fbfcfb;
}

.edgeFacetActionGroup--segment {
  border-color: #d5d7c2;
  background: #fbfbf4;
}

.edgeFacetActionGroup--edge {
  border-color: #ccd9d5;
  background: #f7fbfa;
}

.edgeFacetActionGroup h5 {
  margin: 0;
  color: #20312c;
  font-size: 12px;
  font-weight: 700;
}

.edgeFacetShapeTransformBlock .edgeFacetButtonRow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}

.edgeFacetTransformFields {
  display: grid;
  gap: 8px;
}

.edgeFacetInlineField {
  grid-template-columns: minmax(78px, auto) minmax(0, 1fr);
  align-items: center;
}

.edgeFacetCheckboxLine {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #33443f;
  font-size: 12px;
}

.edgeFacetTraceControls {
  display: grid;
  gap: 6px;
}

.edgeFacetControlTitle {
  margin: 4px 0 0;
  color: #20312c;
  font-size: 12px;
  font-weight: 700;
}

.edgeFacetProfileControls {
  gap: 8px;
}

.edgeFacetProfileBlock {
  display: grid;
  gap: 7px;
  padding: 9px;
  border: 1px solid #d8e2df;
  border-radius: 7px;
  background: #f8fbfa;
}

.edgeFacetProfileBlockHeader {
  display: grid;
  gap: 2px;
}

.edgeFacetProfileBlockHeader strong {
  color: #263a34;
  font-size: 12px;
}

.edgeFacetProfileBlockHeader span {
  color: #697772;
  font-size: 11px;
}

.edgeFacetProfileKindGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  min-width: 0;
}

.edgeFacetProfileKindGrid .edgeFacetButton {
  min-height: 30px;
  padding: 0 6px;
  font-size: 12px;
}

.edgeFacetProfileThicknessLine {
  display: grid;
  grid-template-columns: auto minmax(0, 92px) auto;
  align-items: center;
  gap: 7px;
  color: #445650;
  font-size: 12px;
}

.edgeFacetProfileThicknessLine input {
  min-width: 0;
}

.edgeFacetSwatch {
  width: 100%;
  aspect-ratio: 1;
  border: 2px solid #fff;
  border-radius: 6px;
  box-shadow: 0 0 0 1px #c8d3cf;
  cursor: pointer;
}

.edgeFacetSwatch.active {
  box-shadow: 0 0 0 2px #2d5b4d;
}

.edgeFacetMain {
  display: grid;
  position: relative;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  min-width: 0;
  min-height: 0;
}

.edgeFacetToolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 12px;
  border-bottom: 1px solid #d6dedb;
  background: #fff;
}

.edgeFacetToolbarSaveButton {
  width: 36px;
  min-height: 34px;
  margin-left: auto;
  padding: 0;
}

.edgeFacetStatus {
  min-height: 34px;
  padding: 8px 12px;
  border-bottom: 1px solid #d6dedb;
  color: #5e6b66;
  font-size: 13px;
}

.edgeFacetError {
  color: #9b2c2c;
}

.edgeFacetReportCorrectionButton {
  min-height: 26px;
  margin-left: 8px;
  padding: 0 8px;
  font-size: 12px;
}

.edgeFacetCanvas {
  min-height: 0;
  overflow: auto;
  padding: 12px;
  background: #eef3f0;
}

.edgeFacetCanvasStatus {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  min-height: 38px;
  padding: 6px 10px;
  border-top: 1px solid #d6dedb;
  background: #f8faf9;
  color: #4c5f58;
  font-size: 12px;
}

.edgeFacetZoomStatus {
  margin-right: auto;
  font-weight: 700;
}

.edgeFacetStatusZoomTools {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
}

.edgeFacetStatusZoomTools .edgeFacetButton {
  min-height: 26px;
  padding: 0 8px;
  font-size: 12px;
}

.edgeFacetAnnotationVisibility,
.edgeFacetPointsVisibility,
.edgeFacetMeasurementVisibility {
  min-height: 26px;
  padding: 0 8px;
  font-size: 12px;
}

.edgeFacetSnapToggle {
  min-height: 26px;
  padding: 0 9px;
  font-size: 12px;
}

.edgeFacetSnapToggle.active {
  border-color: #d95f2e;
  background: #fff1e8;
  color: #873517;
}

.edgeFacetSvg {
  display: block;
  max-width: none;
  max-height: none;
  touch-action: none;
  box-shadow: 0 2px 16px rgba(28, 43, 37, 0.12);
}

.edgeFacetSvg.panning,
.edgeFacetCanvas.panning {
  cursor: grab;
}

.edgeFacetCanvasBg {
  fill: rgba(255, 255, 255, 0.78);
}

.edgeFacetGrid line {
  stroke: rgba(45, 91, 77, 0.14);
  stroke-width: 0.25;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetGrid line.major {
  stroke: rgba(45, 91, 77, 0.26);
  stroke-width: 0.45;
}

.edgeFacetReference {
  pointer-events: none;
}

.edgeFacetReferenceHandles {
  pointer-events: none;
}

.edgeFacetReferenceOutline {
  fill: none;
  stroke: #1b6f96;
  stroke-width: 2;
  stroke-dasharray: 7 4;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetReferenceMoveHit {
  fill: rgba(27, 111, 150, 0.001);
  stroke: none;
  cursor: move;
  pointer-events: all;
}

.edgeFacetReferenceResizeHandle {
  fill: #ffffff;
  stroke: #1b6f96;
  stroke-width: 1.8;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetReferenceResizeHit {
  fill: rgba(27, 111, 150, 0.001);
  stroke: none;
  cursor: nwse-resize;
  pointer-events: all;
}

.edgeFacetReferenceResizeHit[data-handle="ne"],
.edgeFacetReferenceResizeHit[data-handle="sw"] {
  cursor: nesw-resize;
}

.edgeFacetReferenceRotateLine {
  stroke: #1b6f96;
  stroke-width: 1.8;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetReferenceRotateHandle {
  fill: #ffffff;
  stroke: #1b6f96;
  stroke-width: 2;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetReferenceRotateHit {
  fill: rgba(27, 111, 150, 0.001);
  stroke: none;
  cursor: grab;
  pointer-events: all;
}

.edgeFacetFace {
  stroke: none;
  cursor: crosshair;
}

.edgeFacetSvg.work .edgeFacetFace {
  cursor: default;
  opacity: 0.38;
}

.edgeFacetFace.selectable {
  cursor: pointer;
}

.edgeFacetFace.filled {
  stroke: none;
}

.edgeFacetFace.selected {
  stroke: none;
}

.edgeFacetFace.transformSelected {
  stroke: rgba(27, 111, 150, 0.82);
  stroke-width: 1.8;
  stroke-dasharray: 4 3;
  vector-effect: non-scaling-stroke;
}

.edgeFacetFaceSelectionLayer {
  pointer-events: none;
}

.edgeFacetFaceSelectionBack {
  fill: none;
  stroke: rgba(255, 255, 255, 0.86);
  stroke-width: 7;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.edgeFacetFaceSelection {
  fill: none;
  stroke: #d95f2e;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 8 5;
  vector-effect: non-scaling-stroke;
}

.edgeFacetShapeTransformOverlay {
  pointer-events: none;
}

.edgeFacetShapeTransformBounds {
  fill: none;
  stroke: #1b6f96;
  stroke-width: 1.8;
  stroke-dasharray: 6 4;
  vector-effect: non-scaling-stroke;
}

.edgeFacetShapeTransformMoveHit {
  fill: rgba(27, 111, 150, 0.001);
  stroke: none;
  cursor: move;
  pointer-events: all;
}

.edgeFacetShapeTransformHandle {
  fill: #ffffff;
  stroke: #1b6f96;
  stroke-width: 1.7;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetShapeTransformResizeHit {
  fill: rgba(27, 111, 150, 0.001);
  stroke: none;
  cursor: nwse-resize;
  pointer-events: all;
}

.edgeFacetShapeTransformResizeHit[data-handle="ne"],
.edgeFacetShapeTransformResizeHit[data-handle="sw"] {
  cursor: nesw-resize;
}

.edgeFacetInspectionOverlay {
  pointer-events: none;
}

.edgeFacetInspectionBounds {
  fill: none;
  stroke: #1b6f96;
  stroke-width: 2;
  stroke-dasharray: 6 4;
  vector-effect: non-scaling-stroke;
}

.edgeFacetInspectionSegment,
.edgeFacetInspectionDistance {
  stroke: #1b6f96;
  stroke-width: 2.2;
  vector-effect: non-scaling-stroke;
}

.edgeFacetInspectionDistance {
  stroke-dasharray: 4 4;
  opacity: 0.8;
}

.edgeFacetInspectionPoint {
  fill: rgba(27, 111, 150, 0.2);
  stroke: #1b6f96;
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.edgeFacetInspectionLabel {
  fill: #123c4f;
  stroke: #ffffff;
  paint-order: stroke;
  font-weight: 400;
  pointer-events: none;
}

.edgeFacetFillControl {
  cursor: pointer;
}

.edgeFacetFillControlHalo {
  fill: rgba(255, 255, 255, 0.72);
  stroke: rgba(38, 58, 53, 0.3);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.edgeFacetFillSeed {
  stroke: #182520;
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.edgeFacetFillSeedHit {
  cursor: pointer;
  pointer-events: all;
}

.edgeFacetFillAngleLine {
  stroke: #182520;
  stroke-width: 2;
  stroke-dasharray: 5 4;
  vector-effect: non-scaling-stroke;
}

.edgeFacetFillAngleHandle {
  fill: #fff;
  stroke: #d95f2e;
  stroke-width: 3;
  cursor: grab;
  vector-effect: non-scaling-stroke;
}

.edgeFacetFillAngleHit {
  cursor: grab;
  pointer-events: all;
}

.edgeFacetFillAngleHandle:hover {
  fill: #fff1e8;
}

.edgeFacetStainedGlassLines {
  pointer-events: none;
}

.edgeFacetStainedGlassLine {
  fill: none;
  stroke: #252a27;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.edgeFacetEdge {
  fill: none;
  stroke: #182520;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
  cursor: grab;
  vector-effect: non-scaling-stroke;
}

.edgeFacetEdge.stainedGlassSource {
  stroke: transparent;
}

.edgeFacetEdgeHit {
  fill: none;
  stroke: transparent;
  stroke-opacity: 0;
  stroke-width: 10;
  stroke-linecap: round;
  stroke-linejoin: round;
  cursor: grab;
  pointer-events: stroke;
  vector-effect: non-scaling-stroke;
}

.edgeFacetEdgeHit.inactive {
  pointer-events: none;
}

.edgeFacetEdge.selected {
  stroke: #d95f2e;
  stroke-width: 6;
}

.edgeFacetAnnotations {
  pointer-events: none;
}

.edgeFacetAnnotations.editable {
  pointer-events: auto;
}

.edgeFacetAnnotation {
  cursor: grab;
}

.edgeFacetAnnotationBg {
  fill: rgba(255, 255, 255, 0.9);
  stroke: rgba(45, 91, 77, 0.42);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.edgeFacetAnnotation.selected .edgeFacetAnnotationBg {
  stroke: #d95f2e;
  stroke-width: 1.8;
}

.edgeFacetAnnotationText {
  fill: #182520;
  font-family: "Open Sans", Arial, sans-serif;
  font-weight: 500;
  pointer-events: none;
  user-select: none;
}

.edgeFacetAnnotationHit {
  cursor: grab;
}

.edgeFacetSelectedVertex {
  fill: #ffffff;
  stroke: #d95f2e;
  stroke-width: 1.6;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetSelectedSegment {
  fill: none;
  stroke: #1b6f96;
  stroke-width: 9;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.72;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetDraftLine {
  fill: none;
  stroke: #2d5b4d;
  stroke-width: 3;
  stroke-dasharray: 8 6;
  vector-effect: non-scaling-stroke;
}

.edgeFacetDraftPreviewLine {
  display: none;
  fill: none;
  stroke: #2d5b4d;
  stroke-width: 2;
  stroke-dasharray: 4 5;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetDraftPreviewLine.active {
  display: block;
}

.edgeFacetMeasurementLine {
  fill: none;
  stroke: #2f6f96;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 7 5;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetMeasurementLine.draft {
  stroke: #3b8dbf;
  stroke-dasharray: 5 5;
}

.edgeFacetMeasurement.selected .edgeFacetMeasurementLine {
  stroke: #d95f2e;
  stroke-width: 3;
}

.edgeFacetMeasurementHit {
  fill: none;
  stroke: #000000;
  stroke-width: 16;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-opacity: 0.001;
  cursor: pointer;
  pointer-events: all;
  vector-effect: non-scaling-stroke;
}

.edgeFacetMeasurementLabel {
  fill: #2f6f96;
  stroke: rgba(255, 255, 255, 0.92);
  paint-order: stroke;
  font-family: "Open Sans", Arial, sans-serif;
  font-weight: 600;
  pointer-events: none;
  user-select: none;
}

.edgeFacetMeasurement.selected .edgeFacetMeasurementLabel {
  fill: #b84622;
}

.edgeFacetMeasurementPoint {
  fill: #ffffff;
  stroke: #2f6f96;
  stroke-width: 1.5;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetMeasurementPoint.draft {
  stroke: #3b8dbf;
}

.edgeFacetMeasurementPoint.selected {
  fill: #d95f2e;
  stroke: #111111;
  stroke-width: 2.2;
}

.edgeFacetMeasurementPointHit {
  cursor: grab;
  pointer-events: all;
}

.edgeFacetMeasurementPreviewLine {
  stroke: #2f6f96;
}

.edgeFacetDraftPoint {
  fill: #fff;
  stroke: #2d5b4d;
  stroke-width: 1.2;
  vector-effect: non-scaling-stroke;
}

.edgeFacetDraftPoint.attached,
.edgeFacetDraftPoint.shared,
.edgeFacetAttachPoint {
  fill: #fff8db;
  stroke: #d95f2e;
  stroke-width: 1.4;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetSnapPreview {
  display: none;
  fill: rgba(217, 95, 46, 0.16);
  stroke: #d95f2e;
  stroke-width: 2;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetSnapPreview.active {
  display: block;
}

.edgeFacetSnapPreview.pointsHidden,
.edgeFacetSnapPreview.active.pointsHidden {
  display: none;
}

.edgeFacetSnapPreview.attached,
.edgeFacetSnapPreview.shared {
  fill: rgba(217, 95, 46, 0.24);
  stroke: #d95f2e;
}

.edgeFacetInsertHandle {
  fill: #ffffff;
  stroke: #d95f2e;
  stroke-width: 1.5;
  cursor: copy;
  vector-effect: non-scaling-stroke;
}

.edgeFacetInsertHandleHit {
  cursor: copy;
  pointer-events: all;
}

.edgeFacetInsertHandle:hover {
  fill: #fff1e8;
}

.edgeFacetBezierControlLine {
  stroke: #d95f2e;
  stroke-width: 1.2;
  stroke-dasharray: 4 4;
  opacity: 0.72;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetBezierControlPoint {
  fill: #fff1e8;
  stroke: #d95f2e;
  stroke-width: 1.4;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetBezierControlHit {
  cursor: grab;
  pointer-events: all;
}

.edgeFacetPointHandle {
  fill: #ffffff;
  stroke: #2d5b4d;
  stroke-width: 1.4;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetPointHit {
  fill: #000;
  stroke: none;
  cursor: grab;
  pointer-events: all;
}

.edgeFacetPointHandles.diagnostic .edgeFacetPointHit {
  cursor: pointer;
}

.edgeFacetPointHandle.attached {
  fill: #fff8db;
  stroke: #d95f2e;
}

.edgeFacetPointHandle.shared {
  fill: #ffffff;
  stroke: #1b6f96;
  stroke-width: 1.8;
}

.edgeFacetPointSharedRing {
  fill: none;
  stroke: rgba(27, 111, 150, 0.48);
  stroke-width: 2.2;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetPointAttachBadge {
  fill: #d95f2e;
  stroke: #ffffff;
  stroke-width: 0.9;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetPointHandle.selected {
  fill: #d95f2e;
  stroke: #111111;
  stroke-width: 2.4;
}

.edgeFacetDiagnostics ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.edgeFacetDiagnostics li {
  padding: 7px 8px;
  border: 1px solid #dbe4e0;
  border-radius: 6px;
  background: #fff;
  color: #3f504a;
  font-size: 12px;
  cursor: pointer;
}

.edgeFacetDiagnostics li.severity-warning {
  border-color: #e3c189;
  background: #fff8e9;
  color: #6c4a13;
}

.edgeFacetDiagnostics li.active {
  border-color: #2d5b4d;
  background: #edf7f2;
  color: #203d34;
  box-shadow: inset 3px 0 0 #2d5b4d;
}

.edgeFacetDiagnostics li.selected {
  border-color: #1b6f96;
  background: #eaf6fb;
  color: #123c4f;
  box-shadow: inset 3px 0 0 #1b6f96;
}

.edgeFacetDiagnostics li.selected.active {
  border-color: #153d33;
  background: #dff2ea;
}

.edgeFacetDiagnosticMarker {
  fill: none;
  stroke: #2d5b4d;
  stroke-width: 2;
  opacity: 0.55;
  cursor: pointer;
  pointer-events: all;
  vector-effect: non-scaling-stroke;
}

.edgeFacetDiagnosticMarker.severity-warning {
  stroke: #d95f2e;
  opacity: 0.85;
}

.edgeFacetDiagnosticMarker.active {
  stroke: #153d33;
  stroke-width: 4;
  opacity: 1;
}

.edgeFacetDiagnosticMarker.severity-warning.active {
  stroke: #a63d1a;
}

.edgeFacetDiagnosticMarker.selected {
  stroke: #1b6f96;
  stroke-width: 4;
  opacity: 1;
}

.edgeFacetDiagnosticMarker.severity-warning.selected {
  stroke: #1b6f96;
}

.edgeFacetDiagnosticHighlight {
  fill: none;
  stroke: #2d5b4d;
  stroke-width: 0;
  opacity: 0;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.edgeFacetDiagnosticHighlight.severity-warning {
  stroke: #d95f2e;
}

.edgeFacetDiagnosticHighlight.segment.active {
  stroke-width: 8;
  opacity: 0.8;
}

.edgeFacetDiagnosticHighlight.segment.selected {
  stroke: #1b6f96;
  stroke-width: 9;
  opacity: 0.78;
}

.edgeFacetDiagnosticHighlight.guide.active {
  stroke-width: 3;
  stroke-dasharray: 6 5;
  opacity: 0.95;
}

.edgeFacetDiagnosticHighlight.guide.selected {
  stroke: #1b6f96;
  stroke-width: 3.5;
  stroke-dasharray: 6 5;
  opacity: 1;
}

@media (max-width: 860px) {
  .edgeFacetShell {
    grid-template-columns: 1fr;
  }

  .edgeFacetSidebar {
    border-right: 0;
    border-bottom: 1px solid #d6dedb;
  }
}

.gitesCurrentUser {
  margin-top: 10px;
  color: #3f504a;
  font-size: 13px;
}

.gitesLogout.button {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  margin-top: 12px;
  padding: 0 11px;
  border: 1px solid #cad5d1;
  border-radius: 6px;
  background: #fff;
  color: #2c3d38;
  font-size: 13px;
}

.atelierToolCard {
  background: #fff;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
}

.atelierModuleArea {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

.atelierModuleArea.module-users {
  flex: 1 1 0;
  height: 100%;
  position: relative;
}

.atelierModuleBody:fullscreen {
  box-sizing: border-box;
  width: 100vw;
  height: 100vh;
  min-height: 0;
  padding: 12px;
  background: #ffffff;
  overflow: hidden;
}

.atelierModuleBody {
  box-sizing: border-box;
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0;
}

.atelierWorkspaceTabs > .atelierModuleBody:not([class*="module-"]) {
  padding: 18px;
}

.atelierModuleBody.module-tools {
  padding: 18px;
}

.atelierModuleBody.module-quote,
.atelierModuleBody.module-sync,
.atelierModuleBody.module-tax {
  padding: 12px;
}

.atelierModuleBody.module-users {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: auto;
  box-sizing: border-box;
  overflow: hidden;
}

.atelierModuleBody > .jigWidget {
  min-height: 100%;
}

.atelierModuleBody.module-booking > .jigWidget,
.atelierModuleBody.module-facets > .jigWidget,
.atelierModuleBody.module-sync > .jigWidget,
.atelierModuleBody.module-tax > .jigWidget {
  height: 100%;
  min-height: 0;
}

.atelierModuleBody.module-booking {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.atelierToolGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.atelierToolCard {
  padding: 14px;
}

.atelierToolCard h4 {
  margin: 0 0 6px;
  font-size: 15px;
}

@media (max-width: 760px) {
  .atelierTopbar {
    flex-wrap: wrap;
    min-height: 58px;
    padding-top: 8px;
    padding-bottom: 8px;
  }

  .atelierTopbarCategories {
    order: 2;
  }

  .atelierTopbarModules {
    order: 3;
    flex-basis: 100%;
  }
}

.atelierToolCard p {
  min-height: 42px;
  margin: 0 0 14px;
  color: #60706a;
  font-size: 13px;
}

.atelierToolState {
  display: inline-block;
  color: #5d6a66;
  font-size: 12px;
}

.gitesQuoteLayout {
  display: grid;
  grid-template-columns: minmax(280px, 390px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  height: 100%;
  min-height: 0;
}

.gitesQuoteForm,
.gitesQuoteResult {
  background: #fff;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
}

.gitesQuoteForm {
  padding: 14px;
}

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

.gitesQuoteField {
  display: grid;
  gap: 5px;
  color: #3f504a;
  font-size: 12px;
  font-weight: 650;
}

.gitesQuoteField:first-child,
.gitesQuoteField:nth-child(2) {
  grid-column: 1 / -1;
}

.gitesQuoteField select,
.gitesQuoteField input {
  width: 100%;
  min-height: 36px;
  box-sizing: border-box;
  padding: 0 9px;
  border: 1px solid #c9d4d0;
  border-radius: 6px;
  background: #fff;
  color: #1f2926;
  font: inherit;
}

.gitesQuoteActions {
  margin-top: 12px;
}

.gitesQuoteActions .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid #263a35;
  border-radius: 6px;
  background: #263a35;
  color: #fff;
}

.gitesQuoteError {
  margin-top: 10px;
  color: #9b2c2c;
  font-size: 13px;
}

.gitesQuoteResult {
  padding: 16px;
  overflow: auto;
}

.gitesQuoteResult.empty {
  min-height: 160px;
}

.gitesQuoteResult.empty h4,
.gitesQuoteVariants h4,
.gitesQuoteRoomContext h4,
.gitesQuoteCalendar h4 {
  margin: 0 0 8px;
  font-size: 14px;
}

.gitesQuoteResult.empty p {
  margin: 0;
  color: #63716c;
  font-size: 13px;
}

.gitesQuoteLead {
  display: grid;
  gap: 3px;
  margin: 0 0 12px;
  color: #63716c;
  font-size: 13px;
}

.gitesQuoteLead strong {
  color: #1f2926;
  font-size: 20px;
}

.gitesQuoteLead small {
  color: #63716c;
}

.gitesQuoteTotal {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 12px;
  align-items: end;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e9e6;
}

.gitesQuoteTotal > div {
  display: grid;
  gap: 3px;
}

.gitesQuoteTotal span {
  color: #63716c;
  font-size: 13px;
}

.gitesQuoteTotal strong {
  font-size: 30px;
}

.gitesQuoteTotal small {
  color: #63716c;
}

.gitesQuoteTotalAmount {
  text-align: right;
}

.gitesQuoteUnitSummary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 0;
}

.gitesQuoteUnitSummary span {
  padding: 5px 8px;
  border: 1px solid #dbe4e0;
  border-radius: 999px;
  background: #f8faf9;
  color: #33443e;
  font-size: 13px;
  font-weight: 650;
}

.gitesQuoteBreakdown {
  display: grid;
  gap: 7px;
  margin-top: 12px;
}

.gitesQuoteLine {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 14px;
}

.gitesQuoteLine span {
  color: #53645f;
}

.gitesQuoteWarnings {
  margin-top: 12px;
  padding: 9px 10px;
  border: 1px solid #ead2a2;
  border-radius: 6px;
  background: #fff8e8;
  color: #6f4b12;
  font-size: 13px;
}

.gitesQuoteWarnings p {
  margin: 0;
}

.gitesQuoteVariants,
.gitesQuoteRoomContext,
.gitesQuoteCalendar {
  margin-top: 16px;
}

.gitesQuoteVariantGrid,
.gitesQuoteRoomGrid,
.gitesQuoteCalendarGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 8px;
}

.gitesQuoteVariantGrid article,
.gitesQuoteRoomGrid article,
.gitesQuoteNight {
  display: grid;
  gap: 3px;
  padding: 10px;
  border: 1px solid #dbe4e0;
  border-radius: 7px;
  background: #f8faf9;
}

.gitesQuoteVariantGrid span,
.gitesQuoteRoomGrid span,
.gitesQuoteNight span,
.gitesQuoteVariantGrid small,
.gitesQuoteRoomGrid small,
.gitesQuoteRoomGrid em,
.gitesQuoteNight small {
  color: #63716c;
  font-size: 12px;
}

.gitesQuoteRoomGrid em {
  font-style: normal;
}

.gitesQuoteRoomGrid article.unavailable {
  border-color: #e7c2c2;
  background: #fff4f4;
}

.gitesQuoteNight.unavailable {
  border-color: #e7c2c2;
  background: #fff4f4;
}

.gitesOutboxMonitor {
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr);
  gap: 14px;
  min-height: 0;
}

.gitesOutboxHeader {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
}

.gitesOutboxHeader h4,
.gitesOutboxDryRun h4,
.gitesOutboxEmpty h4 {
  margin: 0 0 4px;
  font-size: 16px;
}

.gitesOutboxHeader p,
.gitesOutboxDryRun p,
.gitesOutboxEmpty p {
  margin: 0;
  color: #63716c;
  font-size: 14px;
}

.gitesOutboxActions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.gitesOutboxActions .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid #cad5d1;
  border-radius: 6px;
  background: #fff;
  color: #2c3d38;
}

.gitesOutboxActions .button.primary {
  border-color: #263a35;
  background: #263a35;
  color: #fff;
}

.gitesOutboxActions .button.danger {
  border-color: #8a3a2b;
  background: #8a3a2b;
  color: #fff;
}

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

.gitesOutboxSummary article,
.gitesOutboxDryRun,
.gitesOutboxRun,
.gitesOutboxEmpty {
  padding: 12px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fff;
}

.gitesOutboxSummary span {
  display: block;
  color: #63716c;
  font-size: 12px;
}

.gitesOutboxSummary strong {
  display: block;
  margin-top: 4px;
  font-size: 22px;
}

.gitesOutboxError {
  padding: 9px 10px;
  border: 1px solid #e4b7b7;
  border-radius: 6px;
  background: #fff3f3;
  color: #8c2525;
  font-size: 13px;
}

.gitesOutboxDryRun ul {
  display: grid;
  gap: 5px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  font-size: 13px;
}

.gitesOutboxDryRun span {
  color: #63716c;
}

.gitesOutboxRun {
  border-color: #cfdcbf;
  background: #f8fbf3;
}

.gitesOutboxRun h4 {
  margin: 0 0 4px;
  font-size: 16px;
}

.gitesOutboxRun p {
  margin: 0;
  color: #526349;
  font-size: 14px;
}

.gitesOutboxRun ul {
  display: grid;
  gap: 5px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  color: #8c2525;
  font-size: 13px;
}

.gitesOutboxTableWrap {
  min-height: 0;
  overflow-x: auto;
  overflow-y: auto;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fff;
}

.gitesOutboxTable {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.gitesOutboxTable th,
.gitesOutboxTable td {
  padding: 9px 10px;
  border-bottom: 1px solid #e2e9e6;
  text-align: left;
  vertical-align: top;
}

.gitesOutboxTable th {
  color: #53645f;
  font-size: 12px;
  font-weight: 750;
}

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

.gitesOutboxTable .status-failed td {
  background: #fff7f7;
}

.gitesUserAdmin {
  position: absolute;
  inset: 0;
  min-height: 0;
  overflow: hidden;
}

.gitesUserAdminShell {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 14px;
  min-height: 0;
}

.gitesUserAdminList,
.gitesUserAdminEditor {
  min-height: 0;
  padding: 14px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fff;
}

.gitesUserAdminList {
  display: block;
  overflow-x: hidden;
  overflow-y: auto;
}

.gitesUserAdminList header,
.gitesUserAdminEditor header,
.gitesUserAdminActions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.gitesUserAdminList h4,
.gitesUserAdminEditor h4 {
  margin: 0;
  font-size: 16px;
}

.gitesUserAdminEditor header p {
  margin: 0;
  color: #2f6b45;
  font-size: 13px;
}

.gitesUserAdminUsers {
  display: grid;
  align-content: start;
  gap: 7px;
  margin-top: 12px;
}

.gitesUserAdminUser {
  display: grid;
  gap: 3px;
  width: 100%;
  padding: 9px 10px;
  border: 1px solid #d8e0dd;
  border-radius: 7px;
  background: #fff;
  color: #263a35;
  text-align: left;
  cursor: pointer;
}

.gitesUserAdminUser.active {
  border-color: #2d5b4d;
  box-shadow: inset 3px 0 0 #2d5b4d;
}

.gitesUserAdminUser.disabled {
  color: #8a928d;
  background: #f8faf9;
}

.gitesUserAdminUser span,
.gitesUserAdminMuted {
  color: #63716c;
  font-size: 12px;
}

.gitesUserAdminEditor {
  overflow-x: hidden;
  overflow-y: auto;
}

.gitesUserAdminForm {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

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

.gitesUserAdminField {
  display: grid;
  gap: 5px;
  color: #3f504a;
  font-size: 12px;
  font-weight: 650;
}

.gitesUserAdminField input {
  min-height: 34px;
  box-sizing: border-box;
  padding: 0 9px;
  border: 1px solid #c9d4d0;
  border-radius: 6px;
  background: #fff;
  color: #1f2926;
  font: inherit;
}

.gitesUserAdminChecks {
  margin: 0;
  padding: 10px;
  border: 1px solid #e1e8e5;
  border-radius: 7px;
}

.gitesUserAdminRights {
  min-width: 0;
  margin: 0;
  padding: 10px;
  border: 1px solid #e1e8e5;
  border-radius: 7px;
}

.gitesUserAdminChecks legend {
  padding: 0 5px;
  color: #3f504a;
  font-size: 12px;
  font-weight: 750;
}

.gitesUserAdminRights legend {
  padding: 0 5px;
  color: #3f504a;
  font-size: 12px;
  font-weight: 750;
}

.gitesUserAdminChecks > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.gitesUserAdminChecks label,
.gitesUserAdminCheck {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #2c3d38;
  font-size: 13px;
}

.gitesUserAdminRightsList {
  display: grid;
  gap: 8px;
}

.gitesUserAdminModuleRights {
  border: 1px solid #dfe7e4;
  border-radius: 7px;
  background: #fbfdfc;
}

.gitesUserAdminModuleRights.active {
  border-color: #b8cac4;
  background: #fff;
}

.gitesUserAdminModuleRights summary {
  min-height: 38px;
  padding: 0 10px;
  list-style: none;
  cursor: pointer;
}

.gitesUserAdminModuleRights summary::-webkit-details-marker {
  display: none;
}

.gitesUserAdminModuleRights summary::after {
  content: "+";
  float: right;
  margin-top: 10px;
  color: #63716c;
  font-size: 13px;
}

.gitesUserAdminModuleRights[open] summary::after {
  content: "-";
}

.gitesUserAdminModuleAccess,
.gitesUserAdminPermissionLine {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: #2c3d38;
  font-size: 13px;
}

.gitesUserAdminModuleAccess {
  min-height: 38px;
  font-weight: 700;
}

.gitesUserAdminModulePermissionList {
  display: grid;
  gap: 7px;
  padding: 0 10px 10px 30px;
}

.gitesUserAdminPermissionLine {
  min-height: 24px;
}

.gitesUserAdminPermissionLine input:disabled + span {
  color: #9aa5a0;
}

.gitesUserAdminActions {
  justify-content: flex-start;
}

.gitesUserAdminActions .button,
.gitesUserAdminList header .button {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid #cad5d1;
  border-radius: 6px;
  background: #fff;
  color: #2c3d38;
}

.gitesUserAdminActions .button.primary,
.gitesUserAdminList header .button.primary {
  border-color: #263a35;
  background: #263a35;
  color: #fff;
}

.gitesUserAdminError {
  margin-top: 10px;
  padding: 9px 10px;
  border: 1px solid #e4b7b7;
  border-radius: 6px;
  background: #fff3f3;
  color: #8c2525;
  font-size: 13px;
}

.gitesTaxReview {
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr);
  gap: 14px;
  min-height: 0;
}

.gitesTaxHeader {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
}

.gitesTaxHeader h4,
.gitesTaxEmpty h4 {
  margin: 0 0 4px;
  font-size: 16px;
}

.gitesTaxHeader p,
.gitesTaxEmpty p {
  margin: 0;
  color: #63716c;
  font-size: 14px;
}

.gitesTaxControls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: end;
  justify-content: flex-end;
}

.gitesTaxPeriod {
  display: grid;
  gap: 4px;
  color: #3f504a;
  font-size: 12px;
  font-weight: 650;
}

.gitesTaxPeriod select,
.gitesTaxDeclared input,
.gitesTaxValidation input {
  min-height: 32px;
  box-sizing: border-box;
  padding: 0 8px;
  border: 1px solid #c9d4d0;
  border-radius: 6px;
  background: #fff;
  color: #1f2926;
  font: inherit;
}

.gitesTaxControls .button,
.gitesTaxValidation .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid #cad5d1;
  border-radius: 6px;
  background: #fff;
  color: #2c3d38;
}

.gitesTaxValidation .button.primary {
  border-color: #263a35;
  background: #263a35;
  color: #fff;
}

.gitesTaxError {
  padding: 9px 10px;
  border: 1px solid #e4b7b7;
  border-radius: 6px;
  background: #fff3f3;
  color: #8c2525;
  font-size: 13px;
}

.gitesTaxCoverage {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border-radius: 7px;
  font-size: 13px;
}

.gitesTaxCoverage.ok {
  border: 1px solid #c8d9bb;
  background: #f6fbf2;
  color: #405c33;
}

.gitesTaxCoverage.warning {
  border: 1px solid #ead2a2;
  background: #fff8e8;
  color: #6f4b12;
}

.gitesTaxCoverage span {
  color: inherit;
}

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

.gitesTaxSummary article,
.gitesTaxEmpty {
  padding: 12px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fff;
}

.gitesTaxSummary span {
  display: block;
  color: #63716c;
  font-size: 12px;
}

.gitesTaxSummary strong {
  display: block;
  margin-top: 4px;
  font-size: 22px;
}

.gitesTaxTableWrap {
  min-height: 0;
  overflow-x: auto;
  overflow-y: auto;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fff;
}

.gitesTaxTable {
  width: 100%;
  min-width: 940px;
  border-collapse: collapse;
  font-size: 13px;
}

.gitesTaxTable th,
.gitesTaxTable td {
  padding: 9px 10px;
  border-bottom: 1px solid #e2e9e6;
  text-align: left;
  vertical-align: top;
}

.gitesTaxTable th {
  color: #53645f;
  font-size: 12px;
  font-weight: 750;
}

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

.gitesTaxTable tr.pending td {
  background: #fffdf7;
}

.gitesTaxTable td > strong,
.gitesTaxTable td > span {
  display: block;
}

.gitesTaxTable td > span {
  margin-top: 3px;
  color: #63716c;
}

.gitesTaxDeclared {
  display: grid;
  grid-template-columns: repeat(3, 72px);
  gap: 6px;
}

.gitesTaxDeclared label {
  display: grid;
  gap: 3px;
  color: #53645f;
  font-size: 11px;
}

.gitesTaxDeclared input {
  width: 68px;
}

.gitesTaxValidation {
  display: grid;
  min-width: 210px;
  gap: 7px;
}

.gitesTaxValidation input {
  width: 100%;
}

.gitesTaxStatus {
  display: inline-block;
  width: fit-content;
  padding: 3px 7px;
  border: 1px solid #dbe4e0;
  border-radius: 999px;
  background: #f8faf9;
  color: #33443e !important;
  font-size: 12px;
  font-weight: 650;
}

.gitesTaxWarning {
  color: #8c5d14 !important;
}

.gitesGuestHero,
.gitesGuestPanel,
.gitesGuestAction {
  background: #fff;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
}

.gitesGuestHero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;
  padding: 20px;
}

.gitesGuestKicker {
  color: #63716c;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
}

.gitesGuestHero h2 {
  margin: 4px 0 10px;
  font-size: 28px;
}

.gitesGuestHero p {
  margin: 0;
}

.gitesGuestMeta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px !important;
}

.gitesGuestMeta span {
  padding: 4px 8px;
  border: 1px solid #dbe4e0;
  border-radius: 999px;
  background: #f8faf9;
  color: #33443e;
  font-size: 13px;
}

.gitesGuestTotal {
  display: grid;
  gap: 3px;
  min-width: 230px;
  text-align: right;
}

.gitesGuestTotal span,
.gitesGuestTotal small,
.gitesGuestMuted {
  color: #63716c;
}

.gitesGuestTotal strong {
  font-size: 34px;
  line-height: 1.1;
}

.gitesGuestNow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  margin: 14px 0;
  padding: 16px;
  border: 1px solid #cdd9d4;
  border-radius: 8px;
  background: #fff;
  font-size: 14px;
  line-height: 1.45;
}

.gitesGuestNow h3 {
  margin: 4px 0 8px;
  font-size: 20px;
}

.gitesGuestNow p {
  margin: 0 0 8px;
}

.gitesGuestPrimaryAction.button,
.gitesGuestSecondaryAction.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 13px;
  border-radius: 6px;
}

.gitesGuestPrimaryAction.button {
  border: 1px solid #263a35;
  background: #263a35;
  color: #fff;
}

.gitesGuestSecondaryAction.button {
  margin-top: 12px;
  border: 1px solid #cad5d1;
  background: #fff;
  color: #2c3d38;
}

.gitesGuestActions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.gitesGuestAction {
  display: grid;
  gap: 5px;
  padding: 14px;
  color: #1f2926;
  text-decoration: none;
}

.gitesGuestAction:hover {
  border-color: #263a35;
}

.gitesGuestAction span {
  color: #63716c;
  font-size: 13px;
}

.gitesGuestGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}

.gitesGuestPanel {
  padding: 16px;
  font-size: 14px;
  line-height: 1.45;
}

.gitesGuestPriorityPanel {
  min-height: 190px;
}

.gitesGuestPanel h3 {
  margin: 0 0 12px;
  font-size: 17px;
}

.gitesGuestPanel h4 {
  margin: 14px 0 8px;
  font-size: 14px;
}

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

.gitesGuestPanelTitleRow h3 {
  margin: 0;
}

.gitesGuestPriceList {
  display: grid;
  gap: 8px;
  margin: 0;
}

.gitesGuestPriceList div,
.gitesGuestInvoice div {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  min-width: 0;
}

.gitesGuestInvoice strong {
  text-align: right;
  white-space: nowrap;
}

.gitesGuestPriceList dt,
.gitesGuestInvoice span {
  color: #63716c;
  min-width: 0;
  overflow-wrap: anywhere;
}

.gitesGuestPriceList dd {
  margin: 0;
  font-weight: 700;
}

.gitesGuestUnitLine {
  display: grid;
  grid-template-columns: 28px minmax(0, auto) auto;
  column-gap: 4px;
  gap: 2px;
  margin: 8px 0 0;
  color: #63716c;
  font-size: 14px;
  justify-content: end;
}

.gitesGuestUnitRow {
  display: contents;
}

.gitesGuestUnitRow > span:first-child {
  text-align: right;
}

.gitesGuestUnitRow strong {
  color: inherit;
  font: inherit;
  text-align: right;
}

.gitesGuestInvoice {
  display: grid;
  gap: 7px;
}

.gitesGuestChecklist {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gitesGuestChecklist li {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  color: #3f504a;
}

.gitesGuestChecklist li.todo strong,
.gitesGuestCheck {
  color: #8a5b14;
}

.gitesGuestChecklist strong {
  font-size: 12px;
}

.gitesGuestAddress {
  margin: 0 0 12px;
  font-weight: 700;
}

.gitesGuestExtensionGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.gitesGuestExtension {
  display: grid;
  gap: 3px;
  padding: 10px;
  border: 1px solid #dbe4e0;
  border-radius: 7px;
  background: #f8faf9;
}

.gitesGuestExtension.unavailable {
  border-color: #ead2a2;
  background: #fff8e8;
}

.gitesGuestExtensionHead {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  align-items: baseline;
}

.gitesGuestExtensionHead > span {
  color: #1f2c28;
  font-size: 16px;
  font-weight: 700;
}

.gitesGuestExtension strong {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  justify-content: flex-end;
  text-align: right;
}

.gitesGuestExtensionPrice {
  display: grid;
  justify-items: end;
  margin-top: 4px;
}

.gitesGuestExtension small,
.gitesGuestExtension li {
  color: #63716c;
  font-size: 12px;
}

.gitesGuestExtensionPrice small {
  text-align: right;
}

.gitesGuestExtension .gitesGuestAmountWhole,
.gitesGuestExtension .gitesGuestAmountSuffix {
  color: inherit;
  font-size: inherit;
}

.gitesGuestExtension .gitesGuestAmountCents {
  margin-left: 1px;
  color: inherit;
  font-size: 0.65em;
  font-weight: inherit;
}

.gitesGuestExtension .gitesGuestAmountSuffix {
  margin-left: 3px;
}

.gitesGuestExtension ul {
  display: grid;
  gap: 3px;
  margin: 2px 0 0;
  padding: 0;
  list-style: none;
}

.gitesGuestDetailsPanel,
.gitesGuestInformationPanel {
  grid-column: span 2;
}

.gitesGuestFormGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.gitesGuestField {
  display: grid;
  gap: 5px;
  margin-bottom: 10px;
  color: #3f504a;
  font-size: 12px;
  font-weight: 650;
}

.gitesGuestField.wide {
  margin-top: 2px;
}

.gitesGuestField.check {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 56px;
}

.gitesGuestField input,
.gitesGuestField select,
.gitesGuestField textarea {
  width: 100%;
  box-sizing: border-box;
  min-height: 36px;
  padding: 0 9px;
  border: 1px solid #c9d4d0;
  border-radius: 6px;
  background: #fff;
  color: #1f2926;
  font: inherit;
}

.gitesGuestField textarea {
  min-height: 64px;
  padding: 8px 9px;
  resize: vertical;
}

.gitesGuestField.check input {
  width: auto;
  min-height: 0;
}

.gitesGuestSaveRow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}

.gitesGuestSaveRow .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid #263a35;
  border-radius: 6px;
  background: #263a35;
  color: #fff;
}

.gitesGuestSaveMessage {
  color: #23613f;
  font-size: 13px;
}

.gitesGuestSaveError {
  color: #9b2c2c;
  font-size: 13px;
}

.gitesGuestInfoList {
  margin: 0 0 12px;
  padding-left: 18px;
  color: #3f504a;
}

.gitesGuestInfoList li + li {
  margin-top: 4px;
}

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

.gitesHousekeepingToolbar h4 {
  margin: 0 0 4px;
  font-size: 16px;
}

.gitesHousekeepingToolbar p {
  margin: 0;
  color: #63716c;
  font-size: 13px;
}

.gitesHousekeepingActions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.gitesHousekeepingActions .button,
.gitesHousekeepingCardActions .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid #cad5d1;
  border-radius: 6px;
  background: #fff;
  color: #2c3d38;
  font-size: 13px;
}

.gitesHousekeepingActions .button.primary,
.gitesHousekeepingCardActions .button.primary {
  border-color: #263a35;
  background: #263a35;
  color: #fff;
}

.gitesHousekeepingCardActions .button.danger {
  border-color: #b55a4d;
  background: #fff5f3;
  color: #8d3025;
}

.gitesHousekeepingError {
  margin: 0 0 12px;
  color: #9b2c2c;
  font-size: 13px;
}

.gitesHousekeepingSummary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.gitesHousekeepingSummary article {
  padding: 10px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #f8faf9;
}

.gitesHousekeepingSummary span {
  display: block;
  color: #63716c;
  font-size: 12px;
}

.gitesHousekeepingSummary strong {
  display: block;
  margin-top: 2px;
  color: #1f2926;
  font-size: 18px;
}

.gitesHousekeepingTimeline {
  overflow-x: auto;
  padding-bottom: 6px;
}

.gitesHousekeepingTimelineHeader,
.gitesHousekeepingTimelineRow {
  display: grid;
  grid-template-columns: 120px minmax(1080px, 1fr);
  gap: 10px;
  align-items: stretch;
}

.gitesHousekeepingTimelineHeader {
  position: sticky;
  top: 0;
  z-index: 2;
  padding-bottom: 6px;
  background: #fff;
}

.gitesHousekeepingRoomHead,
.gitesHousekeepingDateHead span {
  color: #63716c;
  font-size: 12px;
  font-weight: 650;
}

.gitesHousekeepingDateHead {
  display: grid;
  gap: 2px;
}

.gitesHousekeepingDateHead span {
  grid-column: span 2;
  min-height: 26px;
  padding: 4px 3px;
  border-radius: 5px;
  text-align: center;
}

.gitesHousekeepingDateHead strong {
  display: block;
  font-size: 12px;
}

.gitesHousekeepingDateHead small {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px;
  margin-top: 2px;
  color: #7a8783;
  font-size: 10px;
  font-weight: 500;
}

.gitesHousekeepingDateHead em {
  font-style: normal;
}

.gitesHousekeepingDateHead span.current {
  background: #edf4f1;
  color: #263a35;
}

.gitesHousekeepingRows {
  display: grid;
  gap: 8px;
}

.gitesHousekeepingTimelineRow {
  min-height: 82px;
}

.gitesHousekeepingRoomLabel {
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 8px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #f8faf9;
}

.gitesHousekeepingRoomLabel strong {
  font-size: 14px;
}

.gitesHousekeepingRoomLabel span {
  color: #63716c;
  font-size: 12px;
}

.gitesHousekeepingLane {
  position: relative;
  display: grid;
  grid-auto-rows: minmax(32px, auto);
  gap: 2px;
  min-height: 82px;
  padding: 6px 0;
}

.gitesHousekeepingLaneGrid {
  grid-column: 1 / -1;
  grid-row: 1 / span 2;
  display: grid;
  gap: 2px;
  pointer-events: none;
}

.gitesHousekeepingLaneGrid span {
  min-height: 70px;
  border-radius: 5px;
  background: #f6f8f7;
}

.gitesHousekeepingLaneGrid span:nth-child(2n + 1) {
  border-left: 1px solid #cfdad6;
}

.gitesHousekeepingStayBar {
  z-index: 1;
  grid-row: 1;
  align-self: start;
  min-width: 0;
  padding: 6px 8px;
  border: 1px solid #a8c7bd;
  border-radius: 7px;
  background: #dfeee9;
  color: #1f2926;
  overflow: hidden;
}

.gitesHousekeepingStayBar strong,
.gitesHousekeepingStayBar span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gitesHousekeepingStayBar strong {
  font-size: 13px;
}

.gitesHousekeepingStayBar span {
  margin-top: 2px;
  color: #3f504a;
  font-size: 12px;
}

.gitesHousekeepingInterventionMarker {
  z-index: 1;
  grid-row: 2;
  min-width: 0;
  padding: 5px;
  border: 1px solid #d8c785;
  border-radius: 7px;
  background: #fff8df;
  cursor: pointer;
}

.gitesHousekeepingInterventionMarker.status-proposed {
  border-color: #d39a2f;
  background: #fff3d4;
  color: #5b4112;
}

.gitesHousekeepingInterventionMarker.status-planned,
.gitesHousekeepingInterventionMarker.status-confirmed {
  border-color: #7eb08f;
  background: #e6f5e9;
  color: #1f4b2c;
}

.gitesHousekeepingInterventionMarker.status-done {
  border-color: #b9d6c3;
  background: #f2faf4;
}

.gitesHousekeepingInterventionMarker.status-issue {
  border-color: #d49a9e;
  background: #fff0f2;
  color: #713039;
}

.gitesHousekeepingInterventionMeta {
  display: grid;
  gap: 1px;
  margin-bottom: 4px;
}

.gitesHousekeepingInterventionMeta strong,
.gitesHousekeepingInterventionMeta span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gitesHousekeepingInterventionMeta strong {
  font-size: 11px;
}

.gitesHousekeepingInterventionMeta span {
  color: #63716c;
  font-size: 11px;
}

.gitesHousekeepingAdjustHint {
  display: inline-flex;
  width: 100%;
  min-height: 22px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  margin-top: 4px;
  border: 1px solid rgba(38, 58, 53, 0.22);
  border-radius: 5px;
  color: #263a35;
  font-size: 11px;
  font-weight: 650;
}

.gitesHousekeepingInterventionMarker .button {
  display: flex;
  width: 100%;
  min-height: 26px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
  border: 1px solid #263a35;
  border-radius: 5px;
  background: #263a35;
  color: #fff;
  font-size: 11px;
}

.gitesHousekeepingInterventionMarker .button.danger {
  border-color: #b55a4d;
  background: #fff5f3;
  color: #8d3025;
}

.gitesHousekeepingWeeks {
  display: grid;
  gap: 18px;
}

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

.gitesHousekeepingWeekHeader {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-top: 4px;
  border-top: 1px solid #e2e9e6;
}

.gitesHousekeepingWeekHeader h5 {
  margin: 0;
  font-size: 15px;
}

.gitesHousekeepingWeekHeader span {
  color: #63716c;
  font-size: 12px;
}

.gitesHousekeepingDays {
  display: grid;
  grid-template-columns: repeat(7, minmax(180px, 1fr));
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.gitesHousekeepingDay {
  min-width: 180px;
  padding: 10px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fff;
}

.gitesHousekeepingDay header {
  display: grid;
  gap: 2px;
  margin-bottom: 8px;
}

.gitesHousekeepingDay h5 {
  margin: 0;
  font-size: 14px;
}

.gitesHousekeepingDay header span {
  color: #63716c;
  font-size: 12px;
}

.gitesHousekeepingWarnings,
.gitesHousekeepingCardWarnings {
  display: grid;
  gap: 5px;
  margin: 0 0 8px;
  padding: 0;
  list-style: none;
}

.gitesHousekeepingWarnings li,
.gitesHousekeepingCardWarnings li {
  padding: 5px 6px;
  border-radius: 6px;
  background: #fff8df;
  color: #735a14;
  font-size: 12px;
}

.gitesHousekeepingWarnings li.level-high {
  background: #fff0ed;
  color: #8d3025;
}

.gitesHousekeepingList {
  display: grid;
  gap: 8px;
}

.gitesHousekeepingCard {
  padding: 9px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fbfcfb;
}

.gitesHousekeepingCard.status-proposed {
  border-color: #d39a2f;
  background: #fff8e8;
}

.gitesHousekeepingCard.status-planned,
.gitesHousekeepingCard.status-confirmed {
  border-color: #7eb08f;
  background: #eff9f1;
}

.gitesHousekeepingCard.status-done {
  border-color: #b9d6c3;
  background: #f2faf4;
}

.gitesHousekeepingCard.status-issue {
  border-color: #d49a9e;
  background: #fff0f2;
}

.gitesHousekeepingCardTop {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.gitesHousekeepingCardTop strong {
  min-width: 0;
  font-size: 14px;
}

.gitesHousekeepingStatus {
  color: #63716c;
  font-size: 12px;
  white-space: nowrap;
}

.gitesHousekeepingMeta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 7px 0;
}

.gitesHousekeepingMeta span {
  padding: 3px 6px;
  border: 1px solid #dbe4e0;
  border-radius: 999px;
  background: #fff;
  color: #33443e;
  font-size: 12px;
}

.gitesHousekeepingBooking {
  display: grid;
  gap: 2px;
  margin: 6px 0 0;
}

.gitesHousekeepingBooking span {
  color: #2c3d38;
  font-size: 12px;
  font-weight: 650;
}

.gitesHousekeepingBooking small {
  color: #63716c;
  font-size: 12px;
}

.gitesHousekeepingCardActions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 9px;
}

.gitesHousekeepingEmpty {
  margin: 8px 0 0;
  color: #74817d;
  font-size: 13px;
}

.gitesHousekeepingModal {
  position: fixed;
  z-index: 50;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
}

.gitesHousekeepingModalBackdrop {
  position: absolute;
  inset: 0;
  background: rgba(31, 41, 38, 0.32);
}

.gitesHousekeepingDialog {
  position: relative;
  z-index: 1;
  width: min(100%, 560px);
  max-height: calc(100vh - 36px);
  overflow: auto;
  padding: 16px;
  border: 1px solid #cbd8d3;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(31, 41, 38, 0.24);
}

.gitesHousekeepingDialog header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.gitesHousekeepingDialog h5,
.gitesHousekeepingDialog h6 {
  margin: 0;
  font-size: 15px;
}

.gitesHousekeepingDialog p {
  margin: 3px 0 0;
  color: #63716c;
  font-size: 13px;
}

.gitesHousekeepingDialogFields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.gitesHousekeepingDialogFields label {
  display: grid;
  gap: 5px;
  color: #3f504a;
  font-size: 12px;
  font-weight: 650;
}

.gitesHousekeepingDialogFields select,
.gitesHousekeepingDialogFields input[type="text"] {
  min-height: 34px;
  box-sizing: border-box;
  padding: 0 8px;
  border: 1px solid #c9d4d0;
  border-radius: 6px;
  background: #fff;
  color: #1f2926;
  font: inherit;
}

.gitesHousekeepingConfirmField {
  grid-template-columns: auto minmax(0, 1fr);
  align-content: end;
  align-items: center;
  min-height: 34px;
  padding-top: 17px;
}

.gitesHousekeepingConfirmField input {
  width: 15px;
  height: 15px;
  margin: 0;
  accent-color: #3f6657;
}

.gitesHousekeepingNoteField {
  grid-column: 1 / -1;
}

.gitesHousekeepingRules {
  margin-top: 14px;
  padding: 10px;
  border: 1px solid #e2e9e6;
  border-radius: 8px;
  background: #f8faf9;
}

.gitesHousekeepingRules ul {
  display: grid;
  gap: 7px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

.gitesHousekeepingRules li {
  display: grid;
  gap: 2px;
}

.gitesHousekeepingRules strong {
  color: #263a35;
  font-size: 12px;
}

.gitesHousekeepingRules span {
  color: #63716c;
  font-size: 12px;
}

.gitesHousekeepingDialogActions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 14px;
}

.gitesBookingManager {
  display: grid;
  grid-template-rows: auto auto minmax(0, 2fr) minmax(0, 1fr);
  gap: 10px;
  min-height: 0;
}

.gitesBookingHeader {
  display: grid;
  gap: 14px;
  padding: 12px 12px 2px;
}

.gitesBookingTitle {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
}

.gitesBookingTitle h4 {
  margin: 0 0 4px;
  font-size: 16px;
}

.gitesBookingTitle p,
.gitesBookingListHead span,
.gitesBookingMuted {
  margin: 0;
  color: #63716c;
  font-size: 13px;
}

.gitesBookingFilters {
  display: grid;
  grid-template-columns: repeat(2, minmax(118px, 0.8fr)) minmax(260px, 1.2fr) minmax(170px, 1.4fr) auto;
  gap: 8px;
  align-items: end;
}

.gitesBookingField {
  display: grid;
  gap: 4px;
  min-width: 0;
  color: #3f504a;
  font-size: 12px;
  font-weight: 650;
}

.gitesBookingField input,
.gitesBookingField select {
  width: 100%;
  min-height: 32px;
  box-sizing: border-box;
  padding: 0 8px;
  border: 1px solid #c9d4d0;
  border-radius: 6px;
  background: #fff;
  color: #1f2926;
  font: inherit;
}

.gitesBookingStatusOptions {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 7px;
  min-width: 0;
}

.gitesBookingCheckboxField {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  box-sizing: border-box;
  padding: 0 9px;
  border: 1px solid #c9d4d0;
  border-radius: 6px;
  background: #fff;
  color: #31463f;
  font-size: 12px;
  font-weight: 650;
  white-space: nowrap;
  cursor: pointer;
}

.gitesBookingCheckboxField input {
  width: 14px;
  height: 14px;
  margin: 0;
  accent-color: #2d5b4d;
}

.gitesBookingFilterActions {
  display: flex;
  gap: 7px;
  justify-content: flex-end;
}

.gitesBookingWindowActions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

.gitesBookingFilterActions .button,
.gitesBookingWindowActions .button,
.gitesBookingHeroActions .button,
.gitesBookingLinkButton {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 0 11px;
  border: 1px solid #cad5d1;
  border-radius: 6px;
  background: #fff;
  color: #2c3d38;
  font-size: 13px;
  text-decoration: none;
}

.gitesBookingFilterActions .button.primary {
  border-color: #263a35;
  background: #263a35;
  color: #fff;
}

.gitesBookingWindowActions .button.primary {
  border-color: #263a35;
  background: #263a35;
  color: #fff;
}

.gitesBookingError {
  padding: 9px 10px;
  border: 1px solid #e4b7b7;
  border-radius: 6px;
  background: #fff3f3;
  color: #8c2525;
  font-size: 13px;
}

.gitesBookingLayout {
  display: grid;
  grid-template-columns: minmax(520px, 0.9fr) minmax(440px, 1.1fr);
  gap: 14px;
  align-items: start;
}

.gitesBookingList,
.gitesBookingDetail,
.gitesBookingEmpty,
.gitesBookingPanel {
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fff;
}

.gitesBookingList,
.gitesBookingDetail {
  min-width: 0;
}

.gitesBookingListHead {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 12px 8px;
}

.gitesBookingListHead h5,
.gitesBookingEmpty h5,
.gitesBookingDetailHero h5,
.gitesBookingPanel h6,
.gitesBookingSection h6,
.gitesBookingInfoItems h6 {
  margin: 0;
  font-size: 15px;
}

.gitesBookingTableWrap {
  max-height: 760px;
  overflow: auto;
  border-top: 1px solid #e2e9e6;
}

.gitesBookingTable,
.gitesBookingSubTable {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.gitesBookingTable {
  min-width: 780px;
}

.gitesBookingTable th,
.gitesBookingTable td,
.gitesBookingSubTable th,
.gitesBookingSubTable td {
  padding: 8px 9px;
  border-bottom: 1px solid #e2e9e6;
  text-align: left;
  vertical-align: top;
}

.gitesBookingTable th,
.gitesBookingSubTable th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fff;
  color: #53645f;
  font-size: 12px;
  font-weight: 750;
}

.gitesBookingTable tr {
  cursor: pointer;
}

.gitesBookingTable tr:hover td,
.gitesBookingTable tr.selected td {
  background: #eef5f2;
}

.gitesBookingTable td > strong,
.gitesBookingTable td > span,
.gitesBookingTable td > small {
  display: block;
}

.gitesBookingTable td > span,
.gitesBookingTable td > small,
.gitesBookingSubTable td {
  color: #63716c;
}

.gitesBookingStatus {
  display: inline-flex;
  width: fit-content;
  min-height: 22px;
  align-items: center;
  padding: 0 7px;
  border: 1px solid #dbe4e0;
  border-radius: 999px;
  background: #f8faf9;
  color: #33443e;
  font-size: 12px;
  font-weight: 650;
}

.gitesBookingStatus.status-confirmed {
  border-color: #d7ad5e;
  background: #ffdd9b;
  color: #4b3820;
}

.gitesBookingStatus.status-new {
  border-color: #d98734;
  background: #ffaa56;
  color: #3f2814;
}

.gitesBookingStatus.status-inquiry {
  border-color: #998fe0;
  background: #c0b5f4;
  color: #312d5d;
}

.gitesBookingStatus.status-request {
  border-color: #bfa4e8;
  background: #e4ccff;
  color: #3e2d57;
}

.gitesBookingStatus.status-black,
.gitesBookingStatus.status-cancelled {
  color: #4d514e;
}

.gitesBookingStatus.status-cancelled {
  border-color: #d2d2d2;
  background: #efefef;
}

.gitesBookingStatus.status-black {
  border-color: #c99e7c;
  background: #eabd9a;
}

.gitesBookingFlags,
.gitesBookingAttention {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gitesBookingFlags li,
.gitesBookingAttention li {
  padding: 5px 6px;
  border-radius: 6px;
  background: #eef5f2;
  color: #2f4b42;
  font-size: 12px;
}

.gitesBookingFlags li.level-warning,
.gitesBookingAttention li.severity-medium {
  background: #fff8df;
  color: #735a14;
}

.gitesBookingFlags li.level-high,
.gitesBookingAttention li.severity-high {
  background: #fff0ed;
  color: #8d3025;
}

.gitesBookingDetail {
  display: grid;
  gap: 10px;
  padding: 12px;
}

.gitesBookingEmpty {
  padding: 14px;
}

.gitesBookingEmpty p {
  margin: 6px 0 0;
  color: #63716c;
  font-size: 13px;
}

.gitesBookingDetailHero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
  padding-bottom: 10px;
  border-bottom: 1px solid #e2e9e6;
}

.gitesBookingKicker {
  color: #63716c;
  font-size: 12px;
  font-weight: 750;
  text-transform: uppercase;
}

.gitesBookingDetailHero p {
  margin: 4px 0 0;
  color: #4c5c57;
  font-size: 13px;
}

.gitesBookingHeroActions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

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

.gitesBookingPanel {
  min-width: 0;
  padding: 11px;
}

.gitesBookingPanel.wide {
  grid-column: 1 / -1;
}

.gitesBookingPanelHead {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.gitesBookingPanelHead span {
  color: #63716c;
  font-size: 12px;
  text-align: right;
}

.gitesBookingPanel dl {
  display: grid;
  gap: 7px;
  margin: 9px 0 0;
}

.gitesBookingPanel dl div {
  display: grid;
  grid-template-columns: minmax(90px, 0.7fr) minmax(0, 1fr);
  gap: 10px;
}

.gitesBookingPanel dt {
  color: #63716c;
  font-size: 12px;
}

.gitesBookingPanel dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  color: #1f2926;
  font-size: 13px;
  font-weight: 650;
}

.gitesBookingMoneyGrid,
.gitesBookingCustomGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}

.gitesBookingMoneyGrid div,
.gitesBookingCustomGrid div,
.gitesBookingInfoGrid article,
.gitesBookingNeighborGrid article {
  min-width: 0;
  padding: 9px;
  border: 1px solid #dbe4e0;
  border-radius: 7px;
  background: #f8faf9;
}

.gitesBookingMoneyGrid span,
.gitesBookingCustomGrid span,
.gitesBookingInfoGrid span,
.gitesBookingNeighborGrid span,
.gitesBookingNeighborGrid small {
  display: block;
  color: #63716c;
  font-size: 12px;
}

.gitesBookingMoneyGrid strong,
.gitesBookingCustomGrid strong,
.gitesBookingInfoGrid strong,
.gitesBookingNeighborGrid strong {
  display: block;
  min-width: 0;
  margin-top: 3px;
  overflow-wrap: anywhere;
  font-size: 13px;
}

.gitesBookingSubTableWrap {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid #e2e9e6;
  border-radius: 7px;
}

.gitesBookingSubTable {
  min-width: 520px;
}

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

.gitesBookingTextBlock {
  display: grid;
  gap: 4px;
  margin: 10px 0;
}

.gitesBookingTextBlock span {
  color: #63716c;
  font-size: 12px;
  font-weight: 650;
}

.gitesBookingTextBlock p {
  max-height: 160px;
  margin: 0;
  overflow: auto;
  padding: 8px;
  border: 1px solid #e2e9e6;
  border-radius: 7px;
  background: #fbfcfb;
  color: #2c3d38;
  font-size: 13px;
  white-space: pre-wrap;
}

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

.gitesBookingMessageToolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
}

.gitesBookingMessageToolbar p {
  margin: 0;
  color: #63716c;
  font-size: 13px;
}

.gitesBookingMessageToolbar .button,
.gitesBookingThread footer .button {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: 0 10px;
  border: 1px solid #cad5d1;
  border-radius: 6px;
  background: #fff;
  color: #2c3d38;
  font-size: 13px;
}

.gitesBookingMessageToolbar .button.primary,
.gitesBookingThread footer .button.primary {
  border-color: #263a35;
  background: #263a35;
  color: #fff;
}

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

.gitesBookingThread {
  display: grid;
  gap: 9px;
  padding: 10px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #f8faf9;
}

.gitesBookingThread.status-needs-reply,
.gitesBookingThread.status-open,
.gitesBookingThread.status-unread {
  border-color: #dfc16e;
  background: #fff9e9;
}

.gitesBookingThread.status-answered {
  border-color: #bdd2c9;
  background: #f5faf7;
}

.gitesBookingThread > header,
.gitesBookingMessage > header,
.gitesBookingThread footer {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  justify-content: space-between;
}

.gitesBookingThread > header strong,
.gitesBookingThread > header span,
.gitesBookingMessage > header strong,
.gitesBookingMessage > header span {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.gitesBookingThread > header span,
.gitesBookingMessage > header span {
  color: #63716c;
  font-size: 12px;
}

.gitesBookingThreadStatus {
  flex: 0 0 auto;
  padding: 4px 7px;
  border-radius: 999px;
  background: #edf4f1;
  color: #2f4b42;
  font-size: 12px;
  font-weight: 750;
}

.gitesBookingMessageList {
  display: grid;
  gap: 7px;
}

.gitesBookingMessage {
  display: grid;
  gap: 5px;
  padding: 8px;
  border: 1px solid #e2e9e6;
  border-radius: 7px;
  background: #fff;
}

.gitesBookingMessage.direction-outbound {
  background: #f1f7f4;
}

.gitesBookingMessage p {
  max-height: 180px;
  margin: 0;
  overflow: auto;
  color: #2c3d38;
  font-size: 13px;
  white-space: pre-wrap;
}

.gitesBookingReplyBox {
  display: grid;
  gap: 7px;
}

.gitesBookingReplyBox textarea {
  width: 100%;
  min-height: 82px;
  box-sizing: border-box;
  resize: vertical;
  padding: 8px;
  border: 1px solid #cad5d1;
  border-radius: 7px;
  background: #fff;
  color: #243733;
  font: inherit;
  font-size: 13px;
  line-height: 1.35;
}

.gitesBookingReplyBox textarea:focus {
  outline: 2px solid rgba(63, 102, 87, 0.22);
  border-color: #668174;
}

.gitesBookingReplyBox > div {
  display: flex;
  justify-content: flex-end;
}

.gitesBookingThread footer {
  flex-wrap: wrap;
  justify-content: flex-start;
}

.gitesBookingInfoItems,
.gitesBookingSection {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.gitesBookingInfoGrid,
.gitesBookingNeighborGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
}

.gitesBookingInfoGrid p,
.gitesBookingAttention p {
  margin: 4px 0 0;
  color: #33443e;
  font-size: 12px;
}

.gitesBookingInfoItemHead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.gitesBookingInfoItemHead > span:last-child,
.gitesBookingInfoGrid small {
  color: #74817d;
  font-size: 11px;
}

.gitesBookingInfoCodes {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  min-width: 0;
}

.gitesBookingInfoCodes.compact {
  gap: 3px;
}

.gitesBookingInfoCode {
  display: inline-flex;
  max-width: 100%;
  min-height: 22px;
  align-items: center;
  gap: 4px;
  box-sizing: border-box;
  padding: 2px 6px;
  border: 1px solid #cfdad6;
  border-radius: 6px;
  background: #f4f7f5;
  color: #2c3d38;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
}

.gitesBookingInfoCodes.compact .gitesBookingInfoCode {
  min-height: 18px;
  padding: 1px 4px;
  border-radius: 5px;
  font-size: 10px;
}

.gitesBookingInfoCodes.compact .gitesBookingInfoCode.icon-only {
  width: 20px;
  min-width: 20px;
  height: 20px;
  min-height: 20px;
  justify-content: center;
  padding: 0;
}

.gitesBookingInfoCodeText {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gitesBookingInfoIcon {
  display: inline-block;
  width: 1em;
  color: inherit;
  font-size: 12px;
  line-height: 1;
  text-align: center;
}

.gitesBookingInfoCodes.compact .gitesBookingInfoIcon {
  font-size: 11px;
}

.gitesBookingInfoCode.more {
  background: #fff;
  color: #63716c;
}

.gitesBookingInfoCode.tone-done {
  border-color: #acd0bc;
  background: #e3f3ea;
  color: #24513a;
}

.gitesBookingInfoCode.tone-housekeeping {
  border-color: #c1d99d;
  background: #edf7dc;
  color: #40551d;
}

.gitesBookingInfoCode.tone-finance {
  border-color: #e6c979;
  background: #fff2c8;
  color: #624a0d;
}

.gitesBookingInfoCode.tone-door {
  border-color: #d5c49d;
  background: #f4ecd9;
  color: #57472c;
}

.gitesBookingInfoCode.tone-guest {
  border-color: #a9cce6;
  background: #e8f4ff;
  color: #224f6b;
}

.gitesBookingInfoCode.tone-host {
  border-color: #cad5d1;
  background: #eef4f1;
  color: #304a42;
}

.gitesBookingInfoCode.tone-guarantee {
  border-color: #d1b28a;
  background: #fbecd9;
  color: #60401f;
}

.gitesBookingInfoCode.tone-warning {
  border-color: #e4afa0;
  background: #fff0ec;
  color: #7c3024;
}

.gitesBookingInfoCode.tone-payment-delay {
  border-color: #dca75d;
  background: #fff0d7;
  color: #604019;
}

.gitesBookingNeighborGrid article {
  cursor: pointer;
}

.gitesBookingSectionHead {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.gitesBookingSectionHead h5 {
  margin: 0 0 3px;
  font-size: 16px;
}

.gitesBookingSectionHead p,
.gitesBookingSectionHead span {
  margin: 0;
  color: #63716c;
  font-size: 13px;
}

.gitesBookingCalendar,
.gitesBookingQueue {
  min-height: 0;
  padding: 12px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fff;
}

.gitesBookingCalendar {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
}

.gitesBookingQueue {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

.gitesBookingCalendarViewport {
  min-width: 0;
  min-height: 0;
  overflow-x: auto;
  overflow-y: auto;
  padding-bottom: 6px;
}

.gitesBookingCalendarTimeline {
  display: grid;
  grid-template-columns: 72px minmax(1260px, 1fr) 72px;
  gap: 6px;
  align-items: stretch;
  min-width: 0;
}

.gitesBookingCalendarRangeActions {
  display: grid;
  align-content: stretch;
  gap: 4px;
  min-height: 44px;
}

.gitesBookingCalendarRangeActions.after {
  justify-items: stretch;
}

.gitesBookingCalendarRangeActions .button {
  display: inline-flex;
  box-sizing: border-box;
  min-height: 20px;
  align-items: center;
  justify-content: center;
  padding: 3px 4px;
  border: 1px solid #ccd8d4;
  border-radius: 6px;
  background: #f6f9f7;
  color: #34463f;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  white-space: normal;
}

.gitesBookingCalendarRangeActions .button:hover {
  border-color: #aebfb8;
  background: #edf4ef;
}

.gitesBookingCalendarHead,
.gitesBookingPropertyHeader,
.gitesBookingCalendarRow {
  display: grid;
  grid-template-columns: 176px minmax(1416px, 1fr);
  gap: 10px;
  align-items: stretch;
}

.gitesBookingCalendarHead {
  position: sticky;
  top: 0;
  z-index: 2;
  padding-bottom: 6px;
  background: #fff;
}

.gitesBookingCalendarRoomHead,
.gitesBookingCalendarDays span {
  color: #63716c;
  font-size: 12px;
  font-weight: 650;
}

.gitesBookingCalendarRoomHead {
  position: sticky;
  left: 0;
  z-index: 4;
  box-sizing: border-box;
  display: grid;
  align-items: center;
  padding: 0 8px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fff;
  box-shadow: 8px 0 12px rgba(38, 58, 53, 0.08);
}

.gitesBookingCalendarDays {
  display: grid;
  gap: 2px;
}

.gitesBookingCalendarDays span {
  grid-column: span 2;
  box-sizing: border-box;
  min-height: 26px;
  padding: 4px 3px;
  border-left: 1px solid transparent;
  border-right: 1px solid transparent;
  border-radius: 5px;
  text-align: center;
}

.gitesBookingCalendarDays span.weekend {
  background: #e8f2e8;
  color: #52665d;
}

.gitesBookingCalendarDays span.current {
  border-left-color: #3f6657;
  border-left-width: 3px;
  border-right-color: #3f6657;
  border-right-width: 3px;
  background: #c8dbd0;
  color: #17382e;
}

.gitesBookingCalendarDays strong {
  display: block;
  font-size: 12px;
}

.gitesBookingCalendarDays small {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px;
  margin-top: 2px;
  color: #7a8783;
  font-size: 10px;
  font-weight: 500;
}

.gitesBookingCalendarDays em {
  font-style: normal;
}

.gitesBookingCalendarRows {
  display: grid;
  gap: 5px;
}

.gitesBookingRangeSpacer {
  min-width: 0;
  min-height: 100%;
  border: 1px solid #e0e9e5;
  border-radius: 7px;
  background: #f8fbf9;
}

.gitesBookingPropertyGroup {
  display: grid;
  gap: 5px;
}

.gitesBookingPropertyHeader {
  min-height: 32px;
}

.gitesBookingPropertyTitle {
  position: sticky;
  left: 0;
  z-index: 3;
  box-sizing: border-box;
  display: flex;
  gap: 9px;
  align-items: center;
  min-width: 0;
  padding: 5px 8px;
  border: 1px solid #cdd9d5;
  border-radius: 8px;
  background: #eef4f1;
  box-shadow: 8px 0 12px rgba(38, 58, 53, 0.08);
}

.gitesBookingPropertyBand {
  min-width: 0;
  min-height: 34px;
  border: 1px solid #d8e2de;
  border-radius: 8px;
  background: #f6f9f7;
}

.gitesBookingPropertyTitle .button {
  display: inline-flex;
  box-sizing: border-box;
  width: 28px;
  height: 24px;
  flex: 0 0 28px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid #b8c8c2;
  border-radius: 6px;
  background: #fff;
  color: #34463f;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

.gitesBookingPropertyTitle .button:hover {
  border-color: #91aaa1;
  background: #f8fbf9;
}

.gitesBookingPropertyTitle strong {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #263a35;
  font-size: 14px;
}

.gitesBookingPropertyRows {
  display: grid;
  gap: 4px;
}

.gitesBookingCalendarRow {
  min-height: 68px;
}

.gitesBookingRoomLabel {
  position: sticky;
  left: 0;
  z-index: 3;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 5px 7px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #f8faf9;
}

.gitesBookingCalendarRow.room-kind-studio .gitesBookingRoomLabel {
  border-color: #bfd7d9;
  background: #eef8f8;
}

.gitesBookingCalendarRow.room-kind-apartment .gitesBookingRoomLabel {
  border-color: #d9ceb9;
  background: #faf5ea;
}

.gitesBookingRoomLabel strong,
.gitesBookingRoomLabel span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gitesBookingRoomLabel strong {
  font-size: 13px;
}

.gitesBookingRoomLabel span {
  color: #63716c;
  font-size: 12px;
}

.gitesBookingLane {
  position: relative;
  display: grid;
  grid-auto-rows: minmax(27px, auto);
  gap: 2px;
  min-height: 68px;
  padding: 4px 0 6px;
}

.gitesBookingDayGuides {
  grid-column: 1 / -1;
  grid-row: 1 / span 2;
  display: grid;
  gap: 2px;
  pointer-events: none;
}

.gitesBookingDayGuides span {
  box-sizing: border-box;
  min-height: 62px;
  border-right: 2px solid #aebdb7;
}

.gitesBookingDayGuides span:first-child {
  border-left: 2px solid #aebdb7;
}

.gitesBookingDayGuides span.weekend {
  background: rgba(128, 170, 133, 0.18);
}

.gitesBookingDayGuides span.current {
  border-left: 3px solid #3f6657;
  border-right: 3px solid #3f6657;
  background: rgba(84, 126, 101, 0.28);
}

.gitesBookingLaneGrid {
  grid-column: 1 / -1;
  grid-row: 1 / span 2;
  display: grid;
  gap: 2px;
  pointer-events: none;
}

.gitesBookingLaneGrid span {
  box-sizing: border-box;
  min-height: 58px;
  border-left: 1px solid transparent;
  border-right: 1px solid transparent;
  border-radius: 5px;
  background: rgba(246, 248, 247, 0.78);
}

.gitesBookingCalendarRow.room-kind-studio .gitesBookingLaneGrid span {
  background: rgba(238, 248, 248, 0.72);
}

.gitesBookingCalendarRow.room-kind-apartment .gitesBookingLaneGrid span {
  background: rgba(250, 245, 234, 0.72);
}

.gitesBookingLaneGrid span:nth-child(2n + 1) {
  border-left: 1px solid #d7dfdc;
}

.gitesBookingLaneGrid span.weekend {
  background: rgba(225, 240, 226, 0.84);
}

.gitesBookingLaneGrid span.current {
  background: rgba(139, 170, 151, 0.42);
}

.gitesBookingLaneGrid span.current.day-start {
  border-left: 3px solid #3f6657;
}

.gitesBookingLaneGrid span.current.day-end {
  border-right: 3px solid #3f6657;
}

.gitesBookingStayBar {
  position: relative;
  z-index: 1;
  grid-row: 1;
  align-self: start;
  min-width: 0;
  padding: 4px 6px;
  border: 1px solid #a8c7bd;
  border-radius: 7px;
  background: #dfeee9;
  color: #1f2926;
  cursor: pointer;
  overflow: hidden;
}

.gitesBookingStayBar.status-confirmed {
  border-color: #d7ad5e;
  background: #ffdd9b;
}

.gitesBookingStayBar.status-new {
  border-color: #d98734;
  background: #ffaa56;
}

.gitesBookingStayBar.status-inquiry {
  border-color: #998fe0;
  background: #c0b5f4;
}

.gitesBookingStayBar.status-request {
  border-color: #bfa4e8;
  background: #e4ccff;
}

.gitesBookingStayBar.status-cancelled {
  border-color: #d2d2d2;
  background: #efefef;
  color: #5a5f5c;
}

.gitesBookingStayBar.status-black {
  border-color: #c99e7c;
  background: #eabd9a;
}

.gitesBookingStayBar.is-past {
  filter: saturate(0.45);
}

.gitesBookingStayBar.has-alert {
  border-color: #8f6817;
  box-shadow: inset 0 0 0 2px rgba(143, 104, 23, 0.24);
}

.gitesBookingStayBar .gitesBookingChannelIcon {
  display: inline-flex;
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  align-items: center;
  justify-content: center;
  margin: 0;
  border: 1px solid rgba(24, 37, 32, 0.18);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.86);
  color: #243731;
  font-size: 10px;
  font-weight: 850;
  line-height: 1;
  overflow: hidden;
  text-overflow: clip;
  white-space: normal;
}

.gitesBookingStayBar .gitesBookingChannelIcon i {
  font-size: 9px;
  line-height: 1;
}

.gitesBookingStayBar .gitesBookingChannelIcon b {
  display: block;
  font-size: 7px;
  line-height: 1;
  letter-spacing: 0;
}

.gitesBookingStayBar .gitesBookingChannelIcon.channel-airbnb {
  color: #ff385c;
}

.gitesBookingStayBar .gitesBookingChannelIcon.channel-booking {
  border-color: rgba(0, 53, 128, 0.2);
  background: #003b95;
  color: #fff;
}

.gitesBookingStayBar strong,
.gitesBookingStayBar span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gitesBookingStayBar strong {
  font-size: 12px;
  line-height: 1.15;
}

.gitesBookingStayBar.has-channel-icon > strong {
  padding-left: 0;
}

.gitesBookingStayBar span {
  margin-top: 1px;
  color: #3f504a;
  font-size: 11px;
}

.gitesBookingStayMetaLine {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 4px;
  margin-top: 1px;
  overflow: hidden;
}

.gitesBookingStayMetaLine .gitesBookingChannelIcon {
  margin: 0;
}

.gitesBookingStayMetaLine .gitesBookingStayComposition {
  display: inline;
  flex: 0 0 auto;
  margin: 0;
  color: #3f504a;
  font-size: 11px;
  font-weight: 750;
  line-height: 16px;
  overflow: visible;
  text-overflow: clip;
  white-space: nowrap;
}

.gitesBookingStayMetaLine .gitesBookingInfoCodes.compact {
  display: inline-flex;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  min-width: 0;
  margin-top: 0;
  overflow: hidden;
}

.gitesBookingStayMetaLine .gitesBookingInfoCode {
  flex: 0 0 auto;
}

.gitesBookingStayBar.status-cancelled span {
  color: #686d6a;
}

.gitesBookingStayBar .gitesBookingInfoCodes.compact {
  margin-top: 5px;
}

.gitesBookingStayBar .gitesBookingInfoCode,
.gitesBookingStayBar .gitesBookingInfoCode.more {
  display: inline-flex;
  margin-top: 0;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

.gitesBookingIntervention {
  z-index: 1;
  grid-row: 2;
  min-width: 0;
  padding: 5px 6px;
  border: 1px solid #b4c8d0;
  border-radius: 7px;
  background: #e7f0f3;
  color: #263840;
  cursor: pointer;
  overflow: hidden;
}

.gitesBookingIntervention.status-housekeeping,
.gitesBookingIntervention.status-warning {
  border-color: #b4c8d0;
  background: #e7f0f3;
}

.gitesBookingIntervention.housekeeping-proposed {
  border-color: #c9d0cd;
  background: #eef1f0;
  color: #56625e;
  box-shadow: none;
}

.gitesBookingIntervention.housekeeping-planned,
.gitesBookingIntervention.housekeeping-confirmed {
  border-color: #6fa783;
  background: #e5f5e8;
  color: #1f4b2c;
  box-shadow: inset 0 0 0 1px rgba(111, 167, 131, 0.18);
}

.gitesBookingIntervention.housekeeping-issue {
  border-color: #d49a9e;
  background: #fff0f2;
  color: #713039;
  box-shadow: inset 0 0 0 1px rgba(212, 154, 158, 0.2);
}

.gitesBookingIntervention.housekeeping-issue.has-high-warning {
  border-color: #c87880;
  background: #ffe5e9;
  color: #713039;
  box-shadow: inset 0 0 0 1px rgba(200, 120, 128, 0.24);
}

.gitesBookingIntervention strong,
.gitesBookingIntervention span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 10px;
}

.gitesBookingIntervention span {
  color: #63716c;
}

.gitesBookingInterventionNoteIcon {
  display: inline-block;
  margin-left: 4px;
  color: currentColor;
  font-size: 10px;
  line-height: 1;
  vertical-align: -1px;
}

.gitesBookingIntervention.housekeeping-proposed span {
  color: #6d7773;
}

.gitesBookingIntervention.housekeeping-planned span,
.gitesBookingIntervention.housekeeping-confirmed span {
  color: #376945;
}

.gitesBookingIntervention.housekeeping-issue span {
  color: #8a454d;
}

.gitesBookingIntervention.housekeeping-issue.has-high-warning span {
  color: #7d3440;
}

.gitesBookingIntervention.is-past {
  border-color: #c9d0cd;
  background: #eef1f0;
  color: #56625e;
  box-shadow: none;
}

.gitesBookingIntervention.is-past span,
.gitesBookingIntervention.is-past.housekeeping-proposed span,
.gitesBookingIntervention.is-past.housekeeping-planned span,
.gitesBookingIntervention.is-past.housekeeping-confirmed span,
.gitesBookingIntervention.is-past.housekeeping-issue span,
.gitesBookingIntervention.is-past.housekeeping-issue.has-high-warning span {
  color: #6d7773;
}

.gitesBookingQueues {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 14px;
  min-height: 0;
}

.gitesBookingQueueList {
  display: grid;
  gap: 8px;
  min-height: 0;
  overflow: auto;
}

.gitesBookingQueueList article {
  min-width: 0;
  padding: 10px;
  border: 1px solid #dbe4e0;
  border-radius: 7px;
  background: #f8faf9;
  cursor: pointer;
}

.gitesBookingQueueList article.level-high {
  border-color: #e0b5ae;
  background: #fff8f6;
}

.gitesBookingQueueList article.level-warning {
  border-color: #ead2a2;
  background: #fff8e8;
}

.gitesBookingQueueList strong,
.gitesBookingQueueList span {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.gitesBookingQueueList span,
.gitesBookingQueueList p,
.gitesBookingQueueList li {
  color: #63716c;
  font-size: 13px;
}

.gitesBookingQueueList p {
  margin: 5px 0 0;
}

.gitesBookingQueueList ul {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

.gitesBookingQueueList li {
  padding: 4px 6px;
  border-radius: 999px;
  background: #fff;
}

.gitesBookingEmptyLine {
  margin: 0;
  color: #74817d;
  font-size: 13px;
}

.gitesBookingModal {
  position: fixed;
  z-index: 60;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
}

.gitesBookingModalBackdrop {
  position: absolute;
  inset: 0;
  background: rgba(31, 41, 38, 0.36);
}

.gitesBookingDialog {
  position: relative;
  z-index: 1;
  width: min(1180px, 100%);
  max-height: calc(100vh - 36px);
  overflow: auto;
  padding: 16px;
  border: 1px solid #cbd8d3;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(31, 41, 38, 0.24);
}

.gitesBookingDialogHead {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e9e6;
}

.gitesBookingDialogHead h5 {
  margin: 3px 0;
  font-size: 20px;
}

.gitesBookingTitleLine {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.gitesBookingTitleLine h5 {
  margin-right: 2px;
}

.gitesBookingStatusBadge {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  padding: 0 8px;
  border: 1px solid #cbd8d3;
  border-radius: 5px;
  background: #eef4f1;
  color: #253530;
  font-size: 12px;
  font-weight: 750;
  font-variant: small-caps;
}

.gitesBookingStatusBadge.status-confirmed {
  border-color: #d7ad5e;
  background: #ffdd9b;
}

.gitesBookingStatusBadge.status-new {
  border-color: #d98734;
  background: #ffaa56;
}

.gitesBookingStatusBadge.status-inquiry {
  border-color: #998fe0;
  background: #c0b5f4;
}

.gitesBookingStatusBadge.status-request {
  border-color: #bfa4e8;
  background: #e4ccff;
}

.gitesBookingStatusBadge.status-cancelled {
  border-color: #d2d2d2;
  background: #efefef;
  color: #5a5f5c;
}

.gitesBookingStatusBadge.status-black {
  border-color: #c99e7c;
  background: #eabd9a;
}

.gitesBookingChannelLink {
  display: inline-flex;
  width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(24, 37, 32, 0.18);
  border-radius: 5px;
  background: #fff;
  color: #243731;
  font-size: 12px;
  font-weight: 850;
  line-height: 1;
  text-decoration: none;
}

.gitesBookingChannelLink.channel-airbnb {
  color: #ff385c;
}

.gitesBookingChannelLink.channel-booking {
  border-color: rgba(0, 53, 128, 0.22);
  background: #003b95;
  color: #fff;
}

.gitesBookingChannelLink b {
  display: block;
  font-size: 9px;
  letter-spacing: 0;
}

.gitesBookingDialogHead p {
  margin: 0;
  color: #4c5c57;
  font-size: 13px;
}

.gitesBookingKicker {
  color: #63716c;
  font-size: 12px;
  font-weight: 750;
  text-transform: uppercase;
}

.gitesBookingBeds24Link {
  display: inline-flex;
  width: fit-content;
  text-decoration: none;
}

.gitesBookingBeds24Link:hover {
  color: #1f5947;
  text-decoration: underline;
}

.gitesBookingDialogActions,
.gitesBookingActionBar {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

.gitesBookingDialogActions .button,
.gitesBookingActionBar .button,
.gitesBookingActionBar a {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 0 11px;
  border: 1px solid #cad5d1;
  border-radius: 6px;
  background: #fff;
  color: #2c3d38;
  font-size: 13px;
  text-decoration: none;
}

.gitesBookingDialogActions .button.primary {
  border-color: #263a35;
  background: #263a35;
  color: #fff;
}

.gitesBookingActionBar a.primary {
  border-color: #1f5947;
  background: #23745c;
  color: #fff;
}

.gitesBookingActionBar {
  justify-content: start;
  margin: 12px 0;
}

.gitesBookingActionBar span {
  align-self: center;
  color: #23613f;
  font-size: 13px;
}

.gitesBookingCopyMessage {
  margin: 10px 0 0;
  color: #23613f;
  font-size: 13px;
}

.gitesBookingDecisionPanel {
  display: grid;
  gap: 8px;
  margin: 0 0 12px;
  padding: 10px 11px;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #f6faf8;
}

.gitesBookingDecisionPanel h6 {
  margin: 0;
  font-size: 14px;
}

.gitesBookingDecisionPanel p,
.gitesBookingDecisionPanel ul {
  margin: 0;
}

.gitesBookingDecisionPanel ul {
  display: grid;
  gap: 6px;
  padding: 0;
  list-style: none;
}

.gitesBookingDecisionPanel li {
  display: grid;
  gap: 2px;
  padding: 7px 8px;
  border-radius: 6px;
  background: #edf4f1;
  color: #2f4b42;
  font-size: 13px;
}

.gitesBookingDecisionPanel li.level-high {
  background: #fff0ed;
  color: #8d3025;
}

.gitesBookingDecisionPanel li.level-warning {
  background: #fff8df;
  color: #735a14;
}

.gitesBookingDecisionPanel li span {
  color: inherit;
  font-weight: 450;
  overflow-wrap: anywhere;
}

.gitesBookingSnapshot {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

.gitesBookingSummaryCards,
.gitesBookingLowerGrid {
  display: grid;
  gap: 10px;
}

.gitesBookingSummaryCards {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gitesBookingLowerGrid {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
}

.gitesBookingSummaryCard,
.gitesBookingSummaryPanel,
.gitesBookingFocusPanel {
  min-width: 0;
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fff;
}

.gitesBookingSummaryCard {
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 9px;
  padding: 11px;
  background: #f8faf9;
}

.gitesBookingSummaryCard h6 {
  margin: 0;
  color: #1f2926;
  font-size: 16px;
  line-height: 1.25;
}

.gitesBookingSummaryPanel h6,
.gitesBookingFocusPanel h6 {
  margin: 0;
  font-size: 14px;
}

.gitesBookingReadableBlock {
  display: grid;
  gap: 7px;
  align-content: start;
}

.gitesBookingReadableBlock p {
  margin: 0;
}

.gitesBookingMainLine {
  color: #1f2926;
  font-size: 15px;
  font-weight: 760;
  line-height: 1.32;
}

.gitesBookingSubLine {
  color: #55645f;
  font-size: 13px;
  line-height: 1.35;
}

.gitesBookingSoftTags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.gitesBookingSoftTags span {
  display: inline-flex;
  min-height: 23px;
  align-items: center;
  padding: 0 7px;
  border: 1px solid #dce4e0;
  border-radius: 999px;
  background: #fff;
  color: #3e504a;
  font-size: 12px;
  font-weight: 650;
}

.gitesBookingReadableList {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gitesBookingReadableList li {
  display: grid;
  gap: 3px;
  padding: 8px;
  border: 1px solid #e0e7e4;
  border-radius: 7px;
  background: #fbfcfb;
}

.gitesBookingReadableList strong {
  color: #33443e;
  font-size: 12px;
}

.gitesBookingReadableList span {
  color: #4c5c57;
  font-size: 13px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.gitesBookingSummaryCard dl,
.gitesBookingSummaryPanel dl {
  display: grid;
  gap: 6px;
  margin: 0;
}

.gitesBookingSummaryCard dl div,
.gitesBookingSummaryPanel dl div {
  display: grid;
  grid-template-columns: minmax(82px, 0.62fr) minmax(0, 1fr);
  gap: 8px;
}

.gitesBookingSummaryCard dt,
.gitesBookingSummaryPanel dt {
  color: #63716c;
  font-size: 12px;
}

.gitesBookingSummaryCard dd,
.gitesBookingSummaryPanel dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  font-size: 13px;
  font-weight: 650;
}

.gitesBookingSummaryCard footer {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  padding-top: 2px;
}

.gitesBookingSummaryPanel {
  display: grid;
  gap: 10px;
  padding: 11px;
}

.gitesBookingRelatedPanel {
  display: grid;
  gap: 9px;
  padding: 0;
}

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

.gitesBookingRelatedSection {
  display: grid;
  gap: 8px;
  padding: 10px 11px;
  border: 1px solid #d8e0dd;
  border-left: 4px solid #8aa69a;
  border-radius: 8px;
  background: #fbfcfb;
}

.gitesBookingRelatedSection.is-collapsible {
  align-content: start;
}

.gitesBookingRelatedSection.tone-group {
  border-left-color: #c59d45;
}

.gitesBookingRelatedSection.tone-room {
  border-left-color: #7d9fb0;
}

.gitesBookingRelatedSection.tone-future {
  border-left-color: #679474;
}

.gitesBookingRelatedSection.tone-recent {
  border-left-color: #8f8866;
}

.gitesBookingRelatedSection.tone-history {
  border-left-color: #7c83b8;
}

.gitesBookingRelatedSection > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.gitesBookingRelatedSection > summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
  list-style: none;
}

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

.gitesBookingRelatedSection > summary::before {
  content: "›";
  flex: 0 0 auto;
  color: #7d9fb0;
  font-size: 18px;
  line-height: 0.8;
  transform-origin: center;
  transition: transform 120ms ease;
}

.gitesBookingRelatedSection[open] > summary::before {
  transform: rotate(90deg);
}

.gitesBookingRelatedSection h6 {
  margin: 0;
  font-size: 14px;
}

.gitesBookingRelatedSummaryTitle {
  flex: 1 1 auto;
  min-width: 0;
  color: #1f2926;
  font-size: 14px;
  font-weight: 750;
}

.gitesBookingRelatedSection > header span,
.gitesBookingRelatedSummaryCount {
  color: #63716c;
  font-size: 12px;
}

.gitesBookingRelatedSectionBody {
  display: grid;
  gap: 8px;
}

.gitesBookingRelatedSection > summary + .gitesBookingRelatedSectionBody {
  margin-top: 8px;
}

.gitesBookingRelatedSectionBody > p,
.gitesBookingGuestHistory {
  margin: 0;
  color: #465751;
  font-size: 13px;
  line-height: 1.35;
}

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

.gitesBookingRelatedList {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 7px;
}

.gitesBookingRelatedList article {
  display: grid;
  gap: 7px;
  min-width: 0;
  padding: 8px;
  border: 1px solid #e0e7e4;
  border-radius: 7px;
  background: #fff;
  cursor: pointer;
}

.gitesBookingRelatedList article:hover {
  border-color: #bfd0c9;
  background: #f7faf8;
}

.gitesBookingRelatedList strong,
.gitesBookingRelatedList span {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}

.gitesBookingRelatedList strong {
  color: #1f2926;
  font-size: 13px;
}

.gitesBookingRelatedList > article > div:first-child > span {
  margin-top: 2px;
  color: #63716c;
  font-size: 12px;
}

.gitesBookingRelationTags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.gitesBookingRelationTags span {
  display: inline-flex;
  min-height: 21px;
  align-items: center;
  padding: 0 7px;
  border-radius: 999px;
  background: #edf4f1;
  color: #2f4b42;
  font-size: 11px;
  font-weight: 750;
}

.gitesBookingRelationTags .relation-same-stay-party,
.gitesBookingRelationTags .relation-beds24-group {
  background: #fff2d2;
  color: #674a0f;
}

.gitesBookingRelationTags .relation-same-guest-recurrence {
  background: #edf0ff;
  color: #343c7a;
}

.gitesBookingSummaryPanel > header,
.gitesBookingFocusPanel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.gitesBookingSummaryCard .button,
.gitesBookingSummaryPanel .button,
.gitesBookingFocusPanel .button,
.gitesBookingInlineAction {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 0 9px;
  border: 1px solid #cad5d1;
  border-radius: 6px;
  background: #fff;
  color: #2c3d38;
  font-size: 12px;
  text-decoration: none;
}

.gitesBookingInlineAction {
  border-color: #b9cbc4;
  color: #1f5947;
  font-weight: 750;
}

.gitesBookingSummaryPanel .gitesBookingDecisionPanel {
  margin: 0 0 8px;
  padding: 0;
  border: 0;
  background: transparent;
}

.gitesBookingFocusPanel {
  display: grid;
  gap: 12px;
  margin-top: 12px;
  padding: 11px;
}

.gitesBookingFocusBody {
  min-width: 0;
}

.gitesBookingFocusedGrid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 12px;
}

.gitesBookingFocusedGrid > .wide {
  grid-column: 1 / -1;
}

.gitesBookingUsefulGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.gitesBookingUsefulGrid article,
.gitesBookingDisclosure {
  border: 1px solid #d8e0dd;
  border-radius: 8px;
  background: #fff;
}

.gitesBookingUsefulGrid article {
  padding: 11px;
  background: #f8faf9;
}

.gitesBookingUsefulGrid h6,
.gitesBookingDisclosure h6,
.gitesBookingOperations h6 {
  margin: 0 0 7px;
  font-size: 14px;
}

.gitesBookingUsefulGrid dl {
  display: grid;
  gap: 6px;
  margin: 0;
}

.gitesBookingUsefulGrid dl div {
  display: grid;
  grid-template-columns: minmax(78px, 0.7fr) minmax(0, 1fr);
  gap: 8px;
}

.gitesBookingUsefulGrid dt {
  color: #63716c;
  font-size: 12px;
}

.gitesBookingUsefulGrid dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  font-size: 13px;
  font-weight: 650;
}

.gitesBookingUsefulGrid a {
  color: #1f5947;
  font-weight: 750;
}

.gitesBookingUsefulGrid ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gitesBookingUsefulGrid li {
  padding: 5px 6px;
  border-radius: 6px;
  background: #edf4f1;
  color: #2f4b42;
  font-size: 12px;
}

.gitesBookingUsefulGrid li.level-high {
  background: #fff0ed;
  color: #8d3025;
}

.gitesBookingUsefulGrid li.level-warning {
  background: #fff8df;
  color: #735a14;
}

.gitesBookingDisclosure {
  margin-top: 9px;
}

.gitesBookingDisclosure > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 11px;
}

.gitesBookingDisclosure > header p {
  margin: 0;
  color: #63716c;
  font-size: 13px;
}

.gitesBookingDisclosure .button {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: 0 10px;
  border: 1px solid #cad5d1;
  border-radius: 6px;
  background: #fff;
  color: #2c3d38;
  font-size: 13px;
}

.gitesBookingDisclosureBody {
  padding: 0 11px 11px;
}

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

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

.gitesBookingTechnical section {
  min-width: 0;
}

.gitesBookingTechnical section.wide {
  grid-column: 1 / -1;
}

.gitesBookingTechnical dl {
  display: grid;
  gap: 6px;
  margin: 0;
}

.gitesBookingTechnical dl div {
  display: grid;
  grid-template-columns: minmax(92px, 0.42fr) minmax(0, 1fr);
  gap: 8px;
}

.gitesBookingTechnical dt {
  color: #63716c;
  font-size: 12px;
}

.gitesBookingTechnical dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  font-size: 13px;
  font-weight: 650;
}

.gitesBookingSimpleRows {
  display: grid;
  gap: 5px;
}

.gitesBookingSimpleRows p {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin: 0;
  padding: 7px;
  border-radius: 6px;
  background: #f8faf9;
  color: #53645f;
  font-size: 12px;
}

@media (max-width: 760px) {
  div.geonefDisplay.geonefDisplay-gites-ops {
    visibility: visible;
    left: 0;
    top: 112px;
  }

  .atelierTopbar {
    display: block;
  }

  .atelierTopbar {
    padding: 12px 16px;
  }

  .atelierTopbarMeta {
    margin-top: 6px;
    margin-left: 0;
  }

  .atelierUserMenu {
    margin-top: 10px;
  }

  .atelierUserMenuDropdown {
    left: 0;
    right: auto;
    width: min(260px, calc(100vw - 32px));
  }

  .gitesQuoteLayout {
    grid-template-columns: 1fr;
  }

  .gitesQuoteFields {
    grid-template-columns: 1fr;
  }

  .gitesHousekeepingToolbar {
    display: grid;
  }

  .gitesHousekeepingActions {
    justify-content: start;
  }

  .gitesBookingTitle,
  .gitesBookingSectionHead,
  .gitesBookingDialogHead,
  .gitesBookingDisclosure > header,
  .gitesBookingDetailHero,
  .gitesBookingPanelHead {
    display: grid;
  }

  .gitesBookingFilters {
    grid-template-columns: 1fr;
  }

  .gitesBookingFilterActions,
  .gitesBookingWindowActions,
  .gitesBookingDialogActions,
  .gitesBookingHeroActions {
    justify-content: start;
  }

  .gitesBookingLayout,
  .gitesBookingDetailGrid,
  .gitesBookingQueues,
  .gitesBookingSummaryCards,
  .gitesBookingLowerGrid,
  .gitesBookingFocusedGrid,
  .gitesBookingUsefulGrid,
  .gitesBookingTechnical,
  .gitesBookingOperations,
  .gitesUserAdminShell,
  .gitesUserAdminGrid {
    grid-template-columns: 1fr;
  }

  .gitesBookingModal {
    align-items: stretch;
    padding: 8px;
  }

  .gitesBookingDialog {
    max-height: calc(100vh - 16px);
    padding: 12px;
  }

  .gitesBookingCalendar,
  .gitesBookingQueue {
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .gitesBookingCalendarTimeline {
    grid-template-columns: 56px minmax(940px, 1fr) 56px;
    gap: 5px;
  }

  .gitesBookingCalendarRangeActions .button {
    min-height: 24px;
    padding-right: 3px;
    padding-left: 3px;
    font-size: 10px;
  }

  .gitesBookingCalendarHead,
  .gitesBookingPropertyHeader,
  .gitesBookingCalendarRow {
    grid-template-columns: 152px minmax(1062px, 1fr);
  }

  .gitesBookingPropertyTitle {
    gap: 6px;
    padding: 6px 7px;
  }

  .gitesBookingPropertyTitle .button {
    width: 24px;
    height: 24px;
    flex-basis: 24px;
    font-size: 13px;
  }

  .gitesBookingSimpleRows p {
    grid-template-columns: 1fr;
  }

  .gitesBookingTableWrap {
    max-height: none;
  }

  .gitesHousekeepingDays {
    grid-template-columns: 1fr;
    overflow-x: visible;
  }

  .gitesHousekeepingWeekHeader {
    display: grid;
  }

  .atelierGuestScreen {
    max-width: none;
    padding: 0 0 32px;
  }

  .gitesGuestGrid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .gitesGuestHero,
  .gitesGuestNow,
  .gitesGuestPanel {
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .gitesGuestHero {
    grid-template-columns: 1fr;
    border-top: 0;
  }

  .gitesGuestTotal {
    text-align: right;
  }

  .gitesGuestNow {
    grid-template-columns: 1fr;
    margin: 8px 0;
    border-top: 1px solid #d8e0dd;
    border-bottom: 1px solid #d8e0dd;
  }

  .gitesGuestPanel {
    border-top: 1px solid #d8e0dd;
    border-bottom: 1px solid #d8e0dd;
  }

  .gitesGuestDetailsPanel,
  .gitesGuestInformationPanel {
    grid-column: auto;
  }
}
