html{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;font-size:16px;height:100vh;line-height:1.15;width:100vw}*,*:after,*:before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body,h1,h2,h3,h4,h5,h6,p,ol,ul{margin:0;padding:0}div,textarea,table,td,th,code,pre,samp{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;-o-hyphens:auto;hyphens:auto}pre,code,kbd,samp{font-family:monospace,monospace;font-size:1em;white-space:pre-wrap}button,input,optgroup,select,textarea{margin:0}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}table td{padding:0}a{color:inherit;text-decoration:none}a:visited,a:hover,a:active,a:focus{color:inherit}img{max-width:100%;height:auto}
/* roboto-latin-400-normal */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/build/fonts/roboto-latin-400-normal.0d16261b.woff2) format('woff2'), url(/build/fonts/roboto-latin-400-normal.c1b1c5c6.woff) format('woff');
}
/* roboto-latin-500-normal */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/build/fonts/roboto-latin-500-normal.1c7e8aa0.woff2) format('woff2'), url(/build/fonts/roboto-latin-500-normal.f4ee5bd9.woff) format('woff');
}
/* roboto-latin-700-normal */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/build/fonts/roboto-latin-700-normal.d89b03c5.woff2) format('woff2'), url(/build/fonts/roboto-latin-700-normal.53f3933b.woff) format('woff');
}
/* roboto-latin-ext-400-normal */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/build/fonts/roboto-latin-ext-400-normal.63938345.woff2) format('woff2'), url(/build/fonts/roboto-latin-ext-400-normal.ef4cc4f9.woff) format('woff');
}
/* roboto-latin-ext-500-normal */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/build/fonts/roboto-latin-ext-500-normal.a352ed92.woff2) format('woff2'), url(/build/fonts/roboto-latin-ext-500-normal.d929fcd4.woff) format('woff');
}
/* roboto-latin-ext-700-normal */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/build/fonts/roboto-latin-ext-700-normal.265de738.woff2) format('woff2'), url(/build/fonts/roboto-latin-ext-700-normal.064c6977.woff) format('woff');
}
@font-face {
  font-family: "Material Icons";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url(/build/fonts/material-icons.0c35d18b.woff2) format("woff2"), url(/build/fonts/material-icons.4d73cb90.woff) format("woff");
}
.material-icons {
  font-family: "Material Icons";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "liga";
}

@font-face {
  font-family: "Material Icons Outlined";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url(/build/fonts/material-icons-outlined.6f420cf1.woff2) format("woff2"), url(/build/fonts/material-icons-outlined.f882956f.woff) format("woff");
}
.material-icons-outlined {
  font-family: "Material Icons Outlined";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "liga";
}

.clr-picker {
  display: none;
  flex-wrap: wrap;
  position: absolute;
  width: 200px;
  z-index: 1000;
  border-radius: 10px;
  background-color: #fff;
  justify-content: flex-end;
  direction: ltr;
  box-shadow: 0 0 5px rgba(0,0,0,.05), 0 5px 20px rgba(0,0,0,.1);
  -moz-user-select: none;
  -webkit-user-select: none;
  user-select: none;
}

.clr-picker.clr-open,
.clr-picker[data-inline="true"] {
  display: flex;
}

.clr-picker[data-inline="true"] {
  position: relative;
}

.clr-gradient {
  position: relative;
  width: 100%;
  height: 100px;
  margin-bottom: 15px;
  border-radius: 3px 3px 0 0;
  background-image: linear-gradient(rgba(0,0,0,0), #000), linear-gradient(90deg, #fff, currentColor);
  cursor: pointer;
}

.clr-marker {
  position: absolute;
  width: 12px;
  height: 12px;
  margin: -6px 0 0 -6px;
  border: 1px solid #fff;
  border-radius: 50%;
  background-color: currentColor;
  cursor: pointer;
}

.clr-picker input[type="range"]::-webkit-slider-runnable-track {
  width: 100%;
  height: 16px;
}

.clr-picker input[type="range"]::-webkit-slider-thumb {
  width: 16px;
  height: 16px;
  -webkit-appearance: none;
}

.clr-picker input[type="range"]::-moz-range-track {
  width: 100%;
  height: 16px;
  border: 0;
}

.clr-picker input[type="range"]::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border: 0;
}

