:root{
  --bg:#f6f7f3;
  --surface:#ffffff;
  --surface-2:#f0f4f2;
  --ink:#1c2320;
  --muted:#6b746f;
  --line:#dce2dd;
  --green:#2f7d5c;
  --green-soft:#e5f3ec;
  --amber:#b56a1d;
  --amber-soft:#fff2df;
  --rose:#a83f52;
  --rose-soft:#fbe7eb;
  --blue:#2d6f93;
  --blue-soft:#e7f1f6;
  --shadow:0 18px 45px rgba(36,47,43,.10);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter, "Segoe UI", system-ui, -apple-system, sans-serif;
  background:var(--bg);
  color:var(--ink);
  overflow:hidden;
}
button,input,select{font:inherit}
button{cursor:pointer}

.app-shell{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.topbar{
  min-height:48px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  padding:5px 8px;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:1200;
  backdrop-filter:blur(14px);
}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.compact-brand{text-align:right}
.brand-mark{
  width:30px;height:30px;border-radius:9px;
  display:grid;place-items:center;
  background:#234238;color:#fff;font-weight:800;letter-spacing:.04em;
}
.user-badge{
  width:34px;height:34px;border-radius:999px;border:1px solid var(--line);
  background:#234238;color:#fff;display:grid;place-items:center;font-weight:900;
  cursor:pointer;padding:0;flex:0 0 auto;
}
.user-badge:hover{background:#2f5a4c}
.user-badge.signed-out{background:#fff;color:var(--muted)}
.brand-title{font-weight:850;font-size:12.5px;line-height:1.1;white-space:nowrap}
.brand-subtitle{font-size:11px;color:var(--muted);margin-top:1px}
.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.nav-menu-wrap{position:relative;display:flex;align-items:center;gap:8px}
.menu-btn{
  border:1px solid var(--line);background:#fff;border-radius:10px;
  width:32px;height:32px;font-weight:900;color:var(--ink);
}
.main-nav{
  display:none;align-items:center;gap:4px;
  position:absolute;top:40px;left:0;z-index:7000;
  border:1px solid var(--line);background:var(--surface-2);
  border-radius:12px;padding:5px;box-shadow:var(--shadow);
}
.nav-menu-wrap.open .main-nav{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  min-width:160px;
}
.main-tab{
  border:0;background:transparent;border-radius:9px;
  padding:9px 12px;font-weight:850;font-size:12px;color:var(--muted);text-align:left;
  cursor:pointer;transition:background .12s ease,color .12s ease,transform .08s ease;
}
.main-tab:hover{background:#e8efeb;color:var(--ink)}
.main-tab:focus-visible{outline:2px solid #234238;outline-offset:2px}
.main-tab:active,.main-tab.just-clicked{background:#d7e5dd;color:#174f38;transform:scale(.98)}
.main-tab.active{background:#234238;color:#fff}
.topbar-context{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(360px,28vw) minmax(620px,1fr);
  gap:8px;
  align-items:stretch;
}
.topbar-context[hidden]{display:none}
.top-context-block{
  min-width:0;
  height:44px;
  border:1px solid var(--line);
  background:rgba(240,244,242,.82);
  border-radius:13px;
  padding:5px 7px;
}
.hierarchy-context{
  display:grid;
  grid-template-columns:minmax(120px,1fr) minmax(190px,240px) 32px;
  align-items:center;
  gap:7px;
}
.hierarchy-context h2{font-size:13px;line-height:1.1}
.hierarchy-context p{font-size:10.5px;color:var(--muted);margin-top:1px;white-space:nowrap}
.product-context{
  display:grid;
  grid-template-columns:minmax(210px,.85fr) minmax(260px,1.1fr) auto;
  align-items:center;
  gap:8px;
}
.product-title-block{min-width:0;align-self:center}
.list-context{
  display:grid;
  grid-template-columns:minmax(100px,1fr) minmax(220px,320px) 32px;
  align-items:center;
  gap:7px;
}
.list-context h2{font-size:13px;line-height:1.1}
.list-context p{font-size:10.5px;color:var(--muted);margin-top:1px;white-space:nowrap}
.connected-context{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(240px,420px) auto;
  align-items:center;
  gap:8px;
}
.connected-context select{width:100%;min-width:0;padding:6px 8px;font-size:11.5px}
.connected-context .ghost-btn{padding:7px 10px;font-size:12px}
.catalog-list-picker{
  display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;
  min-width:0;
}
.catalog-list-picker label{font-size:10px;font-weight:850;color:var(--muted);text-transform:uppercase}
.catalog-list-picker select{width:100%;min-width:0;padding:6px 8px;font-size:11.5px}
.context-plus{
  border:1px solid var(--line);background:#fff;border-radius:10px;
  width:30px;height:30px;font-weight:900;color:var(--green);font-size:18px;line-height:1;
}
.context-plus:hover{background:var(--green-soft);border-color:#bad8c6}
.hierarchy-picker{
  display:flex;align-items:center;gap:6px;
  border:1px solid var(--line);background:var(--surface-2);
  border-radius:12px;padding:4px 5px 4px 10px;color:var(--muted);font-size:12px;
}
.hierarchy-picker label{font-weight:850;white-space:nowrap}
.hierarchy-picker select{min-width:220px;background:#fff;padding:8px 10px}
.list-picker select{min-width:190px}
.list-picker span{
  white-space:nowrap;
  color:var(--green);
  font-weight:850;
  padding:0 7px 0 2px;
}
.seg{
  border:0;background:transparent;color:var(--muted);
  padding:7px 10px;border-radius:9px;font-weight:700;
}
.seg.active{background:#234238;color:#fff}

.workspace{
  flex:1;
  display:grid;
  grid-template-columns:310px minmax(460px,1fr) 360px;
  gap:16px;
  padding:8px 16px 14px;
  min-height:0;
  overflow:hidden;
}
.workspace.no-inspector{grid-template-columns:310px minmax(640px,1fr)}
.workspace.no-inspector .right-panel{display:none}
.workspace.operation-mode{
  grid-template-columns:280px 300px minmax(640px,1fr);
}
.workspace.operation-mode .right-panel{
  display:none;
}
.app-view[hidden]{display:none}
.page-panel{
  margin:16px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:18px;
  min-height:calc(100vh - 110px);
  max-height:calc(100vh - 86px);
  overflow:hidden;
}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.page-head p{font-size:13px;color:var(--muted);margin-top:4px}
.page-actions{display:flex;gap:8px;flex-wrap:wrap}
.info-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px}
.publish-dashboard{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr);gap:14px;align-items:stretch}
.info-card{
  border:1px solid var(--line);border-radius:14px;background:#fbfcfa;
  padding:14px;display:grid;gap:8px;align-content:start;
}
.info-card strong{font-size:14px}
.info-card span{font-size:13px;color:var(--muted);line-height:1.4}
.sync-card{
  border:1px solid var(--line);border-radius:14px;background:var(--surface-2);
  padding:14px;display:grid;gap:8px;align-content:start;
}
.sync-card strong{font-size:14px}
.sync-card span{font-size:13px;color:var(--muted);line-height:1.4}
.sync-card.saving{background:var(--amber-soft);border-color:#f3d7af}
.sync-card.saved{background:var(--green-soft);border-color:#c5e2d1}
.sync-card.error{background:var(--rose-soft);border-color:#efc8cf}
.publish-main-card{background:#fff}
.login-gate{
  position:fixed;inset:0;z-index:4000;
  background:
    linear-gradient(135deg, rgba(246,248,245,.96), rgba(238,244,241,.98)),
    #f6f8f5;
  display:grid;place-items:center;padding:24px;
}
.login-gate[hidden]{display:none}
.login-card{
  width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:30px;display:grid;gap:22px;justify-items:stretch;box-shadow:0 22px 70px rgba(25,38,32,.16);
}
.login-brand-row{display:flex;align-items:center;gap:12px}
.login-brand-row strong{display:block;font-size:14px}
.login-brand-row span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.login-copy{display:grid;gap:8px}
.login-card h1{font-size:26px;line-height:1.1}
.login-card p{color:var(--muted);line-height:1.45;font-size:14px}
.login-card small{color:var(--muted);font-size:12px;line-height:1.35;text-align:center}
.google-login-btn{
  border:1px solid #d7dfda;background:#fff;border-radius:12px;
  padding:12px 14px;display:flex;align-items:center;justify-content:center;gap:10px;
  font-weight:850;color:var(--ink);box-shadow:0 2px 10px rgba(25,38,32,.05);cursor:pointer;
}
.google-login-btn:hover{background:#fbfcfa;border-color:#b9c8c0}
.google-g{
  width:22px;height:22px;border-radius:999px;display:grid;place-items:center;
  color:#fff;background:conic-gradient(#4285f4 0 25%,#34a853 0 50%,#fbbc05 0 75%,#ea4335 0);
  font-weight:900;font-size:13px;
}
.left-panel,.destination-panel,.content-panel,.right-panel{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
  min-height:0;
  max-height:100%;
}
.left-panel{position:relative;z-index:40}
.content-panel{position:relative;z-index:1}
.left-panel,.destination-panel,.right-panel{display:flex;flex-direction:column;overflow:hidden}
.left-panel .search-box{
  flex:0 0 auto;
  width:calc(100% - 28px);
  max-width:none;
  margin:10px 14px 10px;
}
.left-panel .search-box input{font-size:12px;min-width:0}
.right-panel[hidden]{display:none}
.destination-panel[hidden]{display:none}
.content-panel{padding:18px;display:flex;flex-direction:column;gap:14px;overflow:hidden;min-height:0}
.panel-head{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,150px);align-items:center;gap:8px;
  padding:10px 14px 8px;
}
.context-select{
  min-width:0;
  max-width:none;
  width:100%;
  padding:6px 8px;
  font-size:11.5px;
}
.inline-picker{padding:4px 5px 4px 9px}
.panel-head.tight{padding-bottom:6px}
h1,h2,h3,p{margin:0}
h2{font-size:15px}
.panel-head p,.queue-head span{font-size:12px;color:var(--muted);margin-top:3px}

.icon-btn{
  border:1px solid var(--line);background:#fff;color:var(--ink);
  width:34px;height:34px;border-radius:10px;font-weight:800;
}
.primary-btn,.ghost-btn{
  border-radius:11px;border:1px solid transparent;
  padding:10px 13px;font-weight:800;font-size:13px;
}
.primary-btn{background:var(--green);color:#fff}
.ghost-btn{background:#fff;border-color:var(--line);color:var(--ink)}
.ghost-btn.danger-action{color:var(--rose);border-color:#efc8cf}
.primary-btn:hover{background:#276b4f}
.ghost-btn:hover,.icon-btn:hover{background:var(--surface-2)}
.primary-btn:active,.ghost-btn:active,.icon-btn:active,.context-plus:active,.hierarchy-actions-menu button:active{
  transform:translateY(1px) scale(.99);
}

.search-box{
  margin:0 16px 10px;
  display:flex;align-items:center;gap:8px;
  background:var(--surface-2);border:1px solid transparent;border-radius:12px;
  padding:8px 10px;
  min-width:0;
  max-width:calc(100% - 32px);
  overflow:hidden;
}
.search-box:focus-within{border-color:#91b7a4;background:#fff}
.search-box input{
  width:100%;border:0;outline:0;background:transparent;color:var(--ink);
  min-width:0;
}
.search-icon{color:var(--muted);font-weight:800}
.product-search{margin:0;flex:1;min-width:260px}

.hierarchy-actions-wrap{position:relative;margin:0 14px 8px}
.hierarchy-actions-btn{width:100%;padding:8px 10px}
.hierarchy-actions-menu{
  display:none;position:fixed;left:auto;top:auto;z-index:3000;
  width:220px;
  border:1px solid var(--line);background:#fff;border-radius:14px;
  box-shadow:var(--shadow);padding:8px;gap:6px;
}
.hierarchy-actions-menu.open{display:grid}
.hierarchy-actions-menu button{
  border:1px solid var(--line);background:#fff;border-radius:9px;
  padding:8px 10px;font-weight:850;font-size:12px;text-align:left;color:var(--ink);
}
.hierarchy-actions-menu button:hover{background:var(--surface-2)}
.hierarchy-actions-menu button:disabled{opacity:.45;cursor:not-allowed;background:#f3f5f3}
.tree-navigation{
  display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0 14px 8px;
}
.tree-navigation button{
  border:1px solid var(--line);background:#fff;border-radius:10px;
  padding:7px 6px;font-weight:900;color:var(--muted);font-size:13px;
}
.tree-navigation .cycle-btn{font-size:18px;line-height:1;color:#33433b}
.tree-navigation button:hover{background:var(--surface-2)}
.tree-navigation button:disabled{opacity:.42;cursor:not-allowed;background:#f3f5f3}
.tree-tools{display:grid;gap:5px;padding:0 14px 8px}
.tool-section-title{
  font-size:10px;font-weight:900;text-transform:uppercase;color:var(--muted);
  letter-spacing:.04em;margin-top:4px;
}
.tool-group{display:flex;gap:6px}
.tree-tools button{
  border:1px solid var(--line);background:#fff;border-radius:9px;padding:5px 7px;
  font-weight:800;font-size:11px;color:var(--muted);
  flex:1;
  min-width:0;
  white-space:nowrap;
}
.tool-group:last-child button{font-size:11px;padding-inline:5px}
.tool-group.compact-actions{display:grid;grid-template-columns:1fr 1fr 1fr}
.tool-group.compact-actions button{font-size:10.5px}
.tree-tools button:disabled{opacity:.45;cursor:not-allowed;background:#f3f5f3}
.tree-toggle{
  margin:0 14px 8px;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  color:var(--muted);
  line-height:1.35;
}
.tree{overflow:auto;padding:0 8px 16px;flex:1;min-height:0;overscroll-behavior:contain}
.tree-node{
  display:grid;grid-template-columns:4px 24px minmax(0,1fr) auto;align-items:center;
  gap:6px;padding:6px 8px;border-radius:10px;margin:2px 0;color:var(--ink);
  width:100%;border:0;background:transparent;text-align:left;position:relative;
}
.level-mark{width:3px;height:22px;border-radius:999px;background:#cfd8d2}
.tree-node:hover{background:var(--surface-2)}
.tree-node.active{background:var(--green-soft);color:#174f38}
.tree-node.focus-source{box-shadow:inset 3px 0 0 var(--green)}
.tree-node.focus-target{box-shadow:inset 3px 0 0 var(--blue)}
.tree-node.valid-target{background:#f7fbf8}
.tree-node.valid-target .node-name::after{
  content:"Valido";
  margin-left:7px;
  color:var(--green);
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
}
.tree-node.visual-skip .node-name::after{
  content:"oculto";
  margin-left:7px;
  color:var(--amber);
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
}
.tree-node.unclassified-node{
  margin-top:8px;
  border-top:1px solid var(--line);
  background:var(--amber-soft);
}
.tree-node.unclassified-node .level-mark{background:var(--amber)}
.tree-node.unclassified-node .node-name{font-weight:850;color:#5b3a12}
.tree-node.invalid-target{opacity:.42}
.tree-node.invalid-target:hover{background:transparent}
.tree-node .twisty{
  color:var(--muted);font-size:11px;width:20px;height:20px;border-radius:7px;
  display:grid;place-items:center;border:1px solid transparent;
}
.tree-node .twisty.has-children{border-color:var(--line);background:#fff}
.tree-node .twisty.expanded{transform:rotate(90deg)}
.tree-node .node-name{font-weight:760;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tree-node .node-count{
  font-size:10px;color:var(--muted);background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:1px 5px;
}
.tree-level-0 .level-mark{background:var(--green)}
.tree-level-0 .node-name{font-weight:880;font-size:12px;color:#183c31}
.tree-level-1{padding-left:14px;background:rgba(45,111,147,.035)}
.tree-level-1 .level-mark{background:var(--blue)}
.tree-level-1 .node-name{font-weight:820;font-size:11.8px;color:#244f65}
.tree-level-2{padding-left:26px;background:rgba(181,106,29,.035)}
.tree-level-2 .level-mark{background:#c59043}
.tree-level-2 .node-name{font-weight:760;font-size:11.4px;color:#3f5148}
.tree-level-3{padding-left:38px}
.tree-level-3 .level-mark{background:#9aa7a0}
.tree-level-3 .node-name{font-weight:680;font-size:11px;color:#4f5c56}

.operation-card{
  margin:14px 14px 8px;
  border:1px solid #c5e2d1;
  background:var(--green-soft);
  border-radius:14px;
  padding:12px;
  color:#174f38;
}
.operation-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.operation-title strong{font-size:14px}
.operation-title button{padding:7px 9px}
.operation-summary{display:grid;gap:6px;font-size:12px;line-height:1.35}
.operation-summary span{color:#47695a}
.operation-actions{display:grid;gap:8px;margin-top:10px}
.merge-options{display:grid;gap:8px;margin-top:10px}
.merge-options input,.merge-options select{
  border:1px solid #bad8c6;background:#fff;border-radius:10px;padding:9px 10px;width:100%;
}
.merge-options label{display:grid;gap:4px;font-size:11px;font-weight:850;color:#47695a}
.operation-card .primary-btn:disabled{opacity:.45;cursor:not-allowed}
.active-pane-note{
  display:inline-flex;
  align-items:center;
  border:1px solid var(--line);
  border-radius:999px;
  padding:4px 8px;
  font-size:11px;
  color:var(--muted);
  background:#fff;
}

.content-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.crumbs{font-size:11px;color:var(--muted);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
h1{font-size:16px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.15}
.metrics{display:flex;gap:9px;flex-shrink:0}
.metric{
  min-width:58px;height:34px;background:var(--blue-soft);border:1px solid #cde3ed;
  border-radius:10px;padding:4px 7px;text-align:left;
}
.metric span{display:block;font-size:13px;font-weight:850;color:var(--blue);line-height:1}
.metric label{display:block;font-size:9px;color:var(--muted);font-weight:750;line-height:1.05}
.metric.amber{background:var(--amber-soft);border-color:#f3d7af}
.metric.amber span{color:var(--amber)}
.metric.green{background:var(--green-soft);border-color:#c5e2d1}
.metric.green span{color:var(--green)}

.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
select{
  border:1px solid var(--line);background:#fff;border-radius:11px;
  padding:10px 12px;color:var(--ink);font-weight:750;
}
.table-card{
  border:1px solid var(--line);border-radius:14px;overflow:auto;
  min-height:0;display:block;flex:1;overscroll-behavior:contain;
}
.data-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}
.data-table tr{height:40px}
.data-table thead th{
  position:sticky;top:0;z-index:1;
  background:#eef3ef;border-bottom:1px solid var(--line);
  padding:12px 14px;text-align:left;font-size:12px;font-weight:850;color:#425049;
}
.data-table td{
  padding:12px 14px;border-bottom:1px solid #edf0ed;
  vertical-align:middle;background:#fff;
  font-size:12px;line-height:1.25;
}
.data-table tr:hover td{background:#fbfcfa}
.data-table tr.selected td{background:#f1fbf5}
.select-col{width:54px;text-align:center}
.status-mini-col{width:42px;text-align:center}
.code-col{width:130px}
.name-col{min-width:300px;max-width:520px}
.attr-col{min-width:140px;max-width:220px}
.table-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sort-head{
  border:0;background:transparent;text-align:left;padding:4px 0;color:#425049;
  font-weight:900;font-size:12px;white-space:nowrap;cursor:pointer;
}
.sort-head:hover,.sort-head.active{color:var(--green)}
.th-tools{display:inline-flex;align-items:center;gap:6px;max-width:100%}
.filter-head{
  width:24px;height:24px;border:1px solid var(--line);border-radius:8px;
  background:#fff;color:#607069;display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:900;cursor:pointer;line-height:1;flex:0 0 auto;
}
.filter-head:hover,.filter-head.active{
  color:var(--green);border-color:#b9d9c6;background:var(--green-soft);
}
.column-filter-menu{
  position:fixed;z-index:10000;width:300px;max-height:380px;
  border:1px solid var(--line);border-radius:14px;background:#fff;
  box-shadow:0 18px 50px rgba(20,31,26,.18);padding:12px;
}
.filter-menu-title{font-weight:900;color:var(--ink);font-size:13px;margin-bottom:8px}
.filter-menu-search{
  width:100%;border:1px solid var(--line);border-radius:10px;
  padding:9px 10px;font-size:13px;margin-bottom:10px;background:#f7faf8;
}
.filter-options{
  max-height:220px;overflow:auto;border:1px solid var(--line);
  border-radius:10px;background:#fbfcfa;padding:5px;
}
.filter-option{
  display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;
  font-size:12px;color:var(--ink);cursor:pointer;
}
.filter-option:hover{background:#eef3ef}
.filter-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.filter-empty{padding:18px;text-align:center;color:var(--muted);font-size:12px}
.filter-menu-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
.filter-menu-actions .ghost-btn,.filter-menu-actions .primary-btn{
  min-height:36px;padding:8px 12px;border-radius:10px;font-size:12px;
}
.users-layout{display:grid;grid-template-rows:auto 1fr;gap:12px;min-height:0;flex:1}
.users-permission-card{display:flex;flex-direction:column;gap:5px}
.users-permission-card span{color:var(--muted);font-size:13px;line-height:1.35}
.users-table-card{min-height:360px}
.users-table{width:100%;min-width:900px}
.row-actions{display:flex;gap:8px;align-items:center;white-space:nowrap}
.row-actions .ghost-btn{min-height:34px;padding:7px 11px;font-size:12px;border-radius:10px}
.role-pill{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:86px;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;
  background:#eef3ef;color:#425049;border:1px solid var(--line);
}
.role-owner{background:#e7f4ee;color:var(--green);border-color:#b9d9c6}
.role-admin{background:#eaf3fb;color:var(--blue);border-color:#c9dced}
.checkline{display:flex;align-items:center;gap:8px}
.compact-check{justify-content:center}
.code{font-family:"SFMono-Regular",Consolas,monospace;color:#607069;font-size:12px}
.product-name{font-weight:780;line-height:1.25}
.product-meta,.location{font-size:12px;color:var(--muted);line-height:1.35;margin-top:3px}
.product-meta{display:flex;flex-wrap:wrap;gap:5px}
.attr-chip{
  display:inline-flex;align-items:center;gap:4px;
  max-width:180px;padding:3px 7px;border:1px solid var(--line);
  border-radius:999px;background:var(--surface-2);color:var(--ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.attr-chip strong{color:var(--green);font-weight:850}
.muted-meta{color:var(--muted)}
.table-cell{font-size:12px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.badge{
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;padding:5px 9px;font-size:11px;font-weight:850;
  white-space:nowrap;
}
.badge.pending{background:var(--amber-soft);color:var(--amber)}
.badge.validated{background:var(--green-soft);color:var(--green)}
.badge.corrected{background:var(--blue-soft);color:var(--blue)}
.badge.suggested{background:var(--rose-soft);color:var(--rose)}
.status-dot{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:999px;font-size:11px;font-weight:900;
}
.status-dot.pending{background:var(--amber-soft);color:var(--amber)}
.status-dot.validated{background:var(--green-soft);color:var(--green)}
.status-dot.corrected{background:var(--blue-soft);color:var(--blue)}
.status-dot.suggested{background:var(--rose-soft);color:var(--rose)}

.inspector{padding:10px 16px 16px;min-height:0;overflow:auto;flex:1;overscroll-behavior:contain}
.empty-state{
  border:1px dashed #ccd5ce;border-radius:14px;min-height:250px;
  display:flex;align-items:center;justify-content:center;flex-direction:column;
  gap:8px;text-align:center;padding:18px;background:#fbfcfa;color:var(--muted);
}
.empty-state h3{color:var(--ink);font-size:15px}
.empty-state p{font-size:13px;line-height:1.4;max-width:240px}
.empty-icon{width:42px;height:42px;border-radius:14px;background:var(--surface-2);display:grid;place-items:center;color:var(--muted)}
.detail-card{display:flex;flex-direction:column;gap:12px}
.detail-title{font-weight:850;font-size:16px;line-height:1.25}
.detail-grid{display:grid;gap:8px}
.detail-item{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fbfcfa}
.detail-label{font-size:11px;color:var(--muted);font-weight:850;text-transform:uppercase}
.detail-value{font-size:13px;margin-top:4px;line-height:1.35}
.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.detail-actions .primary-btn,.detail-actions .ghost-btn{padding:10px 8px}
.top-actions-detail{order:0}
.detail-close-row{display:flex;justify-content:flex-end}
.detail-close-row .ghost-btn{padding:7px 10px}

.lists-layout{
  display:grid;grid-template-columns:minmax(0,1fr);gap:16px;
  min-height:0;height:calc(100vh - 210px);overflow:hidden;
}
.list-sidebar{
  display:none;
  border:1px solid var(--line);border-radius:14px;background:#fbfcfa;
  padding:10px;display:flex;flex-direction:column;gap:8px;overflow:auto;
}
.list-card{
  border:1px solid var(--line);background:#fff;border-radius:12px;
  padding:11px;text-align:left;display:grid;gap:4px;
}
.list-card.active{background:var(--green-soft);border-color:#bad8c6}
.list-card strong{font-size:13px}
.list-card span{font-size:12px;color:var(--muted)}
.list-detail{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;overflow:hidden}
.list-table-card{min-height:0;overflow:auto}
.list-connections{
  border:1px solid var(--line);background:#fbfcfa;border-radius:13px;
  padding:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;
}
.list-connections strong{display:block;font-size:12px}
.list-connections span{display:block;font-size:12px;color:var(--muted);line-height:1.35;margin-top:2px}
.list-connect-action{display:flex;gap:8px;align-items:center}
.list-connect-action select{max-width:240px;padding:8px 10px;font-size:12px}
.list-connect-action .ghost-btn{padding:8px 10px}

.toast-stack{
  position:fixed;right:18px;bottom:18px;z-index:6000;
  display:grid;gap:10px;width:min(360px,calc(100vw - 36px));
  pointer-events:none;
}
.toast{
  border:1px solid #c5e2d1;background:#f5fbf7;color:#173c2d;
  border-radius:14px;box-shadow:var(--shadow);padding:12px 14px;
  animation:toastIn .18s ease-out both;
}
.toast strong{display:block;font-size:13px;margin-bottom:4px}
.toast span{display:block;font-size:12px;color:#47695a;line-height:1.35}
.toast.leaving{animation:toastOut .24s ease-in both}
@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes toastOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}

.modal-backdrop{
  position:fixed;inset:0;background:rgba(20,28,24,.35);z-index:5000;
  display:grid;place-items:center;padding:20px;
}
.modal-backdrop[hidden]{display:none}
.modal{
  width:min(1180px,calc(100vw - 28px));max-height:calc(100vh - 28px);
  background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.22);
  border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;
}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}
.modal-head h2{font-size:18px}
.modal-body{padding:18px;display:grid;gap:12px;overflow:auto;min-height:0}
.move-layout{display:grid;grid-template-columns:minmax(220px,.95fr) minmax(260px,1.05fr);gap:14px;min-height:410px}
.move-tree,.move-preview{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fbfcfa;display:flex;flex-direction:column;min-height:0}
.move-column-head{padding:11px 12px;border-bottom:1px solid var(--line);background:#eef3ef}
.move-column-head strong{display:block;font-size:13px}
.move-column-head span{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.move-tree-list{overflow:auto;padding:8px}
.move-preview-list{overflow:auto;padding:8px;display:flex;flex-direction:column;gap:7px}
.move-node{
  display:grid;grid-template-columns:24px 1fr auto;gap:7px;align-items:center;width:100%;
  border:0;background:transparent;padding:7px 8px;border-radius:10px;text-align:left;color:var(--ink);
}
.move-node:hover{background:#fff}
.move-node.active{background:var(--green-soft);color:#174f38}
.move-node.disabled{opacity:.38;cursor:not-allowed}
.move-node.disabled:hover{background:transparent}
.move-node .twisty{font-size:11px;color:var(--muted)}
.move-node .name{font-weight:750;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.move-node .count{font-size:11px;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:999px;padding:2px 6px}
.move-product{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px}
.move-product strong{display:block;font-size:12px;line-height:1.25}
.move-product span{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.move-target{border:1px solid #c5e2d1;background:var(--green-soft);border-radius:12px;padding:10px;font-size:12px;color:#174f38}
.rule-note{border:1px solid #f3d7af;background:var(--amber-soft);color:#6c430f;border-radius:12px;padding:10px;font-size:12px;line-height:1.35}
.load-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.load-card{
  border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;
  display:grid;gap:6px;text-align:left;color:var(--ink);
}
.load-card:hover{background:#fbfcfa;border-color:#b8c9bf}
.load-card.active{border-color:#91b7a4;background:var(--green-soft)}
.load-card strong{font-size:13px}
.load-card span{font-size:12px;color:var(--muted);line-height:1.35}
.load-config{
  border:1px solid var(--line);border-radius:14px;background:#fbfcfa;padding:12px;display:grid;gap:10px;
}
.load-flow{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
}
.load-flow span{
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  padding:7px 8px;
  font-size:11px;
  font-weight:850;
  color:var(--muted);
  text-align:center;
  white-space:nowrap;
}
.load-flow span.active{
  background:var(--green-soft);
  border-color:#c5e2d1;
  color:#174f38;
}
.load-settings{display:grid;grid-template-columns:1fr;gap:10px}
.load-settings .form-row{
  border:1px solid var(--line);
  background:#fff;
  border-radius:12px;
  padding:10px;
}
.load-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.load-pill{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px;font-size:12px}
.load-pill strong{display:block;font-size:16px;color:var(--green)}
.publish-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin:12px 0}
.publish-step{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;display:grid;gap:8px}
.publish-step strong{color:var(--ink)}
.publish-step span,.publish-step small{color:var(--muted)}
.publish-check{display:flex;align-items:center;gap:8px}
.publish-check input{width:18px;height:18px}
.load-next-step{
  border:1px solid #c5e2d1;
  background:var(--green-soft);
  border-radius:12px;
  padding:11px 12px;
  color:#174f38;
  display:grid;
  gap:3px;
}
.load-next-step strong{font-size:13px}
.load-next-step span{font-size:12px;line-height:1.35;color:#47695a}
.load-maintenance{
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--line);
  background:#fff;
  border-radius:12px;
  padding:9px 10px;
}
.load-maintenance .ghost-btn{padding:8px 10px;white-space:nowrap}
.load-maintenance span{font-size:12px;color:var(--muted);line-height:1.35}
.load-error{
  border:1px solid #efc8cf;
  background:var(--rose-soft);
  color:#72263a;
  border-radius:12px;
  padding:11px 12px;
  display:grid;
  gap:4px;
}
.load-error strong{font-size:13px}
.load-error span,.load-error small{font-size:12px;line-height:1.35}
.load-map-row{
  display:grid;
  grid-template-columns:120px 1fr 1fr;
  gap:10px;
  align-items:end;
  border:1px solid var(--line);
  background:#fff;
  border-radius:12px;
  padding:10px;
}
.load-map-row strong{font-size:13px}
.load-map-row label{display:grid;gap:5px;font-size:11px;font-weight:850;color:var(--muted)}
.load-map-row select{width:100%;padding:9px 10px}
.excel-preview-wrap{
  overflow:auto;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  max-height:330px;
}
.excel-preview{
  border-collapse:separate;
  border-spacing:0;
  min-width:900px;
  width:max-content;
  font-size:12px;
}
.excel-preview th,.excel-preview td{
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:7px 8px;
  max-width:220px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.excel-preview th{
  background:#eef3ef;
  position:sticky;
  top:0;
  z-index:1;
  font-weight:850;
}
.excel-preview tbody th{
  left:0;
  z-index:1;
  color:var(--muted);
}
.excel-col-title{font-weight:850;margin-bottom:6px;max-width:190px;overflow:hidden;text-overflow:ellipsis}
.excel-preview select{width:100%;min-width:130px;padding:7px 8px;font-size:12px}
.load-result{
  border:1px solid #c5e2d1;background:var(--green-soft);color:#174f38;
  border-radius:12px;padding:12px;font-size:13px;line-height:1.4;
}
.export-list{display:grid;gap:9px}
.export-row{
  border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;
  display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;
}
.export-row strong{display:block;font-size:13px}
.export-row span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.form-row{display:grid;gap:6px}
.form-row label{font-size:12px;font-weight:850;color:var(--muted)}
.form-row input,.form-row select,.form-row textarea{
  border:1px solid var(--line);border-radius:12px;padding:11px 12px;outline:0;width:100%;
}
.form-row textarea{min-height:84px;resize:vertical}
.choice-list{display:grid;gap:8px;margin-bottom:12px}
.choice-row{
  display:flex;align-items:center;gap:9px;border:1px solid var(--line);
  border-radius:11px;background:#fbfcfa;padding:10px 11px;font-weight:750;
}
.choice-row input{width:auto}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;background:#f8faf8;border-top:1px solid var(--line)}
.processing-state{
  display:flex;align-items:center;gap:10px;
  border:1px solid #c5e2d1;background:var(--green-soft);color:#174f38;
  border-radius:12px;padding:10px;font-size:13px;font-weight:850;
}
.processing-state span{
  display:block;
  margin-top:2px;
  color:#47695a;
  font-size:12px;
  font-weight:750;
}
.spinner{
  width:16px;height:16px;border-radius:50%;
  border:2px solid #b8d9c6;border-top-color:var(--green);
  animation:spin .8s linear infinite;
}
.clock-loader{
  width:28px;height:28px;border-radius:50%;
  border:2px solid #9ac7ae;
  background:
    linear-gradient(#174f38 0 0) center 6px / 2px 9px no-repeat,
    linear-gradient(#174f38 0 0) center center / 8px 2px no-repeat,
    #fff;
  flex:0 0 auto;
  animation:spin 1.1s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

@media (max-width:1180px){
  .topbar{grid-template-columns:auto minmax(0,1fr)}
  .compact-brand{display:none}
  .topbar-context{grid-template-columns:minmax(220px,300px) minmax(280px,1fr)}
  .product-context{grid-template-columns:minmax(150px,1fr) minmax(130px,180px)}
  .product-context .metrics{grid-column:1 / -1}
  .workspace,.workspace.operation-mode{grid-template-columns:280px 1fr}
  .destination-panel,.right-panel{grid-column:1 / -1;min-height:360px}
}
@media (max-width:820px){
  .topbar{height:auto;grid-template-columns:1fr;align-items:stretch;gap:8px}
  .topbar-context{grid-template-columns:1fr}
  .product-context{grid-template-columns:1fr}
  .catalog-list-picker{grid-template-columns:1fr}
  .top-actions{width:100%;justify-content:space-between;flex-wrap:wrap}
  .workspace,.workspace.operation-mode{grid-template-columns:1fr;padding:10px}
  .left-panel,.destination-panel,.right-panel,.content-panel{border-radius:14px}
  .data-table th,.data-table td{padding:10px 12px}
  .metrics{width:100%;overflow:auto}
  .move-layout{grid-template-columns:1fr;min-height:560px}
  .load-grid,.load-preview,.load-map-row,.load-settings,.publish-dashboard{grid-template-columns:1fr}
  .list-connections{grid-template-columns:1fr}
  .list-connect-action{flex-wrap:wrap}
}
