/* Consumption dashboard styles owned by the isolated laboratory route. */
/* Local control system. These rules replace the removed generated component
 * CSS and deliberately use the connected-area tokens only. */
body.deesco-connected-lab .p-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 2.8rem;
  padding: .7rem 1.05rem;
  border: 1px solid #111;
  border-radius: .75rem;
  background: #111;
  color: #fff;
  font: inherit;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

body.deesco-connected-lab .p-button .p-button-label { color: inherit; font-weight: inherit; }
/* The budget explanation mark is a typographic information cue, not a UI
   pictogram: preserve its serif italic treatment inside the metric heading. */
body.deesco-connected-lab .exact-conso-metric-panel h3 .exact-context-info > button { font-family:Georgia,"Times New Roman",serif !important; font-style:italic !important; font-weight:700 !important; }
body.deesco-connected-lab .p-button:hover:not(:disabled) { background: #2b2b2b; border-color: #2b2b2b; transform: translateY(-1px); }
body.deesco-connected-lab .p-button:disabled,
body.deesco-connected-lab .p-button.p-disabled { opacity: .55; cursor: not-allowed; }
body.deesco-connected-lab .p-button-icon-only {
  width: 2.65rem;
  min-width: 2.65rem;
  height: 2.65rem;
  min-height: 2.65rem;
  padding: 0;
}
body.deesco-connected-lab .p-button-icon-only svg { display: block; width: 1.25rem; height: 1.25rem; }

body.deesco-connected-lab .p-button-secondary {
  border-color: #111;
  background: var(--p-surface-0, #fff);
  color: #111;
}

body.deesco-connected-lab .p-button-secondary:hover:not(:disabled) { background: #f6f6f6; color: #111; transform: none; }
body.deesco-connected-lab .p-button-outlined { border-color: #111; background: #fff; color: #111; }
body.deesco-connected-lab .p-button-outlined:hover:not(:disabled) { background: #f6f6f6; color: #111; transform: none; }
body.deesco-connected-lab .p-button-text { border-color: transparent; background: transparent; color: #111; }
body.deesco-connected-lab .p-button-text:hover:not(:disabled) { background: #f6f6f6; color: #111; }

body.deesco-connected-lab .btn-success {
  border-color: #111;
  background: #111;
  color: #fff;
}

body.deesco-connected-lab .btn-success:hover,
body.deesco-connected-lab .btn-success:focus-visible {
  border-color: #2b2b2b;
  background: #2b2b2b;
  color: #fff;
}

body.deesco-connected-lab .btn-outline-success {
  border-color: #111;
  background: #fff;
  color: #111;
}

body.deesco-connected-lab .btn-outline-success:hover,
body.deesco-connected-lab .btn-outline-success:focus-visible {
  border-color: #111;
  background: #f6f6f6;
  color: #111;
}

body.deesco-connected-lab .deesco-consumption__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  margin: 0;
}

body.deesco-connected-lab .deesco-consumption__header h2 {
  margin: 0;
  color: var(--p-slate-800, #1e293b);
  font-family: inherit;
  font-size: clamp(1.5rem, 2vw, 1.875rem);
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.15;
}

/* Energy selector cards: the pictogram leads the card from the left. */
body.deesco-connected-lab .deesco-connected-lab__conso .exact-conso-followup-card__layout {
  display: flex;
  align-items: center;
  height: 100%;
  gap: .75rem;
}

body.deesco-connected-lab .deesco-connected-lab__conso .exact-conso-followup-card__icon {
  display: flex;
  flex: 0 0 42px;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
}

body.deesco-connected-lab .deesco-connected-lab__conso .exact-conso-followup-card__copy {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: .25rem;
  min-width: 0;
  text-align: left;
}

/* Standalone selector component: no PrimeVue or utility-class dependency. */
body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card {
  display: flex;
  flex: 0 0 10rem;
  align-items: center;
  width: 100%;
  min-height: 8.75rem;
  padding: 1rem;
  color: var(--p-text-color, #172033);
  text-align: left;
  cursor: pointer;
  background: var(--p-surface-50, #f8fafc);
  border: 1px solid var(--p-neutral-200, #e2e8f0);
  border-radius: 1.2rem;
  position: relative;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

@media (min-width:1024px) {
  body.deesco-connected-lab .deesco-connected-lab__conso aside.lg\\:flex-shrink-0 {
    width: 12rem;
  }

  body.deesco-connected-lab .deesco-connected-lab__conso aside.lg\\:flex-shrink-0 .lg\\:w-auto,
  body.deesco-connected-lab .deesco-connected-lab__conso aside.lg\\:flex-shrink-0 .lg\\:flex-col {
    width: 100%;
  }
}

body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card:hover {
  border-color: color-mix(in srgb, var(--deesco-conso-selector-accent, var(--p-primary-500)) 52%, white);
  box-shadow: 0 10px 22px rgba(71, 85, 105, .09);
  transform: translateY(-1px);
}

body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card--selected {
  background: var(--p-surface-0, #fff);
  border: 2px solid #111;
}

body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card__icon,
body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card__visual {
  display: flex;
  flex: 0 0 42px;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: var(--p-border-radius-md, .5rem);
}

body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card__icon {
  position: absolute;
  left: 1rem;
}

body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card__icon {
  background: color-mix(in srgb, var(--deesco-conso-selector-accent, var(--p-primary-500)) 14%, white);
}

body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card__icon--all { background: var(--p-primary-500); }
body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card__copy {
  width: 100%;
  min-width: 0;
  padding-left: 3.15rem;
  text-align: center;
}
body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card__title,
body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card__source { display:block; }
body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card__title { font-size:1rem; font-weight:600; line-height:1.25; }
body.deesco-connected-lab .deesco-connected-lab__conso .deesco-conso-selector-card__source { margin-top:.25rem; color:var(--p-slate-400, #94a3b8); font-size:.875rem; line-height:1.25; }

/*
 * Local layout primitives for the consumption application.  The runtime still
 * produces a few compact utility class names; defining them here keeps that
 * generated interface independent from the former Nuxt utility bundle.
 */
body.deesco-connected-lab .deesco-connected-lab__conso .flex { display:flex; }
body.deesco-connected-lab .deesco-connected-lab__conso .grid { display:grid; }
body.deesco-connected-lab .deesco-connected-lab__conso .flex-col { flex-direction:column; }
body.deesco-connected-lab .deesco-connected-lab__conso .flex-row { flex-direction:row; }
body.deesco-connected-lab .deesco-connected-lab__conso .flex-wrap { flex-wrap:wrap; }
body.deesco-connected-lab .deesco-connected-lab__conso .flex-1 { flex:1 1 0%; }
body.deesco-connected-lab .deesco-connected-lab__conso .flex-none { flex:none; }
body.deesco-connected-lab .deesco-connected-lab__conso .flex-shrink-0 { flex-shrink:0; }
body.deesco-connected-lab .deesco-connected-lab__conso .min-w-0 { min-width:0; }
body.deesco-connected-lab .deesco-connected-lab__conso .min-h-0 { min-height:0; }
body.deesco-connected-lab .deesco-connected-lab__conso .w-full { width:100%; }
body.deesco-connected-lab .deesco-connected-lab__conso .w-max { width:max-content; }
body.deesco-connected-lab .deesco-connected-lab__conso .h-full { height:100%; }
body.deesco-connected-lab .deesco-connected-lab__conso .h-\[140px\] { height:140px; }
body.deesco-connected-lab .deesco-connected-lab__conso .h-\[42px\] { height:42px; }
body.deesco-connected-lab .deesco-connected-lab__conso .items-start { align-items:flex-start; }
body.deesco-connected-lab .deesco-connected-lab__conso .items-center { align-items:center; }
body.deesco-connected-lab .deesco-connected-lab__conso .items-end { align-items:flex-end; }
body.deesco-connected-lab .deesco-connected-lab__conso .items-stretch { align-items:stretch; }
body.deesco-connected-lab .deesco-connected-lab__conso .justify-start { justify-content:flex-start; }
body.deesco-connected-lab .deesco-connected-lab__conso .justify-center { justify-content:center; }
body.deesco-connected-lab .deesco-connected-lab__conso .justify-end { justify-content:flex-end; }
body.deesco-connected-lab .deesco-connected-lab__conso .justify-between { justify-content:space-between; }
body.deesco-connected-lab .deesco-connected-lab__conso .self-start { align-self:flex-start; }
body.deesco-connected-lab .deesco-connected-lab__conso .self-end { align-self:flex-end; }
body.deesco-connected-lab .deesco-connected-lab__conso .text-left { text-align:left; }
body.deesco-connected-lab .deesco-connected-lab__conso .text-center { text-align:center; }
body.deesco-connected-lab .deesco-connected-lab__conso .font-normal { font-weight:400; }
body.deesco-connected-lab .deesco-connected-lab__conso .font-medium { font-weight:500; }
body.deesco-connected-lab .deesco-connected-lab__conso .font-semibold { font-weight:600; }
body.deesco-connected-lab .deesco-connected-lab__conso .font-bold { font-weight:700; }
body.deesco-connected-lab .deesco-connected-lab__conso .font-extrabold { font-weight:800; }
body.deesco-connected-lab .deesco-connected-lab__conso .text-xs { font-size:.75rem; line-height:1rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .text-sm { font-size:.875rem; line-height:1.25rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .text-base { font-size:1rem; line-height:1.5rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .text-lg { font-size:1.125rem; line-height:1.75rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .text-xl { font-size:1.25rem; line-height:1.75rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .text-2xl { font-size:1.5rem; line-height:2rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .m-0 { margin:0; }
body.deesco-connected-lab .deesco-connected-lab__conso .mt-1 { margin-top:.25rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .mt-2 { margin-top:.5rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .mb-0 { margin-bottom:0; }
body.deesco-connected-lab .deesco-connected-lab__conso .mb-2 { margin-bottom:.5rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .mb-4 { margin-bottom:1rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .p-0 { padding:0; }
body.deesco-connected-lab .deesco-connected-lab__conso .p-2 { padding:.5rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .p-3 { padding:.75rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .p-4 { padding:1rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .px-2 { padding-inline:.5rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .px-3 { padding-inline:.75rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .px-4 { padding-inline:1rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .py-1 { padding-block:.25rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .py-2 { padding-block:.5rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .py-3 { padding-block:.75rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .pb-2 { padding-bottom:.5rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .pb-6 { padding-bottom:1.5rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .gap-0 { gap:0; }
body.deesco-connected-lab .deesco-connected-lab__conso .gap-1 { gap:.25rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .gap-2 { gap:.5rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .gap-3 { gap:.75rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .gap-4 { gap:1rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .gap-5 { gap:1.25rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .gap-6 { gap:1.5rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .gap-8 { gap:2rem; }
body.deesco-connected-lab .deesco-connected-lab__conso .overflow-hidden { overflow:hidden; }
body.deesco-connected-lab .deesco-connected-lab__conso .overflow-x-auto { overflow-x:auto; }
body.deesco-connected-lab .deesco-connected-lab__conso .overflow-y-auto { overflow-y:auto; }
body.deesco-connected-lab .deesco-connected-lab__conso .overflow-y-hidden { overflow-y:hidden; }
body.deesco-connected-lab .deesco-connected-lab__conso .hidden { display:none; }

@media (min-width:768px) {
  body.deesco-connected-lab .deesco-connected-lab__conso .md\:flex-row { flex-direction:row; }
  body.deesco-connected-lab .deesco-connected-lab__conso .md\:items-center { align-items:center; }
  body.deesco-connected-lab .deesco-connected-lab__conso .md\:justify-between { justify-content:space-between; }
  body.deesco-connected-lab .deesco-connected-lab__conso .md\:text-left { text-align:left; }
  body.deesco-connected-lab .deesco-connected-lab__conso .md\:grid-cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (min-width:1024px) {
  body.deesco-connected-lab .deesco-connected-lab__conso .lg\:flex-row { flex-direction:row; }
  body.deesco-connected-lab .deesco-connected-lab__conso .lg\:flex-col { flex-direction:column; }
  body.deesco-connected-lab .deesco-connected-lab__conso .lg\:flex-1 { flex:1 1 0%; }
  body.deesco-connected-lab .deesco-connected-lab__conso .lg\:flex-shrink-0 { flex-shrink:0; }
  body.deesco-connected-lab .deesco-connected-lab__conso .lg\:items-start { align-items:flex-start; }
  body.deesco-connected-lab .deesco-connected-lab__conso .lg\:items-stretch { align-items:stretch; }
  body.deesco-connected-lab .deesco-connected-lab__conso .lg\:gap-8 { gap:2rem; }
  body.deesco-connected-lab .deesco-connected-lab__conso .lg\:w-auto { width:auto; }
  body.deesco-connected-lab .deesco-connected-lab__conso .lg\:h-auto { height:auto; }
  body.deesco-connected-lab .deesco-connected-lab__conso .lg\:overflow-visible { overflow:visible; }
  body.deesco-connected-lab .deesco-connected-lab__conso .lg\:pb-0 { padding-bottom:0; }
}

/* Consumption dialogs are mounted directly under body, outside the page
 * section above. Give them their own local layout instead of relying on
 * utility classes from the exported application. */
body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] {
  padding: 1rem;
  overflow: auto;
  background: rgba(15, 23, 42, .46);
}

body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] > .p-dialog {
  width: min(100%, 34rem);
  max-height: calc(100dvh - 2rem);
  overflow: auto;
  border: 1px solid color-mix(in srgb, var(--p-surface-200, #e5e7eb) 72%, white);
  border-radius: 1rem;
  background: var(--p-surface-0, #fff);
  box-shadow: 0 20px 48px rgba(15, 23, 42, .2);
}

body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog-header,
body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog-footer,
body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog-content {
  padding: 1.25rem;
}

body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog-header {
  border-bottom: 1px solid var(--p-surface-200, #e5e7eb);
}

body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog-footer {
  display: flex;
  gap: 1rem;
  border-top: 1px solid var(--p-surface-200, #e5e7eb);
  background: var(--p-surface-50, #f8fafc);
}

body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog-header > div,
body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog-content > div,
body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] [data-exact-conso-add-options],
body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] [data-exact-conso-meter-options],
body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] [data-exact-conso-order-options] {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog-header > div {
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
}

body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog h3,
body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog p {
  margin: 0;
}

body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog h3 {
  color: var(--p-slate-800, #1e293b);
  font-size: 1.125rem;
  line-height: 1.25;
}

body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog .p-card {
  border: 1px solid var(--p-surface-200, #e5e7eb);
  border-radius: .8rem;
  cursor: pointer;
}

body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog .p-card-body { padding: 1rem; }
body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog .p-card-content > .flex,
body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog .p-card-content > div { display:flex; align-items:center; justify-content:space-between; gap:.75rem; }

body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog .p-button { flex: 1 1 0; }

@media (max-width: 640px) {
  body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] { align-items: flex-end !important; padding: .75rem; }
  body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] > .p-dialog { width: 100%; max-height: calc(100dvh - 1.5rem); }
  body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog-header,
  body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog-footer,
  body.deesco-connected-lab > .p-dialog-mask[data-p="modal"] .p-dialog-content { padding: 1rem; }
}

/* Right-hand subscription drawer. Its controls are mounted outside the
 * consumption section, so its layout must not rely on page-scoped helpers. */
body.deesco-connected-lab [data-exact-conso-subscription-mask="true"] {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  background: rgba(15, 23, 42, .46) !important;
}

body.deesco-connected-lab [data-exact-conso-subscription-mask="true"] .exact-conso-subscription-drawer {
  display: flex !important;
  width: min(100vw, 34rem) !important;
  height: 100dvh !important;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  border-left: 1px solid var(--p-surface-200, #e5e7eb);
  background: var(--p-surface-50, #f8fafc) !important;
  box-shadow: -16px 0 32px rgba(15, 23, 42, .12);
}

body.deesco-connected-lab .exact-conso-subscription-header {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--p-surface-200, #e5e7eb);
  background: var(--p-surface-0, #fff) !important;
}

body.deesco-connected-lab .exact-conso-subscription-header h3 { margin: 0; color: var(--p-slate-800, #1e293b); font-size: 1.35rem; line-height: 1.2; }

body.deesco-connected-lab [data-exact-conso-subscription-mask="true"] .exact-conso-subscription-drawer > div:nth-of-type(1) {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 1.5rem;
}

body.deesco-connected-lab .exact-conso-subscription-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 0;
  border: 0;
  border-radius: 0 !important;
  background: transparent;
  box-shadow: none !important;
}

body.deesco-connected-lab .exact-conso-subscription-form > .flex { display:flex; flex-direction:column; gap:1rem; }
body.deesco-connected-lab .exact-conso-subscription-form .grid { display:grid; gap:1rem; }
body.deesco-connected-lab .exact-conso-subscription-form label.flex { display:flex; align-items:flex-start; gap:.75rem; }
body.deesco-connected-lab .exact-conso-subscription-form .rounded-2xl { padding:1rem; border-radius:0; }
body.deesco-connected-lab .exact-conso-subscription-form .m-0 { margin:0; }
body.deesco-connected-lab .exact-conso-subscription-form .mt-2 { margin-top:.5rem; }

body.deesco-connected-lab .deesco-conso-drawer-footer {
  display: flex;
  flex: 0 0 auto;
  gap: .75rem;
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--p-surface-200, #e5e7eb);
  background: var(--p-surface-0, #fff);
}

body.deesco-connected-lab .deesco-conso-drawer-footer .btn { flex:1 1 0; min-height:2.8rem; }

body.deesco-connected-lab .deesco-conso-drawer-footer .btn-success {
  border-color: #111 !important;
  background: #111 !important;
  color: #fff !important;
}

body.deesco-connected-lab .deesco-conso-drawer-footer .btn-success:hover,
body.deesco-connected-lab .deesco-conso-drawer-footer .btn-success:focus-visible {
  border-color: #2b2b2b !important;
  background: #2b2b2b !important;
  color: #fff !important;
}

body.deesco-connected-lab .deesco-conso-drawer-footer .btn-outline-secondary {
  border-color: #111 !important;
  background: #fff !important;
  color: #111 !important;
}

body.deesco-connected-lab .deesco-conso-drawer-footer .btn-outline-secondary:hover,
body.deesco-connected-lab .deesco-conso-drawer-footer .btn-outline-secondary:focus-visible {
  border-color: #111 !important;
  background: var(--p-surface-100, #f4f5f4) !important;
  color: #111 !important;
}

/* One close affordance for every right-hand panel: dark, visible and keyboard-safe. */
body.deesco-connected-lab .deesco-conso-drawer-close {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  padding: 0;
  border: 1px solid #1e2d25 !important;
  border-radius: .5rem;
  background: #fff !important;
  color: #1e2d25 !important;
  font: inherit;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
}
body.deesco-connected-lab .deesco-conso-drawer-close > span { display:block !important; color:#1e2d25 !important; line-height:1; opacity:1 !important; visibility:visible !important; }
body.deesco-connected-lab .deesco-conso-drawer-close:hover { background:#e8f4eb !important; }
body.deesco-connected-lab .deesco-conso-drawer-close:focus-visible { outline:2px solid var(--p-primary-500, #2e9f59); outline-offset:2px; }

@media (min-width: 768px) {
  body.deesco-connected-lab .exact-conso-subscription-form .md\:grid-cols-2 { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  body.deesco-connected-lab [data-exact-conso-subscription-mask="true"] .exact-conso-subscription-drawer { width:100vw !important; }
  body.deesco-connected-lab .exact-conso-subscription-header,
  body.deesco-connected-lab [data-exact-conso-subscription-mask="true"] .exact-conso-subscription-drawer > div:nth-of-type(1),
  body.deesco-connected-lab .deesco-conso-drawer-footer { padding-inline:1rem; }
}

/* The reading panels are also mounted at document level.  Keep the complete
 * off-canvas layout here, including their generated content, so every energy
 * panel (electricity, gas, water and fuel) has the same presentation. */
body.deesco-connected-lab [data-exact-conso-reading-mask="true"] {
  display: flex !important;
  align-items: stretch !important;
  justify-content: flex-end !important;
  background: rgba(15, 23, 42, .46) !important;
}

body.deesco-connected-lab [data-exact-conso-reading-mask="true"][hidden],
body.deesco-connected-lab [data-exact-conso-subscription-mask="true"][hidden] {
  display: none !important;
}

body.deesco-connected-lab [data-exact-conso-reading-mask="true"] > .p-drawer {
  display: flex !important;
  width: min(100vw, 34rem) !important;
  height: 100dvh !important;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  border-left: 1px solid var(--p-surface-200, #e5e7eb) !important;
  background: var(--p-surface-50, #f8fafc) !important;
  box-shadow: -16px 0 32px rgba(15, 23, 42, .12) !important;
}

body.deesco-connected-lab [data-exact-conso-reading-mask="true"] .p-drawer-header {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--p-surface-200, #e5e7eb) !important;
  background: var(--p-surface-0, #fff) !important;
}

body.deesco-connected-lab [data-exact-conso-reading-mask="true"] .p-drawer-header > .flex {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

body.deesco-connected-lab [data-exact-conso-reading-mask="true"] [data-exact-conso-reading-header] {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .75rem;
}

body.deesco-connected-lab [data-exact-conso-reading-mask="true"] .p-drawer-header h3 {
  margin: 0;
  color: var(--p-slate-800, #1e293b);
  font-size: 1.2rem;
  line-height: 1.25;
}

/* Fuel-vehicle editor: it is created directly under body, so it needs its
 * own Bootstrap-compatible drawer layout instead of page-scoped utilities. */
body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  background: rgba(15, 23, 42, .46) !important;
}

body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] > .p-drawer {
  display: flex !important;
  width: min(100vw, 34rem) !important;
  height: 100% !important;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  border-left: 1px solid var(--p-surface-200, #e5e7eb);
  background: var(--p-surface-50, #f8fafc) !important;
  box-shadow: -16px 0 32px rgba(15, 23, 42, .12);
}

body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] .exact-conso-dialog__header {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--p-surface-200, #e5e7eb);
}

body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] .exact-conso-dialog__header h3 { margin: 0; font-size: 1.25rem; color: var(--p-slate-800, #1e293b); }
body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] [data-fuel-vehicle-form] {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
  gap: 1rem;
  overflow-y: auto !important;
  padding: 1.5rem;
}

body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] [data-fuel-vehicle-form] label { display:flex; flex-direction:column; gap:.4rem; font-weight:600; color:var(--p-slate-700, #334155); }
body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] [data-fuel-vehicle-form] .form-control { min-height:2.75rem; }
body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] [data-ademe-results] { display:flex; flex-direction:column; gap:.25rem; }
body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] [data-ademe-choice] { width:100%; padding:.75rem 0; border:0; border-bottom:1px solid var(--p-surface-200, #e5e7eb); background:transparent; color:var(--p-text-color, #1e2d25); text-align:left; cursor:pointer; }
body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] [data-ademe-choice]:hover { color:var(--p-primary-700, #176d3d); }

body.deesco-connected-lab .deesco-conso-vehicle-menu-toggle { min-width:2.5rem; min-height:2.5rem; padding:0; }
body.deesco-connected-lab .deesco-conso-vehicle-menu { position:absolute; z-index:10; top:calc(100% + .25rem); right:0; display:grid; min-width:9rem; gap:.35rem; padding:.5rem; border:1px solid var(--p-surface-200, #e5e7eb); border-radius:.5rem; background:#fff; box-shadow:0 .5rem 1rem rgba(15,23,42,.12); }

@media (max-width: 640px) {
  body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] > .p-drawer { width:100vw !important; }
  body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] .exact-conso-dialog__header,
  body.deesco-connected-lab [data-exact-conso-fuel-vehicle-modal="true"] [data-fuel-vehicle-form] { padding-inline:1rem; }
}

body.deesco-connected-lab [data-exact-conso-reading-mask="true"] .p-drawer-content {
  display: block;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto !important;
  padding: 1.25rem 1.5rem 1.5rem;
  background: var(--p-surface-50, #f8fafc) !important;
}

body.deesco-connected-lab [data-exact-conso-reading-content="true"],
body.deesco-connected-lab [data-exact-conso-reading-content="true"] > div,
body.deesco-connected-lab [data-exact-conso-reading-content="true"] form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

body.deesco-connected-lab [data-exact-conso-reading-content="true"] .flex { display: flex; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .flex-col { flex-direction: column; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .flex-wrap { flex-wrap: wrap; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .items-center { align-items: center; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .items-start { align-items: flex-start; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .justify-between { justify-content: space-between; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .self-start { align-self: flex-start; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .gap-1 { gap: .25rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .gap-2 { gap: .5rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .gap-3 { gap: .75rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .gap-4 { gap: 1rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .gap-x-4 { column-gap: 1rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .gap-y-1 { row-gap: .25rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .m-0 { margin: 0; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .mt-1 { margin-top: .25rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .mt-4 { margin-top: 1rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .pt-4 { padding-top: 1rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .p-5 { padding: 1.25rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .border-t { border-top: 1px solid var(--p-surface-200, #e5e7eb); }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .text-xs { font-size: .75rem; line-height: 1rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .text-sm { font-size: .875rem; line-height: 1.35rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .text-lg { font-size: 1.125rem; line-height: 1.5rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .font-semibold { font-weight: 600; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .font-bold { font-weight: 700; }

body.deesco-connected-lab [data-exact-conso-reading-content="true"] .p-card {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.deesco-connected-lab [data-exact-conso-reading-content="true"] .p-card + .p-card { border-top: 1px solid var(--p-surface-200, #e5e7eb) !important; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .p-card-body { padding: 1.25rem 0 !important; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .p-card-content { padding: 0 !important; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] label { display: flex; flex-direction: column; gap: .4rem; font-weight: 600; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] input,
body.deesco-connected-lab [data-exact-conso-reading-content="true"] select { width: 100%; min-height: 2.75rem; padding: .6rem .75rem; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .form-control { max-width: 100%; box-sizing: border-box; }
body.deesco-connected-lab [data-exact-conso-reading-content="true"] .p-button { min-height: 2.7rem; }

body.deesco-connected-lab .exact-conso-renovation-actions { margin-top:1.25rem; padding-top:1.1rem; border-top:1px solid var(--p-surface-200,#e5e7eb); }
body.deesco-connected-lab .exact-conso-renovation-actions>header { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
body.deesco-connected-lab .exact-conso-renovation-actions>header p { margin:0 0 .18rem; color:var(--p-primary-600,#247d47); font-size:.68rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
body.deesco-connected-lab .exact-conso-renovation-actions h4 { margin:0; color:var(--p-text-color,#1e2d25); font-size:1rem; }
body.deesco-connected-lab .exact-conso-renovation-actions>header>span { max-width:18rem; color:var(--p-text-muted-color,#64748b); font-size:.72rem; line-height:1.3; text-align:right; }
body.deesco-connected-lab .exact-conso-renovation-actions__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(16rem,1fr)); gap:.7rem; }
body.deesco-connected-lab .exact-conso-renovation-actions article { padding:.8rem; border:1px solid rgba(46,159,89,.18); border-radius:.7rem; background:linear-gradient(135deg,rgba(46,159,89,.06),#fff); }
body.deesco-connected-lab .exact-conso-renovation-actions article header { display:flex; align-items:flex-start; gap:.5rem; }
body.deesco-connected-lab .exact-conso-renovation-actions article header>span { width:.48rem; height:.48rem; flex:0 0 auto; margin-top:.28rem; border-radius:50%; }
body.deesco-connected-lab .exact-conso-renovation-actions h5 { margin:0; color:var(--p-text-color,#1e2d25); font-size:.86rem; }
body.deesco-connected-lab .exact-conso-renovation-actions article p { margin:.18rem 0 0; color:var(--p-text-muted-color,#64748b); font-size:.72rem; line-height:1.38; }
body.deesco-connected-lab .exact-conso-renovation-actions__buttons { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.65rem; }
body.deesco-connected-lab .exact-conso-renovation-actions__buttons button,body.deesco-connected-lab .exact-conso-renovation-actions__buttons a { display:inline-flex; align-items:center; gap:.28rem; min-height:2rem; padding:.35rem .55rem; border:1px solid #111; border-radius:.48rem; background:#fff; color:#111; font:inherit; font-size:.7rem; font-weight:750; line-height:1.25; text-align:left; text-decoration:none; cursor:pointer; transition:background-color .16s ease,border-color .16s ease,transform .16s ease; }
body.deesco-connected-lab .exact-conso-renovation-actions__buttons button:hover,body.deesco-connected-lab .exact-conso-renovation-actions__buttons button:focus-visible,body.deesco-connected-lab .exact-conso-renovation-actions__buttons a:hover,body.deesco-connected-lab .exact-conso-renovation-actions__buttons a:focus-visible { border-color:#111; background:#f6f6f6; color:#111; outline:0; transform:translateY(-1px); }
body.deesco-connected-lab .exact-conso-renovation-actions__buttons a.is-ecogeste { border-style:dashed; color:var(--p-text-color,#1e2d25); }
body.deesco-connected-lab .exact-conso-renovation-actions.is-loading { margin-top:1.25rem; padding:.8rem; border:1px dashed var(--p-surface-300,#cbd5e1); border-radius:.7rem; color:var(--p-text-muted-color,#64748b); font-size:.8rem; }
body.deesco-connected-lab .exact-conso-renovation-actions.is-loading p { margin:0; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid .exact-conso-metric-panel { min-height:12rem; height:auto !important; }
/* Key consumption metrics: a shared, more editorial card treatment. */
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta) { position:relative; isolation:isolate; overflow:hidden; padding:1.2rem !important; border:1px solid rgba(46,159,89,.18) !important; border-radius:1.1rem !important; background:linear-gradient(145deg,#fff 0%,#f2faf4 100%) !important; box-shadow:0 .8rem 1.8rem rgba(25,62,40,.09) !important; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta)::before { position:absolute; z-index:-1; top:-3.8rem; right:-3rem; width:9.25rem; height:9.25rem; border:1.35rem solid rgba(46,159,89,.10); border-radius:50%; content:""; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:first-child:not(.exact-conso-consumption-cta) { background:#fff !important; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:nth-child(2):not(.exact-conso-consumption-cta) { border-color:rgba(206,157,42,.23) !important; background:#fff !important; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:nth-child(2):not(.exact-conso-consumption-cta)::before { display:none; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta) h3 { display:flex; align-items:center; gap:.25rem; margin:0; color:var(--p-slate-700,#334155) !important; font-size:.78rem !important; font-weight:800 !important; letter-spacing:.08em; line-height:1.2; text-transform:uppercase; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta) h3::before { display:inline-block; width:.48rem; height:.48rem; flex:0 0 auto; border-radius:50%; background:var(--p-primary-500,#2e9f59); box-shadow:0 0 0 .28rem rgba(46,159,89,.11); content:""; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:nth-child(2):not(.exact-conso-consumption-cta) h3::before { background:#ce9d2a; box-shadow:0 0 0 .28rem rgba(206,157,42,.12); }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta) h3 + p { max-width:14rem; margin-top:.5rem !important; font-size:.76rem !important; line-height:1.42; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr)); }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta) > .flex { min-width:0; width:100%; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta) > .flex > div:first-child { min-width:0; max-width:100%; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta) .exact-conso-metric-value { min-width:max-content; max-width:100%; color:var(--p-slate-800,#1e293b); font-size:clamp(1.25rem,2vw,1.85rem) !important; font-weight:800 !important; letter-spacing:-.035em; line-height:1.15; overflow:visible; overflow-wrap:normal; text-overflow:clip; white-space:nowrap; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta) .exact-conso-metric-value--unavailable { color:var(--p-text-muted-color,#64748b); font-size:1.1rem !important; font-weight:650 !important; letter-spacing:normal; line-height:1.3; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta) .exact-conso-metric-unit { margin-bottom:.12rem; color:var(--p-text-muted-color,#64748b) !important; font-size:.8rem !important; font-weight:700 !important; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta) > .flex > div:last-child { display:flex; min-width:0; width:100%; flex-wrap:wrap !important; align-items:baseline !important; row-gap:.2rem; white-space:normal; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta) .exact-conso-metric-unit { flex:0 0 auto; white-space:nowrap; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid > .exact-conso-metric-panel:not(.exact-conso-consumption-cta):hover { transform:translateY(-2px); box-shadow:0 1.05rem 2.25rem rgba(25,62,40,.13) !important; transition:transform .18s ease,box-shadow .18s ease; }
body.deesco-connected-lab .exact-conso-overview .exact-conso-metrics-grid .exact-conso-consumption-cta { display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:1rem; margin:0; padding:1rem; border:1px solid var(--p-surface-200,#e5e7eb) !important; border-radius:.75rem !important; background:#fff !important; box-shadow:0 8px 18px rgba(15,23,42,.06) !important; }
body.deesco-connected-lab .exact-conso-consumption-cta strong { display:block; color:#111; font-size:.84rem; }
body.deesco-connected-lab .exact-conso-consumption-cta>div:first-child>span { display:block; margin-top:.28rem; color:var(--p-text-muted-color,#64748b); font-size:.84rem; line-height:1.42; }
body.deesco-connected-lab .exact-conso-consumption-cta>div:last-child { display:flex; width:100%; flex-direction:column; gap:.4rem; }
body.deesco-connected-lab .exact-conso-consumption-cta button,body.deesco-connected-lab .exact-conso-consumption-cta a { display:inline-flex; width:100%; align-items:center; justify-content:center; gap:.3rem; min-height:2rem; padding:.38rem .58rem; border:1px solid #111; border-radius:.48rem; background:#111; color:#fff; font:inherit; font-size:.72rem; font-weight:750; line-height:1.25; text-align:center; text-decoration:none; cursor:pointer; }
body.deesco-connected-lab .exact-conso-consumption-cta button:hover,body.deesco-connected-lab .exact-conso-consumption-cta button:focus-visible,body.deesco-connected-lab .exact-conso-consumption-cta a:hover,body.deesco-connected-lab .exact-conso-consumption-cta a:focus-visible { background:#111; border-color:#111; color:#fff; outline:0; }

/* On energy detail pages, present the six tracking indicators as one desktop
   board with two columns and three rows. */
@media (min-width: 1024px) {
  body.deesco-connected-lab .exact-conso-overview .exact-conso-energy-tracking-card > .p-card-body > .p-card-content {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }
  body.deesco-connected-lab .exact-conso-overview .exact-conso-energy-tracking-card .exact-conso-metrics-grid,
  body.deesco-connected-lab .exact-conso-overview .exact-conso-energy-tracking-card .exact-conso-stat-cards {
    display: contents;
  }
  body.deesco-connected-lab .exact-conso-overview .exact-conso-energy-tracking-card .exact-conso-metric-panel {
    min-width: 0;
    min-height: 12rem;
  }
}

@media (max-width: 640px) {
  body.deesco-connected-lab [data-exact-conso-reading-mask="true"] > .p-drawer { width: 100vw !important; }
  body.deesco-connected-lab [data-exact-conso-reading-mask="true"] .p-drawer-header,
  body.deesco-connected-lab [data-exact-conso-reading-mask="true"] .p-drawer-content { padding-inline: 1rem; }
  body.deesco-connected-lab .exact-conso-renovation-actions>header { align-items:flex-start; flex-direction:column; }
  body.deesco-connected-lab .exact-conso-renovation-actions>header>span { max-width:none; text-align:left; }
}