.clr-hue {
  background-image: linear-gradient(to right, #f00 0%, #ff0 16.66%, #0f0 33.33%, #0ff 50%, #00f 66.66%, #f0f 83.33%, #f00 100%);
}

.clr-hue,
.clr-alpha {
  position: relative;
  width: calc(100% - 40px);
  height: 8px;
  margin: 5px 20px;
  border-radius: 4px;
}

.clr-alpha span {
  display: block;
  height: 100%;
  width: 100%;
  border-radius: inherit;
  background-image: linear-gradient(90deg, rgba(0,0,0,0), currentColor);
}

.clr-hue input[type="range"],
.clr-alpha input[type="range"] {
  position: absolute;
  width: calc(100% + 32px);
  height: 16px;
  left: -16px;
  top: -4px;
  margin: 0;
  background-color: transparent;
  opacity: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.clr-hue div,
.clr-alpha div {
  position: absolute;
  width: 16px;
  height: 16px;
  left: 0;
  top: 50%;
  margin-left: -8px;
  transform: translateY(-50%);
  border: 2px solid #fff;
  border-radius: 50%;
  background-color: currentColor;
  box-shadow: 0 0 1px #888;
  pointer-events: none;
}

.clr-alpha div:before {
  content: '';
  position: absolute;
  height: 100%;
  width: 100%;
  left: 0;
  top: 0;
  border-radius: 50%;
  background-color: currentColor;
}

.clr-format {
  display: none;
  order: 1;
  width: calc(100% - 40px);
  margin: 0 20px 20px;
}

.clr-segmented {
  display: flex;
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 1px solid #ddd;
  border-radius: 15px;
  box-sizing: border-box;
  color: #999;
  font-size: 12px;
}

.clr-segmented input,
.clr-segmented legend {
  position: absolute;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  left: 0;
  top: 0;
  opacity: 0;
  pointer-events: none;
}

.clr-segmented label {
  flex-grow: 1;
  margin: 0;
  padding: 4px 0;
  font-size: inherit;
  font-weight: normal;
  line-height: initial;
  text-align: center;
  cursor: pointer;
}

.clr-segmented label:first-of-type {
  border-radius: 10px 0 0 10px;
}

.clr-segmented label:last-of-type {
  border-radius: 0 10px 10px 0;
}

.clr-segmented input:checked + label {
  color: #fff;
  background-color: #666;
}

.clr-swatches {
  order: 2;
  width: calc(100% - 32px);
  margin: 0 16px;
}

.clr-swatches div {
  display: flex;
  flex-wrap: wrap;
  padding-bottom: 12px;
  justify-content: center;
}

.clr-swatches button {
  position: relative;
  width: 20px;
  height: 20px;
  margin: 0 4px 6px 4px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: inherit;
  text-indent: -1000px;
  white-space: nowrap;
  overflow: hidden;
  cursor: pointer;
}

.clr-swatches button:after {
  content: '';
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  border-radius: inherit;
  background-color: currentColor;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.1);
}

input.clr-color {
  order: 1;
  width: calc(100% - 80px);
  height: 32px;
  margin: 15px 20px 20px auto;
  padding: 0 10px;
  border: 1px solid #ddd;
  border-radius: 16px;
  color: #444;
  background-color: #fff;
  font-family: sans-serif;
  font-size: 14px;
  text-align: center;
  box-shadow: none;
}

input.clr-color:focus {
  outline: none;
  border: 1px solid #1e90ff;
}

.clr-close,
.clr-clear {
  display: none;
  order: 2;
  height: 24px;
  margin: 0 20px 20px;
  padding: 0 20px;
  border: 0;
  border-radius: 12px;
  color: #fff;
  background-color: #666;
  font-family: inherit;
  font-size: 12px;
  font-weight: 400;
  cursor: pointer;
}

.clr-close {
  display: block;
  margin: 0 20px 20px auto;
}

.clr-preview {
  position: relative;
  width: 32px;
  height: 32px;
  margin: 15px 0 20px 20px;
  border-radius: 50%;
  overflow: hidden;
}

.clr-preview:before,
.clr-preview:after {
  content: '';
  position: absolute;
  height: 100%;
  width: 100%;
  left: 0;
  top: 0;
  border: 1px solid #fff;
  border-radius: 50%;
}

.clr-preview:after {
  border: 0;
  background-color: currentColor;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.1);
}

.clr-preview button {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 1;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  outline-offset: -2px;
  background-color: transparent;
  text-indent: -9999px;
  cursor: pointer;
  overflow: hidden;
}

.clr-marker,
.clr-hue div,
.clr-alpha div,
.clr-color {
  box-sizing: border-box;
}

.clr-field {
  display: inline-block;
  position: relative;
  color: transparent;
}

.clr-field input {
  margin: 0;
  direction: ltr;
}

.clr-field.clr-rtl input {
  text-align: right;
}

