
:root{
  --bg:#0a0a0c; --panel:#131318; --panel-2:#1a1a20; --line:#2b2b35;
  --text:#f4f4f7; --muted:#b8b8c6; --gold:#d4af37; --gold-2:#f1d77a;
  --ok:#7be495; --shadow:0 18px 60px rgba(0,0,0,.38); --radius:22px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%;background:linear-gradient(180deg,#050506 0%,#0a0a0c 100%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;overflow:hidden}
button,input,select,textarea{font:inherit}
.app{height:100vh;display:grid;grid-template-rows:72px 1fr}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid rgba(212,175,55,.14);background:rgba(11,11,13,.92);backdrop-filter:blur(14px);position:relative;z-index:20}
.brand{display:flex;align-items:center;gap:12px;font-weight:800}
.brand-badge{width:40px;height:40px;border-radius:14px;background:radial-gradient(circle at 30% 30%,var(--gold-2),var(--gold));color:#111;display:grid;place-items:center;font-weight:900;box-shadow:var(--shadow)}
.top-actions,.top-actions-right{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn{padding:11px 14px;border-radius:14px;border:1px solid var(--line);background:#1a1a20;color:var(--text);cursor:pointer;transition:.18s transform,.18s border-color,.18s background}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#111;border:none;font-weight:800}
.btn.small{padding:9px 12px;border-radius:12px}
.btn.active{background:rgba(212,175,55,.12);border-color:rgba(212,175,55,.28);color:var(--gold-2)}
.workspace{min-height:0;display:grid;grid-template-columns:76px 1fr}
.dock{border-right:1px solid rgba(212,175,55,.12);background:linear-gradient(180deg,var(--panel),var(--panel-2));padding:12px 10px;display:flex;flex-direction:column;gap:10px;align-items:center}
.dock-btn{width:54px;height:54px;border-radius:16px;border:1px solid var(--line);background:#18181d;color:var(--text);cursor:pointer;display:grid;place-items:center;font-size:1.15rem}
.dock-btn.active{background:rgba(212,175,55,.12);border-color:rgba(212,175,55,.28);color:var(--gold-2)}
.main-area{min-width:0;min-height:0;display:grid;grid-template-columns:320px 1fr}
.panel-column{min-height:0;background:linear-gradient(180deg,var(--panel),var(--panel-2));border-right:1px solid rgba(212,175,55,.12);overflow:hidden}
.panel-wrap{height:100%;display:none;flex-direction:column}
.panel-wrap.active{display:flex}
.panel-head{padding:16px 16px 12px;border-bottom:1px solid rgba(255,255,255,.06)}
.panel-body{padding:16px;overflow:auto}
.panel-title{margin:0;color:var(--gold-2);font-size:1rem}
.hint{color:var(--muted);font-size:.92rem;line-height:1.55}
.section{border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02);border-radius:20px;padding:14px;margin-bottom:14px}
.section h3{margin:0 0 10px;color:var(--gold-2);font-size:1rem}
.stack{display:grid;gap:10px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.row3{display:grid;grid-template-columns:90px 1fr 88px;gap:10px;align-items:center}
.field,.select,.textarea{width:100%;padding:13px 14px;border-radius:14px;background:#111116;border:1px solid var(--line);color:var(--text)}
.textarea{min-height:88px;resize:vertical}
.chip{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#18181d;color:var(--text);cursor:pointer}
.chip.active{background:rgba(212,175,55,.12);border-color:rgba(212,175,55,.28);color:var(--gold-2)}
.subline{font-size:.84rem;color:var(--muted)}
.canvas-area{min-width:0;min-height:0;display:grid;grid-template-rows:auto 1fr;background:radial-gradient(circle at 50% 25%, rgba(212,175,55,.08), transparent 30%), #101015}
.canvas-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 320px;align-items:start;gap:10px 16px;padding:14px 18px;border-bottom:1px solid rgba(212,175,55,.1)}
.toolbar-right{display:flex;flex-direction:column;gap:8px}
.status{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:999px;background:rgba(123,228,149,.1);color:var(--ok);border:1px solid rgba(123,228,149,.2)}
.status-box{min-height:44px;max-height:80px;overflow:auto;white-space:pre-wrap;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#15151a;color:#d0d0d0;font-size:12px;line-height:1.45}
.contextbar{width:100%;min-height:56px;padding:8px 10px;border-radius:18px;background:rgba(19,19,24,.92);border:1px solid rgba(212,175,55,.18);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}
.context-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.context-row{display:none;align-items:center;gap:8px;flex-wrap:wrap}
.context-row.active{display:flex}
.mini-select,.mini-input,.mini-color{height:36px;padding:7px 9px;border-radius:12px;background:#111116;border:1px solid var(--line);color:var(--text)}
.mini-select{min-width:120px}
.mini-input{width:72px}
.mini-color{width:42px;padding:4px}
.canvas-shell{min-height:0;display:grid;place-items:center;padding:12px;overflow:hidden}
.workstage{width:100%;height:100%;display:grid;place-items:center;overflow:hidden}
.stage-wrap{position:relative}
.print-stage{position:relative;border-radius:28px;background:
  linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015)),
  repeating-linear-gradient(0deg, transparent 0 39px, rgba(255,255,255,.03) 39px 40px),
  repeating-linear-gradient(90deg, transparent 0 39px, rgba(255,255,255,.03) 39px 40px);
  border:1px solid rgba(212,175,55,.22);box-shadow:var(--shadow);overflow:hidden}
.safe-zone{display:none !important}
.stage-label,.stage-note{position:absolute;z-index:4;padding:10px 12px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:var(--muted)}
.stage-label{top:16px;left:16px}
.stage-note{bottom:16px;right:16px;font-size:.92rem}
canvas{display:block}
.text-list{display:grid;gap:8px}
.text-item{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#18181d;color:var(--text);cursor:pointer;text-align:left}
.text-item.active{background:rgba(212,175,55,.12);border-color:rgba(212,175,55,.28);color:var(--gold-2)}
.font-filters{display:grid;gap:10px}
.font-grid{display:grid;grid-template-columns:1fr;gap:8px;max-height:340px;overflow:auto}
.font-card{border:1px solid rgba(255,255,255,.08);background:#17171c;border-radius:14px;padding:10px 12px;text-align:left;cursor:pointer;color:var(--text)}
.font-card:hover{border-color:rgba(212,175,55,.28)}
.font-card.active{border-color:rgba(212,175,55,.38);background:rgba(212,175,55,.08)}
.font-preview{font-size:1.1rem;line-height:1.2;margin-bottom:6px}
.font-meta{font-size:.78rem;color:var(--muted)}
.font-count{font-size:.82rem;color:var(--gold-2)}
.mode-simple-only{display:none}
body[data-editor-mode="simple"] .mode-simple-only{display:block}
body[data-editor-mode="advanced"] .mode-simple-only{display:none}
.engine-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
.tile-btn{background:#1f1f1f;color:#fff;border:1px solid #353535;border-radius:12px;padding:10px;cursor:pointer;text-align:center}
.tile-btn.active{border-color:#6fa8ff;background:#1f2e47;box-shadow: inset 0 0 0 1px rgba(111,168,255,.35)}
.engine-controls{display:grid;gap:10px;width:100%}
.left-panel-controls input[type="range"]{width:100%}
.left-panel-controls input[type="number"]{width:88px;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:#111116;color:var(--text)}
.left-panel-controls input[type="color"]{width:100%;height:36px;padding:2px;border-radius:8px;border:1px solid var(--line);background:#111116}
.left-panel-controls label{font-size:12px;color:#fff;font-weight:700}
.action-row{grid-template-columns:1fr 1fr !important}
@media (max-width:1200px){.canvas-toolbar{grid-template-columns:1fr}}
@media (max-width:1000px){.main-area{grid-template-columns:280px 1fr}}
@media (max-width:860px){
  html,body{overflow:auto}.app{height:auto;min-height:100vh;grid-template-rows:auto auto}.workspace{grid-template-columns:64px 1fr}.main-area{grid-template-columns:1fr}
  .panel-column{border-right:none;border-bottom:1px solid rgba(212,175,55,.12);max-height:45vh}.topbar{position:sticky;top:0}.canvas-toolbar{grid-template-columns:1fr}
}

.toolbar-empty{display:none}
.toolbar-right{display:none}

.row3-compact{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}

.quick-canvas-menu{
  position:absolute;
  z-index:60;
  min-width:320px;
  max-width:420px;
  padding:10px;
  border-radius:18px;
  border:1px solid rgba(212,175,55,.22);
  background:rgba(19,19,24,.96);
  box-shadow:0 18px 60px rgba(0,0,0,.38);
  backdrop-filter:blur(10px);
}
.quick-canvas-menu[hidden]{display:none !important}
.quick-canvas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.quick-canvas-sep{height:1px;background:rgba(255,255,255,.08);margin:10px 0}

.mini-range{width:140px;height:36px;accent-color:var(--gold)}
.toggle-btn.is-on{background:rgba(212,175,55,.16);border-color:rgba(212,175,55,.42);color:var(--gold-2)}

.icon-toggle-btn{
  min-width:42px;
  padding:9px 10px;
  font-weight:700;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0;
}
.icon-toggle-btn strong,
.icon-toggle-btn em{
  font-size:15px;
  line-height:1;
}

/* guides are Fabric lines, no extra CSS needed */

.layer-list{display:grid;gap:8px}
.layer-item{
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#18181d;
  color:var(--text);
  cursor:pointer;
  text-align:left;
}
.layer-item.active{
  background:rgba(212,175,55,.12);
  border-color:rgba(212,175,55,.28);
  color:var(--gold-2);
}
.effects-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.image-slider-row{
  grid-template-columns:90px 1fr 82px !important;
  align-items:center;
}
.image-slider-row label{
  font-size:12px;
  color:#fff;
  font-weight:700;
}
.image-slider-row input[type="range"]{width:100%}
.image-slider-row input[type="number"],
#imageColorizeAlpha{
  width:82px;
  padding:8px 10px;
  border-radius:8px;
  border:1px solid var(--line);
  background:#111116;
  color:var(--text);
}
#imageColorizeColor{
  width:100%;
  height:36px;
  padding:2px;
  border-radius:8px;
  border:1px solid var(--line);
  background:#111116;
}
.img-effect-btn.active{
  background:rgba(212,175,55,.16);
  border-color:rgba(212,175,55,.42);
  color:var(--gold-2);
}

.layer-list{display:grid;gap:8px}
.layer-item{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#18181d;color:var(--text);cursor:pointer;text-align:left}
.layer-item.active{background:rgba(212,175,55,.12);border-color:rgba(212,175,55,.28);color:var(--gold-2)}
.effects-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.image-slider-row{grid-template-columns:90px 1fr 82px !important;align-items:center}
.image-slider-row label{font-size:12px;color:#fff;font-weight:700}
.image-slider-row input[type="range"]{width:100%}
.image-slider-row input[type="number"],#imageColorizeAlpha,#imageColorizeAlphaMirror{width:82px;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:#111116;color:var(--text)}
#imageColorizeColor{width:100%;height:36px;padding:2px;border-radius:8px;border:1px solid var(--line);background:#111116}
.img-effect-btn.active{background:rgba(212,175,55,.16);border-color:rgba(212,175,55,.42);color:var(--gold-2)}
#imageContextBar{display:none}

.layer-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.layer-item-main{
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  background:transparent;
  border:none;
  color:inherit;
  text-align:left;
  cursor:pointer;
  padding:0;
}
.layer-item-actions{
  display:flex;
  align-items:center;
  gap:6px;
}
.layer-icon-btn{
  width:30px;
  height:30px;
  border-radius:8px;
  border:1px solid var(--line);
  background:#111116;
  color:var(--text);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-size:14px;
}
.layer-icon-btn.is-off{opacity:.55}
.layer-icon-btn.is-locked{
  color:var(--gold-2);
  border-color:rgba(212,175,55,.35);
}


/* ------------------------------
   Ergonomie panneau gauche
------------------------------ */
.app-shell,
.sidebar,
.left-panel,
.dock,
.panel-stack,
.panel-wrap,
.panel-body,
.toolbar,
.toolbar-right,
.layer-list,
#textList,
#imageList{
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.app-shell::-webkit-scrollbar,
.sidebar::-webkit-scrollbar,
.left-panel::-webkit-scrollbar,
.dock::-webkit-scrollbar,
.panel-stack::-webkit-scrollbar,
.panel-wrap::-webkit-scrollbar,
.panel-body::-webkit-scrollbar,
.toolbar::-webkit-scrollbar,
.toolbar-right::-webkit-scrollbar,
.layer-list::-webkit-scrollbar,
#textList::-webkit-scrollbar,
#imageList::-webkit-scrollbar{
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

/* un peu plus d'air dans le panneau */
.panel-body{
  padding-right: 24px;
}
.contextbar{
  padding-right: 24px;
}


/* ---- Calques texte : layout compact propre ---- */
.text-item,
.layer-item{
  min-width: 0;
}
.layer-item-main{
  max-width: calc(100% - 82px);
  padding-right: 8px;
}
.layer-item-actions{
  flex: 0 0 66px;
  width: 66px;
  justify-content: flex-end;
}
#textList .layer-item{
  padding-right: 12px;
}
#textList .layer-item-main{
  font-size: 14px;
}


/* scrollbars invisibles : polices */
#fontGrid,
#fontGrid *{
  scrollbar-width: none;
  -ms-overflow-style: none;
}
#fontGrid::-webkit-scrollbar,
#fontGrid *::-webkit-scrollbar{
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

/* ---- Effets compacts par carte ---- */
.fx-tile-grid{grid-template-columns:1fr !important;gap:10px}
.fx-card{display:grid;gap:8px}
.fx-inline-panel{
  display:none;
  padding:12px;
  border:1px solid rgba(212,175,55,.16);
  border-radius:14px;
  background:rgba(17,17,22,.72);
}
.fx-inline-panel.is-open{display:grid;gap:10px}
.fx-inline-note{font-size:13px;color:#cfd2dc}
.fx-reset-wrap{padding-top:8px}
#panel-effects .image-slider-row{grid-template-columns:92px 1fr 84px !important}
#panel-effects .row2.image-slider-row input[type="file"]{max-width:100%;min-width:0}
#panel-effects .row2.image-slider-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.context-warning{
  margin-top:10px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(212,175,55,.22);
  background:rgba(212,175,55,.08);
  color:var(--gold-2);
  font-size:12px;
  line-height:1.35;
}

.context-warning-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.context-warning-text{
  flex:1;
  min-width:0;
}

#textMotorWarningPanel .context-warning{
  margin-top:0;
}


/* ---- Transformation compacte ciblée ---- */
#panel-transform .tf-stack{
  display:grid;
  gap:10px;
}
#panel-transform .tf-card{
  display:grid;
  gap:8px;
}
#panel-transform .tf-inline-panel{
  display:none;
  padding:12px;
  border:1px solid rgba(212,175,55,.16);
  border-radius:14px;
  background:rgba(17,17,22,.72);
}
#panel-transform .tf-inline-panel.is-open{
  display:grid;
  gap:10px;
}
#panel-transform .tf-inline-note{
  font-size:13px;
  color:#cfd2dc;
}
#panel-transform .image-slider-row{
  grid-template-columns:92px 1fr 84px !important;
}

.stage-label,.stage-note{display:none !important}

.simple-mode-only{display:none}
.simple-presets-grid{
  grid-template-columns:1fr 1fr;
}
body.simple-mode .simple-mode-only{display:block !important}
body.simple-mode [data-advanced-only]{display:none !important}

body.simple-mode #panel-image [data-advanced-only]{display:none !important}
body.simple-mode #panel-quick{display:none !important}
body.simple-mode [data-panel="quick"]{display:none !important}
body.simple-mode #simpleEffectsSection,
body.simple-mode #simpleTransformSection{display:block !important}
body.simple-mode #panel-effects .section:not(#simpleEffectsSection){display:none !important}
body.simple-mode #panel-transform .section:not(#simpleTransformSection){display:none !important}

.simple-effect-color-row{
  margin-bottom:10px;
}
.simple-effect-color-row input[type="color"]{
  width:100%;
  height:36px;
  padding:2px;
  border-radius:8px;
  border:1px solid var(--line);
  background:#111116;
}

body.simple-mode [data-advanced-only="text-vertical-btn"],
body.simple-mode [data-advanced-only="text-delete-btn"]{
  display:none !important;
}

body.simple-mode #deleteTextBtn,
body.simple-mode [data-advanced-only="text-delete-btn"]{
  display:none !important;
}


#tshirtOrientationWrap{margin-top:12px;}


.nts-admin-inline-field{display:flex;flex-direction:column;gap:6px}
.nts-admin-inline-field span{font-size:12px;opacity:.85}
.nts-admin-inline-field select{width:100%}

#panel-download .hint{font-size:12px;opacity:.8}
body.simple-mode [data-advanced-only="download-dock-btn"],
body.simple-mode [data-advanced-only="download-panel"]{display:none !important}


/* =========================================================
 * Download panel - safe visual refresh
 * ========================================================= */
#panel-download .section{
  border:1px solid rgba(212,175,55,.16);
  border-radius:14px;
  background:rgba(255,255,255,.03);
  padding:14px;
}
#panel-download .row2{
  gap:12px;
}
#panel-download label{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:12px;
  font-weight:600;
  opacity:.92;
}
#panel-download select{
  width:100%;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  padding:11px 34px 11px 12px;
  border-radius:12px;
  border:1px solid rgba(212,175,55,.24);
  background:rgba(17,24,39,.92);
  color:#fff;
  font:inherit;
  line-height:1.2;
  outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02);
}
#panel-download select:focus{
  border-color:rgba(212,175,55,.58);
  box-shadow:0 0 0 3px rgba(212,175,55,.14);
}
#panel-download .btn{
  margin-top:14px;
}


/* Studio saved designs */
.nts-projects-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}
.nts-project-card{border:1px solid rgba(212,175,55,.18);border-radius:14px;background:rgba(255,255,255,.03);overflow:hidden}
.nts-project-card__preview{height:128px;background:rgba(17,24,39,.92);display:flex;align-items:center;justify-content:center;border-bottom:1px solid rgba(212,175,55,.12)}
.nts-project-card__preview img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.nts-project-card__body{padding:12px;display:flex;flex-direction:column;gap:8px}
.nts-project-card__title{font-weight:700}
.nts-project-card__meta{font-size:12px;opacity:.82}
.nts-project-card__actions{display:flex;gap:8px;flex-wrap:wrap}
.nts-project-empty{font-size:13px;opacity:.84;padding:8px 10px}


/* Text context alignment buttons */
#textContextBar .icon-toggle-btn{
  min-width: 42px;
}

/* =========================================================
 * netteeshirt Studio UI Refresh v1.4.5.37
 * Objectif : interface plus moderne, moins aspect HTML natif.
 * Patch visuel uniquement : ne modifie pas le moteur arc/texture.
 * ========================================================= */
:root{
  --ui-glass:rgba(255,255,255,.045);
  --ui-glass-2:rgba(255,255,255,.075);
  --ui-line:rgba(255,255,255,.105);
  --ui-gold-soft:rgba(212,175,55,.17);
  --ui-gold-line:rgba(212,175,55,.34);
  --ui-blue-soft:rgba(91,141,255,.16);
}

/* 1. Base plus premium */
body{
  background:
    radial-gradient(circle at 18% 0%, rgba(212,175,55,.12), transparent 34%),
    radial-gradient(circle at 90% 12%, rgba(91,141,255,.10), transparent 28%),
    linear-gradient(180deg,#060608 0%,#0d0d12 100%);
}
.topbar{
  min-height:76px;
  border-bottom:1px solid rgba(212,175,55,.18);
  background:linear-gradient(180deg,rgba(17,17,22,.96),rgba(9,9,12,.92));
  box-shadow:0 14px 40px rgba(0,0,0,.34);
}
.brand-badge{
  border-radius:16px;
  box-shadow:0 12px 36px rgba(212,175,55,.16), inset 0 1px 0 rgba(255,255,255,.35);
}

/* 2. Boutons modernes */
.btn,.chip,.tile-btn,.dock-btn,.layer-icon-btn,.font-card,.text-item,.layer-item{
  position:relative;
  overflow:hidden;
  border-color:var(--ui-line);
  background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.028));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055), 0 10px 24px rgba(0,0,0,.12);
}
.btn::before,.chip::before,.tile-btn::before,.dock-btn::before,.upload-hero-btn::before,.modern-file-trigger::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  background:radial-gradient(circle at 30% 0%,rgba(255,255,255,.18),transparent 42%);
  transition:opacity .18s ease;
}
.btn:hover::before,.chip:hover::before,.tile-btn:hover::before,.dock-btn:hover::before,.upload-hero-btn:hover::before,.modern-file-trigger:hover::before{opacity:1}
.btn:hover,.chip:hover,.tile-btn:hover,.dock-btn:hover,.layer-icon-btn:hover{
  transform:translateY(-1px);
  border-color:rgba(212,175,55,.28);
}
.btn.primary{
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(135deg,#ffe89a 0%,#d4af37 48%,#a77f19 100%);
  box-shadow:0 16px 34px rgba(212,175,55,.20), inset 0 1px 0 rgba(255,255,255,.45);
}
.btn.small{
  min-height:38px;
}
.btn.active,.chip.active,.tile-btn.active,.dock-btn.active,.text-item.active,.layer-item.active,.img-effect-btn.active{
  background:linear-gradient(180deg,rgba(212,175,55,.20),rgba(212,175,55,.085));
  border-color:var(--ui-gold-line);
  color:#ffe89a;
  box-shadow:0 12px 28px rgba(212,175,55,.10), inset 0 1px 0 rgba(255,255,255,.08);
}

/* 3. Panneaux / sections */
.panel-column,.dock{
  background:linear-gradient(180deg,rgba(22,22,30,.96),rgba(12,12,17,.96));
}
.panel-head{
  padding:18px 18px 14px;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,0));
}
.panel-title{
  font-size:1.05rem;
  letter-spacing:.01em;
}
.panel-body{
  padding:18px;
}
.section{
  border-color:var(--ui-line);
  background:linear-gradient(180deg,rgba(255,255,255,.052),rgba(255,255,255,.024));
  border-radius:22px;
  box-shadow:0 14px 36px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.045);
}
.section h3{
  font-size:.95rem;
  letter-spacing:.02em;
}
.section-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.section-subtitle{
  margin:4px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
}

/* 4. Champs, select, textarea : aspect application */
.field,.select,.textarea,.mini-select,.mini-input,.mini-color,
.image-slider-row input[type="number"],.left-panel-controls input[type="number"],
#imageColorizeAlpha,#imageColorizeAlphaMirror{
  border-color:var(--ui-line);
  background:linear-gradient(180deg,rgba(8,8,12,.92),rgba(18,18,24,.92));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
  outline:none;
}
.field:focus,.select:focus,.textarea:focus,.mini-select:focus,.mini-input:focus,
.image-slider-row input[type="number"]:focus,.left-panel-controls input[type="number"]:focus{
  border-color:rgba(212,175,55,.52);
  box-shadow:0 0 0 3px rgba(212,175,55,.12), inset 0 1px 0 rgba(255,255,255,.05);
}
input[type="range"]{
  accent-color:var(--gold);
  cursor:pointer;
}
input[type="color"]{
  border-radius:12px !important;
  overflow:hidden;
  cursor:pointer;
}

/* 5. Import image : grande carte moderne */
.ui-upload-section{
  padding:16px;
}
.upload-hero-btn{
  width:100%;
  min-height:86px;
  display:grid;
  grid-template-columns:48px 1fr;
  align-items:center;
  gap:14px;
  text-align:left;
  border-radius:22px;
  padding:16px;
  color:#101014;
}
.upload-hero-icon{
  width:48px;
  height:48px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:rgba(0,0,0,.14);
  color:#111;
  font-size:28px;
  font-weight:900;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.30);
}
.upload-hero-btn strong,
.modern-file-trigger strong{
  display:block;
  font-size:14px;
  line-height:1.2;
}
.upload-hero-btn em,
.modern-file-trigger em{
  display:block;
  margin-top:4px;
  font-style:normal;
  font-size:12px;
  opacity:.74;
  line-height:1.25;
}

/* 6. Import texture : remplace le input file natif */
.texture-upload-card{
  display:block;
}
.modern-file-input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.modern-file-trigger{
  position:relative;
  display:grid;
  grid-template-columns:44px 1fr;
  align-items:center;
  gap:12px;
  min-height:72px;
  padding:14px;
  border-radius:20px;
  border:1px dashed rgba(212,175,55,.34);
  background:linear-gradient(180deg,rgba(212,175,55,.105),rgba(255,255,255,.028));
  cursor:pointer;
  color:var(--text);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055);
}
.modern-file-trigger:hover{
  border-color:rgba(212,175,55,.58);
  transform:translateY(-1px);
}
.modern-file-icon{
  width:44px;
  height:44px;
  border-radius:15px;
  display:grid;
  place-items:center;
  color:#151515;
  background:linear-gradient(135deg,#ffe89a,#d4af37);
  box-shadow:0 10px 20px rgba(212,175,55,.14), inset 0 1px 0 rgba(255,255,255,.42);
  font-weight:900;
}

/* 7. Radios / checks modernisés */
.inline-check{
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:9px 10px;
  border-radius:14px;
  border:1px solid var(--ui-line);
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.026));
  cursor:pointer;
  color:var(--text);
  font-size:12px;
  font-weight:700;
}
.inline-check input{
  accent-color:var(--gold);
}
.inline-check:has(input:checked){
  border-color:var(--ui-gold-line);
  color:#ffe89a;
  background:linear-gradient(180deg,rgba(212,175,55,.18),rgba(212,175,55,.07));
}

/* 8. Effets / cartes */
.fx-card{
  border-radius:20px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.10);
  padding:8px;
}
.fx-inline-panel{
  border-radius:16px;
  background:rgba(0,0,0,.12);
  border-color:rgba(255,255,255,.07);
}
.fx-tile-grid,.tile-grid{
  gap:10px;
}

/* 9. Canvas stage plus propre */
.canvas-area{
  background:
    radial-gradient(circle at 50% 0%, rgba(212,175,55,.09), transparent 30%),
    radial-gradient(circle at 90% 90%, rgba(91,141,255,.08), transparent 34%),
    #101015;
}
.print-stage{
  border-radius:30px;
  border-color:rgba(212,175,55,.28);
  box-shadow:0 22px 70px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.025);
}
.contextbar{
  background:linear-gradient(180deg,rgba(24,24,31,.94),rgba(13,13,18,.94));
  border-color:rgba(212,175,55,.20);
}

/* 10. Scrollbar invisible mais scroll fonctionnel */
.panel-body,.font-grid,.layer-list,.status-box{
  scrollbar-width:none;
}
.panel-body::-webkit-scrollbar,.font-grid::-webkit-scrollbar,.layer-list::-webkit-scrollbar,.status-box::-webkit-scrollbar{
  width:0;
  height:0;
}

@media (max-width:860px){
  .topbar{gap:10px;padding:12px}
  .top-actions{gap:6px}
  .btn.small{padding:8px 9px}
  .upload-hero-btn{min-height:76px;grid-template-columns:42px 1fr}
  .upload-hero-icon{width:42px;height:42px;border-radius:14px}
}


/* =========================================================
   PREMIUM SOFT GOLD UI — NETTEESHIRT STABLE IDENTITY
   Version UI: 2026-05-17 / v1.4.5.38
   Objectif: stabiliser l'interface sur la direction validée
   Noir & or premium, soft glass, boutons arrondis, menus premium,
   zones d'import modernes, scrollbars invisibles.
   ========================================================= */

/* 1. Tokens Premium Soft Gold */
:root{
  --bg:#060606;
  --panel:#111111;
  --panel-2:#181714;
  --line:rgba(255,255,255,.105);
  --text:#f8f0dc;
  --muted:#a99f8f;
  --gold:#d4af37;
  --gold-2:#f4de8a;
  --gold-3:#fff0b8;
  --ok:#8ee8a8;
  --shadow:0 20px 70px rgba(0,0,0,.46);
  --radius:22px;

  --ntpsg-bg:#060606;
  --ntpsg-bg-soft:#10100f;
  --ntpsg-panel:rgba(18,18,18,.94);
  --ntpsg-panel-2:rgba(27,25,20,.94);
  --ntpsg-glass:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.026));
  --ntpsg-gold-glass:linear-gradient(180deg,rgba(212,175,55,.18),rgba(212,175,55,.055));
  --ntpsg-gold-solid:linear-gradient(180deg,#f5df8d,#d4af37);
  --ntpsg-line:rgba(255,255,255,.10);
  --ntpsg-line-soft:rgba(255,255,255,.075);
  --ntpsg-line-gold:rgba(212,175,55,.34);
  --ntpsg-line-gold-strong:rgba(244,222,138,.62);
  --ntpsg-text:#f8f0dc;
  --ntpsg-muted:#a99f8f;
  --ntpsg-gold:#d4af37;
  --ntpsg-gold-2:#f4de8a;
  --ntpsg-gold-3:#fff0b8;
  --ntpsg-dark:#070707;
  --ntpsg-radius-xl:28px;
  --ntpsg-radius-lg:22px;
  --ntpsg-radius-md:16px;
  --ntpsg-radius-sm:12px;
  --ntpsg-shadow:0 20px 70px rgba(0,0,0,.46);
  --ntpsg-shadow-soft:0 14px 38px rgba(0,0,0,.28);
}

/* 2. Fond général premium */
html,body{
  background:
    radial-gradient(circle at 0% 0%, rgba(212,175,55,.16), transparent 34%),
    radial-gradient(circle at 100% 100%, rgba(212,175,55,.07), transparent 38%),
    linear-gradient(145deg,#050505,#11100e 48%,#050505) !important;
  color:var(--ntpsg-text) !important;
}
body,button,input,select,textarea{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}

/* 3. Topbar Premium Soft Gold */
.topbar{
  min-height:76px;
  border-bottom:1px solid var(--ntpsg-line-gold) !important;
  background:
    radial-gradient(circle at top left, rgba(212,175,55,.13), transparent 32%),
    linear-gradient(180deg,rgba(18,18,18,.96),rgba(7,7,7,.94)) !important;
  backdrop-filter:blur(18px);
  box-shadow:0 12px 36px rgba(0,0,0,.36);
}
.brand{letter-spacing:-.02em;color:var(--ntpsg-text)}
.brand-badge{
  border-radius:16px !important;
  background:var(--ntpsg-gold-solid) !important;
  color:#090909 !important;
  box-shadow:0 12px 28px rgba(212,175,55,.18), inset 0 1px 0 rgba(255,255,255,.45) !important;
}

/* 4. Boutons principaux — Premium Gold Icon */
.btn,.chip,.tile-btn,.text-item,.font-card,.layer-item,.dock-btn,.tool-btn{
  border:1px solid var(--ntpsg-line) !important;
  background:var(--ntpsg-glass) !important;
  color:var(--ntpsg-text) !important;
  border-radius:var(--ntpsg-radius-md) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055), 0 10px 24px rgba(0,0,0,.16);
  transition:transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease, color .16s ease !important;
}
.btn:hover,.chip:hover,.tile-btn:hover,.text-item:hover,.font-card:hover,.layer-item:hover,.dock-btn:hover,.tool-btn:hover{
  transform:translateY(-1px);
  border-color:var(--ntpsg-line-gold) !important;
  background:var(--ntpsg-gold-glass) !important;
  box-shadow:0 14px 32px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.08);
}
.btn:active,.chip:active,.tile-btn:active,.dock-btn:active{transform:translateY(0)}
.btn.primary,.upload-hero-btn{
  border-color:rgba(255,255,255,.22) !important;
  background:var(--ntpsg-gold-solid) !important;
  color:#090909 !important;
  font-weight:900 !important;
  box-shadow:0 12px 28px rgba(212,175,55,.18), inset 0 1px 0 rgba(255,255,255,.48) !important;
}
.btn.active,.chip.active,.tile-btn.active,.dock-btn.active,.text-item.active,.font-card.active,.layer-item.active,.toggle-btn.is-on{
  color:var(--ntpsg-gold-3) !important;
  border-color:var(--ntpsg-line-gold-strong) !important;
  background:linear-gradient(180deg,rgba(212,175,55,.22),rgba(212,175,55,.075)) !important;
  box-shadow:0 0 0 3px rgba(212,175,55,.07), inset 0 1px 0 rgba(255,255,255,.08) !important;
}
.btn.small{border-radius:14px !important;font-weight:800}
.icon-toggle-btn{border-radius:14px !important}

/* 5. Dock / panneau gauche */
.workspace{grid-template-columns:78px 1fr}
.dock{
  border-right:1px solid var(--ntpsg-line-gold) !important;
  background:
    radial-gradient(circle at top,rgba(212,175,55,.10),transparent 36%),
    linear-gradient(180deg,rgba(18,18,18,.96),rgba(9,9,9,.96)) !important;
  gap:11px;
}
.dock-btn{
  width:56px;height:56px;
  font-size:1.12rem;
}

/* 6. Colonnes et panneaux */
.main-area{grid-template-columns:330px 1fr}
.panel-column{
  background:
    linear-gradient(180deg,rgba(18,18,18,.96),rgba(13,12,10,.96)) !important;
  border-right:1px solid var(--ntpsg-line-gold) !important;
}
.panel-head{
  border-bottom:1px solid var(--ntpsg-line) !important;
  background:radial-gradient(circle at top right,rgba(212,175,55,.12),transparent 44%) !important;
  padding:18px 18px 14px !important;
}
.panel-title{
  color:var(--ntpsg-gold-2) !important;
  font-size:1.05rem !important;
  letter-spacing:.01em;
}
.panel-body{padding:18px !important}
.section,.ui-card,.fx-card{
  border:1px solid var(--ntpsg-line) !important;
  border-radius:var(--ntpsg-radius-lg) !important;
  background:
    radial-gradient(circle at top right,rgba(212,175,55,.085),transparent 38%),
    linear-gradient(180deg,rgba(255,255,255,.058),rgba(255,255,255,.024)) !important;
  box-shadow:var(--ntpsg-shadow-soft), inset 0 1px 0 rgba(255,255,255,.055) !important;
}
.section h3{
  color:var(--ntpsg-gold-2) !important;
  font-weight:900 !important;
  letter-spacing:.015em;
}
.hint,.subline,.font-meta,.section-subtitle{color:var(--ntpsg-muted) !important}

/* 7. Champs texte / inputs */
.field,.textarea,.mini-input,.mini-color,.image-slider-row input[type="number"],.left-panel-controls input[type="number"],#imageColorizeAlpha,#imageColorizeAlphaMirror{
  color:var(--ntpsg-text) !important;
  border:1px solid var(--ntpsg-line) !important;
  border-radius:var(--ntpsg-radius-md) !important;
  background:linear-gradient(180deg,rgba(8,8,8,.94),rgba(18,17,15,.94)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045) !important;
  outline:none !important;
}
.field:focus,.textarea:focus,.mini-input:focus,.image-slider-row input[type="number"]:focus,.left-panel-controls input[type="number"]:focus{
  border-color:var(--ntpsg-line-gold-strong) !important;
  box-shadow:0 0 0 3px rgba(212,175,55,.12), inset 0 1px 0 rgba(255,255,255,.06) !important;
}
input[type="range"]{accent-color:var(--ntpsg-gold);cursor:pointer}
input[type="color"]{border-radius:14px !important;cursor:pointer;overflow:hidden}

/* 8. Menus déroulants Premium Soft Gold */
.select,.mini-select,.tool-select select,select{
  appearance:none !important;
  -webkit-appearance:none !important;
  color:var(--ntpsg-text) !important;
  border:1px solid var(--ntpsg-line-gold) !important;
  border-radius:var(--ntpsg-radius-md) !important;
  background:
    linear-gradient(180deg,rgba(212,175,55,.13),rgba(212,175,55,.035)),
    #0a0a0a !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055), 0 10px 24px rgba(0,0,0,.16) !important;
  font-weight:800 !important;
  cursor:pointer;
  outline:none !important;
  background-image:
    linear-gradient(180deg,rgba(212,175,55,.13),rgba(212,175,55,.035)),
    linear-gradient(45deg,transparent 50%,var(--ntpsg-gold-2) 50%),
    linear-gradient(135deg,var(--ntpsg-gold-2) 50%,transparent 50%) !important;
  background-position:
    0 0,
    calc(100% - 19px) 50%,
    calc(100% - 13px) 50% !important;
  background-size:
    100% 100%,
    6px 6px,
    6px 6px !important;
  background-repeat:no-repeat !important;
  padding-right:42px !important;
}
select option{background:#111 !important;color:#f8f0dc !important}
.select:focus,.mini-select:focus,.tool-select select:focus,select:focus{
  border-color:var(--ntpsg-line-gold-strong) !important;
  box-shadow:0 0 0 3px rgba(212,175,55,.12), inset 0 1px 0 rgba(255,255,255,.06) !important;
}

/* 9. Imports images / textures en cartes premium */
.ui-upload-section{padding:16px !important}
.upload-hero-btn{
  width:100%;
  min-height:92px;
  display:grid !important;
  grid-template-columns:52px 1fr;
  align-items:center;
  gap:15px;
  text-align:left;
  border-radius:24px !important;
  padding:17px !important;
}
.upload-hero-icon{
  width:52px;height:52px;
  border-radius:18px !important;
  display:grid;place-items:center;
  background:rgba(0,0,0,.16) !important;
  color:#0a0a0a !important;
  font-size:30px;font-weight:950;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.33) !important;
}
.upload-hero-btn strong,.modern-file-trigger strong{font-size:14px;font-weight:950}
.upload-hero-btn em,.modern-file-trigger em{font-style:normal;color:rgba(0,0,0,.70)}
.modern-file-trigger{
  border:1px dashed var(--ntpsg-line-gold-strong) !important;
  border-radius:22px !important;
  background:linear-gradient(180deg,rgba(212,175,55,.16),rgba(255,255,255,.035)) !important;
  color:var(--ntpsg-text) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 12px 30px rgba(0,0,0,.18) !important;
}
.modern-file-trigger:hover{transform:translateY(-1px);border-color:rgba(244,222,138,.78) !important}
.modern-file-icon{
  border-radius:16px !important;
  background:var(--ntpsg-gold-solid) !important;
  color:#0a0a0a !important;
  box-shadow:0 10px 20px rgba(212,175,55,.16), inset 0 1px 0 rgba(255,255,255,.44) !important;
}
.modern-file-trigger em{color:var(--ntpsg-muted) !important}

/* 10. Radios / choix texture en cartes premium */
.inline-check{
  border:1px solid var(--ntpsg-line) !important;
  border-radius:16px !important;
  background:var(--ntpsg-glass) !important;
  color:var(--ntpsg-text) !important;
  font-weight:850 !important;
}
.inline-check input{accent-color:var(--ntpsg-gold)}
.inline-check:has(input:checked){
  border-color:var(--ntpsg-line-gold-strong) !important;
  color:var(--ntpsg-gold-3) !important;
  background:var(--ntpsg-gold-glass) !important;
}

/* 11. Effets / grille / panneaux inline */
.fx-inline-panel{
  border:1px solid var(--ntpsg-line) !important;
  border-radius:18px !important;
  background:rgba(0,0,0,.16) !important;
}
.effects-grid,.tile-grid,.fx-tile-grid{gap:10px !important}

/* 12. Canvas et barre contextuelle */
.canvas-area{
  background:
    radial-gradient(circle at 50% 0%, rgba(212,175,55,.12), transparent 30%),
    radial-gradient(circle at 100% 100%, rgba(212,175,55,.06), transparent 35%),
    #0d0d0d !important;
}
.canvas-toolbar{
  border-bottom:1px solid var(--ntpsg-line-gold) !important;
  background:linear-gradient(180deg,rgba(12,12,12,.64),rgba(7,7,7,.40)) !important;
}
.contextbar{
  border:1px solid var(--ntpsg-line-gold) !important;
  border-radius:22px !important;
  background:
    radial-gradient(circle at top right,rgba(212,175,55,.10),transparent 42%),
    linear-gradient(180deg,rgba(22,22,22,.96),rgba(10,10,10,.94)) !important;
  box-shadow:var(--ntpsg-shadow-soft) !important;
}
.print-stage{
  border:1px solid rgba(212,175,55,.32) !important;
  border-radius:32px !important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.032),rgba(255,255,255,.014)),
    repeating-linear-gradient(0deg, transparent 0 39px, rgba(212,175,55,.035) 39px 40px),
    repeating-linear-gradient(90deg, transparent 0 39px, rgba(212,175,55,.035) 39px 40px) !important;
  box-shadow:0 24px 80px rgba(0,0,0,.48), 0 0 0 1px rgba(255,255,255,.024) !important;
}
.stage-label,.stage-note{
  border-color:var(--ntpsg-line) !important;
  background:rgba(8,8,8,.38) !important;
  color:var(--ntpsg-muted) !important;
  backdrop-filter:blur(10px);
}

/* 13. Statuts / messages */
.status{
  border:1px solid rgba(142,232,168,.26) !important;
  background:rgba(142,232,168,.10) !important;
  color:var(--ok) !important;
}
.status-box{
  border:1px solid var(--ntpsg-line) !important;
  background:rgba(0,0,0,.28) !important;
  color:#d7d0c0 !important;
  border-radius:14px !important;
}

/* 14. Menus rapides */
.quick-canvas-menu{
  border:1px solid var(--ntpsg-line-gold) !important;
  border-radius:22px !important;
  background:linear-gradient(180deg,rgba(22,22,22,.98),rgba(9,9,9,.98)) !important;
  box-shadow:var(--ntpsg-shadow) !important;
}
.quick-canvas-sep{background:var(--ntpsg-line) !important}

/* 15. Scrollbars invisibles mais scroll fonctionnel */
.panel-body,.font-grid,.layer-list,.status-box,.text-list,.quick-canvas-menu{
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
.panel-body::-webkit-scrollbar,.font-grid::-webkit-scrollbar,.layer-list::-webkit-scrollbar,.status-box::-webkit-scrollbar,.text-list::-webkit-scrollbar,.quick-canvas-menu::-webkit-scrollbar{
  width:0 !important;height:0 !important;
}

/* 16. Responsive */
@media (max-width:1000px){.main-area{grid-template-columns:300px 1fr}}
@media (max-width:860px){
  .workspace{grid-template-columns:66px 1fr}
  .main-area{grid-template-columns:1fr}
  .panel-column{border-right:none !important;border-bottom:1px solid var(--ntpsg-line-gold) !important}
  .topbar{padding:12px;gap:10px}
  .dock-btn{width:50px;height:50px;border-radius:16px !important}
  .upload-hero-btn{min-height:78px;grid-template-columns:44px 1fr}
  .upload-hero-icon{width:44px;height:44px;border-radius:15px !important}
}

/* =========================================================
   HOTFIX LAYOUT v1.4.5.39 — Premium Soft Gold compact stable
   Objectif : corriger les problèmes d'affichage dans l'iframe.
   - Topbar compacte qui ne pousse plus le canvas hors écran
   - Scroll interne restauré dans les panneaux
   - Dock scrollable si hauteur réduite
   - Canvas toujours visible sans obligation plein écran
   ========================================================= */

html,
body{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  overflow:hidden !important;
}

.app{
  width:100% !important;
  height:100dvh !important;
  min-height:0 !important;
  max-height:100dvh !important;
  display:grid !important;
  grid-template-rows:auto minmax(0,1fr) !important;
  overflow:hidden !important;
}

.topbar{
  min-height:58px !important;
  max-height:72px !important;
  padding:8px 12px !important;
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  overflow:hidden !important;
}

.brand{
  flex:0 0 auto !important;
  min-width:145px !important;
}

.brand-badge{
  width:34px !important;
  height:34px !important;
  border-radius:12px !important;
}

.top-actions,
.top-actions-right{
  min-width:0 !important;
  display:flex !important;
  align-items:center !important;
  flex-wrap:nowrap !important;
  gap:7px !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}

.top-actions::-webkit-scrollbar,
.top-actions-right::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}

.top-actions{
  flex:1 1 auto !important;
}

.top-actions-right{
  flex:0 1 auto !important;
  justify-content:flex-end !important;
}

.topbar .btn,
.topbar .btn.small{
  min-height:34px !important;
  padding:8px 10px !important;
  border-radius:12px !important;
  font-size:12px !important;
  white-space:nowrap !important;
  flex:0 0 auto !important;
}

.workspace{
  min-width:0 !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
  grid-template-columns:66px minmax(0,1fr) !important;
}

.dock{
  min-height:0 !important;
  height:100% !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:8px 7px 14px !important;
  gap:8px !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}

.dock::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}

.dock-btn{
  width:48px !important;
  height:48px !important;
  min-height:48px !important;
  border-radius:14px !important;
  flex:0 0 auto !important;
}

.main-area{
  min-width:0 !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
  grid-template-columns:300px minmax(0,1fr) !important;
}

.panel-column{
  min-width:0 !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
}

.panel-wrap{
  min-width:0 !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
}

.panel-wrap.active{
  display:flex !important;
}

.panel-head{
  flex:0 0 auto !important;
  padding:12px 14px 10px !important;
}

.panel-title{
  font-size:15px !important;
}

.panel-body{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:12px 14px 76px !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}

.panel-body::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}

.section,
.ui-card,
.fx-card{
  border-radius:18px !important;
  padding:12px !important;
  margin-bottom:12px !important;
}

.section h3{
  font-size:13px !important;
  margin-bottom:8px !important;
}

.stack{
  gap:8px !important;
}

.btn,
.chip,
.tile-btn,
.text-item,
.font-card,
.layer-item{
  min-height:34px;
}

.btn.small,
.chip{
  padding:8px 10px !important;
  font-size:12px !important;
}

.field,
.select,
.textarea,
.mini-select,
.mini-input,
.mini-color{
  min-height:36px !important;
  padding:9px 11px !important;
  border-radius:12px !important;
  font-size:13px !important;
}

.textarea{
  min-height:76px !important;
}

.canvas-area{
  min-width:0 !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
  display:grid !important;
  grid-template-rows:auto minmax(0,1fr) !important;
}

.canvas-toolbar{
  min-height:0 !important;
  max-height:122px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:8px 10px !important;
  gap:8px !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}

.canvas-toolbar::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}

.contextbar{
  min-height:0 !important;
  padding:8px 10px !important;
  border-radius:18px !important;
  gap:6px !important;
}

.context-top,
.context-row{
  gap:6px !important;
}

.contextbar .btn.small,
.contextbar .mini-select,
.contextbar .mini-input,
.contextbar .mini-color{
  min-height:32px !important;
  height:32px !important;
  font-size:12px !important;
}

.canvas-shell,
.workstage{
  min-width:0 !important;
  min-height:0 !important;
  width:100% !important;
  height:100% !important;
  overflow:hidden !important;
}

.canvas-shell{
  padding:8px !important;
}

.print-stage{
  max-width:100% !important;
  max-height:100% !important;
  border-radius:24px !important;
}

.upload-hero-btn{
  min-height:72px !important;
  grid-template-columns:42px minmax(0,1fr) !important;
  padding:12px !important;
  border-radius:18px !important;
}

.upload-hero-icon{
  width:42px !important;
  height:42px !important;
  border-radius:14px !important;
  font-size:24px !important;
}

.modern-file-trigger{
  min-height:64px !important;
  grid-template-columns:40px minmax(0,1fr) !important;
  padding:12px !important;
  border-radius:18px !important;
}

.modern-file-icon{
  width:40px !important;
  height:40px !important;
  border-radius:14px !important;
}

.font-grid{
  max-height:260px !important;
  overflow-y:auto !important;
}

.status-box{
  max-height:54px !important;
}

/* Largeur moyenne : panneau plus compact pour voir le canvas */
@media (max-width:1180px){
  .main-area{grid-template-columns:280px minmax(0,1fr) !important;}
  .brand{min-width:118px !important;}
  .brand .subline{display:none !important;}
}

/* Tablette / petite fenêtre : le panneau devient horizontalement plus compact */
@media (max-width:920px){
  html,body{overflow:hidden !important;}
  .app{height:100dvh !important;min-height:0 !important;}
  .topbar{max-height:92px !important;align-items:flex-start !important;flex-wrap:wrap !important;}
  .brand{min-width:auto !important;}
  .top-actions{order:3;flex-basis:100% !important;}
  .workspace{grid-template-columns:58px minmax(0,1fr) !important;}
  .dock-btn{width:42px !important;height:42px !important;min-height:42px !important;}
  .main-area{grid-template-columns:260px minmax(0,1fr) !important;}
  .panel-body{padding-bottom:92px !important;}
}

@media (max-width:760px){
  .main-area{grid-template-columns:1fr !important;grid-template-rows:minmax(190px,42vh) minmax(0,1fr) !important;}
  .panel-column{border-right:none !important;border-bottom:1px solid var(--ntpsg-line-gold) !important;}
  .canvas-toolbar{max-height:96px !important;}
}

/* =========================================================
   HOTFIX LISIBILITÉ v1.4.5.40 — Premium Soft Gold balanced
   Objectif : garder le layout .39 fonctionnel, mais agrandir
   les contrôles trop petits : couleurs, champs, mini-boutons,
   labels et zones cliquables.
   ========================================================= */

:root{
  --ntpsg-readable-control-h:40px;
  --ntpsg-readable-mini-h:38px;
  --ntpsg-readable-color-h:44px;
  --ntpsg-readable-radius:14px;
}

/* 1. Typographie panneau : un peu plus lisible sans agrandir toute l’interface */
.panel-body,
.section,
.stack{
  font-size:14px !important;
}

.section h3,
.panel-title{
  font-size:1.02rem !important;
  line-height:1.25 !important;
}

.hint,
.section-subtitle,
.subline{
  font-size:13px !important;
  line-height:1.45 !important;
}

.left-panel-controls label,
.image-slider-row label,
.select-label,
.field-label{
  font-size:13px !important;
  line-height:1.25 !important;
  font-weight:800 !important;
  color:#fff4cf !important;
}

/* 2. Boutons principaux et chips : plus confortables */
.btn,
.chip,
.tile-btn,
.text-item,
.layer-item,
.font-card{
  min-height:var(--ntpsg-readable-control-h) !important;
  padding:11px 14px !important;
  font-size:14px !important;
  line-height:1.2 !important;
}

.btn.small,
.contextbar .btn.small,
.inline-check{
  min-height:var(--ntpsg-readable-mini-h) !important;
  height:auto !important;
  padding:9px 12px !important;
  font-size:13px !important;
  line-height:1.2 !important;
  border-radius:13px !important;
}

/* 3. Champs et menus : plus hauts et plus lisibles */
.field,
.select,
.textarea,
.mini-select,
.mini-input,
.image-slider-row input[type="number"],
.left-panel-controls input[type="number"],
#imageColorizeAlpha,
#imageColorizeAlphaMirror{
  min-height:var(--ntpsg-readable-control-h) !important;
  height:auto !important;
  padding:10px 12px !important;
  font-size:14px !important;
  border-radius:var(--ntpsg-readable-radius) !important;
}

.contextbar .mini-select,
.contextbar .mini-input{
  min-height:var(--ntpsg-readable-mini-h) !important;
  height:var(--ntpsg-readable-mini-h) !important;
  font-size:13px !important;
  padding:8px 10px !important;
}

.mini-select{
  min-width:138px !important;
}

.mini-input{
  width:82px !important;
}

/* 4. Couleurs : gros point important signalé par Mika */
input[type="color"],
.mini-color,
.left-panel-controls input[type="color"],
#imageColorizeColor,
#imageColorizeColorMirror,
.simple-effect-color-row input[type="color"]{
  width:58px !important;
  min-width:58px !important;
  height:var(--ntpsg-readable-color-h) !important;
  min-height:var(--ntpsg-readable-color-h) !important;
  padding:3px !important;
  border-radius:14px !important;
  border:1px solid rgba(212,175,55,.42) !important;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.025)) !important;
  box-shadow:0 8px 20px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.08) !important;
}

.contextbar .mini-color{
  width:52px !important;
  min-width:52px !important;
  height:38px !important;
  min-height:38px !important;
}

input[type="color"]::-webkit-color-swatch-wrapper{
  padding:0 !important;
}

input[type="color"]::-webkit-color-swatch{
  border:none !important;
  border-radius:10px !important;
}

input[type="color"]::-moz-color-swatch{
  border:none !important;
  border-radius:10px !important;
}

/* 5. Sliders : hauteur et zone tactile plus confortables */
input[type="range"],
.mini-range,
.left-panel-controls input[type="range"],
.image-slider-row input[type="range"]{
  min-height:34px !important;
  height:34px !important;
}

.mini-range{
  width:160px !important;
}

/* 6. Lignes de réglage : conserver le layout .39, mais avec colonnes un peu plus lisibles */
.row3,
#panel-transform .image-slider-row,
.image-slider-row{
  gap:10px !important;
  align-items:center !important;
}

.left-panel-controls input[type="number"]{
  width:96px !important;
}

.image-slider-row input[type="number"],
#imageColorizeAlpha,
#imageColorizeAlphaMirror{
  width:92px !important;
}

/* 7. Cartes import : rester premium, mais texte plus lisible */
.upload-hero-btn strong,
.modern-file-trigger strong{
  font-size:15px !important;
  line-height:1.25 !important;
}

.upload-hero-btn em,
.modern-file-trigger em{
  font-size:13px !important;
  line-height:1.35 !important;
}

/* 8. Dock : garder compact mais pas minuscule */
.dock-btn{
  width:48px !important;
  height:48px !important;
  min-height:48px !important;
  border-radius:15px !important;
  font-size:1.05rem !important;
}

/* 9. Layout : on garde la correction .39, en ajoutant juste un peu de respiration */
.panel-body{
  padding:14px !important;
}

.section{
  padding:14px !important;
  margin-bottom:12px !important;
}

.canvas-toolbar{
  max-height:136px !important;
}

.contextbar{
  padding:9px 10px !important;
}

/* 10. Petite fenêtre : garder l’affichage complet prioritaire */
@media (max-width:920px){
  .btn,
  .chip,
  .tile-btn{
    min-height:38px !important;
    padding:9px 11px !important;
    font-size:13px !important;
  }

  input[type="color"],
  .mini-color,
  .left-panel-controls input[type="color"]{
    width:52px !important;
    min-width:52px !important;
    height:40px !important;
    min-height:40px !important;
  }

  .main-area{grid-template-columns:270px minmax(0,1fr) !important;}
  .canvas-toolbar{max-height:128px !important;}
}

@media (max-width:760px){
  .panel-body{padding:12px !important;}
  .section{padding:12px !important;}
  .canvas-toolbar{max-height:112px !important;}
}

/* =========================================================
   HOTFIX v1.4.5.41 — Topbar contextuelle fixe
   Objectif : empêcher le canvas de monter/descendre quand
   la barre contextuelle change selon l'outil ou la sélection.
   La zone reste réservée en permanence, avec scroll interne.
   ========================================================= */
:root{
  --ntpsg-contextbar-h:136px;
}

.canvas-area{
  grid-template-rows:var(--ntpsg-contextbar-h) minmax(0,1fr) !important;
}

.canvas-toolbar{
  height:var(--ntpsg-contextbar-h) !important;
  min-height:var(--ntpsg-contextbar-h) !important;
  max-height:var(--ntpsg-contextbar-h) !important;
  overflow:hidden !important;
  align-content:start !important;
  box-sizing:border-box !important;
}

.contextbar,
.toolbar-right,
.toolbar-empty{
  max-height:calc(var(--ntpsg-contextbar-h) - 18px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  scrollbar-width:none !important;
}

.contextbar::-webkit-scrollbar,
.toolbar-right::-webkit-scrollbar,
.toolbar-empty::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
}

/* Même sans sélection, la zone reste physiquement présente. */
.toolbar-empty{
  display:block !important;
  min-height:56px !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* Les barres cachées par JS ne doivent pas supprimer la hauteur globale. */
#textContextBar[style*="display:none"],
#imageContextBar[style*="display:none"]{
  display:none !important;
}

/* Responsive : hauteur réservée adaptée, mais toujours fixe. */
@media (max-width:920px){
  :root{--ntpsg-contextbar-h:128px;}
  .canvas-area{grid-template-rows:var(--ntpsg-contextbar-h) minmax(0,1fr) !important;}
  .canvas-toolbar{
    height:var(--ntpsg-contextbar-h) !important;
    min-height:var(--ntpsg-contextbar-h) !important;
    max-height:var(--ntpsg-contextbar-h) !important;
  }
}

@media (max-width:760px){
  :root{--ntpsg-contextbar-h:118px;}
  .canvas-area{grid-template-rows:var(--ntpsg-contextbar-h) minmax(0,1fr) !important;}
  .canvas-toolbar{
    height:var(--ntpsg-contextbar-h) !important;
    min-height:var(--ntpsg-contextbar-h) !important;
    max-height:var(--ntpsg-contextbar-h) !important;
  }
}


/* =========================================================
   HOTFIX v1.4.5.43 — Restauration plein écran après import
   ---------------------------------------------------------
   Bouton affiché uniquement si le navigateur refuse de revenir
   automatiquement en plein écran après le sélecteur de fichiers.
   ========================================================= */
.nts-restore-fullscreen-btn{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:99999;
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid rgba(212,175,55,.48);
  color:#101010;
  background:linear-gradient(180deg,#f5df8d,#d4af37);
  box-shadow:0 18px 48px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.28);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:14px;
  font-weight:900;
  letter-spacing:-.01em;
  cursor:pointer;
}
.nts-restore-fullscreen-btn[hidden]{display:none!important;}
.nts-restore-fullscreen-btn:hover{filter:brightness(1.05);transform:translateY(-1px);}

/* =========================================================
   HOTFIX v1.4.5.46 — Déformation image native Fabric
   ---------------------------------------------------------
   - Contrôles plus lisibles pour scaleX / scaleY / skewX / skewY / angle
   - Aucun moteur custom : uniquement propriétés Fabric natives
   ========================================================= */
.nt-image-deform-section {
  border-color: rgba(212, 175, 55, .34) !important;
  background: linear-gradient(145deg, rgba(212,175,55,.08), rgba(255,255,255,.035)) !important;
}

.nt-image-deform-section .section-subtitle {
  margin: -4px 0 12px;
  color: rgba(246, 240, 220, .70);
  font-size: 12px;
  line-height: 1.45;
}

.nt-image-deform-section .image-slider-row label {
  min-width: 92px;
}

.nt-image-deform-section input[type="number"] {
  min-width: 72px;
}

.nt-pulse-soft {
  animation: ntPulseSoftGold .85s ease-out 1;
}

@keyframes ntPulseSoftGold {
  0% { box-shadow: 0 0 0 0 rgba(212,175,55,.0); }
  28% { box-shadow: 0 0 0 4px rgba(212,175,55,.20), 0 0 28px rgba(212,175,55,.18); }
  100% { box-shadow: 0 0 0 0 rgba(212,175,55,.0); }
}

/* =========================================================
   11.8 - Zones image masquées — Premium Soft Gold
   ========================================================= */
.nt-mask-zone-section,
.nt-mask-zone-controls {
  border-color: rgba(212, 175, 55, 0.28) !important;
  background:
    radial-gradient(circle at top left, rgba(212, 175, 55, 0.11), transparent 42%),
    linear-gradient(145deg, rgba(22,22,22,.94), rgba(9,9,9,.94)) !important;
}

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

.mask-shape-grid .btn {
  min-height: 42px;
  justify-content: center;
  border-color: rgba(212, 175, 55, 0.35);
  background: linear-gradient(180deg, rgba(212,175,55,.13), rgba(255,255,255,.035));
}

.mask-zone-hint,
.mask-zone-status {
  margin: 12px 0 0;
  color: rgba(246, 240, 220, 0.72);
  font-size: 12px;
  line-height: 1.45;
}

.mask-zone-status {
  padding: 10px 12px;
  border: 1px solid rgba(212, 175, 55, 0.22);
  border-radius: 14px;
  background: rgba(0,0,0,.18);
}

.nt-mask-zone-controls select.mini-select {
  min-height: 40px;
  padding: 0 12px;
  border-radius: 12px;
  border: 1px solid rgba(212,175,55,.32);
  color: #f6f0dc;
  background: #0d0d0d;
  font-weight: 800;
}

.nt-mask-zone-controls .danger {
  border-color: rgba(255, 112, 112, 0.32) !important;
  color: #ffd5d5 !important;
  background: rgba(255, 68, 68, 0.08) !important;
}

/* =========================================================
   11.9 - Panneau Image en sous-panneaux — Premium Soft Gold
   ---------------------------------------------------------
   Objectif UX : éviter un long scroll dans Image. Chaque bouton
   ouvre un panneau court : importer, catalogue, zones, réglages,
   effets, etc.
   ========================================================= */
#panel-image .panel-body {
  padding-top: 14px;
}

.nt-image-panel-switcher {
  position: sticky;
  top: 0;
  z-index: 30;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  padding: 12px;
  margin: -2px 0 14px;
  border: 1px solid rgba(212, 175, 55, .24);
  border-radius: 22px;
  background:
    radial-gradient(circle at top right, rgba(212,175,55,.12), transparent 42%),
    linear-gradient(145deg, rgba(20,20,20,.98), rgba(8,8,8,.96));
  box-shadow: 0 14px 38px rgba(0,0,0,.34);
  backdrop-filter: blur(12px);
}

.nt-image-panel-tab {
  min-height: 42px;
  border: 1px solid rgba(212, 175, 55, .26);
  border-radius: 14px;
  padding: 9px 10px;
  color: #f7f0dc;
  background: linear-gradient(180deg, rgba(212,175,55,.10), rgba(255,255,255,.035));
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 850;
  line-height: 1.1;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 7px 18px rgba(0,0,0,.20);
  transition: transform .15s ease, border-color .15s ease, background .15s ease, color .15s ease;
}

.nt-image-panel-tab:hover {
  transform: translateY(-1px);
  border-color: rgba(243, 218, 132, .55);
}

.nt-image-panel-tab.is-active {
  color: #111;
  border-color: rgba(255,255,255,.18);
  background: linear-gradient(180deg, #f3da84, #d4af37);
  box-shadow: 0 10px 26px rgba(212,175,55,.16);
}

#panel-image [data-image-tool-panel] {
  display: none;
  animation: ntImagePanelFade .18s ease both;
}

#panel-image [data-image-tool-panel].is-active {
  display: block;
}

#panel-image [data-image-tool-panel][hidden] {
  display: none !important;
}

@keyframes ntImagePanelFade {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

#panel-image .section.is-active,
#panel-image [data-image-tool-panel].is-active {
  border-color: rgba(212,175,55,.32);
}

.nt-mask-zone-controls .stack,
.nt-image-deform-section .stack,
#panel-image [data-image-tool-panel="adjustments"] .stack,
#panel-image [data-image-tool-panel="colorize"] .stack,
#panel-image [data-image-tool-panel="basic-transform"] .stack {
  gap: 14px;
}

@media (max-width: 860px) {
  .nt-image-panel-switcher {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 10px;
  }

  .nt-image-panel-tab {
    min-height: 44px;
    font-size: 12px;
  }
}

/* =========================================================
   HOTFIX v1.4.5.50 — Lisibilité / anti-débordement Zones image
   ---------------------------------------------------------
   - Corrige le panneau « Réglages zone image » qui débordait
     horizontalement dans le panneau Image.
   - Garde l’UX par boutons validée en v1.4.5.48.
   - Ne touche pas au moteur masque/clipPath Fabric.
   ========================================================= */

@media (min-width: 1001px) {
  .main-area {
    grid-template-columns: 340px minmax(0, 1fr) !important;
  }
}

#panel-image,
#panel-image * {
  min-width: 0;
}

#panel-image .panel-body {
  overflow-x: hidden !important;
}

.nt-mask-zone-controls {
  max-width: 100% !important;
  overflow: hidden !important;
}

.nt-mask-zone-controls .stack {
  gap: 12px !important;
}

.nt-mask-zone-controls .image-slider-row {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 8px !important;
  align-items: stretch !important;
}

.nt-mask-zone-controls .image-slider-row label {
  min-width: 0 !important;
  width: 100% !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
}

.nt-mask-zone-controls .image-slider-row input[type="range"] {
  width: 100% !important;
  min-width: 0 !important;
}

.nt-mask-zone-controls .image-slider-row input[type="number"] {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}

.nt-mask-zone-controls select.mini-select,
.nt-mask-zone-controls .mini-select {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.nt-mask-zone-controls .row2:not(.image-slider-row) {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 9px !important;
  width: 100% !important;
}

.nt-mask-zone-controls .row2:not(.image-slider-row) .btn {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 42px !important;
  padding: 9px 8px !important;
  white-space: normal !important;
  line-height: 1.15 !important;
  text-align: center !important;
  justify-content: center !important;
  overflow-wrap: anywhere !important;
}

.nt-mask-zone-controls #maskZoneReplaceBtn,
.nt-mask-zone-controls #maskZoneFitBtn,
.nt-mask-zone-controls #maskZoneDuplicateBtn,
.nt-mask-zone-controls #maskZoneDeleteBtn {
  font-size: 13px !important;
}

.mask-zone-status {
  width: 100% !important;
  overflow-wrap: anywhere !important;
}

@media (max-width: 520px) {
  .nt-mask-zone-controls .row2:not(.image-slider-row) {
    grid-template-columns: 1fr !important;
  }
}

/* =========================================================
   v1.4.5.50 — Zones image V2 : sous-panneaux, contours, effets
   ========================================================= */
.nt-mask-zone-v2{
  gap:12px !important;
  max-width:100%;
}
.nt-zone-subpanel{
  border:1px solid rgba(212,175,55,.22);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(0,0,0,.14));
  overflow:hidden;
}
.nt-zone-subpanel-head{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:44px;
  padding:12px 14px;
  border:0;
  color:#f3da84;
  background:rgba(212,175,55,.08);
  font-weight:900;
  font-family:inherit;
  cursor:pointer;
  text-align:left;
}
.nt-zone-subpanel-head::after{
  content:'⌄';
  color:#d4af37;
  font-size:18px;
  line-height:1;
}
.nt-zone-subpanel-body{
  display:none;
  padding:12px;
}
.nt-zone-subpanel-body.is-open{
  display:grid;
  gap:12px;
}
.nt-mask-zone-controls .row2,
.nt-mask-zone-v2 .row2{
  max-width:100%;
  min-width:0;
}
.nt-mask-zone-v2 .image-slider-row{
  grid-template-columns:minmax(86px,116px) minmax(0,1fr) minmax(58px,76px) !important;
  gap:9px !important;
  align-items:center;
}
.nt-mask-zone-v2 .image-slider-row label{
  min-width:0;
  white-space:normal;
  line-height:1.15;
}
.nt-mask-zone-v2 .image-slider-row input[type="range"]{
  min-width:0;
  width:100%;
}
.nt-mask-zone-v2 .image-slider-row input[type="number"],
.nt-mask-zone-v2 .image-slider-row input[type="color"],
.nt-mask-zone-v2 .image-slider-row select,
.nt-mask-zone-v2 .image-slider-row button{
  min-width:0;
  max-width:100%;
}
.nt-mask-zone-v2 .image-slider-row input[type="color"]{
  width:64px !important;
  height:42px !important;
  padding:4px !important;
  border-radius:14px !important;
}
.nt-mask-zone-v2 .mini-select{
  width:100%;
  min-width:0;
}
.nt-mask-zone-v2 .btn.small{
  min-height:42px;
  white-space:normal;
  line-height:1.1;
}
.mask-shape-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
@media (max-width:760px){
  .nt-mask-zone-v2 .image-slider-row{
    grid-template-columns:1fr !important;
  }
  .nt-mask-zone-v2 .image-slider-row input[type="number"],
  .nt-mask-zone-v2 .image-slider-row input[type="color"],
  .nt-mask-zone-v2 .image-slider-row select,
  .nt-mask-zone-v2 .image-slider-row button{
    width:100% !important;
  }
}

/* =========================================================
   v1.4.5.51 — Masques : rectangles H/V + effets image complets
   ========================================================= */
.mask-effects-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.mask-effects-grid .btn.small{
  min-height:38px;
  padding:8px 10px;
}
.mask-effects-grid .btn.small.active,
.mask-effect-btn.active{
  border-color:rgba(243,218,132,.75) !important;
  color:#120f05 !important;
  background:linear-gradient(180deg,#f4df8d,#d4af37) !important;
  box-shadow:0 10px 24px rgba(212,175,55,.16);
}
@media (max-width:760px){
  .mask-effects-grid{
    grid-template-columns:1fr;
  }
}

/* =========================================================
   V1.4.5.54 — Modèles prédéfinis / templates
   ========================================================= */
.nt-mask-template-section{
  border:1px solid rgba(212,175,55,.18);
  border-radius:22px;
  background:linear-gradient(180deg, rgba(20,20,26,.96), rgba(12,12,16,.98));
}
.nt-template-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:8px;
}
.nt-template-card{
  width:100%;
  text-align:left;
  display:grid;
  gap:6px;
  padding:14px 15px;
  border-radius:18px;
  border:1px solid rgba(212,175,55,.22);
  background:linear-gradient(180deg, rgba(40,40,46,.78), rgba(18,18,24,.96));
  color:#f8f1d0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 10px 20px rgba(0,0,0,.18);
  cursor:pointer;
}
.nt-template-card strong{
  font-size:15px;
  font-weight:800;
  color:#ffe9a9;
}
.nt-template-card span{
  font-size:12px;
  line-height:1.45;
  color:rgba(255,244,212,.76);
}
.nt-template-card:hover{
  border-color:rgba(243,218,132,.38);
  box-shadow:0 0 0 1px rgba(243,218,132,.12), 0 12px 28px rgba(0,0,0,.24);
}
.nt-template-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:12px;
}
@media (max-width: 640px){
  .nt-template-actions{grid-template-columns:1fr;}
}


/* =========================================================
   V1.4.5.56 — Admin Studio / export modèles JSON
   ========================================================= */
.nt-admin-only[hidden]{
  display:none !important;
}
.nt-admin-studio-card{
  border:1px solid rgba(212,175,55,.18);
  border-radius:22px;
  background:linear-gradient(180deg, rgba(22,22,28,.96), rgba(12,12,16,.98));
}
.nt-admin-json-output{
  min-height:240px;
  width:100%;
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(212,175,55,.20);
  background:rgba(0,0,0,.28);
  color:#f8f1d0;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size:11px;
  line-height:1.45;
  resize:vertical;
}
.nt-admin-info-list{
  display:grid;
  gap:10px;
}
.nt-admin-info-list > div{
  display:grid;
  gap:4px;
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(212,175,55,.14);
  background:rgba(255,255,255,.035);
}
.nt-admin-info-list strong{
  color:#ffe9a9;
  font-size:13px;
}
.nt-admin-info-list span{
  color:rgba(255,244,212,.72);
  font-size:12px;
  line-height:1.4;
}
#panel-admin-studio .field{
  display:grid;
  gap:7px;
}
#panel-admin-studio .field span{
  color:#f3da84;
  font-size:12px;
  font-weight:800;
}
#panel-admin-studio input,
#panel-admin-studio textarea{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(212,175,55,.20);
  background:rgba(0,0,0,.26);
  color:#fff7dc;
  padding:10px 12px;
}
#panel-admin-studio textarea:not(.nt-admin-json-output){
  min-height:80px;
}


/* =========================================================
   V1.4.5.57 — Bibliothèque admin modèles / masques SVG
   ========================================================= */
.nt-dynamic-library-block{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid rgba(212,175,55,.16);
}
.nt-dynamic-library-block h3{
  margin:0 0 10px;
  color:#f3da84;
}
.nt-template-library-grid,
.nt-svg-mask-library-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.nt-library-category-title{
  grid-column:1/-1;
  margin-top:4px;
  color:#ffe9a9;
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.nt-library-card{
  min-width:0;
  display:grid;
  gap:6px;
  text-align:left;
  padding:10px;
  border-radius:16px;
  border:1px solid rgba(212,175,55,.20);
  background:linear-gradient(180deg, rgba(34,34,40,.88), rgba(14,14,18,.98));
  color:#fff7dc;
  cursor:pointer;
}
.nt-library-card:hover{
  border-color:rgba(243,218,132,.45);
}
.nt-library-card img,
.nt-library-thumb-empty{
  width:100%;
  height:92px;
  display:grid;
  place-items:center;
  object-fit:contain;
  border-radius:12px;
  background:#050505;
  border:1px solid rgba(255,255,255,.08);
  color:#f3da84;
  font-size:12px;
  font-weight:900;
}
.nt-library-card strong{
  color:#ffe9a9;
  font-size:12px;
  line-height:1.2;
}
.nt-library-card small{
  color:rgba(255,244,212,.70);
  font-size:11px;
  line-height:1.3;
}
.nt-library-card-mask img{
  background:#111;
}
@media(max-width:640px){
  .nt-template-library-grid,
  .nt-svg-mask-library-grid{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   V1.4.5.60 — Modale galerie de modèles Premium Soft Gold
   ========================================================= */
.nt-template-modal[hidden]{
  display:none !important;
}
.nt-template-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  display:grid;
  place-items:center;
  padding:26px;
}
.nt-template-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(8px);
}
.nt-template-modal__dialog{
  position:relative;
  width:min(1040px, calc(100vw - 42px));
  max-height:min(820px, calc(100vh - 42px));
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  border:1px solid rgba(212,175,55,.32);
  border-radius:28px;
  background:
    radial-gradient(circle at top left, rgba(212,175,55,.16), transparent 34%),
    linear-gradient(180deg, rgba(24,24,30,.98), rgba(8,8,12,.99));
  box-shadow:0 28px 90px rgba(0,0,0,.62);
  overflow:hidden;
}
.nt-template-modal__head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  padding:24px 26px 18px;
  border-bottom:1px solid rgba(212,175,55,.16);
}
.nt-template-modal__head h2{
  margin:0;
  color:#ffe9a9;
  font-size:26px;
  line-height:1;
}
.nt-template-modal__head p{
  margin:8px 0 0;
  color:rgba(255,244,212,.70);
  font-size:13px;
}
.nt-template-modal__close{
  width:42px;
  height:42px;
  border-radius:14px;
  border:1px solid rgba(212,175,55,.28);
  background:rgba(0,0,0,.26);
  color:#ffe9a9;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
.nt-template-modal__body{
  min-height:0;
  overflow:auto;
  padding:22px 26px 26px;
}
.nt-template-modal__section + .nt-template-modal__section{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid rgba(212,175,55,.14);
}
.nt-template-modal__section h3{
  margin:0 0 13px;
  color:#f3da84;
  font-size:15px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.nt-template-modal__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.nt-template-modal-card{
  min-width:0;
  display:grid;
  gap:9px;
  text-align:left;
  padding:13px;
  border-radius:20px;
  border:1px solid rgba(212,175,55,.22);
  background:linear-gradient(180deg, rgba(38,38,46,.86), rgba(14,14,18,.98));
  color:#fff7dc;
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 12px 28px rgba(0,0,0,.22);
}
.nt-template-modal-card:hover{
  border-color:rgba(243,218,132,.52);
  transform:translateY(-1px);
}
.nt-template-modal-card strong{
  color:#ffe9a9;
  font-size:14px;
  line-height:1.2;
}
.nt-template-modal-card small{
  color:rgba(255,244,212,.70);
  line-height:1.35;
}
.nt-template-modal-img,
.nt-template-modal-thumb{
  width:100%;
  height:156px;
  border-radius:15px;
  border:1px solid rgba(255,255,255,.08);
  background:#060606;
  object-fit:contain;
  display:grid;
  place-items:center;
  color:#f3da84;
  font-weight:900;
}
.nt-template-modal-thumb{
  position:relative;
  overflow:hidden;
}
.nt-template-modal-thumb::before,
.nt-template-modal-thumb::after{
  content:"";
  position:absolute;
  border:2px solid rgba(243,218,132,.65);
  border-radius:8px;
}
.nt-template-modal-thumb--poster::before{
  left:14%;
  top:18%;
  width:28%;
  height:58%;
}
.nt-template-modal-thumb--poster::after{
  right:13%;
  top:24%;
  width:30%;
  height:32%;
  box-shadow:0 64px 0 -3px rgba(243,218,132,.24);
}
.nt-template-modal-thumb--collage::before{
  left:12%;
  top:18%;
  width:32%;
  height:28%;
  box-shadow:0 62px 0 0 rgba(243,218,132,.16), 118px 0 0 0 rgba(243,218,132,.16), 118px 62px 0 0 rgba(243,218,132,.16);
}
.nt-template-modal-thumb--collage::after{
  right:12%;
  top:18%;
  width:32%;
  height:28%;
}
.nt-template-modal-thumb--banner::before{
  left:10%;
  top:22%;
  width:80%;
  height:34%;
}
.nt-template-modal-thumb--banner::after{
  left:16%;
  bottom:16%;
  width:28%;
  height:22%;
}
@media(max-width:900px){
  .nt-template-modal__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:620px){
  .nt-template-modal{padding:12px;}
  .nt-template-modal__dialog{width:calc(100vw - 18px);max-height:calc(100vh - 18px);}
  .nt-template-modal__head{padding:18px;}
  .nt-template-modal__body{padding:18px;}
  .nt-template-modal__grid{grid-template-columns:1fr;}
}


/* =========================================================
   V1.4.5.61 — Retour texte initial visible
   ========================================================= */
.nt-motor-return-btn{
  display:none;
  border-color:rgba(243,218,132,.55) !important;
  color:#111 !important;
  background:linear-gradient(180deg,#f5df8d,#d4af37) !important;
  font-weight:900 !important;
  white-space:nowrap !important;
}
#textContextBar .context-top{
  align-items:center !important;
}
#textMotorWarning{
  flex-shrink:0 !important;
}


/* =========================================================
   V1.4.5.74 — Zone active nettoyée
   ========================================================= */
.nt-clean-zone-active-note{
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px dashed rgba(212,175,55,.32);
  border-radius: 12px;
  background: rgba(212,175,55,.07);
  color: #f3da84;
  font-size: 12px;
  line-height: 1.4;
}


/* =========================================================
   V1.4.5.90 — Modale choix masques SVG
   ========================================================= */
.nt-svg-mask-library-compact{
  display:grid;
  gap:10px;
}

.nt-svg-mask-library-compact #ntSvgMaskLibraryGrid[hidden]{
  display:none !important;
}

.nt-svg-mask-modal .nt-template-modal__dialog{
  max-width:980px;
}

.nt-svg-mask-modal__grid{
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
}

.nt-template-modal-card--mask{
  min-height:178px;
}

.nt-template-modal-card--mask .nt-template-modal-img{
  object-fit:contain;
  background:rgba(0,0,0,.24);
}


/* =========================================================
   V1.4.5.93 — FUSION VALIDÉE SUR BASE V1.4.5.92
   ---------------------------------------------------------
   Styles/Formes texte reportés sans supprimer les ajouts
   Zones actives / Modèles / Administration de la base maître.
   ========================================================= */
/* =========================================================
   v1.4.5.78 — TUILES TEXTE / FORME DANS LA TOP BARRE
   ---------------------------------------------------------
   1. Interface courte : styles et arcs pilotés depuis la zone
      contextuelle du texte sélectionné.
   2. Défilement horizontal des tuiles pour une utilisation mobile.
   3. Pastille couleur directement à côté du curseur d'intensité.
   ========================================================= */
.nt-text-tools-tab.active{
  border-color:var(--ntpsg-gold, #d4af37) !important;
  background:rgba(212,175,55,.14) !important;
  color:var(--ntpsg-gold-light, #f1d77a) !important;
}

.nt-text-tool-panel{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  width:100%;
  padding:8px;
  border-radius:16px;
  border:1px solid rgba(212,175,55,.17);
  background:rgba(6,6,8,.42);
}

.nt-text-tool-panel[hidden]{display:none !important;}

.nt-text-tile-strip{
  display:flex;
  align-items:stretch;
  gap:7px;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  padding-bottom:1px;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.nt-text-tile-strip::-webkit-scrollbar{display:none;width:0;height:0;}

.nt-text-tile{
  position:relative;
  flex:0 0 72px;
  min-height:62px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  border:1px solid rgba(212,175,55,.16);
  border-radius:13px;
  color:var(--ntpsg-text, #f8f0dc);
  background:rgba(22,22,27,.92);
  font-size:11px;
  cursor:pointer;
  transition:border-color .17s ease, background .17s ease, transform .17s ease;
}
.nt-text-tile:hover:not(:disabled){
  transform:translateY(-1px);
  border-color:rgba(212,175,55,.46);
}
.nt-text-tile.is-active{
  border-color:rgba(212,175,55,.82);
  background:linear-gradient(145deg,rgba(212,175,55,.19),rgba(29,26,19,.55));
  box-shadow:inset 0 0 0 1px rgba(212,175,55,.18);
}
.nt-text-tile.is-planned{opacity:.5;cursor:not-allowed;}
.nt-text-tile small{font-size:8px;color:var(--ntpsg-gold-light,#f1d77a);}

.nt-tile-preview{
  height:23px;
  font-family:Inter,Arial,sans-serif;
  font-size:20px;
  font-weight:800;
  line-height:1;
  color:#f4f0e8;
}
.nt-preview-outline{-webkit-text-stroke:1px #d4af37;color:#f4f0e8;}
.nt-preview-outline-only{-webkit-text-stroke:1px #d4af37;color:transparent;}
.nt-preview-shadow{text-shadow:3px 3px 0 rgba(212,175,55,.72);}
.nt-preview-glow{text-shadow:0 0 8px #d4af37,0 0 12px rgba(212,175,55,.65);}
.nt-preview-texture{background:linear-gradient(120deg,#d4af37,#fff1b4,#7e5b19,#d4af37);background-clip:text;-webkit-background-clip:text;color:transparent;}
.nt-preview-3d{text-shadow:1px 1px 0 #d4af37,2px 2px 0 #8c6b16,3px 3px 0 #40300c;}
.nt-preview-double-outline{color:#f4f0e8;-webkit-text-stroke:1px #d4af37;text-shadow:0 0 0 #111,1px 0 0 #111,-1px 0 0 #111,0 1px 0 #111,0 -1px 0 #111;}
.nt-preview-inline{color:#d4af37;-webkit-text-stroke:1px #fff;text-shadow:0 0 0 transparent;}
.nt-preview-multi-shadow{color:#f4f0e8;text-shadow:2px 2px 0 #d4af37,4px 4px 0 #b83b5e,6px 6px 0 #2f3b62;}
.nt-preview-halftone{color:#d4af37;text-shadow:1px 1px 0 #111;letter-spacing:.5px;}
.nt-preview-perspective-text{display:inline-block;transform:skewX(-18deg) scaleX(.9);transform-origin:center;}

.nt-shape-up{transform:translateY(2px) rotate(-2deg);}
.nt-shape-down{transform:translateY(-1px) rotate(2deg);}

.nt-text-control-line{
  flex:1 1 290px;
  min-width:260px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:4px 5px;
}
.nt-control-name{font-size:12px;color:var(--ntpsg-muted,#b9ac8f);white-space:nowrap;}
.nt-context-range{flex:1 1 145px;min-width:92px;accent-color:#d4af37;}

.nt-color-dot-wrap{
  height:37px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 9px;
  border:1px solid rgba(212,175,55,.18);
  background:rgba(19,19,23,.82);
  border-radius:12px;
  font-size:11px;
  color:var(--ntpsg-muted,#b9ac8f);
  white-space:nowrap;
}
.nt-color-dot-wrap input[type="color"]{
  width:23px !important;
  height:23px !important;
  min-height:23px !important;
  border:1px solid rgba(212,175,55,.48) !important;
  border-radius:50% !important;
  padding:2px !important;
  overflow:hidden;
  cursor:pointer;
  background:transparent !important;
}
.nt-color-dot-wrap input[type="color"]::-webkit-color-swatch-wrapper{padding:0;}
.nt-color-dot-wrap input[type="color"]::-webkit-color-swatch{border:0;border-radius:50%;}

/* La top barre s'agrandit uniquement pendant le réglage d'un style/arc. */
.canvas-toolbar:has(.nt-text-tool-panel:not([hidden])){
  max-height:230px !important;
}

/* En mode simple, la top barre devient le point d'entrée principal. */
body.simple-mode .dock-btn[data-panel="effects"],
body.simple-mode .dock-btn[data-panel="transform"]{
  display:none !important;
}

@media (max-width:980px){
  .nt-text-tool-panel{flex-direction:column;align-items:stretch;gap:7px;}
  .nt-text-tile-strip{width:100%;}
  .nt-text-control-line{min-width:0;flex:0 0 auto;width:100%;}
  .canvas-toolbar:has(.nt-text-tool-panel:not([hidden])){max-height:224px !important;}
}

@media (max-width:760px){
  .context-top{flex-wrap:nowrap !important;overflow-x:auto;scrollbar-width:none;}
  .context-top::-webkit-scrollbar{display:none;width:0;height:0;}
  .nt-text-tile{flex-basis:76px;min-height:58px;}
  .nt-text-control-line{gap:6px;}
  .nt-color-dot-wrap span{display:none;}
  .nt-color-dot-wrap{padding:0 7px;}
  .canvas-toolbar:has(.nt-text-tool-panel:not([hidden])){max-height:210px !important;}
}


/* =========================================================
   v1.4.5.79 — TOP BAR : TUILES VISIBLES EN PANNEAU FLOTTANT
   ---------------------------------------------------------
   Correction ciblée :
   - conserve la hauteur fixe validée de la barre contextuelle ;
   - évite que les tuiles soient enfermées dans le scroll masqué ;
   - ouvre Style / Forme comme un panneau visible au-dessus du canvas ;
   - maintient les actions Style et Forme accessibles sur mobile.
   ========================================================= */
.canvas-toolbar{
  position:relative !important;
  z-index:80 !important;
  overflow:visible !important;
}

#textContextBar{
  position:relative !important;
  overflow:visible !important;
}

#textContextBar .nt-text-tool-panel{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:calc(100% + 9px) !important;
  z-index:140 !important;
  background:rgba(13,13,17,.985) !important;
  border-color:rgba(212,175,55,.38) !important;
  box-shadow:0 22px 46px rgba(0,0,0,.48), 0 0 0 1px rgba(212,175,55,.10) inset !important;
  backdrop-filter:blur(18px);
}

/* On annule l'ancienne tentative d'agrandissement : le canvas ne saute plus. */
.canvas-toolbar:has(.nt-text-tool-panel:not([hidden])){
  height:var(--ntpsg-contextbar-h) !important;
  min-height:var(--ntpsg-contextbar-h) !important;
  max-height:var(--ntpsg-contextbar-h) !important;
  overflow:visible !important;
}

.canvas-shell{
  position:relative !important;
  z-index:1 !important;
}

@media (max-width:760px){
  #textContextBar .nt-text-tool-panel{
    left:-2px !important;
    right:-2px !important;
    top:calc(100% + 7px) !important;
    padding:8px !important;
    border-radius:15px !important;
  }
  #textContextBar .context-top{
    scroll-behavior:smooth;
  }
}


/* =========================================================
   v1.4.5.81 — FORME : PANNEAU D’ARC UTILISABLE SANS BLOCAGE
   ---------------------------------------------------------
   L’ancien avertissement de conversion n’est plus affiché dans
   la top barre simplifiée : l’action « Texte droit » du panneau
   Forme fournit déjà le retour explicite au texte éditable.
   Le message reste disponible dans les réglages avancés.
   ========================================================= */
#textContextBar #textMotorWarning{
  display:none !important;
}


/* =========================================================
   v1.4.5.84 — ARC : PROPORTIONS + GARDE-FOU CANVAS
   ---------------------------------------------------------
   Le panneau Forme garde deux réglages lisibles : Courbure
   et Largeur, sans afficher les paramètres techniques du moteur.
   ========================================================= */
#ntTextShapeControls{
  flex-wrap:wrap;
  row-gap:7px;
}
#ntTextShapeControls .nt-context-range{
  flex:1 1 112px;
}
#ntTextShapeControls .nt-arc-width-range{
  min-width:82px;
}
@media (max-width:760px){
  #ntTextShapeControls .nt-control-name{
    flex:0 0 61px;
  }
  #ntTextShapeControls .nt-context-range{
    flex:1 1 calc(100% - 78px);
  }
  #ntTextStraightBtn{
    margin-left:auto;
  }
}



/* =========================================================
   v1.4.5.96 — STYLE TEXTE : CONTOUR SEUL / TEXTURE / 3D
   ========================================================= */
.nt-text-texture-controls{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:max-content;
}
.nt-text-texture-controls[hidden]{display:none !important;}
.nt-text-texture-controls .mini-select{max-width:122px;}
@media (max-width:760px){
  .nt-text-texture-controls{width:100%;justify-content:flex-start;}
}


/* =========================================================
   v1.4.5.99 — TOP BAR : PALETTE STYLE / FORME HORS CANVAS
   ---------------------------------------------------------
   1. Sur ordinateur, la palette s'ouvre au-dessus de la top barre
      afin de ne plus masquer la zone de création.
   2. Le panneau devient compact et ne s'étend plus sur toute la largeur.
   3. Sur petit écran, le panneau reste comprimé et horizontal afin
      de préserver au maximum la visibilité du canvas.
   ========================================================= */
@media (min-width:761px){
  #textContextBar .nt-text-tool-panel{
    top:auto !important;
    bottom:calc(100% + 7px) !important;
    left:0 !important;
    right:auto !important;
    width:max-content !important;
    max-width:calc(100vw - 34px) !important;
    padding:6px !important;
    gap:8px !important;
    border-radius:14px !important;
  }
  #textContextBar .nt-text-tile-strip{
    flex:0 1 auto !important;
    max-width:min(560px, 56vw) !important;
  }
  #textContextBar .nt-text-tile{
    flex-basis:62px !important;
    min-height:50px !important;
    gap:2px !important;
    border-radius:11px !important;
    font-size:10px !important;
  }
  #textContextBar .nt-tile-preview{
    height:19px !important;
    font-size:17px !important;
  }
  #textContextBar .nt-text-control-line{
    flex:0 1 auto !important;
    min-width:245px !important;
    padding:2px 3px !important;
  }
  #textContextBar .nt-color-dot-wrap{
    height:34px !important;
  }
}

@media (min-width:761px) and (max-width:1080px){
  #textContextBar .nt-text-tool-panel{
    width:min(720px, calc(100vw - 28px)) !important;
  }
  #textContextBar .nt-text-tile-strip{
    max-width:100% !important;
  }
  #textContextBar .nt-text-control-line{
    min-width:220px !important;
  }
}

@media (max-width:760px){
  #textContextBar .nt-text-tool-panel{
    padding:6px !important;
    gap:6px !important;
  }
  #textContextBar .nt-text-tile{
    flex-basis:62px !important;
    min-height:50px !important;
    font-size:10px !important;
  }
  #textContextBar .nt-tile-preview{
    height:19px !important;
    font-size:17px !important;
  }
}

/* =========================================================
   v1.4.5.108 — PALETTES PERSISTANTES + MODALE TEXTURE
   ---------------------------------------------------------
   - Les palettes Style/Forme restent ouvertes jusqu'au clic
     sur leur bouton actif ou sur la croix de fermeture.
   - La modale permet le cadrage de la texture Mot complet.
   ========================================================= */
#textContextBar .nt-text-tool-panel{
  padding-right:38px !important;
}
.nt-text-palette-close{
  position:absolute;
  top:7px;
  right:7px;
  z-index:2;
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border:1px solid rgba(212,175,55,.28);
  border-radius:50%;
  background:rgba(16,16,20,.9);
  color:#d4af37;
  font-size:18px;
  line-height:1;
  cursor:pointer;
}
.nt-text-palette-close:hover{
  border-color:rgba(212,175,55,.68);
  background:rgba(212,175,55,.12);
}
#ntTextTexturePositionBtn:disabled{
  opacity:.42;
  cursor:not-allowed;
}
.nt-texture-position-modal[hidden]{display:none !important;}
.nt-texture-position-modal{
  position:fixed;
  inset:0;
  z-index:10050;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.nt-texture-position-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.68);
  backdrop-filter:blur(5px);
}
.nt-texture-position-modal__dialog{
  position:relative;
  width:min(820px, calc(100vw - 28px));
  max-height:calc(100vh - 28px);
  overflow:auto;
  border:1px solid rgba(212,175,55,.34);
  border-radius:22px;
  background:linear-gradient(145deg, rgba(19,19,24,.99), rgba(8,8,11,.99));
  box-shadow:0 28px 70px rgba(0,0,0,.64), 0 0 0 1px rgba(212,175,55,.08) inset;
}
.nt-texture-position-modal__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:19px 21px 13px;
  border-bottom:1px solid rgba(212,175,55,.12);
}
.nt-texture-position-modal__head h2{
  margin:0 0 5px;
  color:#ead18a;
  font-size:20px;
  font-weight:600;
}
.nt-texture-position-modal__head p{
  margin:0;
  color:#aa9b7f;
  font-size:13px;
}
.nt-texture-position-modal__close{
  width:33px;
  height:33px;
  flex:none;
  border:1px solid rgba(212,175,55,.3);
  border-radius:50%;
  background:rgba(212,175,55,.06);
  color:#d4af37;
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.nt-texture-position-modal__body{
  padding:18px 21px 21px;
}
.nt-texture-position-preview{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:720/320;
  border:1px solid rgba(212,175,55,.22);
  border-radius:16px;
  background:#08090c;
  touch-action:none;
  cursor:grab;
}
.nt-texture-position-preview.is-dragging{cursor:grabbing;}
.nt-texture-position-help{
  margin:9px 0 16px;
  color:#aa9b7f;
  font-size:12px;
}
.nt-texture-position-zoom{
  display:flex;
  align-items:center;
  gap:15px;
  color:#d2bd86;
  font-size:13px;
}
.nt-texture-position-zoom input{
  flex:1;
  accent-color:#d4af37;
}
.nt-texture-position-actions{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:19px;
}
@media (max-width:760px){
  #textContextBar .nt-text-tool-panel{padding-right:34px !important;}
  .nt-texture-position-modal{padding:8px;}
  .nt-texture-position-modal__head,
  .nt-texture-position-modal__body{padding:14px;}
  .nt-texture-position-modal__head h2{font-size:17px;}
  .nt-texture-position-actions{flex-wrap:wrap;}
}


/* =========================================================
   v1.4.5.109 — top bar active labels + text presets
   ========================================================= */
.nt-text-panel-title{
  width:100%;
  margin:2px 0 2px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#d4af37;
  opacity:.95;
}
.nt-text-preset-strip{
  margin-top:-2px;
}
.nt-text-preset-tile .nt-tile-preview{
  font-size:18px;
}
.nt-preview-preset-western{font-family:'Rye', serif;}
.nt-preview-preset-seventies{font-family:'Chicle', cursive;}
.nt-preview-preset-futuriste{font-family:'Orbitron', sans-serif;}
.nt-preview-preset-luxury{font-family:'Playfair Display', serif;}
.nt-preview-preset-comic{font-family:'Bangers', cursive;}
.nt-preview-preset-rock{font-family:'New Rocker', cursive;}

/* =========================================================
   v1.4.5.110 — PALETTE STYLE STRUCTURÉE / TUILES COMPLÈTES
   ---------------------------------------------------------
   Les sections sont empilées afin de ne plus couper les styles
   ou les presets. La palette continue de s'ouvrir au-dessus du
   canvas sur ordinateur. Sur mobile, chaque bande reste défilable.
   ========================================================= */
@media (min-width:761px){
  #textContextBar #ntTextStylePanel{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    width:min(690px, calc(100vw - 34px)) !important;
    max-width:min(690px, calc(100vw - 34px)) !important;
    padding:12px 40px 12px 12px !important;
    gap:7px !important;
  }
  #textContextBar #ntTextStylePanel[hidden]{display:none !important;}
  #ntTextStylePanel .nt-text-tile-strip{
    width:100% !important;
    flex:0 0 auto !important;
    max-width:100% !important;
    overflow-x:visible !important;
    flex-wrap:wrap !important;
    padding-bottom:0 !important;
  }
  #ntTextStylePanel .nt-text-control-line{
    width:100% !important;
    min-width:0 !important;
    flex:0 0 auto !important;
    padding-top:5px !important;
    margin-top:2px !important;
    border-top:1px solid rgba(212,175,55,.13);
  }
  #ntTextStylePanel .nt-text-panel-title{
    margin-top:5px !important;
  }
  #ntTextStylePanel .nt-text-panel-title:first-of-type{
    margin-top:0 !important;
  }
  #ntTextStylePanel .nt-text-finish-strip{
    max-width:100% !important;
  }
}
@media (max-width:760px){
  #textContextBar #ntTextStylePanel{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    padding-right:36px !important;
    max-height:min(56vh, 390px) !important;
    overflow-y:auto !important;
    scrollbar-width:none;
  }
  #textContextBar #ntTextStylePanel[hidden]{display:none !important;}
  #textContextBar #ntTextStylePanel::-webkit-scrollbar{display:none;width:0;height:0;}
  #ntTextStylePanel .nt-text-tile-strip{
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    width:100% !important;
  }
  #ntTextStylePanel .nt-text-panel-title{
    flex:0 0 auto;
    margin-top:4px;
  }
}


/* =========================================================
   v1.4.5.111 — PALETTES TOUJOURS VISIBLES DANS LE VIEWPORT
   ---------------------------------------------------------
   La palette Style est désormais positionnée par JavaScript en
   fonction de la place réellement disponible autour de la top bar.
   Elle échappe aux zones parent qui pouvaient couper ses sections.
   ========================================================= */
@media (min-width:761px){
  #textContextBar .nt-text-tool-panel{
    position:fixed !important;
    right:auto !important;
    bottom:auto !important;
    max-height:min(68vh, 470px) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    scrollbar-width:none !important;
  }
  #textContextBar .nt-text-tool-panel::-webkit-scrollbar{
    display:none !important;
    width:0 !important;
    height:0 !important;
  }
  #textContextBar #ntTextStylePanel{
    width:min(690px, calc(100vw - 20px)) !important;
    max-width:min(690px, calc(100vw - 20px)) !important;
  }
  #textContextBar #ntTextShapePanel{
    width:min(540px, calc(100vw - 20px)) !important;
    max-width:min(540px, calc(100vw - 20px)) !important;
  }
}


/* =========================================================
   v1.4.5.112 — PALETTE LATÉRALE HORS CANVAS
   ---------------------------------------------------------
   Sur desktop, Style/Forme occupent la bande noire disponible
   à côté de la zone d'impression au lieu de masquer le visuel.
   ========================================================= */
@media (min-width:761px){
  #textContextBar .nt-text-tool-panel.nt-side-palette{
    width:296px !important;
    max-width:296px !important;
    max-height:min(78vh, 640px) !important;
    padding:14px 38px 14px 14px !important;
    border-radius:18px !important;
  }
  #textContextBar #ntTextStylePanel.nt-side-palette,
  #textContextBar #ntTextShapePanel.nt-side-palette{
    flex-direction:column !important;
    align-items:stretch !important;
    gap:9px !important;
  }
  #textContextBar .nt-side-palette .nt-text-tile-strip{
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:7px !important;
    width:100% !important;
    flex-wrap:unset !important;
    overflow:visible !important;
  }
  #textContextBar .nt-side-palette .nt-text-tile{
    width:100% !important;
    min-width:0 !important;
  }
  #textContextBar .nt-side-palette .nt-text-control-line{
    flex-direction:column !important;
    align-items:stretch !important;
    gap:8px !important;
    width:100% !important;
    border-top:1px solid rgba(212,175,55,.16);
    margin-top:4px !important;
    padding-top:10px !important;
  }
  #textContextBar .nt-side-palette .nt-context-range{
    width:100% !important;
    max-width:none !important;
  }
  #textContextBar .nt-side-palette .nt-text-texture-controls{
    flex-direction:column !important;
    align-items:stretch !important;
    width:100% !important;
    gap:7px !important;
  }
  #textContextBar .nt-side-palette .nt-text-texture-controls .btn,
  #textContextBar .nt-side-palette .nt-text-texture-controls .mini-select{
    width:100% !important;
    max-width:none !important;
  }
}


/* =========================================================
   v1.4.5.113 — MODE SIMPLE ÉPURÉ + MINI PALETTES À GAUCHE
   ---------------------------------------------------------
   - En mode simple, seulement Zone / Image / Texte restent visibles.
   - Aucun panneau de gauche n'est imposé sans choix utilisateur.
   - Style/Forme passent en panneau latéral compact à gauche lorsque
     la bande noire disponible le permet.
   ========================================================= */
body.simple-mode .dock .dock-btn:not([data-panel="format"]):not([data-panel="image"]):not([data-panel="text"]):not([data-panel="projects"]){
  display:none !important;
}
body.simple-mode.simple-panel-empty .panel-column{
  display:none !important;
}
body.simple-mode.simple-panel-empty .main-area{
  grid-template-columns:minmax(0,1fr) !important;
}
body.simple-mode .dock-btn[data-panel="format"],
body.simple-mode .dock-btn[data-panel="image"],
body.simple-mode .dock-btn[data-panel="text"],
body.simple-mode .dock-btn[data-panel="projects"]{
  display:grid !important;
}
@media (min-width:761px){
  #textContextBar .nt-text-tool-panel.nt-side-palette{
    width:228px !important;
    max-width:228px !important;
    max-height:min(76vh, 600px) !important;
    padding:11px 31px 11px 11px !important;
    gap:6px !important;
    border-radius:15px !important;
  }
  #textContextBar .nt-side-palette .nt-text-tile-strip{
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:5px !important;
  }
  #textContextBar .nt-side-palette .nt-text-tile{
    min-height:47px !important;
    height:47px !important;
    padding:4px 2px !important;
    gap:2px !important;
    border-radius:9px !important;
    font-size:9px !important;
    line-height:1.05 !important;
  }
  #textContextBar .nt-side-palette .nt-tile-preview{
    height:17px !important;
    font-size:16px !important;
  }
  #textContextBar .nt-side-palette .nt-text-preset-tile .nt-tile-preview{
    font-size:15px !important;
  }
  #textContextBar .nt-side-palette .nt-text-panel-title{
    font-size:9px !important;
    letter-spacing:.08em !important;
    margin:3px 0 1px !important;
  }
  #textContextBar .nt-side-palette .nt-text-control-line{
    gap:6px !important;
    padding-top:7px !important;
  }
  #textContextBar .nt-side-palette .nt-control-name{
    font-size:10px !important;
  }
  #textContextBar .nt-side-palette .btn.small,
  #textContextBar .nt-side-palette .mini-select{
    min-height:32px !important;
    font-size:10px !important;
  }
  #textContextBar .nt-side-palette .nt-color-dot-wrap{
    height:32px !important;
    font-size:10px !important;
  }
}


/* =========================================================
   v1.4.5.114 — PALETTE VRAIMENT LATÉRALE ET ULTRA-COMPACTE
   ---------------------------------------------------------
   La palette est calculée selon sa petite largeur latérale,
   puis rendue plus légère dans la bande noire gauche.
   ========================================================= */
@media (min-width:761px){
  #textContextBar #ntTextStylePanel.nt-side-palette{
    width:292px !important;
    max-width:292px !important;
    padding:10px 30px 12px 10px !important;
    gap:7px !important;
  }
  #textContextBar #ntTextShapePanel.nt-side-palette{
    width:276px !important;
    max-width:276px !important;
    padding:10px 30px 12px 10px !important;
    gap:7px !important;
  }
  #textContextBar .nt-side-palette .nt-text-tile-strip{
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:6px !important;
  }
  #textContextBar .nt-side-palette .nt-text-tile{
    min-height:0 !important;
    height:auto !important;
    aspect-ratio:1 / 1 !important;
    padding:6px 4px !important;
    gap:3px !important;
    border-radius:10px !important;
    font-size:10px !important;
  }
  #textContextBar .nt-side-palette .nt-tile-preview{
    height:22px !important;
    font-size:22px !important;
    line-height:1 !important;
  }
  #textContextBar .nt-side-palette .nt-text-panel-title{
    font-size:10px !important;
    margin:4px 0 2px !important;
  }
  #textContextBar .nt-side-palette .nt-text-control-line{
    gap:7px !important;
    padding-top:8px !important;
  }
  #textContextBar .nt-side-palette .nt-context-range{
    height:22px !important;
  }
  #textContextBar .nt-side-palette .nt-color-dot-wrap,
  #textContextBar .nt-side-palette .btn.small,
  #textContextBar .nt-side-palette .mini-select{
    min-height:32px !important;
    height:32px !important;
    font-size:10px !important;
  }
}

/* =========================================================
   v1.4.5.118 — bibliothèque de presets texte par familles
   ========================================================= */
.nt-preset-categories{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  width:100%;
  margin:1px 0 3px;
}
.nt-preset-category{
  flex:1 1 calc(50% - 3px);
  min-height:26px;
  border:1px solid rgba(212,175,55,.2);
  border-radius:8px;
  background:rgba(255,255,255,.025);
  color:#bdb8ae;
  font-size:9px;
  font-weight:700;
  cursor:pointer;
  transition:border-color .16s ease, color .16s ease, background .16s ease;
}
.nt-preset-category:hover,
.nt-preset-category.is-active{
  color:#f3da84;
  border-color:rgba(212,175,55,.7);
  background:rgba(212,175,55,.09);
}
.nt-text-preset-tile[hidden]{display:none !important;}
.nt-preview-preset-twenties{font-family:'Limelight', serif;}
.nt-preview-preset-seventies{font-family:'Chicle', cursive;}
.nt-preview-preset-eighties{font-family:'Audiowide', sans-serif;}
.nt-preview-preset-y2k{font-family:'Michroma', sans-serif;}
.nt-preview-preset-western{font-family:'Rye', serif;}
.nt-preview-preset-rock{font-family:'New Rocker', cursive;}
.nt-preview-preset-metal{font-family:'Metal Mania', cursive;}
.nt-preview-preset-horror{font-family:'Creepster', cursive;}
.nt-preview-preset-eightbit{font-family:'Press Start 2P', monospace;font-size:15px !important;}
.nt-preview-preset-arcade{font-family:'Pixelify Sans', monospace;}
.nt-preview-preset-gaming{font-family:'Russo One', sans-serif;}
.nt-preview-preset-cyberpunk{font-family:'Audiowide', sans-serif;}
.nt-preview-preset-futuriste{font-family:'Orbitron', sans-serif;}
.nt-preview-preset-luxury{font-family:'Playfair Display', serif;}
.nt-preview-preset-comic{font-family:'Bangers', cursive;}
.nt-preview-preset-kawaii{font-family:'Fredoka', sans-serif;}
.nt-preview-preset-streetwear{font-family:'Permanent Marker', cursive;}
.nt-preview-preset-varsity{font-family:'Graduate', serif;}
@media (min-width:761px){
  #textContextBar .nt-side-palette .nt-preset-categories{
    gap:4px !important;
  }
  #textContextBar .nt-side-palette .nt-preset-category{
    min-height:25px !important;
    font-size:9px !important;
  }
}


/* =========================================================
   v1.4.5.119 — Mode édition/verrouillage des zones image
   ========================================================= */
.nt-mask-edit-mode{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:12px 0 6px;
  padding:10px;
  border:1px solid rgba(212,175,55,.22);
  border-radius:12px;
  background:rgba(0,0,0,.2);
}
.nt-mask-edit-mode .btn.small{
  min-height:39px;
  justify-content:center;
  font-size:11px;
}
.nt-mask-edit-mode-note{
  grid-column:1 / -1;
  margin:4px 1px 0;
  font-size:11px;
  line-height:1.42;
  color:rgba(246,240,220,.72);
}
.nt-mask-edit-mode.is-editing{
  border-color:rgba(212,175,55,.48);
  background:rgba(212,175,55,.06);
}
.nt-mask-edit-mode.is-editing .nt-mask-edit-mode-note{
  color:#f3da84;
}
.nt-mask-zone-controls.is-layout-editing .nt-zone-subpanel[data-nt-zone-image-panel],
.nt-mask-zone-controls.is-layout-editing [data-zone-subpanel-toggle="zone-image"]{
  opacity:.5;
}


/* =========================================================
   v1.4.5.122 — TOP BAR DE CRÉATION / VERROUILLAGE DES ZONES
   Accessible en mode simple : aucun passage en avancé requis.
   ========================================================= */
.nt-mask-contextbar .nt-mask-toolbar-row{
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
}
.nt-mask-toolbar-title{
  color:#f3da84;
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-right:4px;
  white-space:nowrap;
}
.nt-mask-contextbar .btn.active{
  border-color:#d4af37;
  color:#f3da84;
  background:rgba(212,175,55,.15);
}

/* =========================================================
   v1.4.5.124 — OUTILS IMAGE INTERNE + MODALE DE CADRAGE
   La forme reste verrouillée ; seuls le contenu et son cadrage
   sont modifiables depuis la top bar et la modale.
   ========================================================= */
.nt-mask-contextbar{flex-direction:column;align-items:stretch;gap:6px;}
.nt-mask-inner-toolbar-row{
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
  padding-top:6px;
  border-top:1px solid rgba(212,175,55,.16);
}
.nt-mask-inner-toolbar-row[hidden]{display:none !important;}
.nt-mask-toolbar-zoom{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#d8c27a;
  font-size:11px;
  font-weight:600;
}
.nt-mask-toolbar-zoom .mini-range{width:102px;}

.nt-mask-image-position-modal[hidden]{display:none !important;}
.nt-mask-image-position-modal{
  position:fixed;
  inset:0;
  z-index:30050;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.nt-mask-image-position-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.74);
  backdrop-filter:blur(3px);
}
.nt-mask-image-position-modal__dialog{
  position:relative;
  z-index:1;
  width:min(790px, 94vw);
  max-height:92vh;
  overflow:auto;
  scrollbar-width:none;
  border:1px solid rgba(212,175,55,.42);
  border-radius:18px;
  background:#101116;
  box-shadow:0 22px 70px rgba(0,0,0,.7);
}
.nt-mask-image-position-modal__dialog::-webkit-scrollbar{display:none;width:0;height:0;}
.nt-mask-image-position-modal__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  padding:18px 20px 12px;
  border-bottom:1px solid rgba(212,175,55,.18);
}
.nt-mask-image-position-modal__head h2{margin:0 0 5px;color:#f3da84;font-size:20px;}
.nt-mask-image-position-modal__head p{margin:0;color:#a89c7a;font-size:12px;}
.nt-mask-image-position-modal__close{
  width:34px;height:34px;border-radius:10px;border:1px solid rgba(212,175,55,.33);
  background:#181920;color:#f3da84;font-size:23px;cursor:pointer;
}
.nt-mask-image-position-modal__body{padding:16px 20px 20px;}
.nt-mask-image-position-preview{
  display:block;
  width:100%;
  height:auto;
  border-radius:14px;
  border:1px solid rgba(212,175,55,.26);
  background:#08090d;
  cursor:grab;
  touch-action:none;
}
.nt-mask-image-position-preview.is-dragging{cursor:grabbing;}
.nt-mask-image-position-help{margin:8px 0 14px;color:#a89c7a;font-size:12px;text-align:center;}
.nt-mask-image-position-zoom{
  display:flex;align-items:center;gap:14px;color:#e6d397;font-size:12px;font-weight:700;
  margin:0 0 14px;
}
.nt-mask-image-position-zoom input{flex:1;}
.nt-mask-image-position-tools,
.nt-mask-image-position-actions{display:flex;gap:8px;flex-wrap:wrap;}
.nt-mask-image-position-tools{margin-bottom:14px;}
.nt-mask-image-position-actions{justify-content:flex-end;border-top:1px solid rgba(212,175,55,.14);padding-top:14px;}
@media(max-width:760px){
  .nt-mask-image-position-modal{padding:8px;}
  .nt-mask-image-position-modal__head,.nt-mask-image-position-modal__body{padding:13px;}
  .nt-mask-inner-toolbar-row .nt-mask-toolbar-title{width:100%;}
}

/* =========================================================
   v1.4.5.130 — FONDATION UI EFFETS TEXTE CUMULABLES
   ---------------------------------------------------------
   Modules compacts destinés au texte droit éditable.
   La palette reste compatible avec le panneau latéral validé.
   ========================================================= */
.nt-fx-modules{
  display:flex;
  flex-direction:column;
  gap:6px;
  width:100%;
}
.nt-fx-modules[hidden]{display:none !important;}
.nt-fx-module{
  display:grid;
  grid-template-columns:minmax(70px,1fr) 30px minmax(62px,1.05fr);
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:5px 6px;
  border:1px solid rgba(212,175,55,.15);
  border-radius:9px;
  background:rgba(255,255,255,.018);
}
.nt-fx-module.is-active{
  border-color:rgba(212,175,55,.52);
  background:rgba(212,175,55,.07);
}
.nt-fx-toggle{
  display:flex;
  align-items:center;
  gap:5px;
  color:#e6d397;
  font-size:10px;
  font-weight:700;
  white-space:nowrap;
  cursor:pointer;
}
.nt-fx-toggle input{accent-color:#d4af37; width:13px; height:13px; margin:0;}
.nt-fx-color{
  width:29px;
  height:27px;
  min-width:29px;
  padding:2px;
  border:1px solid rgba(212,175,55,.3);
  border-radius:8px;
  background:#101116;
  cursor:pointer;
}
.nt-fx-range{width:100%; min-width:0; accent-color:#d4af37;}
.nt-fx-module-three-d{
  grid-template-columns:minmax(70px,1fr) 30px minmax(62px,1.05fr);
}
.nt-fx-three-d-options{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  gap:6px;
  align-items:center;
  margin-top:2px;
  padding-top:4px;
  border-top:1px dashed rgba(212,175,55,.14);
}
.nt-fx-inline-label{
  color:#cdb678;
  font-size:10px;
  font-weight:700;
}
.nt-fx-select{
  width:100%;
  min-width:0;
  height:28px;
  border:1px solid rgba(212,175,55,.24);
  border-radius:8px;
  background:#111317;
  color:#f7eac0;
  font-size:11px;
  padding:0 8px;
}
.nt-fx-toggle-sub{
  grid-column:1 / -1;
  justify-self:start;
}
.nt-fx-three-d-options .nt-fx-range{
  grid-column:1 / -1;
}
.nt-fx-foundation-note{
  margin:0;
  padding:4px 2px 1px;
  color:rgba(246,240,220,.58);
  font-size:9px;
  line-height:1.32;
}
.nt-fx-foundation-note.is-arc{
  color:#e6d397;
}
@media (max-width:760px){
  .nt-fx-module{grid-template-columns:minmax(82px,1fr) 32px minmax(82px,1.2fr);}
}

/* =========================================================
   v1.4.5.131 — FX CUMULABLES : CONTRÔLES PLUS LÉGERS
   ---------------------------------------------------------
   Ajustement CSS uniquement : pastilles rondes, curseurs
   mieux séparés et lignes plus compactes dans la palette.
   ========================================================= */
#textContextBar .nt-side-palette .nt-fx-modules{
  gap:5px !important;
}
#textContextBar .nt-side-palette .nt-fx-module{
  grid-template-columns:minmax(68px, 1fr) 27px minmax(88px, 1.55fr) !important;
  gap:9px !important;
  min-height:38px !important;
  padding:5px 7px !important;
  border-radius:9px !important;
  background:rgba(255,255,255,.012) !important;
}
#textContextBar .nt-side-palette .nt-fx-module.is-active{
  border-color:rgba(212,175,55,.42) !important;
  background:rgba(212,175,55,.045) !important;
}
#textContextBar .nt-side-palette .nt-fx-toggle{
  gap:5px !important;
  font-size:10px !important;
  color:rgba(246,240,220,.9) !important;
}
#textContextBar .nt-side-palette .nt-fx-toggle input{
  width:12px !important;
  height:12px !important;
}
#textContextBar .nt-side-palette .nt-fx-color{
  appearance:none;
  -webkit-appearance:none;
  width:27px !important;
  min-width:27px !important;
  height:27px !important;
  padding:2px !important;
  border-radius:50% !important;
  border:1px solid rgba(212,175,55,.38) !important;
  background:rgba(8,9,13,.82) !important;
  overflow:hidden;
}
#textContextBar .nt-side-palette .nt-fx-color::-webkit-color-swatch-wrapper{
  padding:0 !important;
  border-radius:50% !important;
}
#textContextBar .nt-side-palette .nt-fx-color::-webkit-color-swatch{
  border:0 !important;
  border-radius:50% !important;
}
#textContextBar .nt-side-palette .nt-fx-color::-moz-color-swatch{
  border:0 !important;
  border-radius:50% !important;
}
#textContextBar .nt-side-palette .nt-fx-range{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  height:18px !important;
}
#textContextBar .nt-side-palette .nt-fx-foundation-note{
  padding:2px 1px 0 !important;
  margin:0 !important;
  font-size:8.5px !important;
  line-height:1.35 !important;
  color:rgba(246,240,220,.48) !important;
}

/* =========================================================
   v1.4.5.134 — Aperçus des presets premium multi-effets
   ========================================================= */
.nt-preview-preset-arcade-pixel{font-family:'Press Start 2P', monospace;font-size:14px !important;}
.nt-preview-preset-western-saloon{font-family:'Rye', serif;}
.nt-preview-preset-neon-tokyo{font-family:'Orbitron', sans-serif;}
.nt-preview-preset-retro-sunset{font-family:'Audiowide', sans-serif;}
.nt-preview-preset-luxury-gold{font-family:'Playfair Display', serif;}
.nt-preview-preset-candy-pop{font-family:'Fredoka', sans-serif;}
.nt-preview-preset-metal-chrome{font-family:'Metal Mania', cursive;}
.nt-preview-preset-varsity-college{font-family:'Graduate', serif;}

/* =========================================================
   v1.4.5.139 — CANVAS FIXE EN MODE SIMPLE
   ---------------------------------------------------------
   Le panneau gauche devient une couche flottante : son ouverture
   ou sa fermeture ne modifie plus la grille qui centre le canvas.
   Les palettes Style/Forme restent donc alignées autour d'un
   canvas immobile et ne se retrouvent plus superposées par un
   recentrage automatique de la zone de travail.
   ========================================================= */
@media (min-width:761px){
  body.simple-mode .main-area{
    position:relative !important;
    grid-template-columns:minmax(0,1fr) !important;
  }

  body.simple-mode .canvas-area{
    grid-column:1 !important;
    min-width:0 !important;
  }

  body.simple-mode .panel-column{
    position:absolute !important;
    z-index:70 !important;
    left:0 !important;
    top:0 !important;
    bottom:0 !important;
    width:300px !important;
    max-width:min(300px, calc(100% - 28px)) !important;
    background:linear-gradient(180deg, rgba(17,17,22,.99), rgba(10,10,14,.99)) !important;
    box-shadow:18px 0 38px rgba(0,0,0,.30) !important;
  }

  body.simple-mode.simple-panel-empty .panel-column{
    display:none !important;
  }

  /* Les palettes restent au-dessus du panneau contextuel si les deux
     outils sont appelés successivement, sans jamais déplacer le canvas. */
  body.simple-mode #textContextBar .nt-text-tool-panel{
    z-index:160 !important;
  }
}

/* =========================================================
   v1.4.5.140 — TOP BAR ALIGNÉE HORS DU PANNEAU GAUCHE
   ---------------------------------------------------------
   Le canvas reste fixe comme validé en v1.4.5.139. Lorsque le
   panneau simple (Texte / Image / MyDesign / Zone de travail)
   est ouvert, seule la barre contextuelle réserve sa largeur :
   elle commence à droite du panneau et ne recouvre plus son contenu.
   ========================================================= */
@media (min-width:761px){
  body.simple-mode:not(.simple-panel-empty) .canvas-toolbar{
    padding-left:310px !important;
  }

  body.simple-mode.simple-panel-empty .canvas-toolbar{
    padding-left:10px !important;
  }
}


/* =========================================================
   v1.4.5.141 — BOUTONS AJOUT RAPIDE TOP BAR
   ========================================================= */
.top-actions .nt-top-add-btn{
  border-color:rgba(212,175,55,.42);
  color:#f5e8bd;
}
.top-actions .nt-top-add-btn:hover{
  border-color:rgba(212,175,55,.86);
  background:rgba(212,175,55,.12);
}
@media (max-width:760px){
  .top-actions .nt-top-add-btn{
    padding-inline:9px;
    font-size:11px;
  }
}

/* =========================================================
   v1.4.5.143 — Bibliothèque Style scindée : Basique / Premium
   ---------------------------------------------------------
   Basique conserve les presets simples ; Premium regroupe les
   presets multi-effets et le réglage détaillé des effets cumulables.
   ========================================================= */
.nt-style-library-modes{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:6px;
  width:100%;
  margin:0 0 4px;
  padding:3px;
  border:1px solid rgba(212,175,55,.22);
  border-radius:12px;
  background:rgba(0,0,0,.2);
}
.nt-style-library-mode{
  min-height:32px;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:rgba(246,240,220,.66);
  font-size:11px;
  font-weight:700;
  letter-spacing:.03em;
  cursor:pointer;
  transition:color .16s ease, border-color .16s ease, background .16s ease;
}
.nt-style-library-mode:hover{
  color:#f3da84;
  border-color:rgba(212,175,55,.24);
}
.nt-style-library-mode.is-active{
  color:#f3da84;
  border-color:rgba(212,175,55,.62);
  background:rgba(212,175,55,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.nt-style-library-pane{
  display:flex;
  flex-direction:column;
  gap:6px;
  width:100%;
}
.nt-style-library-pane[hidden]{display:none !important;}
.nt-premium-preset-categories .nt-preset-category{
  flex-basis:calc(50% - 3px);
}
#textContextBar .nt-side-palette .nt-style-library-modes{
  gap:5px !important;
  margin-bottom:4px !important;
}
#textContextBar .nt-side-palette .nt-style-library-mode{
  min-height:30px !important;
  font-size:10px !important;
}
#textContextBar #ntTextStylePanel.nt-side-palette{
  max-height:min(78vh, 760px) !important;
  overflow-y:auto !important;
  scrollbar-width:none;
}
#textContextBar #ntTextStylePanel.nt-side-palette::-webkit-scrollbar{
  display:none;
  width:0;
  height:0;
}
@media (max-width:760px){
  .nt-style-library-mode{min-height:35px;font-size:12px;}
}


/* =========================================================
   v1.4.5.147 — TEXTURE AUTONOME AU-DESSUS DE LA TOP BAR
   ---------------------------------------------------------
   La finition Texture possède son panneau propre, distinct
   de Style/Forme, avec tous les réglages visibles à l'ouverture.
   ========================================================= */
#textContextBar #ntTextTexturePanel{
  width:302px !important;
  max-width:302px !important;
  padding:12px 36px 12px 12px !important;
  border-radius:16px !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:9px !important;
  overflow:auto !important;
  scrollbar-width:none;
}
#textContextBar #ntTextTexturePanel::-webkit-scrollbar{display:none;width:0;height:0;}
#textContextBar #ntTextTexturePanel .nt-text-tile-strip{
  display:grid !important;
  grid-template-columns:1fr !important;
  width:100% !important;
  gap:7px !important;
  overflow:visible !important;
}
#textContextBar #ntTextTexturePanel .nt-text-tile{
  width:100% !important;
  min-width:0 !important;
  min-height:46px !important;
  aspect-ratio:auto !important;
}
#textContextBar #ntTextTexturePanel .nt-text-texture-controls{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:8px !important;
  width:100% !important;
  margin-top:2px !important;
  padding-top:10px !important;
  border-top:1px solid rgba(212,175,55,.18);
}
#textContextBar #ntTextTexturePanel .nt-text-texture-controls .btn,
#textContextBar #ntTextTexturePanel .nt-text-texture-controls .mini-select{
  width:100% !important;
  max-width:none !important;
}
#textContextBar #ntTextTexturePanel .nt-texture-mode-label{
  margin-top:2px;
  color:rgba(228,204,136,.9);
  font-size:10px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
@media (max-width:760px){
  #textContextBar #ntTextTexturePanel{
    width:min(92vw,302px) !important;
    max-width:min(92vw,302px) !important;
  }
}

/* =========================================================
   v1.4.5.148 — PALETTE TEXTURE HORIZONTALE COMPACTE
   ---------------------------------------------------------
   Texture est déjà identifiée par le bouton de top bar :
   le panneau n'affiche plus une carte verticale mais une
   barre d'actions directe, sur une seule ligne en desktop.
   ========================================================= */
@media (min-width:761px){
  #textContextBar #ntTextTexturePanel{
    width:min(720px, calc(100vw - 28px)) !important;
    max-width:min(720px, calc(100vw - 28px)) !important;
    min-height:62px !important;
    padding:10px 38px 10px 10px !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:8px !important;
    overflow:visible !important;
    border-radius:16px !important;
  }
  #textContextBar #ntTextTexturePanel[hidden]{
    display:none !important;
  }
  #textContextBar #ntTextTexturePanel .nt-text-panel-title{
    display:none !important;
  }
  #textContextBar #ntTextTexturePanel .nt-text-tile-strip{
    display:flex !important;
    flex:0 0 auto !important;
    width:auto !important;
    min-width:0 !important;
    gap:0 !important;
    overflow:visible !important;
  }
  #textContextBar #ntTextTexturePanel .nt-text-tile{
    width:124px !important;
    min-width:124px !important;
    min-height:40px !important;
    height:40px !important;
    padding:4px 8px !important;
    display:flex !important;
    flex-direction:row !important;
    justify-content:center !important;
    align-items:center !important;
    gap:6px !important;
    aspect-ratio:auto !important;
  }
  #textContextBar #ntTextTexturePanel .nt-tile-preview{
    width:auto !important;
    height:auto !important;
    font-size:16px !important;
    line-height:1 !important;
  }
  #textContextBar #ntTextTexturePanel .nt-text-texture-controls{
    display:flex !important;
    flex:1 1 auto !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:8px !important;
    width:auto !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    border-top:0 !important;
  }
  #textContextBar #ntTextTexturePanel .nt-text-texture-controls .btn{
    width:auto !important;
    min-width:118px !important;
    max-width:none !important;
    height:40px !important;
    padding:0 12px !important;
    white-space:nowrap !important;
  }
  #textContextBar #ntTextTexturePanel .nt-texture-mode-label{
    display:none !important;
  }
  #textContextBar #ntTextTexturePanel .nt-text-texture-controls .mini-select{
    flex:1 1 132px !important;
    min-width:132px !important;
    max-width:164px !important;
    height:40px !important;
    margin-left:auto !important;
  }
}
@media (max-width:760px){
  #textContextBar #ntTextTexturePanel{
    width:min(94vw, 360px) !important;
    max-width:min(94vw, 360px) !important;
  }
  #textContextBar #ntTextTexturePanel .nt-text-panel-title{
    display:none !important;
  }
}


/* =========================================================
   v1.4.5.151 — FUSION IMAGE / PARAGRAPHE (V1)
   ========================================================= */
#textContextBar #ntTextTexturePanel .nt-texture-fusion-controls{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  width:100%;
  padding-top:8px;
  margin-top:6px;
  border-top:1px solid rgba(212,175,55,.14);
}
#textContextBar #ntTextTexturePanel .nt-texture-fusion-width-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:170px;
}
#textContextBar #ntTextTexturePanel #ntTextTextureFusionWidthValue{
  min-width:42px;
  color:rgba(240,233,214,.9);
  font-size:12px;
  font-weight:700;
}
#textContextBar #ntTextTexturePanel #ntTextTextureFusionToggleBtn.is-active{
  box-shadow:0 0 0 1px rgba(212,175,55,.38) inset;
}
@media (min-width:761px){
  #textContextBar #ntTextTexturePanel{
    min-height:102px !important;
    flex-wrap:wrap !important;
    align-items:flex-start !important;
  }
  #textContextBar #ntTextTexturePanel .nt-texture-fusion-controls{
    width:100%;
  }
}


/* =========================================================
   v1.4.5.152 — INTERLIGNE PARAGRAPHE EN TOP BAR
   ========================================================= */
#textContextBar .nt-paragraph-lineheight-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 2px;
  flex-shrink:0;
}
#textContextBar .nt-paragraph-lineheight-label{
  color:rgba(240,233,214,.88);
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
#textContextBar .nt-paragraph-lineheight-input{
  width:74px !important;
}
#textContextBar .nt-paragraph-lineheight-range{
  width:118px !important;
}
@media (max-width:760px){
  #textContextBar .nt-paragraph-lineheight-wrap{
    order:99;
  }
  #textContextBar .nt-paragraph-lineheight-range{
    width:98px !important;
  }
}


/* =========================================================
   v1.4.5.155 — FUSION TEXTE PILOTÉE DEPUIS LE PANNEAU IMAGE
   ---------------------------------------------------------
   Présentation Premium Soft Gold, compacte et cohérente avec
   les autres sous-panneaux Image déjà validés.
   ========================================================= */
.nt-image-text-fusion-section .section-title-row{
  margin-bottom:14px;
}
.nt-image-text-fusion-controls{
  gap:12px;
}
.nt-image-text-fusion-controls .field{
  display:grid;
  gap:7px;
  margin:0;
}
.nt-image-text-fusion-controls .field > span{
  color:rgba(240,233,214,.88);
  font-size:12px;
  font-weight:700;
}
.nt-fusion-toggle-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 13px;
  margin:0;
  border:1px solid rgba(212,175,55,.22);
  border-radius:14px;
  background:rgba(212,175,55,.065);
  color:rgba(255,247,220,.96);
  font-size:13px;
  font-weight:700;
}
.nt-fusion-toggle-row input{
  accent-color:#d4af37;
  width:16px;
  height:16px;
}
.nt-image-text-fusion-checks{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.nt-image-text-fusion-checks label{
  display:flex;
  align-items:center;
  gap:7px;
  margin:0;
  padding:9px 10px;
  border:1px solid rgba(212,175,55,.14);
  border-radius:12px;
  background:rgba(255,255,255,.028);
  color:rgba(240,233,214,.88);
  font-size:12px;
}
.nt-image-text-fusion-checks input{
  accent-color:#d4af37;
}
.nt-image-text-fusion-status{
  margin:0;
  padding:10px 11px;
  border:1px dashed rgba(212,175,55,.22);
  border-radius:12px;
  background:rgba(0,0,0,.18);
  color:rgba(240,233,214,.68);
  font-size:12px;
  line-height:1.42;
}
.nt-image-text-fusion-status[data-state="active"]{
  color:rgba(250,232,156,.98);
  border-color:rgba(212,175,55,.42);
  background:rgba(212,175,55,.075);
}
.nt-image-text-fusion-status[data-state="warning"]{
  color:rgba(255,214,128,.94);
  border-color:rgba(255,177,51,.34);
}
.nt-image-text-fusion-controls button:disabled,
.nt-image-text-fusion-controls input:disabled,
.nt-image-text-fusion-controls select:disabled{
  opacity:.48;
  cursor:not-allowed;
}

/* =========================================================
   v1.4.5.158 — ARCHITECTURE DESKTOP À PROPRIÉTÉS DROITES
   ---------------------------------------------------------
   1. Cinq zones fixes : menu supérieur, panneau gauche,
      top bar rapide, canvas central et propriétés à droite.
   2. Style / Forme / Texture / réglages image ne flottent
      plus sur le canvas : ils s'affichent dans une colonne
      stable à droite.
   3. Le mobile n'est pas refondu ici : cette étape stabilise
      exclusivement l'environnement desktop de production.
   ========================================================= */
:root{
  --nt-properties-w:372px;
  --nt-quickbar-h:94px;
}

@media (min-width:1001px){
  .main-area{
    grid-template-columns:300px minmax(0,1fr) var(--nt-properties-w) !important;
  }
  .panel-column{grid-column:1;min-width:0;}
  .canvas-area{grid-column:2;min-width:0;}
  .nt-properties-column{grid-column:3;}

  /* Mode simple sans panneau gauche : le panneau droit reste stable. */
  body.simple-mode.simple-panel-empty .main-area{
    grid-template-columns:minmax(0,1fr) var(--nt-properties-w) !important;
  }
  body.simple-mode.simple-panel-empty .canvas-area{grid-column:1;}
  body.simple-mode.simple-panel-empty .nt-properties-column{grid-column:2;}

  /* La top bar ne contient plus que les commandes rapides. */
  .canvas-area{
    grid-template-rows:var(--nt-quickbar-h) minmax(0,1fr) !important;
  }
  .canvas-toolbar{
    display:flex !important;
    align-items:center !important;
    height:var(--nt-quickbar-h) !important;
    min-height:var(--nt-quickbar-h) !important;
    max-height:var(--nt-quickbar-h) !important;
    padding:12px 14px !important;
    overflow:hidden !important;
    z-index:4 !important;
  }
  .canvas-toolbar .contextbar{
    min-height:56px !important;
    max-height:calc(var(--nt-quickbar-h) - 18px) !important;
    overflow:hidden !important;
    justify-content:center !important;
  }
  .canvas-toolbar .context-top{
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    scrollbar-width:none !important;
    padding-bottom:1px;
  }
  .canvas-toolbar .context-top::-webkit-scrollbar{display:none !important;}
}

/* =========================================================
   4. Panneau droit Premium Soft Gold
   ========================================================= */
.nt-properties-column{
  min-height:0;
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg, rgba(15,15,18,.98), rgba(20,19,23,.99));
  border-left:1px solid rgba(212,175,55,.16);
  overflow:hidden;
}
.nt-properties-head{
  display:grid;
  gap:5px;
  padding:18px 16px 15px;
  border-bottom:1px solid rgba(212,175,55,.14);
  background:rgba(212,175,55,.025);
}
.nt-properties-kicker{
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:10px;
  font-weight:800;
  color:rgba(241,215,122,.72);
}
.nt-properties-head strong{
  color:var(--gold-2);
  font-size:1.05rem;
}
.nt-properties-empty{
  min-height:0;
  margin:auto 18px;
  padding:28px 20px;
  text-align:center;
  border:1px dashed rgba(212,175,55,.22);
  border-radius:20px;
  color:var(--muted);
  background:rgba(255,255,255,.018);
}
.nt-properties-empty[hidden]{display:none !important;}
.nt-properties-empty-icon{
  width:44px;height:44px;margin:0 auto 14px;
  display:grid;place-items:center;border-radius:50%;
  color:var(--gold-2);background:rgba(212,175,55,.1);
  border:1px solid rgba(212,175,55,.24);
}
.nt-properties-empty strong{display:block;margin-bottom:7px;color:var(--text);}
.nt-properties-empty p{margin:0;font-size:.88rem;line-height:1.52;}
.nt-properties-context{
  display:flex;
  flex-direction:column;
  min-height:0;
  height:100%;
  padding:14px;
  gap:11px;
}
.nt-properties-context[hidden]{display:none !important;}
.nt-properties-section-title{
  color:var(--gold-2);
  font-size:.88rem;
  font-weight:800;
  letter-spacing:.02em;
}
.nt-properties-tabs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.nt-properties-tabs-text{grid-template-columns:repeat(3,minmax(0,1fr));}
.nt-properties-tabs .nt-property-tab,
.nt-properties-tabs .nt-text-tools-tab{
  min-width:0 !important;
  padding:10px 6px !important;
  border-radius:11px !important;
  border:1px solid rgba(212,175,55,.17) !important;
  background:rgba(255,255,255,.035) !important;
  color:var(--text) !important;
  font-size:12px !important;
  font-weight:750 !important;
  cursor:pointer;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.nt-properties-tabs .nt-property-tab:hover,
.nt-properties-tabs .nt-text-tools-tab:hover,
.nt-properties-tabs .nt-property-tab.is-active,
.nt-properties-tabs .nt-text-tools-tab.active{
  border-color:rgba(212,175,55,.48) !important;
  color:var(--gold-2) !important;
  background:rgba(212,175,55,.11) !important;
}
.nt-properties-content{
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:2px;
  scrollbar-width:none;
}
.nt-properties-content::-webkit-scrollbar{display:none;width:0;height:0;}

/* =========================================================
   5. Panneaux texte ancrés, jamais flottants
   ========================================================= */
.nt-properties-column .nt-text-tool-panel{
  position:static !important;
  width:100% !important;
  max-width:none !important;
  max-height:none !important;
  overflow:visible !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:10px !important;
  margin:0 !important;
  padding:12px !important;
  border-radius:16px !important;
  border:1px solid rgba(212,175,55,.20) !important;
  background:rgba(255,255,255,.025) !important;
  box-shadow:none !important;
  transform:none !important;
}
.nt-properties-column .nt-text-tool-panel[hidden]{display:none !important;}
.nt-properties-column .nt-text-palette-close{display:none !important;}
.nt-properties-column .nt-text-panel-title{color:var(--gold-2);margin-top:3px;}
.nt-properties-column .nt-text-tile-strip{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:7px !important;
  width:100% !important;
  max-width:none !important;
  overflow:visible !important;
}
.nt-properties-column .nt-text-tile{
  width:100% !important;
  min-width:0 !important;
  min-height:64px !important;
  padding:7px 4px !important;
}
.nt-properties-column .nt-text-control-line,
.nt-properties-column .nt-text-texture-controls{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  min-width:0 !important;
  width:100% !important;
  gap:8px !important;
  padding-top:9px !important;
  border-top:1px solid rgba(212,175,55,.14);
}
.nt-properties-column .nt-text-control-line[hidden],
.nt-properties-column .nt-text-texture-controls[hidden]{display:none !important;}
.nt-properties-column .nt-context-range,
.nt-properties-column .nt-text-texture-controls .btn,
.nt-properties-column .nt-text-texture-controls .mini-select{
  width:100% !important;
  max-width:none !important;
}

/* =========================================================
   6. Panneaux image et zone active ancrés à droite
   ========================================================= */
.nt-properties-column .nt-property-content-panel{
  margin:0 !important;
  border-radius:16px !important;
  background:rgba(255,255,255,.025) !important;
  border-color:rgba(212,175,55,.18) !important;
}
.nt-properties-column .nt-property-content-panel[hidden]{display:none !important;}
.nt-properties-column .nt-image-text-fusion-section .section-title-row h3,
.nt-properties-column .nt-property-content-panel h3{font-size:.98rem;}
.nt-properties-column .section{padding:13px;margin-bottom:0;}

/* Première fondation desktop : sous 1000 px, la colonne droite est masquée
   plutôt que de casser l'interface historique. Le mobile sera traité plus tard. */
@media (max-width:1000px){
  .nt-properties-column{display:none !important;}
}

/* =========================================================
   v1.4.5.159 — COMPACTAGE ONGLET STYLE + MARGE SAFE CHATBOT
   ---------------------------------------------------------
   Objectif : remonter les réglages Épaisseur / Couleur dans
   le panneau droit et réserver une marge basse afin qu'aucun
   contrôle important ne soit recouvert par le bouton chatbot.
   ========================================================= */
.nt-properties-content{
  padding-bottom:110px;
}
.nt-properties-column #ntTextStylePanel{
  gap:8px !important;
  padding:10px !important;
}
.nt-properties-column #ntTextStylePanel .nt-text-panel-title{
  margin:1px 0 !important;
  line-height:1.14 !important;
}
.nt-properties-column #ntTextStylePanel .nt-text-tile-strip{
  gap:6px !important;
}
.nt-properties-column #ntTextStylePanel .nt-text-tile{
  min-height:60px !important;
  padding:6px 4px !important;
}
.nt-properties-column #ntTextStylePanel .nt-fx-foundation-note{
  padding:1px 1px 0 !important;
  margin:0 !important;
  line-height:1.22 !important;
}
.nt-properties-column #ntTextStylePanel .nt-text-control-line{
  gap:6px !important;
  padding-top:6px !important;
  margin-top:0 !important;
}
.nt-properties-column #ntTextStylePanel #ntTextStyleIntensityLabel{
  margin-bottom:-1px;
}
.nt-properties-column #ntTextStylePanel #ntTextStyleColorWrap{
  margin-top:0 !important;
}


/* =========================================================
   v1.4.5.160 — DESKTOP FIXED WORKSPACE GRID
   ---------------------------------------------------------
   Le panneau gauche, le centre et le panneau droit ont
   désormais des colonnes réellement réservées sur desktop.
   Ouvrir / fermer un outil ne modifie plus :
   - la largeur du centre ;
   - la position de la top bar ;
   - le centrage du canvas ;
   - la largeur du panneau de propriétés.
   Le mobile n'est volontairement pas refondu ici.
   ========================================================= */
:root{
  --nt-desktop-left-panel-w:300px;
  --nt-desktop-properties-w:372px;
}

@media (min-width:1001px){
  /* Grille stable, identique quel que soit l'état du panneau gauche. */
  .main-area,
  body.simple-mode .main-area,
  body.simple-mode.simple-panel-empty .main-area{
    position:static !important;
    display:grid !important;
    grid-template-columns:
      var(--nt-desktop-left-panel-w)
      minmax(0,1fr)
      var(--nt-desktop-properties-w) !important;
    grid-template-rows:minmax(0,1fr) !important;
    min-width:0 !important;
    min-height:0 !important;
    overflow:hidden !important;
  }

  .panel-column,
  body.simple-mode .panel-column,
  body.simple-mode.simple-panel-empty .panel-column{
    display:block !important;
    position:relative !important;
    grid-column:1 !important;
    grid-row:1 !important;
    left:auto !important;
    top:auto !important;
    bottom:auto !important;
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    height:100% !important;
    z-index:auto !important;
    box-shadow:none !important;
    border-right:1px solid rgba(212,175,55,.14) !important;
  }

  .canvas-area,
  body.simple-mode .canvas-area,
  body.simple-mode.simple-panel-empty .canvas-area{
    position:relative !important;
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:0 !important;
    min-height:0 !important;
  }

  .nt-properties-column,
  body.simple-mode .nt-properties-column,
  body.simple-mode.simple-panel-empty .nt-properties-column{
    display:flex !important;
    grid-column:3 !important;
    grid-row:1 !important;
    width:auto !important;
    min-width:0 !important;
    height:100% !important;
  }

  /* La top bar appartient uniquement à la zone centrale. */
  .canvas-toolbar,
  body.simple-mode .canvas-toolbar,
  body.simple-mode:not(.simple-panel-empty) .canvas-toolbar,
  body.simple-mode.simple-panel-empty .canvas-toolbar{
    padding-left:14px !important;
    padding-right:14px !important;
    width:100% !important;
    box-sizing:border-box !important;
  }

  /* Etat neutre du panneau gauche : la colonne reste en place. */
  body.simple-mode.simple-panel-empty .panel-column::before{
    content:"Sélectionne un outil";
    position:absolute;
    inset:18px 14px auto;
    display:block;
    padding:16px 14px;
    color:rgba(246,240,220,.58);
    font-size:13px;
    font-weight:650;
    text-align:center;
    border:1px dashed rgba(212,175,55,.18);
    border-radius:16px;
    background:rgba(255,255,255,.018);
    pointer-events:none;
  }
}


/* =========================================================
   v1.4.5.161 — PARAGRAPH TOP BAR FIT
   ---------------------------------------------------------
   Le paragraphe possède plus de commandes rapides, notamment
   l'interligne. La grille desktop et la hauteur de la top bar
   restent inchangées : lorsque l'interligne est visible, les
   contrôles se réorganisent sur deux lignes compactes dans
   l'espace déjà réservé.
   ========================================================= */
@media (min-width:1001px){
  /* Texte classique : comportement horizontal existant conservé. */
  #textContextBar:not(:has(#ctxLineHeightWrap:not([hidden]))) .context-top{
    flex-wrap:nowrap !important;
  }

  /* Paragraphe sélectionné : deux lignes propres, sans débordement. */
  #textContextBar:has(#ctxLineHeightWrap:not([hidden])){
    padding:6px 9px !important;
    justify-content:center !important;
  }

  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) .context-top{
    display:flex !important;
    flex-wrap:wrap !important;
    align-content:center !important;
    align-items:center !important;
    gap:5px 6px !important;
    max-height:100% !important;
    overflow-x:hidden !important;
    overflow-y:hidden !important;
    padding-bottom:0 !important;
  }

  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) .btn.small,
  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) .mini-input,
  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) .mini-select,
  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) .mini-color{
    min-height:29px !important;
    height:29px !important;
  }

  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) #ctxFontSelect{
    width:146px !important;
    max-width:146px !important;
  }

  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) #ctxSizeInput{
    width:54px !important;
  }

  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) #ctxSizeRange{
    width:105px !important;
  }

  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) .nt-paragraph-lineheight-wrap{
    gap:5px !important;
    height:29px !important;
    padding:0 1px !important;
  }

  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) .nt-paragraph-lineheight-label{
    font-size:11px !important;
  }

  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) .nt-paragraph-lineheight-input{
    width:57px !important;
  }

  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) .nt-paragraph-lineheight-range{
    width:90px !important;
  }

  #textContextBar:has(#ctxLineHeightWrap:not([hidden])) .icon-toggle-btn{
    min-width:34px !important;
    width:34px !important;
    padding-left:5px !important;
    padding-right:5px !important;
  }
}


/* =========================================================
   v1.4.5.168 — MODE UTILISATEUR COMPLET / ADMIN SÉPARÉE
   ---------------------------------------------------------
   Les boutons Mode simple / Mode avancé restent présents dans
   le DOM pour compatibilité des anciens scripts, mais ne font
   plus partie de l'interface utilisateur. Le panneau droit
   porte désormais les outils créatifs standards.
   ========================================================= */
/* =========================================================
   v1.4.5.170 — MODES VISIBLES UNIQUEMENT POUR L'ADMIN
   ---------------------------------------------------------
   L'utilisateur standard ne voit jamais les boutons de mode.
   Lorsque le pont WordPress confirme l'autorisation admin,
   la classe is-admin-visible réactive les deux boutons.
   ========================================================= */
.nt-internal-mode-toggle:not(.is-admin-visible){
  display:none !important;
}
.nt-internal-mode-toggle.is-admin-visible{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
}


/* =========================================================
   v1.4.5.171 — PANNEAU DROIT IMAGE / PREMIUM UX FOUNDATION
   ---------------------------------------------------------
   Première amélioration ergonomique après validation de la
   structure desktop. Ce patch ne modifie aucun moteur :
   il stabilise la présentation du contexte Image.
   ========================================================= */

/* 1. En-tête de contexte plus informatif */
.nt-properties-head{
  gap:4px;
  padding:16px 16px 14px;
}
.nt-properties-head strong{
  font-size:1.09rem;
  line-height:1.2;
}
.nt-properties-meta{
  margin:3px 0 0;
  min-height:18px;
  color:rgba(244,232,194,.64);
  font-size:11px;
  line-height:1.45;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.nt-properties-meta[data-state="fusion"]{
  color:rgba(241,215,122,.88);
}

/* 2. Structure du contexte Image */
.nt-properties-context[data-nt-properties-context="image"]{
  padding:12px 13px 0;
  gap:10px;
}
.nt-image-properties-label{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:rgba(241,215,122,.76);
}
.nt-properties-dot{
  width:7px;
  height:7px;
  border-radius:99px;
  background:var(--gold-2);
  box-shadow:0 0 0 4px rgba(212,175,55,.10);
}

/* 3. Onglets Image premium : deux lignes fixes, repères visuels */
.nt-properties-context[data-nt-properties-context="image"] .nt-properties-tabs{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  min-height:42px !important;
  padding:8px 10px !important;
  font-size:11.5px !important;
  border-radius:13px !important;
  text-align:left;
  transition:border-color .16s ease, background .16s ease, color .16s ease;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab::before{
  content:"";
  width:26px;
  height:26px;
  flex:0 0 26px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:rgba(241,215,122,.82);
  background:rgba(212,175,55,.08);
  border:1px solid rgba(212,175,55,.14);
  font-size:13px;
  font-weight:800;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab[data-nt-property-image-tab="basic-transform"]::before{content:"↔";}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab[data-nt-property-image-tab="effects"]::before{content:"✦";}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab[data-nt-property-image-tab="adjustments"]::before{content:"☰";}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab[data-nt-property-image-tab="colorize"]::before{content:"●";}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab[data-nt-property-image-tab="text-fusion"]{
  grid-column:1 / -1;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab[data-nt-property-image-tab="text-fusion"]::before{content:"T";}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab.is-active::before{
  color:#111116;
  background:linear-gradient(135deg, #d4af37, #f1d77a);
  border-color:rgba(241,215,122,.72);
}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab.is-active{
  box-shadow:inset 0 0 0 1px rgba(241,215,122,.10), 0 6px 16px rgba(0,0,0,.13);
}

/* 4. Contenu image : scroll interne propre + marge chatbot conservée */
.nt-properties-context[data-nt-properties-context="image"] .nt-properties-content{
  padding:1px 1px 118px 0;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-content-panel{
  border-radius:17px !important;
  border:1px solid rgba(212,175,55,.18) !important;
  background:
    linear-gradient(180deg, rgba(212,175,55,.035), rgba(255,255,255,.018)) !important;
  overflow:hidden;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-content-panel h3{
  margin:0 0 11px;
  padding-bottom:9px;
  border-bottom:1px solid rgba(212,175,55,.14);
  color:var(--gold-2);
  font-size:.94rem !important;
  letter-spacing:.01em;
}

/* 5. Réglages et sliders uniformisés dans le panneau Image */
.nt-properties-context[data-nt-properties-context="image"] .section{
  padding:12px !important;
}
.nt-properties-context[data-nt-properties-context="image"] .stack{
  gap:9px;
}
.nt-properties-context[data-nt-properties-context="image"] .image-slider-row{
  display:grid;
  grid-template-columns:82px minmax(0,1fr) 58px;
  align-items:center;
  gap:7px;
  min-height:36px;
  padding:5px 7px;
  border-radius:10px;
  background:rgba(255,255,255,.019);
  border:1px solid transparent;
}
.nt-properties-context[data-nt-properties-context="image"] .image-slider-row:focus-within{
  border-color:rgba(212,175,55,.22);
  background:rgba(212,175,55,.04);
}
.nt-properties-context[data-nt-properties-context="image"] .image-slider-row label{
  color:rgba(246,240,220,.73);
  font-size:11px;
  font-weight:700;
}
.nt-properties-context[data-nt-properties-context="image"] .image-slider-row input[type="range"]{
  min-width:0;
  width:100%;
  accent-color:var(--gold);
}
.nt-properties-context[data-nt-properties-context="image"] .image-slider-row input[type="number"],
.nt-properties-context[data-nt-properties-context="image"] .image-slider-row select{
  width:100%;
  min-width:0;
  text-align:center;
}
.nt-properties-context[data-nt-properties-context="image"] .row2:not(.image-slider-row){
  gap:7px;
}
.nt-properties-context[data-nt-properties-context="image"] .btn.small{
  border-radius:10px;
}

/* 6. Fusion texte alignée sur la nouvelle identité du panneau */
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-section .section-subtitle{
  margin-top:-4px;
  margin-bottom:10px;
  font-size:11px;
  line-height:1.45;
  color:rgba(246,240,220,.62);
}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-toggle-row{
  border-radius:12px;
  padding:10px;
  border:1px solid rgba(212,175,55,.17);
  background:rgba(212,175,55,.045);
}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-checks{
  gap:7px;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-checks label{
  border-radius:10px;
  border:1px solid rgba(212,175,55,.13);
  background:rgba(255,255,255,.018);
  padding:8px 9px;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-status{
  border-radius:11px;
  padding:9px 10px;
}

/* 7. Etat vide plus doux */
.nt-properties-empty{
  margin:auto 16px;
  padding:24px 18px;
}


/* =========================================================
   v1.4.5.172 — PANNEAU DROIT TEXTE / PARAGRAPHE PREMIUM UX
   ---------------------------------------------------------
   Harmonisation sur le panneau Image validé en .171.
   Les moteurs Style / Forme / Texture / Arc restent inchangés.
   ========================================================= */

/* 1. Structure du contexte texte */
.nt-properties-context[data-nt-properties-context="text"]{
  padding:12px 13px 0;
  gap:10px;
}
.nt-text-properties-label{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:rgba(241,215,122,.76);
}

/* 2. Onglets Texte / Paragraphe */
.nt-properties-context[data-nt-properties-context="text"] .nt-properties-tabs-text{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-text-tools-tab{
  position:relative;
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:58px !important;
  padding:7px 5px !important;
  font-size:10.5px !important;
  line-height:1.22;
  border-radius:13px !important;
  text-align:center;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-text-tools-tab::before{
  content:"";
  width:25px;
  height:25px;
  flex:0 0 25px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:rgba(241,215,122,.84);
  background:rgba(212,175,55,.08);
  border:1px solid rgba(212,175,55,.14);
  font-size:12px;
  font-weight:800;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextStyleTab::before{content:"✦";}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapeTab::before{content:"⌒";}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTextureTab::before{content:"▧";}
.nt-properties-context[data-nt-properties-context="text"] .nt-text-tools-tab.active::before{
  color:#111116;
  background:linear-gradient(135deg, #d4af37, #f1d77a);
  border-color:rgba(241,215,122,.72);
}
.nt-properties-context[data-nt-properties-context="text"] .nt-text-tools-tab.active{
  box-shadow:inset 0 0 0 1px rgba(241,215,122,.10), 0 6px 16px rgba(0,0,0,.13);
}

/* 3. Contenu texte : carte stable et scroll protégé */
.nt-properties-context[data-nt-properties-context="text"] .nt-properties-content{
  padding:1px 1px 118px 0;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-text-tool-panel{
  border-radius:17px !important;
  border:1px solid rgba(212,175,55,.18) !important;
  background:
    linear-gradient(180deg, rgba(212,175,55,.035), rgba(255,255,255,.018)) !important;
  padding:11px !important;
  gap:9px !important;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-text-panel-card-title{
  margin:0 0 2px;
  padding-bottom:9px;
  border-bottom:1px solid rgba(212,175,55,.14);
  color:var(--gold-2);
  font-size:.94rem;
  font-weight:800;
  letter-spacing:.01em;
}

/* 4. Style : modes et catégories plus nets */
.nt-properties-context[data-nt-properties-context="text"] .nt-style-library-modes{
  padding:3px;
  gap:5px;
  border-radius:12px;
  background:rgba(255,255,255,.022);
  border:1px solid rgba(212,175,55,.13);
}
.nt-properties-context[data-nt-properties-context="text"] .nt-style-library-mode{
  border-radius:9px !important;
  min-height:32px;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-text-panel-title{
  margin:3px 0 1px !important;
  color:rgba(241,215,122,.75);
  font-size:10px;
  letter-spacing:.12em;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-preset-categories{
  gap:5px;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-preset-category{
  min-height:30px;
  border-radius:9px;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-text-tile{
  border-radius:11px !important;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-fx-module{
  border-radius:10px;
  min-height:35px;
}

/* 5. Forme : mise en valeur du moteur Arc validé */
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapePanel .nt-text-tile{
  min-height:72px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapeControls{
  margin-top:1px !important;
  padding:10px 9px 9px !important;
  gap:8px !important;
  border:1px solid rgba(212,175,55,.13);
  border-radius:12px;
  background:rgba(255,255,255,.018);
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapeControls .nt-control-name{
  color:rgba(246,240,220,.74);
  font-size:11px;
  font-weight:750;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapeControls .nt-context-range{
  accent-color:var(--gold);
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextStraightBtn{
  margin-top:3px;
  border-radius:10px;
}

/* 6. Texture : présentation plus lisible */
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-texture-tool-panel,
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel{
  gap:10px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-text-finish-strip .nt-text-tile{
  min-height:68px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTextureControls{
  padding:10px 9px !important;
  gap:7px !important;
  border:1px solid rgba(212,175,55,.13);
  border-radius:12px;
  background:rgba(255,255,255,.018);
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTextureControls .btn{
  border-radius:10px;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTextureControls .mini-select{
  border-radius:10px;
}

/* 7. Réglages Style finaux, plus compacts sous les presets */
.nt-properties-context[data-nt-properties-context="text"] #ntTextStyleControls{
  padding:9px !important;
  gap:7px !important;
  border-radius:12px;
  background:rgba(255,255,255,.018);
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextStyleControls .btn{
  border-radius:10px;
}


/* =========================================================
   v1.4.5.174 — MIGRATION RÉELLE DES PROPRIÉTÉS ZONE ACTIVE
   ---------------------------------------------------------
   Les vrais contrôles du masque vivent maintenant à droite.
   La top bar ne conserve qu'une information de contexte.
   ========================================================= */

/* 1. Top bar Zone active : bandeau léger, aucun doublon de contrôles */
.nt-mask-contextbar{
  align-items:center !important;
  justify-content:center !important;
  padding:0 14px !important;
}
.nt-mask-contextbar .nt-mask-legacy-toolbar-row{
  display:none !important;
}
.nt-mask-context-summary{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:48px;
  padding:0 14px;
  border:1px solid rgba(212,175,55,.18);
  border-radius:14px;
  background:rgba(212,175,55,.035);
  color:rgba(246,240,220,.68);
  font-size:12px;
}
.nt-mask-context-summary strong{
  color:var(--gold-2);
  font-size:12.5px;
}
.nt-mask-context-summary-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--gold-2);
  box-shadow:0 0 0 5px rgba(212,175,55,.10);
}

/* 2. Contexte droit Zone active */
.nt-properties-context[data-nt-properties-context="mask"]{
  padding:12px 13px 0;
  gap:10px;
}
.nt-mask-properties-label{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:rgba(241,215,122,.76);
}
.nt-properties-context[data-nt-properties-context="mask"] .nt-properties-content{
  padding:1px 1px 118px 0;
}
.nt-properties-context[data-nt-properties-context="mask"] .nt-mask-properties-card{
  display:flex !important;
  flex-direction:column;
  gap:10px;
  padding:12px !important;
  margin:0 !important;
  border-radius:17px !important;
  border:1px solid rgba(212,175,55,.18) !important;
  background:linear-gradient(180deg, rgba(212,175,55,.035), rgba(255,255,255,.018)) !important;
}
.nt-mask-properties-card > h3{
  margin:0;
  color:var(--gold-2);
  font-size:.96rem;
}
.nt-mask-properties-card > .section-subtitle{
  margin:-4px 0 1px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(212,175,55,.13);
  color:rgba(246,240,220,.61);
  font-size:11px;
  line-height:1.45;
}

/* 3. Onglets de Zone active */
.nt-mask-properties-tabs{
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:7px;
}
.nt-mask-properties-tabs .nt-mask-property-tab{
  min-height:41px !important;
  border-radius:12px !important;
}
.nt-mask-properties-tabs .nt-mask-property-tab[data-nt-property-mask-tab="actions"]{
  grid-column:1 / -1;
}
.nt-mask-properties-tabs .nt-mask-property-tab.is-active{
  border-color:rgba(212,175,55,.52) !important;
  color:var(--gold-2) !important;
  background:rgba(212,175,55,.11) !important;
}

/* 4. Contenu d'un onglet */
.nt-mask-panels-mount{
  display:block;
  min-height:0;
}
.nt-mask-right-panel{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px;
  border:1px solid rgba(212,175,55,.14);
  border-radius:13px;
  background:rgba(255,255,255,.016);
}
.nt-mask-right-panel[hidden]{
  display:none !important;
}
.nt-mask-right-panel h3{
  margin:0 0 3px;
  padding-bottom:9px;
  border-bottom:1px solid rgba(212,175,55,.11);
  color:var(--gold-2);
  font-size:.9rem;
}
.nt-mask-right-actions-row{
  gap:7px !important;
}
.nt-mask-right-actions-row .btn{
  flex:1 1 0;
  border-radius:10px;
  min-height:36px;
}
.nt-mask-danger-row{
  padding-top:7px;
  margin-top:2px;
  border-top:1px solid rgba(212,175,55,.11);
}

/* 5. Curseurs / champs de l'image interne */
.nt-mask-right-panel .image-slider-row{
  display:grid !important;
  grid-template-columns:82px minmax(0,1fr) 58px !important;
  align-items:center;
  gap:7px !important;
  min-height:38px;
  padding:5px 7px;
  border:1px solid transparent;
  border-radius:10px;
  background:rgba(255,255,255,.019);
}
.nt-mask-right-panel .image-slider-row:focus-within{
  border-color:rgba(212,175,55,.22);
  background:rgba(212,175,55,.04);
}
.nt-mask-right-panel .image-slider-row label{
  color:rgba(246,240,220,.73);
  font-size:11px;
  font-weight:700;
}
.nt-mask-right-panel .image-slider-row input[type="range"]{
  width:100%;
  min-width:0;
  accent-color:var(--gold);
}
.nt-mask-right-panel .image-slider-row input[type="number"],
.nt-mask-right-panel .image-slider-row select{
  width:100%;
  min-width:0;
  text-align:center;
}
.nt-mask-right-panel .effects-grid{
  margin-bottom:2px;
}
.nt-mask-right-panel .mask-effect-btn{
  border-radius:9px;
}
.nt-mask-right-panel .mask-zone-status{
  margin:10px 0 0;
  padding:9px 10px;
  border:1px solid rgba(212,175,55,.13);
  border-radius:11px;
  background:rgba(212,175,55,.035);
  color:rgba(246,240,220,.66);
  font-size:10.5px;
}

/* 6. Administration : la zone structurelle est visuellement distincte */
.nt-mask-right-panel[data-nt-mask-panel="zone"],
.nt-mask-right-panel[data-nt-mask-panel="actions"]{
  background:rgba(212,175,55,.025);
}
.nt-mask-right-panel .nt-mask-edit-mode-active{
  margin:0 0 2px;
  padding:9px;
  border:1px solid rgba(212,175,55,.15);
  border-radius:11px;
  background:rgba(212,175,55,.04);
}
.nt-mask-right-panel .nt-mask-edit-mode-note{
  margin:7px 0 0;
  color:rgba(246,240,220,.60);
  font-size:10.5px;
  line-height:1.42;
}


/* v1.4.5.175 — formes géométriques éditables V1 */
.nt-mask-polygon-tools{margin-top:10px;padding-top:10px;border-top:1px solid rgba(212,175,55,.11);}
.nt-mask-polygon-mode-row,.nt-mask-polygon-actions-row{gap:7px;}
.nt-mask-polygon-mode-row .btn,.nt-mask-polygon-actions-row .btn{flex:1 1 0;min-height:34px;border-radius:10px;}
.nt-mask-polygon-note{margin:8px 0;color:rgba(246,240,220,.62);font-size:10.6px;line-height:1.45;}
.mask-shape-grid .btn{min-height:34px;}


/* =========================================================
   v1.4.5.176 — ACCÈS VISIBLE AUX FORMES ÉDITABLES V1
   ---------------------------------------------------------
   Les formes modifiables sont affichées en premier dans
   Formes / Zones. La bibliothèque SVG historique est masquée
   visuellement sans supprimer encore son moteur.
   ========================================================= */
.nt-editable-shapes-library{
  margin:10px 0 13px;
  padding:11px;
  border-radius:16px;
  border:1px solid rgba(212,175,55,.28);
  background:
    radial-gradient(circle at top left, rgba(212,175,55,.11), transparent 52%),
    rgba(212,175,55,.045);
}
.nt-editable-shapes-heading{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:8px;
  margin:0 0 9px;
}
.nt-editable-shapes-heading strong{
  color:#f1d77a;
  font-size:12px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.nt-editable-shapes-heading span{
  color:rgba(246,240,220,.55);
  font-size:10px;
}
.nt-editable-shape-grid{
  margin-bottom:0;
  min-width:0;
}
.nt-editable-shape-grid .btn.primary{
  min-height:40px;
  border-color:rgba(212,175,55,.42);
}
.nt-classic-shapes-library{
  margin-top:12px;
  padding-top:11px;
  border-top:1px solid rgba(212,175,55,.12);
}
.nt-classic-shapes-heading strong{
  color:rgba(241,215,122,.72);
}
.nt-deprecated-svg-mask-library{
  display:none !important;
}


/* =========================================================
   v1.4.5.177 — BOUTON FORME INDÉPENDANT + ÉDITION DES POINTS
   ========================================================= */
.nt-free-shape-section{
  padding:13px !important;
}
.nt-free-shape-section .nt-editable-shapes-library{
  margin:2px 0 0;
}
.nt-mask-properties-tabs .nt-mask-property-tab[data-nt-property-mask-tab="shape"]{
  border-color:rgba(212,175,55,.23);
}
.nt-mask-right-panel[data-nt-mask-panel="shape"] .nt-mask-polygon-tools{
  margin-top:0;
  padding-top:0;
  border-top:0;
}
.nt-mask-right-panel[data-nt-mask-panel="shape"]{
  background:rgba(212,175,55,.032);
}


/* =========================================================
   v1.4.5.181 — FORME IMAGE LIBRE : UX SIMPLIFIÉE
   ---------------------------------------------------------
   La forme créative ne doit plus ressembler à un outil de
   préparation de modèle. Elle possède son identité visuelle.
   ========================================================= */
.nt-mask-properties-card.is-free-image-shape{
  border-color:rgba(212,175,55,.31) !important;
  background:
    radial-gradient(circle at 0 0, rgba(212,175,55,.09), transparent 38%),
    linear-gradient(180deg, rgba(212,175,55,.045), rgba(255,255,255,.018)) !important;
}
.nt-mask-properties-card.is-free-image-shape .nt-mask-properties-tabs{
  grid-template-columns:repeat(2, minmax(0,1fr));
}
.nt-mask-properties-card.is-free-image-shape .nt-mask-property-tab[data-nt-property-mask-tab="shape"]{
  color:var(--gold-2);
  border-color:rgba(212,175,55,.32);
}
.nt-mask-properties-card.is-free-image-shape .nt-mask-right-panel[data-nt-mask-panel="shape"]{
  background:rgba(212,175,55,.048);
  border-color:rgba(212,175,55,.23);
}
.nt-mask-properties-card.is-free-image-shape .nt-mask-right-panel[data-nt-mask-panel="shape"] h3{
  color:#f1d77a;
}


/* =========================================================
   v1.4.5.183 — Contour créatif
   ========================================================= */
#maskZoneOutlineStyleNote{
  min-width:0;
  border-radius:10px;
  border:1px solid rgba(212,175,55,.22);
  background:rgba(255,255,255,.04);
  color:#d8c27a;
  text-align:center;
  font-size:12px;
  pointer-events:none;
}
.nt-mask-properties-card.is-free-image-shape .nt-mask-right-panel[data-nt-mask-panel="shape"] .image-slider-row{
  margin-bottom:10px;
}


/* =========================================================
   v1.4.5.184 — More shapes + contour V2
   ========================================================= */
#maskZoneOutlineVariationBtn{
  width:100%;
  white-space:nowrap;
}
#maskZoneOutlineVariationSeed{
  min-width:82px;
}

/* v1.4.5.185 — formes de base éditables + miroirs */

/* v1.4.5.186 — formes basiques éditables et variantes directionnelles */


/* =========================================================
   v1.4.5.193 — Tooltip bouton rapide Forme
   ========================================================= */
.nt-shape-quick-btn{
  position:relative;
}
.nt-shape-quick-tooltip{
  position:fixed;
  z-index:999999;
  transform:translateX(-50%);
  max-width:260px;
  padding:9px 12px;
  border-radius:12px;
  border:1px solid rgba(212,175,55,.38);
  background:rgba(12,12,14,.96);
  color:#f4e2a2;
  font-size:12px;
  line-height:1.25;
  letter-spacing:.01em;
  box-shadow:0 12px 32px rgba(0,0,0,.38);
  pointer-events:none;
  white-space:normal;
}
.nt-shape-quick-tooltip::before{
  content:"";
  position:absolute;
  top:-6px;
  left:50%;
  width:10px;
  height:10px;
  transform:translateX(-50%) rotate(45deg);
  background:rgba(12,12,14,.96);
  border-left:1px solid rgba(212,175,55,.38);
  border-top:1px solid rgba(212,175,55,.38);
}


/* =========================================================
   v1.4.5.194 — Onglet Masque dans Propriétés image
   ========================================================= */
[data-nt-properties-context="image"] [data-nt-property-image-tab="editable-shapes"]{
  border-color:rgba(212,175,55,.35);
}
#ntImagePropertyMount [data-image-tool-panel="editable-shapes"]{
  margin-top:0;
}
#ntImagePropertyMount [data-image-tool-panel="editable-shapes"] .section-title-row h3{
  color:#f4e2a2;
}
#ntImagePropertyMount .nt-editable-shape-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
#ntImagePropertyMount .nt-editable-shape-grid .btn{
  min-height:38px;
  white-space:normal;
}


/* =========================================================
   v1.4.5.197 — Nettoyage UX du masque image
   ========================================================= */
.nt-mask-inline-card{
  margin-top:12px;
  padding:12px;
  border:1px solid rgba(212,175,55,.18);
  border-radius:14px;
  background:rgba(255,255,255,.02);
}
.nt-mask-inline-title{
  font-weight:700;
  color:#f4e2a2;
  margin-bottom:4px;
}
.nt-mask-inline-subtitle{
  margin:0 0 10px;
  font-size:12px;
  color:rgba(244,226,162,.72);
}
#imagePanelSwitcher [data-image-panel-open="mask-settings"],
#imagePanelSwitcher [data-image-panel-open="editable-shapes"]{
  display:none !important;
}


/* =========================================================
   v1.4.5.205 — Masques : tuiles utilisateur lisibles
   ========================================================= */
.nt-mask-category{
  margin-top:14px;
  padding:12px;
  border:1px solid rgba(212,175,55,.16);
  border-radius:16px;
  background:rgba(255,255,255,.025);
}
.nt-mask-category-title{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin-bottom:10px;
}
.nt-mask-category-title strong{
  color:#f4e2a2;
  font-size:13px;
  letter-spacing:.02em;
}
.nt-mask-category-title span{
  color:rgba(244,226,162,.66);
  font-size:11px;
  line-height:1.35;
}
.nt-mask-tile-grid{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}
.nt-mask-tile{
  min-height:74px;
  padding:10px;
  border:1px solid rgba(212,175,55,.22);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025));
  color:#f7e8ad;
  display:flex;
  align-items:center;
  gap:10px;
  text-align:left;
  cursor:pointer;
  transition:transform .14s ease, border-color .14s ease, background .14s ease, box-shadow .14s ease;
}
.nt-mask-tile:hover{
  transform:translateY(-1px);
  border-color:rgba(244,226,162,.52);
  background:linear-gradient(180deg, rgba(212,175,55,.12), rgba(255,255,255,.035));
  box-shadow:0 8px 22px rgba(0,0,0,.24);
}
.nt-mask-tile:active{
  transform:translateY(0);
}
.nt-mask-tile-icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:block;
  border:2px solid #f3da84;
  background:rgba(243,218,132,.08);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.25);
}
.nt-mask-tile-text{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.nt-mask-tile-text strong{
  font-size:12px;
  line-height:1.15;
  color:#fff3bf;
}
.nt-mask-tile-text em{
  font-style:normal;
  font-size:10px;
  line-height:1.15;
  color:rgba(244,226,162,.62);
}
.nt-mask-icon-rect-h{ border-radius:4px; width:38px; height:24px; }
.nt-mask-icon-rect-v{ border-radius:4px; width:24px; height:38px; }
.nt-mask-icon-square{ border-radius:4px; }
.nt-mask-icon-round{ border-radius:9px; }
.nt-mask-icon-circle{ border-radius:50%; }
.nt-mask-icon-oval-h{ border-radius:50%; width:38px; height:24px; }
.nt-mask-icon-oval-v{ border-radius:50%; width:24px; height:38px; }
.nt-mask-icon-diamond{ transform:rotate(45deg) scale(.82); }
.nt-mask-icon-triangle-up{
  width:0;height:0;background:transparent;border-left:18px solid transparent;border-right:18px solid transparent;border-bottom:34px solid #f3da84;border-top:0;box-shadow:none;
}
.nt-mask-icon-triangle-down{
  width:0;height:0;background:transparent;border-left:18px solid transparent;border-right:18px solid transparent;border-top:34px solid #f3da84;border-bottom:0;box-shadow:none;
}
.nt-mask-icon-triangle-left{
  width:0;height:0;background:transparent;border-top:18px solid transparent;border-bottom:18px solid transparent;border-right:34px solid #f3da84;border-left:0;box-shadow:none;
}
.nt-mask-icon-triangle-right{
  width:0;height:0;background:transparent;border-top:18px solid transparent;border-bottom:18px solid transparent;border-left:34px solid #f3da84;border-right:0;box-shadow:none;
}
.nt-mask-icon-pentagon{ clip-path:polygon(50% 0,100% 38%,82% 100%,18% 100%,0 38%); }
.nt-mask-icon-hexagon{ clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%); }
.nt-mask-icon-octagon{ clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%); }
.nt-mask-icon-star{ clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 92%,50% 70%,21% 92%,32% 56%,2% 35%,39% 35%); }
.nt-mask-icon-parallelogram{ transform:skewX(-16deg); }
.nt-mask-icon-parallelogram-m{ transform:skewX(16deg); }
.nt-mask-icon-trapezoid{ clip-path:polygon(22% 0,78% 0,100% 100%,0 100%); }
.nt-mask-icon-trapezoid-left{ clip-path:polygon(0 24%,100% 0,100% 100%,0 76%); }
.nt-mask-icon-trapezoid-right{ clip-path:polygon(0 0,100% 24%,100% 76%,0 100%); }
.nt-mask-icon-tag{ clip-path:polygon(0 0,78% 0,100% 50%,78% 100%,0 100%); }
.nt-mask-icon-tag-m{ clip-path:polygon(22% 0,100% 0,100% 100%,22% 100%,0 50%); }
.nt-mask-icon-burst{ clip-path:polygon(50% 0,58% 24%,82% 12%,74% 38%,100% 50%,74% 62%,82% 88%,58% 76%,50% 100%,42% 76%,18% 88%,26% 62%,0 50%,26% 38%,18% 12%,42% 24%); }

@media (max-width: 1180px){
  .nt-mask-tile-grid{ grid-template-columns:1fr; }
}


/* =========================================================
   v1.4.5.209 — Masques splashs, abstraits, triangles rectangles
   ========================================================= */
.nt-mask-icon-right-triangle-right{ clip-path:polygon(0 0,100% 0,0 100%); }
.nt-mask-icon-right-triangle-left{ clip-path:polygon(100% 0,100% 100%,0 0); }
.nt-mask-icon-splash-a{ clip-path:polygon(8% 48%,12% 36%,20% 25%,31% 24%,36% 12%,48% 18%,58% 10%,67% 18%,72% 30%,86% 32%,90% 46%,84% 58%,88% 72%,76% 78%,66% 74%,58% 88%,46% 84%,37% 76%,24% 80%,14% 70%,12% 58%); }
.nt-mask-icon-splash-b{ clip-path:polygon(10% 42%,17% 28%,28% 18%,40% 22%,47% 8%,58% 16%,70% 14%,79% 24%,87% 38%,94% 52%,88% 64%,90% 78%,78% 82%,68% 76%,58% 90%,45% 86%,35% 78%,22% 76%,12% 64%,8% 52%); }
.nt-mask-icon-paint-blob{ clip-path:polygon(10% 44%,16% 29%,28% 18%,43% 14%,58% 18%,72% 14%,84% 28%,90% 42%,86% 54%,92% 68%,82% 80%,67% 82%,58% 90%,44% 86%,31% 90%,18% 78%,12% 62%); }
.nt-mask-icon-blob-organic{ clip-path:polygon(14% 45%,20% 29%,33% 18%,49% 14%,64% 18%,77% 30%,84% 46%,82% 62%,72% 76%,56% 84%,39% 82%,24% 72%,15% 58%); }
.nt-mask-icon-cloud-organic{ clip-path:polygon(8% 58%,12% 44%,20% 34%,31% 28%,42% 28%,49% 16%,61% 18%,71% 26%,81% 35%,90% 48%,88% 61%,79% 71%,66% 77%,52% 80%,38% 78%,24% 72%,12% 66%); }
.nt-mask-icon-petal-burst{ clip-path:polygon(50% 4%,56% 14%,67% 10%,70% 22%,82% 20%,76% 32%,92% 38%,80% 47%,96% 56%,80% 63%,90% 76%,74% 72%,78% 88%,66% 82%,58% 95%,50% 84%,42% 95%,34% 82%,22% 88%,26% 72%,10% 76%,20% 63%,4% 56%,20% 47%,8% 38%,24% 32%,18% 20%,30% 22%,33% 10%,44% 14%); }


/* =========================================================
 * v1.4.5.211 — Dégradé dans Texture texte
 * ---------------------------------------------------------
 * Petit bloc premium ajouté au panneau Texture. Il ne modifie
 * pas les moteurs validés : il alimente le même remplissage
 * Fabric.Pattern que la texture image.
 * ========================================================= */
.nt-text-gradient-box{
  margin-top:10px;
  padding:10px;
  border:1px solid rgba(212,175,55,.28);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.nt-text-gradient-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  margin-bottom:0;
  min-width:0;
}
.nt-text-gradient-head strong{
  color:#f7e7b1;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.nt-text-gradient-head span{
  color:rgba(255,255,255,.58);
  font-size:11px;
}
.nt-text-gradient-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  align-items:end;
}
.nt-text-gradient-grid label{
  display:flex;
  flex-direction:column;
  gap:5px;
  color:rgba(255,255,255,.72);
  font-size:11px;
}
.nt-text-gradient-grid .mini-color{
  width:100%;
  min-width:46px;
  height:34px;
  border-radius:10px;
  padding:2px;
}
.nt-text-gradient-presets{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:9px 0;
}
.nt-text-gradient-presets button{
  border:1px solid rgba(212,175,55,.28);
  border-radius:999px;
  padding:6px 9px;
  background:rgba(10,12,18,.72);
  color:#f7e7b1;
  font-size:11px;
  cursor:pointer;
}
.nt-text-gradient-presets button:hover{
  border-color:rgba(212,175,55,.62);
  background:rgba(212,175,55,.14);
}
@media (max-width:760px){
  .nt-text-gradient-grid{grid-template-columns:1fr;}
}


/* =========================================================
   v1.4.5.214 — Presets image + fond zone de travail
   ========================================================= */
.nt-workspace-background-section,
.nt-image-presets-section{border:1px solid rgba(212,175,55,.18);background:linear-gradient(180deg,rgba(212,175,55,.055),rgba(255,255,255,.025));border-radius:18px;}
.nt-bg-preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.nt-bg-preset{appearance:none;border:1px solid rgba(212,175,55,.26);background:rgba(255,255,255,.045);color:#f8f0dc;border-radius:12px;padding:9px 10px;font-weight:850;cursor:pointer;text-align:center;}
.nt-bg-preset:hover{border-color:rgba(212,175,55,.62);background:rgba(212,175,55,.10);}
.nt-image-preset-actions{margin-bottom:12px;}
.nt-preset-all-toggle{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.35;color:#d7cbb1;border:1px solid rgba(212,175,55,.16);background:rgba(255,255,255,.035);border-radius:12px;padding:9px 10px;}
.nt-image-preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.nt-image-preset-tile{appearance:none;min-height:88px;border:1px solid rgba(212,175,55,.22);background:radial-gradient(circle at top right,rgba(212,175,55,.11),transparent 44%),rgba(255,255,255,.045);color:#f8f0dc;border-radius:16px;padding:10px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:6px;box-shadow:0 12px 26px rgba(0,0,0,.20);transition:transform .14s ease,border-color .14s ease,background .14s ease;}
.nt-image-preset-tile:hover{transform:translateY(-1px);border-color:rgba(212,175,55,.62);background:rgba(212,175,55,.085);}
.nt-image-preset-tile.is-last{outline:2px solid rgba(212,175,55,.30);}
.nt-image-preset-tile strong{font-size:12px;line-height:1.15;font-weight:950;}
.nt-image-preset-tile em{font-style:normal;font-size:10px;line-height:1.2;color:#bfb49d;}
.nt-preset-swatch{width:100%;height:22px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(90deg,#1d4ed8,#facc15,#ef4444);box-shadow:inset 0 1px 0 rgba(255,255,255,.12);}
.nt-preset-swatch[data-effect="grayscale"],.nt-preset-swatch[data-effect="blackwhite"]{background:linear-gradient(90deg,#050505,#777,#fff);}
.nt-preset-swatch[data-effect="sepia"],.nt-preset-swatch[data-effect="vintage"],.nt-preset-swatch[data-effect="brownie"]{background:linear-gradient(90deg,#3b2413,#a66a2f,#f6d7a7);}
.nt-preset-swatch[data-effect="kodachrome"],.nt-preset-swatch[data-effect="technicolor"]{background:linear-gradient(90deg,#ef233c,#facc15,#06b6d4,#7c3aed);}
.nt-preset-swatch[data-effect="polaroid"]{background:linear-gradient(90deg,#fef3c7,#fbcfe8,#bfdbfe);}
#ntImagePresetStatus[data-state="ok"],#ntWorkspaceBgStatus{color:#d9f99d;}
#ntImagePresetStatus[data-state="warn"]{color:#fecaca;}
@media (max-width:1280px){.nt-image-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nt-bg-preset-grid{grid-template-columns:1fr}}
@media (max-width:760px){.nt-image-preset-grid{grid-template-columns:1fr}}


/* =========================================================
   v1.4.5.217 — Presets V8 streetwear à plat
   ========================================================= */
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab[data-nt-property-image-tab="presets"]::before{content:"▦";}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab[data-nt-property-image-tab="editable-shapes"]::before{content:"◇";}


/* v1.4.5.217 — tuiles V8 plus lisibles dans le panneau droit */
.nt-image-presets-section .section-subtitle{line-height:1.35;}
.nt-image-preset-tile .nt-preset-swatch{height:24px;}
.nt-image-preset-tile strong{letter-spacing:.01em;}


/* =========================================================
   v1.4.5.230 — Effets bitmap UI
   ========================================================= */
.nt-properties-context[data-nt-properties-context="image"] .nt-property-tab[data-nt-property-image-tab="bitmap-effects"]::before{content:"◈";}
.nt-bitmap-fx-section{border:1px solid rgba(212,175,55,.18);background:linear-gradient(180deg,rgba(212,175,55,.045),rgba(255,255,255,.02));border-radius:18px;}
.nt-bitmap-fx-toggle{display:flex;align-items:center;gap:10px;font-weight:700;color:#f8f0dc;}
.nt-bitmap-fx-toggle input{accent-color:#d4af37;}
#ntBitmapFxStatus[data-state="ok"]{color:#d9f99d;}
#ntBitmapFxStatus[data-state="warn"]{color:#fecaca;}
#ntBitmapFxStatus[data-state="idle"]{color:#e8dcc0;}
.nt-bitmap-fx-grid .nt-image-preset-tile{min-height:92px;}
.nt-bitmap-fx-grid .nt-image-preset-tile.is-disabled{opacity:.52;filter:saturate(.75);cursor:not-allowed;}
.nt-bitmap-fx-grid .nt-image-preset-tile.is-last{border-color:rgba(255,255,255,.35);box-shadow:0 0 0 1px rgba(212,175,55,.35),0 12px 26px rgba(0,0,0,.26);}


/* =========================================================
   v1.4.5.231 — Effets bitmap variantes + intensité
   ========================================================= */
.nt-bitmap-intensity-row label{min-width:76px;}
.nt-bitmap-intensity-row input[type="range"]{flex:1 1 auto;}
.nt-bitmap-intensity-row input[type="number"]{width:76px;}
.nt-bitmap-fx-grid .nt-image-preset-tile strong{font-size:11px;line-height:1.2;}
.nt-bitmap-fx-grid .nt-image-preset-tile em{font-size:10px;line-height:1.25;}


/* =========================================================
   v1.4.5.232 — Intensité bitmap live
   ========================================================= */
#ntBitmapFxStatus[data-state="idle"]{color:#e8dcc0;}


/* =========================================================
   v1.4.5.233 — Pack effets bitmap supplémentaire
   ========================================================= */


/* =========================================================
   v1.4.5.234 — Radial Pixel
   ========================================================= */


/* =========================================================
   v1.4.5.235 — Radial Pixel burst
   ========================================================= */


/* v1.4.5.251 — texture panel cleanup */
.nt-image-texture-section .nt-image-texture-stack{gap:14px;}
.nt-image-texture-actions-clean{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.nt-image-texture-actions-clean .btn{width:100%;min-height:44px;justify-content:center;}
.nt-image-texture-section .nt-image-texture-intensity-row{margin-top:2px;}
.nt-image-texture-section .nt-image-texture-status{margin:2px 0 0;line-height:1.4;padding:0 2px;word-break:break-word;}
.nt-image-texture-section .section-subtitle{max-width:100%;}

/* =========================================================
   v1.4.5.261 — Galerie Filter Lab intégrée
   ========================================================= */
.nt-creative-filters-section{
  display:grid;
  gap:14px;
}
.nt-creative-filter-groups{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.nt-creative-filter-group{
  min-height:38px;
  border:1px solid rgba(204,165,84,.28);
  border-radius:12px;
  background:rgba(255,255,255,.035);
  color:var(--muted,#aeb6c4);
  font-size:12px;
  font-weight:850;
  padding:8px 9px;
  cursor:pointer;
  transition:.15s ease;
}
.nt-creative-filter-group:hover{
  border-color:rgba(240,210,139,.62);
  color:#fff;
}
.nt-creative-filter-group.is-active{
  color:#171107;
  border-color:rgba(240,210,139,.95);
  background:linear-gradient(135deg,#f0d28b,#c79640);
  box-shadow:0 8px 22px rgba(199,150,64,.18);
}
.nt-creative-filter-controls{
  display:grid;
  gap:10px;
  padding:11px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:14px;
  background:rgba(255,255,255,.025);
}
.nt-creative-filter-selection{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:34px;
  padding:7px 9px;
  border-radius:10px;
  background:rgba(0,0,0,.18);
}
.nt-creative-filter-selection span{
  color:var(--muted,#aeb6c4);
  font-size:11px;
}
.nt-creative-filter-selection strong{
  color:#f0d28b;
  font-size:12px;
  text-align:right;
}
.nt-creative-filter-actions{
  grid-template-columns:1fr 1fr;
}
.nt-creative-filter-status{
  margin:0;
  min-height:34px;
  padding:8px 10px;
  border-radius:10px;
  background:rgba(255,255,255,.035);
}
.nt-creative-filter-status[data-state="ok"]{color:#81d69c;background:rgba(54,155,86,.10)}
.nt-creative-filter-status[data-state="working"]{color:#f0d28b;background:rgba(199,150,64,.10)}
.nt-creative-filter-status[data-state="warn"]{color:#ffce73;background:rgba(255,174,46,.10)}
.nt-creative-filter-status[data-state="error"]{color:#ff8d8d;background:rgba(220,58,58,.10)}
.nt-creative-filter-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.nt-creative-filter-tile{
  position:relative;
  display:grid;
  grid-template-rows:92px minmax(34px,auto);
  padding:0;
  overflow:visible;
  border:1px solid rgba(255,255,255,.09);
  border-radius:13px;
  background:#0a0e15;
  color:#fff;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(0,0,0,.12);
  transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease;
}
.nt-creative-filter-tile:hover{
  transform:translateY(-1px);
  border-color:rgba(240,210,139,.62);
  box-shadow:0 11px 24px rgba(0,0,0,.22);
}
.nt-creative-filter-tile.is-active{
  border-color:#f0d28b;
  box-shadow:0 0 0 2px rgba(240,210,139,.16),0 11px 26px rgba(0,0,0,.24);
}
.nt-creative-filter-preview{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  min-height:92px;
  border-radius:12px 12px 0 0;
  background-color:#fff;
  background-image:linear-gradient(45deg,#e7e7e7 25%,transparent 25%),linear-gradient(-45deg,#e7e7e7 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e7e7e7 75%),linear-gradient(-45deg,transparent 75%,#e7e7e7 75%);
  background-size:14px 14px;
  background-position:0 0,0 7px,7px -7px,-7px 0;
}
.nt-creative-filter-preview::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 64%,rgba(0,0,0,.22));
}
.nt-creative-filter-thumb{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  transform:translateZ(0);
}
.nt-creative-filter-tile > strong{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 6px;
  border-top:1px solid rgba(255,255,255,.07);
  border-radius:0 0 12px 12px;
  font-size:11px;
  font-weight:900;
  line-height:1.15;
  text-align:center;
  background:linear-gradient(180deg,#111722,#080b10);
}
.nt-creative-filter-tile.is-active > strong{
  color:#171107;
  background:linear-gradient(135deg,#f0d28b,#c79640);
}
.nt-creative-filter-tile::after{
  content:attr(data-name);
  position:absolute;
  left:50%;
  bottom:calc(100% + 7px);
  transform:translateX(-50%);
  opacity:0;
  pointer-events:none;
  z-index:30;
  white-space:nowrap;
  padding:6px 8px;
  border:1px solid rgba(240,210,139,.65);
  border-radius:9px;
  background:#05070b;
  color:#fff;
  font-size:11px;
  font-weight:850;
  box-shadow:0 10px 22px rgba(0,0,0,.42);
  transition:opacity .12s ease;
}
.nt-creative-filter-tile:hover::after{opacity:1}
@media(max-width:1180px){
  .nt-creative-filter-grid{grid-template-columns:1fr}
}
.nt-creative-filter-tile:disabled{
  opacity:.48;
  filter:saturate(.65);
  cursor:not-allowed;
  transform:none;
}

/* ===============================================================
   v1.4.5.262.2 — Texte dans une forme
   =============================================================== */
.nt-text-shape-launch{width:100%;justify-content:center;min-height:42px;font-weight:900;}
.nt-text-shape-actions{display:flex;gap:10px;flex-wrap:wrap;}
.nt-text-shape-actions .btn{flex:1 1 170px;min-width:0;}
.nt-text-shape-modal[hidden]{display:none!important;}
.nt-text-shape-modal{position:fixed;inset:0;z-index:10080;display:flex;align-items:center;justify-content:center;padding:18px;}
.nt-text-shape-modal__backdrop{position:absolute;inset:0;background:rgba(4,6,10,.78);backdrop-filter:blur(6px);}
.nt-text-shape-modal__dialog{position:relative;z-index:1;width:min(1180px,calc(100vw - 28px));max-height:calc(100vh - 28px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(228,194,102,.46);border-radius:22px;background:linear-gradient(155deg,#171a21,#0e1015);box-shadow:0 28px 90px rgba(0,0,0,.62);color:#f5eddc;}
.nt-text-shape-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid rgba(228,194,102,.23);background:linear-gradient(135deg,rgba(228,194,102,.11),transparent 55%);}
.nt-text-shape-modal__head h2{margin:0 0 5px;color:#f0d28b;font-size:21px;}
.nt-text-shape-modal__head p{margin:0;color:#aaa084;font-size:12px;line-height:1.45;}
.nt-text-shape-modal__close{border:1px solid rgba(240,210,139,.35);border-radius:12px;width:38px;height:38px;background:#101218;color:#f4dfaa;font-size:24px;cursor:pointer;}
.nt-text-shape-modal__body{padding:18px 22px;overflow:auto;scrollbar-width:none;}.nt-text-shape-modal__body::-webkit-scrollbar{display:none;}
.nt-text-shape-layout{display:grid;grid-template-columns:minmax(340px,430px) minmax(0,1fr);gap:18px;align-items:stretch;}
.nt-text-shape-controls,.nt-text-shape-preview-card{border:1px solid rgba(255,255,255,.1);border-radius:18px;background:rgba(255,255,255,.035);overflow:hidden;}
.nt-text-shape-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:12px;border-bottom:1px solid rgba(255,255,255,.08);}
.nt-text-shape-tabs button{border:1px solid rgba(240,210,139,.22);border-radius:11px;padding:10px 8px;background:#101218;color:#d9d0bc;font-weight:850;cursor:pointer;}
.nt-text-shape-tabs button.is-active{background:linear-gradient(135deg,#f0d28b,#bf8c2d);color:#201708;border-color:transparent;}
.nt-text-shape-panel{display:none;padding:14px;}.nt-text-shape-panel.is-open{display:block;}
.nt-text-shape-preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.nt-text-shape-preset{border:1px solid rgba(240,210,139,.2);border-radius:14px;padding:7px;background:#0f1116;color:#eee4d0;cursor:pointer;overflow:hidden;}
.nt-text-shape-preset canvas{display:block;width:100%;height:64px;border-radius:9px;background:#faf7ee;}
.nt-text-shape-preset span{display:block;padding:8px 4px 3px;text-align:center;font-size:12px;font-weight:900;}
.nt-text-shape-preset.is-active{border-color:#f0d28b;box-shadow:0 0 0 2px rgba(240,210,139,.14);}
.nt-text-shape-help{margin:12px 0 0;color:#a49a80;font-size:11px;line-height:1.45;}
.nt-text-shape-point-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;}.nt-text-shape-point-columns>div{border:1px solid rgba(255,255,255,.08);border-radius:13px;padding:10px;background:rgba(0,0,0,.12);}.nt-text-shape-point-columns h3{margin:0 0 10px;color:#e6c878;font-size:12px;}
.nt-text-shape-field{display:block;margin:0 0 14px;}.nt-text-shape-field>span{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px;color:#d9d0bc;font-size:12px;font-weight:800;}.nt-text-shape-field b{color:#f0d28b;}.nt-text-shape-field input[type=range]{width:100%;accent-color:#d5a84f;}.nt-text-shape-field.compact{margin-bottom:10px;}
.nt-text-shape-toggle{display:flex;align-items:flex-start;gap:10px;margin:13px 0;padding:11px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(0,0,0,.12);}.nt-text-shape-toggle input{margin-top:3px;accent-color:#d5a84f;}.nt-text-shape-toggle strong,.nt-text-shape-toggle small{display:block;}.nt-text-shape-toggle strong{font-size:12px;color:#ece2cf;}.nt-text-shape-toggle small{margin-top:3px;color:#948a72;font-size:10px;line-height:1.35;}
.nt-text-shape-preview-card{display:flex;flex-direction:column;min-height:530px;}.nt-text-shape-preview-head{display:flex;justify-content:space-between;gap:12px;padding:13px 15px;border-bottom:1px solid rgba(255,255,255,.08);color:#e9ddc5;font-size:12px;}.nt-text-shape-preview-head span{color:#a79c82;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nt-text-shape-preview-wrap{flex:1;min-height:430px;display:flex;align-items:center;justify-content:center;padding:12px;background:#111318;overflow:auto;}.nt-text-shape-preview-wrap canvas{display:block;max-width:100%;height:auto;border-radius:13px;box-shadow:0 12px 34px rgba(0,0,0,.3);touch-action:none;cursor:crosshair;}
.nt-text-shape-status{margin:0;padding:10px 14px;border-top:1px solid rgba(255,255,255,.08);color:#a9a087;font-size:11px;}.nt-text-shape-status.is-ok{color:#9ad7a5;}.nt-text-shape-status.is-warn{color:#f0b58d;}
.nt-text-shape-modal__foot{display:flex;align-items:center;gap:10px;padding:14px 22px;border-top:1px solid rgba(228,194,102,.18);background:#0c0e12;}.nt-text-shape-modal__foot-spacer{flex:1;}
@media(max-width:900px){.nt-text-shape-layout{grid-template-columns:1fr;}.nt-text-shape-preview-card{min-height:420px;}.nt-text-shape-preview-wrap{min-height:330px;}.nt-text-shape-modal{padding:7px;}.nt-text-shape-modal__dialog{width:calc(100vw - 12px);max-height:calc(100vh - 12px);}.nt-text-shape-modal__head,.nt-text-shape-modal__body,.nt-text-shape-modal__foot{padding-left:13px;padding-right:13px;}}
@media(max-width:540px){.nt-text-shape-preset-grid,.nt-text-shape-point-columns{grid-template-columns:1fr;}.nt-text-shape-tabs{grid-template-columns:1fr;}.nt-text-shape-modal__foot{flex-wrap:wrap;}.nt-text-shape-modal__foot-spacer{display:none;}.nt-text-shape-modal__foot .btn{flex:1;}}

/* =========================================================
   v1.4.5.262.5 — Panneau image simplifié en trois familles
   ---------------------------------------------------------
   - Trois boutons seulement : Position, Effets, Réglages.
   - Les anciens moteurs restent présents sous forme de cartes.
   - Le bouton Formes non fonctionnel disparaît du panneau droit.
   ========================================================= */
.nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab{
  min-height:66px !important;
  padding:9px 6px !important;
  flex-direction:column;
  justify-content:center;
  gap:6px;
  text-align:center;
  font-size:12px !important;
  line-height:1.05;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab::before{
  width:29px;
  height:29px;
  flex-basis:29px;
  border-radius:9px;
  font-size:14px;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab[data-nt-property-image-group="position"]::before{content:"↔";}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab[data-nt-property-image-group="effects"]::before{content:"✦";}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab[data-nt-property-image-group="settings"]::before{content:"☰";}

#ntImagePropertyMount .nt-image-property-group{
  display:grid;
  gap:12px;
  min-width:0;
  animation:ntImagePropertyGroupIn .18s ease both;
}
#ntImagePropertyMount .nt-image-property-group[hidden]{
  display:none !important;
}
#ntImagePropertyMount .nt-image-property-group > .nt-property-content-panel{
  display:block;
  min-width:0;
  margin:0 !important;
}
#ntImagePropertyMount .nt-image-property-group > .nt-property-content-panel + .nt-property-content-panel{
  margin-top:0 !important;
}
#ntImagePropertyMount .nt-image-property-group > .nt-property-content-panel h3{
  position:relative;
}
#ntImagePropertyMount .nt-image-property-group > .nt-property-content-panel h3::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:1px;
  background:linear-gradient(90deg,rgba(212,175,55,.38),transparent);
}
@keyframes ntImagePropertyGroupIn{
  from{opacity:0;transform:translateY(4px)}
  to{opacity:1;transform:translateY(0)}
}

@media (max-width:1180px){
  .nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab{
    min-height:60px !important;
    font-size:11px !important;
  }
}

/* =========================================================
   v1.4.5.262.6 — Sous-navigation Effets et Réglages
   ---------------------------------------------------------
   Effets et Réglages n'empilent plus toutes leurs cartes.
   Un sélecteur compact ouvre un seul sous-panneau à la fois.
   ========================================================= */
#ntImagePropertyMount .nt-image-property-group[data-nt-image-property-group-panel="effects"],
#ntImagePropertyMount .nt-image-property-group[data-nt-image-property-group-panel="settings"]{
  align-content:start;
}
#ntImagePropertyMount .nt-image-subpanel-tabs{
  position:sticky;
  top:0;
  z-index:8;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  padding:1px 1px 9px;
  background:linear-gradient(180deg,#111216 0%,#111216 82%,rgba(17,18,22,0) 100%);
}
#ntImagePropertyMount .nt-image-subpanel-tab{
  min-width:0;
  min-height:43px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 8px;
  border:1px solid rgba(212,175,55,.16);
  border-radius:11px;
  background:rgba(255,255,255,.028);
  color:var(--text);
  font:inherit;
  font-size:10.5px;
  font-weight:780;
  line-height:1.1;
  text-align:left;
  cursor:pointer;
  transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease;
}
#ntImagePropertyMount .nt-image-subpanel-tab:hover{
  border-color:rgba(212,175,55,.38);
  background:rgba(212,175,55,.07);
  color:var(--gold-2);
  transform:translateY(-1px);
}
#ntImagePropertyMount .nt-image-subpanel-tab.is-active{
  border-color:rgba(241,215,122,.58);
  background:rgba(212,175,55,.13);
  color:var(--gold-2);
  box-shadow:inset 0 0 0 1px rgba(241,215,122,.08);
}
#ntImagePropertyMount .nt-image-subpanel-tab__icon{
  width:24px;
  height:24px;
  flex:0 0 24px;
  display:grid;
  place-items:center;
  border:1px solid rgba(212,175,55,.14);
  border-radius:7px;
  background:rgba(212,175,55,.07);
  color:rgba(241,215,122,.86);
  font-size:11px;
  font-weight:900;
}
#ntImagePropertyMount .nt-image-subpanel-tab.is-active .nt-image-subpanel-tab__icon{
  border-color:rgba(241,215,122,.65);
  background:linear-gradient(135deg,#d4af37,#f1d77a);
  color:#111116;
}
#ntImagePropertyMount .nt-image-subpanel-tab__label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:normal;
}
#ntImagePropertyMount .nt-image-subpanel-tab[data-nt-image-subpanel-open="text-fusion"]{
  grid-column:1 / -1;
}
#ntImagePropertyMount .nt-image-property-group > .nt-property-content-panel[data-nt-image-subpanel]{
  animation:ntImageSubpanelIn .16s ease both;
}
#ntImagePropertyMount .nt-image-property-group > .nt-property-content-panel[data-nt-image-subpanel][hidden]{
  display:none !important;
}
@keyframes ntImageSubpanelIn{
  from{opacity:0;transform:translateY(3px)}
  to{opacity:1;transform:translateY(0)}
}


/* =========================================================
   v1.4.5.262.7 — Sous-navigation Masque et formes scindées
   ========================================================= */
.nt-mask-section-tabs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:10px 0 12px;
}
.nt-mask-section-tab{
  min-height:38px;
  padding:7px 9px;
  border:1px solid rgba(212,175,55,.24);
  border-radius:11px;
  background:rgba(255,255,255,.025);
  color:rgba(255,243,191,.82);
  font-size:11px;
  font-weight:700;
  line-height:1.15;
  text-align:center;
  cursor:pointer;
  transition:border-color .14s ease, background .14s ease, color .14s ease, transform .14s ease;
}
.nt-mask-section-tab:hover{
  border-color:rgba(244,226,162,.52);
  background:rgba(212,175,55,.09);
  transform:translateY(-1px);
}
.nt-mask-section-tab.is-active{
  border-color:#e5c85d;
  background:linear-gradient(180deg,rgba(229,200,93,.22),rgba(212,175,55,.10));
  color:#fff4c7;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
.nt-mask-section-panel[hidden]{ display:none !important; }
.nt-mask-section-panel.is-active{ display:block; }
.nt-mask-section-panel .nt-mask-category{ margin-top:0; }
.nt-mask-dynamic-panel .nt-mask-inline-card{ margin-top:0; }
.nt-mask-icon-right-triangle-top{ clip-path:polygon(0 0,100% 0,100% 100%); }
.nt-mask-icon-right-triangle-bottom{ clip-path:polygon(0 0,100% 100%,0 100%); }
.nt-mask-icon-hexagon-top{ clip-path:polygon(0 100%,0 50%,25% 0,75% 0,100% 50%,100% 100%); }
.nt-mask-icon-hexagon-bottom{ clip-path:polygon(0 0,100% 0,100% 50%,75% 100%,25% 100%,0 50%); }
.nt-mask-icon-octagon-top{ clip-path:polygon(0 100%,0 42%,18% 0,82% 0,100% 42%,100% 100%); }
.nt-mask-icon-octagon-bottom{ clip-path:polygon(0 0,100% 0,100% 58%,82% 100%,18% 100%,0 58%); }
#ntImagePropertyMount .nt-mask-section-panel .nt-mask-tile-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

/* =========================================================
   v1.4.5.262.9 — Presets image réglables et personnels
   ========================================================= */
.nt-preset-category-nav{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:10px 0 12px;
}
.nt-preset-category-nav button,
.nt-preset-editor-tabs button{
  appearance:none;
  border:1px solid rgba(212,175,55,.24);
  background:rgba(255,255,255,.045);
  color:#e8dcc0;
  border-radius:999px;
  padding:7px 10px;
  font-size:11px;
  line-height:1;
  font-weight:850;
  cursor:pointer;
}
.nt-preset-category-nav button:hover,
.nt-preset-category-nav button.is-active,
.nt-preset-editor-tabs button:hover,
.nt-preset-editor-tabs button.is-active{
  border-color:rgba(212,175,55,.72);
  background:rgba(212,175,55,.15);
  color:#fff6d8;
}
.nt-preset-library-actions{
  display:flex;
  justify-content:stretch;
  margin:12px 0 4px;
}
.nt-preset-library-actions .btn{width:100%;}
.nt-image-preset-tile.is-user{
  position:relative;
  border-color:rgba(117,211,255,.28);
}
.nt-preset-user-badge{
  align-self:flex-start;
  border:1px solid rgba(117,211,255,.28);
  background:rgba(117,211,255,.09);
  color:#ccefff;
  border-radius:999px;
  padding:3px 7px;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.nt-preset-empty{grid-column:1/-1;margin:0;padding:14px;border:1px dashed rgba(212,175,55,.20);border-radius:12px;}
.nt-preset-editor-view{
  border:1px solid rgba(212,175,55,.20);
  border-radius:15px;
  background:rgba(0,0,0,.14);
  padding:11px;
  margin:10px 0 12px;
}
.nt-preset-editor-head{
  display:flex;
  flex-direction:column;
  gap:9px;
  margin-bottom:11px;
}
.nt-preset-editor-head > div{display:flex;flex-direction:column;gap:2px;}
.nt-preset-editor-head strong{font-size:14px;color:#fff3ca;}
.nt-preset-editor-head span{font-size:10px;color:#bfb49d;}
.nt-preset-intensity-row{
  margin-bottom:10px;
  padding:9px;
  border:1px solid rgba(212,175,55,.16);
  border-radius:12px;
  background:rgba(212,175,55,.045);
}
.nt-preset-editor-tabs{
  display:flex;
  gap:6px;
  overflow-x:auto;
  scrollbar-width:none;
  padding:2px 0 10px;
}
.nt-preset-editor-tabs::-webkit-scrollbar{display:none;}
.nt-preset-editor-tabs button{flex:0 0 auto;padding:7px 9px;}
.nt-preset-editor-panel{
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.025);
  border-radius:13px;
  padding:10px;
  min-height:96px;
}
.nt-preset-editor-panel[hidden]{display:none!important;}
.nt-preset-editor-panel label{font-size:11px;color:#e8dcc0;}
.nt-preset-save-box{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:11px;
  padding-top:11px;
  border-top:1px solid rgba(212,175,55,.16);
}
.nt-preset-save-box > label{font-size:11px;font-weight:800;color:#f1e5c8;}
.nt-preset-save-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
.nt-preset-save-actions .btn{width:100%;min-height:34px;white-space:normal;line-height:1.15;}
.nt-image-presets-section > .nt-image-preset-actions{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid rgba(212,175,55,.14);
}
@media (max-width:760px){
  .nt-preset-save-actions{grid-template-columns:1fr;}
}

/* =========================================================
   v1.4.5.262.10 — Contour extérieur autour de l'alpha
   ========================================================= */
.nt-alpha-outline-section .nt-alpha-outline-controls{
  gap:12px;
}
.nt-alpha-outline-toggle{
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 12px;
  border:1px solid var(--line, rgba(255,255,255,.12));
  border-radius:12px;
  background:rgba(255,255,255,.035);
  font-weight:700;
  cursor:pointer;
}
.nt-alpha-outline-toggle input{
  width:18px;
  height:18px;
  accent-color:var(--accent, #d6b56d);
}
.nt-alpha-outline-presets{
  align-items:stretch;
}
.nt-alpha-outline-color-preview{
  min-height:34px;
  border-radius:9px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(135deg,#fff 0 48%,#ddd 48% 52%,#fff 52% 100%);
}
.nt-alpha-outline-status{
  margin:0;
  padding:9px 10px;
  border-radius:10px;
  background:rgba(255,255,255,.035);
}
.nt-alpha-outline-status[data-state="ok"]{
  border:1px solid rgba(67,190,120,.35);
}
.nt-alpha-outline-status[data-state="working"]{
  border:1px solid rgba(214,181,109,.38);
}
.nt-alpha-outline-status[data-state="warn"]{
  border:1px solid rgba(235,117,117,.42);
}

.nt-alpha-stylize-panel{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  background:rgba(255,255,255,.03);
}
.nt-alpha-stylize-head{
  display:grid;
  gap:4px;
}
.nt-alpha-stylize-head strong{
  font-size:14px;
}
.nt-alpha-stylize-head span,
.nt-alpha-stylize-status{
  font-size:12px;
  color:rgba(255,255,255,.74);
}
.nt-alpha-stylize-groups{
  display:grid;
  gap:10px;
}
.nt-alpha-stylize-group{
  display:grid;
  gap:8px;
}
.nt-alpha-stylize-group-title{
  font-size:12px;
  font-weight:800;
  color:var(--accent, #d6b56d);
  text-transform:uppercase;
  letter-spacing:.04em;
}
.nt-alpha-stylize-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.nt-alpha-stylize-preset{
  min-height:42px;
}
.nt-alpha-stylize-preset.is-active,
.nt-alpha-stylize-preset[aria-pressed="true"]{
  box-shadow:0 0 0 1px rgba(214,181,109,.55) inset, 0 0 18px rgba(214,181,109,.16);
  background:linear-gradient(180deg,rgba(214,181,109,.22),rgba(214,181,109,.10));
}
.nt-alpha-stylize-actions{
  align-items:start;
}
.nt-alpha-stylize-status{
  margin:0;
  padding:9px 10px;
  border-radius:10px;
  background:rgba(255,255,255,.035);
}
.nt-alpha-stylize-status[data-state="ok"]{ border:1px solid rgba(67,190,120,.35); }
.nt-alpha-stylize-status[data-state="working"]{ border:1px solid rgba(214,181,109,.38); }
.nt-alpha-stylize-status[data-state="warn"]{ border:1px solid rgba(235,117,117,.42); }
@media (max-width:760px){
  .nt-alpha-stylize-grid{ grid-template-columns:1fr; }
}


/* =========================================================
   v1.4.5.262.11 — Déformations simples, trapèze et perspective
   ========================================================= */
.nt-deform-tabs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin:10px 0 12px;
}
.nt-deform-tab{
  min-width:0;
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:7px 6px;
  border:1px solid rgba(212,175,55,.20);
  border-radius:11px;
  background:rgba(255,255,255,.026);
  color:var(--text);
  font:inherit;
  font-size:10.5px;
  font-weight:800;
  cursor:pointer;
}
.nt-deform-tab span{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:7px;
  background:rgba(212,175,55,.08);
  color:var(--gold-2);
}
.nt-deform-tab:hover,
.nt-deform-tab.is-active{
  border-color:rgba(241,215,122,.58);
  background:rgba(212,175,55,.12);
  color:var(--gold-2);
}
.nt-deform-tab.is-active span{
  background:linear-gradient(135deg,#d4af37,#f1d77a);
  color:#111116;
}
.nt-deform-panel{
  display:grid;
  gap:10px;
  animation:ntImageSubpanelIn .16s ease both;
}
.nt-deform-panel[hidden]{display:none!important;}
.nt-deform-help{
  margin:0;
  padding:9px 10px;
  border:1px solid rgba(212,175,55,.13);
  border-radius:10px;
  background:rgba(255,255,255,.024);
  color:rgba(246,240,220,.68);
  font-size:11px;
  line-height:1.45;
}
.nt-trapezoid-grid,
.nt-perspective-presets{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.nt-trapezoid-grid button,
.nt-perspective-presets button{
  min-width:0;
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:7px 8px;
  border:1px solid rgba(212,175,55,.18);
  border-radius:10px;
  background:rgba(255,255,255,.025);
  color:var(--text);
  font:inherit;
  font-size:10.5px;
  font-weight:780;
  cursor:pointer;
}
.nt-trapezoid-grid button:hover,
.nt-trapezoid-grid button.is-active,
.nt-perspective-presets button:hover,
.nt-perspective-presets button.is-active{
  border-color:rgba(241,215,122,.56);
  background:rgba(212,175,55,.11);
  color:var(--gold-2);
}
.nt-trapezoid-preview{
  width:27px;
  height:20px;
  display:block;
  border:1px solid rgba(241,215,122,.70);
  background:rgba(212,175,55,.10);
}
.nt-trapezoid-preview.is-top{clip-path:polygon(24% 0,76% 0,100% 100%,0 100%);}
.nt-trapezoid-preview.is-bottom{clip-path:polygon(0 0,100% 0,76% 100%,24% 100%);}
.nt-trapezoid-preview.is-left{clip-path:polygon(24% 0,100% 0,100% 100%,24% 100%,0 76%,0 24%);}
.nt-trapezoid-preview.is-right{clip-path:polygon(0 0,76% 0,100% 24%,100% 76%,76% 100%,0 100%);}
.nt-deform-footer{
  display:grid;
  gap:8px;
  margin-top:4px;
  padding-top:10px;
  border-top:1px solid rgba(212,175,55,.14);
}
.nt-image-deform-status{
  margin:0;
  padding:8px 10px;
  border-radius:9px;
  background:rgba(255,255,255,.022);
  color:rgba(246,240,220,.66);
  font-size:10.5px;
  line-height:1.4;
}
.nt-image-deform-status[data-state="ok"]{color:#dff6d8;background:rgba(86,179,95,.09);}
.nt-image-deform-status[data-state="warn"]{color:#ffd6c9;background:rgba(215,91,54,.10);}
.nt-image-deform-section .btn.active{
  border-color:rgba(241,215,122,.60)!important;
  background:rgba(212,175,55,.13)!important;
  color:var(--gold-2)!important;
}
@media(max-width:1180px){
  .nt-deform-tab{font-size:10px;padding-inline:4px;}
}


/* ================================================================
   v1.4.5.262.14 — ROTATION IMAGE / TEXTE AU DEGRÉ PRÈS
   ================================================================ */
.nt-rotation-block{
  display:grid;
  gap:9px;
  padding:11px;
  border:1px solid rgba(212,175,55,.18);
  border-radius:15px;
  background:rgba(212,175,55,.035);
}
.nt-rotation-head{display:grid;gap:2px}
.nt-rotation-head strong{font-size:.92rem;color:var(--gold-2)}
.nt-rotation-head span{font-size:.76rem;color:var(--muted);line-height:1.3}
.nt-rotation-step-grid,.nt-rotation-preset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.nt-rotation-step-grid .btn,.nt-rotation-preset-grid .btn{min-width:0;padding-inline:6px;font-variant-numeric:tabular-nums}
.nt-rotation-exact{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;font-size:.84rem;color:var(--text)}
.nt-rotation-number-wrap{display:grid;grid-template-columns:minmax(64px,82px) 18px;align-items:center;gap:4px}
.nt-rotation-number-wrap input{
  width:100%;
  min-width:0;
  height:36px;
  padding:7px 9px;
  border-radius:11px;
  border:1px solid var(--line);
  background:#111116;
  color:var(--text);
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.nt-rotation-number-wrap b{font-size:.9rem;color:var(--gold-2)}
.nt-text-rotation-row{align-items:stretch!important}
.nt-text-rotation-block{width:min(100%,560px)}
@media(max-width:560px){
  .nt-rotation-step-grid,.nt-rotation-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* =========================================================
   v1.4.5.262.15 — TOOLBAR SOUS LA TOP BAR, ALIGNÉE À DROITE
   ---------------------------------------------------------
   La barre contextuelle n'est plus enfermée entre le panneau
   gauche et les propriétés droites. Elle occupe désormais la
   rangée supérieure des zones canvas + propriétés, directement
   sous la top bar. Les contrôles conservent leur taille et
   défilent horizontalement seulement si l'espace manque.
   ========================================================= */
:root{
  --nt-toolbar-row-h:96px;
}

@media (min-width:1001px){
  .main-area,
  body.simple-mode .main-area,
  body.simple-mode.simple-panel-empty .main-area{
    grid-template-columns:
      var(--nt-desktop-left-panel-w)
      minmax(0,1fr)
      var(--nt-desktop-properties-w) !important;
    grid-template-rows:var(--nt-toolbar-row-h) minmax(0,1fr) !important;
  }

  .panel-column,
  body.simple-mode .panel-column,
  body.simple-mode.simple-panel-empty .panel-column{
    grid-column:1 !important;
    grid-row:1 / 3 !important;
  }

  .canvas-toolbar,
  body.simple-mode .canvas-toolbar,
  body.simple-mode:not(.simple-panel-empty) .canvas-toolbar,
  body.simple-mode.simple-panel-empty .canvas-toolbar{
    grid-column:2 / 4 !important;
    grid-row:1 !important;
    width:100% !important;
    height:var(--nt-toolbar-row-h) !important;
    min-height:var(--nt-toolbar-row-h) !important;
    max-height:var(--nt-toolbar-row-h) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:10px !important;
    padding:12px 16px !important;
    overflow:hidden !important;
    border-left:0 !important;
    border-bottom:1px solid rgba(212,175,55,.14) !important;
    background:rgba(11,11,14,.96) !important;
    backdrop-filter:blur(14px);
    z-index:12 !important;
  }

  .canvas-area,
  body.simple-mode .canvas-area,
  body.simple-mode.simple-panel-empty .canvas-area{
    grid-column:2 !important;
    grid-row:2 !important;
    grid-template-rows:minmax(0,1fr) !important;
  }

  .nt-properties-column,
  body.simple-mode .nt-properties-column,
  body.simple-mode.simple-panel-empty .nt-properties-column{
    grid-column:3 !important;
    grid-row:2 !important;
  }

  .canvas-toolbar .contextbar{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    min-height:56px !important;
    max-height:72px !important;
    margin-left:auto !important;
    padding:8px 10px !important;
    overflow:hidden !important;
    justify-content:center !important;
  }

  .canvas-toolbar .context-top{
    width:100% !important;
    min-width:0 !important;
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:8px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    scrollbar-width:none !important;
    overscroll-behavior-x:contain;
    padding:1px 0 2px !important;
  }
  .canvas-toolbar .context-top::-webkit-scrollbar{display:none !important;}

  .canvas-toolbar .context-top > *,
  .canvas-toolbar .btn,
  .canvas-toolbar .btn.small,
  .canvas-toolbar .mini-select,
  .canvas-toolbar .mini-input,
  .canvas-toolbar .mini-color,
  .canvas-toolbar .mini-range{
    flex:0 0 auto !important;
    flex-shrink:0 !important;
  }

  .canvas-toolbar .btn,
  .canvas-toolbar .btn.small{
    min-height:38px !important;
    width:auto !important;
    min-width:max-content !important;
    white-space:nowrap !important;
    line-height:1.1 !important;
  }

  .canvas-toolbar .mini-select{
    width:auto !important;
    min-width:128px !important;
    max-width:210px !important;
  }
  .canvas-toolbar .mini-input{width:76px !important;}
  .canvas-toolbar .mini-color{width:42px !important;}
  .canvas-toolbar .mini-range{width:140px !important;}

  /* Les palettes détaillées restent dans les propriétés droites. */
  .canvas-toolbar .nt-text-tool-panel{
    max-width:100% !important;
  }
}

@media (max-width:1000px){
  .main-area,
  body.simple-mode .main-area,
  body.simple-mode.simple-panel-empty .main-area{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-rows:auto auto minmax(0,1fr) !important;
  }
  .panel-column,
  body.simple-mode .panel-column,
  body.simple-mode.simple-panel-empty .panel-column{
    grid-column:1 !important;
    grid-row:1 !important;
  }
  .canvas-toolbar,
  body.simple-mode .canvas-toolbar,
  body.simple-mode:not(.simple-panel-empty) .canvas-toolbar,
  body.simple-mode.simple-panel-empty .canvas-toolbar{
    grid-column:1 !important;
    grid-row:2 !important;
    width:100% !important;
  }
  .canvas-area,
  body.simple-mode .canvas-area,
  body.simple-mode.simple-panel-empty .canvas-area{
    grid-column:1 !important;
    grid-row:3 !important;
    grid-template-rows:minmax(0,1fr) !important;
  }
}


/* =========================================================
   v1.4.5.262.16 — TOOLBAR SOUS LA TOP BAR, ALIGNÉE À GAUCHE
   ---------------------------------------------------------
   La structure introduite en v1.4.5.262.15 est conservée.
   Les commandes contextuelles démarrent désormais depuis le
   bord gauche de la zone canvas + propriétés. Les contrôles
   gardent leur taille fixe et défilent horizontalement si la
   largeur disponible devient insuffisante.
   ========================================================= */
@media (min-width:1001px){
  .canvas-toolbar,
  body.simple-mode .canvas-toolbar,
  body.simple-mode:not(.simple-panel-empty) .canvas-toolbar,
  body.simple-mode.simple-panel-empty .canvas-toolbar{
    justify-content:flex-start !important;
  }

  .canvas-toolbar .contextbar{
    margin-left:0 !important;
    margin-right:auto !important;
    justify-content:flex-start !important;
  }

  .canvas-toolbar .context-top{
    justify-content:flex-start !important;
  }
}

@media (max-width:1000px){
  .canvas-toolbar,
  body.simple-mode .canvas-toolbar,
  body.simple-mode:not(.simple-panel-empty) .canvas-toolbar,
  body.simple-mode.simple-panel-empty .canvas-toolbar{
    justify-content:flex-start !important;
  }

  .canvas-toolbar .contextbar,
  .canvas-toolbar .context-top{
    justify-content:flex-start !important;
  }
}


/* =========================================================
   v1.4.5.262.17 — ROTATION TEXTE EN POPOVER COMPACT
   ---------------------------------------------------------
   Le panneau Rotation est sorti du flux de la toolbar. Il se
   positionne sous le bouton Rotation (ou au-dessus si besoin),
   sans modifier la hauteur de la barre ni celle du canvas.
   ========================================================= */
#row-rotation.nt-text-rotation-popover{
  position:fixed !important;
  z-index:10060 !important;
  display:none !important;
  align-items:stretch !important;
  flex-direction:column !important;
  flex-wrap:nowrap !important;
  gap:0 !important;
  width:min(372px,calc(100vw - 20px));
  max-width:calc(100vw - 20px) !important;
  max-height:min(520px,calc(100vh - 20px));
  margin:0 !important;
  padding:10px !important;
  overflow:auto !important;
  border:1px solid rgba(212,175,55,.34) !important;
  border-radius:16px !important;
  background:linear-gradient(180deg,rgba(24,23,20,.995),rgba(15,15,18,.995)) !important;
  box-shadow:0 22px 60px rgba(0,0,0,.58),0 0 0 1px rgba(255,255,255,.025) inset !important;
  backdrop-filter:blur(18px);
  overscroll-behavior:contain;
}
#row-rotation.nt-text-rotation-popover.active{display:flex !important;}
#row-rotation.nt-text-rotation-popover .nt-text-rotation-block{
  width:100% !important;
  max-width:none !important;
  padding:10px !important;
  gap:8px !important;
  border:0 !important;
  border-radius:12px !important;
  background:transparent !important;
}
#row-rotation.nt-text-rotation-popover .nt-rotation-head{
  position:relative;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 34px;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:10px;
  row-gap:2px;
  padding-right:0;
}
#row-rotation.nt-text-rotation-popover .nt-rotation-head strong{
  grid-column:1;
  grid-row:1;
}
#row-rotation.nt-text-rotation-popover .nt-rotation-head > span{
  grid-column:1;
  grid-row:2;
}
.nt-rotation-popover-close{
  grid-column:2;
  grid-row:1 / 3;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(212,175,55,.22);
  border-radius:10px;
  background:#17171c;
  color:var(--text);
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.nt-rotation-popover-close:hover,
.nt-rotation-popover-close:focus-visible{
  border-color:rgba(212,175,55,.6);
  color:var(--gold-2);
  outline:none;
}
#row-rotation.nt-text-rotation-popover .nt-rotation-preset-grid,
#row-rotation.nt-text-rotation-popover .nt-rotation-step-grid{
  gap:6px !important;
}
#row-rotation.nt-text-rotation-popover .btn.small{
  min-width:0 !important;
  width:100% !important;
  min-height:36px !important;
  height:36px !important;
  padding:7px 8px !important;
  white-space:nowrap !important;
}
#row-rotation.nt-text-rotation-popover .nt-rotation-exact{
  padding-top:2px;
}
#row-rotation.nt-text-rotation-popover .nt-rotation-number-wrap input{
  height:36px !important;
}
@media(max-width:420px){
  #row-rotation.nt-text-rotation-popover{
    width:calc(100vw - 16px) !important;
    max-width:calc(100vw - 16px) !important;
    padding:8px !important;
  }
}


/* v1.4.5.262.19 — Soustraction de forme */
.nt-shape-subtract-section{margin-top:10px}
.nt-shape-subtract-controls{gap:12px}
.nt-shape-subtract-toggle{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(212,177,84,.24);border-radius:14px;background:rgba(255,255,255,.03)}
.nt-shape-subtract-toggle input{margin:0}
.nt-shape-subtract-section select#ntShapeSubtractSourceSelect{width:100%;min-width:0;background:rgba(15,17,24,.88);color:#f4ead0;border:1px solid rgba(212,177,84,.22);border-radius:12px;padding:10px 12px;font:inherit}
.nt-shape-subtract-actions{display:flex;gap:10px;flex-wrap:wrap}
.nt-shape-subtract-status[data-state="warn"]{color:#ffcf87}
.nt-shape-subtract-status[data-state="ok"]{color:#a8f0b0}


/* =========================================================
   v1.4.5.262.23 — PANNEAU DROIT LÉGÈREMENT ÉLARGI
   ---------------------------------------------------------
   Le panneau de propriétés gagne 20 px sur les écrans desktop
   confortables. Sur les largeurs plus serrées, il revient à
   352 px afin de préserver la zone centrale et le canvas.
   ========================================================= */
@media (min-width:1001px) and (max-width:1320px){
  :root{
    --nt-properties-w:352px;
    --nt-desktop-properties-w:352px;
  }
}

/* v1.4.5.262.24 — Découpe d'image en plusieurs visuels */
.nt-image-crop-split-section{margin-top:12px}
.nt-image-crop-split-stack{gap:12px}
.nt-crop-split-presets{display:flex;flex-wrap:wrap;gap:8px}
.nt-crop-split-preset.is-active{box-shadow:0 0 0 1px rgba(212,177,84,.32) inset}
.nt-crop-split-check{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(212,177,84,.18);border-radius:14px;background:rgba(255,255,255,.03)}
.nt-crop-split-check input{margin:0}
.nt-crop-split-actions{display:flex;gap:10px;flex-wrap:wrap}
.nt-crop-split-status[data-state="warn"]{color:#ffcf87}
.nt-crop-split-status[data-state="ok"]{color:#a8f0b0}

/* v1.4.5.262.25 — Découpe libre avec zones manipulables */
.nt-crop-mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 12px}
.nt-crop-mode-tab{min-height:40px;border:1px solid rgba(212,177,84,.18);border-radius:12px;background:rgba(255,255,255,.035);color:var(--text);font:inherit;font-weight:700;cursor:pointer}
.nt-crop-mode-tab.is-active{border-color:rgba(212,177,84,.55);background:rgba(212,177,84,.12);color:var(--gold-2)}
.nt-crop-mode-panel{display:block}
.nt-crop-mode-panel[hidden]{display:none!important}
.nt-crop-free-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.nt-crop-free-actions .btn:first-child{grid-column:1/-1}
.nt-crop-free-count{padding:10px 12px;border:1px dashed rgba(212,177,84,.3);border-radius:12px;background:rgba(212,177,84,.06);color:var(--gold-2);font-weight:800;text-align:center}
#ntCropFreeDrawBtn.is-active{border-color:rgba(212,177,84,.65);background:rgba(212,177,84,.16);color:var(--gold-2)}
\n\n/* =========================================================\n   v1.4.5.262.26 — TEXTURE TOUJOURS AU-DESSUS DU CANVAS\n   ---------------------------------------------------------\n   Les règles desktop de la toolbar utilisent overflow:hidden.\n   On rouvre uniquement la pile lorsque les palettes texte sont\n   visibles, et la modale Positionner est portée dans <body>.\n   ========================================================= */\n.canvas-toolbar:has(#ntTextTexturePanel:not([hidden])),\n.canvas-toolbar:has(#ntTextStylePanel:not([hidden])),\n.canvas-toolbar:has(#ntTextShapePanel:not([hidden])){\n  overflow:visible !important;\n  z-index:500 !important;\n}\n\n.canvas-toolbar .contextbar:has(#ntTextTexturePanel:not([hidden])),\n.canvas-toolbar .contextbar:has(#ntTextStylePanel:not([hidden])),\n.canvas-toolbar .contextbar:has(#ntTextShapePanel:not([hidden])){\n  overflow:visible !important;\n}\n\n#textContextBar .nt-text-tool-panel{\n  z-index:520 !important;\n}\n\nbody > #ntTexturePositionModal.nt-texture-position-modal{\n  position:fixed !important;\n  inset:0 !important;\n  z-index:1000000 !important;\n  overflow:visible !important;\n  isolation:isolate;\n}\n\nbody > #ntTexturePositionModal .nt-texture-position-modal__backdrop{\n  z-index:0 !important;\n}\n\nbody > #ntTexturePositionModal .nt-texture-position-modal__dialog{\n  z-index:1 !important;\n}\n

/* =========================================================
   v1.4.5.262.29 — PANNEAU DROIT PLUS DIRECT
   ---------------------------------------------------------
   Le contexte est déjà évident via « Outils image / Outils texte ».
   On supprime donc le grand bandeau redondant Propriétés / sélection.
   ========================================================= */
.nt-properties-column > .nt-properties-head{
  display:none !important;
}
.nt-properties-context{
  padding-top:12px;
}
.nt-properties-context[data-nt-properties-context="image"],
.nt-properties-context[data-nt-properties-context="text"],
.nt-properties-context[data-nt-properties-context="mask"]{
  padding-top:12px;
}


/* v1.4.5.262.30 — suppression définitive de l’en-tête Propriétés */
.nt-properties-head{display:none !important;}
.nt-properties-column{padding-top:0;}

/* =========================================================
   v1.4.5.262.31 — Dégradé : direction libre + radial
   ========================================================= */
.nt-text-gradient-type-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin-bottom:9px;
}
.nt-gradient-type-btn{
  appearance:none;
  border:1px solid rgba(212,175,55,.25);
  border-radius:10px;
  padding:8px 10px;
  background:rgba(10,12,18,.62);
  color:#ddd4be;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}
.nt-gradient-type-btn.is-active{
  color:#17130a;
  border-color:#e4c35f;
  background:linear-gradient(180deg,#f3dc86,#d4af37);
}
.nt-text-gradient-direction,
.nt-text-gradient-radial{
  padding:9px;
  margin-bottom:9px;
  border:1px solid rgba(212,175,55,.18);
  border-radius:11px;
  background:rgba(0,0,0,.14);
}
.nt-gradient-control-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:7px;
  color:rgba(255,255,255,.72);
  font-size:11px;
}
.nt-gradient-control-head strong{
  color:#f7e7b1;
  font-size:11px;
}
.nt-gradient-angle-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 62px;
  gap:8px;
  align-items:center;
}
.nt-gradient-angle-row input[type="range"],
.nt-gradient-axis-row input[type="range"]{
  width:100%;
  min-width:0;
  accent-color:#d4af37;
}
.nt-gradient-angle-row input[type="number"],
.nt-gradient-axis-row input[type="number"]{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  border:1px solid rgba(212,175,55,.24);
  border-radius:9px;
  background:#111216;
  color:#f7e7b1;
  padding:7px 6px;
  text-align:center;
  font:inherit;
}
.nt-gradient-direction-presets{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  margin-top:7px;
}
.nt-gradient-direction-presets button{
  appearance:none;
  border:1px solid rgba(212,175,55,.20);
  border-radius:8px;
  background:rgba(255,255,255,.035);
  color:#ddd4be;
  padding:5px 4px;
  font-size:10px;
  cursor:pointer;
}
.nt-gradient-direction-presets button:hover{
  border-color:rgba(212,175,55,.55);
  color:#f7e7b1;
}
.nt-gradient-axis-row{
  display:grid;
  grid-template-columns:56px minmax(0,1fr) 54px;
  gap:7px;
  align-items:center;
  margin-top:7px;
  color:rgba(255,255,255,.65);
  font-size:10px;
}
.nt-text-gradient-preview{
  height:26px;
  margin-bottom:9px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:9px;
  background:linear-gradient(135deg,#d4af37,#fff1b4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.nt-text-gradient-colors{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  align-items:end;
}
.nt-text-gradient-colors label{
  display:flex;
  flex-direction:column;
  gap:5px;
  color:rgba(255,255,255,.72);
  font-size:11px;
}
.nt-text-gradient-colors .mini-color{
  width:100%;
  min-width:46px;
  height:34px;
  border-radius:10px;
  padding:2px;
}
@media (max-width:760px){
  .nt-text-gradient-colors{grid-template-columns:1fr 1fr;}
}

/* =========================================================
   v1.4.5.262.32 — Texture + couleur / modes de fusion
   ========================================================= */
.nt-text-texture-blend-box{
  margin-top:10px;
  padding:10px;
  border:1px solid rgba(212,175,55,.24);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.022));
}
.nt-texture-blend-head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:10px;
  margin-bottom:9px;
}
.nt-texture-blend-head strong{color:#f7e7b1;font-size:12px;letter-spacing:.07em;text-transform:uppercase}
.nt-texture-blend-head span{color:rgba(255,255,255,.56);font-size:10px;text-align:right}
.nt-texture-blend-toggle{display:flex;align-items:center;gap:8px;color:#f4ead0;font-size:11px;font-weight:800;margin-bottom:9px}
.nt-texture-blend-grid{display:grid;grid-template-columns:minmax(74px,.7fr) minmax(150px,1.5fr);gap:8px;align-items:end}
.nt-texture-blend-grid label{display:flex;flex-direction:column;gap:5px;color:rgba(255,255,255,.72);font-size:11px}
.nt-texture-blend-grid .mini-color{width:100%;height:34px;padding:2px;border-radius:10px}
.nt-texture-blend-grid.is-disabled{opacity:.52}
.nt-text-texture-blend-box.is-unavailable .nt-texture-blend-toggle,
.nt-text-texture-blend-box.is-unavailable .nt-texture-blend-grid,
.nt-text-texture-blend-box.is-unavailable .nt-texture-blend-strength{opacity:.46}
.nt-texture-blend-strength{margin-top:9px}
.nt-texture-blend-preview{height:34px;margin-top:9px;border-radius:10px;border:1px solid rgba(255,255,255,.13);background-color:#d4af37;background-position:center;background-size:cover;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.nt-texture-blend-note{margin:7px 0 0;color:rgba(255,255,255,.58);font-size:10px;line-height:1.35}
@media (max-width:760px){.nt-texture-blend-grid{grid-template-columns:1fr}}

/* =========================================================
   v1.4.5.262.34 — Relief / biseau / estampage
   ========================================================= */
.nt-relief-section,
.nt-relief-text-panel{--nt-relief-gold:#e0b94e;--nt-relief-line:rgba(224,185,78,.22)}
.nt-relief-text-note{margin:0 0 12px;color:var(--muted,#aaa);font-size:12px;line-height:1.45}
.nt-relief-preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}
.nt-relief-preset{appearance:none;border:1px solid var(--nt-relief-line);background:rgba(255,255,255,.025);color:inherit;border-radius:13px;min-height:74px;padding:8px 7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;font:inherit;font-size:11px;font-weight:800;transition:.15s ease}
.nt-relief-preset:hover{border-color:rgba(224,185,78,.48);background:rgba(224,185,78,.065);transform:translateY(-1px)}
.nt-relief-preset.is-active{border-color:rgba(224,185,78,.75);background:linear-gradient(180deg,rgba(224,185,78,.17),rgba(224,185,78,.055));box-shadow:0 0 0 1px rgba(224,185,78,.12) inset}
.nt-relief-preview{width:52px;height:32px;border-radius:9px;display:grid;place-items:center;background:#6e7783;color:#d9dde2;font-size:18px;font-weight:950;letter-spacing:-1px;border:1px solid rgba(255,255,255,.11)}
.relief-soft{color:#cdd2d8;text-shadow:-1px -1px 1px rgba(255,255,255,.8),1px 1px 2px rgba(0,0,0,.55)}
.relief-sharp{color:#bfc5cb;text-shadow:-2px -2px 0 #fff,2px 2px 0 #111}
.relief-emboss{color:#aeb5bd;text-shadow:-2px -2px 2px #fff,2px 2px 2px #171a1e}
.relief-deboss{color:#929aa3;text-shadow:2px 2px 2px #fff,-2px -2px 2px #111}
.relief-deep{color:#aeb4bc;text-shadow:-3px -3px 2px #fff,3px 3px 3px #050505}
.relief-inflated{color:#c8ccd2;text-shadow:-2px -2px 5px #fff,3px 3px 6px #20232a}
.relief-engraved{color:#858d96;text-shadow:1px 1px 0 #fff,-2px -2px 1px #090a0c}
.relief-metal{background:linear-gradient(135deg,#333,#e8edf2 45%,#555 58%,#cbd0d5);color:#8d949b;text-shadow:-1px -1px 0 #fff,2px 2px 0 #000}
.relief-plastic{background:linear-gradient(#77818d,#4f5863);color:#cfd5db;text-shadow:-2px -2px 4px #fff,2px 3px 5px #242932}
.relief-pressed{color:#858d95;text-shadow:2px 2px 3px #dfe4ea,-2px -2px 3px #17191d}
.nt-relief-intensity-row{margin-top:14px;padding:11px 12px;border:1px solid var(--nt-relief-line);border-radius:13px;background:rgba(255,255,255,.02)}
.nt-relief-intensity-row input[type="range"]{width:100%;margin-top:8px;accent-color:var(--nt-relief-gold)}
.nt-relief-actions{margin-top:10px}
.nt-relief-status{margin-top:8px;color:var(--muted,#aaa);font-size:11px;line-height:1.4}
.nt-relief-status[data-state="ok"]{color:#a9e9b1}
.nt-relief-status[data-state="warn"]{color:#ffd08a}
@media (min-width:1180px){.nt-relief-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* =========================================================
   v1.4.5.262.34 — Relief avancé : matières, lumière, inversion
   ========================================================= */
.nt-relief-category-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;padding:4px;border:1px solid var(--nt-relief-line);border-radius:13px;background:rgba(255,255,255,.018)}
.nt-relief-category-tab{appearance:none;border:0;border-radius:10px;background:transparent;color:inherit;padding:8px 10px;font:inherit;font-size:11px;font-weight:900;cursor:pointer;transition:.15s ease}
.nt-relief-category-tab:hover{background:rgba(224,185,78,.07)}
.nt-relief-category-tab.is-active{background:linear-gradient(180deg,rgba(224,185,78,.2),rgba(224,185,78,.07));color:#f8df98;box-shadow:0 0 0 1px rgba(224,185,78,.18) inset}
.nt-relief-category-panel[hidden]{display:none!important}
.nt-relief-category-panel .nt-relief-preset-grid{margin-top:9px}

.relief-chrome{background:linear-gradient(135deg,#111 0%,#f8fbff 31%,#414852 48%,#f4f8fb 68%,#20242a 100%);color:#dce2e7;text-shadow:-1px -1px 0 #fff,2px 2px 0 #050607}
.relief-gold{background:linear-gradient(135deg,#5f3900,#ffe984 38%,#a86605 58%,#fff0a3);color:#f6cf53;text-shadow:-1px -1px 1px #fff4bd,2px 2px 1px #5c3300}
.relief-wood{background:linear-gradient(135deg,#3b1e0d,#9b6435 50%,#4e2814);color:#d3a574;text-shadow:1px 1px 0 #f1c99b,-2px -2px 1px #2d1508}
.relief-leather{background:linear-gradient(135deg,#2c130d,#6c3324);color:#a65b42;text-shadow:1px 1px 2px #d9a58e,-2px -2px 2px #1c0906}
.relief-rubber{background:linear-gradient(180deg,#34383f,#15171b);color:#747b84;text-shadow:-2px -2px 4px rgba(255,255,255,.36),2px 2px 4px #07080a}
.relief-embroidery{background:linear-gradient(135deg,#87212c,#d34c59);color:#f16d79;text-shadow:-2px -2px 1px #ffd7db,3px 3px 2px #4e0e15}
.relief-pvc{background:linear-gradient(180deg,#376fb4,#183e73);color:#78a9e2;text-shadow:-2px -2px 3px #d9edff,2px 3px 3px #0c2445}
.relief-foam{background:linear-gradient(180deg,#8a46bb,#512374);color:#c78be9;text-shadow:-3px -3px 6px rgba(255,255,255,.8),4px 4px 7px #2b103f}
.relief-stone{background:linear-gradient(135deg,#4b4d4e,#8e918e 48%,#3b3d3e);color:#989b98;text-shadow:1px 1px 1px #e0e0d8,-2px -2px 2px #1b1d1d}
.relief-glass{background:linear-gradient(135deg,rgba(130,177,210,.35),rgba(235,250,255,.85),rgba(83,112,135,.45));color:#d9f2ff;text-shadow:-2px -2px 5px #fff,2px 3px 4px #526877}

.nt-relief-light-box{margin-top:12px;padding:11px 12px;border:1px solid var(--nt-relief-line);border-radius:13px;background:rgba(255,255,255,.02)}
.nt-relief-light-grid{display:grid;grid-template-columns:repeat(4,42px) minmax(92px,1fr);gap:7px;align-items:center;margin-top:8px}
.nt-relief-light,.nt-relief-invert{appearance:none;min-height:36px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.025);color:inherit;font:inherit;font-weight:900;cursor:pointer;transition:.15s ease}
.nt-relief-light{font-size:18px}
.nt-relief-invert{padding:0 10px;font-size:10px}
.nt-relief-light:hover,.nt-relief-invert:hover{border-color:rgba(224,185,78,.45);background:rgba(224,185,78,.065)}
.nt-relief-light.is-active,.nt-relief-invert.is-active{border-color:rgba(224,185,78,.75);background:rgba(224,185,78,.17);color:#f7dfa0;box-shadow:0 0 0 1px rgba(224,185,78,.11) inset}
@media (max-width:520px){.nt-relief-light-grid{grid-template-columns:repeat(4,1fr)}.nt-relief-invert{grid-column:1/-1}}


/* =========================================================
   v1.4.5.262.36 — Relief image : contour / complet / interne
   ========================================================= */
.nt-relief-image-mode-box{margin-top:10px;padding:11px 12px;border:1px solid var(--nt-relief-line);border-radius:13px;background:rgba(255,255,255,.02)}
.nt-relief-image-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:8px}
.nt-relief-image-mode{appearance:none;min-height:36px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.025);color:inherit;font:inherit;font-size:10px;font-weight:900;cursor:pointer;transition:.15s ease}
.nt-relief-image-mode:hover{border-color:rgba(224,185,78,.45);background:rgba(224,185,78,.065)}
.nt-relief-image-mode.is-active{border-color:rgba(224,185,78,.75);background:rgba(224,185,78,.17);color:#f7dfa0;box-shadow:0 0 0 1px rgba(224,185,78,.11) inset}
.nt-relief-image-mode-note{margin:8px 0 0!important;font-size:10px!important;line-height:1.35}

/* =========================================================
   v1.4.5.262.36 — Palette globale + précision + alignement
   ========================================================= */
.nt-design-palette-card{margin-top:2px}
.nt-design-palette-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-height:54px}
.nt-palette-swatch{appearance:none;border:1px solid rgba(212,175,55,.18);border-radius:12px;background:rgba(255,255,255,.035);color:#f5edda;padding:7px;display:flex;align-items:center;gap:7px;cursor:pointer;min-width:0}
.nt-palette-swatch:hover,.nt-palette-swatch.is-selected{border-color:rgba(212,175,55,.65);box-shadow:0 0 0 1px rgba(212,175,55,.18) inset}
.nt-palette-swatch span{width:25px;height:25px;border-radius:8px;flex:0 0 25px;background:var(--nt-palette-color);border:1px solid rgba(255,255,255,.28);box-shadow:0 2px 8px rgba(0,0,0,.25)}
.nt-palette-swatch code{font:700 10px/1.1 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:hidden;text-overflow:ellipsis;color:#eee4cc}
.nt-palette-current{display:grid;grid-template-columns:1fr 44px auto;align-items:center;gap:8px;padding:9px 10px;border:1px solid rgba(212,175,55,.16);border-radius:13px;background:rgba(255,255,255,.025)}
.nt-palette-current label{font-weight:800;color:#e9dfc7}
.nt-palette-current input[type="color"]{width:44px;height:34px;padding:2px;border-radius:9px;border:1px solid rgba(212,175,55,.28);background:#111}
.nt-palette-current code{font:800 11px/1.1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#f0d789}
.nt-palette-status[data-state="ok"]{color:#a8f0b0}.nt-palette-status[data-state="warn"]{color:#ffcf87}
.nt-palette-empty{grid-column:1/-1;margin:0;padding:12px;text-align:center;border:1px dashed rgba(212,175,55,.18);border-radius:12px}

.nt-precision-card,.nt-align-card{display:grid;gap:10px;padding:11px;border:1px solid rgba(212,175,55,.18);border-radius:14px;background:rgba(255,255,255,.025)}
.nt-precision-card__head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.nt-precision-card__head strong{color:#f2df9d;font-size:12px}.nt-precision-card__head span{color:#9f9788;font-size:10px;text-align:right}
.nt-precision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.nt-precision-grid label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;padding:7px 8px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(0,0,0,.16)}
.nt-precision-grid label span{font-size:10px;font-weight:800;color:#cfc5b1}.nt-precision-grid label b{font-size:9px;color:#9f9788}
.nt-precision-grid input[type="number"]{min-width:0;width:100%;padding:6px 5px;border-radius:8px;border:1px solid rgba(212,175,55,.18);background:#0d0e12;color:#fff;font-weight:800}
.nt-precision-lock,.nt-snap-toggle{display:flex;align-items:center;gap:8px;color:#d8cfbd;font-size:11px;font-weight:700}
.nt-precision-card.is-disabled{opacity:.48}
.nt-align-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.nt-align-grid .btn{min-width:0;padding-left:6px;padding-right:6px}
.nt-text-precision-panel .nt-section-heading{margin-bottom:10px}

/* =========================================================
   v1.4.5.262.37 — Format libre exact + nettoyage Zone image
   ========================================================= */
.nt-free-canvas-size{
  margin-top:10px;
  padding:12px;
  border:1px solid rgba(212,177,84,.22);
  border-radius:14px;
  background:rgba(255,255,255,.035);
}
.nt-free-canvas-size[hidden]{display:none!important}
.nt-free-canvas-size__head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.nt-free-canvas-size__head strong{font-size:13px;color:#f3dfaa}
.nt-free-canvas-size__head span{font-size:11px;color:var(--muted,#9fa3ad)}
.nt-free-canvas-size__grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.nt-free-canvas-size__grid label{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px;padding:8px 9px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(0,0,0,.16)}
.nt-free-canvas-size__grid label span{grid-column:1/-1;font-size:11px;color:var(--muted,#9fa3ad)}
.nt-free-canvas-size__grid input{width:100%;min-width:0;border:0;background:transparent;color:inherit;font:inherit;outline:none}
.nt-free-canvas-size__grid b{font-size:10px;font-weight:600;color:#d8bd73}
.nt-free-canvas-status{margin:8px 0 0!important}
.nt-free-canvas-status[data-state="warn"]{color:#ffcf87}
.nt-legacy-mask-create-panel{display:none!important}

/* =========================================================
   v1.4.5.262.39 — Palette rapide contextuelle
   ---------------------------------------------------------
   Une seule barre compacte, visible en mode simple et avancé,
   avant les outils texte / image / forme.
   ========================================================= */
.nt-compact-palette{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:10px 12px 9px;
  border-bottom:1px solid rgba(212,175,55,.16);
  background:linear-gradient(180deg,rgba(212,175,55,.055),rgba(255,255,255,.018));
}
.nt-compact-palette__head{
  display:flex;
  align-items:center;
  min-width:0;
  gap:8px;
}
.nt-compact-palette__head>strong{
  flex:0 0 auto;
  color:var(--gold-2);
  font-size:12px;
  letter-spacing:.02em;
}
.nt-compact-palette__targets{
  min-width:0;
  flex:1 1 auto;
  display:flex;
  gap:3px;
  overflow-x:auto;
  scrollbar-width:none;
}
.nt-compact-palette__targets::-webkit-scrollbar{display:none}
.nt-compact-palette__target{
  flex:0 0 auto;
  min-width:35px;
  height:26px;
  padding:0 7px;
  border:1px solid rgba(212,175,55,.16);
  border-radius:8px;
  background:rgba(255,255,255,.035);
  color:rgba(255,255,255,.76);
  font-size:10px;
  font-weight:700;
  line-height:1;
  font-family:inherit;
  cursor:pointer;
}
.nt-compact-palette__target:hover,
.nt-compact-palette__target.is-active{
  color:var(--gold-2);
  border-color:rgba(212,175,55,.48);
  background:rgba(212,175,55,.12);
}
.nt-compact-palette__actions{display:flex;gap:4px;flex:0 0 auto}
.nt-compact-palette__icon{
  width:27px;height:27px;padding:0;
  display:grid;place-items:center;
  border-radius:8px;
  border:1px solid rgba(212,175,55,.18);
  background:rgba(255,255,255,.035);
  color:var(--gold-2);
  font-size:15px;
  cursor:pointer;
}
.nt-compact-palette__icon:hover{background:rgba(212,175,55,.12);border-color:rgba(212,175,55,.42)}
.nt-compact-palette__swatches{
  min-height:30px;
  display:flex;
  align-items:flex-start;
  align-content:flex-start;
  flex-wrap:wrap;
  gap:7px;
  overflow:visible;
  padding:1px 1px 2px;
  scrollbar-width:none;
}
.nt-compact-palette__swatches::-webkit-scrollbar{display:none}
.nt-compact-palette__swatch{
  --nt-quick-color:#fff;
  position:relative;
  flex:0 0 27px;
  width:27px;height:27px;
  padding:0;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.24);
  background:var(--nt-quick-color);
  box-shadow:0 0 0 1px rgba(0,0,0,.38),0 2px 7px rgba(0,0,0,.28);
  cursor:pointer;
}
.nt-compact-palette__swatch:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.78)}
.nt-compact-palette__swatch.is-selected::after{
  content:"";
  position:absolute;
  inset:-5px;
  border:1px solid var(--gold-2);
  border-radius:50%;
  pointer-events:none;
}
.nt-compact-palette__empty{
  width:100%;
  min-height:29px;
  padding:5px 10px;
  border-radius:9px;
  border:1px dashed rgba(212,175,55,.28);
  background:rgba(212,175,55,.055);
  color:rgba(255,255,255,.72);
  font-size:11px;
  font-weight:650;
  line-height:1.2;
  font-family:inherit;
  cursor:pointer;
}
.nt-compact-palette__hint{
  margin:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:rgba(255,255,255,.48);
  font-size:9.5px;
  line-height:1.2;
}
/* La palette occupe sa propre hauteur ; les outils prennent le reste. */
.nt-properties-column>.nt-properties-context{
  flex:1 1 auto;
  height:auto;
}
.nt-properties-column>.nt-properties-empty{
  flex:1 1 auto;
}

/* v1.4.5.262.39 — Découpe libre : rectangle, rond, ovale, plume, crayon */
.nt-crop-free-tool-title{font-size:12px;font-weight:700;letter-spacing:.02em;color:#f1dfac;margin-bottom:2px}
.nt-crop-free-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:10px}
.nt-crop-free-tool{min-width:0;justify-content:center}
.nt-crop-free-tool.is-active{border-color:rgba(231,194,92,.72);background:linear-gradient(180deg,rgba(231,194,92,.17),rgba(231,194,92,.07));color:#ffe7a4;box-shadow:0 0 0 1px rgba(231,194,92,.12) inset}
.nt-crop-free-tools .nt-crop-free-tool:last-child:nth-child(odd){grid-column:1/-1}
#ntCropFreeClosePathBtn:not([hidden]){border-color:rgba(117,190,255,.42);color:#cce8ff}

/* =========================================================
   v1.4.5.262.42 — TEXTE DANS UNE FORME : 6 / 8 / 10 POINTS
   ========================================================= */
.nt-text-shape-point-count{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin:0 0 12px;
}
.nt-text-shape-point-count button{
  min-height:36px;
  border:1px solid rgba(240,210,139,.22);
  border-radius:10px;
  background:#101218;
  color:#d9d0bc;
  font:800 11px/1 inherit;
  cursor:pointer;
}
.nt-text-shape-point-count button.is-active{
  border-color:transparent;
  background:linear-gradient(135deg,#f0d28b,#bf8c2d);
  color:#201708;
}
.nt-text-shape-point-control{margin-bottom:7px!important}
.nt-text-shape-point-control>span{margin-bottom:4px!important;font-size:10px!important}
.nt-text-shape-point-control input[type=range]{height:18px}
.nt-text-shape-point-columns>div{padding:9px}
.nt-text-shape-preset-grid{max-height:390px;overflow:auto;scrollbar-width:none}
.nt-text-shape-preset-grid::-webkit-scrollbar{display:none}


/* v1.4.5.262.44 — Copier / Coller dans Texte → Contenu */
.nt-text-content-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.nt-text-content-head h3{margin:0}
.nt-text-content-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.nt-text-content-actions .btn.small{padding:6px 10px;min-height:30px}
.nt-text-clipboard-status{min-height:0;margin:6px 0 0}
.nt-text-clipboard-status:empty{display:none}
.nt-text-clipboard-status[data-state="ok"]{color:#a8f0b0}
.nt-text-clipboard-status[data-state="warn"]{color:#ffcf87}

/* v1.4.5.262.46 — Corrections texte / paragraphe */
.nt-text-correction-panel{width:min(360px,calc(100vw - 24px))}
.nt-text-correction-panel .nt-text-correction-note{margin:0 0 12px;color:var(--muted,#9ca3af);font-size:12px;line-height:1.45}
.nt-text-correction-controls{gap:10px}
.nt-text-correction-panel .image-slider-row{grid-template-columns:minmax(92px,1fr) minmax(110px,1.4fr) 70px;align-items:center;gap:8px}
.nt-text-correction-panel input[type="number"]{min-width:0;width:100%}
.nt-text-correction-status[data-state="ok"]{color:#a8f0b0}
@media(max-width:760px){.nt-text-correction-panel .image-slider-row{grid-template-columns:1fr 1.2fr 64px}}


/* v1.4.5.262.56 — masquer le panneau Texte moteur dans la colonne gauche */
#textMotorWarningPanel{display:none!important;}


/* v1.4.5.262.57 — option contour alpha dans Relief */
.nt-relief-option-check{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;color:#d7dbe6;}
.nt-relief-option-check input{accent-color:#d9b44a;}

/* v1.4.5.262.62 — palette rapide sur plusieurs lignes */
.nt-compact-palette__head{flex-wrap:wrap;}
.nt-compact-palette__actions{margin-left:auto;}
.nt-compact-palette__swatch{flex:0 0 24px;width:24px;height:24px;}


/* v1.4.5.262.67 — Découpe avancée : formes + presets */
.nt-crop-free-view-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 10px}
.nt-crop-free-view-tab{min-width:0;height:34px;padding:0 7px;border-radius:9px;border:1px solid rgba(212,177,84,.18);background:rgba(255,255,255,.035);color:rgba(255,255,255,.76);font:inherit;font-size:10px;font-weight:800;cursor:pointer}
.nt-crop-free-view-tab:hover,.nt-crop-free-view-tab.is-active{color:#ffe7a4;border-color:rgba(231,194,92,.62);background:rgba(231,194,92,.13)}
.nt-crop-free-view-panel[hidden]{display:none!important}
.nt-crop-library-note{margin:0 0 8px;padding:8px 9px;border:1px solid rgba(212,177,84,.14);border-radius:9px;background:rgba(212,177,84,.045);color:rgba(255,255,255,.67);font-size:10px;line-height:1.35}
.nt-crop-shape-library{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-height:250px;overflow-y:auto;padding:1px 2px 4px;scrollbar-width:none}
.nt-crop-shape-library::-webkit-scrollbar,.nt-crop-preset-library::-webkit-scrollbar{display:none}
.nt-crop-library-item,.nt-crop-preset-item{min-width:0;min-height:54px;padding:6px 4px;border:1px solid rgba(212,177,84,.14);border-radius:10px;background:rgba(255,255,255,.028);color:rgba(255,255,255,.84);font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center}
.nt-crop-library-item:hover,.nt-crop-preset-item:hover{border-color:rgba(231,194,92,.62);background:rgba(231,194,92,.10);color:#ffe7a4}
.nt-crop-library-item>span{font-size:21px;line-height:1}
.nt-crop-library-item>small,.nt-crop-preset-item>small{font-size:9px;line-height:1.1;font-weight:800;color:inherit}
.nt-crop-preset-library{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:250px;overflow-y:auto;padding:1px 2px 4px;scrollbar-width:none}
.nt-crop-preset-item{min-height:50px;flex-direction:row;justify-content:flex-start;gap:7px;padding:7px 8px;text-align:left}
.nt-crop-preset-item>span{flex:0 0 34px;text-align:center;font-size:16px;color:#f0cf73;letter-spacing:-2px}
.nt-crop-preset-item>small{font-size:10px}
.nt-crop-brutality-field{margin:0 0 10px;padding:8px 9px;border:1px solid rgba(212,177,84,.14);border-radius:10px;background:rgba(255,255,255,.028)}
.nt-crop-brutality-field label{display:block;margin:0 0 6px;font-size:10px;font-weight:800;color:#ffe7a4}
.nt-crop-brutality-field input[type=range]{width:100%;margin:0}
.nt-crop-brutality-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;font-size:10px;color:rgba(255,255,255,.66)}
.nt-crop-brutality-meta strong{color:#f0cf73;font-size:10px;white-space:nowrap}
/* Ancien réglage masque conservé techniquement mais retiré du workflow normal. */
#imagePanelSwitcher [data-image-panel-open="mask-settings"],#imagePanelSwitcher [data-image-panel-open="editable-shapes"],[data-image-tool-panel="mask-settings"],[data-image-tool-panel="editable-shapes"]{display:none!important}


/* =========================================================
   v1.4.5.262.69 — Police = presets Basique / Premium
   ---------------------------------------------------------
   La liste de polices est retirée de ce panneau : elle existe
   déjà dans la barre d’outils et dans le panneau Texte.
   Police affiche uniquement les presets. Les autres boutons
   n’affichent que leurs réglages pour limiter le scroll.
   ========================================================= */
.nt-properties-column #ntTextStylePanel .nt-text-basic-focus-tabs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  overflow:visible;
  padding-bottom:2px;
}
.nt-properties-column #ntTextStylePanel .nt-text-basic-focus-tabs .nt-text-tile{
  min-width:0;
  width:100%;
  padding:7px 4px;
}
.nt-text-basic-focus-panel[hidden],
#ntStyleLibraryModes[hidden],
#ntStyleBasicPanel[hidden],
#ntStylePremiumPanel[hidden],
#ntTextStyleControls[hidden],
.nt-text-premium-legacy-fx[hidden]{display:none !important;}
.nt-properties-column #ntStyleLibraryModes{
  margin-top:8px;
}
.nt-properties-column #ntTextBasicPresetsPanel{
  margin-top:8px;
}
.nt-properties-column #ntTextStyleControls{
  margin-top:8px;
}
@media (min-width:1500px){
  .nt-properties-column #ntTextStylePanel .nt-text-basic-focus-tabs{grid-template-columns:repeat(6,minmax(0,1fr));}
}


/* =========================================================
   v1.4.5.262.70 — DENSITÉ COMPACTE GLOBALE / MOINS DE SCROLL
   ---------------------------------------------------------
   Réduction cohérente des boutons, cartes, espacements,
   onglets et champs sur l'ensemble du Studio. Les zones qui
   doivent encore défiler conservent une scrollbar très fine
   et utilisable au lieu de dépendre d'un scroll invisible.
   ========================================================= */
:root{
  --nt70-control-h:30px;
  --nt70-mini-h:27px;
  --nt70-radius:10px;
  --nt70-gap:6px;
  --nt70-pad:8px;
}

/* Topbar et navigation verticale */
.topbar{
  min-height:48px !important;
  max-height:58px !important;
  padding:6px 9px !important;
  gap:7px !important;
}
.brand{min-width:132px !important;}
.brand-badge{width:30px !important;height:30px !important;border-radius:9px !important;}
.top-actions,.top-actions-right{gap:5px !important;}
.topbar .btn,.topbar .btn.small{
  min-height:29px !important;
  padding:5px 8px !important;
  border-radius:9px !important;
  font-size:11px !important;
}
.workspace{grid-template-columns:58px minmax(0,1fr) !important;}
.dock{padding:6px 5px 8px !important;gap:5px !important;}
.dock-btn{
  width:40px !important;height:40px !important;min-height:40px !important;
  border-radius:11px !important;font-size:.95rem !important;
}

/* Panneau gauche : cartes et contrôles */
.panel-head{padding:8px 10px 6px !important;}
.panel-title{font-size:14px !important;line-height:1.15 !important;}
.panel-body{
  padding:8px 10px 48px !important;
  font-size:12.5px !important;
}
.section,.ui-card,.fx-card{
  padding:8px !important;
  margin-bottom:7px !important;
  border-radius:12px !important;
}
.section h3{
  margin:0 0 5px !important;
  font-size:12.5px !important;
  line-height:1.2 !important;
}
.section-title-row{gap:7px !important;margin-bottom:6px !important;}
.section-subtitle,.hint,.subline{
  margin-top:2px !important;
  margin-bottom:4px !important;
  font-size:10.5px !important;
  line-height:1.25 !important;
}
.stack{gap:5px !important;}
.row2{gap:6px !important;}
.fx-card{gap:5px !important;}
.fx-tile-grid,.tile-grid{gap:6px !important;}
.fx-inline-panel{border-radius:10px !important;}

/* Boutons et tuiles : taille commune plus basse */
.btn,.chip,.tile-btn,.text-item,.font-card,.layer-item,.tool-btn{
  min-height:var(--nt70-control-h) !important;
  padding:6px 9px !important;
  border-radius:10px !important;
  font-size:12px !important;
  line-height:1.15 !important;
}
.btn.small,.contextbar .btn.small,.inline-check{
  min-height:var(--nt70-mini-h) !important;
  padding:5px 8px !important;
  border-radius:9px !important;
  font-size:11px !important;
  line-height:1.15 !important;
}
.inline-check{gap:5px !important;justify-content:flex-start !important;}

/* Champs */
.field,.select,.mini-select,.mini-input,
.image-slider-row input[type="number"],.left-panel-controls input[type="number"],
#imageColorizeAlpha,#imageColorizeAlphaMirror{
  min-height:30px !important;
  height:30px !important;
  padding:5px 8px !important;
  border-radius:9px !important;
  font-size:12px !important;
}
.textarea{
  min-height:54px !important;
  padding:7px 8px !important;
  border-radius:9px !important;
  font-size:12px !important;
}
.left-panel-controls label,.image-slider-row label,.select-label,.field-label{
  font-size:11px !important;line-height:1.15 !important;
}
input[type="color"],.mini-color{
  min-height:29px !important;height:29px !important;border-radius:8px !important;
}
.status-box{min-height:34px !important;max-height:46px !important;padding:6px 8px !important;font-size:10.5px !important;line-height:1.25 !important;}

/* Imports : toujours lisibles mais moins hauts */
.ui-upload-section{padding:8px !important;}
.upload-hero-btn{
  min-height:54px !important;
  grid-template-columns:34px minmax(0,1fr) !important;
  gap:8px !important;padding:8px !important;border-radius:12px !important;
}
.upload-hero-icon{width:34px !important;height:34px !important;border-radius:10px !important;font-size:20px !important;}
.modern-file-trigger{
  min-height:50px !important;
  grid-template-columns:32px minmax(0,1fr) !important;
  gap:8px !important;padding:8px !important;border-radius:12px !important;
}
.modern-file-icon{width:32px !important;height:32px !important;border-radius:10px !important;}
.upload-hero-btn strong,.modern-file-trigger strong{font-size:12.5px !important;line-height:1.15 !important;}
.upload-hero-btn em,.modern-file-trigger em{font-size:10.5px !important;line-height:1.2 !important;margin-top:2px !important;}

/* Barre canvas */
.canvas-toolbar{max-height:104px !important;padding:6px 8px !important;gap:5px !important;}
.contextbar{padding:5px 7px !important;border-radius:12px !important;gap:4px !important;}
.context-top,.context-row{gap:4px !important;}
.contextbar .btn.small,.contextbar .mini-select,.contextbar .mini-input,.contextbar .mini-color{
  min-height:27px !important;height:27px !important;font-size:10.5px !important;
}
.canvas-shell{padding:5px !important;}

/* Colonne droite : gros gain vertical */
.nt-compact-palette{gap:4px !important;padding:6px 8px 5px !important;}
.nt-compact-palette__head{gap:5px !important;}
.nt-compact-palette__head>strong{font-size:10.5px !important;}
.nt-compact-palette__targets{gap:2px !important;}
.nt-compact-palette__target{min-width:30px !important;height:23px !important;padding:0 5px !important;border-radius:7px !important;font-size:9px !important;}
.nt-compact-palette__actions{gap:3px !important;}
.nt-compact-palette__icon{width:23px !important;height:23px !important;border-radius:7px !important;font-size:12px !important;}
.nt-compact-palette__swatches{min-height:22px !important;gap:4px !important;}
.nt-compact-palette__swatch{flex:0 0 20px !important;width:20px !important;height:20px !important;border-width:1px !important;}
.nt-compact-palette__hint{font-size:8.5px !important;}

.nt-properties-context,
.nt-properties-context[data-nt-properties-context="image"],
.nt-properties-context[data-nt-properties-context="text"]{
  padding:7px 8px 0 !important;
  gap:6px !important;
}
.nt-properties-section-title,.nt-text-properties-label,.nt-image-properties-label{font-size:9.5px !important;gap:5px !important;}
.nt-properties-tabs,.nt-properties-tabs-text,.nt-image-main-tabs{gap:5px !important;}
.nt-properties-tabs .nt-property-tab,.nt-properties-tabs .nt-text-tools-tab{
  padding:5px 5px !important;border-radius:9px !important;font-size:10.5px !important;
}

/* Trois grands onglets Image */
.nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab{
  min-height:44px !important;padding:5px 4px !important;gap:3px !important;font-size:10px !important;border-radius:9px !important;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab::before{
  width:19px !important;height:19px !important;flex-basis:19px !important;border-radius:6px !important;font-size:10px !important;
}
#ntImagePropertyMount .nt-image-property-group{gap:6px !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-content-panel{
  border-radius:11px !important;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-content-panel h3{
  margin:0 0 6px !important;padding-bottom:5px !important;font-size:12px !important;
}
.nt-properties-context[data-nt-properties-context="image"] .section{padding:7px !important;}
.nt-properties-context[data-nt-properties-context="image"] .stack{gap:5px !important;}
.nt-properties-context[data-nt-properties-context="image"] .image-slider-row{
  grid-template-columns:70px minmax(0,1fr) 52px !important;
  min-height:29px !important;gap:5px !important;padding:3px 5px !important;border-radius:8px !important;
}
.nt-properties-context[data-nt-properties-context="image"] .image-slider-row label{font-size:10px !important;}
.nt-properties-context[data-nt-properties-context="image"] .row2:not(.image-slider-row){gap:5px !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-properties-content{padding:1px 1px 58px 0 !important;}

/* Trois onglets Texte */
.nt-properties-context[data-nt-properties-context="text"] .nt-text-tools-tab{
  min-height:42px !important;padding:4px 4px !important;gap:3px !important;font-size:9.5px !important;border-radius:9px !important;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-text-tools-tab::before{
  width:18px !important;height:18px !important;flex:0 0 18px !important;border-radius:6px !important;font-size:9px !important;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-properties-content{padding:1px 1px 58px 0 !important;}
.nt-properties-column .nt-text-tool-panel,
.nt-properties-context[data-nt-properties-context="text"] .nt-text-tool-panel{
  padding:7px !important;gap:5px !important;border-radius:11px !important;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-text-panel-card-title{
  padding-bottom:5px !important;font-size:12px !important;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-style-library-modes{padding:2px !important;gap:3px !important;border-radius:8px !important;}
.nt-properties-context[data-nt-properties-context="text"] .nt-style-library-mode{min-height:27px !important;border-radius:7px !important;}
.nt-properties-context[data-nt-properties-context="text"] .nt-preset-categories{gap:3px !important;}
.nt-properties-context[data-nt-properties-context="text"] .nt-preset-category{min-height:26px !important;border-radius:7px !important;}
.nt-properties-context[data-nt-properties-context="text"] .nt-fx-module{min-height:29px !important;border-radius:8px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapePanel .nt-text-tile{min-height:48px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-text-finish-strip .nt-text-tile{min-height:46px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapeControls,
.nt-properties-context[data-nt-properties-context="text"] #ntTextTextureControls,
.nt-properties-context[data-nt-properties-context="text"] #ntTextStyleControls{
  padding:6px !important;gap:5px !important;border-radius:9px !important;
}
.nt-properties-column #ntTextStylePanel .nt-text-basic-focus-tabs{gap:4px !important;}
.nt-properties-column #ntTextStylePanel .nt-text-basic-focus-tabs .nt-text-tile{padding:5px 3px !important;min-height:28px !important;}
.nt-properties-column #ntStyleLibraryModes,
.nt-properties-column #ntTextBasicPresetsPanel,
.nt-properties-column #ntTextStyleControls{margin-top:5px !important;}

/* Découpe avancée : bibliothèques beaucoup plus denses */
.nt-crop-free-view-tabs{gap:4px !important;margin-bottom:6px !important;}
.nt-crop-free-view-tab{height:28px !important;padding:0 5px !important;border-radius:7px !important;font-size:9px !important;}
.nt-crop-library-note{margin-bottom:5px !important;padding:5px 6px !important;border-radius:7px !important;font-size:9px !important;line-height:1.2 !important;}
.nt-crop-shape-library{grid-template-columns:repeat(5,minmax(0,1fr)) !important;gap:4px !important;max-height:none !important;overflow:visible !important;padding:0 !important;}
.nt-crop-preset-library{grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:4px !important;max-height:none !important;overflow:visible !important;padding:0 !important;}
.nt-crop-library-item,.nt-crop-preset-item{min-height:38px !important;padding:4px 3px !important;border-radius:7px !important;gap:2px !important;}
.nt-crop-library-item>span{font-size:15px !important;}
.nt-crop-library-item>small,.nt-crop-preset-item>small{font-size:8px !important;line-height:1 !important;}
.nt-crop-preset-item{min-height:38px !important;gap:3px !important;padding:4px !important;flex-direction:column !important;text-align:center !important;justify-content:center !important;}
.nt-crop-preset-item>span{flex:0 0 auto !important;font-size:12px !important;}
.nt-crop-free-tools{gap:4px !important;margin-bottom:6px !important;}
.nt-crop-free-tool-title{font-size:10px !important;}
.nt-crop-free-actions{gap:4px !important;}

/* Listes / bibliothèques */
.font-grid{gap:5px !important;max-height:220px !important;}
.layer-list,#textList,#imageList{gap:4px !important;}
.nt-text-shape-point-count{gap:4px !important;margin-bottom:7px !important;}
.nt-text-shape-point-count button{min-height:28px !important;border-radius:7px !important;font-size:9px !important;}
.nt-text-shape-point-columns>div{padding:6px !important;}
.nt-text-shape-point-control{margin-bottom:4px !important;}
.nt-text-shape-preset-grid{max-height:300px !important;}

/* Moins de vide dans états et cartes spécifiques */
.nt-properties-empty{margin:auto 10px !important;padding:16px 12px !important;border-radius:13px !important;}
.nt-properties-empty-icon{width:34px !important;height:34px !important;margin-bottom:8px !important;}
.nt-fusion-toggle-row{padding:6px !important;border-radius:8px !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-checks{gap:4px !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-checks label{padding:5px 6px !important;border-radius:7px !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-status{padding:6px 7px !important;border-radius:8px !important;}

/* Scrollbars de secours : fines mais attrapables. */
.panel-body,.dock,.nt-properties-content,.font-grid,.layer-list,#textList,#imageList,
.nt-text-shape-preset-grid,.nt-mask-image-position-modal__dialog,.nt-text-shape-modal__body{
  scrollbar-width:thin !important;
  scrollbar-color:rgba(212,175,55,.34) transparent !important;
}
.panel-body::-webkit-scrollbar,.dock::-webkit-scrollbar,.nt-properties-content::-webkit-scrollbar,
.font-grid::-webkit-scrollbar,.layer-list::-webkit-scrollbar,#textList::-webkit-scrollbar,#imageList::-webkit-scrollbar,
.nt-text-shape-preset-grid::-webkit-scrollbar,.nt-mask-image-position-modal__dialog::-webkit-scrollbar,.nt-text-shape-modal__body::-webkit-scrollbar{
  display:block !important;width:5px !important;height:5px !important;
}
.panel-body::-webkit-scrollbar-thumb,.dock::-webkit-scrollbar-thumb,.nt-properties-content::-webkit-scrollbar-thumb,
.font-grid::-webkit-scrollbar-thumb,.layer-list::-webkit-scrollbar-thumb,#textList::-webkit-scrollbar-thumb,#imageList::-webkit-scrollbar-thumb,
.nt-text-shape-preset-grid::-webkit-scrollbar-thumb,.nt-mask-image-position-modal__dialog::-webkit-scrollbar-thumb,.nt-text-shape-modal__body::-webkit-scrollbar-thumb{
  background:rgba(212,175,55,.32) !important;border-radius:99px !important;
}

/* Fenêtres plus basses : resserrage supplémentaire sans masquer les actions */
@media (max-height:760px){
  .topbar{min-height:44px !important;max-height:50px !important;padding:4px 7px !important;}
  .dock-btn{width:36px !important;height:36px !important;min-height:36px !important;}
  .workspace{grid-template-columns:52px minmax(0,1fr) !important;}
  .panel-body{padding:6px 8px 38px !important;}
  .section,.ui-card,.fx-card{padding:6px !important;margin-bottom:5px !important;}
  .nt-compact-palette{padding:4px 6px !important;gap:3px !important;}
  .nt-properties-context,.nt-properties-context[data-nt-properties-context="image"],.nt-properties-context[data-nt-properties-context="text"]{padding:5px 6px 0 !important;gap:4px !important;}
  .nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab{min-height:38px !important;}
  .nt-properties-context[data-nt-properties-context="text"] .nt-text-tools-tab{min-height:36px !important;}
  .canvas-toolbar{max-height:90px !important;}
}


/* =========================================================
   v1.4.5.262.74 — HIÉRARCHIE & RESPIRATION
   ---------------------------------------------------------
   Conserve la densité v262.70 mais améliore la lecture :
   - canvas plus prioritaire ;
   - topbar simplifiée ;
   - moins de cadres imbriqués et d'or décoratif ;
   - textes secondaires légèrement plus lisibles ;
   - états des outils texte sous forme de badges discrets.
   ========================================================= */
:root{
  --nt-desktop-left-panel-w:clamp(252px,16vw,280px);
  --nt-desktop-properties-w:clamp(312px,19vw,338px);
  --nt74-line:rgba(255,255,255,.075);
  --nt74-line-soft:rgba(255,255,255,.045);
  --nt74-surface:rgba(255,255,255,.026);
  --nt74-surface-hover:rgba(255,255,255,.055);
}

/* Barre supérieure : trois niveaux visuels, zoom groupé. */
.topbar{
  min-height:44px !important;
  max-height:52px !important;
  padding:5px 8px !important;
  border-bottom-color:rgba(212,175,55,.11) !important;
  background:rgba(8,8,10,.965) !important;
}
.brand{min-width:118px !important;gap:7px !important;}
.brand-badge{width:28px !important;height:28px !important;}
.brand>div:last-child>div:first-child{font-size:12.5px !important;line-height:1.05 !important;}
.brand .subline{font-size:8.5px !important;opacity:.65 !important;}
.top-actions,.top-actions-right{gap:4px !important;}
.nt-zoom-controls{
  display:inline-flex;align-items:center;gap:0;
  padding:2px;border:1px solid var(--nt74-line);border-radius:9px;
  background:rgba(255,255,255,.025);
}
.topbar .nt-zoom-controls .btn{
  min-height:25px !important;height:25px !important;
  border:0 !important;background:transparent !important;box-shadow:none !important;
  border-radius:7px !important;color:rgba(255,255,255,.76) !important;
}
.topbar .nt-zoom-controls .nt-zoom-btn{width:27px !important;padding:0 !important;font-size:16px !important;}
.topbar .nt-zoom-controls .nt-zoom-fit{padding:0 7px !important;font-size:10px !important;}
.topbar .nt-zoom-controls .btn:hover{background:rgba(255,255,255,.07) !important;color:#fff !important;}
.topbar .nt-top-add-btn,
.topbar .nt-internal-mode-toggle,
.top-actions-right>.btn:not(.primary),
#ntsFullscreenBtn,#ntsFlattenDesignBtn,#ntsCreditDownloadBtn{
  border-color:var(--nt74-line) !important;
  background:rgba(255,255,255,.025) !important;
  color:rgba(255,255,255,.80) !important;
  box-shadow:none !important;
}
.topbar .nt-top-add-btn:hover,
.top-actions-right>.btn:not(.primary):hover,
#ntsFullscreenBtn:hover,#ntsFlattenDesignBtn:hover,#ntsCreditDownloadBtn:hover{
  background:rgba(255,255,255,.065) !important;color:#fff !important;
}
.top-actions-right>.btn.primary{
  border-color:rgba(244,211,101,.72) !important;
  box-shadow:0 0 0 1px rgba(244,211,101,.08),0 4px 14px rgba(0,0,0,.22) !important;
}

/* Centre : davantage de hauteur utile pour la création. */
.canvas-toolbar{max-height:76px !important;padding:4px 7px !important;}
.contextbar{padding:4px 6px !important;border-color:var(--nt74-line) !important;background:rgba(14,14,17,.94) !important;}
.canvas-shell{padding:3px !important;}
.print-stage{box-shadow:0 10px 34px rgba(0,0,0,.34) !important;}

/* Dock : structure neutre, or uniquement pour l'outil actif. */
.dock{border-right-color:var(--nt74-line) !important;background:rgba(9,9,11,.98) !important;}
.dock-btn{
  border-color:transparent !important;background:transparent !important;color:rgba(255,255,255,.65) !important;
}
.dock-btn:hover{background:rgba(255,255,255,.05) !important;color:#fff !important;border-color:var(--nt74-line) !important;}
.dock-btn.active,.dock-btn.is-active{background:rgba(212,175,55,.10) !important;color:var(--gold-2) !important;border-color:rgba(212,175,55,.38) !important;}

/* Panneau gauche : réduire les cadres imbriqués sans réduire la lisibilité. */
.panel-column{border-right-color:var(--nt74-line) !important;background:rgba(12,12,15,.98) !important;}
.panel-head{border-bottom-color:var(--nt74-line) !important;}
.panel-body{font-size:12.5px !important;}
.section,.ui-card,.fx-card{
  border-color:var(--nt74-line-soft) !important;
  background:var(--nt74-surface) !important;
  box-shadow:none !important;
}
.section+.section,.ui-card+.ui-card,.fx-card+.fx-card{margin-top:5px !important;}
.section h3,.section-title-row h3{color:rgba(255,255,255,.94) !important;}
.section-subtitle,.hint,.subline{font-size:11px !important;color:rgba(255,255,255,.58) !important;}
.font-card,.text-item,.layer-item{
  border-color:var(--nt74-line) !important;background:rgba(255,255,255,.03) !important;
}
.font-card:hover,.text-item:hover,.layer-item:hover{background:var(--nt74-surface-hover) !important;border-color:rgba(255,255,255,.14) !important;}

/* Colonne droite : surfaces plutôt que cadres dorés imbriqués. */
.nt-properties-column{border-left-color:var(--nt74-line) !important;background:rgba(12,12,15,.985) !important;}
.nt-properties-context{gap:5px !important;}
.nt-properties-section-title,.nt-text-properties-label,.nt-image-properties-label{
  font-size:10.5px !important;color:rgba(255,255,255,.72) !important;letter-spacing:.06em !important;text-transform:uppercase;
}
.nt-properties-tabs .nt-property-tab,
.nt-properties-tabs .nt-text-tools-tab{
  border-color:var(--nt74-line) !important;background:rgba(255,255,255,.025) !important;color:rgba(255,255,255,.83) !important;
}
.nt-properties-tabs .nt-property-tab:hover,
.nt-properties-tabs .nt-text-tools-tab:hover{
  background:rgba(255,255,255,.055) !important;border-color:rgba(255,255,255,.13) !important;color:#fff !important;
}
.nt-properties-tabs .nt-property-tab.is-active,
.nt-properties-tabs .nt-text-tools-tab.active{
  background:rgba(212,175,55,.10) !important;border-color:rgba(212,175,55,.46) !important;color:var(--gold-2) !important;
}
.nt-properties-column .nt-text-tool-panel,
.nt-properties-column .nt-property-content-panel,
.nt-properties-context[data-nt-properties-context="image"] .nt-property-content-panel{
  border-color:var(--nt74-line) !important;
  background:rgba(255,255,255,.018) !important;
  box-shadow:none !important;
}
.nt-properties-column .nt-text-control-line,
.nt-properties-column .nt-text-texture-controls{border-top-color:var(--nt74-line) !important;}
.nt-text-panel-card-title,
.nt-properties-context[data-nt-properties-context="image"] .nt-property-content-panel h3{
  color:rgba(255,255,255,.92) !important;
  border-bottom-color:var(--nt74-line) !important;
}

/* Outils texte : libellé stable + état secondaire discret. */
.nt-text-tools-tab[data-nt-state]::after{
  content:attr(data-nt-state);
  display:inline-block;
  max-width:58%;
  margin-left:4px;
  padding:2px 5px;
  border-radius:999px;
  background:rgba(255,255,255,.055);
  color:rgba(255,255,255,.58);
  font-size:8.5px;
  font-weight:800;
  line-height:1.1;
  vertical-align:middle;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.nt-text-tools-tab.active[data-nt-state]::after{
  background:rgba(212,175,55,.13);
  color:var(--gold-2);
}

/* Courbe : valeur numérique lisible, sans bouton Droit en doublon. */
.nt-arc-control-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:20px;}
.nt-arc-control-head .nt-control-name{margin:0 !important;}
.nt-arc-control-head output{
  min-width:34px;padding:2px 6px;border-radius:7px;
  border:1px solid var(--nt74-line);background:rgba(255,255,255,.035);
  color:rgba(255,255,255,.78);font-size:10px;font-weight:800;text-align:center;
}

/* Palette : toujours compacte, mais de nouveau lisible. */
.nt-compact-palette{padding:6px 8px !important;gap:5px !important;border-bottom-color:var(--nt74-line) !important;}
.nt-compact-palette__head>strong{font-size:11px !important;}
.nt-compact-palette__target{font-size:9.5px !important;}
.nt-compact-palette__hint{font-size:9.5px !important;color:rgba(255,255,255,.52) !important;}
.nt-compact-palette__swatch{flex-basis:21px !important;width:21px !important;height:21px !important;}

/* Contrôles standards : or uniquement quand sélectionné/actif. */
.btn,.chip,.tile-btn,.tool-btn{
  border-color:var(--nt74-line) !important;
}
.btn:not(.active):not(.primary):not(.danger),
.chip:not(.active),.tile-btn:not(.active):not(.is-active),.tool-btn:not(.active):not(.is-active){
  background:rgba(255,255,255,.028) !important;color:rgba(255,255,255,.82) !important;
}
.btn:not(.active):not(.primary):not(.danger):hover,
.chip:not(.active):hover,.tile-btn:not(.active):not(.is-active):hover,.tool-btn:not(.active):not(.is-active):hover{
  background:rgba(255,255,255,.065) !important;border-color:rgba(255,255,255,.14) !important;color:#fff !important;
}

/* Petits écrans desktop : priorité au centre sans casser les panneaux. */
@media (min-width:1001px) and (max-width:1399px){
  :root{--nt-desktop-left-panel-w:248px;--nt-desktop-properties-w:306px;}
  .topbar .btn,.topbar .btn.small{font-size:10px !important;padding-inline:6px !important;}
  .topbar .nt-top-add-btn{font-size:0 !important;width:31px !important;padding:0 !important;}
  #topAddTextBtn::after{content:"+T";font-size:11px;}
  #topAddParagraphBtn::after{content:"+P";font-size:11px;}
  #topAddImageBtn::after{content:"+I";font-size:11px;}
}


/* =========================================================
   v1.4.5.262.75 — Texture réorganisée + favoris polices
   ========================================================= */
.nt-font-library-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:7px;
  min-width:0;
}
.nt-font-library-summary .font-count{min-width:0;flex:1 1 auto;}
.nt-font-favorites-toggle{
  flex:0 0 auto;
  min-height:28px !important;
  padding:4px 8px !important;
  font-size:11px !important;
  border-radius:8px !important;
}
.nt-font-favorites-toggle.is-active{
  color:#f5cf55 !important;
  border-color:rgba(229,184,48,.55) !important;
  background:rgba(229,184,48,.10) !important;
}
.font-card{
  position:relative;
  display:flex !important;
  align-items:stretch;
  min-height:0 !important;
  padding:0 !important;
  overflow:hidden;
}
.font-card-main{
  appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  min-width:0;
  flex:1 1 auto;
  padding:6px 34px 6px 9px;
  text-align:left;
  cursor:pointer;
}
.font-favorite-btn{
  position:absolute;
  right:5px;
  top:50%;
  transform:translateY(-50%);
  width:25px;
  height:25px;
  padding:0;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.10);
  border-radius:7px;
  background:rgba(255,255,255,.035);
  color:rgba(255,255,255,.52);
  font-size:16px;
  line-height:1;
  cursor:pointer;
}
.font-favorite-btn:hover,
.font-favorite-btn.is-favorite{
  color:#f5cf55;
  border-color:rgba(229,184,48,.42);
  background:rgba(229,184,48,.09);
}
.font-card.is-favorite{box-shadow:inset 2px 0 0 rgba(229,184,48,.56);}

.nt-texture-section-tabs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
  width:100%;
  margin:2px 0 5px;
}
.nt-texture-section-tab{
  appearance:none;
  min-width:0;
  min-height:30px;
  padding:5px 6px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:9px;
  background:rgba(255,255,255,.025);
  color:rgba(255,255,255,.72);
  font:inherit;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.nt-texture-section-tab:hover{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);}
.nt-texture-section-tab.is-active{
  color:#f5cf55;
  border-color:rgba(229,184,48,.46);
  background:rgba(229,184,48,.085);
}
.nt-texture-section-panel{width:100%;min-width:0;}
.nt-texture-section-panel[hidden]{display:none !important;}
.nt-texture-section-panel .nt-text-finish-strip{margin-bottom:6px !important;}
.nt-properties-column #ntTextTexturePanel .nt-text-texture-controls{
  padding-top:5px !important;
  gap:5px !important;
  border-top:0 !important;
}
.nt-properties-column #ntTextTexturePanel .nt-texture-section-panel > .btn,
.nt-properties-column #ntTextTexturePanel .nt-texture-section-panel > .mini-select{
  margin-bottom:5px;
}
.nt-properties-column #ntTextTexturePanel .nt-text-gradient-box,
.nt-properties-column #ntTextTexturePanel .nt-text-texture-blend-box{
  margin-top:0 !important;
  padding:8px !important;
  border-radius:10px !important;
}


/* =========================================================
   v1.4.5.262.76 — bibliothèque de polices : lignes lisibles
   ---------------------------------------------------------
   La .75 avait rendu la carte trop compressible autour du
   bouton Favori sur certaines résolutions/navigateurs.
   On impose une vraie ligne compacte, avec texte visible et
   étoile dans une colonne dédiée qui ne chevauche jamais le nom.
   ========================================================= */
.font-grid .font-card{
  position:relative !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 28px !important;
  align-items:center !important;
  min-height:40px !important;
  height:auto !important;
  padding:0 4px 0 0 !important;
  overflow:hidden !important;
  border-radius:9px !important;
}
.font-grid .font-card-main{
  appearance:none !important;
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  min-height:38px !important;
  height:auto !important;
  padding:4px 7px 4px 9px !important;
  margin:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#f4f4f7 !important;
  text-align:left !important;
  cursor:pointer !important;
  overflow:hidden !important;
}
.font-grid .font-preview{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  color:#f4f4f7 !important;
  font-size:14px !important;
  font-weight:600 !important;
  line-height:18px !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  opacity:1 !important;
  visibility:visible !important;
}
.font-grid .font-meta{
  display:block !important;
  width:100% !important;
  margin:1px 0 0 !important;
  padding:0 !important;
  color:rgba(255,255,255,.50) !important;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:9px !important;
  font-weight:600 !important;
  line-height:11px !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  opacity:1 !important;
  visibility:visible !important;
}
.font-grid .font-favorite-btn{
  position:static !important;
  transform:none !important;
  justify-self:center !important;
  align-self:center !important;
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  min-height:24px !important;
  margin:0 !important;
  padding:0 !important;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI Symbol",Arial,sans-serif !important;
  font-size:15px !important;
  line-height:1 !important;
  z-index:2 !important;
}

/* =========================================================
   v1.4.5.262.81 — Format libre impression / fond perdu
   ========================================================= */
.nt-free-print-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(78px,.55fr);
  gap:7px;
  margin-bottom:7px;
}
.nt-free-print-toolbar--three{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
  align-items:end;
}
.nt-free-print-field{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
  color:var(--muted,#9fa3ad);
  font-size:10px;
}
.nt-free-print-field select,
.nt-free-print-field input{
  width:100%;
  min-width:0;
  height:30px;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.09);
  border-radius:8px;
  background:rgba(0,0,0,.20);
  color:inherit;
  padding:0 8px;
  font:inherit;
  outline:none;
}
.nt-free-print-field select:focus,
.nt-free-print-field input:focus{border-color:rgba(212,175,55,.58)}
.nt-free-print-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:center}
.nt-free-print-inline b{color:#d8bd73;font-size:10px;font-weight:700}
.nt-free-print-guides-check{margin:5px 0 7px!important}
.nt-free-print-legend{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  margin-top:6px;
  color:var(--muted,#9fa3ad);
  font-size:9px;
  line-height:1.25;
}
.nt-free-print-legend .is-trim::before,
.nt-free-print-legend .is-safe::before{
  content:"";
  display:inline-block;
  width:13px;
  height:0;
  margin-right:4px;
  vertical-align:middle;
  border-top:2px dashed #ff6b6b;
}
.nt-free-print-legend .is-safe::before{border-color:#f0cf73}
.nt-free-canvas-size__head{margin-bottom:7px}
.nt-free-canvas-size__grid{gap:7px;margin-bottom:7px}
.nt-free-canvas-size__grid label{padding:6px 8px;border-radius:9px}
.nt-free-canvas-status{line-height:1.35}
@media(max-height:760px){
  .nt-free-print-toolbar{gap:5px;margin-bottom:5px}
  .nt-free-print-field select,.nt-free-print-field input{height:27px}
  .nt-free-print-legend{margin-top:4px;gap:5px}
}

/* v1.4.5.262.86 — Découpe libre 72 formes + catégories */
.nt-crop-shape-category{
  grid-column:1/-1;
  margin:4px 0 1px;
  padding:6px 7px;
  border-radius:7px;
  background:rgba(212,177,84,.08);
  border:1px solid rgba(212,177,84,.16);
  color:#f0cf73;
  font-size:9px;
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.nt-crop-shape-library{
  max-height:420px !important;
  overflow-y:auto !important;
  padding-right:2px !important;
  scrollbar-width:none !important;
}
.nt-crop-shape-library::-webkit-scrollbar{display:none!important}

/* v1.4.5.262.94 — Position image : cadre à l'alpha */
.nt-alpha-bounds-card{display:grid;gap:6px;padding:10px;border:1px solid rgba(212,175,55,.18);border-radius:10px;background:rgba(255,255,255,.025);}
.nt-alpha-bounds-btn{width:100%;justify-content:center;}
.nt-alpha-bounds-status{margin:0!important;line-height:1.35;}
.nt-alpha-bounds-status[data-state="ok"]{opacity:.95;}
.nt-alpha-bounds-status[data-state="warn"]{opacity:.95;}
.nt-alpha-bounds-status[data-state="working"]{opacity:.78;}




/* v1.4.5.262.98 — Double exposition simplifiée par presets */
.nt-double-exposure-section{display:flex;flex-direction:column;gap:12px;}
.nt-double-exposure-source-card{display:flex;flex-direction:column;gap:9px;padding:12px;border:1px solid var(--border,#2d3340);border-radius:12px;background:rgba(255,255,255,.025);}
.nt-double-exposure-source-head{display:flex;justify-content:space-between;gap:10px;align-items:center;}
.nt-double-exposure-source-head span{font-size:11px;opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55%;}
.nt-double-exposure-main-actions .btn.primary{font-weight:850;}
.nt-double-exposure-canvas-source,.nt-double-exposure-placement{border:1px solid rgba(255,255,255,.09);border-radius:10px;padding:9px 10px;background:rgba(255,255,255,.018);}
.nt-double-exposure-canvas-source summary,.nt-double-exposure-placement summary{cursor:pointer;font-weight:750;font-size:12px;}
.nt-double-exposure-canvas-source[open] summary,.nt-double-exposure-placement[open] summary{margin-bottom:9px;}
.nt-double-exposure-canvas-source select{width:100%;margin-bottom:8px;}
.nt-double-exposure-presets-wrap{display:grid;gap:8px;}
.nt-double-exposure-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.nt-double-exposure-preset{min-height:42px;justify-content:center;text-align:center;font-weight:800;line-height:1.15;}
.nt-double-exposure-preset.is-active{outline:2px solid var(--accent,#d4af37);outline-offset:-2px;background:rgba(212,175,55,.12);}
.nt-double-exposure-controls{gap:10px;}
.nt-double-exposure-opacity-row{padding:10px;border-radius:10px;background:rgba(212,175,55,.055);border:1px solid rgba(212,175,55,.16);}
.nt-double-exposure-status[data-state="ok"]{opacity:1;}
.nt-double-exposure-status[data-state="warn"]{font-weight:700;}

/* v1.4.5.262.103 — Réglages 3D visibles dans le vrai panneau Style > 3D */
.nt-text-three-d-controls{
  margin-top:8px;
  display:grid;
  gap:8px;
  padding:9px;
  border:1px solid rgba(212,175,55,.22);
  border-radius:10px;
  background:rgba(212,175,55,.045);
}
.nt-text-three-d-controls[hidden]{display:none !important;}
.nt-text-three-d-control-row{
  display:grid;
  grid-template-columns:84px minmax(0,1fr);
  gap:8px;
  align-items:center;
  margin-bottom:0;
  min-width:0;
}
.nt-text-three-d-control-row > label{
  color:#e8d8a5;
  font-size:11px;
  font-weight:700;
}
.nt-text-three-d-inner-row{
  grid-template-columns:84px minmax(0,1fr);
  margin-bottom:4px;
}
.nt-text-three-d-inner-row .nt-fx-toggle{font-size:11px;}
.nt-text-three-d-hint{
  margin:5px 0 0;
  color:rgba(246,240,220,.58);
  font-size:10px;
  line-height:1.35;
}

/* v1.4.5.262.106 — Directions isométriques + couleur du creusé */

.nt-text-three-d-palette-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:2px 0 9px;
}
.nt-text-three-d-swatch{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:6px 8px;
  border:1px solid rgba(212,175,55,.15);
  border-radius:8px;
  background:rgba(0,0,0,.10);
  color:#d8c58e;
  font-size:10px;
  font-weight:700;
}
.nt-text-three-d-swatch input[type="color"]{
  width:30px;
  height:25px;
  padding:2px;
  border:1px solid rgba(212,175,55,.25);
  border-radius:7px;
  background:#101116;
}
.nt-text-three-d-directions{margin:2px 0 9px;padding:7px;border:1px solid rgba(212,175,55,.14);border-radius:9px;background:rgba(0,0,0,.12);}
.nt-text-three-d-directions[hidden]{display:none !important;}
.nt-text-three-d-directions-title{display:block;margin-bottom:6px;color:#e8d8a5;font-size:10px;font-weight:800;}
.nt-text-three-d-direction-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;}
.nt-three-d-direction{min-width:0;height:30px;border:1px solid rgba(212,175,55,.22);border-radius:8px;background:#14151a;color:#f1e5bd;font-size:16px;line-height:1;cursor:pointer;}
.nt-three-d-direction:hover{background:rgba(212,175,55,.08);border-color:rgba(212,175,55,.45);}
.nt-three-d-direction.is-active{background:rgba(212,175,55,.14);border-color:#d4af37;color:#ffe68a;box-shadow:inset 0 0 0 1px rgba(212,175,55,.18);}
.nt-text-three-d-inner-controls{display:grid;grid-template-columns:78px minmax(0,1fr);gap:7px;align-items:center;}
.nt-text-three-d-inner-color{display:flex;align-items:center;gap:5px;color:#d8c58e;font-size:9px;font-weight:700;}
.nt-text-three-d-inner-color input[type="color"]{width:30px;height:25px;padding:2px;border:1px solid rgba(212,175,55,.25);border-radius:7px;background:#101116;}


/* =========================================================
   v1.4.5.262.107 — Panneau Style 3D : anti-superposition
   ---------------------------------------------------------
   Dans la colonne de propriétés étroite, la couleur et les
   curseurs occupent désormais des lignes séparées. Cela évite
   les chevauchements quelle que soit la largeur du panneau.
   ========================================================= */
.nt-text-three-d-inner-row{
  grid-template-columns:1fr !important;
  gap:6px !important;
  align-items:stretch !important;
}
.nt-text-three-d-inner-controls{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:8px !important;
  width:100% !important;
  min-width:0 !important;
}
.nt-text-three-d-inner-color{
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  justify-content:space-between !important;
  padding:5px 7px !important;
  border:1px solid rgba(212,175,55,.15);
  border-radius:8px;
  background:rgba(0,0,0,.10);
}
.nt-text-three-d-inner-controls .nt-fx-range{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

/* Même protection pour Profondeur + Couleur du style 3D principal. */
.nt-properties-column #ntTextStylePanel #ntTextStyleControls{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:8px !important;
  width:100% !important;
  min-width:0 !important;
  padding:8px 5px !important;
  box-sizing:border-box !important;
}
.nt-properties-column #ntTextStylePanel #ntTextStyleIntensityLabel{
  width:100% !important;
  margin:0 !important;
}
.nt-properties-column #ntTextStylePanel #ntTextStyleIntensity{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
  box-sizing:border-box !important;
}
.nt-properties-column #ntTextStylePanel #ntTextStyleColorWrap{
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  justify-content:space-between !important;
  margin:0 !important;
}
.nt-properties-column #ntTextStylePanel #ntTextStyleResetBtn{
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
}

.nt-text-lab-panel{margin:8px 0 14px;padding:0 0 14px;border-bottom:1px solid rgba(255,255,255,.08);}
.nt-text-lab-note{margin:0 0 10px;font-size:11px;line-height:1.45;color:#d2d6df;opacity:.92;}
.nt-text-lab-filters{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;}
.nt-text-lab-filter{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#eef3ff;border-radius:999px;padding:5px 10px;font-size:11px;cursor:pointer;}
.nt-text-lab-filter.is-active{background:rgba(255,215,106,.16);border-color:rgba(255,215,106,.45);color:#ffd76a;}
.nt-text-lab-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:280px;overflow:auto;padding-right:2px;}
.nt-text-lab-btn{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:3px;min-height:58px;padding:9px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.03));color:#f4f7ff;cursor:pointer;text-align:left;}
.nt-text-lab-btn:hover{border-color:rgba(255,215,106,.36);transform:translateY(-1px);}
.nt-text-lab-btn.is-active{border-color:rgba(255,215,106,.58);box-shadow:0 0 0 1px rgba(255,215,106,.22) inset;background:linear-gradient(180deg,rgba(255,215,106,.14),rgba(255,255,255,.04));}
.nt-text-lab-btn strong{font-size:12px;line-height:1.2;font-weight:700;}
.nt-text-lab-btn small{font-size:10px;line-height:1.25;color:#b9c0cf;opacity:.95;}
@media (max-width:560px){.nt-text-lab-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}

.nt-text-lab-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.03));color:#f4f7ff;cursor:pointer;font-weight:800;}
.nt-text-lab-toggle-badge{font-size:10px;font-weight:700;color:#ffd76a;background:rgba(255,215,106,.12);border:1px solid rgba(255,215,106,.32);padding:4px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;}
.nt-text-lab-body{margin-top:10px;}
.nt-text-lab-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:340px;}
.nt-text-lab-btn[hidden]{display:none !important;}

.nt-text-panel-card-title--small{font-size:12px;opacity:.9;margin-bottom:8px;}
.nt-text-lab-customize{margin:12px 0;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);}
.nt-text-lab-color-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end;}
.nt-text-lab-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:10px;}
.nt-text-lab-customize.is-disabled{opacity:.55;pointer-events:none;}
@media (max-width: 900px){.nt-text-lab-color-row{grid-template-columns:1fr;}}


.nt-text-lab-color-hint{margin:8px 0 0;font-size:10px;line-height:1.4;color:#aeb7c8;}

/* v1.4.5.262.122 — Laboratoire FX compact et lisible */
.nt-text-lab-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px;}
.nt-text-lab-head .nt-text-lab-note{margin:3px 0 0;}
.nt-text-lab-count{flex:0 0 auto;font-size:10px;line-height:1;padding:5px 7px;border-radius:999px;color:#cbd5e1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);}
.nt-text-lab-category-select{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;margin:0 0 10px;padding:9px 10px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.025);}
.nt-text-lab-category-select>span{font-size:11px;font-weight:800;color:#dbe3ef;}
.nt-text-lab-category-select select{width:100%;min-width:0;height:32px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#17191e;color:#fff;padding:0 28px 0 9px;font-size:11px;font-weight:700;}
.nt-text-lab-filters{display:none !important;}
.nt-text-lab-customize{margin:0 0 10px;padding:10px;border-radius:11px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);overflow:hidden;}
.nt-text-lab-customize-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.07);}
.nt-text-lab-live{font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#9fe7bc;background:rgba(65,190,120,.10);border:1px solid rgba(65,190,120,.18);padding:4px 6px;border-radius:999px;}
.nt-text-lab-color-stack{display:grid;gap:6px;}
.nt-text-lab-color-control{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:7px 8px;border-radius:9px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.055);cursor:pointer;}
.nt-text-lab-color-copy{display:flex;flex-direction:column;min-width:0;line-height:1.15;}
.nt-text-lab-color-copy strong{font-size:11px;color:#f5f7fb;font-weight:800;}
.nt-text-lab-color-copy small{margin-top:2px;font-size:9px;color:#9fa9ba;white-space:normal;}
.nt-text-lab-color-control input[type="color"]{flex:0 0 34px;width:34px;height:34px;padding:2px;border-radius:9px;border:1px solid rgba(255,255,255,.16);background:#101216;cursor:pointer;}
.nt-text-lab-color-control input[type="color"]::-webkit-color-swatch-wrapper{padding:0;}
.nt-text-lab-color-control input[type="color"]::-webkit-color-swatch{border:0;border-radius:6px;}
.nt-text-lab-actions{display:flex;justify-content:flex-end;margin-top:8px;}
.nt-text-lab-actions .btn{width:100%;min-height:30px;}
.nt-text-lab-color-row,.nt-text-lab-color-hint{display:none !important;}
.nt-text-lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:360px;overflow:auto;padding-right:2px;}
.nt-text-lab-btn{min-height:62px;padding:9px;border-radius:10px;}
.nt-text-lab-btn strong{font-size:11px;line-height:1.15;}
.nt-text-lab-btn small{font-size:9px;line-height:1.2;}
@media (max-width:560px){.nt-text-lab-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.nt-text-lab-category-select{grid-template-columns:1fr;gap:5px;}}

/* v1.4.5.262.135 — Filets intérieurs toujours visibles dans la catégorie Intérieur */
.nt-text-lab-featured-inner{margin:10px 0 12px;padding:10px;border:1px solid rgba(255,215,106,.28);border-radius:12px;background:linear-gradient(180deg,rgba(255,215,106,.09),rgba(255,255,255,.025));}
.nt-text-lab-featured-inner[hidden]{display:none!important;}
.nt-text-lab-featured-inner-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px;}
.nt-text-lab-featured-inner-head strong{font-size:12px;color:#ffe08a;}
.nt-text-lab-featured-inner-head small{font-size:9px;color:#aeb6c6;text-align:right;}
.nt-text-lab-featured-inner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.nt-text-lab-btn--featured{border-color:rgba(255,215,106,.24);min-height:64px;}
@media (max-width:560px){.nt-text-lab-featured-inner-grid{grid-template-columns:1fr;}}

/* v1.4.5.262.139 — Liseré décoratif : épaisseur 0,25 à 1,50 px et reliefs */
.nt-decorative-filet-controls{display:grid;gap:9px;margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,215,106,.16);}
.nt-decorative-filet-slider-row{display:grid;grid-template-columns:minmax(86px,auto) 1fr auto;align-items:center;gap:8px;padding:8px 9px;border-radius:10px;background:rgba(0,0,0,.16);border:1px solid rgba(255,255,255,.06);}
.nt-decorative-filet-slider-row label{display:flex;flex-direction:column;gap:1px;line-height:1.1;}
.nt-decorative-filet-slider-row label strong{font-size:10px;color:#fff1b8;}
.nt-decorative-filet-slider-row label small{font-size:8px;color:#929bac;}
.nt-decorative-filet-slider-row input[type="range"]{width:100%;min-width:70px;accent-color:#e8be3a;}
.nt-decorative-filet-slider-row output{min-width:52px;text-align:right;font-size:10px;font-weight:800;color:#ffe08a;font-variant-numeric:tabular-nums;}
.nt-decorative-relief-box{display:grid;gap:7px;}
.nt-decorative-filet-subtitle{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.nt-decorative-filet-subtitle strong{font-size:10px;color:#eef2f8;}
.nt-decorative-filet-subtitle small{font-size:8px;color:#929bac;text-align:right;}
.nt-decorative-relief-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;}
.nt-decorative-relief-btn{min-height:52px;padding:7px 6px;}
.nt-decorative-relief-btn.is-active{border-color:rgba(255,215,106,.62);background:rgba(212,175,55,.15);box-shadow:0 0 0 1px rgba(212,175,55,.12) inset;}
@media (max-width:560px){.nt-decorative-relief-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.nt-decorative-filet-slider-row{grid-template-columns:1fr auto;}.nt-decorative-filet-slider-row input[type="range"]{grid-column:1/-1;}}

/* v1.4.5.262.139 — filet déformable de découpe image */
.nt-crop-mesh-panel{display:grid;gap:10px}
.nt-crop-mesh-panel[hidden]{display:none!important}
.nt-crop-mesh-head{display:grid;gap:3px;padding:10px 12px;border:1px solid rgba(212,177,84,.18);border-radius:14px;background:rgba(212,177,84,.055)}
.nt-crop-mesh-head strong{color:var(--gold-2);font-size:12px}
.nt-crop-mesh-head small{color:var(--muted);line-height:1.35}
.nt-crop-mesh-actions{display:flex;gap:8px;flex-wrap:wrap}

.nt-crop-mesh-presets{display:grid;gap:8px;padding:10px 12px;border:1px solid rgba(212,177,84,.15);border-radius:14px;background:rgba(255,255,255,.02)}
.nt-crop-mesh-presets-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.nt-crop-mesh-presets-head strong{font-size:11px;color:var(--gold-2)}
.nt-crop-mesh-presets-head small{font-size:10px;color:var(--muted)}
.nt-crop-mesh-preset-groups{display:grid;gap:10px}
.nt-crop-mesh-preset-group--creative{padding:9px;border:1px solid rgba(240,207,115,.32);border-radius:12px;background:rgba(240,207,115,.06)}

.nt-crop-grid-presets .nt-crop-split-field{display:grid;gap:6px;margin:10px 0 12px}
.nt-crop-grid-presets .nt-crop-split-field label{font-size:11px;font-weight:700;color:#f7f1dd}
.nt-crop-grid-presets .nt-crop-split-field input[type="range"]{width:100%}
.nt-crop-mesh-preset-group--creative .nt-crop-mesh-preset-group-title{color:#ffe7a4}
.nt-crop-mesh-preset-group{display:grid;gap:6px}
.nt-crop-mesh-preset-group-title{font-size:10px;font-weight:700;letter-spacing:.02em;color:#f2ead2;text-transform:uppercase}
.nt-crop-mesh-preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.nt-crop-mesh-preset-btn{min-height:54px;padding:8px 7px;display:grid;align-content:start;justify-items:start;text-align:left;gap:3px;border-radius:12px;border:1px solid rgba(255,215,106,.18);background:rgba(255,255,255,.03);color:#fff3c1;font-weight:700}
.nt-crop-mesh-preset-btn small{display:block;font-size:10px;line-height:1.2;color:#98a0af;font-weight:600}
.nt-crop-mesh-preset-btn:hover,.nt-crop-mesh-preset-btn.is-active{border-color:rgba(255,215,106,.56);background:rgba(212,175,55,.14);box-shadow:0 0 0 1px rgba(212,175,55,.1) inset}
@media (max-width:560px){.nt-crop-mesh-preset-grid{grid-template-columns:1fr}}


/* =========================================================
   v1.4.5.262.159 — ANNULER / RÉTABLIR
   Boutons toujours visibles dans la barre supérieure, juste
   après Mode avancé. L'état désactivé reste lisible.
   ========================================================= */
.topbar .nt-history-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  white-space:nowrap !important;
  border-color:var(--nt74-line) !important;
  background:rgba(255,255,255,.025) !important;
  color:rgba(255,255,255,.86) !important;
  box-shadow:none !important;
}
.topbar .nt-history-btn:hover:not(:disabled){
  background:rgba(255,255,255,.065) !important;
  color:#fff !important;
}
.topbar .nt-history-btn:disabled{
  display:inline-flex !important;
  opacity:.42 !important;
  cursor:not-allowed !important;
  color:rgba(255,255,255,.62) !important;
}

/* =========================================================
   v1.4.5.262.160 — SÉLECTION MULTIPLE
   ---------------------------------------------------------
   Une ActiveSelection Fabric possède maintenant sa propre
   barre contextuelle et son propre panneau de propriétés.
   ========================================================= */
.topbar .nt-multi-select-all-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  white-space:nowrap !important;
}
.topbar .nt-multi-select-all-btn:disabled{
  opacity:.42 !important;
  cursor:not-allowed !important;
}
.nt-multi-contextbar{
  width:100%;
  align-items:center;
}
.nt-multi-context-row{
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.nt-multi-context-row strong{
  color:#fff3c1;
  font-size:12px;
  white-space:nowrap;
}
.nt-multi-context-hint{
  color:#aeb4c0;
  font-size:11px;
  line-height:1.35;
  flex:1 1 260px;
}
.nt-multi-properties-content{
  display:grid;
  gap:12px;
}
.nt-multi-selection-summary,
.nt-multi-selection-card{
  padding:12px;
  border:1px solid rgba(212,175,55,.18);
  border-radius:14px;
  background:rgba(255,255,255,.025);
}
.nt-multi-selection-summary strong{
  display:block;
  color:#fff3c1;
  font-size:13px;
  margin-bottom:5px;
}
.nt-multi-selection-summary p,
.nt-multi-selection-note{
  margin:0;
  color:#9ba2af;
  font-size:11px;
  line-height:1.45;
}
.nt-multi-selection-card h3{
  margin:0 0 9px;
  font-size:12px;
  color:#f2ead2;
}
.nt-multi-selection-grid{
  display:grid;
  gap:7px;
}
.nt-multi-selection-grid-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.nt-multi-selection-grid-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.nt-multi-selection-grid .btn{
  min-width:0;
  padding-left:6px;
  padding-right:6px;
}
.nt-multi-selection-note{ margin-top:8px; }
.nt-multi-clear-wide{ width:100%; }
.nt-properties-column[data-nt-selected-kind="multi"] .nt-compact-palette{
  opacity:.55;
}
@media (max-width:720px){
  .nt-multi-context-hint{ display:none; }
  .nt-multi-selection-grid-3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}


/* ============================================================
   v1.4.5.262.161 — ESPACEMENT DES LETTRES / TRACKING
   ============================================================ */
.nt-text-charspacing-wrap{min-width:0!important;padding:0!important;border:0!important;background:transparent!important}
.nt-text-charspacing-input{width:66px!important;min-width:66px!important}
.nt-text-charspacing-range{width:172px!important;min-width:120px!important;flex:1 1 auto}
.nt-text-charspacing-wrap.is-disabled{opacity:.45}
.nt-text-charspacing-wrap.is-disabled > summary{pointer-events:none}


/* =========================================================
   v1.4.5.262.163 — DUPLICATION MULTIPLE + PRESETS DE RÉPARTITION
   ========================================================= */
.nt-text-multi-duplicate-btn{white-space:nowrap}
.nt-multi-duplicate-modal[hidden]{display:none!important}
.nt-multi-duplicate-modal{
  position:fixed;inset:0;z-index:1000002;display:flex;align-items:center;justify-content:center;padding:18px;
}
.nt-multi-duplicate-modal__backdrop{position:absolute;inset:0;background:rgba(4,6,10,.76);backdrop-filter:blur(5px)}
.nt-multi-duplicate-modal__dialog{
  position:relative;z-index:1;width:min(690px,calc(100vw - 28px));max-height:calc(100vh - 30px);border:1px solid rgba(228,194,102,.48);
  border-radius:18px;background:linear-gradient(155deg,#181b22,#0f1116);box-shadow:0 26px 80px rgba(0,0,0,.58);color:#f5eddc;overflow:auto;
}
.nt-multi-duplicate-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.nt-multi-duplicate-modal__head h2{margin:0;font-size:19px;line-height:1.15}
.nt-multi-duplicate-modal__head p{margin:6px 0 0;color:#b9b4aa;font-size:12px}
.nt-multi-duplicate-modal__close{border:0;background:transparent;color:#f5eddc;font-size:27px;line-height:1;cursor:pointer;padding:0 2px}
.nt-multi-duplicate-modal__body{display:grid;grid-template-columns:minmax(150px,190px) minmax(0,1fr);gap:18px;padding:20px}
.nt-multi-duplicate-modal__body label,.nt-multi-duplicate-layout-title{font-size:13px;font-weight:800;color:#ead393}
.nt-multi-duplicate-count-block{display:grid;gap:10px;align-content:start}
.nt-multi-duplicate-modal__body input{
  width:100%;height:46px;border-radius:11px;border:1px solid rgba(228,194,102,.38);background:#0a0c10;color:#fff;
  padding:0 13px;font-size:18px;font-weight:800;outline:none;
}
.nt-multi-duplicate-modal__body input:focus{border-color:#e1bd5d;box-shadow:0 0 0 3px rgba(225,189,93,.12)}
.nt-multi-duplicate-modal__body p{margin:0;color:#aaa59b;font-size:12px}
.nt-multi-duplicate-layout-block{display:grid;gap:10px;min-width:0}
.nt-multi-duplicate-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.nt-duplicate-preset{
  appearance:none;min-width:0;border:1px solid rgba(228,194,102,.20);border-radius:12px;background:rgba(255,255,255,.035);color:#eee5d2;
  padding:8px 7px 9px;cursor:pointer;display:grid;gap:7px;justify-items:center;transition:border-color .14s ease,background .14s ease,transform .14s ease,box-shadow .14s ease;
}
.nt-duplicate-preset:hover{border-color:rgba(228,194,102,.55);background:rgba(228,194,102,.08);transform:translateY(-1px)}
.nt-duplicate-preset.is-active{border-color:#e1bd5d;background:rgba(225,189,93,.15);box-shadow:inset 0 0 0 1px rgba(255,245,198,.08),0 0 0 2px rgba(225,189,93,.06)}
.nt-duplicate-preset:disabled{opacity:.5;cursor:default;transform:none}
.nt-duplicate-preset strong{font-size:10px;line-height:1.1;text-align:center;white-space:normal}
.nt-duplicate-preset-preview{position:relative;display:block;width:70px;height:48px;border-radius:7px;background:rgba(0,0,0,.22);overflow:hidden}
.nt-duplicate-preset-preview i{position:absolute;display:block;width:25px;height:5px;border-radius:2px;background:#e9d48d;box-shadow:0 0 0 1px rgba(255,255,255,.08)}
.nt-dup-preview--cascade i:nth-child(1){left:9px;top:8px}.nt-dup-preview--cascade i:nth-child(2){left:15px;top:15px}.nt-dup-preview--cascade i:nth-child(3){left:21px;top:22px}.nt-dup-preview--cascade i:nth-child(4){left:27px;top:29px}.nt-dup-preview--cascade i:nth-child(5){left:33px;top:36px}
.nt-dup-preview--horizontal i{top:21px;width:10px}.nt-dup-preview--horizontal i:nth-child(1){left:6px}.nt-dup-preview--horizontal i:nth-child(2){left:18px}.nt-dup-preview--horizontal i:nth-child(3){left:30px}.nt-dup-preview--horizontal i:nth-child(4){left:42px}.nt-dup-preview--horizontal i:nth-child(5){left:54px}
.nt-dup-preview--vertical i{left:22px;width:27px}.nt-dup-preview--vertical i:nth-child(1){top:5px}.nt-dup-preview--vertical i:nth-child(2){top:13px}.nt-dup-preview--vertical i:nth-child(3){top:21px}.nt-dup-preview--vertical i:nth-child(4){top:29px}.nt-dup-preview--vertical i:nth-child(5){top:37px}
.nt-dup-preview--diag-down i{width:18px}.nt-dup-preview--diag-down i:nth-child(1){left:5px;top:5px}.nt-dup-preview--diag-down i:nth-child(2){left:16px;top:13px}.nt-dup-preview--diag-down i:nth-child(3){left:27px;top:21px}.nt-dup-preview--diag-down i:nth-child(4){left:38px;top:29px}.nt-dup-preview--diag-down i:nth-child(5){left:49px;top:37px}
.nt-dup-preview--diag-up i{width:18px}.nt-dup-preview--diag-up i:nth-child(1){left:5px;top:37px}.nt-dup-preview--diag-up i:nth-child(2){left:16px;top:29px}.nt-dup-preview--diag-up i:nth-child(3){left:27px;top:21px}.nt-dup-preview--diag-up i:nth-child(4){left:38px;top:13px}.nt-dup-preview--diag-up i:nth-child(5){left:49px;top:5px}
.nt-dup-preview--grid i{width:23px}.nt-dup-preview--grid i:nth-child(1){left:8px;top:9px}.nt-dup-preview--grid i:nth-child(2){left:39px;top:9px}.nt-dup-preview--grid i:nth-child(3){left:8px;top:22px}.nt-dup-preview--grid i:nth-child(4){left:39px;top:22px}.nt-dup-preview--grid i:nth-child(5){left:8px;top:35px}
.nt-dup-preview--fan i{left:23px;top:22px;transform-origin:4px 3px}.nt-dup-preview--fan i:nth-child(1){transform:rotate(-28deg)}.nt-dup-preview--fan i:nth-child(2){transform:rotate(-14deg)}.nt-dup-preview--fan i:nth-child(3){transform:rotate(0)}.nt-dup-preview--fan i:nth-child(4){transform:rotate(14deg)}.nt-dup-preview--fan i:nth-child(5){transform:rotate(28deg)}
.nt-dup-preview--circle i{width:14px;height:4px}.nt-dup-preview--circle i:nth-child(1){left:28px;top:5px}.nt-dup-preview--circle i:nth-child(2){left:48px;top:17px;transform:rotate(55deg)}.nt-dup-preview--circle i:nth-child(3){left:40px;top:36px;transform:rotate(-25deg)}.nt-dup-preview--circle i:nth-child(4){left:14px;top:36px;transform:rotate(25deg)}.nt-dup-preview--circle i:nth-child(5){left:7px;top:17px;transform:rotate(-55deg)}
.nt-multi-duplicate-layout-hint{font-weight:800;color:#d8c58e!important}
.nt-multi-duplicate-modal__foot{display:flex;justify-content:flex-end;gap:9px;padding:14px 20px 18px;border-top:1px solid rgba(255,255,255,.06)}
@media(max-width:760px){
  .nt-multi-duplicate-modal{padding:8px}
  .nt-multi-duplicate-modal__dialog{width:calc(100vw - 16px)}
  .nt-multi-duplicate-modal__body{grid-template-columns:1fr;gap:14px;padding:16px}
  .nt-multi-duplicate-presets{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* v1.4.5.262.165 — Séparation des lettres */
.nt-split-letters-btn{white-space:nowrap}
.nt-split-letters-btn:disabled{opacity:.42;cursor:not-allowed}

/* =========================================================
   v1.4.5.262.166 — CHAOS DES LETTRES SÉPARÉES
   ========================================================= */
.nt-chaos-letters-btn{white-space:nowrap}
.nt-chaos-letters-btn:disabled{opacity:.42;cursor:not-allowed}
.nt-chaos-modal[hidden]{display:none!important}
.nt-chaos-modal{position:fixed;inset:0;z-index:1000003;display:flex;align-items:center;justify-content:center;padding:18px}
.nt-chaos-modal__backdrop{position:absolute;inset:0;background:rgba(4,6,10,.78);backdrop-filter:blur(5px)}
.nt-chaos-modal__dialog{position:relative;z-index:1;width:min(720px,calc(100vw - 28px));max-height:calc(100vh - 30px);overflow:auto;border:1px solid rgba(228,194,102,.48);border-radius:18px;background:linear-gradient(155deg,#181b22,#0f1116);box-shadow:0 26px 80px rgba(0,0,0,.58);color:#f5eddc}
.nt-chaos-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.nt-chaos-modal__head h2{margin:0;font-size:19px;line-height:1.15}
.nt-chaos-modal__head p{margin:6px 0 0;color:#b9b4aa;font-size:12px;max-width:560px}
.nt-chaos-modal__close{border:0;background:transparent;color:#f5eddc;font-size:27px;line-height:1;cursor:pointer;padding:0 2px}
.nt-chaos-modal__body{padding:20px;display:grid;gap:14px}
.nt-chaos-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.nt-chaos-preset{appearance:none;border:1px solid rgba(228,194,102,.20);border-radius:13px;background:rgba(255,255,255,.035);color:#eee5d2;padding:10px 9px;cursor:pointer;display:grid;gap:5px;justify-items:center;transition:border-color .14s ease,background .14s ease,transform .14s ease,box-shadow .14s ease}
.nt-chaos-preset:hover{border-color:rgba(228,194,102,.58);background:rgba(228,194,102,.08);transform:translateY(-1px)}
.nt-chaos-preset.is-active{border-color:#e1bd5d;background:rgba(225,189,93,.15);box-shadow:inset 0 0 0 1px rgba(255,245,198,.08),0 0 0 2px rgba(225,189,93,.06)}
.nt-chaos-preset:disabled{opacity:.5;cursor:default;transform:none}
.nt-chaos-preset strong{font-size:12px;line-height:1.1}
.nt-chaos-preset small{font-size:10px;color:#a9a396;line-height:1.15;text-align:center}
.nt-chaos-preview{position:relative;display:block;width:112px;height:55px;border-radius:8px;background:rgba(0,0,0,.24);overflow:hidden}
.nt-chaos-preview i{position:absolute;font-style:normal;font-weight:900;font-size:22px;line-height:1;color:#e9d48d;transform-origin:50% 70%}
.nt-chaos-preview i:nth-child(1){left:12px;top:17px}.nt-chaos-preview i:nth-child(2){left:36px;top:17px}.nt-chaos-preview i:nth-child(3){left:61px;top:17px}.nt-chaos-preview i:nth-child(4){left:85px;top:17px}
.nt-chaos-preview--soft i:nth-child(1){transform:rotate(-5deg);top:18px}.nt-chaos-preview--soft i:nth-child(2){transform:rotate(3deg);top:15px}.nt-chaos-preview--soft i:nth-child(3){transform:rotate(-2deg);top:19px}.nt-chaos-preview--soft i:nth-child(4){transform:rotate(5deg);top:15px}
.nt-chaos-preview--dance i:nth-child(1){transform:rotate(-12deg) scale(.88);top:21px}.nt-chaos-preview--dance i:nth-child(2){transform:rotate(8deg) scale(1.12);top:10px}.nt-chaos-preview--dance i:nth-child(3){transform:rotate(-8deg) scale(.96);top:23px}.nt-chaos-preview--dance i:nth-child(4){transform:rotate(13deg) scale(1.08);top:12px}
.nt-chaos-preview--zigzag i:nth-child(1){transform:rotate(-7deg);top:8px}.nt-chaos-preview--zigzag i:nth-child(2){transform:rotate(6deg);top:27px}.nt-chaos-preview--zigzag i:nth-child(3){transform:rotate(-6deg);top:8px}.nt-chaos-preview--zigzag i:nth-child(4){transform:rotate(7deg);top:27px}
.nt-chaos-preview--bounce i:nth-child(1){transform:scale(.85);top:25px}.nt-chaos-preview--bounce i:nth-child(2){transform:rotate(-7deg) scale(1.15);top:8px}.nt-chaos-preview--bounce i:nth-child(3){transform:rotate(6deg) scale(.94);top:20px}.nt-chaos-preview--bounce i:nth-child(4){transform:scale(1.18);top:6px}
.nt-chaos-preview--explosive i:nth-child(1){left:7px;top:28px;transform:rotate(-22deg) scale(.85)}.nt-chaos-preview--explosive i:nth-child(2){left:37px;top:5px;transform:rotate(17deg) scale(1.22)}.nt-chaos-preview--explosive i:nth-child(3){left:63px;top:25px;transform:rotate(-15deg) scale(.78)}.nt-chaos-preview--explosive i:nth-child(4){left:88px;top:7px;transform:rotate(24deg) scale(1.15)}
.nt-chaos-preview--max i:nth-child(1){left:4px;top:30px;transform:rotate(-34deg) scale(.68)}.nt-chaos-preview--max i:nth-child(2){left:34px;top:1px;transform:rotate(31deg) scale(1.36)}.nt-chaos-preview--max i:nth-child(3){left:66px;top:30px;transform:rotate(-28deg) scale(1.24)}.nt-chaos-preview--max i:nth-child(4){left:91px;top:4px;transform:rotate(37deg) scale(.72)}
.nt-chaos-modal__hint{margin:0;color:#d8c58e;font-size:12px;font-weight:800;text-align:center}
.nt-chaos-modal__foot{display:flex;justify-content:flex-end;gap:9px;padding:14px 20px 18px;border-top:1px solid rgba(255,255,255,.06)}
@media(max-width:700px){.nt-chaos-modal{padding:8px}.nt-chaos-modal__dialog{width:calc(100vw - 16px)}.nt-chaos-presets{grid-template-columns:repeat(2,minmax(0,1fr))}.nt-chaos-modal__foot{flex-wrap:wrap}.nt-chaos-preview{width:100px}}


/* ============================================================
   v1.4.5.262.168 — BARRE TEXTE COMPACTE
   Actions (Dupliquer / Séparer / Chaos / Rotation) regroupées
   et Espacement déplacé dans un petit popover.
   ============================================================ */
.nt-compact-toolbar-menu{
  position:relative;
  display:inline-block;
  flex:0 0 auto;
  min-width:0;
}
.nt-compact-toolbar-menu > summary{
  list-style:none;
  cursor:pointer;
  user-select:none;
}
.nt-compact-toolbar-menu > summary::-webkit-details-marker{display:none}
.nt-compact-toolbar-summary{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  white-space:nowrap!important;
  min-width:auto!important;
}
.nt-text-charspacing-summary{padding-inline:10px!important}
.nt-text-actions-summary{padding-inline:11px!important}
.nt-compact-toolbar-chevron{
  font-size:11px;
  opacity:.78;
  transition:transform .14s ease;
}
.nt-compact-toolbar-menu[open] > summary .nt-compact-toolbar-chevron{transform:rotate(180deg)}
.nt-compact-toolbar-menu[open] > summary{
  border-color:rgba(212,175,55,.65)!important;
  box-shadow:0 0 0 1px rgba(212,175,55,.12) inset;
}
.nt-compact-toolbar-popover{
  position:absolute;
  z-index:10080;
  top:calc(100% + 8px);
  left:0;
  padding:10px;
  border:1px solid rgba(212,175,55,.32);
  border-radius:13px;
  background:linear-gradient(180deg,rgba(24,23,20,.995),rgba(15,15,18,.995));
  box-shadow:0 18px 46px rgba(0,0,0,.54),0 0 0 1px rgba(255,255,255,.025) inset;
  backdrop-filter:blur(16px);
}
.nt-compact-toolbar-popover-title{
  margin:0 0 8px;
  font-size:11px;
  font-weight:800;
  color:#f1dfac;
  white-space:nowrap;
}
.nt-compact-toolbar-note{
  margin-top:6px;
  color:#9e9eaa;
  font-size:10px;
  white-space:nowrap;
}
.nt-text-charspacing-popover{width:286px}
.nt-text-charspacing-controls{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
}
.nt-text-actions-popover{
  width:184px;
  display:grid;
  gap:6px;
}
.nt-text-actions-item{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  padding:8px 10px!important;
  text-align:left!important;
  white-space:nowrap!important;
}
.nt-text-actions-item > span:first-child{
  width:16px;
  flex:0 0 16px;
  text-align:center;
  color:#f1dfac;
}
.nt-text-actions-item:disabled{opacity:.42;cursor:not-allowed}
@media (max-width:720px){
  .nt-text-charspacing-popover{width:min(286px,calc(100vw - 24px))}
  .nt-text-actions-popover{width:176px}
}

/* ============================================================
   v1.4.5.262.168 — POPOVERS BARRE TEXTE HORS OVERFLOW
   Les menus compacts sont portalisés dans <body> à l'ouverture
   afin de ne plus être découpés par l'overflow de la quickbar.
   ============================================================ */
.nt-compact-toolbar-popover--portal{
  display:grid;
  pointer-events:auto;
  max-width:calc(100vw - 16px);
}
.nt-text-charspacing-popover.nt-compact-toolbar-popover--portal{
  display:block;
}


/* ============================================================
   v1.4.5.262.169 — GRAISSE TEXTE COMPACTE
   Le bouton B devient un menu 400 / 700 / 900 sans élargir la barre.
   ============================================================ */
.nt-font-weight-summary{
  min-width:42px!important;
  padding-inline:8px!important;
  gap:5px!important;
}
.nt-font-weight-summary strong{font-size:14px;line-height:1}
.nt-font-weight-summary[data-nt-weight="700"] strong{font-weight:700}
.nt-font-weight-summary[data-nt-weight="900"] strong{font-weight:900}
.nt-font-weight-summary.is-on{border-color:rgba(212,175,55,.55)!important;color:#f3dc91!important}
.nt-font-weight-popover{
  width:204px;
  display:grid;
  gap:6px;
}
.nt-font-weight-option{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:8px 10px!important;
  text-align:left!important;
}
.nt-font-weight-option b{font-size:10px;color:#cbb56f;opacity:.86}
.nt-font-weight-option[data-nt-font-weight="400"] span{font-weight:400}
.nt-font-weight-option[data-nt-font-weight="700"] span{font-weight:700}
.nt-font-weight-option[data-nt-font-weight="900"] span{font-weight:900}
.nt-font-weight-option.is-active{
  border-color:rgba(212,175,55,.72)!important;
  background:rgba(212,175,55,.10)!important;
  color:#f5e4ad!important;
}
.nt-font-weight-menu.is-disabled{opacity:.45;pointer-events:none}
@media(max-width:720px){.nt-font-weight-popover{width:196px}}


/* ============================================================
   v1.4.5.262.171 — MENU GRAISSE PLUS COMPACT + NIVEAU LEGER
   ============================================================ */
.nt-font-weight-popover{
  width:158px;
  padding:8px;
  gap:5px;
}
.nt-font-weight-option{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  justify-content:flex-start!important;
  padding:7px 9px!important;
}
.nt-font-weight-option[data-nt-font-weight="300"] span{font-weight:300}
.nt-font-weight-option[data-nt-font-weight="400"] span{font-weight:400}
.nt-font-weight-option[data-nt-font-weight="700"] span{font-weight:700}
.nt-font-weight-option[data-nt-font-weight="900"] span{font-weight:900}
.nt-font-weight-popover .nt-compact-toolbar-note{
  white-space:normal;
  line-height:1.25;
  max-width:100%;
}
@media(max-width:720px){.nt-font-weight-popover{width:154px}}

/* v1.4.5.262.171 — mode de fusion dans Image > Réglages */
.nt-image-blend-row .select{
  min-width:0;
  width:100%;
  max-width:210px;
}
.nt-image-blend-row .nt-image-blend-spacer{
  width:58px;
}
.nt-image-blend-help{
  margin-top:-2px;
}


/* v1.4.5.262.178 — les règles display du créateur ne doivent jamais neutraliser l’attribut hidden. */
.nt-vector-modal[hidden],
.nt-vector-locked[hidden],
.nt-vector-editor[hidden],
.nt-vector-admin-save[hidden],
.nt-vector-pattern-panel[hidden],
.nt-vector-trace-panel[hidden]{display:none !important;}

/* =========================================================
   v1.4.5.262.178 — Créateur vectoriel premium
   ========================================================= */
.nt-vector-creator-btn{white-space:nowrap}
.nt-vector-creator-btn.is-unlocked{border-color:rgba(212,175,55,.55);background:rgba(212,175,55,.13);color:#f3da84}
.nt-vector-creator-btn.is-locked{opacity:.82}
body.nt-vector-modal-open{overflow:hidden}
.nt-vector-modal[hidden]{display:none!important}
.nt-vector-modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:14px;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}
.nt-vector-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(5px)}
.nt-vector-modal__dialog{position:relative;width:min(1680px,calc(100vw - 28px));height:min(980px,calc(100vh - 28px));overflow:hidden;border-radius:20px;border:1px solid rgba(212,175,55,.36);background:#0d0d10;color:#f8f5eb;box-shadow:0 28px 90px rgba(0,0,0,.55);display:flex;flex-direction:column}
.nt-vector-modal__head{min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#151518,#101013)}
.nt-vector-modal__title{display:flex;align-items:center;gap:10px;min-width:0}
.nt-vector-modal__title h2{margin:0;font-size:18px;color:#fff}.nt-vector-modal__title p{margin:2px 0 0;color:#aaa69e;font-size:11px}
.nt-vector-modal__mark{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-weight:950;color:#111;background:linear-gradient(135deg,#f6df8c,#c99f26);box-shadow:0 0 0 1px rgba(255,255,255,.12) inset}
.nt-vector-modal__head-actions{display:flex;align-items:center;gap:9px}
.nt-vector-premium-badge{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;border:1px solid rgba(212,175,55,.35);background:rgba(212,175,55,.1);color:#ead78d;font-size:10px;font-weight:850;white-space:nowrap}
.nt-vector-icon-btn,.nt-vector-action,.nt-vector-tool,.nt-vector-align-actions button,.nt-vector-sidebar__head button{border:1px solid rgba(255,255,255,.12);background:#1a1a1f;color:#f7f4ea;border-radius:8px;min-width:32px;height:30px;display:inline-grid;place-items:center;cursor:pointer;font:inherit;font-weight:850}
.nt-vector-icon-btn{width:34px;height:34px;font-size:22px}.nt-vector-icon-btn:hover,.nt-vector-action:hover,.nt-vector-tool:hover,.nt-vector-align-actions button:hover,.nt-vector-sidebar__head button:hover{border-color:rgba(212,175,55,.55);background:#25231d}
.nt-vector-action:disabled{opacity:.35;cursor:not-allowed}
.nt-vector-editor{min-height:0;display:flex;flex:1;flex-direction:column}
.nt-vector-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.07);background:#111115}
.nt-vector-toolbar-group{display:flex;align-items:center;gap:4px;padding-right:8px;border-right:1px solid rgba(255,255,255,.08)}
.nt-vector-toolbar-group:last-child{border-right:0}.nt-vector-toolbar-group>span{font-size:9px;color:#88847d;text-transform:uppercase;letter-spacing:.08em;margin-right:2px}
.nt-vector-tool.is-active{border-color:#d4af37;background:#d4af37;color:#111;box-shadow:0 0 0 1px rgba(255,255,255,.15) inset}
.nt-vector-appearance,.nt-vector-subtools{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:6px 10px;border-bottom:1px solid rgba(255,255,255,.07);background:#0f0f12}
.nt-vector-appearance label,.nt-vector-subtools label{display:flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#17171b;color:#a9a59d;font-size:9px;font-weight:750;white-space:nowrap}
.nt-vector-appearance input[type=color]{width:26px;height:24px;padding:0;border:0;background:transparent}.nt-vector-appearance input[type=range],.nt-vector-subtools input[type=range]{width:88px;accent-color:#d4af37}
.nt-vector-appearance select,.nt-vector-subtools input[type=number]{height:25px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#0c0c0f;color:#f5f1e7;padding:0 6px;font-size:10px}
.nt-vector-appearance b,.nt-vector-subtools b{color:#e9d78e;min-width:34px;text-align:right;font-size:9px}.nt-vector-check input{accent-color:#d4af37}
.nt-vector-gradient-field input{width:23px!important;height:22px!important}
.nt-vector-subtools{padding-top:5px;padding-bottom:5px;background:#0d0d10}.nt-vector-subtools>label input[type=number]{width:54px}
.nt-vector-align-actions{display:flex;align-items:center;gap:3px;padding:3px 5px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#17171b}.nt-vector-align-actions>span{font-size:9px;color:#99958d;margin-right:2px}.nt-vector-align-actions button{min-width:27px;width:27px;height:25px;border-radius:6px}
.nt-vector-workspace{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) 220px;background:#09090b}
.nt-vector-canvas-wrap{min-width:0;min-height:0;display:flex;flex-direction:column;padding:10px;overflow:hidden}
#ntVectorCanvas{display:block;width:100%;height:100%;min-height:360px;border-radius:12px;border:1px solid rgba(255,255,255,.13);background:#ececec;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);touch-action:none;user-select:none}
#ntVectorCanvas.is-drawing-tool{cursor:crosshair}.nt-vector-artboard{fill:#fff}.nt-vector-object{cursor:move}.nt-vector-object *{pointer-events:visiblePainted}.nt-vector-canvas-help{padding:5px 3px 0;color:#7f7c76;font-size:9px}
.nt-vector-sidebar{min-height:0;border-left:1px solid rgba(255,255,255,.08);background:#101014;display:flex;flex-direction:column;padding:9px;gap:8px;overflow:hidden}.nt-vector-sidebar__head{display:flex;align-items:center;justify-content:space-between;color:#f2eee4;font-size:11px}.nt-vector-sidebar__head>div{display:flex;gap:4px}.nt-vector-sidebar__head button{width:27px;height:25px;min-width:27px}
.nt-vector-layers{min-height:0;flex:1;overflow:auto;display:flex;flex-direction:column;gap:4px}.nt-vector-layer{border:1px solid rgba(255,255,255,.08);background:#18181c;color:#d7d3ca;border-radius:8px;padding:7px 8px;display:flex;align-items:center;gap:7px;text-align:left;cursor:pointer;font-size:10px}.nt-vector-layer:hover{background:#202024}.nt-vector-layer.is-selected{border-color:rgba(212,175,55,.6);background:rgba(212,175,55,.11);color:#f5e7b0}.nt-vector-layer__icon{color:#d4af37}.nt-vector-layers-empty{padding:12px;color:#77736d;font-size:10px;text-align:center}
.nt-vector-admin-save{display:grid;gap:6px;padding:9px;border:1px solid rgba(212,175,55,.22);border-radius:10px;background:rgba(212,175,55,.055)}.nt-vector-admin-save>strong{font-size:10px;color:#e8d17d}.nt-vector-admin-save label{display:grid;gap:3px;font-size:9px;color:#99958d}.nt-vector-admin-save input{width:100%;height:28px;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:#0b0b0d;color:#f4f0e7;padding:0 7px;font-size:10px}
.nt-vector-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-top:1px solid rgba(255,255,255,.08);background:#111115}.nt-vector-status{min-width:0;color:#a8a49d;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nt-vector-status[data-kind=ok]{color:#9ed7aa}.nt-vector-status[data-kind=warn]{color:#efbe86}.nt-vector-footer__actions{display:flex;gap:7px}
.nt-vector-locked{flex:1;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 40%,rgba(212,175,55,.08),transparent 45%),#0d0d10}.nt-vector-locked__card{width:min(560px,94%);padding:34px;border-radius:20px;text-align:center;border:1px solid rgba(212,175,55,.3);background:#141418;box-shadow:0 25px 70px rgba(0,0,0,.3)}.nt-vector-lock-icon{font-size:34px}.nt-vector-locked__card h3{margin:10px 0 7px;font-size:20px;color:#fff}.nt-vector-locked__card p{margin:7px auto;color:#b7b2a7;font-size:12px;line-height:1.55;max-width:460px}.nt-vector-locked__card .nt-vector-locked__note{color:#e1ce84}.nt-vector-locked__card .btn{margin-top:12px}
.nt-vector-pen-preview{pointer-events:none}
.nt-vector-resize-handle{vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}
.nt-vector-resize-handle:hover{fill:#fff2b4;stroke:#d4af37}
@media(max-width:980px){.nt-vector-modal{padding:5px}.nt-vector-modal__dialog{width:calc(100vw - 10px);height:calc(100vh - 10px);border-radius:14px}.nt-vector-workspace{grid-template-columns:1fr}.nt-vector-sidebar{display:none}.nt-vector-premium-badge{display:none}.nt-vector-toolbar-group>span{display:none}.nt-vector-appearance label>span:first-child{display:none}.nt-vector-subtools{overflow-x:auto;flex-wrap:nowrap}.nt-vector-modal__title p{display:none}}

/* =========================================================
   v1.4.5.262.180 — Pathfinder + édition détaillée des nœuds
   ========================================================= */
.nt-vector-action.is-active{
  border-color:#d4af37!important;
  background:rgba(212,175,55,.22)!important;
  color:#f8e8a3!important;
  box-shadow:0 0 0 1px rgba(212,175,55,.18) inset;
}
.nt-vector-node-anchor{
  fill:#111;
  stroke:#f1d675;
  stroke-width:3;
  vector-effect:non-scaling-stroke;
  cursor:move;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.65));
}
.nt-vector-node-anchor:hover,.nt-vector-node-anchor.is-selected{fill:#f6df8c;stroke:#111}
.nt-vector-bezier-line{stroke:#bba34e;stroke-width:1.5;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}
.nt-vector-bezier-handle{
  fill:#fff4bd;
  stroke:#5b4a14;
  stroke-width:2;
  vector-effect:non-scaling-stroke;
  cursor:crosshair;
}
.nt-vector-bezier-handle:hover{fill:#fff;stroke:#d4af37}
.nt-vector-pathfinder-group .nt-vector-action{font-family:Georgia,serif;font-size:16px}
.nt-vector-path-group .nt-vector-action{font-size:14px}


/* =========================================================
   v1.4.5.262.181 — Motifs + amélioration intelligente du tracé
   ========================================================= */
.nt-vector-pattern-panel,.nt-vector-trace-panel{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  padding:6px 10px;border-bottom:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,#15140f,#101014);
}
.nt-vector-mini-panel__title{display:flex;align-items:baseline;gap:7px;margin-right:3px;white-space:nowrap}
.nt-vector-mini-panel__title strong{font-size:10px;color:#f2df96}
.nt-vector-mini-panel__title span{font-size:9px;color:#8f8b82}
.nt-vector-pattern-panel label,.nt-vector-trace-panel label{
  display:flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid rgba(255,255,255,.09);
  border-radius:8px;background:#18181c;color:#a9a59d;font-size:9px;font-weight:750;white-space:nowrap
}
.nt-vector-pattern-panel select,.nt-vector-pattern-panel input[type=number]{
  height:25px;border:1px solid rgba(255,255,255,.13);border-radius:6px;background:#0c0c0f;color:#f5f1e7;padding:0 6px;font-size:10px
}
.nt-vector-pattern-panel input[type=number]{width:58px}
.nt-vector-trace-levels,.nt-vector-trace-compare{display:flex;align-items:center;gap:3px}
.nt-vector-trace-levels button,.nt-vector-trace-compare button{
  height:27px;padding:0 9px;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:#1a1a1f;color:#ddd8ce;
  cursor:pointer;font-size:9px;font-weight:800
}
.nt-vector-trace-levels button:hover,.nt-vector-trace-compare button:hover{border-color:rgba(212,175,55,.55);background:#25231d}
.nt-vector-trace-levels button.is-active,.nt-vector-trace-compare button.is-active{
  border-color:#d4af37;background:rgba(212,175,55,.22);color:#f7e7a1
}
.nt-vector-pattern-item{pointer-events:none}
.nt-vector-pattern-source{pointer-events:none}
@media(max-width:980px){
  .nt-vector-pattern-panel,.nt-vector-trace-panel{overflow-x:auto;flex-wrap:nowrap}
  .nt-vector-mini-panel__title span{display:none}
}


/* =========================================================
   v1.4.5.262.212 — Sélecteur structurel DEVANT / DOS
   ========================================================= */
.nt-face-switcher{display:inline-flex;align-items:center;gap:4px;padding:3px;border:1px solid rgba(212,175,55,.28);border-radius:12px;background:rgba(212,175,55,.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.nt-face-btn{min-width:82px;display:inline-flex!important;align-items:center;justify-content:center;gap:7px;font-weight:850!important;border-color:transparent!important;background:transparent!important}
.nt-face-btn.is-active{background:linear-gradient(135deg,#f7df9d,#b98324)!important;color:#171008!important;border-color:rgba(247,223,157,.75)!important;box-shadow:0 4px 14px rgba(185,131,36,.22)}
.nt-face-count{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:rgba(255,255,255,.11);font-size:10px;font-weight:950;line-height:1}
.nt-face-btn.is-active .nt-face-count{background:rgba(20,14,6,.16)}
.nt-face-btn:disabled{opacity:.58;cursor:wait}
@media (max-width:1180px){.nt-face-btn{min-width:68px;padding-left:8px!important;padding-right:8px!important}.nt-face-count{display:none}}

/* =========================================================
   v1.4.5.262.216 — Bibliothèque Modèles séparée
   ========================================================= */
#panel-models .nt-models-main-section .nt-template-library-grid{
  margin-top:14px;
}
#panel-models .nt-models-main-section > .btn.primary{
  width:100%;
  margin-top:8px;
}

/* =========================================================
   v1.4.5.262.219 — POLICES TOOLBAR : APERÇU AU SURVOL
   ---------------------------------------------------------
   Le select natif reste présent pour la compatibilité JS, mais
   l'utilisateur manipule un popover HTML survolable.
   ========================================================= */
#ctxFontSelect.nt-toolbar-font-native-select{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  min-width:1px !important;
  padding:0 !important;
  margin:0 !important;
  opacity:0 !important;
  pointer-events:none !important;
  clip-path:inset(50%) !important;
  overflow:hidden !important;
}
.nt-toolbar-font-picker-btn{
  width:148px !important;
  min-width:148px !important;
  max-width:148px !important;
  height:36px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:8px !important;
  padding:0 9px !important;
  overflow:hidden !important;
}
.nt-toolbar-font-picker-btn .nt-toolbar-font-picker-label{
  display:block;
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:left;
  font-size:13px;
}
.nt-toolbar-font-picker-btn .nt-toolbar-font-picker-chevron{
  flex:0 0 auto;
  opacity:.72;
  font-size:11px;
}
.nt-toolbar-font-picker-btn.is-disabled{opacity:.48;cursor:not-allowed;}
.nt-toolbar-font-picker-popover{
  position:fixed !important;
  z-index:1000500 !important;
  display:flex;
  flex-direction:column;
  gap:3px;
  overflow:auto;
  padding:7px;
  border:1px solid rgba(212,175,55,.34);
  border-radius:13px;
  background:#0b0b0f;
  box-shadow:0 22px 60px rgba(0,0,0,.58);
  overscroll-behavior:contain;
}
.nt-toolbar-font-picker-popover[hidden]{display:none !important;}
.nt-toolbar-font-option{
  appearance:none;
  width:100%;
  border:1px solid transparent;
  border-radius:9px;
  background:rgba(255,255,255,.035);
  color:#f5f1e7;
  padding:8px 10px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  cursor:pointer;
  text-align:left;
}
.nt-toolbar-font-option:hover,
.nt-toolbar-font-option:focus-visible{
  border-color:rgba(212,175,55,.52);
  background:rgba(212,175,55,.12);
  outline:none;
}
.nt-toolbar-font-option.is-active{
  border-color:rgba(212,175,55,.65);
  background:rgba(212,175,55,.17);
}
.nt-toolbar-font-option-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:16px;
  line-height:1.18;
}
.nt-toolbar-font-option-meta{
  max-width:112px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:600 10px/1.2 Inter,Arial,sans-serif;
  color:#a9a39a;
}
@media (max-width:900px){
  .nt-toolbar-font-picker-btn{width:126px !important;min-width:126px !important;max-width:126px !important;}
  .nt-toolbar-font-option-meta{display:none;}
}

/* =========================================================
   v1.4.5.262.220 — FAVORIS DANS LE MENU POLICES TOOLBAR
   ========================================================= */
.nt-toolbar-font-picker-popover{
  overflow:hidden !important;
  padding:0 !important;
  gap:0 !important;
}
.nt-toolbar-font-picker-header{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 10px;
  border-bottom:1px solid rgba(212,175,55,.18);
  background:rgba(255,255,255,.025);
}
.nt-toolbar-font-picker-header-title{
  font:800 11px/1 Inter,Arial,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#d8d1c3;
}
.nt-toolbar-font-favorites-filter{
  appearance:none;
  border:1px solid rgba(212,175,55,.30);
  border-radius:999px;
  background:rgba(255,255,255,.04);
  color:#e8dfce;
  min-height:28px;
  padding:0 10px;
  cursor:pointer;
  font:750 11px/1 Inter,Arial,sans-serif;
  white-space:nowrap;
}
.nt-toolbar-font-favorites-filter:hover,
.nt-toolbar-font-favorites-filter.is-active{
  border-color:rgba(212,175,55,.70);
  background:rgba(212,175,55,.15);
  color:#f5d97a;
}
.nt-toolbar-font-picker-list{
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  padding:7px;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.nt-toolbar-font-option{
  grid-template-columns:minmax(0,1fr) auto 30px !important;
  padding:7px 7px 7px 10px !important;
}
.nt-toolbar-font-option.is-favorite{
  border-color:rgba(212,175,55,.24);
}
.nt-toolbar-font-favorite-btn{
  appearance:none;
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(212,175,55,.20);
  border-radius:8px;
  background:rgba(255,255,255,.035);
  color:#9f998f;
  cursor:pointer;
  font:700 17px/1 Arial,sans-serif;
  padding:0;
}
.nt-toolbar-font-favorite-btn:hover,
.nt-toolbar-font-favorite-btn.is-favorite{
  border-color:rgba(212,175,55,.65);
  background:rgba(212,175,55,.13);
  color:#f4d56c;
}
.nt-toolbar-font-picker-empty{
  min-height:110px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:20px 14px;
  text-align:center;
  color:#aaa39a;
  font:600 11px/1.35 Inter,Arial,sans-serif;
}
.nt-toolbar-font-picker-empty strong{
  color:#eee7d9;
  font-size:13px;
}
@media (max-width:900px){
  .nt-toolbar-font-option{grid-template-columns:minmax(0,1fr) 30px !important;}
  .nt-toolbar-font-option-meta{display:none !important;}
}

/* =========================================================
   v1.4.5.262.223 — Fiche admin Modèle / catégorie + jour + 1..15
   ========================================================= */
.nt-admin-model-open-btn{width:100%;min-height:46px;font-weight:900}
.nt-admin-legacy-export{border:1px solid rgba(212,175,55,.14);border-radius:16px;background:rgba(255,255,255,.025);overflow:hidden}
.nt-admin-legacy-export>summary{cursor:pointer;padding:12px 14px;color:#d9cfb5;font-size:12px;font-weight:800;list-style:none}
.nt-admin-legacy-export>summary::-webkit-details-marker{display:none}
.nt-admin-legacy-export__body{padding:0 12px 12px}
.nt-template-modal-open{overflow:hidden}
.nt-template-library-modal{position:fixed;inset:0;z-index:1000005;display:flex;align-items:center;justify-content:center;padding:18px}
.nt-template-library-modal[hidden]{display:none!important}
.nt-template-library-backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.78);backdrop-filter:blur(7px);cursor:default}
.nt-template-library-card{position:relative;z-index:1;width:min(1120px,97vw);max-height:min(920px,94vh);display:flex;flex-direction:column;border:1px solid rgba(212,175,55,.34);border-radius:24px;background:linear-gradient(155deg,#191919,#090909);box-shadow:0 28px 90px rgba(0,0,0,.64);color:#f8f0dc;overflow:hidden}
.nt-template-library-head{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid rgba(212,175,55,.16);background:radial-gradient(circle at top right,rgba(212,175,55,.12),transparent 48%)}
.nt-template-library-head h2{margin:0;color:#f6df9b;font-size:21px;line-height:1.15}
.nt-template-library-head p{margin:5px 0 0;color:#aaa292;font-size:12px;line-height:1.35}
.nt-template-library-body{min-height:0;overflow:auto;display:grid;grid-template-columns:minmax(300px,.78fr) minmax(500px,1.22fr);gap:20px;padding:20px;align-items:start}
.nt-template-library-preview-wrap{display:flex;flex-direction:column;gap:10px;position:sticky;top:0;align-self:start;min-width:0}
.nt-template-library-preview-box{display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;min-height:320px;padding:14px;border:1px solid rgba(212,175,55,.18);border-radius:20px;background:linear-gradient(135deg,#242424,#111);overflow:hidden}
.nt-template-library-preview-box img{display:block;max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 14px 26px rgba(0,0,0,.34))}
.nt-template-library-preview-wrap strong{color:#f3da84;font-size:13px}
.nt-template-library-preview-wrap small{color:#999287;line-height:1.45}
.nt-template-library-form{display:flex;flex-direction:column;gap:14px;min-width:0;padding-top:1px}
.nt-template-form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:end}
.nt-template-form-row--category{grid-template-columns:minmax(0,1.2fr) minmax(190px,.8fr)}
.nt-template-field{width:100%;height:auto!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;display:grid!important;grid-template-rows:auto auto;gap:6px!important;align-content:start;box-sizing:border-box}
.nt-template-field>span{position:static!important;display:block!important;margin:0!important;padding:0!important;height:auto!important;min-height:0!important;font-size:11px!important;font-weight:900!important;color:#e3d7b8!important;text-transform:uppercase;letter-spacing:.05em;line-height:1.2!important;transform:none!important}
.nt-template-library-form .nt-template-field input[type="text"],.nt-template-library-form .nt-template-field select,.nt-template-library-form .nt-template-field textarea{box-sizing:border-box;width:100%;height:auto!important;min-height:42px!important;margin:0!important;border:1px solid rgba(212,175,55,.22)!important;border-radius:12px!important;background:#0b0b0b!important;color:#fff!important;padding:9px 11px!important;font:inherit!important;font-size:12px!important;line-height:1.3!important;outline:none!important}
.nt-template-library-form .nt-template-field textarea{min-height:76px!important;resize:vertical}
.nt-template-library-form .nt-template-field input:focus,.nt-template-library-form .nt-template-field select:focus,.nt-template-library-form .nt-template-field textarea:focus{border-color:rgba(212,175,55,.68)!important;box-shadow:0 0 0 2px rgba(212,175,55,.10)!important}
.nt-template-new-category-field{align-content:end}
.nt-template-new-category-field .btn{min-height:42px!important;width:100%;white-space:nowrap}
.nt-template-new-category-editor{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;align-items:end;padding:12px;border:1px solid rgba(212,175,55,.19);border-radius:15px;background:rgba(212,175,55,.055)}
.nt-template-new-category-editor[hidden]{display:none!important}
.nt-template-new-category-actions{display:flex;gap:8px;align-items:center;padding-bottom:0}
.nt-template-new-category-actions .btn{min-height:42px!important;white-space:nowrap}
.nt-template-meta-import{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:12px;border:1px solid rgba(212,175,55,.17);border-radius:15px;background:rgba(212,175,55,.05)}
.nt-template-meta-import>div{display:grid;gap:3px;min-width:0}
.nt-template-meta-import strong{color:#f0d886;font-size:12px}
.nt-template-meta-import small{color:#aaa292;line-height:1.35}
.nt-template-meta-import>span{grid-column:1/-1;color:#888177;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nt-template-auto-json{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:12px;border:1px solid rgba(34,197,94,.28);border-radius:15px;background:rgba(34,197,94,.075)}
.nt-template-auto-json__check{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:rgba(34,197,94,.16);color:#bbf7d0;font-weight:950;font-size:16px}
.nt-template-auto-json strong{display:block;color:#c9f7d6;font-size:12px;margin-bottom:3px}.nt-template-auto-json small{display:block;color:#9fb4a4;line-height:1.4}
.nt-template-meta-details{border:1px solid rgba(212,175,55,.14);border-radius:15px;background:rgba(255,255,255,.022);overflow:hidden}.nt-template-meta-details>summary{cursor:pointer;padding:11px 12px;color:#d7ceb8;font-size:11px;font-weight:850;list-style:none}.nt-template-meta-details>summary::-webkit-details-marker{display:none}.nt-template-meta-details[open]>summary{border-bottom:1px solid rgba(212,175,55,.12)}.nt-template-meta-details .nt-template-meta-import{border:0;border-radius:0;background:rgba(212,175,55,.035)}
.nt-template-save-progress{display:grid;gap:7px;padding:10px 11px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.025)}
.nt-template-save-progress__head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#aaa397;font-size:11px}.nt-template-save-progress__head strong{color:#e6d49c;font-variant-numeric:tabular-nums}
.nt-template-save-progress__track{height:8px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.08);box-shadow:inset 0 1px 2px rgba(0,0,0,.32)}.nt-template-save-progress__track>span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b88a20,#f4dc78);transition:width .18s ease}
.nt-template-save-progress[data-state="ok"]{border-color:rgba(34,197,94,.25);background:rgba(34,197,94,.055)}.nt-template-save-progress[data-state="error"]{border-color:rgba(239,68,68,.25);background:rgba(239,68,68,.055)}
.nt-template-active-row{display:flex;align-items:center;gap:9px;color:#ddd4c4;font-size:12px;cursor:pointer}
.nt-template-active-row input{accent-color:#d4af37}
.nt-template-library-status{min-height:38px;display:flex;align-items:center;padding:9px 11px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.035);color:#aba499;font-size:12px}
.nt-template-library-status[data-state="ok"]{border-color:rgba(34,197,94,.28);background:rgba(34,197,94,.09);color:#bbf7d0}
.nt-template-library-status[data-state="error"]{border-color:rgba(239,68,68,.30);background:rgba(239,68,68,.10);color:#fecaca}
.nt-template-library-status[data-state="busy"]{border-color:rgba(212,175,55,.30);background:rgba(212,175,55,.08);color:#f6df9b}
.nt-template-library-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:10px}
.nt-template-library-actions .btn{min-height:44px!important}
body.nt-template-modal-open{overflow:hidden}
@media(max-width:900px){.nt-template-library-body{grid-template-columns:1fr}.nt-template-library-preview-wrap{position:static}.nt-template-library-preview-box{min-height:220px;max-height:340px}.nt-template-library-modal{padding:10px}.nt-template-library-card{max-height:96vh}}
@media(max-width:620px){.nt-template-form-row,.nt-template-form-row--category,.nt-template-library-actions,.nt-template-new-category-editor{grid-template-columns:1fr}.nt-template-meta-import{grid-template-columns:1fr}.nt-template-meta-import .btn,.nt-template-new-category-actions .btn{width:100%}.nt-template-new-category-actions{display:grid;grid-template-columns:1fr 1fr}}
.nt-template-schedule{display:inline-flex;align-items:center;width:max-content;margin-top:2px;padding:3px 7px;border:1px solid rgba(212,175,55,.22);border-radius:999px;background:rgba(212,175,55,.08);color:#e6cc78;font-size:10px;font-weight:850;letter-spacing:.03em}

/* v1.4.5.262.232 — réutilisation des styles de texte des Designs éditables */
.nt-model-text-style-popover{min-width:250px;max-width:min(360px,calc(100vw - 20px));padding:10px;display:grid;gap:8px}
.nt-model-text-style-list{display:grid;gap:6px;max-height:300px;overflow:auto;padding-right:2px}
.nt-model-text-style-item{width:100%;display:grid!important;grid-template-columns:minmax(0,1fr);gap:2px;text-align:left!important;justify-items:start!important;padding:9px 10px!important}
.nt-model-text-style-item__label{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:800}
.nt-model-text-style-item__meta{display:block;color:#a9a094;font-size:10px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.nt-model-text-style-item:hover{border-color:rgba(212,175,55,.58)!important;background:rgba(212,175,55,.09)!important}

/* =========================================================
   v1.4.5.262.234 — Palette effets : cibles visibles sur plusieurs lignes
   ---------------------------------------------------------
   Le panneau droit est trop étroit pour afficher 15 cibles sur une seule
   ligne. On place le titre et les actions en haut, puis toutes les cibles
   sur une zone pleine largeur qui revient naturellement à la ligne.
   ========================================================= */
.nt-properties-column .nt-compact-palette__head{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  grid-template-areas:
    "title actions"
    "targets targets" !important;
  align-items:center !important;
  column-gap:6px !important;
  row-gap:5px !important;
  width:100% !important;
  min-width:0 !important;
}
.nt-properties-column .nt-compact-palette__head>strong{
  grid-area:title !important;
  min-width:0 !important;
}
.nt-properties-column .nt-compact-palette__actions{
  grid-area:actions !important;
  justify-self:end !important;
  margin-left:0 !important;
}
.nt-properties-column .nt-compact-palette__targets{
  grid-area:targets !important;
  width:100% !important;
  min-width:0 !important;
  display:flex !important;
  flex:0 0 auto !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  align-content:flex-start !important;
  gap:3px !important;
  overflow:visible !important;
  scrollbar-width:auto !important;
}
.nt-properties-column .nt-compact-palette__target{
  flex:0 0 auto !important;
  min-width:0 !important;
  width:auto !important;
  max-width:100% !important;
  height:24px !important;
  padding:0 6px !important;
  font-size:9.5px !important;
  white-space:nowrap !important;
}

/* =========================================================
   v1.4.5.262.235 — Palette contextuelle + masque texte
   ---------------------------------------------------------
   Les familles d'effets deviennent l'entrée principale des réglages texte.
   Les réglages essentiels restent visibles; le détail technique est replié.
   ========================================================= */
.nt-compact-style-editor{
  display:grid;
  gap:6px;
  padding:7px 8px;
  border:1px solid rgba(212,175,55,.14);
  border-radius:10px;
  background:rgba(255,255,255,.025);
  min-width:0;
}
.nt-compact-style-editor.is-disabled{opacity:.48;pointer-events:none}
.nt-compact-style-editor__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
}
.nt-compact-style-editor__head>strong{
  font-size:10.5px;
  color:#e7dba9;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.nt-compact-style-editor__toggle{
  min-height:22px;
  padding:2px 7px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(255,255,255,.045);
  color:#bdb6a8;
  font:800 9px/1 inherit;
  cursor:pointer;
}
.nt-compact-style-editor__toggle.is-active{
  color:#111;
  border-color:rgba(212,175,55,.72);
  background:#d4af37;
}
.nt-compact-style-editor__row{
  display:grid;
  grid-template-columns:minmax(54px,auto) 38px;
  align-items:center;
  gap:7px;
  min-width:0;
}
.nt-compact-style-editor__row>label{
  min-width:0;
  font-size:9.5px;
  font-weight:750;
  color:#aaa294;
}
.nt-compact-style-editor__row input[type="color"]{
  width:38px;
  height:24px;
  padding:2px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:7px;
  background:#171717;
  cursor:pointer;
}
.nt-compact-style-editor__slider{
  grid-template-columns:minmax(54px,auto) minmax(0,1fr) 28px;
}
.nt-compact-style-editor__slider input[type="range"]{min-width:0;width:100%;margin:0}
.nt-compact-style-editor__slider output{
  text-align:right;
  color:#d9c873;
  font-size:9px;
  font-variant-numeric:tabular-nums;
}
.nt-compact-style-editor__advanced{
  border-top:1px solid rgba(255,255,255,.07);
  padding-top:4px;
}
.nt-compact-style-editor__advanced>summary{
  cursor:pointer;
  list-style:none;
  color:#aaa294;
  font-size:9.5px;
  font-weight:800;
  user-select:none;
}
.nt-compact-style-editor__advanced>summary::-webkit-details-marker{display:none}
.nt-compact-style-editor__advanced>summary::after{content:' ▾';color:#d4af37}
.nt-compact-style-editor__advanced[open]>summary::after{content:' ▴'}
.nt-compact-style-editor__advanced-body{display:grid;gap:7px;padding-top:7px;min-width:0}
.nt-compact-style-editor__check{display:flex;align-items:center;gap:7px;color:#bbb3a5;font-size:9.5px;cursor:pointer}
.nt-compact-style-editor__check input{accent-color:#d4af37}
.nt-compact-gradient-editor{display:grid;gap:7px}
.nt-compact-gradient-editor__colors{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.nt-compact-gradient-editor__colors label{
  display:flex;align-items:center;justify-content:space-between;gap:5px;
  padding:5px 6px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.025);
  color:#aaa294;font-size:9px;font-weight:750;
}
.nt-compact-gradient-editor__colors input[type="color"]{width:29px;height:22px;padding:1px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#151515}
.nt-compact-gradient-editor__actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.nt-compact-gradient-editor__actions .btn{min-height:27px!important;padding:4px 6px!important;font-size:9px!important}

/* L'ancien moteur reste présent pour ses événements, mais sa grille d'effets
   n'est plus dupliquée visuellement dans le panneau droit. */
#ntTextStylePanel .nt-text-basic-focus-tabs [data-nt-text-style]:not([data-nt-text-style="simple"]){display:none!important}
#ntTextStylePanel .nt-text-style-controls--engine-only{display:none!important}
#ntCompactStyleAdvancedBody #ntTextThreeDControls,
#ntCompactStyleAdvancedBody #ntTextThreeDControls[hidden]{display:grid!important}
#ntCompactStyleAdvancedBody #ntTextThreeDControls{
  margin:0!important;
  padding:7px!important;
  border-radius:9px!important;
  max-width:100%!important;
  min-width:0!important;
}

/* Édition temporaire du rectangle de masque. Le rectangle lui-même est un
   objet Fabric technique exclu de l'export; cette barre ne surcharge donc
   jamais le panneau droit. */
.nt-text-mask-editbar{
  position:fixed;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  z-index:1300;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  width:min(610px,calc(100vw - 28px));
  padding:9px 10px 9px 12px;
  border:1px solid rgba(212,175,55,.42);
  border-radius:14px;
  background:rgba(18,18,18,.96);
  box-shadow:0 16px 45px rgba(0,0,0,.48);
  backdrop-filter:blur(12px);
}
.nt-text-mask-editbar[hidden]{display:none!important}
.nt-text-mask-editbar__copy{display:grid;gap:2px;min-width:0}
.nt-text-mask-editbar__copy strong{font-size:11px;color:#eddc98}
.nt-text-mask-editbar__copy span{font-size:9px;color:#a79f91;white-space:normal}
.nt-text-mask-editbar__actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.nt-text-mask-editbar__actions .btn{min-height:29px!important;padding:5px 9px!important;font-size:9.5px!important}
@media(max-width:650px){
  .nt-text-mask-editbar{align-items:stretch;flex-direction:column;bottom:9px;gap:8px}
  .nt-text-mask-editbar__actions{display:grid;grid-template-columns:repeat(3,1fr)}
}

/* =========================================================
   v1.4.5.262.237 — Retouches UX texte
   - effets réellement utilisés visibles dans les raccourcis ;
   - couleur contextuelle rapprochée à gauche ;
   - anciens réglages d'effet définitivement masqués visuellement ;
   - navigation entre plusieurs découpes sur un même texte.
   ========================================================= */
.nt-compact-palette__target{position:relative}
.nt-compact-palette__target.is-used{
  color:#f0d977 !important;
  border-color:rgba(212,175,55,.52) !important;
  background:rgba(212,175,55,.11) !important;
  box-shadow:inset 0 -2px 0 rgba(212,175,55,.46);
}
.nt-compact-palette__target.is-used.is-active{
  color:#fff0a9 !important;
  border-color:rgba(232,199,74,.78) !important;
  background:rgba(212,175,55,.20) !important;
  box-shadow:inset 0 -2px 0 rgba(244,211,91,.82),0 0 0 1px rgba(212,175,55,.08);
}

/* Le sélecteur couleur reste proche de son libellé au lieu d'être collé au
   bord droit du panneau. Cela vaut pour Fond, Contour et tous les effets. */
#ntCompactStyleColorRow{
  grid-template-columns:58px 38px minmax(0,1fr) !important;
  justify-content:start !important;
}
#ntCompactStyleColorRow input[type="color"]{justify-self:start !important;}

/* Le moteur historique reste dans le DOM pour compatibilité mais il n'est
   plus une seconde interface utilisateur. Ces sélecteurs gagnent la bataille
   de spécificité contre les anciennes règles desktop en display:grid!important. */
#ntPropertiesColumn #ntTextStylePanel .nt-text-basic-focus-tabs .nt-palette-replaced-effect,
#ntPropertiesColumn #ntTextStylePanel .nt-text-basic-focus-tabs [data-nt-text-style]:not([data-nt-text-style="simple"]){
  display:none !important;
}
#ntPropertiesColumn #ntTextStylePanel #ntTextStyleControls.nt-text-style-controls--engine-only{
  display:none !important;
}

.nt-text-mask-count-badge{
  display:inline-grid;place-items:center;
  min-width:17px;height:17px;padding:0 4px;margin-left:3px;
  border-radius:999px;background:rgba(212,175,55,.18);color:#f1d979;
  font-size:8.5px;font-weight:850;line-height:1;
}
.nt-text-mask-editbar{width:min(790px,calc(100vw - 28px));gap:10px;}
.nt-text-mask-editbar__navigator{
  display:flex;align-items:center;justify-content:center;gap:5px;
  flex:1 1 auto;min-width:0;
}
.nt-text-mask-nav{
  width:28px;height:28px;padding:0;display:grid;place-items:center;
  border:1px solid rgba(212,175,55,.20);border-radius:8px;
  background:rgba(255,255,255,.04);color:#e3d38c;
  font:900 18px/1 inherit;cursor:pointer;
}
.nt-text-mask-nav:hover:not(:disabled){background:rgba(212,175,55,.12);border-color:rgba(212,175,55,.45)}
.nt-text-mask-nav:disabled{opacity:.28;cursor:default}
.nt-text-mask-count{
  min-width:80px;text-align:center;color:#c9bea7;font-size:9.5px;font-weight:800;
  font-variant-numeric:tabular-nums;
}
.nt-text-mask-add{white-space:nowrap!important;border-color:rgba(212,175,55,.30)!important;color:#e5d27a!important}
.nt-text-mask-add:disabled{opacity:.35}
@media(max-width:820px){
  .nt-text-mask-editbar{align-items:stretch;flex-direction:column;bottom:9px;gap:7px}
  .nt-text-mask-editbar__navigator{justify-content:flex-start;flex-wrap:wrap}
  .nt-text-mask-editbar__actions{display:grid;grid-template-columns:repeat(3,1fr)}
}

/* =========================================================
   v1.4.5.262.240 — Panneau droit compact + accordéons
   ---------------------------------------------------------
   - « Palette » devient un bloc Style contextuel.
   - Style, Outils texte et Outils image sont repliables.
   - Les commandes de navigation utilisent le même langage visuel
     compact que Fond / Contour afin de libérer de la hauteur.
   ========================================================= */
.nt-properties-accordion__head{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.nt-properties-accordion__toggle{
  appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  cursor:pointer;
  min-width:0;
}
.nt-properties-accordion__toggle:focus-visible{
  outline:1px solid rgba(241,215,122,.72);
  outline-offset:2px;
}
.nt-properties-accordion__chevron{
  flex:0 0 auto;
  margin-left:auto;
  color:rgba(241,215,122,.78);
  font-size:10px;
  line-height:1;
  transition:transform .14s ease,color .14s ease;
}
.nt-properties-accordion__toggle:hover .nt-properties-accordion__chevron{color:#f1d77a}
.nt-properties-accordion__body{
  display:grid;
  gap:5px;
  min-width:0;
}
.nt-properties-accordion__body[hidden]{display:none !important;}

/* Style : un vrai en-tête d'accordéon, actions conservées à droite. */
.nt-properties-column .nt-compact-palette__head{
  display:flex !important;
  grid-template-columns:none !important;
  grid-template-areas:none !important;
  align-items:center !important;
  gap:5px !important;
  width:100% !important;
}
.nt-compact-style-accordion__toggle{
  flex:1 1 auto;
  display:flex;
  align-items:center;
  gap:6px;
  min-height:23px;
  padding:0 2px;
  color:#ead06f;
  text-align:left;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.015em;
}
.nt-compact-palette__accordion-body{gap:5px !important;}
.nt-properties-column .nt-compact-palette__targets{
  width:100% !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:3px !important;
  overflow:visible !important;
}

/* Les titres Outils deviennent eux-mêmes les poignées d'accordéon. */
.nt-properties-context > .nt-properties-accordion__toggle.nt-properties-section-title{
  width:100%;
  min-height:25px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:2px 1px 4px !important;
  text-align:left;
}
.nt-properties-section-title__main{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-width:0;
}
.nt-properties-context > .nt-properties-accordion__body{gap:5px;}

/* =========================================================
   Outils TEXTE : même format compact que Fond / Contour.
   Les gros pictogrammes et badges internes disparaissent du niveau 1.
   ========================================================= */
.nt-properties-context[data-nt-properties-context="text"] .nt-properties-tabs-text{
  display:flex !important;
  flex-wrap:wrap !important;
  grid-template-columns:none !important;
  align-items:center !important;
  gap:3px !important;
  padding:0 !important;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-text-tools-tab{
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  min-height:24px !important;
  height:24px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  padding:0 7px !important;
  border-radius:7px !important;
  font-size:9.5px !important;
  line-height:1 !important;
  white-space:nowrap !important;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-text-tools-tab::before,
.nt-properties-context[data-nt-properties-context="text"] .nt-text-tools-tab[data-nt-state]::after{
  display:none !important;
  content:none !important;
}
.nt-properties-context[data-nt-properties-context="text"] .nt-properties-content{
  padding-top:0 !important;
}

/* =========================================================
   Outils IMAGE : niveau principal + sous-navigation en petites pastilles.
   ========================================================= */
.nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs{
  display:flex !important;
  flex-wrap:wrap !important;
  grid-template-columns:none !important;
  align-items:center !important;
  gap:3px !important;
  padding:0 !important;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab{
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  min-height:24px !important;
  height:24px !important;
  padding:0 7px !important;
  display:inline-flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  border-radius:7px !important;
  font-size:9.5px !important;
  line-height:1 !important;
  text-align:center !important;
  white-space:nowrap !important;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab::before{
  display:none !important;
  content:none !important;
}
#ntImagePropertyMount .nt-image-property-group{gap:5px !important;}
#ntImagePropertyMount .nt-image-subpanel-tabs{
  position:sticky;
  top:0;
  z-index:8;
  display:flex !important;
  flex-wrap:wrap !important;
  grid-template-columns:none !important;
  align-items:center !important;
  gap:3px !important;
  padding:1px 0 5px !important;
  background:linear-gradient(180deg,#111216 0%,#111216 78%,rgba(17,18,22,0) 100%) !important;
}
#ntImagePropertyMount .nt-image-subpanel-tab{
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  min-height:24px !important;
  height:24px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  padding:0 7px !important;
  border-radius:7px !important;
  font-size:9.25px !important;
  line-height:1 !important;
  text-align:center !important;
  white-space:nowrap !important;
  transform:none !important;
}
#ntImagePropertyMount .nt-image-subpanel-tab__icon{display:none !important;}
#ntImagePropertyMount .nt-image-subpanel-tab__label{
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:nowrap !important;
}
#ntImagePropertyMount .nt-image-subpanel-tab[data-nt-image-subpanel-open="text-fusion"]{
  grid-column:auto !important;
}
#ntImagePropertyMount .nt-image-subpanel-tab:hover{transform:none !important;}

/* Sur les écrans moins larges, on conserve la compacité : les boutons passent
   simplement à la ligne au lieu de redevenir de grandes tuiles. */
@media (max-width:1180px){
  .nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab{
    min-height:24px !important;
    height:24px !important;
    font-size:9.25px !important;
  }
}
@media (max-width:520px){
  .nt-properties-context[data-nt-properties-context="text"] .nt-text-tools-tab,
  .nt-properties-context[data-nt-properties-context="image"] .nt-image-main-tabs .nt-property-tab,
  #ntImagePropertyMount .nt-image-subpanel-tab{
    min-height:25px !important;
    height:25px !important;
    padding-inline:6px !important;
  }
}

/* =========================================================
   v1.4.5.262.242 — Style texte lisible + Polices/FX séparés
   ---------------------------------------------------------
   Chantier volontairement limité au texte :
   - on garde les accordéons validés en .240 ;
   - les boutons Fond/Contour/Ombre/... reviennent au-dessus,
     sur toute la largeur, avant l'éditeur contextuel ;
   - Polices/Presets et Laboratoire FX deviennent deux outils
     distincts afin d'éviter le panneau Style fourre-tout.
   ========================================================= */
#ntCompactStyleAccordionBody{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  grid-template-columns:none !important;
  grid-auto-flow:initial !important;
  gap:6px !important;
  min-width:0 !important;
}
#ntCompactStyleAccordionBody > .nt-compact-palette__targets{
  order:1 !important;
  width:100% !important;
  max-width:100% !important;
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:3px !important;
  overflow:visible !important;
}
#ntCompactStyleAccordionBody > .nt-compact-style-editor{
  order:2 !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
#ntCompactStyleAccordionBody > .nt-compact-palette__swatches{
  order:3 !important;
  width:100% !important;
  max-width:100% !important;
}
#ntCompactStyleAccordionBody > .nt-compact-palette__hint{
  order:4 !important;
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
}

/* Outils texte : le premier niveau reste compact, mais les rôles sont explicites. */
#ntTextPropertyTabs #ntTextStyleTab,
#ntTextPropertyTabs #ntTextFxTab{
  font-weight:850 !important;
}
#ntTextPropertyTabs #ntTextFxTab.active{
  color:var(--gold-2) !important;
  border-color:rgba(212,175,55,.55) !important;
  background:rgba(212,175,55,.12) !important;
}

/* Polices : plus de titre ambigu « Style & effets ». */
#ntTextStylePanel > .nt-text-panel-card-title{
  margin-bottom:7px !important;
}

/* Laboratoire FX possède maintenant son propre sous-panneau.
   Son ancien bouton accordéon interne devient inutile : ouvrir FX
   affiche directement le laboratoire. */
#ntTextFxPanel .nt-text-lab-panel{
  margin:0 !important;
  padding:0 !important;
  border-bottom:0 !important;
}
#ntTextFxPanel #ntTextLabToggle{
  display:none !important;
}
#ntTextFxPanel #ntTextLabBody,
#ntTextFxPanel #ntTextLabBody[hidden]{
  display:block !important;
  margin-top:0 !important;
}

/* =========================================================
   v1.4.5.262.242 — Accordéon Style corrigé + Polices nettoyé
   ---------------------------------------------------------
   - le body de Style respecte enfin l'attribut hidden malgré
     le display:flex forcé de la mise en page .241 ;
   - dans « Polices & presets », l'ancien niveau Police/Aa Police
     reste dans le DOM pour compatibilité moteur mais n'est plus
     exposé : Basique/Premium deviennent l'entrée directe.
   ========================================================= */
#ntCompactStyleAccordionBody[hidden]{
  display:none !important;
}
#ntTextStylePanel > .nt-text-panel-title,
#ntTextStylePanel > .nt-text-basic-focus-tabs{
  display:none !important;
}
#ntTextStylePanel > .nt-style-library-modes{
  margin-top:2px !important;
}


/* =========================================================
   v1.4.5.262.243 — Laboratoire FX compact
   Personnalisation en commandes courtes + presets bas et lisibles.
   ========================================================= */
.nt-text-fx-tool-panel .nt-text-lab-head{
  align-items:center;
  margin-bottom:8px;
}
.nt-text-fx-tool-panel .nt-text-lab-head .nt-text-lab-note{
  margin-top:2px;
  font-size:10px;
  line-height:1.25;
  color:rgba(225,229,237,.72);
}
.nt-text-fx-tool-panel .nt-text-lab-category-select{
  margin-bottom:8px;
  padding:7px 8px;
  min-height:38px;
}
.nt-text-fx-tool-panel .nt-text-lab-category-select select{
  height:30px;
}
.nt-text-fx-tool-panel .nt-text-lab-customize{
  margin:0 0 8px;
  padding:8px;
  border-radius:10px;
}
.nt-text-fx-tool-panel .nt-text-lab-customize-head{
  margin-bottom:7px;
  padding-bottom:6px;
}
.nt-text-fx-tool-panel .nt-text-lab-customize-head .nt-text-panel-card-title--small{
  margin:0;
}
.nt-text-fx-tool-panel .nt-text-lab-color-toolbar{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) 32px;
  gap:5px;
  align-items:stretch;
}
.nt-text-fx-tool-panel .nt-text-lab-color-control--compact{
  min-width:0;
  min-height:38px;
  padding:5px 6px;
  gap:5px;
  border-radius:8px;
  justify-content:space-between;
}
.nt-text-fx-tool-panel .nt-text-lab-color-control--compact strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:9px;
  line-height:1;
  color:#f4f6fb;
}
.nt-text-fx-tool-panel .nt-text-lab-color-control--compact input[type="color"]{
  flex:0 0 24px;
  width:24px;
  height:24px;
  padding:2px;
  border-radius:7px;
}
.nt-text-fx-tool-panel .nt-text-lab-color-control--compact input[type="color"]::-webkit-color-swatch{
  border-radius:4px;
}
.nt-text-fx-tool-panel .nt-text-lab-color-reset-compact{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  min-width:32px;
  min-height:38px;
  padding:0;
  border-radius:8px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.035);
  color:#e8c34c;
  font-size:17px;
  line-height:1;
  cursor:pointer;
}
.nt-text-fx-tool-panel .nt-text-lab-color-reset-compact:hover{
  border-color:rgba(255,215,106,.48);
  background:rgba(212,175,55,.11);
}
.nt-text-fx-tool-panel .nt-text-lab-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px;
  max-height:430px;
  padding-right:2px;
}
.nt-text-fx-tool-panel .nt-text-lab-grid .nt-text-lab-btn{
  min-height:42px;
  padding:7px 8px;
  border-radius:9px;
  justify-content:center;
  gap:0;
}
.nt-text-fx-tool-panel .nt-text-lab-grid .nt-text-lab-btn strong{
  font-size:10px;
  line-height:1.15;
  width:100%;
  white-space:normal;
}
.nt-text-fx-tool-panel .nt-text-lab-grid .nt-text-lab-btn small{
  display:none !important;
}
/* Les tuiles spéciales Intérieur gardent leurs sous-libellés explicatifs. */
.nt-text-fx-tool-panel .nt-text-lab-featured-inner-grid .nt-text-lab-btn{
  min-height:52px;
  padding:7px 8px;
}
.nt-text-fx-tool-panel .nt-text-lab-featured-inner-grid .nt-text-lab-btn small{
  display:block !important;
}
@media (max-width:560px){
  .nt-text-fx-tool-panel .nt-text-lab-color-toolbar{
    grid-template-columns:repeat(3,minmax(0,1fr)) 30px;
  }
  .nt-text-fx-tool-panel .nt-text-lab-color-control--compact{
    padding:4px 5px;
  }
}


/* =========================================================
   v1.4.5.262.245 — Laboratoire FX : retour à l'état précédent
   ========================================================= */
.nt-text-fx-tool-panel .nt-text-lab-customize-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  min-width:0;
}
.nt-text-fx-tool-panel .nt-text-lab-disable-fx{
  appearance:none;
  min-height:24px;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid rgba(232,195,76,.42);
  background:rgba(212,175,55,.08);
  color:#f1d36c;
  font-size:9px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  white-space:nowrap;
}
.nt-text-fx-tool-panel .nt-text-lab-disable-fx:hover{
  border-color:rgba(255,220,105,.74);
  background:rgba(212,175,55,.16);
}
.nt-text-fx-tool-panel .nt-text-lab-disable-fx[hidden]{
  display:none !important;
}


/* v1.4.5.262.246 — Panneau Texte arc plus compact */
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapePanel .nt-text-panel-card-title{margin-bottom:4px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapePanel .nt-text-shape-strip{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:6px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapePanel .nt-text-tile{min-height:38px !important;padding:5px 3px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapePanel .nt-text-tile .nt-tile-preview{font-size:14px !important;line-height:1 !important;margin-bottom:2px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapePanel .nt-text-tile span:last-child{font-size:11px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapePanel .nt-text-shape-actions{margin-top:6px;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextArcDisableBtn{width:100%;min-height:30px;border-radius:9px;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapeControls{margin-top:6px !important;padding:7px 8px 7px !important;gap:5px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapeControls .nt-arc-control-head{min-height:16px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapeControls .nt-control-name{font-size:10px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapeControls output{padding:1px 5px !important;font-size:9px !important;min-width:28px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextShapeControls .nt-context-range{height:16px !important;margin:0 !important;}


/* v1.4.5.262.248 — Texture & remplissage unifiés */
.nt-properties-column #ntTextTexturePanel .nt-texture-section-tabs{display:none !important;}
.nt-properties-column #ntTextTexturePanel .nt-text-texture-unified{
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  padding-top:4px !important;
}
.nt-properties-column #ntTextTexturePanel .nt-texture-section-panel{
  display:flex !important;
  flex-direction:column !important;
  gap:6px !important;
  width:100%;
  padding:8px !important;
  border:1px solid rgba(255,255,255,.08);
  border-radius:11px;
  background:rgba(255,255,255,.028);
}
.nt-properties-column #ntTextTexturePanel .nt-texture-section-panel[hidden]{display:flex !important;}
.nt-properties-column #ntTextTexturePanel .nt-texture-subhead{display:flex;flex-direction:column;gap:2px;margin-bottom:2px;}
.nt-properties-column #ntTextTexturePanel .nt-texture-subhead strong{font-size:12px;font-weight:800;color:#fff;}
.nt-properties-column #ntTextTexturePanel .nt-texture-subhead span{font-size:10px;line-height:1.35;color:rgba(255,255,255,.68);}
.nt-properties-column #ntTextTexturePanel .nt-texture-section-panel > .btn,
.nt-properties-column #ntTextTexturePanel .nt-texture-section-panel > .mini-select{margin-bottom:0 !important;}
.nt-properties-column #ntTextTexturePanel .nt-texture-mode-label{margin-top:2px;}


/* v1.4.5.262.249 — Texture : panneau compact + scrollbar visible */
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel{
  max-height:min(68vh, 650px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:9px 8px 10px !important;
  gap:7px !important;
  scrollbar-width:thin !important;
  scrollbar-color:rgba(212,175,55,.62) rgba(255,255,255,.04) !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel::-webkit-scrollbar{
  display:block !important;
  width:8px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel::-webkit-scrollbar-track{
  background:rgba(255,255,255,.035);
  border-radius:8px;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel::-webkit-scrollbar-thumb{
  background:rgba(212,175,55,.58);
  border-radius:8px;
  border:2px solid rgba(15,15,15,.85);
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-text-texture-unified{
  gap:6px !important;
  padding-top:2px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-texture-section-panel{
  gap:5px !important;
  padding:7px !important;
  border-radius:9px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-texture-subhead{
  gap:1px !important;
  margin-bottom:1px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-texture-subhead strong{
  font-size:11px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-texture-subhead span{
  font-size:9.5px !important;
  line-height:1.25 !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-text-finish-strip{
  margin-bottom:2px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-text-finish-strip .nt-text-tile{
  min-height:44px !important;
  padding:5px 4px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-text-finish-strip .nt-tile-preview{
  font-size:17px !important;
  line-height:1 !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .btn.small{
  min-height:27px !important;
  padding:4px 7px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .mini-select{
  min-height:29px !important;
  padding-top:4px !important;
  padding-bottom:4px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-text-gradient-box,
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-text-texture-blend-box{
  padding:7px !important;
  border-radius:9px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-text-gradient-head,
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-texture-blend-head{
  margin-bottom:5px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-gradient-type-btn,
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-gradient-direction-presets button,
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-text-gradient-presets button{
  min-height:26px !important;
  padding:4px 6px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-text-gradient-direction,
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel .nt-text-gradient-radial{
  padding:7px !important;
}
@media(max-height:760px){
  .nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel{
    max-height:min(62vh, 500px) !important;
  }
}


/* v1.4.5.262.250 — Fusion simplifiée : mode directement sur la texture */
.nt-properties-column #ntTextTexturePanel .nt-texture-top-row{
  display:grid;
  grid-template-columns:minmax(88px,104px) minmax(0,1fr);
  gap:7px;
  align-items:stretch;
}
.nt-properties-column #ntTextTexturePanel .nt-texture-top-row .nt-text-finish-strip{
  display:block !important;
  margin:0 !important;
}
.nt-properties-column #ntTextTexturePanel .nt-texture-top-row .nt-text-tile{
  min-height:52px !important;
  height:100%;
}
.nt-properties-column #ntTextTexturePanel .nt-texture-direct-blend{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  min-width:0;
  padding:6px 7px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:9px;
  background:rgba(255,255,255,.02);
}
.nt-properties-column #ntTextTexturePanel .nt-texture-direct-blend>span{
  font-size:10px;
  font-weight:800;
  color:rgba(255,255,255,.72);
}
.nt-properties-column #ntTextTexturePanel .nt-texture-direct-blend .mini-select{
  width:100% !important;
  max-width:none !important;
  min-height:30px;
}


/* v1.4.5.262.251 — Relief texte compact (image inchangée) */
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-text-note{
  margin:0 0 6px !important;
  font-size:10px !important;
  line-height:1.3 !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-category-tabs{
  gap:4px !important;
  margin-top:5px !important;
  padding:3px !important;
  border-radius:9px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-category-tab{
  min-height:27px !important;
  padding:4px 7px !important;
  border-radius:7px !important;
  font-size:10px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-category-panel .nt-relief-preset-grid,
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-preset-grid{
  gap:5px !important;
  margin-top:6px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-preset{
  min-height:48px !important;
  padding:5px 4px !important;
  gap:3px !important;
  border-radius:9px !important;
  font-size:10px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-preview{
  width:42px !important;
  height:24px !important;
  border-radius:7px !important;
  font-size:15px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-light-box{
  margin-top:7px !important;
  padding:7px 8px !important;
  border-radius:9px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-light-grid{
  grid-template-columns:repeat(4,32px) minmax(74px,1fr) !important;
  gap:5px !important;
  margin-top:5px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-light,
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-invert{
  min-height:29px !important;
  border-radius:8px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-light{font-size:15px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-invert{padding:0 6px !important;font-size:9px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-intensity-row{
  margin-top:7px !important;
  padding:7px 8px !important;
  border-radius:9px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-intensity-row input[type="range"]{
  margin-top:4px !important;
  height:16px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-actions{margin-top:6px !important;}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-actions .btn{
  min-height:29px !important;
  padding:5px 8px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel .nt-relief-status{
  margin-top:5px !important;
  font-size:10px !important;
  line-height:1.3 !important;
}

/* =========================================================
   v1.4.5.262.253 — Scroll interne des outils texte longs
   ---------------------------------------------------------
   Polices, Laboratoire FX et Relief restent utilisables même
   lorsque l'accordéon Style texte demeure ouvert. Forme,
   Correction et Alignement restent sans scroll forcé.
   Texture conserve son comportement dédié existant.
   ========================================================= */
.nt-properties-context[data-nt-properties-context="text"] #ntTextStylePanel,
.nt-properties-context[data-nt-properties-context="text"] #ntTextFxPanel,
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel{
  max-height:min(54vh, 560px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain;
  scrollbar-width:thin !important;
  scrollbar-color:rgba(212,175,55,.62) rgba(255,255,255,.04) !important;
  padding-right:8px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextStylePanel::-webkit-scrollbar,
.nt-properties-context[data-nt-properties-context="text"] #ntTextFxPanel::-webkit-scrollbar,
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel::-webkit-scrollbar{
  display:block !important;
  width:8px !important;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextStylePanel::-webkit-scrollbar-track,
.nt-properties-context[data-nt-properties-context="text"] #ntTextFxPanel::-webkit-scrollbar-track,
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel::-webkit-scrollbar-track{
  background:rgba(255,255,255,.035);
  border-radius:8px;
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextStylePanel::-webkit-scrollbar-thumb,
.nt-properties-context[data-nt-properties-context="text"] #ntTextFxPanel::-webkit-scrollbar-thumb,
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel::-webkit-scrollbar-thumb{
  background:rgba(212,175,55,.58);
  border-radius:8px;
  border:2px solid rgba(15,15,15,.85);
}
.nt-properties-context[data-nt-properties-context="text"] #ntTextStylePanel::-webkit-scrollbar-thumb:hover,
.nt-properties-context[data-nt-properties-context="text"] #ntTextFxPanel::-webkit-scrollbar-thumb:hover,
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel::-webkit-scrollbar-thumb:hover{
  background:rgba(212,175,55,.78);
}

@media (max-height:760px){
  .nt-properties-context[data-nt-properties-context="text"] #ntTextStylePanel,
  .nt-properties-context[data-nt-properties-context="text"] #ntTextFxPanel,
  .nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel{
    max-height:44vh !important;
  }
}


/* =========================================================
   v1.4.5.262.254 — Panneau droit fiable + Découpe avancée V2
   ---------------------------------------------------------
   - La colonne droite respecte enfin la hauteur réellement restante,
     même lorsque Style reste ouvert.
   - Une seule scrollbar visible par zone d'outil, texte ou image.
   - Découpe avancée est restructurée en cartes de paramètres lisibles.
   ========================================================= */

/* La palette du haut garde sa hauteur naturelle ; le contexte prend le reste. */
.nt-properties-column > .nt-properties-context:not([hidden]){
  flex:1 1 auto !important;
  height:auto !important;
  min-height:0 !important;
  overflow:hidden !important;
}
.nt-properties-context > .nt-properties-accordion__body{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow:hidden !important;
  display:flex;
  flex-direction:column;
}
.nt-properties-context > .nt-properties-accordion__body[hidden]{display:none !important;}
.nt-properties-context .nt-properties-tabs{flex:0 0 auto;}

/* Scroll visible et cohérent dans tous les montages de propriétés.
   Les panneaux courts n'affichent naturellement aucune barre. */
.nt-properties-column .nt-properties-content{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:100% !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:8px !important;
  scrollbar-width:thin !important;
  scrollbar-color:rgba(212,175,55,.64) rgba(255,255,255,.035) !important;
}
.nt-properties-column .nt-properties-content::-webkit-scrollbar{
  display:block !important;
  width:8px !important;
  height:8px !important;
}
.nt-properties-column .nt-properties-content::-webkit-scrollbar-track{
  background:rgba(255,255,255,.035);
  border-radius:9px;
}
.nt-properties-column .nt-properties-content::-webkit-scrollbar-thumb{
  background:rgba(212,175,55,.58);
  border:2px solid rgba(13,13,16,.92);
  border-radius:9px;
}
.nt-properties-column .nt-properties-content::-webkit-scrollbar-thumb:hover{background:rgba(212,175,55,.82);}

/* On retire les scrolls imbriqués des outils texte : le montage actif
   devient l'unique zone scrollable. */
.nt-properties-context[data-nt-properties-context="text"] #ntTextStylePanel,
.nt-properties-context[data-nt-properties-context="text"] #ntTextFxPanel,
.nt-properties-context[data-nt-properties-context="text"] #ntTextReliefPanel,
.nt-properties-context[data-nt-properties-context="text"] #ntTextTexturePanel{
  max-height:none !important;
  overflow:visible !important;
  padding-right:12px !important;
}

/* Tous les panneaux image peuvent désormais être parcourus entièrement. */
.nt-properties-context[data-nt-properties-context="image"] #ntImagePropertyMount{
  padding-bottom:28px !important;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-property-content-panel{
  overflow:visible !important;
}

/* ---------- Découpe avancée : structure générale ---------- */
.nt-properties-context[data-nt-properties-context="image"] .nt-image-crop-split-section{
  padding:10px !important;
  border-radius:13px !important;
}
.nt-image-crop-split-section > h3{
  margin-bottom:5px !important;
  padding-bottom:7px !important;
}
.nt-image-crop-split-section > .section-subtitle{
  margin:0 0 8px !important;
  font-size:10px !important;
  line-height:1.35 !important;
}
.nt-image-crop-split-section .nt-image-crop-split-stack{gap:8px !important;}

/* Modes toujours visibles lorsque l'on descend dans une grande bibliothèque. */
.nt-image-crop-split-section .nt-crop-mode-tabs{
  position:sticky;
  top:0;
  z-index:9;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px !important;
  margin:0 0 8px !important;
  padding:5px 0 7px;
  background:linear-gradient(180deg,rgba(17,18,22,.99) 0%,rgba(17,18,22,.99) 78%,rgba(17,18,22,0) 100%);
}
.nt-image-crop-split-section .nt-crop-mode-tab{
  min-height:33px !important;
  padding:5px 7px !important;
  border-radius:9px !important;
  font-size:10px !important;
}

/* Carte de paramètres compacte et explicite. */
.nt-crop-params-card,
.nt-crop-free-panel > .nt-crop-card-head{
  border:1px solid rgba(212,175,55,.18);
  border-radius:11px;
  background:rgba(255,255,255,.026);
}
.nt-crop-params-card{
  display:grid;
  gap:7px;
  padding:8px;
}
.nt-crop-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:9px;
}
.nt-crop-card-head strong{
  flex:0 0 auto;
  color:#f4d66d;
  font-size:11px;
  line-height:1.2;
}
.nt-crop-card-head small{
  color:rgba(255,255,255,.58);
  font-size:9px;
  line-height:1.25;
  text-align:right;
}
.nt-crop-free-panel > .nt-crop-card-head{
  padding:7px 8px;
  margin-bottom:6px;
}

/* Formats rapides : petits boutons, pas de grosse tuile. */
.nt-image-crop-split-section .nt-crop-split-presets{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:4px !important;
}
.nt-image-crop-split-section .nt-crop-split-preset{
  min-width:0 !important;
  min-height:27px !important;
  padding:4px 3px !important;
  border-radius:7px !important;
  font-size:9.5px !important;
}

/* Colonnes/lignes et espacements : quatre champs nommés et encadrés. */
.nt-crop-number-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px;
}
.nt-crop-number-field{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) 54px;
  align-items:center;
  gap:6px;
  min-height:31px;
  padding:4px 6px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:8px;
  background:rgba(0,0,0,.13);
}
.nt-crop-number-field span{
  min-width:0;
  color:rgba(246,240,220,.72);
  font-size:9.5px;
  font-weight:750;
  line-height:1.05;
}
.nt-crop-number-field input{
  width:100% !important;
  min-width:0 !important;
  height:26px !important;
  padding:3px 4px !important;
  text-align:center;
  border-radius:7px !important;
}
.nt-crop-compact-help{
  margin:0 !important;
  font-size:9px !important;
  line-height:1.3 !important;
}

/* Grilles créatives et filets : cartes mieux délimitées et plus denses. */
.nt-image-crop-split-section .nt-crop-mesh-presets{
  gap:7px !important;
  padding:8px !important;
  border-radius:11px !important;
}
.nt-image-crop-split-section .nt-crop-mesh-presets-head{
  align-items:flex-start !important;
}
.nt-image-crop-split-section .nt-crop-mesh-presets-head strong{font-size:10.5px !important;}
.nt-image-crop-split-section .nt-crop-mesh-presets-head small{
  max-width:64%;
  font-size:9px !important;
  line-height:1.25 !important;
  text-align:right;
}
.nt-image-crop-split-section .nt-crop-mesh-preset-groups{gap:7px !important;}
.nt-image-crop-split-section .nt-crop-mesh-preset-group{
  gap:5px !important;
  padding:7px !important;
  border:1px solid rgba(255,255,255,.065);
  border-radius:9px;
  background:rgba(0,0,0,.10);
}
.nt-image-crop-split-section .nt-crop-mesh-preset-group--creative{
  border-color:rgba(240,207,115,.27) !important;
  background:rgba(240,207,115,.045) !important;
}
.nt-image-crop-split-section .nt-crop-mesh-preset-group-title{
  font-size:9px !important;
  line-height:1.15 !important;
}
.nt-image-crop-split-section .nt-crop-mesh-preset-grid{gap:4px !important;}
.nt-image-crop-split-section .nt-crop-mesh-preset-btn{
  min-height:45px !important;
  padding:6px !important;
  border-radius:8px !important;
  gap:2px !important;
}
.nt-image-crop-split-section .nt-crop-mesh-preset-btn strong{font-size:10px !important;line-height:1.1;}
.nt-image-crop-split-section .nt-crop-mesh-preset-btn small{font-size:8.5px !important;line-height:1.15 !important;}
.nt-image-crop-split-section .nt-crop-grid-presets .nt-crop-split-field{
  margin:6px 0 7px !important;
  padding:7px !important;
  border:1px solid rgba(255,255,255,.07);
  border-radius:8px;
  background:rgba(0,0,0,.11);
}

/* Filet : actions directement dans la carte de paramètres. */
.nt-image-crop-split-section .nt-crop-mesh-panel{gap:8px !important;}
.nt-image-crop-split-section .nt-crop-mesh-actions{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px !important;
}
.nt-image-crop-split-section .nt-crop-mesh-actions .btn{
  min-height:28px !important;
  padding:4px 6px !important;
  font-size:9px !important;
}

/* Libre : chaque famille est encadrée au lieu d'être noyée dans une longue page. */
.nt-image-crop-split-section .nt-crop-free-panel{display:grid;gap:6px;}
.nt-image-crop-split-section .nt-crop-free-view-tabs{margin:0 !important;}
.nt-image-crop-split-section .nt-crop-free-view-panel{
  padding:7px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:9px;
  background:rgba(0,0,0,.10);
}
.nt-image-crop-split-section .nt-crop-free-tools{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:4px !important;
}
.nt-image-crop-split-section .nt-crop-free-tool{
  min-height:28px !important;
  padding:4px !important;
  font-size:9px !important;
}
.nt-image-crop-split-section .nt-crop-free-actions{
  padding:7px;
  border:1px solid rgba(212,175,55,.13);
  border-radius:9px;
  background:rgba(212,175,55,.035);
}
.nt-image-crop-split-section .nt-crop-free-count{padding:7px 8px !important;border-radius:8px !important;font-size:10px !important;}

/* Les grandes bibliothèques ont leur propre fenêtre courte + scrollbar visible.
   Cela évite de parcourir 72 formes avant d'atteindre les actions du bas. */
.nt-image-crop-split-section .nt-crop-shape-library,
.nt-image-crop-split-section .nt-crop-preset-library{
  max-height:280px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:5px !important;
  scrollbar-width:thin !important;
  scrollbar-color:rgba(212,175,55,.56) rgba(255,255,255,.03) !important;
}
.nt-image-crop-split-section .nt-crop-shape-library::-webkit-scrollbar,
.nt-image-crop-split-section .nt-crop-preset-library::-webkit-scrollbar{display:block !important;width:7px !important;}
.nt-image-crop-split-section .nt-crop-shape-library::-webkit-scrollbar-thumb,
.nt-image-crop-split-section .nt-crop-preset-library::-webkit-scrollbar-thumb{background:rgba(212,175,55,.54);border-radius:8px;}
.nt-image-crop-split-section .nt-crop-shape-library::-webkit-scrollbar-track,
.nt-image-crop-split-section .nt-crop-preset-library::-webkit-scrollbar-track{background:rgba(255,255,255,.025);}

/* Zone finale clairement séparée. */
.nt-image-crop-split-section .nt-crop-split-check{
  padding:7px 8px !important;
  border-radius:9px !important;
  font-size:9.5px !important;
}
.nt-image-crop-split-section .nt-crop-split-actions{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px !important;
}
.nt-image-crop-split-section .nt-crop-split-actions .btn{min-height:29px !important;padding:4px 6px !important;}
.nt-image-crop-split-section .nt-crop-split-status{
  margin:0 !important;
  padding:7px 8px;
  border:1px solid rgba(255,255,255,.06);
  border-radius:8px;
  background:rgba(0,0,0,.12);
  font-size:9px !important;
  line-height:1.3 !important;
}

@media(max-height:760px){
  .nt-properties-column .nt-properties-content{padding-bottom:18px !important;}
  .nt-image-crop-split-section .nt-crop-shape-library,
  .nt-image-crop-split-section .nt-crop-preset-library{max-height:220px !important;}
}


/* =========================================================
   v1.4.5.262.255 — Texture image positionnable + Fusion texte V2
   ========================================================= */
.nt-properties-context[data-nt-properties-context="image"] .nt-image-texture-actions-clean{
  display:grid !important;
  grid-template-columns:1.35fr 1fr .75fr !important;
  gap:6px !important;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-texture-actions-clean .btn{
  min-width:0 !important; padding:6px 5px !important; font-size:10px !important;
}
body > #ntImageTexturePositionModal.nt-texture-position-modal{
  position:fixed !important; inset:0 !important; z-index:1000000 !important; overflow:visible !important; isolation:isolate;
}
body > #ntImageTexturePositionModal .nt-texture-position-modal__backdrop{z-index:0 !important;}
body > #ntImageTexturePositionModal .nt-texture-position-modal__dialog{z-index:1 !important;}
#ntImageTexturePositionPreview{cursor:grab;touch-action:none;}
#ntImageTexturePositionPreview.is-dragging{cursor:grabbing;}
.nt-image-texture-position-actions{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}

/* Fusion image / texte : hiérarchie compacte et sans chevauchements */
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-section .nt-fusion-heading{margin-bottom:7px !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-section .section-subtitle{margin:2px 0 0 !important;line-height:1.35 !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-controls{display:flex;flex-direction:column;gap:7px !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-toggle-row{padding:7px 8px !important;border-radius:9px !important;gap:8px !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-toggle-row > span{display:flex;flex-direction:column;gap:1px;min-width:0;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-toggle-row strong{font-size:11px;color:#fff;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-toggle-row small{font-size:9px;line-height:1.25;color:rgba(255,255,255,.58);font-weight:600;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-card{
  display:flex;flex-direction:column;gap:6px;padding:7px;border:1px solid rgba(212,175,55,.14);border-radius:9px;background:rgba(255,255,255,.018);min-width:0;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-card-head strong{font-size:10px;color:rgba(255,255,255,.9);}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-card-head span{font-size:9px;color:rgba(255,255,255,.52);text-align:right;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-field{display:block;margin:0;min-width:0;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-field .mini-select{width:100% !important;max-width:none !important;min-height:29px !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-align-btn{width:100%;min-height:27px !important;padding:5px 7px !important;font-size:10px !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-side-buttons{display:grid;grid-template-columns:1fr 1fr;gap:5px;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-side-buttons button{
  appearance:none;min-width:0;min-height:29px;padding:5px 7px;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:rgba(255,255,255,.025);color:rgba(255,255,255,.72);font:inherit;font-size:10px;font-weight:800;cursor:pointer;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-side-buttons button.is-active{color:#17130a;border-color:#e4c35f;background:linear-gradient(180deg,#f3dc86,#d4af37);}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-side-buttons button:disabled{opacity:.45;cursor:not-allowed;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-gap-row{display:flex;flex-direction:column;gap:5px;padding-top:2px;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-gap-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-gap-head label{font-size:9px;color:rgba(255,255,255,.65);}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-gap-head output{min-width:28px;text-align:center;padding:2px 5px;border:1px solid rgba(212,175,55,.18);border-radius:6px;color:#f5cf55;font-size:9px;font-weight:800;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-gap-controls{display:grid;grid-template-columns:minmax(0,1fr) 52px;gap:7px;align-items:center;min-width:0;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-gap-controls input[type="range"]{width:100%;min-width:0;accent-color:#d4af37;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-gap-controls input[type="number"]{width:52px;min-width:0;height:29px;border-radius:8px;}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-checks{display:grid;grid-template-columns:1fr 1fr;gap:5px !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-checks label{min-width:0;padding:6px !important;border-radius:8px !important;font-size:9px !important;line-height:1.15;}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-checks label span{min-width:0;}
.nt-properties-context[data-nt-properties-context="image"] .nt-image-text-fusion-status{margin:0 !important;padding:6px 7px !important;border-radius:8px !important;font-size:9px !important;line-height:1.3 !important;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-detach-btn{min-height:28px !important;padding:5px 7px !important;font-size:10px !important;}


/* v1.4.5.262.256 — Fusion texte : polissage du rendu et continuité d’édition */
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-hint{
  margin-top:-1px;font-size:8px;line-height:1.25;color:rgba(255,255,255,.48);font-weight:600;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-presets{
  display:grid;grid-template-columns:1fr 1fr;gap:5px;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-presets button{
  appearance:none;min-width:0;min-height:27px;padding:5px 6px;border:1px solid rgba(212,175,55,.16);border-radius:8px;
  background:rgba(255,255,255,.025);color:rgba(255,255,255,.78);font:inherit;font-size:9px;font-weight:800;cursor:pointer;
}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-presets button:hover:not(:disabled){
  color:#f5cf55;border-color:rgba(229,184,48,.38);background:rgba(229,184,48,.07);
}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-presets button:disabled{opacity:.42;cursor:not-allowed;}
.nt-properties-context[data-nt-properties-context="image"] .nt-fusion-opacity-row{
  display:flex;flex-direction:column;gap:5px;padding-top:4px;margin-top:1px;border-top:1px solid rgba(255,255,255,.055);
}


/* v1.4.5.262.257 — Mes styles texte, bibliothèque de session */
.nt-session-text-style-summary{display:inline-flex !important;align-items:center;gap:5px !important;}
.nt-session-text-style-count{min-width:17px;height:17px;padding:0 4px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(212,175,55,.13);border:1px solid rgba(212,175,55,.28);color:#f2cc57;font-size:9px;font-weight:900;}
.nt-session-text-style-popover{min-width:310px;max-width:min(410px,calc(100vw - 20px));padding:10px;display:grid;gap:8px;}
.nt-session-text-style-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(255,255,255,.07);padding-bottom:8px;}
.nt-session-text-style-help{max-width:230px;margin-top:2px;color:#a9a094;font-size:10px;line-height:1.35;}
.nt-session-text-style-save{white-space:nowrap !important;min-height:29px !important;padding:5px 8px !important;}
.nt-session-text-style-empty{padding:12px 9px;border:1px dashed rgba(212,175,55,.22);border-radius:9px;color:#a9a094;font-size:10px;text-align:center;}
.nt-session-text-style-empty[hidden]{display:none !important;}
.nt-session-text-style-list{max-height:290px;overflow:auto;padding-right:3px;}
.nt-session-text-style-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:stretch;}
.nt-session-text-style-apply{display:grid !important;grid-template-columns:46px minmax(0,1fr) !important;align-items:center !important;gap:8px !important;padding:6px 8px !important;min-height:48px !important;}
.nt-session-text-style-preview{width:42px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid rgba(212,175,55,.24);background:#171717;font-size:22px;font-weight:800;overflow:hidden;}
.nt-session-text-style-info{min-width:0;display:grid;gap:1px;text-align:left;}
.nt-session-text-style-actions{display:flex;flex-direction:column;gap:4px;}
.nt-session-text-style-action{appearance:none;width:28px;min-height:22px;border-radius:7px;border:1px solid rgba(255,255,255,.09);background:#181818;color:#d8d2c6;font-size:12px;font-weight:900;cursor:pointer;}
.nt-session-text-style-action:hover{border-color:rgba(212,175,55,.45);color:#f0cc5a;}
.nt-session-text-style-action.is-danger:hover{border-color:rgba(255,94,94,.48);color:#ff8f8f;}
@media (max-width:900px){.nt-session-text-style-popover{min-width:280px;}.nt-session-text-style-help{max-width:190px;}}


/* v1.4.5.262.258 — Mes styles : menu compact sous la toolbar */
.nt-session-text-style-summary{display:inline-flex !important;align-items:center;gap:5px !important;}
.nt-session-text-style-count{min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(212,175,55,.13);border:1px solid rgba(212,175,55,.28);color:#f2cc57;font-size:8.5px;font-weight:900;}
.nt-session-text-style-popover{
  width:300px !important;
  min-width:300px !important;
  max-width:min(300px,calc(100vw - 16px)) !important;
  padding:8px !important;
  display:grid !important;
  gap:6px !important;
}
.nt-session-text-style-head{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:8px !important;
  padding:0 0 6px !important;
  border-bottom:1px solid rgba(255,255,255,.07) !important;
  width:100% !important;
  min-width:0 !important;
}
.nt-session-text-style-head .nt-compact-toolbar-popover-title{margin:0 !important;font-size:11px !important;}
.nt-session-text-style-help{display:none !important;}
.nt-session-text-style-save{
  position:static !important;
  float:none !important;
  width:auto !important;
  min-width:0 !important;
  min-height:25px !important;
  padding:4px 7px !important;
  margin:0 !important;
  white-space:nowrap !important;
  font-size:9.5px !important;
}
.nt-session-text-style-empty{
  padding:8px !important;
  min-height:34px !important;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px dashed rgba(212,175,55,.22);
  border-radius:8px;
  color:#a9a094;
  font-size:9.5px;
  line-height:1.25;
  text-align:center;
}
.nt-session-text-style-empty[hidden]{display:none !important;}
.nt-session-text-style-list{
  display:grid !important;
  gap:4px !important;
  max-height:230px !important;
  overflow:auto !important;
  padding-right:2px !important;
  scrollbar-width:thin;
  scrollbar-color:rgba(212,175,55,.45) rgba(255,255,255,.035);
}
.nt-session-text-style-row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:4px !important;
  align-items:center !important;
  min-width:0 !important;
}
.nt-session-text-style-apply{
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) !important;
  align-items:center !important;
  gap:6px !important;
  min-width:0 !important;
  min-height:36px !important;
  padding:4px 6px !important;
  border-radius:8px !important;
}
.nt-session-text-style-preview{
  width:32px !important;
  height:27px !important;
  border-radius:7px !important;
  font-size:17px !important;
}
.nt-session-text-style-info{display:block !important;min-width:0 !important;text-align:left !important;}
.nt-session-text-style-info .nt-model-text-style-item__label{
  font-size:11px !important;
  line-height:1.15 !important;
  max-width:100% !important;
}
.nt-session-text-style-info .nt-model-text-style-item__meta{display:none !important;}
.nt-session-text-style-actions{
  display:flex !important;
  flex-direction:row !important;
  gap:3px !important;
  align-items:center !important;
}
.nt-session-text-style-action{
  width:24px !important;
  height:28px !important;
  min-height:28px !important;
  padding:0 !important;
  border-radius:7px !important;
  font-size:11px !important;
}
.nt-session-text-style-popover > .nt-compact-toolbar-note{display:none !important;}
@media(max-width:520px){
  .nt-session-text-style-popover{width:280px !important;min-width:280px !important;max-width:calc(100vw - 16px) !important;}
}


/* =========================================================
   v1.4.5.262.264 — Navigation du canvas vectoriel
   ========================================================= */
.nt-vector-view-group{white-space:nowrap}
.nt-vector-view-group .nt-vector-zoom-readout{min-width:54px;width:auto;padding:0 8px;font-size:10px;color:#ead78d}
#ntVectorCanvas.is-pan-ready{cursor:grab!important}
#ntVectorCanvas.is-panning{cursor:grabbing!important}
#ntVectorCanvas.is-panning .nt-vector-object,#ntVectorCanvas.is-pan-ready .nt-vector-object{cursor:inherit!important}
@media(max-width:1180px){.nt-vector-view-group>span{display:none}}


/* =========================================================
   v1.4.5.262.265 — Vectoriel : fenêtre stable + scrollbars
   ========================================================= */
.nt-vector-modal__dialog{
  height:min(980px,calc(100dvh - 24px)) !important;
  max-height:calc(100dvh - 24px) !important;
}
.nt-vector-editor{
  min-height:0 !important;
  overflow:hidden !important;
}
.nt-vector-controls-scroll{
  flex:0 1 auto;
  max-height:min(300px,38dvh);
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  border-bottom:1px solid rgba(255,255,255,.06);
  background:#101014;
}
.nt-vector-controls-scroll::-webkit-scrollbar,
.nt-vector-layers::-webkit-scrollbar{
  width:9px;
  height:9px;
}
.nt-vector-controls-scroll::-webkit-scrollbar-track,
.nt-vector-layers::-webkit-scrollbar-track{
  background:rgba(255,255,255,.035);
  border-radius:999px;
}
.nt-vector-controls-scroll::-webkit-scrollbar-thumb,
.nt-vector-layers::-webkit-scrollbar-thumb{
  background:rgba(212,175,55,.42);
  border:2px solid transparent;
  background-clip:padding-box;
  border-radius:999px;
}
.nt-vector-controls-scroll::-webkit-scrollbar-thumb:hover,
.nt-vector-layers::-webkit-scrollbar-thumb:hover{background:rgba(212,175,55,.62);background-clip:padding-box;}
.nt-vector-controls-scroll .nt-vector-toolbar{
  position:sticky;
  top:0;
  z-index:5;
  box-shadow:0 5px 12px rgba(0,0,0,.18);
}
.nt-vector-workspace{
  min-height:300px !important;
  flex:1 1 420px !important;
  overflow:hidden;
}
.nt-vector-canvas-wrap{min-height:280px !important;}
.nt-vector-sidebar{min-height:0 !important;}
.nt-vector-layers{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
  padding-right:2px;
}
.nt-vector-admin-save{flex:0 0 auto;}
.nt-vector-footer{flex:0 0 auto;}
@media(max-height:820px){
  .nt-vector-controls-scroll{max-height:30dvh;}
  .nt-vector-workspace{min-height:250px !important;}
  .nt-vector-canvas-wrap{min-height:230px !important;}
}
@media(max-height:680px){
  .nt-vector-controls-scroll{max-height:26dvh;}
  .nt-vector-modal__head{min-height:52px;padding-top:6px;padding-bottom:6px;}
  .nt-vector-footer{padding-top:5px;padding-bottom:5px;}
}


/* v1.4.5.262.268 — Tracé : lissage de courbe réglable */
.nt-vector-trace-panel .nt-vector-trace-smoothing{min-width:190px;}
.nt-vector-trace-panel .nt-vector-trace-smoothing input[type=range]{width:100px;accent-color:#d4af37;}
.nt-vector-trace-panel .nt-vector-trace-smoothing b{min-width:32px;color:#f2df96;font-size:9px;text-align:right;}

/* v1.4.5.262.269 — Simplifier : élagage adaptatif courbe-aware, sans nouveau contrôle UI. */

/* =========================================================
   v1.4.5.262.273 — Motifs multi-images Studio + sorties raster
   ========================================================= */
.nt-pattern-maker-btn{border-color:rgba(212,175,55,.42)!important;background:rgba(212,175,55,.08)!important;color:#f5dfa0!important}
.nt-pattern-maker-btn:hover{background:rgba(212,175,55,.17)!important;border-color:#d4af37!important}
.nt-vector-pattern-panel .nt-vector-pattern-check{gap:4px}
.nt-vector-pattern-panel .nt-vector-pattern-check input[type=checkbox]{accent-color:#d4af37}
.nt-vector-pattern-panel .nt-vector-pattern-check input[type=number]{width:48px}
.nt-vector-pattern-panel select#ntVectorPatternDistribution{min-width:90px}
.nt-vector-pattern-panel select#ntVectorPatternRasterScale{min-width:54px}

.nt-pattern-modal[hidden]{display:none!important}
.nt-pattern-modal{position:fixed;inset:0;z-index:10080;display:flex;align-items:center;justify-content:center;padding:20px}
.nt-pattern-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.74);backdrop-filter:blur(4px)}
.nt-pattern-modal__dialog{position:relative;width:min(760px,94vw);max-height:88vh;overflow:auto;border:1px solid rgba(212,175,55,.32);border-radius:18px;background:linear-gradient(180deg,#191816,#0f0f11);box-shadow:0 30px 90px rgba(0,0,0,.55);color:#eee8dc}
.nt-pattern-modal__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.08)}
.nt-pattern-modal__head h2{margin:0 0 5px;font-size:18px;color:#f3dfa0}
.nt-pattern-modal__head p{margin:0;color:#a7a199;font-size:12px;line-height:1.45}
.nt-pattern-modal__close{width:34px;height:34px;border-radius:9px;border:1px solid rgba(255,255,255,.12);background:#17171a;color:#eee;cursor:pointer;font-size:22px;line-height:1}
.nt-pattern-modal__body{padding:18px 20px 20px}
.nt-pattern-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.nt-pattern-grid label{display:flex;flex-direction:column;gap:5px;padding:8px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#151519}
.nt-pattern-grid label>span{font-size:10px;font-weight:800;color:#aaa49a}
.nt-pattern-grid input[type=number],.nt-pattern-grid select{height:32px;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:#0b0b0e;color:#f4efe5;padding:0 8px;font-size:11px}
.nt-pattern-grid .nt-pattern-check{flex-direction:row;align-items:center;justify-content:flex-start;min-height:49px}
.nt-pattern-grid .nt-pattern-check input{accent-color:#d4af37}
.nt-pattern-source-info{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:10px 12px;border:1px solid rgba(212,175,55,.18);border-radius:10px;background:rgba(212,175,55,.055)}
.nt-pattern-source-info strong{font-size:11px;color:#f1df9f}.nt-pattern-source-info span{font-size:10px;color:#aaa59b;text-align:right}
.nt-pattern-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.nt-pattern-status{margin:12px 0 0;padding:9px 11px;border-radius:9px;background:#111115;color:#a8a39a;font-size:10px;border:1px solid rgba(255,255,255,.07)}
.nt-pattern-status[data-kind=ok]{color:#c9edc2;border-color:rgba(111,190,94,.28);background:rgba(65,120,54,.10)}
.nt-pattern-status[data-kind=warn]{color:#ffd0ad;border-color:rgba(238,145,69,.30);background:rgba(140,72,28,.12)}
@media(max-width:760px){.nt-pattern-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nt-pattern-modal{padding:8px}.nt-pattern-modal__dialog{width:98vw}}

/* =========================================================
   v1.4.5.262.281 — Forme photo
   Une photo découpée reste un objet Image standard.
   ========================================================= */
.nt-photo-shape-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.nt-photo-shape-image-card{
  margin:0 0 10px;
  padding:10px;
  border:1px solid rgba(243,218,132,.28);
  border-radius:12px;
  background:rgba(243,218,132,.055);
}
.nt-photo-shape-image-card[hidden]{display:none!important;}
.nt-photo-shape-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:9px;
}
.nt-photo-shape-card-head>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.nt-photo-shape-card-head strong{font-size:13px;line-height:1.1;}
.nt-photo-shape-card-head span{
  font-size:10px;
  line-height:1.25;
  opacity:.7;
}
.nt-photo-shape-control-row{
  display:grid;
  grid-template-columns:82px minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
  min-height:30px;
}
.nt-photo-shape-control-row label{font-size:11px;opacity:.84;}
.nt-photo-shape-control-row input[type="range"]{width:100%;min-width:0;}
.nt-photo-shape-control-row output{min-width:38px;text-align:right;font-size:10px;opacity:.75;}
.nt-photo-shape-card-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-top:8px;
}
.nt-photo-shape-status{
  margin:8px 0 0;
  font-size:10px;
  line-height:1.35;
  opacity:.68;
}
.nt-svg-photo-shape-action{
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.08);
}
.nt-svg-photo-shape-action .btn{width:100%;}
.nt-svg-photo-shape-action p,
.nt-vector-pattern-note{
  margin:6px 0 0;
  font-size:10px;
  line-height:1.35;
  opacity:.68;
}

/* =========================================================
   v1.4.5.262.285 — STUDIO MOBILE ESSENTIEL
   ---------------------------------------------------------
   Mobile/tablette = démarrage de design, pas copie du desktop.
   Activation pilotée par body.nt-mobile-ui dans mobile-ui.js.
   ========================================================= */
.nt-mobile-topbar,.nt-mobile-bottom-nav,.nt-mobile-photo-shape-sheet,.nt-mobile-text-sheet,.nt-mobile-image-sheet{display:none}

body.nt-mobile-ui,
html.nt-mobile-ui{
  width:100%;height:100%;overflow:hidden !important;overscroll-behavior:none;
}
body.nt-mobile-ui .app{
  position:fixed !important;left:0 !important;right:0 !important;top:var(--nt-mobile-vtop,0px) !important;width:100% !important;height:var(--nt-mobile-vh,100dvh) !important;min-height:0 !important;
  display:block !important;overflow:hidden !important;background:#0b0b0e !important;
}
body.nt-mobile-ui .topbar,
body.nt-mobile-ui .dock,
body.nt-mobile-ui .canvas-toolbar,
body.nt-mobile-ui .nt-properties-column{
  display:none !important;
}
body.nt-mobile-ui .workspace{
  position:absolute !important;
  inset:calc(52px + env(safe-area-inset-top,0px)) 0 calc(68px + env(safe-area-inset-bottom,0px)) 0 !important;
  width:auto !important;height:auto !important;min-height:0 !important;
  display:block !important;overflow:hidden !important;
}
body.nt-mobile-ui .main-area,
body.nt-mobile-ui.simple-mode .main-area,
body.nt-mobile-ui.simple-mode.simple-panel-empty .main-area{
  position:relative !important;display:block !important;width:100% !important;height:100% !important;
  min-width:0 !important;min-height:0 !important;overflow:hidden !important;
}
body.nt-mobile-ui .canvas-area,
body.nt-mobile-ui.simple-mode .canvas-area,
body.nt-mobile-ui.simple-mode.simple-panel-empty .canvas-area{
  position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;
  display:grid !important;grid-template-rows:minmax(0,1fr) !important;min-width:0 !important;min-height:0 !important;
  background:#0d0d11 !important;
}
body.nt-mobile-ui .canvas-shell{
  width:100% !important;height:100% !important;min-height:0 !important;padding:7px !important;overflow:hidden !important;
  display:grid !important;place-items:center !important;
}
body.nt-mobile-ui .workstage,
body.nt-mobile-ui .stage-wrap{width:100% !important;height:100% !important;min-height:0 !important;display:grid !important;place-items:center !important;overflow:hidden !important;}
body.nt-mobile-ui .print-stage{max-width:100% !important;max-height:100% !important;border-radius:14px !important;}

/* Top mobile */
body.nt-mobile-ui .nt-mobile-topbar{
  position:fixed;z-index:900;left:0;right:0;top:var(--nt-mobile-vtop,0px);height:calc(52px + env(safe-area-inset-top,0px));padding:calc(6px + env(safe-area-inset-top,0px)) 7px 6px;
  display:flex !important;align-items:center;justify-content:space-between;gap:8px;
  background:rgba(10,10,13,.985);border-bottom:1px solid rgba(212,175,55,.18);box-shadow:0 5px 18px rgba(0,0,0,.25);
  box-sizing:border-box;
}
.nt-mobile-top-left{display:flex;align-items:center;gap:5px;min-width:0}.nt-mobile-home-btn{flex:0 0 auto;color:#f3da84}
.nt-mobile-face-switch{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:2px;background:#17171c;border:1px solid rgba(255,255,255,.08);border-radius:11px;}
.nt-mobile-face{min-width:70px;height:34px;padding:0 11px;border:0;border-radius:8px;background:transparent;color:#aaa;font:800 12px/1 Inter,system-ui,sans-serif;}
.nt-mobile-face.is-active{background:rgba(212,175,55,.15);color:#f3da84;box-shadow:inset 0 0 0 1px rgba(212,175,55,.32);}
.nt-mobile-top-actions{display:flex;align-items:center;gap:5px;}
.nt-mobile-icon-btn{width:36px;height:36px;border:1px solid rgba(255,255,255,.10);border-radius:10px;background:#17171c;color:#eee;font-size:17px;font-weight:900;display:grid;place-items:center;padding:0;}
.nt-mobile-icon-btn:disabled{opacity:.32;}
.nt-mobile-save-btn{border-color:rgba(212,175,55,.32);color:#f3da84;}

/* Navigation basse : six fonctions essentielles. */
body.nt-mobile-ui .nt-mobile-bottom-nav{
  position:fixed;z-index:900;left:0;right:0;bottom:var(--nt-mobile-vbottom,0px);height:calc(68px + env(safe-area-inset-bottom,0px));
  display:grid !important;grid-template-columns:repeat(6,minmax(0,1fr));align-items:start;
  padding:5px 4px env(safe-area-inset-bottom,0px);gap:2px;
  background:rgba(10,10,13,.99);border-top:1px solid rgba(212,175,55,.18);box-shadow:0 -8px 24px rgba(0,0,0,.28);
}
.nt-mobile-nav-btn{height:58px;min-width:0;border:0;border-radius:11px;background:transparent;color:#b9b9bd;display:grid;grid-template-rows:27px auto;place-items:center;padding:3px 2px 2px;font:800 9.5px/1.05 Inter,system-ui,sans-serif;text-align:center;}
.nt-mobile-nav-btn.is-active{background:rgba(212,175,55,.08);color:#f1d77e;}
.nt-mobile-nav-icon{display:grid;place-items:center;width:28px;height:27px;font-size:20px;line-height:1;color:inherit;}
.nt-mobile-order-btn{color:#f3da84;}
.nt-mobile-order-btn .nt-mobile-nav-icon{width:32px;border-radius:9px;background:linear-gradient(135deg,#f2d87a,#b78d25);color:#111;font-size:16px;}

/* Panneau gauche historique réutilisé comme bottom-sheet contextuelle. */
body.nt-mobile-ui .panel-column{display:none !important;}
body.nt-mobile-ui.nt-mobile-panel-open .panel-column{
  display:block !important;position:fixed !important;z-index:820 !important;
  left:7px !important;right:7px !important;bottom:calc(var(--nt-mobile-vbottom,0px) + 70px + env(safe-area-inset-bottom,0px)) !important;
  top:auto !important;width:auto !important;height:min(48dvh,430px) !important;max-height:min(48dvh,430px) !important;
  border:1px solid rgba(212,175,55,.20) !important;border-radius:18px 18px 12px 12px !important;
  background:rgba(14,14,17,.985) !important;box-shadow:0 -12px 40px rgba(0,0,0,.45) !important;overflow:hidden !important;
}
body.nt-mobile-ui .panel-wrap{height:100% !important;}
body.nt-mobile-ui .panel-head{min-height:42px !important;padding:10px 48px 7px 12px !important;}
body.nt-mobile-ui .panel-title{font-size:14px !important;}
body.nt-mobile-ui .panel-body{height:100% !important;max-height:none !important;padding:8px 10px 64px !important;overflow:auto !important;-webkit-overflow-scrolling:touch;}
.nt-mobile-panel-close{display:none;}
body.nt-mobile-ui .nt-mobile-panel-close{display:grid;place-items:center;position:absolute;z-index:9;right:9px;top:7px;width:32px;height:32px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#1b1b20;color:#fff;font-size:22px;line-height:1;}

/* Mobile = fonctionnel mais volontairement réduit. */
body.nt-mobile-ui #panel-text #ntTextAdvancedSection,
body.nt-mobile-ui #panel-text .nt-text-content-actions,
body.nt-mobile-ui #panel-text .mode-simple-only #addVerticalTextBtn,
body.nt-mobile-ui .nt-image-panel-switcher{display:none !important;}
body.nt-mobile-ui #panel-text .font-grid{max-height:180px !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
body.nt-mobile-ui .nt-svg-shape-inline-grid{max-height:280px !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:7px !important;}
body.nt-mobile-ui .nt-svg-shape-inline-card{min-height:92px !important;padding:6px !important;}
body.nt-mobile-ui .nt-svg-shape-inline-card .nt-template-modal-img{height:48px !important;margin-bottom:5px !important;}
body.nt-mobile-ui .nt-svg-shape-panel-tools{display:grid !important;grid-template-columns:1fr 120px;gap:6px !important;}

/* Forme photo : réglages tactiles dédiés, très compacts. */
body.nt-mobile-ui .nt-mobile-photo-shape-sheet{
  position:fixed;z-index:880;left:7px;right:7px;bottom:calc(var(--nt-mobile-vbottom,0px) + 70px + env(safe-area-inset-bottom,0px));
  display:grid !important;gap:9px;padding:7px 11px 12px;border:1px solid rgba(212,175,55,.25);border-radius:18px 18px 12px 12px;
  background:rgba(14,14,17,.992);box-shadow:0 -14px 42px rgba(0,0,0,.48);
  max-height:calc(var(--nt-mobile-vh,100dvh) - 132px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
}
body.nt-mobile-ui .nt-mobile-photo-shape-sheet[hidden]{display:none !important;}
.nt-mobile-sheet-handle{width:44px;height:4px;margin:0 auto 1px;border-radius:99px;background:rgba(255,255,255,.18);}
.nt-mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.nt-mobile-sheet-head>div{display:grid;gap:2px;}.nt-mobile-sheet-head strong{font-size:14px;color:#f2d77b;}.nt-mobile-sheet-head small{font-size:10px;color:#8f8f96;}
.nt-mobile-sheet-close{width:32px;height:32px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:#1b1b20;color:#fff;font-size:21px;}
.nt-mobile-photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.nt-mobile-photo-range{display:grid;grid-template-columns:48px minmax(0,1fr) 46px;align-items:center;gap:7px;min-height:34px;padding:3px 7px;border-radius:9px;background:rgba(255,255,255,.035);}
.nt-mobile-photo-range span{font-size:10.5px;font-weight:800;color:#d7d7da;}.nt-mobile-photo-range input{width:100%;accent-color:#d4af37;}.nt-mobile-photo-range output{text-align:right;font:800 10px/1 Inter,system-ui;color:#f2d77b;}
.nt-mobile-photo-remove{min-height:32px;border:1px solid rgba(255,105,105,.25);border-radius:9px;background:rgba(255,70,70,.07);color:#ffb0b0;font:800 10.5px/1 Inter,system-ui;}

@media (max-width:420px){
  body.nt-mobile-ui .workspace{top:calc(50px + env(safe-area-inset-top,0px)) !important;}
  .nt-mobile-face{min-width:60px;padding:0 8px;font-size:11px;}
  .nt-mobile-icon-btn{width:34px;height:34px;}
  .nt-mobile-nav-btn{font-size:9px;}
  body.nt-mobile-ui .nt-svg-shape-inline-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}


/* =========================================================
   v1.4.5.262.285 — ergonomie mobile iPhone / tablette
   ========================================================= */
.nt-mobile-delete-btn{color:#ffabab;border-color:rgba(255,95,95,.22)}
.nt-mobile-delete-btn:disabled{color:#777;border-color:rgba(255,255,255,.08)}

/* La sélection d'un objet ne doit jamais réserver de place à un panneau.
   Les panneaux historiques ne servent que lorsqu'une action mobile les ouvre
   explicitement (Formes, Police, MyDesign). */
body.nt-mobile-ui:not(.nt-mobile-panel-open) .panel-column{display:none!important;pointer-events:none!important;}

/* Sélecteur de police volontairement minimal : le bouton Police du panneau
   Texte est le seul chemin qui ouvre la bibliothèque complète. */
body.nt-mobile-ui.nt-mobile-font-picker #panel-text .section{display:none!important;}
body.nt-mobile-ui.nt-mobile-font-picker #panel-text .nt-mobile-font-section{display:block!important;margin:0!important;padding:4px 0!important;}
body.nt-mobile-ui.nt-mobile-font-picker #panel-text .font-filters{display:grid!important;gap:7px!important;}
body.nt-mobile-ui.nt-mobile-font-picker #panel-text .font-grid{max-height:calc(48dvh - 145px)!important;}

/* Panneau texte mobile compact. Il ne s'ouvre QUE via le bouton Texte,
   jamais lors d'un simple toucher sur l'objet. */
body.nt-mobile-ui .nt-mobile-text-sheet{
  position:fixed;z-index:880;left:7px;right:7px;bottom:calc(var(--nt-mobile-vbottom,0px) + 70px + env(safe-area-inset-bottom,0px));
  display:grid!important;gap:8px;padding:7px 11px 11px;border:1px solid rgba(212,175,55,.25);border-radius:18px 18px 12px 12px;
  background:rgba(14,14,17,.992);box-shadow:0 -14px 42px rgba(0,0,0,.48);
  max-height:calc(var(--nt-mobile-vh,100dvh) - 132px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
}
body.nt-mobile-ui .nt-mobile-text-sheet[hidden]{display:none!important;}
.nt-mobile-text-input{width:100%;min-height:50px;max-height:92px;resize:none;box-sizing:border-box;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#111116;color:#f2f2f4;padding:9px 10px;font:700 14px/1.3 Inter,system-ui,sans-serif;outline:none;}
.nt-mobile-text-input:focus{border-color:rgba(212,175,55,.52);box-shadow:0 0 0 2px rgba(212,175,55,.08);}
.nt-mobile-text-input:disabled{opacity:.55;}
.nt-mobile-text-colors{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.nt-mobile-text-colors label{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 8px;border-radius:9px;background:rgba(255,255,255,.035);font:800 10.5px/1 Inter,system-ui;color:#d7d7da;}
.nt-mobile-text-colors input[type=color]{width:42px;height:30px;padding:0;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:transparent;}
.nt-mobile-text-range{display:grid;grid-template-columns:55px minmax(0,1fr) 38px;align-items:center;gap:7px;min-height:36px;padding:3px 7px;border-radius:9px;background:rgba(255,255,255,.035);}
.nt-mobile-text-range span{font-size:10.5px;font-weight:800;color:#d7d7da;}
.nt-mobile-text-range input{width:100%;accent-color:#d4af37;}
.nt-mobile-text-range output{text-align:right;font:800 10px/1 Inter,system-ui;color:#f2d77b;}
.nt-mobile-text-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.nt-mobile-text-actions .btn{min-height:34px;}

/* Contrôles Fabric : la zone tactile est gérée par mobile-ui.js (50 px).
   On garde visuellement des poignées suffisamment lisibles sans masquer le design. */
body.nt-mobile-ui .canvas-container{touch-action:none!important;}

@media (max-width:370px){
  .nt-mobile-face{min-width:51px!important;padding:0 6px!important;font-size:10.5px!important;}
  .nt-mobile-top-actions{gap:3px!important;}
  .nt-mobile-icon-btn{width:31px!important;height:34px!important;font-size:15px!important;}
  body.nt-mobile-ui .nt-mobile-topbar{padding-left:5px!important;padding-right:5px!important;}
}


/* =========================================================
   v1.4.5.262.285 — panneaux mobiles essentiels
   ========================================================= */
body.nt-mobile-ui .nt-mobile-image-sheet{
  position:fixed;z-index:880;left:7px;right:7px;
  bottom:calc(var(--nt-mobile-vbottom,0px) + 70px + env(safe-area-inset-bottom,0px));
  display:grid!important;gap:8px;padding:7px 10px 10px;
  border:1px solid rgba(212,175,55,.25);border-radius:18px 18px 12px 12px;
  background:rgba(14,14,17,.992);box-shadow:0 -14px 42px rgba(0,0,0,.48);
  max-height:calc(var(--nt-mobile-vh,100dvh) - 132px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
}
body.nt-mobile-ui .nt-mobile-image-sheet[hidden]{display:none!important}
.nt-mobile-image-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.nt-mobile-quick-effects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.nt-mobile-quick-effects button{
  min-height:34px;padding:5px 4px;border:1px solid rgba(255,255,255,.09);border-radius:9px;
  background:#18181d;color:#c9c9ce;font:800 9px/1.05 Inter,system-ui,sans-serif;text-align:center;
}
.nt-mobile-quick-effects button.is-active{border-color:rgba(212,175,55,.58);background:rgba(212,175,55,.13);color:#f3da84}
.nt-mobile-text-empty{display:grid;gap:7px;text-align:center}
.nt-mobile-text-empty small{color:#929299;font:600 10px/1.25 Inter,system-ui,sans-serif}
.nt-mobile-text-controls{display:grid;gap:7px}
.nt-mobile-text-controls[hidden]{display:none!important}
.nt-mobile-arc-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.nt-mobile-arc-modes button{min-height:34px;border:1px solid rgba(255,255,255,.09);border-radius:9px;background:#18181d;color:#c9c9ce;font:800 10px/1 Inter,system-ui,sans-serif}
.nt-mobile-arc-modes button.is-active{border-color:rgba(212,175,55,.55);background:rgba(212,175,55,.13);color:#f3da84}
.nt-mobile-arc-ranges{display:grid;gap:5px}
.nt-mobile-arc-ranges[hidden]{display:none!important}
body.nt-mobile-ui .nt-mobile-nav-btn{touch-action:manipulation}
body.nt-mobile-ui .nt-mobile-sheet-close,body.nt-mobile-ui .nt-mobile-icon-btn{touch-action:manipulation}

/* iPhone 11 / petits écrans : tout reste visible et compact. */
@media (max-width:430px){
  .nt-mobile-face{min-width:54px!important;padding:0 6px!important;font-size:10.5px!important}
  .nt-mobile-icon-btn{width:32px!important;height:34px!important;font-size:15px!important}
  .nt-mobile-top-actions{gap:3px!important}
  .nt-mobile-top-left{gap:3px!important}
  .nt-mobile-nav-btn{font-size:8.4px!important;padding-left:1px!important;padding-right:1px!important}
  .nt-mobile-nav-icon{width:25px!important;font-size:18px!important}
  .nt-mobile-order-btn .nt-mobile-nav-icon{width:28px!important}
  .nt-mobile-quick-effects{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Quand le clavier iOS réduit le visualViewport, on densifie plutôt que de
   faire disparaître la barre basse. Le scroll éventuel reste confiné au
   petit panneau, jamais à la page Studio. */
@media (max-height:650px){
  body.nt-mobile-ui .nt-mobile-text-sheet,body.nt-mobile-ui .nt-mobile-image-sheet,body.nt-mobile-ui .nt-mobile-photo-shape-sheet{gap:5px;padding-top:5px;padding-bottom:7px}
  .nt-mobile-text-input{min-height:38px;max-height:48px;padding:6px 8px;font-size:13px}
  .nt-mobile-text-colors label{min-height:34px;padding:3px 6px}
  .nt-mobile-text-colors input[type=color]{height:25px;width:36px}
  .nt-mobile-text-range,.nt-mobile-photo-range{min-height:30px}
  .nt-mobile-arc-modes button,.nt-mobile-quick-effects button{min-height:30px}
  .nt-mobile-sheet-head small{display:none}
}


/* =========================================================
   v1.4.5.262.285 — iPhone 11 : viewport réellement contenu
   ---------------------------------------------------------
   - aucune navigation horizontale ;
   - barre haute intégralement visible (Accueil compris) ;
   - 6 actions en grille 3 x 2 ;
   - le Canvas n'utilise que l'espace restant.
   ========================================================= */
body.nt-mobile-ui{
  --nt-mobile-top-h:50px;
  --nt-mobile-bottom-h:112px;
}
body.nt-mobile-ui .nt-mobile-topbar{
  height:calc(var(--nt-mobile-top-h) + env(safe-area-inset-top,0px))!important;
  padding:calc(5px + env(safe-area-inset-top,0px)) 5px 5px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:4px!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
body.nt-mobile-ui .nt-mobile-top-left{
  min-width:0!important;width:100%!important;display:flex!important;align-items:center!important;gap:3px!important;overflow:hidden!important;
}
body.nt-mobile-ui .nt-mobile-home-btn{
  width:29px!important;height:34px!important;min-width:29px!important;flex:0 0 29px!important;font-size:17px!important;
}
body.nt-mobile-ui .nt-mobile-face-switch{
  flex:0 1 104px!important;min-width:92px!important;max-width:104px!important;width:auto!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
body.nt-mobile-ui .nt-mobile-face{
  min-width:0!important;width:100%!important;height:32px!important;padding:0 4px!important;font-size:10px!important;
}
body.nt-mobile-ui .nt-mobile-top-actions{
  display:grid!important;grid-template-columns:repeat(4,29px)!important;gap:2px!important;min-width:122px!important;max-width:122px!important;
}
body.nt-mobile-ui .nt-mobile-icon-btn{
  width:29px!important;height:34px!important;min-width:29px!important;font-size:14px!important;border-radius:9px!important;
}

body.nt-mobile-ui .nt-mobile-bottom-nav{
  height:calc(var(--nt-mobile-bottom-h) + env(safe-area-inset-bottom,0px))!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-template-rows:repeat(2,50px)!important;
  align-content:start!important;
  align-items:stretch!important;
  gap:3px 4px!important;
  padding:5px 5px calc(5px + env(safe-area-inset-bottom,0px))!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
body.nt-mobile-ui .nt-mobile-nav-btn{
  width:100%!important;min-width:0!important;height:50px!important;
  grid-template-rows:24px auto!important;
  padding:2px 3px!important;font-size:9.5px!important;line-height:1!important;border-radius:9px!important;
}
body.nt-mobile-ui .nt-mobile-nav-icon{height:23px!important;width:27px!important;font-size:18px!important;}
body.nt-mobile-ui .nt-mobile-order-btn .nt-mobile-nav-icon{height:24px!important;width:30px!important;font-size:15px!important;}

body.nt-mobile-ui .workspace{
  inset:calc(var(--nt-mobile-top-h) + env(safe-area-inset-top,0px)) 0 calc(var(--nt-mobile-bottom-h) + env(safe-area-inset-bottom,0px)) 0!important;
  top:auto!important;bottom:auto!important;
  position:fixed!important;
  left:0!important;right:0!important;
  height:calc(var(--nt-mobile-vh,100dvh) - var(--nt-mobile-top-h) - var(--nt-mobile-bottom-h) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
  transform:translateY(calc(var(--nt-mobile-top-h) + env(safe-area-inset-top,0px)))!important;
  min-height:0!important;max-height:none!important;
}
body.nt-mobile-ui .canvas-shell{
  box-sizing:border-box!important;padding:8px!important;
}
body.nt-mobile-ui .workstage,
body.nt-mobile-ui .stage-wrap{
  width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;
  overflow:hidden!important;box-sizing:border-box!important;
}
body.nt-mobile-ui .print-stage{
  max-width:calc(100% - 2px)!important;
  max-height:calc(100% - 2px)!important;
  margin:auto!important;
}

/* Les sheets restent au-dessus des deux rangées mais n'affectent jamais le layout. */
body.nt-mobile-ui .nt-mobile-text-sheet,
body.nt-mobile-ui .nt-mobile-image-sheet,
body.nt-mobile-ui .nt-mobile-photo-shape-sheet,
body.nt-mobile-ui.nt-mobile-panel-open .panel-column{
  bottom:calc(var(--nt-mobile-vbottom,0px) + var(--nt-mobile-bottom-h) + 5px + env(safe-area-inset-bottom,0px))!important;
  max-height:calc(var(--nt-mobile-vh,100dvh) - var(--nt-mobile-top-h) - var(--nt-mobile-bottom-h) - 18px)!important;
}

@media (max-width:430px){
  body.nt-mobile-ui{--nt-mobile-top-h:48px;--nt-mobile-bottom-h:108px;}
  body.nt-mobile-ui .nt-mobile-top-actions{grid-template-columns:repeat(4,28px)!important;min-width:118px!important;max-width:118px!important;}
  body.nt-mobile-ui .nt-mobile-icon-btn{width:28px!important;min-width:28px!important;height:32px!important;}
  body.nt-mobile-ui .nt-mobile-home-btn{width:28px!important;min-width:28px!important;flex-basis:28px!important;height:32px!important;}
  body.nt-mobile-ui .nt-mobile-face-switch{min-width:88px!important;max-width:98px!important;}
  body.nt-mobile-ui .nt-mobile-face{height:30px!important;font-size:9.7px!important;}
  body.nt-mobile-ui .nt-mobile-bottom-nav{grid-template-rows:repeat(2,47px)!important;}
  body.nt-mobile-ui .nt-mobile-nav-btn{height:47px!important;font-size:9px!important;}
}


/* =========================================================
   v1.4.5.262.286 — iPhone : chrome fixe + panneaux compacts
   ---------------------------------------------------------
   - la barre haute ne quitte jamais le visualViewport ;
   - le panneau Texte ne peut plus recouvrir presque tout l'écran ;
   - les éléments masqués avec [hidden] le restent réellement ;
   - le Canvas se réadapte à chaque ouverture/fermeture de panneau.
   ========================================================= */
body.nt-mobile-ui{
  --nt-mobile-sheet-max:330px;
}

/* Safari iOS : le JS renseigne aussi top/bottom directement lors du pan
   du visualViewport. Ces règles empêchent tout héritage/transform parasite. */
body.nt-mobile-ui .nt-mobile-topbar{
  position:fixed!important;
  z-index:1005!important;
  transform:none!important;
}
body.nt-mobile-ui .nt-mobile-bottom-nav{
  position:fixed!important;
  z-index:1005!important;
}

/* Le bouton "Ajouter un texte" n'apparaît jamais lorsqu'un texte est reconnu. */
body.nt-mobile-ui .nt-mobile-text-empty[hidden]{
  display:none!important;
}
body.nt-mobile-ui .nt-mobile-text-controls[hidden]{
  display:none!important;
}

/* Panneaux : overlay compact, scroll seulement A L'INTERIEUR si nécessaire.
   Aucun panneau ne modifie le scroll de la page. */
body.nt-mobile-ui .nt-mobile-text-sheet,
body.nt-mobile-ui .nt-mobile-image-sheet,
body.nt-mobile-ui .nt-mobile-photo-shape-sheet{
  position:fixed!important;
  z-index:995!important;
  max-height:min(var(--nt-mobile-sheet-max),42vh)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  box-sizing:border-box!important;
}

/* Texte plus dense : tout le réglage principal tient autour de 300–330 px. */
body.nt-mobile-ui .nt-mobile-text-sheet{
  gap:5px!important;
  padding:5px 8px 7px!important;
}
body.nt-mobile-ui .nt-mobile-text-sheet .nt-mobile-sheet-handle{
  height:3px!important;
  margin:0 auto 1px!important;
}
body.nt-mobile-ui .nt-mobile-text-sheet .nt-mobile-sheet-head{
  min-height:32px!important;
}
body.nt-mobile-ui .nt-mobile-text-sheet .nt-mobile-sheet-head small{
  display:none!important;
}
body.nt-mobile-ui .nt-mobile-text-empty{
  gap:4px!important;
}
body.nt-mobile-ui .nt-mobile-text-empty .btn{
  min-height:35px!important;
}
body.nt-mobile-ui .nt-mobile-text-empty small{
  font-size:9px!important;
}
body.nt-mobile-ui .nt-mobile-text-controls{
  gap:5px!important;
}
body.nt-mobile-ui .nt-mobile-text-input{
  min-height:42px!important;
  max-height:54px!important;
  padding:7px 8px!important;
  font-size:13px!important;
}
body.nt-mobile-ui .nt-mobile-text-colors label{
  min-height:36px!important;
  padding:3px 7px!important;
}
body.nt-mobile-ui .nt-mobile-text-colors input[type=color]{
  height:27px!important;
  width:38px!important;
}
body.nt-mobile-ui .nt-mobile-text-range{
  min-height:31px!important;
  padding:2px 6px!important;
}
body.nt-mobile-ui .nt-mobile-arc-modes button{
  min-height:31px!important;
}
body.nt-mobile-ui .nt-mobile-text-actions .btn{
  min-height:31px!important;
}

/* Lorsqu'un panneau est ouvert on garde quand même une bande de Canvas visible,
   mais jamais au détriment de la barre haute/basse. */
body.nt-mobile-ui.nt-mobile-text-sheet-open .workspace,
body.nt-mobile-ui.nt-mobile-image-sheet-open .workspace,
body.nt-mobile-ui.nt-mobile-photo-sheet-open .workspace{
  z-index:1!important;
}

/* Petit écran / iPhone 11 en portrait avec barre Safari visible. */
@media (max-width:430px){
  body.nt-mobile-ui{
    --nt-mobile-sheet-max:315px;
  }
  body.nt-mobile-ui .nt-mobile-text-sheet,
  body.nt-mobile-ui .nt-mobile-image-sheet{
    max-height:min(315px,40vh)!important;
  }
}

/* v1.4.5.262.287 — commandes hautes + ruban contextuel */
body.nt-mobile-ui{--nt-mobile-quick-h:42px;--nt-mobile-context-h:0px;--nt-mobile-bottom-h:0px}
body.nt-mobile-ui.nt-mobile-context-open{--nt-mobile-context-h:36px}
body.nt-mobile-ui .nt-mobile-bottom-nav{display:none!important}
body.nt-mobile-ui .nt-mobile-quickbar{position:fixed;z-index:1004;left:0;right:0;top:calc(var(--nt-mobile-vtop,0px) + var(--nt-mobile-top-h) + env(safe-area-inset-top,0px));height:42px;display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;padding:4px;background:#0b0b0e;border-bottom:1px solid rgba(212,175,55,.18);box-sizing:border-box}
body.nt-mobile-ui .nt-mobile-quickbar[hidden]{display:none!important}
body.nt-mobile-ui .nt-mobile-quickbar button{min-width:0;border:0;border-radius:7px;background:#18181d;color:#d0d0d4;font:800 8px/1 Inter,system-ui;padding:0 1px;white-space:nowrap}
body.nt-mobile-ui .nt-mobile-quickbar .is-order{background:linear-gradient(135deg,#f2d87a,#b78d25);color:#111;font-size:15px}
body.nt-mobile-ui .nt-mobile-contextbar{position:fixed;z-index:1003;left:0;right:0;top:calc(var(--nt-mobile-vtop,0px) + var(--nt-mobile-top-h) + 42px + env(safe-area-inset-top,0px));height:36px;padding:3px 4px;background:#0e0e12;border-bottom:1px solid rgba(212,175,55,.14);box-sizing:border-box}
body.nt-mobile-ui .nt-mobile-contextbar[hidden],body.nt-mobile-ui .nt-mobile-contextbar [hidden]{display:none!important}
body.nt-mobile-ui .nt-mobile-contextbar>div{height:30px;display:grid;gap:3px}
body.nt-mobile-ui [data-mobile-context="text"]{grid-template-columns:repeat(6,minmax(0,1fr))}
body.nt-mobile-ui [data-mobile-context="image"]{grid-template-columns:repeat(3,minmax(0,1fr))}
body.nt-mobile-ui [data-mobile-context="photo-shape"]{grid-template-columns:repeat(4,minmax(0,1fr))}
body.nt-mobile-ui .nt-mobile-contextbar button{min-width:0;border:1px solid rgba(255,255,255,.08);border-radius:7px;background:#19191e;color:#ddd;font:800 8px/1 Inter,system-ui;padding:0 2px}
body.nt-mobile-ui .workspace{inset:calc(var(--nt-mobile-top-h) + 42px + var(--nt-mobile-context-h) + env(safe-area-inset-top,0px)) 0 env(safe-area-inset-bottom,0px) 0!important}
body.nt-mobile-ui .nt-mobile-text-sheet,body.nt-mobile-ui .nt-mobile-image-sheet,body.nt-mobile-ui .nt-mobile-photo-shape-sheet{bottom:calc(var(--nt-mobile-vbottom,0px) + 7px)!important;max-height:145px!important;left:7px!important;right:7px!important;padding:6px 8px!important;gap:4px!important}
body.nt-mobile-ui .nt-mobile-text-sheet .nt-mobile-sheet-head,body.nt-mobile-ui .nt-mobile-image-sheet .nt-mobile-sheet-head,body.nt-mobile-ui .nt-mobile-photo-shape-sheet .nt-mobile-sheet-head{display:none!important}
body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-compact-mode="color"] .nt-mobile-text-input,body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-compact-mode="color"] .nt-mobile-text-range,body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-compact-mode="color"] .nt-mobile-arc-modes,body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-compact-mode="color"] .nt-mobile-arc-ranges,body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-compact-mode="color"] .nt-mobile-text-actions{display:none!important}
body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-compact-mode="color"] .nt-mobile-text-colors label:nth-child(2){display:none!important}
body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-compact-mode="outline"] .nt-mobile-text-input,body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-compact-mode="outline"] .nt-mobile-arc-modes,body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-compact-mode="outline"] .nt-mobile-arc-ranges,body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-compact-mode="outline"] .nt-mobile-text-actions{display:none!important}
body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-compact-mode="outline"] .nt-mobile-text-colors label:first-child{display:none!important}
body.nt-mobile-ui .nt-mobile-image-sheet[data-mobile-compact-mode="adjust"] .nt-mobile-quick-effects{display:none!important}
body.nt-mobile-ui .nt-mobile-image-sheet[data-mobile-compact-mode="effects"] .nt-mobile-image-actions,body.nt-mobile-ui .nt-mobile-image-sheet[data-mobile-compact-mode="effects"] .nt-mobile-text-range{display:none!important}
body.nt-mobile-ui .nt-mobile-quick-effects{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:3px!important}
body.nt-mobile-ui .nt-mobile-quick-effects button{min-height:28px!important;font-size:7px!important;padding:2px!important}


/* =========================================================
   v1.4.5.262.288 — TEST ciblé : Canvas mobile contenu
   ---------------------------------------------------------
   Objectif :
   - ne PAS refaire la navigation ;
   - réduire volontairement l'affichage du document ;
   - conserver le ratio réel ;
   - centrer le Canvas ;
   - laisser de l'air autour pour les contrôles.
   ========================================================= */

body.nt-mobile-ui{
  --nt-mobile-canvas-max-w:92vw;
  --nt-mobile-canvas-max-h:58vh;
  --nt-mobile-canvas-pad:14px;
}

/* La zone de travail reste plein écran, mais le document affiché
   n'utilise plus automatiquement toute la hauteur disponible. */
body.nt-mobile-ui .canvas-shell{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:var(--nt-mobile-canvas-pad)!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}

/* Les wrappers Fabric peuvent rester grands ; le stage visible est borné. */
body.nt-mobile-ui .workstage,
body.nt-mobile-ui .stage-wrap{
  width:100%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}

/* Limitation volontaire de la "feuille" visible.
   Le vrai document / JSON n'est pas redimensionné : seulement son affichage. */
body.nt-mobile-ui .print-stage{
  width:auto!important;
  height:auto!important;
  max-width:min(var(--nt-mobile-canvas-max-w), calc(100% - 8px))!important;
  max-height:min(var(--nt-mobile-canvas-max-h), calc(100% - 8px))!important;
  margin:auto!important;
  transform-origin:center center!important;
}

/* Fabric injecte généralement ses propres dimensions inline.
   On contraint aussi ses wrappers de rendu à rester contenus. */
body.nt-mobile-ui .print-stage .canvas-container,
body.nt-mobile-ui .print-stage canvas{
  max-width:100%!important;
  max-height:100%!important;
}

/* iPhone 11 portrait : encore un peu plus contenu pour libérer l'UI. */
@media (max-width:430px) and (orientation:portrait){
  body.nt-mobile-ui{
    --nt-mobile-canvas-max-w:90vw;
    --nt-mobile-canvas-max-h:55vh;
    --nt-mobile-canvas-pad:12px;
  }
}

/* Paysage / tablette : on autorise davantage de surface. */
@media (orientation:landscape){
  body.nt-mobile-ui{
    --nt-mobile-canvas-max-w:72vw;
    --nt-mobile-canvas-max-h:70vh;
  }
}
@media (min-width:768px){
  body.nt-mobile-ui{
    --nt-mobile-canvas-max-w:78vw;
    --nt-mobile-canvas-max-h:68vh;
  }
}


/* =========================================================
   v1.4.5.262.289 — TEST : vrai conteneur + rail latéral
   ========================================================= */
body.nt-mobile-ui{--nt-mobile-rail-w:58px;--nt-mobile-bottom-h:0px;--nt-mobile-quick-h:0px;--nt-mobile-context-h:0px;--nt-mobile-canvas-max-w:100%;--nt-mobile-canvas-max-h:100%}
body.nt-mobile-ui .nt-mobile-quickbar,body.nt-mobile-ui .nt-mobile-bottom-nav{display:none!important}
body.nt-mobile-ui .nt-mobile-siderail{position:fixed;z-index:1004;left:0;width:var(--nt-mobile-rail-w);display:grid!important;grid-template-rows:repeat(6,minmax(48px,1fr));gap:3px;padding:5px 4px calc(5px + env(safe-area-inset-bottom,0px));box-sizing:border-box;overflow:hidden;background:rgba(10,10,13,.994);border-right:1px solid rgba(212,175,55,.18);box-shadow:5px 0 18px rgba(0,0,0,.22)}
body.nt-mobile-ui .nt-mobile-siderail[hidden]{display:none!important}
body.nt-mobile-ui .nt-mobile-siderail button{min-width:0;min-height:48px;border:1px solid rgba(255,255,255,.07);border-radius:9px;background:#17171c;color:#c9c9ce;display:grid;grid-template-rows:24px auto;place-items:center;padding:3px 1px;font:800 7px/1 Inter,system-ui,sans-serif}
body.nt-mobile-ui .nt-mobile-siderail button span{font-size:18px;line-height:1}
body.nt-mobile-ui .nt-mobile-siderail button small{max-width:100%;overflow:hidden;font:800 6.8px/1 Inter,system-ui,sans-serif}
body.nt-mobile-ui .nt-mobile-siderail button.is-order{color:#111;background:linear-gradient(135deg,#f2d87a,#b78d25)}
body.nt-mobile-ui .workspace{position:fixed!important;top:calc(var(--nt-mobile-vtop,0px) + var(--nt-mobile-top-h) + env(safe-area-inset-top,0px))!important;left:var(--nt-mobile-rail-w)!important;right:0!important;bottom:var(--nt-mobile-vbottom,0px)!important;width:auto!important;height:auto!important;transform:none!important;overflow:hidden!important}
body.nt-mobile-ui .main-area,body.nt-mobile-ui .canvas-area,body.nt-mobile-ui .canvas-shell,body.nt-mobile-ui .workstage,body.nt-mobile-ui .stage-wrap{width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:100%!important;max-height:100%!important;overflow:hidden!important;box-sizing:border-box!important}
body.nt-mobile-ui .canvas-shell{display:grid!important;place-items:center!important;padding:10px!important}
body.nt-mobile-ui .print-stage{width:auto!important;height:auto!important;max-width:calc(100% - 4px)!important;max-height:calc(100% - 4px)!important;margin:auto!important}
body.nt-mobile-ui .nt-mobile-contextbar{position:fixed!important;z-index:1003!important;left:calc(var(--nt-mobile-rail-w) + 6px)!important;right:7px!important;top:calc(var(--nt-mobile-vtop,0px) + var(--nt-mobile-top-h) + 7px + env(safe-area-inset-top,0px))!important;width:auto!important;height:auto!important;min-height:38px!important;padding:4px!important;border:1px solid rgba(212,175,55,.18)!important;border-radius:11px!important;background:rgba(14,14,17,.985)!important;box-shadow:0 10px 28px rgba(0,0,0,.35)!important}
body.nt-mobile-ui .nt-mobile-contextbar>div{height:31px!important}
body.nt-mobile-ui .nt-mobile-text-sheet,body.nt-mobile-ui .nt-mobile-image-sheet,body.nt-mobile-ui .nt-mobile-photo-shape-sheet{left:calc(var(--nt-mobile-rail-w) + 7px)!important;right:7px!important;bottom:calc(var(--nt-mobile-vbottom,0px) + 7px)!important;width:auto!important;max-height:150px!important}
@media (max-width:390px){body.nt-mobile-ui{--nt-mobile-rail-w:54px}}
@media (min-width:768px){body.nt-mobile-ui{--nt-mobile-rail-w:72px}body.nt-mobile-ui .nt-mobile-siderail button span{font-size:21px}body.nt-mobile-ui .nt-mobile-siderail button small{font-size:8px}}


/* =========================================================
   v1.4.5.262.290 — correction réelle du conteneur Canvas
   ========================================================= */

/* IMPORTANT : ne jamais remettre `inset:auto` ici.
   En v289 ce shorthand annulait top/left/right/bottom et faisait
   disparaître la zone Fabric hors de son rectangle. */
body.nt-mobile-ui .workspace{
  top:calc(var(--nt-mobile-vtop,0px) + var(--nt-mobile-top-h) + env(safe-area-inset-top,0px))!important;
  left:var(--nt-mobile-rail-w)!important;
  right:0!important;
  bottom:var(--nt-mobile-vbottom,0px)!important;
  width:auto!important;
  height:auto!important;
  transform:none!important;
}

/* Le shell est la seule référence de taille de fitCanvas. */
body.nt-mobile-ui .canvas-shell{
  position:absolute!important;
  inset:0!important;
  width:auto!important;
  height:auto!important;
  padding:10px!important;
  box-sizing:border-box!important;
}

/* Le contexte est fermé par défaut et n'est armé qu'après toucher réel du Canvas. */
body.nt-mobile-ui .nt-mobile-contextbar[hidden],
body.nt-mobile-ui .nt-mobile-contextbar [hidden]{
  display:none!important;
}


/* =========================================================
   v1.4.5.262.291 — Mobile : rail seul + panneau texte compact
   ========================================================= */

/* Le rail suffit : aucun ruban contextuel au-dessus du Canvas. */
body.nt-mobile-ui .nt-mobile-contextbar{
  display:none!important;
}
body.nt-mobile-ui,
body.nt-mobile-ui.nt-mobile-context-open{
  --nt-mobile-context-h:0px!important;
}

/* Canvas reprend immédiatement tout l'espace sous la barre haute. */
body.nt-mobile-ui .workspace{
  top:calc(var(--nt-mobile-vtop,0px) + var(--nt-mobile-top-h) + env(safe-area-inset-top,0px))!important;
}

/* Panneau texte : compact, directement exploitable avec le pouce.
   Pas de grande feuille qui couvre le design. */
body.nt-mobile-ui .nt-mobile-text-sheet{
  left:calc(var(--nt-mobile-rail-w) + 8px)!important;
  right:8px!important;
  bottom:calc(var(--nt-mobile-vbottom,0px) + 8px)!important;
  max-height:210px!important;
  padding:7px 9px!important;
  gap:5px!important;
  overflow-y:auto!important;
  border-radius:16px!important;
}
body.nt-mobile-ui .nt-mobile-text-sheet .nt-mobile-sheet-head,
body.nt-mobile-ui .nt-mobile-text-sheet .nt-mobile-sheet-handle{
  display:none!important;
}
body.nt-mobile-ui .nt-mobile-text-input{
  min-height:40px!important;
  max-height:48px!important;
}
body.nt-mobile-ui .nt-mobile-text-colors{
  grid-template-columns:1fr 1fr!important;
}
body.nt-mobile-ui .nt-mobile-text-range{
  min-height:31px!important;
}
body.nt-mobile-ui .nt-mobile-arc-modes{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
body.nt-mobile-ui .nt-mobile-arc-modes button,
body.nt-mobile-ui .nt-mobile-text-actions .btn{
  min-height:31px!important;
}

/* En mode arc, priorité aux deux curseurs réellement utiles.
   Le champ texte / couleurs / actions secondaires disparaissent pour
   éviter un panneau à rallonge ; Droit / Arc haut / Arc bas restent visibles. */
body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-text-view="arc"] .nt-mobile-text-input,
body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-text-view="arc"] .nt-mobile-text-colors,
body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-text-view="arc"] .nt-mobile-text-actions{
  display:none!important;
}
body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-text-view="arc"]{
  max-height:175px!important;
}


/* =========================================================
   v1.4.5.262.310 — Mobile universel : Canvas haut + sliders tactiles
   ========================================================= */

/* Le document n'est plus centré verticalement dans toute la grande zone.
   Il est ancré en haut : la place restante devient naturellement une zone
   de réglages en bas sans réduire la taille logique du document. */
body.nt-mobile-ui .canvas-shell{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  padding:10px 10px 220px!important;
  box-sizing:border-box!important;
}

/* Si aucun panneau n'est ouvert, légère respiration uniquement. */
body.nt-mobile-ui:not(.nt-mobile-text-sheet-open):not(.nt-mobile-image-sheet-open):not(.nt-mobile-photo-sheet-open) .canvas-shell{
  padding-bottom:18px!important;
}

/* Bouton actif du rail : feedback iOS + Android sans changer la structure. */
body.nt-mobile-ui .nt-mobile-siderail button.is-active{
  border-color:rgba(212,175,55,.58)!important;
  background:rgba(212,175,55,.10)!important;
  color:#f3da84!important;
}

/* Les trois actions texte tiennent sur une seule ligne. */
body.nt-mobile-ui .nt-mobile-text-actions{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:5px!important;
}

/* En arc on conserve +Texte / Police / Supprimer : ajouter un second texte
   reste disponible sans quitter le panneau. */
body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-text-view="arc"] .nt-mobile-text-actions{
  display:grid!important;
}

/* Cibles tactiles suffisamment grandes sur iOS ET Android.
   Le thumb visuel reste compact, mais le range occupe au moins 48px. */
body.nt-mobile-ui .nt-mobile-arc-ranges .nt-mobile-text-range{
  min-height:48px!important;
  touch-action:none!important;
}
body.nt-mobile-ui .nt-mobile-arc-ranges input[type="range"]{
  min-height:48px!important;
  height:48px!important;
  touch-action:none!important;
  -webkit-user-select:none!important;
  user-select:none!important;
}

/* Chrome/Android + Safari/iOS : thumb visible confortable. */
body.nt-mobile-ui .nt-mobile-arc-ranges input[type="range"]::-webkit-slider-thumb{
  width:30px!important;
  height:30px!important;
}
body.nt-mobile-ui .nt-mobile-arc-ranges input[type="range"]::-moz-range-thumb{
  width:30px!important;
  height:30px!important;
}

/* Le panneau peut profiter de l'espace laissé en bas sans dépasser l'écran. */
body.nt-mobile-ui .nt-mobile-text-sheet{
  max-height:220px!important;
}
body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-text-view="arc"]{
  max-height:215px!important;
}


/* =========================================================
   v1.4.5.262.310 — Police mobile compacte + arc persistant
   ========================================================= */

/* La bibliothèque de polices devient un petit tiroir bas (~34 % écran).
   On garde le Canvas et le texte visibles au-dessus. */
body.nt-mobile-ui.nt-mobile-font-picker.nt-mobile-panel-open .panel-column{
  height:min(34dvh,300px)!important;
  max-height:min(34dvh,300px)!important;
  min-height:190px!important;
  left:calc(var(--nt-mobile-rail-w,0px) + 7px)!important;
  right:7px!important;
  bottom:calc(var(--nt-mobile-vbottom,0px) + 7px)!important;
  border-radius:15px 15px 10px 10px!important;
}
body.nt-mobile-ui.nt-mobile-font-picker .panel-head{
  display:none!important;
}
body.nt-mobile-ui.nt-mobile-font-picker .nt-mobile-panel-close{
  display:grid!important;
  top:6px!important;
  right:8px!important;
  width:30px!important;
  height:30px!important;
  z-index:20!important;
}
body.nt-mobile-ui.nt-mobile-font-picker #panel-text .panel-body{
  padding:6px 8px 8px!important;
  overflow:hidden!important;
  height:100%!important;
}
body.nt-mobile-ui.nt-mobile-font-picker #panel-text .nt-mobile-font-section{
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  height:100%!important;
  padding:0!important;
}
body.nt-mobile-ui.nt-mobile-font-picker #panel-text .nt-mobile-font-section>h3{
  margin:1px 38px 5px 2px!important;
  font-size:12px!important;
  line-height:28px!important;
}
body.nt-mobile-ui.nt-mobile-font-picker #panel-text .font-filters{
  display:grid!important;
  grid-template-rows:32px 32px minmax(0,1fr)!important;
  gap:5px!important;
  min-height:0!important;
  overflow:hidden!important;
}
body.nt-mobile-ui.nt-mobile-font-picker #fontSearchInput{
  height:32px!important;
  min-height:32px!important;
  padding:5px 8px!important;
  font-size:11px!important;
}
body.nt-mobile-ui.nt-mobile-font-picker #panel-text .font-filters>.row2{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:5px!important;
}
body.nt-mobile-ui.nt-mobile-font-picker #fontCategorySelect,
body.nt-mobile-ui.nt-mobile-font-picker #fontSubcategorySelect{
  height:32px!important;
  min-height:32px!important;
  padding:4px 24px 4px 7px!important;
  font-size:10.5px!important;
}

/* Le compteur desktop disparaît. Le favori devient un petit bouton flottant
   dans la ligne des filtres et ne consomme plus une rangée entière. */
body.nt-mobile-ui.nt-mobile-font-picker .nt-font-library-summary{
  position:absolute!important;
  top:72px!important;
  right:12px!important;
  z-index:3!important;
  width:auto!important;
  min-height:0!important;
  pointer-events:none!important;
}
body.nt-mobile-ui.nt-mobile-font-picker #fontCount{
  display:none!important;
}
body.nt-mobile-ui.nt-mobile-font-picker #ntFontFavoritesToggle{
  pointer-events:auto!important;
  min-height:26px!important;
  height:26px!important;
  padding:2px 7px!important;
  font-size:9px!important;
  border-radius:8px!important;
}

/* Grille : deux colonnes conservées, seul cet espace défile. */
body.nt-mobile-ui.nt-mobile-font-picker #fontGrid{
  min-height:0!important;
  max-height:none!important;
  height:100%!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:5px!important;
  padding-right:2px!important;
}
body.nt-mobile-ui.nt-mobile-font-picker #fontGrid .font-card,
body.nt-mobile-ui.nt-mobile-font-picker #fontGrid .font-item{
  min-height:42px!important;
  padding:5px 7px!important;
}

/* Les curseurs d'arc restent au-dessus des gestes de page et le panneau ne
   doit pas être réinterprété comme une surface scrollable pendant le drag. */
body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-text-view="arc"]{
  overscroll-behavior:none!important;
}
body.nt-mobile-ui .nt-mobile-text-sheet[data-mobile-text-view="arc"] .nt-mobile-arc-ranges{
  position:relative!important;
  z-index:4!important;
}


/* =========================================================
   v1.4.5.262.310 — Formes mobile compactes + accès Compte
   ========================================================= */
body.nt-mobile-ui .nt-mobile-account-btn{
  flex:0 0 auto!important;color:#f3da84!important;border-color:rgba(212,175,55,.28)!important;font-size:18px!important;
}
@media (max-width:430px){
  body.nt-mobile-ui .nt-mobile-account-btn{width:28px!important;min-width:28px!important;height:32px!important;}
  body.nt-mobile-ui .nt-mobile-top-left{gap:3px!important;}
  body.nt-mobile-ui .nt-mobile-face-switch{min-width:82px!important;max-width:92px!important;}
}
body.nt-mobile-ui.nt-mobile-shape-picker.nt-mobile-panel-open .panel-column{
  height:min(36dvh,315px)!important;max-height:min(36dvh,315px)!important;min-height:205px!important;
  left:calc(var(--nt-mobile-rail-w) + 7px)!important;right:7px!important;bottom:calc(var(--nt-mobile-vbottom,0px) + 7px)!important;
  border-radius:15px 15px 10px 10px!important;
}
body.nt-mobile-ui.nt-mobile-shape-picker .panel-head{display:none!important;}
body.nt-mobile-ui.nt-mobile-shape-picker .nt-mobile-panel-close{display:grid!important;top:6px!important;right:8px!important;width:30px!important;height:30px!important;z-index:30!important;}
body.nt-mobile-ui.nt-mobile-shape-picker #panel-image .panel-body{height:100%!important;overflow:hidden!important;padding:6px 8px 8px!important;}
body.nt-mobile-ui.nt-mobile-shape-picker .nt-svg-shapes-panel{
  display:grid!important;grid-template-rows:auto 34px minmax(0,1fr)!important;height:100%!important;min-height:0!important;
  margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;
}
body.nt-mobile-ui.nt-mobile-shape-picker .nt-svg-shapes-panel .section-title-row{min-height:30px!important;margin:0 38px 3px 2px!important;padding:0!important;}
body.nt-mobile-ui.nt-mobile-shape-picker .nt-svg-shapes-panel .section-title-row h3{margin:0!important;font-size:12px!important;line-height:28px!important;}
body.nt-mobile-ui.nt-mobile-shape-picker .nt-svg-shapes-panel .section-title-row .section-subtitle{display:none!important;}
body.nt-mobile-ui.nt-mobile-shape-picker .nt-svg-shape-panel-tools{
  display:grid!important;grid-template-columns:minmax(0,1fr) 42%!important;gap:5px!important;margin:0 0 5px!important;min-height:0!important;
}
body.nt-mobile-ui.nt-mobile-shape-picker #ntSvgShapeSearchInput,
body.nt-mobile-ui.nt-mobile-shape-picker #ntSvgShapeCategorySelect{
  height:32px!important;min-height:32px!important;padding:4px 7px!important;font-size:10.5px!important;border-radius:9px!important;
}
body.nt-mobile-ui.nt-mobile-shape-picker #ntSvgShapeLibrarySummary{display:none!important;}
body.nt-mobile-ui.nt-mobile-shape-picker .nt-svg-shape-inline-grid{
  min-height:0!important;height:100%!important;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;padding:0 2px 2px 0!important;
}
body.nt-mobile-ui.nt-mobile-shape-picker .nt-svg-shape-inline-category{grid-column:1/-1!important;margin:2px 0 0!important;font-size:9px!important;line-height:14px!important;}
body.nt-mobile-ui.nt-mobile-shape-picker .nt-svg-shape-inline-card{min-height:74px!important;height:auto!important;padding:4px!important;border-radius:10px!important;}
body.nt-mobile-ui.nt-mobile-shape-picker .nt-svg-shape-inline-card .nt-template-modal-img{height:39px!important;margin-bottom:3px!important;border-radius:8px!important;}
body.nt-mobile-ui.nt-mobile-shape-picker .nt-svg-shape-inline-card strong{display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:9.5px!important;line-height:12px!important;}
body.nt-mobile-ui.nt-mobile-shape-picker .nt-svg-shape-inline-card small{display:none!important;}
@media (max-width:365px){body.nt-mobile-ui.nt-mobile-shape-picker .nt-svg-shape-inline-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}


/* =========================================================
   v1.4.5.262.310 — Correctif Formes + bouton Compte réellement visible
   ========================================================= */
body.nt-mobile-ui .nt-mobile-top-left{
  display:flex!important;align-items:center!important;gap:4px!important;min-width:0!important;
}
body.nt-mobile-ui .nt-mobile-account-btn{
  display:grid!important;place-items:center!important;visibility:visible!important;opacity:1!important;
  width:34px!important;min-width:34px!important;height:34px!important;flex:0 0 34px!important;
  color:#f3da84!important;border-color:rgba(212,175,55,.34)!important;background:#17171b!important;
  font-size:17px!important;line-height:1!important;
}
@media (max-width:430px){
  body.nt-mobile-ui .nt-mobile-account-btn{width:28px!important;min-width:28px!important;height:32px!important;flex-basis:28px!important;}
  body.nt-mobile-ui .nt-mobile-face-switch{min-width:78px!important;max-width:88px!important;}
}

/* Le panneau Formes doit rester rendu même si le switcher desktop laisse
   brièvement l'attribut hidden pendant l'ouverture asynchrone. */
body.nt-mobile-ui.nt-mobile-shape-picker.nt-mobile-panel-open #panel-image{
  display:block!important;visibility:visible!important;
}
body.nt-mobile-ui.nt-mobile-shape-picker #panel-image [data-image-tool-panel="svg-shapes"]{
  display:grid!important;visibility:visible!important;
}
body.nt-mobile-ui.nt-mobile-shape-picker #panel-image [data-image-tool-panel="svg-shapes"][hidden]{
  display:grid!important;
}


/* =========================================================
   v1.4.5.262.310 — Canvas téléphone remonté + MyDesign connexion
   ========================================================= */

/* Sur téléphone seulement : le stage n'est plus centré verticalement dans
   workstage. Il vient juste sous la barre supérieure. Tablettes conservées. */
@media (max-width:600px){
  body.nt-mobile-ui .canvas-shell{
    align-items:flex-start!important;
    justify-content:center!important;
    padding-top:6px!important;
  }
  body.nt-mobile-ui .workstage{
    place-items:start center!important;
    align-content:start!important;
    justify-content:center!important;
    padding-top:0!important;
  }
  body.nt-mobile-ui .stage-wrap{
    margin-top:0!important;
  }
}

/* iPhone SE et autres téléphones courts : marge encore plus minimale. */
@media (max-width:600px) and (max-height:720px){
  body.nt-mobile-ui .canvas-shell{padding-top:3px!important;}
}

/* MyDesign non connecté : vraie barrière de connexion, sans donner
   l'impression que les 5 emplacements sont déjà disponibles. */
.nts-project-login-gate{
  grid-column:1/-1;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  padding:16px;
  border:1px solid rgba(212,175,55,.22);
  border-radius:16px;
  background:rgba(212,175,55,.055);
}
.nts-project-login-gate__icon{
  width:38px;height:38px;display:grid;place-items:center;
  border-radius:12px;border:1px solid rgba(212,175,55,.26);
  color:#f3da84;background:#17171b;font-size:20px;
}
.nts-project-login-gate__title{font-weight:850;color:#f1d77a;font-size:15px;}
.nts-project-login-gate__text{color:#c4c4cb;font-size:12px;line-height:1.45;}
.nts-project-login-gate__button{
  width:100%;text-align:center;text-decoration:none!important;
  min-height:42px;display:flex;align-items:center;justify-content:center;
}
body.nt-mobile-ui #panel-projects.nts-projects-login-required .nts-projects-grid{
  display:block!important;
}
body.nt-mobile-ui #panel-projects.nts-projects-login-required .panel-body{
  overflow:auto!important;
}
body.nt-mobile-ui #panel-projects.nts-projects-login-required .section{
  margin:0!important;padding:10px!important;
}
body.nt-mobile-ui #panel-projects.nts-projects-login-required .section h3{
  margin-bottom:5px!important;font-size:13px!important;
}
body.nt-mobile-ui #panel-projects.nts-projects-login-required .section>.hint{
  margin:0 0 9px!important;font-size:10.5px!important;line-height:1.35!important;
}


/* =========================================================
   v1.4.5.262.310 — Téléphones : Canvas réellement en haut
   ========================================================= */
@media (max-width:600px){
  body.nt-mobile-ui .canvas-shell{
    padding:6px 10px 220px!important;
    align-items:flex-start!important;
    justify-content:center!important;
  }
  body.nt-mobile-ui .workstage{
    display:grid!important;
    place-items:start center!important;
    align-content:start!important;
  }
  body.nt-mobile-ui .stage-wrap{
    margin:0 auto!important;
    align-self:start!important;
  }
  body.nt-mobile-ui .print-stage{
    margin:6px auto auto!important;
    align-self:start!important;
  }
  body.nt-mobile-ui:not(.nt-mobile-text-sheet-open):not(.nt-mobile-image-sheet-open):not(.nt-mobile-photo-sheet-open) .canvas-shell{
    padding-top:6px!important;
    padding-bottom:18px!important;
  }
}


/* =========================================================
   v1.4.5.262.310 — MyDesign mobile compact
   ========================================================= */
@media (max-width:600px){
  body.nt-mobile-ui #panel-projects{
    font-size:11px!important;
  }
  body.nt-mobile-ui #panel-projects .panel-head{
    min-height:38px!important;
    padding:7px 42px 5px 10px!important;
  }
  body.nt-mobile-ui #panel-projects .panel-title{
    font-size:12.5px!important;
  }
  body.nt-mobile-ui #panel-projects .panel-body{
    padding:6px 8px 10px!important;
  }
  body.nt-mobile-ui #panel-projects .section{
    padding:7px!important;
    margin:0 0 6px!important;
    border-radius:11px!important;
  }
  body.nt-mobile-ui #panel-projects .section h3{
    font-size:11.5px!important;
    margin:0 0 3px!important;
  }
  body.nt-mobile-ui #panel-projects .section>.hint{
    font-size:9px!important;
    line-height:1.25!important;
    margin:0 0 5px!important;
  }

  /* Conservation : résumé très compact au lieu d'un gros pavé. */
  body.nt-mobile-ui #ntsProjectsRetention{
    padding:7px 8px!important;
    margin:5px 0 6px!important;
    border-radius:10px!important;
    font-size:9px!important;
    line-height:1.25!important;
  }
  body.nt-mobile-ui #ntsProjectsRetention strong{
    display:inline!important;
    font-size:10px!important;
  }
  body.nt-mobile-ui #ntsProjectsRetention br{
    display:none!important;
  }
  body.nt-mobile-ui #ntsProjectsRetention .btn,
  body.nt-mobile-ui #ntsProjectsRetention button{
    min-height:26px!important;
    height:26px!important;
    padding:2px 7px!important;
    font-size:8.5px!important;
  }

  /* Grille MyDesign : emplacements visibles plus tôt. */
  body.nt-mobile-ui #ntsProjectsGrid,
  body.nt-mobile-ui .nts-projects-grid{
    gap:6px!important;
    grid-template-columns:1fr!important;
  }
  body.nt-mobile-ui .nts-project-card{
    min-height:0!important;
    border-radius:10px!important;
  }
  body.nt-mobile-ui .nts-project-card__body{
    padding:7px 8px!important;
  }
  body.nt-mobile-ui .nts-project-card__title{
    font-size:10.5px!important;
    line-height:1.2!important;
  }
  body.nt-mobile-ui .nts-project-card__meta{
    font-size:8.8px!important;
    line-height:1.25!important;
    margin-top:2px!important;
  }
  body.nt-mobile-ui .nts-project-card__actions{
    margin-top:5px!important;
    gap:4px!important;
  }
  body.nt-mobile-ui .nts-project-card__actions .btn{
    min-height:28px!important;
    padding:3px 7px!important;
    font-size:8.5px!important;
  }
}


/* =========================================================
   v1.4.5.262.310 — Import SVG/Image : verrouillage largeur mobile
   ========================================================= */
@media (max-width:760px){
  html, body.nt-mobile-ui{
    max-width:100vw!important;
    overflow-x:hidden!important;
  }
  body.nt-mobile-ui .workspace,
  body.nt-mobile-ui .workstage,
  body.nt-mobile-ui .canvas-shell,
  body.nt-mobile-ui .stage-wrap{
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    box-sizing:border-box!important;
  }
  body.nt-mobile-ui .print-stage,
  body.nt-mobile-ui .canvas-container,
  body.nt-mobile-ui .canvas-container canvas{
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  body.nt-mobile-ui .nt-mobile-siderail{
    flex:0 0 var(--nt-mobile-rail-w,52px)!important;
    width:var(--nt-mobile-rail-w,52px)!important;
    min-width:var(--nt-mobile-rail-w,52px)!important;
    max-width:var(--nt-mobile-rail-w,52px)!important;
    z-index:50!important;
  }
}


/* =========================================================
   v1.4.5.262.310 — Mobile preboot immédiat
   ========================================================= */
html.nt-mobile-preboot{
  background:#0b0b0e!important;
  overflow:hidden!important;
}
html.nt-mobile-preboot body{
  background:#0b0b0e!important;
  overflow:hidden!important;
}


/* =========================================================
   v1.4.5.262.310 — Paragraphe + Format mobile + interface verrouillée
   ========================================================= */
html.nt-mobile-ui,
html.nt-mobile-ui body,
body.nt-mobile-ui{
  width:100vw!important;
  max-width:100vw!important;
  min-width:0!important;
  overflow-x:hidden!important;
  box-sizing:border-box!important;
}
body.nt-mobile-ui .app,
body.nt-mobile-ui .workspace,
body.nt-mobile-ui .main-area,
body.nt-mobile-ui .canvas-area,
body.nt-mobile-ui .canvas-shell,
body.nt-mobile-ui .workstage,
body.nt-mobile-ui .stage-wrap,
body.nt-mobile-ui .print-stage{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
body.nt-mobile-ui .canvas-shell,
body.nt-mobile-ui .workstage,
body.nt-mobile-ui .stage-wrap{overflow-x:hidden!important;}

body.nt-mobile-ui .nt-mobile-text-sheet{
  left:calc(var(--nt-mobile-rail-w,58px) + 7px)!important;
  right:7px!important;
  width:auto!important;
  max-width:calc(100vw - var(--nt-mobile-rail-w,58px) - 14px)!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow-x:hidden!important;
  position:fixed!important;
}
body.nt-mobile-ui .nt-mobile-text-sheet *,
body.nt-mobile-ui .nt-mobile-text-sheet *::before,
body.nt-mobile-ui .nt-mobile-text-sheet *::after{min-width:0;box-sizing:border-box;}
body.nt-mobile-ui .nt-mobile-text-input{width:100%!important;max-width:100%!important;resize:none!important;}
body.nt-mobile-ui .nt-mobile-text-create-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;width:100%!important;}
body.nt-mobile-ui .nt-mobile-text-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
body.nt-mobile-ui .nt-mobile-text-actions .btn{
  width:100%!important;padding-left:4px!important;padding-right:4px!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
body.nt-mobile-ui .nt-mobile-text-delete-link{
  display:block!important;margin:4px auto 0!important;padding:2px 8px!important;border:0!important;
  background:transparent!important;color:#ff8c8c!important;font-size:10px!important;line-height:15px!important;
}
body.nt-mobile-ui .nt-mobile-format-popover{
  position:absolute!important;left:7px!important;right:7px!important;bottom:42px!important;z-index:40!important;
  max-height:min(240px,42dvh)!important;overflow-y:auto!important;overflow-x:hidden!important;padding:7px!important;
  border:1px solid rgba(212,175,55,.28)!important;border-radius:12px!important;background:rgba(13,13,17,.98)!important;
  box-shadow:0 12px 36px rgba(0,0,0,.45)!important;
}
body.nt-mobile-ui .nt-mobile-format-head{display:flex!important;align-items:center!important;justify-content:space-between!important;margin-bottom:5px!important;font-size:11px!important;}
body.nt-mobile-ui .nt-mobile-format-head button{
  width:25px!important;height:25px!important;border-radius:8px!important;border:1px solid rgba(255,255,255,.12)!important;
  background:#1c1c22!important;color:#fff!important;
}
body.nt-mobile-ui .nt-mobile-format-row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;margin-bottom:5px!important;}
body.nt-mobile-ui .nt-mobile-format-row button{
  height:32px!important;border:1px solid rgba(255,255,255,.13)!important;border-radius:9px!important;
  background:#18181d!important;color:#f5f5f5!important;font-size:11px!important;
}
body.nt-mobile-ui .nt-mobile-format-row button.is-active,
body.nt-mobile-ui [data-mobile-format-toggle].is-active{
  border-color:rgba(212,175,55,.75)!important;background:rgba(212,175,55,.14)!important;color:#f3da84!important;
}
body.nt-mobile-ui .nt-mobile-format-u{text-decoration:underline!important;}
body.nt-mobile-ui .nt-mobile-paragraph-format{padding-top:2px!important;border-top:1px solid rgba(255,255,255,.08)!important;}
body.nt-mobile-ui .nt-mobile-lineheight{display:grid!important;grid-template-columns:58px minmax(0,1fr) 32px!important;gap:5px!important;align-items:center!important;font-size:9.5px!important;}
body.nt-mobile-ui .nt-mobile-lineheight input{width:100%!important;min-width:0!important;}
body.nt-mobile-ui .nt-mobile-lineheight output{text-align:right!important;font-variant-numeric:tabular-nums!important;}
@media (max-width:365px){
  body.nt-mobile-ui .nt-mobile-text-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  body.nt-mobile-ui .nt-mobile-format-popover{bottom:72px!important;}
}

/* =========================================================
   v1.4.5.262.310 — saisie iOS stable + ordre des objets mobile
   ========================================================= */
body.nt-mobile-ui .nt-mobile-text-input,
body.nt-mobile-ui .nt-mobile-text-sheet input[type="text"],
body.nt-mobile-ui .nt-mobile-text-sheet input[type="search"],
body.nt-mobile-ui .nt-mobile-text-sheet textarea,
body.nt-mobile-ui .nt-mobile-text-sheet select{
  font-size:16px!important;
  line-height:1.25!important;
  -webkit-text-size-adjust:100%!important;
  text-size-adjust:100%!important;
}
body.nt-mobile-ui .nt-mobile-top-actions{flex:0 0 auto!important;}
body.nt-mobile-ui .nt-mobile-order-layer-btn.is-active{
  border-color:rgba(212,175,55,.75)!important;
  background:rgba(212,175,55,.15)!important;
  color:#f3da84!important;
}
body.nt-mobile-ui .nt-mobile-layer-menu{
  position:fixed!important;z-index:1015!important;
  top:calc(var(--nt-mobile-vtop,0px) + var(--nt-mobile-top-h,50px) + 4px)!important;
  right:7px!important;
  width:min(246px,calc(100vw - 76px))!important;
  max-width:calc(100vw - 76px)!important;
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:5px!important;
  padding:6px!important;border:1px solid rgba(212,175,55,.26)!important;
  border-radius:12px!important;background:rgba(13,13,17,.98)!important;
  box-shadow:0 12px 34px rgba(0,0,0,.48)!important;box-sizing:border-box!important;
}
body.nt-mobile-ui .nt-mobile-layer-menu[hidden]{display:none!important;}
body.nt-mobile-ui .nt-mobile-layer-menu button{
  min-width:0!important;min-height:42px!important;display:grid!important;
  grid-template-columns:25px minmax(0,1fr)!important;grid-template-rows:auto auto!important;
  align-items:center!important;column-gap:5px!important;padding:6px!important;
  border:1px solid rgba(255,255,255,.11)!important;border-radius:9px!important;
  background:#19191f!important;color:#f2f2f2!important;text-align:left!important;
}
body.nt-mobile-ui .nt-mobile-layer-menu button>span{grid-row:1/3!important;font-size:20px!important;text-align:center!important;}
body.nt-mobile-ui .nt-mobile-layer-menu button>b{font-size:10.5px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
body.nt-mobile-ui .nt-mobile-layer-menu button>small{font-size:8.5px!important;color:#aaa!important;}
@media (max-width:430px){
  body.nt-mobile-ui .nt-mobile-top-actions{
    display:grid!important;grid-template-columns:repeat(5,25px)!important;gap:2px!important;
    min-width:133px!important;max-width:133px!important;
  }
  body.nt-mobile-ui .nt-mobile-top-actions .nt-mobile-icon-btn{width:25px!important;min-width:25px!important;height:32px!important;font-size:14px!important;}
  body.nt-mobile-ui .nt-mobile-face-switch{min-width:82px!important;max-width:92px!important;}
}
@media (max-width:365px){
  body.nt-mobile-ui .nt-mobile-top-actions{grid-template-columns:repeat(5,23px)!important;min-width:123px!important;max-width:123px!important;}
  body.nt-mobile-ui .nt-mobile-top-actions .nt-mobile-icon-btn{width:23px!important;min-width:23px!important;}
}


/* =========================================================
   v1.4.5.262.310 — Picker couleur universel mobile Android/iPhone
   ========================================================= */
body.nt-mobile-ui .nt-mobile-color-picker{position:fixed!important;inset:0!important;z-index:3000!important;display:block!important;font-family:Inter,system-ui,sans-serif!important;}
body.nt-mobile-ui .nt-mobile-color-picker[hidden]{display:none!important;}
body.nt-mobile-ui .nt-mobile-color-backdrop{position:absolute!important;inset:0!important;background:rgba(0,0,0,.62)!important;backdrop-filter:blur(3px)!important;}
body.nt-mobile-ui .nt-mobile-color-dialog{position:absolute!important;left:calc(var(--nt-mobile-rail-w,58px) + 7px)!important;right:7px!important;bottom:calc(var(--nt-mobile-vbottom,0px) + 7px)!important;max-height:min(560px,78dvh)!important;overflow:auto!important;box-sizing:border-box!important;padding:10px!important;border:1px solid rgba(212,175,55,.36)!important;border-radius:16px!important;background:#101014!important;color:#fff!important;box-shadow:0 18px 60px rgba(0,0,0,.58)!important;}
body.nt-mobile-ui .nt-mobile-color-dialog>header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin-bottom:9px!important;}
body.nt-mobile-ui .nt-mobile-color-dialog>header>div{display:grid!important;gap:2px!important;}
body.nt-mobile-ui .nt-mobile-color-dialog>header strong{font-size:14px!important;color:#f2d77b!important;}
body.nt-mobile-ui .nt-mobile-color-dialog>header small{font-size:9.5px!important;color:#96969e!important;}
body.nt-mobile-ui .nt-mobile-color-dialog>header button{width:32px!important;height:32px!important;border:1px solid rgba(255,255,255,.13)!important;border-radius:9px!important;background:#1a1a20!important;color:#fff!important;font-size:21px!important;}
body.nt-mobile-ui .nt-mobile-color-presets,body.nt-mobile-ui .nt-mobile-color-recents{display:grid!important;grid-template-columns:repeat(8,minmax(0,1fr))!important;gap:5px!important;margin-bottom:9px!important;}
body.nt-mobile-ui [data-mobile-color-value]{aspect-ratio:1!important;min-width:0!important;border:2px solid rgba(255,255,255,.25)!important;border-radius:8px!important;background:var(--c)!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.22)!important;}
body.nt-mobile-ui .nt-mobile-color-spectrum-wrap{position:relative!important;width:100%!important;height:170px!important;overflow:hidden!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:11px!important;background:#fff!important;touch-action:none!important;}
body.nt-mobile-ui .nt-mobile-color-spectrum-wrap canvas{display:block!important;width:100%!important;height:100%!important;touch-action:none!important;}
body.nt-mobile-ui .nt-mobile-color-spectrum-wrap i{position:absolute!important;width:18px!important;height:18px!important;border:3px solid #fff!important;border-radius:999px!important;box-shadow:0 0 0 2px #111,0 2px 7px rgba(0,0,0,.5)!important;transform:translate(-50%,-50%)!important;pointer-events:none!important;}
body.nt-mobile-ui .nt-mobile-color-hue{display:grid!important;grid-template-columns:42px minmax(0,1fr)!important;gap:8px!important;align-items:center!important;margin:9px 0!important;font-size:10px!important;font-weight:800!important;color:#cfcfd3!important;}
body.nt-mobile-ui .nt-mobile-color-hue input{width:100%!important;height:24px!important;margin:0!important;appearance:none!important;border-radius:999px!important;background:linear-gradient(90deg,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)!important;}
body.nt-mobile-ui .nt-mobile-color-hue input::-webkit-slider-thumb{appearance:none!important;width:24px!important;height:24px!important;border:3px solid #fff!important;border-radius:50%!important;background:#111!important;box-shadow:0 1px 5px rgba(0,0,0,.45)!important;}
body.nt-mobile-ui .nt-mobile-color-bottom{display:grid!important;grid-template-columns:44px 1fr!important;gap:8px!important;align-items:end!important;}
body.nt-mobile-ui .nt-mobile-color-preview{width:44px!important;height:42px!important;border:2px solid rgba(255,255,255,.35)!important;border-radius:10px!important;box-sizing:border-box!important;}
body.nt-mobile-ui .nt-mobile-color-bottom label{display:grid!important;gap:3px!important;font-size:9px!important;color:#9d9da4!important;}
body.nt-mobile-ui .nt-mobile-color-bottom input{width:100%!important;height:42px!important;box-sizing:border-box!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:10px!important;background:#17171c!important;color:#fff!important;padding:0 11px!important;font:800 16px/1 Inter,system-ui!important;text-transform:uppercase!important;}
body.nt-mobile-ui .nt-mobile-color-recent-wrap{margin-top:9px!important;}
body.nt-mobile-ui .nt-mobile-color-recent-wrap>small{display:block!important;margin-bottom:5px!important;color:#9d9da4!important;font-size:9px!important;}
body.nt-mobile-ui .nt-mobile-color-done{width:100%!important;min-height:42px!important;margin-top:8px!important;border:1px solid #d4af37!important;border-radius:11px!important;background:#d4af37!important;color:#111!important;font:900 12px/1 Inter,system-ui!important;}
body.nt-mobile-ui input[type="color"]{cursor:pointer!important;}


/* =========================================================
   v1.4.5.262.310 — Picker compact + topbar/panier mobile
   ========================================================= */
body.nt-mobile-ui{
  --nt-mobile-top-h:58px!important;
}
body.nt-mobile-ui .nt-mobile-topbar{
  height:calc(var(--nt-mobile-top-h) + env(safe-area-inset-top,0px))!important;
  padding:calc(7px + env(safe-area-inset-top,0px)) 6px 7px!important;
  gap:5px!important;
}
body.nt-mobile-ui .nt-mobile-top-left{gap:4px!important;}
body.nt-mobile-ui .nt-mobile-home-btn,
body.nt-mobile-ui .nt-mobile-account-btn{
  width:31px!important;min-width:31px!important;height:40px!important;font-size:18px!important;
}
body.nt-mobile-ui .nt-mobile-face-switch{min-width:82px!important;max-width:96px!important;flex-basis:96px!important;}
body.nt-mobile-ui .nt-mobile-face{height:38px!important;font-size:10.5px!important;}
body.nt-mobile-ui .nt-mobile-top-actions{
  display:grid!important;grid-template-columns:repeat(6,29px)!important;gap:2px!important;
  min-width:184px!important;max-width:184px!important;
}
body.nt-mobile-ui .nt-mobile-top-actions .nt-mobile-icon-btn{
  width:29px!important;min-width:29px!important;height:40px!important;font-size:16px!important;border-radius:10px!important;
}
body.nt-mobile-ui .nt-mobile-cart-btn{position:relative!important;color:#f3da84!important;}
body.nt-mobile-ui .nt-mobile-cart-btn.has-items{border-color:rgba(212,175,55,.65)!important;background:rgba(212,175,55,.11)!important;}
body.nt-mobile-ui .nt-mobile-cart-badge{
  position:absolute!important;right:-5px!important;top:-5px!important;min-width:16px!important;height:16px!important;padding:0 3px!important;
  display:grid!important;place-items:center!important;box-sizing:border-box!important;border:1px solid #111!important;border-radius:999px!important;
  background:#d4af37!important;color:#111!important;font:900 9px/1 Inter,system-ui!important;
}
body.nt-mobile-ui .nt-mobile-cart-badge[hidden]{display:none!important;}
@media(max-width:390px){
  body.nt-mobile-ui .nt-mobile-face-switch{min-width:74px!important;max-width:82px!important;flex-basis:82px!important;}
  body.nt-mobile-ui .nt-mobile-home-btn,body.nt-mobile-ui .nt-mobile-account-btn{width:29px!important;min-width:29px!important;}
  body.nt-mobile-ui .nt-mobile-top-actions{grid-template-columns:repeat(6,27px)!important;min-width:172px!important;max-width:172px!important;}
  body.nt-mobile-ui .nt-mobile-top-actions .nt-mobile-icon-btn{width:27px!important;min-width:27px!important;font-size:15px!important;}
}
@media(max-width:365px){
  body.nt-mobile-ui .nt-mobile-face-switch{min-width:70px!important;max-width:74px!important;flex-basis:74px!important;}
  body.nt-mobile-ui .nt-mobile-face{font-size:9.5px!important;padding:0 2px!important;}
  body.nt-mobile-ui .nt-mobile-top-actions{grid-template-columns:repeat(6,25px)!important;min-width:160px!important;max-width:160px!important;}
  body.nt-mobile-ui .nt-mobile-top-actions .nt-mobile-icon-btn{width:25px!important;min-width:25px!important;}
}

body.nt-mobile-ui .nt-mobile-color-dialog{
  max-height:min(390px,62dvh)!important;padding:9px!important;border-radius:14px!important;overflow:hidden!important;
}
body.nt-mobile-ui .nt-mobile-color-dialog>header{margin-bottom:7px!important;}
body.nt-mobile-ui .nt-mobile-color-dialog>header small{display:none!important;}
body.nt-mobile-ui .nt-mobile-color-tabs{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;margin-bottom:8px!important;
}
body.nt-mobile-ui .nt-mobile-color-tabs button{
  min-width:0!important;height:36px!important;padding:0 5px!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:9px!important;
  background:#19191f!important;color:#bdbdc3!important;font:850 10px/1 Inter,system-ui!important;
}
body.nt-mobile-ui .nt-mobile-color-tabs button.is-active{
  border-color:rgba(212,175,55,.62)!important;background:rgba(212,175,55,.13)!important;color:#f3da84!important;
}
body.nt-mobile-ui .nt-mobile-color-panel{min-width:0!important;}
body.nt-mobile-ui .nt-mobile-color-panel[hidden]{display:none!important;}
body.nt-mobile-ui .nt-mobile-color-presets,body.nt-mobile-ui .nt-mobile-color-recents{
  grid-template-columns:repeat(8,minmax(0,1fr))!important;gap:5px!important;margin-bottom:0!important;
}
body.nt-mobile-ui .nt-mobile-color-recent-wrap{margin-top:8px!important;}
body.nt-mobile-ui .nt-mobile-color-spectrum-wrap{height:150px!important;}
body.nt-mobile-ui .nt-mobile-color-hue{margin:7px 0 0!important;}
body.nt-mobile-ui .nt-mobile-color-bottom{padding:8px 1px 1px!important;}
body.nt-mobile-ui .nt-mobile-color-done{min-height:38px!important;margin-top:8px!important;}
