
: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;
}