.clr-field button {
  position: absolute;
  width: 30px;
  height: 100%;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
  padding: 0;
  border: 0;
  color: inherit;
  text-indent: -1000px;
  white-space: nowrap;
  overflow: hidden;
  pointer-events: none;
}

.clr-field.clr-rtl button {
  right: auto;
  left: 0;
}

.clr-field button:after {
  content: '';
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  border-radius: inherit;
  background-color: currentColor;
  box-shadow: inset 0 0 1px rgba(0,0,0,.5);
}

.clr-alpha,
.clr-alpha div,
.clr-swatches button,
.clr-preview:before,
.clr-field button {
  background-image: repeating-linear-gradient(45deg, #aaa 25%, transparent 25%, transparent 75%, #aaa 75%, #aaa), repeating-linear-gradient(45deg, #aaa 25%, #fff 25%, #fff 75%, #aaa 75%, #aaa);
  background-position: 0 0, 4px 4px;
  background-size: 8px 8px;
}

.clr-marker:focus {
  outline: none;
}

.clr-keyboard-nav .clr-marker:focus,
.clr-keyboard-nav .clr-hue input:focus + div,
.clr-keyboard-nav .clr-alpha input:focus + div,
.clr-keyboard-nav .clr-segmented input:focus + label {
  outline: none;
  box-shadow: 0 0 0 2px #1e90ff, 0 0 2px 2px #fff;
}

.clr-picker[data-alpha="false"] .clr-alpha {
  display: none;
}

.clr-picker[data-minimal="true"] {
  padding-top: 16px;
}

.clr-picker[data-minimal="true"] .clr-gradient,
.clr-picker[data-minimal="true"] .clr-hue,
.clr-picker[data-minimal="true"] .clr-alpha,
.clr-picker[data-minimal="true"] .clr-color,
.clr-picker[data-minimal="true"] .clr-preview {
  display: none;
}

/** Dark theme **/

.clr-dark {
  background-color: #444;
}

.clr-dark .clr-segmented {
  border-color: #777;
}

.clr-dark .clr-swatches button:after {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.3);
}

.clr-dark input.clr-color {
  color: #fff;
  border-color: #777;
  background-color: #555;
}

.clr-dark input.clr-color:focus {
  border-color: #1e90ff;
}

.clr-dark .clr-preview:after {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.5);
}

.clr-dark .clr-alpha,
.clr-dark .clr-alpha div,
.clr-dark .clr-swatches button,
.clr-dark .clr-preview:before {
  background-image: repeating-linear-gradient(45deg, #666 25%, transparent 25%, transparent 75%, #888 75%, #888), repeating-linear-gradient(45deg, #888 25%, #444 25%, #444 75%, #888 75%, #888);
}

/** Polaroid theme **/

.clr-picker.clr-polaroid {
  border-radius: 6px;
  box-shadow: 0 0 5px rgba(0,0,0,.1), 0 5px 30px rgba(0,0,0,.2);
}

.clr-picker.clr-polaroid:before {
  content: '';
  display: block;
  position: absolute;
  width: 16px;
  height: 10px;
  left: 20px;
  top: -10px;
  border: solid transparent;
  border-width: 0 8px 10px 8px;
  border-bottom-color: currentColor;
  box-sizing: border-box;
  color: #fff;
  filter: drop-shadow(0 -4px 3px rgba(0,0,0,.1));
  pointer-events: none;
}

.clr-picker.clr-polaroid.clr-dark:before {
  color: #444;
}

.clr-picker.clr-polaroid.clr-left:before {
  left: auto;
  right: 20px;
}

.clr-picker.clr-polaroid.clr-top:before {
  top: auto;
  bottom: -10px;
  transform: rotateZ(180deg);
}

.clr-polaroid .clr-gradient {
  width: calc(100% - 20px);
  height: 120px;
  margin: 10px;
  border-radius: 3px;
}

.clr-polaroid .clr-hue,
.clr-polaroid .clr-alpha {
  width: calc(100% - 30px);
  height: 10px;
  margin: 6px 15px;
  border-radius: 5px;
}

.clr-polaroid .clr-hue div,
.clr-polaroid .clr-alpha div {
  box-shadow: 0 0 5px rgba(0,0,0,.2);
}

.clr-polaroid .clr-format {
  width: calc(100% - 20px);
  margin: 0 10px 15px;
}

.clr-polaroid .clr-swatches {
  width: calc(100% - 12px);
  margin: 0 6px;
}
.clr-polaroid .clr-swatches div {
  padding-bottom: 10px;
}

.clr-polaroid .clr-swatches button {
  width: 22px;
  height: 22px;
}

.clr-polaroid input.clr-color {
  width: calc(100% - 60px);
  margin: 10px 10px 15px auto;
}

.clr-polaroid .clr-clear {
  margin: 0 10px 15px 10px;
}

.clr-polaroid .clr-close {
  margin: 0 10px 15px auto;
}

.clr-polaroid .clr-preview {
  margin: 10px 0 15px 10px;
}

/** Large theme **/

.clr-picker.clr-large {
  width: 275px;
}

.clr-large .clr-gradient {
  height: 150px;
}

.clr-large .clr-swatches button {
  width: 22px;
  height: 22px;
}

/** Pill (horizontal) theme **/

.clr-picker.clr-pill {
  width: 380px;
  padding-left: 180px;
  box-sizing: border-box;
}

.clr-pill .clr-gradient {
  position: absolute;
  width: 180px;
  height: 100%;
  left: 0;
  top: 0;
  margin-bottom: 0;
  border-radius: 3px 0 0 3px;
}

.clr-pill .clr-hue {
  margin-top: 20px;
}
*,*::before,*::after{box-sizing:border-box}html,body{height:100%}html{touch-action:manipulation;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0;overflow:hidden;font-family:"Roboto","Helvetica Neue",Arial,sans-serif;font-size:14px;line-height:1.4;color:#2e3633;background:#fff}a{color:#377e6a;text-decoration:none}@media(hover: hover){a:hover{color:#2c6655}}button{font:inherit}[hidden],.hidden{display:none !important}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.material-icons,.material-icons-outlined{font-size:20px;line-height:1}:focus-visible{outline:2px solid #377e6a;outline-offset:2px}#page{display:flex;flex-direction:column;height:100vh;height:100dvh}.app-header{height:72px;flex-shrink:0;display:flex;align-items:center;gap:24px;padding:0 24px;border-bottom:1px solid #dde2e0;background:#fff}.app-header__brand{display:flex;align-items:center;gap:14px;width:272px}.app-header .header-logo-link{display:block;line-height:0}.app-header .header-logo-link img{width:104px;height:auto}.app-header__divider{width:1px;height:28px;background:#dde2e0}.app-header__name{font-size:13px;font-weight:500;line-height:1.25;color:#377e6a}.app-header__nav{margin-left:auto;display:flex;align-items:center;gap:4px}.nav-link{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:8px;font-size:14px;font-weight:500;color:#2e3633}.nav-link .material-icons-outlined{color:#377e6a}@media(hover: hover){.nav-link:hover{color:#2e3633;background:#f1f3f2}}.app-main{position:relative;flex-grow:1;min-height:0;display:flex}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border:1px solid rgba(0,0,0,0);border-radius:8px;font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color 120ms,border-color 120ms}.btn--primary{background:#377e6a;color:#fff}@media(hover: hover){.btn--primary:hover{background:#2c6655;color:#fff}}.btn--secondary{background:#fff;border-color:#c9d0cd;color:#2e3633}@media(hover: hover){.btn--secondary:hover{background:#f1f3f2;color:#2e3633}}.btn--block{width:100%}.btn--sm{height:40px;padding:0 16px}.icon-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:#377e6a;cursor:pointer}@media(hover: hover){.icon-button:hover{background:#f1f3f2;color:#2c6655}}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-size:13px;font-weight:500;color:#2e3633}.field__label-row{display:flex;align-items:baseline}.field__label-row a{margin-left:auto;font-size:13px;font-weight:500}.field__input{width:100%;height:44px;padding:0 12px;border:1px solid #c9d0cd;border-radius:8px;background:#fff;font:inherit;font-size:14px;color:#2e3633}.field__input:focus{outline:none;border-color:#377e6a;box-shadow:0 0 0 1px #377e6a}.field__hint{font-size:12px;color:#69736f}.field__error{display:flex;align-items:center;gap:6px;font-size:12px;color:#9a001c}.field__error .material-icons-outlined{font-size:16px;color:#b00020}.field--invalid .field__input{border-color:#b00020}.field--invalid .field__input:focus{box-shadow:0 0 0 1px #b00020}.form-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px}.alert{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;font-size:13px}.alert-danger{background:#fbe9ec;color:#9a001c}.alert-danger .material-icons-outlined{font-size:18px;color:#b00020}.alert-warning{background:#fdf3e1;color:#6b4a00}.alert-warning .material-icons-outlined{font-size:18px;color:#a86b00}.auth{flex-grow:1;display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto;background:#f5f7f6}.auth-card{width:400px;display:flex;flex-direction:column;gap:20px;margin:auto;padding:32px;background:#fff;border:1px solid #dde2e0;border-radius:12px;box-shadow:0 1px 3px rgba(20,28,25,.06)}.auth-card--wide{width:440px;gap:18px}.auth-card__header{display:flex;flex-direction:column;gap:6px}.auth-card__title{margin:0;font-size:24px;font-weight:500;line-height:1.25;color:#2e3633}.auth-card__subtitle{margin:0;font-size:14px;color:#69736f}.auth-card__footer{margin:0;text-align:center;font-size:14px;color:#69736f}.auth-card__footer a{font-weight:500}.configurator{flex-grow:1;min-width:0;display:flex}.panel{position:relative;width:320px;flex-shrink:0;display:flex;flex-direction:column;overflow-y:auto;border-right:1px solid #dde2e0;background:#fff}#app-left-personnalisation{flex-grow:1;display:flex;flex-direction:column;gap:20px;padding:20px}.panel-section{display:flex;flex-direction:column;gap:10px}.panel-title{font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#69736f}.field-title{font-size:13px;font-weight:500;color:#2e3633}.field-hint{font-size:12px;color:#69736f}.field-heading{position:relative;display:flex;flex-direction:column;gap:2px}.field-heading--help{flex-direction:row;align-items:center;gap:8px}.segmented{display:flex;gap:4px;padding:4px;border-radius:10px;background:#f1f3f2}.segmented__item{flex:1 1 0;height:32px;display:flex;align-items:center;justify-content:center;padding:0 10px;border:0;border-radius:7px;background:none;font-size:13px;color:#58625e;white-space:nowrap;cursor:pointer;user-select:none}@media(hover: hover){.segmented__item:hover{color:#2e3633}}.segmented__item.is-active,.segmented__item.on{background:#fff;box-shadow:0 1px 2px rgba(20,28,25,.14);font-weight:500;color:#2c6655}.segmented--compact{padding:3px;border-radius:9px}.segmented--compact .segmented__item{flex:0 0 auto;height:30px;padding:0 12px;border-radius:6px}.part-dp{display:none !important}.part-dp.visible{display:flex !important}.app-content{display:none}.app-content.app-content--active{display:flex;flex-direction:column;gap:20px}.dropzone{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px dashed #b9c2be;border-radius:10px;background:#f5f7f6;font-size:13px;color:#69736f;transition:border-color 120ms}@media(hover: hover){.dropzone:hover{border-color:#377e6a}}.dropzone>input[type=file]{position:absolute;inset:0;z-index:2;width:100%;height:100%;opacity:0;cursor:pointer}.dropzone>img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:contain;background:#fff}.dropzone--picture{height:auto;aspect-ratio:var(--ratio-apercu, 1176/585)}.dropzone--picture>img{object-fit:fill}.dropzone--round{width:150px;height:150px;border-radius:50%}.dropzone--round>img{object-fit:cover}.app-couvercle-upload.visible{justify-content:center}.tier-list{display:flex;flex-direction:column}.tier-row{display:flex;align-items:center;gap:10px;height:34px}.tier-row .app-position{order:-1;width:52px;font-size:13px;color:#2e3633}.tier-hex{font-size:12px;color:#58625e;font-variant-numeric:tabular-nums}.tier-color,.tier-color-masks{position:relative;flex-grow:1;height:30px;overflow:hidden;border:1px solid #c9d0cd;border-radius:8px;cursor:pointer}.tier-color>input,.tier-color-masks>input{position:absolute;inset:0;z-index:2;width:100%;height:100%;margin:0;padding:0;border:0;appearance:none;opacity:0;cursor:pointer}.tier-color>.tier,.tier-color-masks>.tier{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.tier-color .tier-hex,.tier-color-masks .tier-hex{color:rgba(24,32,29,.6)}.tier-color>.tier.on-dark .tier-hex,.tier-color-masks>.tier.on-dark .tier-hex{color:rgba(255,255,255,.9)}.link-toggle{width:28px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:18px;color:#69736f;cursor:pointer;user-select:none}@media(hover: hover){.link-toggle:hover{background:#f1f3f2}}.link-toggle.link-on{color:#377e6a}.link-toggle.link-on::before{content:"link"}.link-toggle.link-off::before{content:"link_off"}.help-toggle{width:20px;height:20px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;background:#377e6a;font-size:12px;font-weight:700;color:#fff;cursor:pointer}.help-toggle[aria-expanded=true]{background:#2c6655}.help-popover{position:absolute;z-index:50;top:calc(100% + 8px);left:0;right:0;padding:12px 14px;border:1px solid #dde2e0;border-radius:10px;background:#fff;box-shadow:0 8px 24px rgba(20,28,25,.14);font-size:13px;line-height:1.5;color:#2e3633}.mask-row{display:flex;align-items:center;gap:10px;height:34px}.mask-row .app-position{width:52px;font-size:13px;color:#2e3633}.mask-row .tier-masks{position:relative;flex-grow:1;height:30px}.mask-row .tier-masks>input{position:absolute;inset:0;z-index:2;width:100%;height:100%;opacity:0;cursor:pointer}.mask-row .tier-masks>.tier{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border:1px dashed #b9c2be;border-radius:8px;color:#377e6a}@media(hover: hover){.mask-row:hover .tier-masks>.tier{border-color:#377e6a}}.file-active{border:2px solid #377e6a !important;background:#e9f2ef}.delete-mask{cursor:pointer;color:#69736f}@media(hover: hover){.delete-mask:hover{color:#b00020}}.tier-masks.couvercle-mask{display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px dashed #b9c2be;border-radius:8px;color:#377e6a}@media(hover: hover){.tier-masks.couvercle-mask:hover{border-color:#377e6a}}.tier-masks.couvercle-mask>img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;border-radius:8px;pointer-events:none}.convertisseur-online{margin-top:auto;padding-top:16px;border-top:1px solid #dde2e0;display:flex;flex-direction:column;gap:10px}.convertisseur-online a{font-size:12px;font-weight:500;line-height:1.4}.stage{flex-grow:1;min-width:0;display:flex;flex-direction:column}.model-bar{height:56px;flex-shrink:0;display:flex;align-items:stretch;gap:24px;padding:0 24px;overflow-x:auto;border-bottom:1px solid #dde2e0}.model-tabs{display:flex;align-items:stretch;gap:8px}.trigger-mdc-tab+.trigger-mdc-tab{position:relative}.trigger-mdc-tab+.trigger-mdc-tab::before{content:"";position:absolute;top:50%;left:-4px;width:1px;height:16px;transform:translateY(-50%);background:#dde2e0}.trigger-mdc-tab{display:flex;cursor:pointer}@media(hover: hover){.trigger-mdc-tab:hover .model-tab:not(.is-active){color:#2e3633;border-bottom-color:#c9d0cd}}.model-tab{display:flex;align-items:center;padding:0 12px;border:0;border-bottom:2px solid rgba(0,0,0,0);background:none;font-size:13px;color:#3d4744;white-space:nowrap;pointer-events:none}.model-tab.is-active{font-weight:500;color:#2c6655;border-bottom-color:#377e6a}.model-options{position:absolute;z-index:10;top:16px;right:16px;max-width:calc(100% - 32px);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 16px;padding:6px 14px 6px 6px;border:1px solid #dde2e0;border-radius:12px;background:#fff;box-shadow:0 4px 16px rgba(20,28,25,.08)}.toolbar-divider{width:1px;height:24px;background:#dde2e0}.switch{position:relative;display:inline-flex;align-items:center;gap:10px;font-size:13px;color:#3d4744;white-space:nowrap;cursor:pointer;user-select:none}.switch>input{position:absolute;width:1px;height:1px;opacity:0}.switch__track{position:relative;width:36px;height:20px;flex-shrink:0;border-radius:10px;background:#c9d0cd;transition:background-color 150ms}.switch__track::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(20,28,25,.25);transition:transform 150ms}.switch>input:checked+.switch__track{background:#377e6a}.switch>input:checked+.switch__track::after{transform:translateX(16px)}.switch>input:focus-visible+.switch__track{outline:2px solid #377e6a;outline-offset:2px}.viewport{position:relative;flex-grow:1;min-height:0;overflow:hidden;background:#fff}#unityContainer{position:absolute;inset:0}.stage-actions{position:absolute;z-index:10;bottom:24px;left:50%;transform:translateX(-50%);display:flex;gap:4px;padding:6px;border:1px solid #dde2e0;border-radius:12px;background:#fff;box-shadow:0 4px 16px rgba(20,28,25,.08)}.stage-action{position:relative;width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:#377e6a;cursor:pointer}.stage-action .material-icons{font-size:22px}@media(hover: hover){.stage-action:hover{background:#f1f3f2}}.stage-action--primary{background:#377e6a;color:#fff}@media(hover: hover){.stage-action--primary:hover{background:#2c6655}}.stage-action.is-active{background:#e9f2ef;color:#2c6655}.stage-action.is-recording{background:#b00020;color:#fff}.stage-action[data-tooltip]::after{content:attr(data-tooltip);display:none;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%);width:240px;padding:8px 10px;border-radius:8px;background:#2e3633;font-size:12px;line-height:1.4;color:#fff;text-align:center;pointer-events:none}@media(hover: hover){.stage-action[data-tooltip]:hover::after{display:block}}.stage-action.show-tooltip::after{display:block}.loader-3d,.loader-app-left{position:absolute;inset:0;z-index:30;background:rgba(255,255,255,.85)}.loader-app-left{background:rgba(255,255,255,.7)}.loader1{position:absolute;top:calc(50% - 24px);left:calc(50% - 24px);width:48px;height:48px;border:3px solid #e9f2ef;border-top-color:#377e6a;border-radius:50%;animation:loader-spin 800ms linear infinite}@keyframes loader-spin{to{transform:rotate(360deg)}}.clr-picker{border:1px solid #dde2e0;border-radius:10px;box-shadow:0 8px 24px rgba(20,28,25,.14)}.clr-gradient{border-radius:9px 9px 0 0}input.clr-color{height:30px;border:1px solid #dde2e0;border-radius:8px;font:inherit;font-size:13px;color:#2e3633;font-variant-numeric:tabular-nums}input.clr-color:focus{border:1px solid #377e6a}.clr-preview{border-radius:8px}.clr-preview::before,.clr-preview::after{border-radius:8px}.clr-preview button{border-radius:8px}.dialog{width:420px;max-width:calc(100vw - 32px);padding:24px;border:0;border-radius:14px;box-shadow:0 20px 50px rgba(20,28,25,.25);color:#2e3633}.dialog::backdrop{background:rgba(24,32,29,.45)}.dialog__content{margin:0 0 20px;font-size:15px;line-height:1.5}.dialog__actions{display:flex;justify-content:flex-end;gap:10px;margin:0}.dialog__actions .btn{text-transform:capitalize}#toast-container{position:fixed;z-index:1000;top:88px;right:24px;display:none;max-width:420px}#toast-container.open{display:block}#toast-container .toast{padding:12px 16px;border-radius:10px;box-shadow:0 4px 16px rgba(20,28,25,.08);font-size:14px;color:#fff}#toast-container .toast.green{background:#377e6a}#toast-container .toast.red{background:#b00020}#toast-container .toast.orange{background:#b45f0b}#toast-container .toast.white{border:1px solid #dde2e0;background:#fff;color:#2e3633}.dashboard{flex-grow:1;display:flex;flex-direction:column;gap:20px;padding:32px 40px;overflow-y:auto;background:#f5f7f6}.dashboard__header{display:flex;align-items:center;gap:12px}.dashboard__legend{margin:0;font-size:14px;color:#69736f}.dashboard__legend strong{font-weight:700;color:#2e3633}.page-title{margin:0;font-size:24px;font-weight:500;color:#2e3633}.page-subtitle{font-size:14px;color:#69736f}.search{margin-left:auto;width:320px;height:40px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #c9d0cd;border-radius:8px;background:#fff;color:#69736f}.search:focus-within{border-color:#377e6a;box-shadow:0 0 0 1px #377e6a}.search__input{flex-grow:1;height:100%;border:0;outline:0;background:none;font:inherit;font-size:14px;color:#2e3633}.card{flex-shrink:0;overflow:hidden;border:1px solid #dde2e0;border-radius:12px;background:#fff}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{height:44px;padding:0 16px;border-bottom:1px solid #dde2e0;background:#fafbfb;text-align:left;font-size:12px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:#69736f}.data-table td{height:52px;padding:0 16px;border-bottom:1px solid #eef1f0;color:#2e3633}.data-table th:first-child,.data-table td:first-child{padding-left:20px}.data-table tbody tr:last-child td{border-bottom:0}@media(hover: hover){.data-table tbody tr:hover td{background:#fafbfb}}.data-table__actions{width:64px;text-align:right}.data-table th.data-table__actions,.data-table td.data-table__actions{padding-right:20px}.data-table__sort{display:inline-flex;align-items:center;gap:4px;height:44px;margin:0;padding:0;border:0;background:none;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}@media(hover: hover){.data-table__sort:hover{color:#2e3633}.data-table__sort:hover .data-table__sort-icon{opacity:1}}.data-table__sort:focus-visible{outline:2px solid #377e6a;outline-offset:2px}.data-table__sort-icon.material-icons-outlined{font-size:16px;opacity:.45}.data-table th[aria-sort=ascending],.data-table th[aria-sort=descending]{color:#2e3633}.data-table th[aria-sort=ascending] .data-table__sort-icon,.data-table th[aria-sort=descending] .data-table__sort-icon{opacity:1;color:#377e6a}.data-table__row--notified td{font-weight:700}.data-table__date{white-space:nowrap;font-variant-numeric:tabular-nums}.data-table__date.is-muted{color:#8a938f}.app-version{position:sticky;bottom:0;align-self:flex-end;margin-top:auto;padding:4px 8px;border-radius:6px;background:rgba(245,247,246,.92);font-size:12px;color:#8a938f;font-variant-numeric:tabular-nums}.table-empty{margin:0;padding:20px;font-size:14px;color:#69736f}.status{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 12px;border:0;border-radius:14px;font:inherit;font-size:13px;font-weight:500;white-space:nowrap}.status__dot{width:8px;height:8px;border-radius:50%}.status--active{background:#e9f2ef;color:#2c6655}.status--active .status__dot{background:#377e6a}.status--none{background:#f1f3f2;color:#58625e}.status--none .status__dot{background:#a3aca8}.status--admin{background:#2e3633;color:#fff}.status--admin .status__dot{background:#8fc2b1}.dashboard-status{cursor:pointer;transition:box-shadow 120ms}@media(hover: hover){.dashboard-status:hover{box-shadow:inset 0 0 0 1px currentColor}}.dashboard-status-form{display:inline;margin:0}.modal-backdrop{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(24,32,29,.45)}.modal{width:480px;max-width:100%;max-height:100%;overflow-y:auto;padding:28px;border-radius:14px;background:#fff;box-shadow:0 20px 50px rgba(20,28,25,.25)}.modal__form{display:flex;flex-direction:column;gap:18px}.modal__header{display:flex;align-items:center}.modal__header .icon-button{margin-left:auto;color:#69736f}.modal__title{margin:0;font-size:20px;font-weight:500}.modal__actions{display:flex;justify-content:flex-end;gap:10px;padding-top:18px;border-top:1px solid #eef1f0}@media(pointer: coarse){.nav-link{height:44px}.field__input,.search__input{font-size:16px}.segmented__item{height:40px}.segmented--compact .segmented__item{height:38px}.switch{min-height:44px}.switch .switch__track{width:44px;height:26px;border-radius:13px}.switch .switch__track::after{width:22px;height:22px}.switch>input:checked+.switch__track::after{transform:translateX(18px)}.tier-row{height:48px}.tier-color,.tier-color-masks{height:40px;border-radius:8px}.tier-color .tier-hex,.tier-color-masks .tier-hex{font-size:14px}.link-toggle{width:40px;height:32px;font-size:22px}.help-toggle{position:relative;width:28px;height:28px;font-size:14px}.help-toggle::before{content:"";position:absolute;inset:-8px}.help-popover{font-size:14px}.mask-row{height:50px}.mask-row .app-position{width:60px}.mask-row .tier-masks{height:42px}.delete-mask{margin:-10px;padding:10px;font-size:24px}.stage-action{width:52px;height:52px;-webkit-touch-callout:none;user-select:none}.stage-action .material-icons{font-size:26px}.clr-picker{width:260px;touch-action:none}.clr-picker .clr-gradient{height:140px}.clr-picker .clr-marker{width:18px;height:18px;margin:-9px 0 0 -9px}.clr-picker input.clr-color{height:40px;font-size:16px}}@media(orientation: portrait)and (max-width: 1100px){.configurator{flex-direction:column-reverse}.stage{flex:0 0 56%;min-height:0}.panel{width:auto;flex:1 1 0;min-height:0;border-top:1px solid #dde2e0;border-right:0}#app-left-personnalisation{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));align-content:start;gap:20px 32px}.app-content.app-content--active{grid-column:1/-1;display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));align-items:start;gap:20px 32px}.convertisseur-online{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;gap:8px 32px;margin-top:0}.dashboard{padding:24px}.card{overflow-x:auto}}.device-notice{align-items:center;text-align:center}.device-notice__icon.material-icons-outlined{font-size:56px;color:#377e6a}@media(max-width: 600px){.app-header{gap:12px;padding:0 16px}.app-header__brand{width:auto}.nav-link{gap:0;padding:0 10px;font-size:0}.auth{align-items:flex-start;padding:16px}.auth-card,.auth-card--wide{width:100%;padding:24px 20px}.form-grid{grid-template-columns:minmax(0, 1fr)}}@media(max-width: 420px){.app-header__divider,.app-header__name{display:none}}
