:root{
  --bg:#0e0f12;--panel:#15171c;--panel2:#1a1d23;--panel3:#101216;--line:#2a2e37;
  --text:#f4f5f7;--muted:#9ea6b2;--muted2:#747d8b;--accent:#0385e8;--accent2:#2299f2;
  --ok:#6ed6a3;--danger:#ff8d96;--radius:18px;--client-width:1080px;
}
*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}body{margin:0;font-family:"DM Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);font-size:15px}button,input,select{font:inherit}.hidden{display:none!important}
.app-shell{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr)}
.sidebar{border-right:1px solid var(--line);padding:24px 18px;position:sticky;top:0;height:100vh;display:grid;grid-template-columns:44px 1fr;grid-auto-rows:min-content;gap:0 12px;background:#111318}
.app-icon{width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,#0385e8,#0069bd);display:grid;place-items:center;font-weight:800;letter-spacing:-.04em}.app-name{display:flex;flex-direction:column;justify-content:center}.app-name span{color:var(--muted);font-size:13px;margin-top:2px}.sidebar nav{grid-column:1/-1;display:grid;gap:8px;margin-top:34px}.nav-btn{border:0;background:transparent;color:var(--muted);text-align:left;padding:12px 14px;border-radius:12px;cursor:pointer;font-size:15px}.nav-btn:hover,.nav-btn.active{background:#1b1e25;color:var(--text)}.sidebar-note{grid-column:1/-1;align-self:end;margin-top:auto;font-size:13px;line-height:1.45;color:var(--muted);padding-top:30px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:99px;background:var(--ok);margin-right:7px}
main{min-width:0}.topbar{height:94px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;background:rgba(14,15,18,.92);backdrop-filter:blur(16px);z-index:20}.eyebrow{font-size:12px;letter-spacing:.13em;font-weight:800;color:#7d8695;margin:0 0 7px}.brand-name-input{background:none;border:0;color:var(--text);font-size:20px;font-weight:700;width:min(600px,55vw);padding:0;outline:none}.top-actions{display:flex;gap:10px}.btn{border:1px solid var(--line);border-radius:11px;padding:10px 14px;cursor:pointer;background:var(--panel2);color:var(--text)}.btn.primary{background:var(--accent);border-color:var(--accent)}.btn.secondary{background:#20232b}.btn.ghost{background:transparent}.btn:disabled{opacity:.45;cursor:not-allowed}.danger-lite{background:transparent;border-color:#4c3036;color:#ff9ba4}.danger-lite:hover{background:#2b191e}
.view{display:none;padding:40px 34px 84px}.view.active{display:block}.admin-view{max-width:1460px}.page-intro{margin-bottom:30px}.page-intro h1{font-size:34px;margin:0 0 10px;letter-spacing:-.04em}.page-intro>p:last-child{color:var(--muted);max-width:840px;line-height:1.55;margin:0;font-size:16px}
.admin-section{margin-top:54px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}.section-head h2{font-size:25px;letter-spacing:-.035em;margin:0 0 7px}.section-head p:last-child{color:var(--muted);margin:0;line-height:1.5;font-size:15px}.stack{display:grid;gap:18px}
.logo-admin-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:20px}.logo-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.asset-kicker{margin:0 0 5px;color:var(--muted2);font-size:13px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.asset-title-input{border:0;background:transparent;color:var(--text);font-size:23px;font-weight:700;padding:0;outline:none;width:min(540px,62vw)}.asset-help{margin:7px 0 0;color:var(--muted);font-size:14px;line-height:1.45}.head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.visibility-toggle{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:15px;white-space:nowrap}.visibility-toggle input{accent-color:var(--accent);width:16px;height:16px}
.positive-row{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:15px}.admin-preview-box{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#111318}.preview-top{display:flex;justify-content:space-between;gap:10px;padding:11px 13px;border-bottom:1px solid var(--line);color:var(--muted);font-size:14px}.positive-state,.negative-state{color:var(--ok);font-size:13px}.admin-logo-stage{height:270px;padding:30px;display:grid;place-items:center;overflow:hidden;background:#f5f5f5}.admin-logo-stage.dark{background:#17191e}.checker{background-color:#f5f5f5;background-image:linear-gradient(45deg,#e8e8e8 25%,transparent 25%),linear-gradient(-45deg,#e8e8e8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e8e8e8 75%),linear-gradient(-45deg,transparent 75%,#e8e8e8 75%);background-size:22px 22px;background-position:0 0,0 11px,11px -11px,-11px 0}.svg-preview-img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center}.positive-actions{display:grid;align-content:start;gap:10px}.upload-drop{border:1px dashed #49505e;border-radius:13px;padding:18px;display:grid;place-items:center;text-align:center;min-height:92px;color:#cfd3dc;cursor:pointer;background:#121419;font-size:15px;line-height:1.4}.upload-drop:hover{background:#171a21;border-color:#646c7d}.upload-drop input{display:none}.compact-upload{min-height:auto;padding:12px 14px;border-radius:11px}.generated-note{padding:14px;border:1px solid var(--line);border-radius:12px;background:#111318;color:var(--muted);font-size:14px;line-height:1.45}.generated-note strong{display:block;color:var(--text);margin-bottom:4px}.regenerate-btn{width:100%}
.negatives-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:22px 0 12px}.negatives-head h3{margin:0 0 4px;font-size:18px}.negatives-head p{margin:0;color:var(--muted);font-size:14px}.negatives-list{display:grid;gap:12px}.empty-state{border:1px dashed #3a404d;border-radius:13px;padding:22px;text-align:center;color:var(--muted);font-size:14px}.negative-card{border:1px solid var(--line);border-radius:14px;background:#111318;overflow:hidden}.negative-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid var(--line)}.negative-name-wrap{display:flex;align-items:center;gap:10px;min-width:0}.negative-name{background:transparent;border:0;color:var(--text);font-size:16px;font-weight:700;outline:none;min-width:160px}.negative-kind{font-size:12px;color:var(--muted);padding:4px 7px;border:1px solid var(--line);border-radius:999px}.negative-head-actions{display:flex;gap:10px;align-items:center}.swatch-control{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.swatch-control input{width:30px;height:30px;padding:0;border:0;background:transparent}.negative-body-grid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(360px,1.4fr);gap:14px;padding:14px}.small-preview-box .admin-logo-stage{height:210px;padding:25px}.negative-config{display:grid;align-content:start;gap:12px}.mode-switch{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:14px}.mode-switch input{accent-color:var(--accent)}.mapping-rows{display:grid;gap:8px}.mapping-row{display:grid;grid-template-columns:minmax(130px,1fr) 28px minmax(155px,1fr);align-items:center;gap:8px}.color-token{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;background:#0e1014;padding:8px 10px;font-size:13px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.swatch{width:22px;height:22px;border-radius:6px;border:1px solid rgba(255,255,255,.2)}.map-arrow{text-align:center;color:#5f6877}.mapping-target{display:flex;align-items:center;gap:8px}.mapping-target input[type=color]{width:34px;height:34px;border:0;background:transparent}.mapping-target input[type=text]{min-width:0;width:110px;border:1px solid var(--line);background:#0e1014;color:var(--text);border-radius:9px;padding:8px;font-size:13px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.symbol-mode-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.symbol-mode-row select{border:1px solid var(--line);background:#101216;color:var(--text);border-radius:10px;padding:10px 12px;font-size:15px}.symbol-drop{min-height:130px}.symbol-preview-wrap{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px}.symbol-source-note{padding:14px;border:1px solid var(--line);border-radius:12px;background:#111318;color:var(--muted);font-size:14px;line-height:1.45}.symbol-source-note strong{display:block;color:var(--text);margin-bottom:4px}
.avatar-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.avatar-admin-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel)}.avatar-admin-stage{aspect-ratio:1;background:#fff;display:grid;place-items:center;padding:15%}.avatar-admin-stage.dark{background:#16181c}.avatar-admin-stage .svg-preview-img{width:100%;height:100%}.avatar-admin-body{padding:10px 11px}.avatar-admin-title{font-size:14px;font-weight:700;line-height:1.35;margin-bottom:7px}.avatar-admin-check{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:13px}.avatar-admin-check input{accent-color:var(--accent)}
.palette-admin{display:grid;gap:10px}.palette-row{display:grid;grid-template-columns:52px minmax(180px,.95fr) minmax(175px,.85fr) minmax(175px,.85fr) minmax(190px,.8fr);gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);padding:13px;border-radius:13px}.palette-swatch{width:42px;height:42px;border-radius:10px;border:1px solid rgba(255,255,255,.15)}.field{display:grid;gap:5px}.field label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7b8492}.field input{width:100%;border:1px solid var(--line);background:#101216;border-radius:9px;padding:10px 11px;color:var(--text);font-size:14px}.principal-check{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px;line-height:1.35}.principal-check input{accent-color:var(--accent)}

/* CLIENT */
.client-view{max-width:var(--client-width);margin:0 auto;padding-left:0;padding-right:0}.client-hero{padding:34px 0 26px;border-bottom:1px solid var(--line);margin-bottom:40px}.client-hero h1{font-size:42px;letter-spacing:0;margin:0 0 10px}.client-hero>p:last-child{color:var(--muted);margin:0;font-size:16px}.client-section-block{margin-top:48px}.client-section-heading{margin-bottom:18px}.client-section-heading h2{font-size:27px;margin:0;letter-spacing:-.04em}.asset-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,500px));gap:24px;align-items:start}.asset-client-card{width:100%;max-width:500px}.asset-square{width:100%;aspect-ratio:1;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--panel);display:grid;grid-template-rows:1fr 52px}.asset-preview-stage{min-height:0;padding:44px;display:grid;place-items:center;background:#fff;transition:background .18s}.asset-preview-stage.dark{background:#17191e}.version-strip{border-top:1px solid var(--line);background:#15171c;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 14px}.version-dot{width:20px;height:20px;border-radius:50%;border:1px solid rgba(255,255,255,.38);cursor:pointer;box-shadow:0 0 0 0 rgba(3,133,232,0);transition:.15s}.version-dot.active{box-shadow:0 0 0 3px #15171c,0 0 0 5px var(--accent)}.version-dot.white{border-color:#707784}.asset-caption{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 2px 0}.asset-caption strong{font-size:16px}.asset-caption span{color:var(--muted);font-size:13px}
.download-dropdown{margin-top:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}.download-dropdown>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 16px;cursor:pointer;font-size:15px;font-weight:700}.download-dropdown>summary::-webkit-details-marker{display:none}.download-dropdown>summary:hover{background:#191c22}.download-panel-inner{border-top:1px solid var(--line);padding:14px}.download-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#0f1115;border:1px solid var(--line);border-radius:10px;padding:4px}.download-tab{border:0;background:transparent;color:var(--muted);padding:8px 10px;border-radius:7px;cursor:pointer;font-weight:700}.download-tab.active{background:#262a33;color:var(--text)}.download-tab-pane{padding-top:14px}.check-group{margin-bottom:14px}.check-group-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7d8695;margin-bottom:8px;font-weight:700}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dl-check{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:9px 10px;color:#cbd0d9;font-size:14px;background:#111318}.dl-check input{accent-color:var(--accent)}.dl-check.disabled{opacity:.45}.download-hint{font-size:13px;color:var(--muted);line-height:1.45;margin-bottom:12px}.download-action{width:100%;border:0;border-radius:10px;padding:12px 14px;font-weight:700;background:var(--accent);color:white;cursor:pointer}.download-action:disabled{background:#272b34;color:#6f7784;cursor:not-allowed}
.avatars-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.wide-btn{min-width:190px}.client-avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,200px));gap:18px}.client-avatar-card{width:200px}.client-avatar-preview{width:200px;height:200px;border-radius:18px;overflow:hidden;display:grid;place-items:center;padding:15%;background:#fff;transition:border-radius .22s ease}.client-avatar-preview.dark{background:#16181c}.client-avatar-card:hover .client-avatar-preview{border-radius:50%}.client-avatar-name{font-size:14px;font-weight:700;margin:9px 0 7px;line-height:1.35}.client-avatar-download{width:100%;border:1px solid var(--line);border-radius:9px;background:#171a20;color:var(--text);padding:9px;cursor:pointer;font-size:13px}.client-avatar-download:hover{background:#1d2129}
.client-palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.client-color{background:var(--panel);border:1px solid var(--line);border-radius:15px;overflow:hidden}.client-color.principal{border-color:#075d9e}.client-color-swatch{height:105px}.client-color-body{padding:13px}.client-color-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.client-color-name{font-size:15px;font-weight:700}.principal-badge{padding:4px 7px;border-radius:999px;background:#082e49;border:1px solid #075d9e;color:#bfe4ff;font-size:11px;font-weight:700}.copy-line{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding:9px 0;font-size:13px}.copy-line span{width:54px;color:var(--muted)}.copy-line code{flex:1;font-size:13px}.copy-line button{border:0;background:transparent;color:#63baff;cursor:pointer;font-size:13px}.toast{position:fixed;right:24px;bottom:24px;background:#242833;border:1px solid #3a4050;border-radius:12px;padding:12px 14px;font-size:13px;box-shadow:0 18px 50px rgba(0,0,0,.35);z-index:100}

@media(max-width:1220px){.palette-row{grid-template-columns:48px 1fr 1fr 1fr}.principal-check{grid-column:2/5}.client-view{padding-left:20px;padding-right:20px}.asset-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;grid-template-columns:42px 1fr auto;border-right:0;border-bottom:1px solid var(--line);padding:13px 16px}.sidebar nav{grid-column:3;grid-row:1;display:flex;margin:0}.sidebar-note{display:none}.topbar{top:70px;padding:0 18px}.view{padding:28px 18px 60px}.admin-view{max-width:none}.positive-row,.symbol-preview-wrap{grid-template-columns:1fr}.negative-body-grid{grid-template-columns:1fr}.asset-card-grid{grid-template-columns:1fr}.asset-client-card{max-width:500px}.client-view{padding-left:18px;padding-right:18px}.client-hero h1{font-size:34px}}
@media(max-width:650px){.top-actions .ghost{display:none}.section-head,.logo-card-head,.negatives-head,.avatars-heading-row{align-items:flex-start;flex-direction:column}.head-actions{justify-content:flex-start}.positive-row{grid-template-columns:1fr}.admin-logo-stage{height:230px}.negative-body-grid{padding:10px}.mapping-row{grid-template-columns:1fr 24px 1fr}.palette-row{grid-template-columns:45px 1fr}.palette-row .field,.principal-check{grid-column:2}.asset-preview-stage{padding:30px}.check-grid{grid-template-columns:1fr}.client-avatar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-avatar-card,.client-avatar-preview{width:100%}.client-avatar-preview{height:auto;aspect-ratio:1}.client-hero{padding-top:16px}}

/* Strict containment for wide Admin preview stages */
.admin-logo-stage{position:relative;padding:0}
.admin-logo-stage .svg-preview-img{position:absolute;inset:30px;width:calc(100% - 60px);height:calc(100% - 60px);max-width:none;max-height:none;object-fit:contain;object-position:center}
.small-preview-box .admin-logo-stage .svg-preview-img{inset:24px;width:calc(100% - 48px);height:calc(100% - 48px)}

/* ===== v0.3.0 ===== */
.file-button{position:relative;display:inline-flex;align-items:center;justify-content:center}
.file-button input{display:none}

/* Avatares manuales */
.manual-asset-name{width:100%;background:#101216;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:7px 8px;font-size:13px;font-weight:650;margin-bottom:7px}
.mini-remove{width:100%;margin-top:8px;border:1px solid #493036;background:transparent;color:#ff9ca4;border-radius:8px;padding:7px 8px;cursor:pointer;font-size:12px}
.mini-remove:hover{background:#2a191d}

/* Favicons */
.favicon-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.favicon-admin-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}
.favicon-admin-preview{height:150px;background:#0f1115;display:grid;place-items:center;padding:34px}
.favicon-admin-preview .svg-preview-img{width:82px;height:82px;object-fit:contain}
.favicon-admin-body{padding:11px;display:grid;gap:6px}
.favicon-admin-body>strong{font-size:14px}
.favicon-admin-body>span{font-size:12px;color:var(--muted)}
.client-favicon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.client-favicon-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:13px}
.client-favicon-preview{height:120px;border-radius:11px;background:#0f1115;display:grid;place-items:center;padding:25px}
.client-favicon-preview .svg-preview-img{width:72px;height:72px;object-fit:contain}
.client-favicon-name{font-size:14px;font-weight:700;margin:10px 0 8px}
.favicon-downloads{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.favicon-downloads button{border:1px solid var(--line);background:#171a20;color:var(--text);border-radius:8px;padding:8px 5px;cursor:pointer;font-size:12px}
.favicon-downloads button:hover{background:#1d2129;border-color:#3e4654}
.section-explainer{max-width:720px;margin:8px 0 0;color:var(--muted);font-size:14px;line-height:1.5}

/* Firma del diseñador, como pieza colgante desde el borde superior */
.client-view{position:relative;overflow:visible}
.client-content{position:relative;z-index:1}
.designer-hanger{position:absolute;top:-40px;right:-72px;width:112px;height:auto;z-index:8;display:block}
#clientBrandName{letter-spacing:0!important}

/* Acento de interfaz alineado con la firma */
.app-icon{background:linear-gradient(135deg,#0385e8,#0069bd)}
.nav-btn.active{box-shadow:inset 3px 0 0 var(--accent)}
.download-tab.active{box-shadow:inset 0 -2px 0 var(--accent)}

@media(max-width:1220px){
  .designer-hanger{right:6px;top:-28px;width:94px}
  .client-hero{padding-right:112px}
}
@media(max-width:700px){
  .designer-hanger{right:12px;top:-20px;width:72px}
  .client-hero{padding-right:86px}
  .favicon-downloads{grid-template-columns:1fr}
}

/* ===== v0.4.0 ===== */
/* Pack completo: CTA reservado; la generación del ZIP se define más adelante */
.client-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:28px}
.client-hero-copy{min-width:0}
.client-hero-copy>p:last-child{color:var(--muted);margin:0;font-size:16px}
.brand-pack-btn{flex:0 0 auto;min-width:220px;margin-bottom:2px}

/* Versión negra: subsección con la misma jerarquía que Versiones negativas */
.black-version-section{margin-top:22px;padding-top:1px;border-top:1px solid rgba(255,255,255,.035)}
.black-version-head{margin-top:20px}
.black-version-card{border:1px solid var(--line);border-radius:14px;background:#111318;overflow:hidden}
.black-version-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border-bottom:1px solid var(--line)}
.black-version-copy{display:grid;gap:4px}
.black-version-copy strong{font-size:16px}
.black-version-copy span{font-size:14px;color:var(--muted);line-height:1.45}
.black-base-field{display:grid;gap:6px;min-width:210px;color:var(--muted);font-size:13px}
.black-base-field select{border:1px solid var(--line);background:#0e1014;color:var(--text);border-radius:9px;padding:9px 10px;font-size:14px}
.black-preview-box{border:0;border-radius:0}
.black-preview-box .admin-logo-stage{height:210px}
.black-stage{background-color:#f5f5f5}

/* Evaluación de contraste de negativas */
.contrast-badge{font-size:12px;font-weight:700;padding:4px 7px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.contrast-high{color:#9be9bf;border-color:#315f49;background:#12251c}
.contrast-medium{color:#ffd992;border-color:#6f5630;background:#2a2112}
.contrast-low{color:#ffadb4;border-color:#71404a;background:#2a191d}
.contrast-warning{border:1px solid #6f5630;background:#211b11;color:#e7c582;border-radius:10px;padding:9px 11px;font-size:13px;line-height:1.4;margin-bottom:9px}
.contrast-warning:not(.hidden)+.mapping-rows{margin-top:0}

/* Equivalencias: origen fijo + ficha destino reordenable por drag & drop */
.mapping-row{grid-template-columns:minmax(130px,1fr) 28px minmax(250px,1.35fr)}
.mapping-row.drag-over .mapping-target-card{border-color:var(--accent);box-shadow:0 0 0 2px rgba(3,133,232,.17)}
.mapping-target-card{display:grid;grid-template-columns:20px 28px 112px minmax(120px,1fr);align-items:center;gap:8px;border:1px solid var(--line);background:#0e1014;border-radius:10px;padding:7px 8px;cursor:grab;transition:border-color .14s,box-shadow .14s,opacity .14s}
.mapping-target-card.dragging{opacity:.45}
.drag-handle{color:#687180;letter-spacing:-2px;font-size:17px;cursor:grab;user-select:none;text-align:center}
.target-swatch{width:26px;height:26px;border-radius:6px;border:1px solid rgba(255,255,255,.2);display:block}
.checker-mini{background-color:#f4f4f4;background-image:linear-gradient(45deg,#d9d9d9 25%,transparent 25%),linear-gradient(-45deg,#d9d9d9 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#d9d9d9 75%),linear-gradient(-45deg,transparent 75%,#d9d9d9 75%);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0}
.mapping-target-mode{width:100%;border:1px solid var(--line);background:#151820;color:var(--text);border-radius:8px;padding:7px 8px;font-size:13px}
.mapping-color-controls{display:grid;grid-template-columns:34px minmax(92px,1fr);gap:7px;align-items:center;min-width:0}
.mapping-color-controls input[type=color]{width:34px;height:32px;border:0;padding:0;background:transparent}
.mapping-text-input{width:100%;min-width:0;border:1px solid var(--line);background:#151820;color:var(--text);border-radius:8px;padding:7px 8px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.mapping-target-card.is-transparent .mapping-target-mode{grid-column:3/5}
.mapping-target-card.is-transparent .target-swatch{opacity:.95}

@media(max-width:900px){
  .client-hero{align-items:flex-start;flex-direction:column}
  .brand-pack-btn{min-width:0;width:100%;max-width:320px}
  .mapping-target-card{grid-template-columns:20px 28px 105px minmax(100px,1fr)}
}
@media(max-width:650px){
  .client-hero{padding-right:86px}
  .brand-pack-btn{width:auto;max-width:none}
  .mapping-row{grid-template-columns:1fr}
  .map-arrow{display:none}
  .mapping-target-card{grid-template-columns:20px 28px 1fr;grid-template-areas:"handle swatch mode" "handle controls controls"}
  .drag-handle{grid-area:handle}.target-swatch{grid-area:swatch}.mapping-target-mode{grid-area:mode}.mapping-color-controls{grid-area:controls}
  .mapping-target-card.is-transparent .mapping-target-mode{grid-column:auto}
  .black-version-controls{align-items:flex-start;flex-direction:column}
  .black-base-field{width:100%;min-width:0}
}

/* ===== v0.5.0 ===== */
/* CTA principal del portal cliente */
.client-hero{display:block;padding-top:34px;padding-bottom:30px}
.client-hero-copy{max-width:850px}
.client-hero-copy>p:last-of-type{max-width:760px;line-height:1.55}
.brand-pack-btn{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-width:320px;min-height:54px;margin:22px 0 0;padding:14px 22px;border-radius:14px;font-size:16px;font-weight:750;box-shadow:0 10px 28px rgba(3,133,232,.18)}
.brand-pack-btn:hover{background:var(--accent2);border-color:var(--accent2)}
.btn-icon{width:22px;height:22px;flex:0 0 22px}
.download-all-btn{min-width:178px;background:#191c22!important;border-color:#343944!important;color:#d4d8df!important;font-weight:650;box-shadow:none!important}
.download-all-btn:hover{background:#20242c!important;border-color:#424957!important;color:var(--text)!important}

/* Selectores de versión: la miniatura representa la paleta real de cada versión */
.version-dot{width:20px;height:20px;padding:0;background-clip:padding-box!important;border:1px solid rgba(255,255,255,.5);position:relative}
.version-dot::after{content:"";position:absolute;inset:-1px;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(0,0,0,.16);pointer-events:none}

/* Flechas SVG reales para desplegables de descarga */
.download-dropdown>summary{min-height:52px;color:#e7e9ed}
.summary-chevron{width:22px;height:22px;flex:0 0 22px;color:#c4cad3;transition:transform .18s ease,color .18s ease}
.download-dropdown>summary:hover .summary-chevron{color:#fff}
.download-dropdown[open]>summary .summary-chevron{transform:rotate(180deg)}

/* Origen de color: reutilización por drag & drop + localizador zebra */
.source-color-token{cursor:grab;user-select:none;transition:border-color .14s,background .14s,box-shadow .14s,opacity .14s}
.source-color-token:hover{border-color:#4a5668;background:#13171d;box-shadow:0 0 0 2px rgba(3,133,232,.08)}
.source-color-token:active{cursor:grabbing}
.source-color-token.dragging-source{opacity:.48}
.mapping-target-card.color-drop-over{border-color:var(--accent);box-shadow:0 0 0 3px rgba(3,133,232,.18);background:#101923}
.negative-stage.locating-color::after{content:"Localizando color";position:absolute;right:10px;bottom:10px;background:rgba(14,15,18,.82);border:1px solid rgba(255,255,255,.13);border-radius:999px;padding:5px 8px;color:#d8dde5;font-size:11px;letter-spacing:.02em;pointer-events:none}

/* Favicons transparentes: checker para que se entienda que no hay fondo */
.favicon-transparent-preview{background-color:#f5f5f5!important;background-image:linear-gradient(45deg,#e1e1e1 25%,transparent 25%),linear-gradient(-45deg,#e1e1e1 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e1e1e1 75%),linear-gradient(-45deg,transparent 75%,#e1e1e1 75%)!important;background-size:16px 16px!important;background-position:0 0,0 8px,8px -8px,-8px 0!important}

@media(max-width:900px){
  .client-hero{display:block}
  .brand-pack-btn{width:auto;max-width:100%;min-width:280px}
}
@media(max-width:650px){
  .brand-pack-btn{width:100%;min-width:0;font-size:15px}
  .download-all-btn{min-width:0}
}

/* ===== v0.6.0 ===== */
/* Versión negra: mismo ancho/estructura de preview que las negativas */
.black-version-card{overflow:hidden}
.black-version-body-grid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(360px,1.4fr);gap:14px;padding:14px}
.black-version-controls{border:0;padding:4px 0;display:grid;align-content:start;justify-content:stretch;gap:16px}
.black-preview-box{border:1px solid var(--line);border-radius:14px}
.black-preview-box .admin-logo-stage{height:210px}

/* Chip sutil de control de calidad del SVG */
.preview-top{overflow:visible;position:relative}
.positive-status{display:flex;align-items:center;gap:8px;margin-left:auto}
.svg-issues-popover{position:relative;display:inline-block}
.svg-issues-popover>summary{list-style:none}
.svg-issues-popover>summary::-webkit-details-marker{display:none}
.svg-issue-chip{cursor:pointer;font-size:11px;font-weight:700;line-height:1;padding:5px 8px;border-radius:999px;border:1px solid #66552e;background:#261f10;color:#e2c982;white-space:nowrap}
.svg-issue-chip.issue-important{border-color:#70424a;background:#2a191d;color:#ffadb4}
.svg-issue-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:50;width:min(360px,72vw);padding:12px;border:1px solid #3a404c;border-radius:12px;background:#11141a;box-shadow:0 16px 40px rgba(0,0,0,.38);color:#cfd4dc;font-size:12px;line-height:1.45}
.svg-issue-panel>strong{display:block;color:var(--text);font-size:13px;margin-bottom:7px}
.svg-issue-panel>span{display:block;color:var(--muted);margin-top:8px}
.svg-issue-line{padding:5px 0;border-top:1px solid rgba(255,255,255,.055)}
.svg-issue-line.important{color:#ffc0c5}

/* Zebra/localizador: más legible y con aislamiento del resto */
.negative-stage.locating-color{box-shadow:inset 0 0 0 2px rgba(3,133,232,.45)}
.negative-stage.locating-color::after{content:"Localizando color";position:absolute;right:10px;bottom:10px;background:rgba(5,10,15,.92);border:1px solid rgba(3,133,232,.58);border-radius:999px;padding:6px 9px;color:#e8f4ff;font-size:11px;font-weight:700;letter-spacing:.02em;pointer-events:none;box-shadow:0 5px 16px rgba(0,0,0,.24)}

/* Símbolo de marca registrada: configuración y edición directa */
.registered-config{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#111318}
.registered-config-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.registered-config-head>div{display:grid;gap:3px}
.registered-config-head strong{font-size:14px}
.registered-config-head span{font-size:12px;color:var(--muted);line-height:1.4}
.registered-controls-grid{display:grid;grid-template-columns:minmax(175px,1.5fr) repeat(3,minmax(100px,.8fr));gap:9px}
.registered-controls-grid label{display:grid;gap:5px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.registered-controls-grid select,.registered-controls-grid input[type=number]{width:100%;border:1px solid var(--line);background:#0e1014;color:var(--text);border-radius:8px;padding:8px 9px;font-size:12px;text-transform:none;letter-spacing:0}
.registered-custom-color{grid-column:1/-1;grid-template-columns:auto 46px!important;align-items:center;justify-content:start}
.registered-custom-input{width:42px;height:32px;border:0;background:transparent;padding:0}
.registered-config-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px;line-height:1.4}
.registered-config-foot .btn{padding:7px 9px;font-size:12px}
.registered-editor-overlay{position:absolute;z-index:6;cursor:move;touch-action:none;user-select:none;filter:drop-shadow(0 0 0 transparent)}
.registered-editor-overlay.editing{filter:drop-shadow(0 0 5px rgba(3,133,232,.7))}
.registered-editor-overlay img{display:block;width:100%;height:100%;pointer-events:none}
.registered-resize-handle{position:absolute;right:-5px;bottom:-5px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--accent);cursor:nwse-resize;box-shadow:0 1px 5px rgba(0,0,0,.45)}

@media(max-width:900px){
  .black-version-body-grid{grid-template-columns:1fr}
  .registered-controls-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
  .registered-controls-grid{grid-template-columns:1fr}
  .registered-config-head,.registered-config-foot{align-items:flex-start;flex-direction:column}
  .svg-issue-panel{right:auto;left:0;width:min(330px,78vw)}
}
/* Ajuste compacto de controles ® dentro de la columna lateral de cada positivo */
.registered-controls-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.registered-controls-grid>label:first-child{grid-column:1/-1}
.registered-custom-color{grid-column:1/-1!important}
@media(max-width:900px){.registered-controls-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.registered-controls-grid{grid-template-columns:1fr}.registered-controls-grid>label:first-child{grid-column:auto}.registered-custom-color{grid-column:auto!important}}
.registered-editor-overlay::before{content:"";position:absolute;inset:-7px;border:1px dashed transparent;border-radius:5px;background:rgba(3,133,232,.001)}
.registered-editor-overlay:hover::before,.registered-editor-overlay.editing::before{border-color:rgba(3,133,232,.55)}
.registered-resize-handle{right:-5px;bottom:-5px;width:9px;height:9px}

/* ===== v0.7.0 ===== */
/* Jerarquía de secciones principales */
.admin-section{margin-top:62px}
.admin-section>.section-head{align-items:center;padding:18px 16px 17px;margin-bottom:22px;background:#121419;border-top:1px solid #252a33;border-bottom:1px solid #303640;border-radius:12px}
.admin-section>.section-head h2{font-size:28px;line-height:1.05;margin-bottom:8px}
.logo-admin-card>.logo-card-head{margin:-18px -18px 20px;padding:17px 18px 16px;background:#17191e;border-bottom:1px solid #30343d;border-radius:17px 17px 0 0}
.section-title-line,.asset-title-line{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}
.section-title-line h2{margin:0!important}
.asset-title-line .asset-title-input{width:auto;max-width:min(540px,62vw)}
.asset-title-line .visibility-toggle,.section-title-line .visibility-toggle{font-size:13px;color:#aeb6c2}

/* Preview de Símbolo solo: contenedor compacto */
.symbol-positive-row{grid-template-columns:minmax(320px,520px) 280px;justify-content:start;align-items:start}
.symbol-preview-box{width:min(520px,100%)}
.symbol-preview-box .symbol-stage{height:auto!important;aspect-ratio:4/3;min-height:300px}
.symbol-card .asset-title-line{align-items:center}

/* Negativos, negro y escala de grises: preview más ancho y con más aire */
.negative-body-grid,.black-version-body-grid,.grayscale-version-body-grid{grid-template-columns:minmax(360px,1.08fr) minmax(420px,1.25fr);gap:16px}
.small-preview-box .admin-logo-stage,.black-preview-box .admin-logo-stage,.grayscale-preview-box .admin-logo-stage{height:242px!important}
.small-preview-box .admin-logo-stage .svg-preview-img,.black-preview-box .admin-logo-stage .svg-preview-img,.grayscale-preview-box .admin-logo-stage .svg-preview-img{inset:31px;width:calc(100% - 62px);height:calc(100% - 62px)}

/* Editor ®: más espacio, tamaño inicial mayor y chrome sólo en hover */
.positive-stage .svg-preview-img{inset:55px;width:calc(100% - 110px);height:calc(100% - 110px)}
.registered-editor-overlay::before{border-color:transparent!important}
.registered-editor-overlay:hover::before{border-color:rgba(3,133,232,.62)!important}
.registered-resize-handle{opacity:0;pointer-events:none;transition:opacity .12s ease}
.registered-editor-overlay:hover .registered-resize-handle{opacity:1;pointer-events:auto}
.registered-editor-overlay.editing{filter:none}

/* Zebra técnico: sólo líneas finas sobre las formas afectadas */
.negative-stage.locating-color{box-shadow:none!important}
.negative-stage.locating-color::after{display:none!important}

/* Chips de revisión: compactos pero perceptibles */
.warning-chip-icon{width:13px;height:13px;flex:0 0 13px}
.svg-issue-chip,.review-chip{display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-size:11px;font-weight:800;line-height:1;padding:5px 8px;border-radius:999px;border:1px solid #a26819;background:#3a2509;color:#ffd278;white-space:nowrap}
.svg-issue-chip.issue-important{border-color:#c44a52;background:#43171b;color:#ffb4ba}
.review-chip{cursor:default}
.avatar-warning{margin:2px 0 8px}
.palette-review-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:2px 2px 8px;color:var(--muted);font-size:12px}

/* Escala de grises opcional */
.grayscale-version-section{margin-top:24px}
.grayscale-version-card{border:1px solid var(--line);border-radius:14px;background:#111318;overflow:hidden}
.grayscale-version-body-grid{display:grid;padding:14px}
.grayscale-controls{display:grid;align-content:start;gap:14px}
.grayscale-rows{display:grid;gap:9px}
.grayscale-row{display:grid;grid-template-columns:minmax(130px,1fr) 28px minmax(280px,1.25fr);gap:8px;align-items:center}
.grayscale-target{display:grid;grid-template-columns:118px minmax(0,1fr);gap:9px;align-items:center;border:1px solid var(--line);border-radius:10px;background:#0e1014;padding:8px}
.grayscale-target select{border:1px solid var(--line);background:#151820;color:var(--text);border-radius:8px;padding:7px 8px;font-size:12px}
.grayscale-slider-wrap{display:grid;grid-template-columns:minmax(120px,1fr) 58px auto 28px;align-items:center;gap:7px;color:var(--muted);font-size:12px}
.grayscale-slider{accent-color:var(--accent);width:100%}
.grayscale-number{width:58px;border:1px solid var(--line);background:#151820;color:var(--text);border-radius:8px;padding:7px 6px;text-align:right}
.grayscale-swatch{width:26px;height:26px;border-radius:6px;border:1px solid rgba(255,255,255,.2)}
.grayscale-target.is-transparent{grid-template-columns:1fr}

/* Avatares agrupados por origen */
.avatar-admin-groups{display:grid;gap:28px}
.avatar-origin-group{display:grid;gap:10px}
.avatar-origin-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:#8d97a6;padding-bottom:8px;border-bottom:1px solid #282d36}
.avatar-origin-group .avatar-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,190px));gap:12px}

/* Favicon cliente: paquete completo por variante */
.favicon-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.favicon-heading-row>div{min-width:0}
.client-favicon-download{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:#171a20;color:var(--text);border-radius:9px;padding:9px 8px;cursor:pointer;font-size:12px;font-weight:650}
.client-favicon-download:hover{background:#1d2129;border-color:#3e4654}
.compact-icon{width:16px!important;height:16px!important;flex-basis:16px!important}
.favicon-downloads{display:none!important}

/* Pantone siempre en mayúsculas */
.pantone{text-transform:uppercase}

@media(max-width:980px){
  .negative-body-grid,.black-version-body-grid,.grayscale-version-body-grid{grid-template-columns:1fr}
  .symbol-positive-row{grid-template-columns:1fr}
  .symbol-preview-box{max-width:520px}
}
@media(max-width:650px){
  .admin-section>.section-head{padding:15px 13px}
  .admin-section>.section-head h2{font-size:26px}
  .grayscale-row{grid-template-columns:1fr}
  .grayscale-row .map-arrow{display:none}
  .grayscale-target{grid-template-columns:1fr}
  .grayscale-slider-wrap{grid-template-columns:minmax(90px,1fr) 58px auto 28px}
  .favicon-heading-row{align-items:flex-start;flex-direction:column}
}

/* Ajuste pendiente posterior a v0.7.0: ancho de copys y acciones de encabezado */
.admin-section>.section-head>div:first-child{min-width:0}
.admin-section>.section-head>div:first-child>p:last-child{max-width:860px}
.admin-section>.section-head .head-actions{flex:0 0 auto}
.admin-section>.section-head .file-button{white-space:nowrap;min-width:max-content}

/* ===== v0.7.1 =====
   Ajuste CSS: encabezados Admin más compactos y botones de carga sin salto de línea. */
.admin-section>.section-head>div:first-child{
  min-width:0;
  flex:1 1 auto;
}
.admin-section>.section-head>div:first-child>p:last-child{
  max-width:760px;
}
.admin-section>.section-head .head-actions{
  flex:0 0 auto;
  align-self:center;
}
.admin-section>.section-head .file-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-width:max-content;
  white-space:nowrap;
  flex:0 0 auto;
}
@media(max-width:900px){
  .admin-section>.section-head>div:first-child>p:last-child{max-width:680px}
}
@media(max-width:650px){
  .admin-section>.section-head>div:first-child>p:last-child{max-width:100%}
  .admin-section>.section-head .file-button{max-width:100%}
}

/* ===== v0.8.0 ===== */
/* Secciones principales: una única tarjeta, encabezado neutro y cuerpo contenido */
.admin-section{
  margin-top:36px!important;
  background:#101216;
  border:1px solid #2b3039;
  border-radius:16px;
  overflow:hidden;
}
.admin-section>.section-head{
  margin:0!important;
  padding:22px 22px 20px!important;
  background:#181b21!important;
  border:0!important;
  border-bottom:1px solid #353b46!important;
  border-radius:0!important;
  align-items:center;
}
.admin-section>.section-head h2{
  margin:0!important;
  font-size:30px!important;
  line-height:1.08!important;
  letter-spacing:-.035em;
}
.admin-section>.section-head p:last-child{
  margin-top:7px!important;
  max-width:760px!important;
  color:#aab2bf;
}
.section-body{padding:18px 20px 20px}
#otherVariantsAdmin.section-body{display:grid;gap:18px}
#avatarsAdmin.section-body{display:grid;gap:30px}
#faviconsAdmin.section-body{display:grid}
#paletteAdmin.section-body{display:grid}
.top-level-asset-card{
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  overflow:visible!important;
}
.top-level-asset-card>.logo-card-head{display:none!important}
.asset-kicker:empty{display:none!important}
.logo-admin-card:last-child{margin-bottom:0}

/* Visibilidad cerca del título */
.section-title-line{gap:16px}
.section-title-line .visibility-toggle{margin-top:2px}

/* Símbolo solo: preview compacto */
.symbol-positive-row{grid-template-columns:minmax(300px,500px) minmax(250px,320px)!important;gap:18px}
.symbol-preview-box{width:min(500px,100%)!important}
.symbol-preview-box .symbol-stage{aspect-ratio:4/3;min-height:280px!important;height:auto!important}
.symbol-mode-row{margin:0 0 18px}

/* Drop zone: todo el preview funciona como botón y como drag & drop */
.svg-drop-zone{cursor:pointer;position:relative;isolation:isolate;transition:filter .15s ease,box-shadow .15s ease}
.svg-drop-zone::after{
  content:"";position:absolute;inset:0;z-index:4;pointer-events:none;
  background:rgba(4,7,11,.50);opacity:0;transition:opacity .14s ease;
}
.stage-upload-affordance{
  position:absolute;inset:0;z-index:5;display:grid;place-content:center;justify-items:center;gap:7px;
  pointer-events:none;opacity:0;transition:opacity .14s ease;color:#e9edf4;text-align:center;
}
.stage-upload-button{
  display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border-radius:10px;
  border:1px solid #515967;background:#20242c;color:#fff;font-weight:700;font-size:14px;
  box-shadow:0 6px 18px rgba(0,0,0,.18)
}
.stage-upload-affordance small{font-size:12px;color:#c1c7d0}
.svg-drop-zone:hover::after,.svg-drop-zone.is-dragover::after{opacity:1}
.svg-drop-zone:hover .stage-upload-affordance,.svg-drop-zone.is-dragover .stage-upload-affordance{opacity:1}
.svg-drop-zone:not(.has-svg) .stage-upload-affordance{opacity:1}
.svg-drop-zone:not(.has-svg)::after{opacity:.22}
.svg-drop-zone.is-dragover{box-shadow:inset 0 0 0 2px var(--accent)}
.svg-drop-zone.is-dragover .stage-upload-button{background:var(--accent);border-color:var(--accent)}
.stage-file-input{display:none!important}
.stage-empty-state{position:relative;z-index:1;opacity:.75}
.svg-drop-zone .registered-editor-overlay{z-index:7}

/* Tarjetas de carga manual para Avatares y Favicon */
.manual-upload-card{
  min-height:210px;border:1.5px dashed #d6a72f;border-radius:14px;background:#121419;
  display:grid;place-content:center;justify-items:center;gap:7px;padding:18px;text-align:center;
  color:#d7dbe2;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease;
}
.manual-upload-card:hover,.manual-upload-card.is-dragover{background:#181912;border-color:#f0c94b}
.manual-upload-card.is-dragover{box-shadow:inset 0 0 0 1px rgba(240,201,75,.45)}
.manual-upload-card input{display:none}
.manual-upload-card strong{font-size:14px}
.manual-upload-card>span:last-child{font-size:12px;color:#9da5b1}
.manual-upload-plus{font-size:28px;line-height:1;color:#f0c94b;font-weight:500}
.avatar-origin-group .manual-upload-card{width:190px;min-height:292px}
.favicon-admin-grid .manual-upload-card{min-height:238px}
.compact-empty{margin-bottom:-8px}
.favicon-empty-hint{grid-column:1/-1;color:var(--muted);font-size:13px;padding:2px 2px 0}

/* Negativos, versión negra y escala de grises: más ancho de preview y más aire */
.negative-body-grid,.black-version-body-grid,.grayscale-version-body-grid{
  grid-template-columns:minmax(430px,1.18fr) minmax(410px,1fr)!important;
  gap:18px!important;
}
.small-preview-box .admin-logo-stage,.black-preview-box .admin-logo-stage,.grayscale-preview-box .admin-logo-stage{
  height:258px!important;
}
.small-preview-box .admin-logo-stage .svg-preview-img,.black-preview-box .admin-logo-stage .svg-preview-img,.grayscale-preview-box .admin-logo-stage .svg-preview-img{
  inset:36px!important;width:calc(100% - 72px)!important;height:calc(100% - 72px)!important;
}

/* ®: SVG maestro visible, grande y controles limpios */
.registered-inline-icon{width:18px;height:18px;display:inline-block;object-fit:contain;vertical-align:middle;flex:0 0 18px}
.registered-heading{display:inline-flex;align-items:center;gap:6px}
.registered-toggle{display:inline-flex!important;align-items:center!important;gap:7px!important}
.registered-toggle .registered-inline-icon{width:19px;height:19px;flex-basis:19px}
.registered-editor-overlay::before{border-color:transparent!important}
.registered-resize-handle{opacity:0!important;pointer-events:none!important}
.registered-editor-overlay:hover::before{border-color:rgba(3,133,232,.62)!important}
.registered-editor-overlay:hover .registered-resize-handle{opacity:1!important;pointer-events:auto!important}

/* Tooltips para advertencias */
.has-tooltip{position:relative;outline:none}
.has-tooltip::after{
  content:attr(data-tooltip);position:absolute;left:0;bottom:calc(100% + 8px);z-index:80;
  width:max-content;max-width:330px;padding:8px 10px;border:1px solid #434955;border-radius:9px;
  background:#242832;color:#eef1f5;font-size:12px;font-weight:500;line-height:1.35;letter-spacing:0;
  box-shadow:0 10px 30px rgba(0,0,0,.32);opacity:0;visibility:hidden;transform:translateY(3px);
  transition:opacity .12s ease,transform .12s ease,visibility .12s ease;white-space:normal;pointer-events:none;
}
.has-tooltip:hover::after,.has-tooltip:focus::after{opacity:1;visibility:visible;transform:translateY(0)}
.review-chip{cursor:help!important}
.svg-issue-chip{cursor:help!important}

/* Avatares por origen: separación clara dentro de la misma sección */
.avatar-admin-groups{gap:32px!important}
.avatar-origin-title{padding-bottom:9px!important;border-bottom:1px solid #313640!important;color:#a3adba!important}
.manual-origin-group{margin-top:2px}

@media(max-width:1050px){
  .negative-body-grid,.black-version-body-grid,.grayscale-version-body-grid{grid-template-columns:1fr!important}
}
@media(max-width:650px){
  .admin-section>.section-head{padding:18px 16px!important}
  .admin-section>.section-head h2{font-size:27px!important}
  .section-body{padding:14px}
  .symbol-positive-row{grid-template-columns:1fr!important}
  .manual-upload-card{width:100%!important}
}
.admin-section{overflow:visible!important}
.admin-section>.section-head{border-radius:15px 15px 0 0!important}


/* v0.10.0 · base UX previa */
.version-strip{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:0 14px}
.version-strip-label{font-size:11px;letter-spacing:.16em;color:#95a0af;font-weight:700}
.version-dot-row{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.download-extra-actions{display:grid;gap:10px;margin-top:14px}
.download-all-versions{width:100%;border:1px solid var(--line);border-radius:10px;background:#171a20;color:var(--text);padding:11px 12px;cursor:pointer;font-size:13px;font-weight:600}
.download-all-versions:hover{background:#1d2129}
.avatar-fit{width:calc(var(--avatar-fit-scale, .70) * 100%);height:calc(var(--avatar-fit-scale, .70) * 100%);display:grid;place-items:center;margin:auto}
.avatar-fit .svg-preview-img{position:static!important;inset:auto!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain}
.registered-inline-check span{display:inline-flex;align-items:center;gap:6px}
@supports selector(.svg-drop-zone:has(.registered-editor-overlay:hover)){
  .svg-drop-zone.has-svg:has(.registered-editor-overlay:hover)::after,
  .svg-drop-zone.has-svg:has(.registered-editor-overlay.editing)::after{opacity:0!important}
  .svg-drop-zone.has-svg:has(.registered-editor-overlay:hover) .stage-upload-affordance,
  .svg-drop-zone.has-svg:has(.registered-editor-overlay.editing) .stage-upload-affordance{opacity:0!important}
}


/* ===== v0.10.0 · consolidación UX ===== */
/* Scroll interno de listas extensas */
.mapping-rows,.grayscale-rows,.palette-scroll-list{max-height:480px;overflow-y:auto;overscroll-behavior:contain;padding-right:6px;scrollbar-width:thin;scrollbar-color:#454d59 #111318}
.mapping-rows::-webkit-scrollbar,.grayscale-rows::-webkit-scrollbar,.palette-scroll-list::-webkit-scrollbar{width:9px}
.mapping-rows::-webkit-scrollbar-track,.grayscale-rows::-webkit-scrollbar-track,.palette-scroll-list::-webkit-scrollbar-track{background:#111318;border-radius:8px}
.mapping-rows::-webkit-scrollbar-thumb,.grayscale-rows::-webkit-scrollbar-thumb,.palette-scroll-list::-webkit-scrollbar-thumb{background:#454d59;border:2px solid #111318;border-radius:8px}
.palette-scroll-list{display:grid;gap:8px}

/* Paleta: visibilidad individual */
.palette-row-options{display:grid;gap:8px;align-content:center;min-width:180px}
.palette-visible-check{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px}
.palette-visible-check input{accent-color:var(--accent)}

/* Selector de equivalencia: el swatch ES el color picker */
.mapping-target-card{grid-template-columns:20px 34px 112px minmax(105px,1fr)!important}
.mapping-target-card .mapping-color-input.target-swatch{width:30px;height:30px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:7px;background:transparent;overflow:hidden;cursor:pointer}
.mapping-target-card .mapping-color-input.target-swatch::-webkit-color-swatch-wrapper{padding:0}
.mapping-target-card .mapping-color-input.target-swatch::-webkit-color-swatch{border:0;border-radius:6px}
.mapping-target-card .mapping-text-input{width:100%;min-width:0}
.mapping-target-card.is-transparent{grid-template-columns:20px 34px minmax(120px,1fr)!important}
.mapping-target-card.is-transparent .mapping-target-mode{grid-column:auto!important}

/* Tooltips reales fuera de tarjetas */
.has-tooltip::after{display:none!important}
.pm-global-tooltip{position:fixed;z-index:99999;display:flex;align-items:flex-start;gap:8px;max-width:min(360px,calc(100vw - 20px));padding:9px 11px;border:1px solid #4b5361;border-radius:9px;background:#252a33;color:#f0f3f7;font-size:12px;font-weight:550;line-height:1.4;box-shadow:0 12px 34px rgba(0,0,0,.42);pointer-events:none}
.pm-tooltip-swatch{width:15px;height:15px;flex:0 0 15px;border-radius:4px;border:1px solid rgba(255,255,255,.3);margin-top:1px}

/* Símbolo R */
.registered-title-toggle{display:flex;align-items:center;gap:9px;cursor:pointer}
.registered-title-toggle input{accent-color:var(--accent)}
.registered-title-toggle strong{display:inline-flex;align-items:center;gap:6px}
.registered-config-head>div>span{display:block;margin-top:5px;color:var(--muted);font-size:13px}
.registered-color-field{min-width:290px}
.registered-color-dropdown{position:relative}
.registered-color-dropdown summary{display:flex;align-items:center;gap:8px;min-height:40px;border:1px solid var(--line);border-radius:10px;background:#101216;color:var(--text);padding:8px 10px;cursor:pointer;list-style:none}
.registered-color-dropdown summary::-webkit-details-marker{display:none}
.registered-color-menu{position:absolute;z-index:30;top:calc(100% + 7px);left:0;width:min(360px,80vw);max-height:330px;overflow-y:auto;padding:7px;border:1px solid #414855;border-radius:11px;background:#171a20;box-shadow:0 14px 36px rgba(0,0,0,.42)}
.registered-color-option{width:100%;display:grid;grid-template-columns:26px 86px 1fr;align-items:center;gap:8px;border:0;border-radius:8px;background:transparent;color:var(--text);padding:8px;text-align:left;cursor:pointer}
.registered-color-option:hover{background:#222731}
.registered-color-option:has(.registered-color-auto){display:block}
.registered-color-chip{width:22px;height:22px;border-radius:6px;border:1px solid rgba(255,255,255,.25)}
.registered-color-hex{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:700}
.registered-color-rgb{font-size:12px;color:var(--muted)}
.registered-custom-pick{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);margin-top:5px;padding:9px 8px 4px;color:var(--muted);font-size:12px}
.registered-custom-pick input{width:36px;height:28px;border:0;background:transparent;padding:0}
.svg-drop-zone.registered-interaction::after{opacity:0!important}
.svg-drop-zone.registered-interaction .stage-upload-affordance{opacity:0!important}

/* Cliente: previews siempre completos */
.asset-preview-stage{overflow:hidden}
.asset-preview-stage .svg-preview-img{display:block;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center!important}

/* Descarga de versiones */
.download-current-version{font-size:12px;color:var(--muted);padding:2px 1px 11px}.download-current-version strong{color:var(--text)}
.version-download-group{padding-bottom:4px}
.dl-select-all{display:flex;align-items:center;gap:8px;color:#cdd3dc;font-size:12px;margin:7px 0 8px}.dl-select-all input{accent-color:var(--accent)}
.version-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.version-dl-check{min-height:38px}
.download-all-versions{display:flex;align-items:center;justify-content:center;gap:8px;background:#252b35!important;border-color:#4a5361!important;color:#f1f4f8!important;font-weight:700!important;padding:12px 13px!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)}
.download-all-versions:hover{background:#2e3540!important;border-color:#5b6676!important}
.download-action{display:flex;align-items:center;justify-content:center;gap:8px}

/* Botones de descarga e igualdad vertical */
.client-avatar-card,.client-favicon-card{display:flex!important;flex-direction:column;height:100%}
.client-card-meta{display:flex;flex-direction:column;flex:1 1 auto}
.client-avatar-name,.client-favicon-name{min-height:42px}
.client-avatar-download,.client-favicon-download,.download-all-btn{display:flex;align-items:center;justify-content:center;gap:7px}
.client-avatar-download,.client-favicon-download{margin-top:auto}
.client-avatar-grid,.client-favicon-grid{align-items:stretch}

@media(max-width:650px){.version-check-grid{grid-template-columns:1fr}.registered-color-field{min-width:0}.registered-color-menu{width:min(330px,85vw)}}

@media(max-width:1220px){.palette-row-options{grid-column:2/5}}
@media(max-width:650px){.palette-row-options{grid-column:2}}
.symbol-source-note>.review-chip{display:inline-flex;margin:7px 0 3px}.symbol-source-note>span:last-child{display:block;margin-top:5px}

/* ===== v0.11.0 · consolidación ===== */
/* Carga SVG consistente, incluida la versión negativa manual */
.negative-stage.svg-drop-zone{cursor:pointer}
.negative-stage.svg-drop-zone .stage-file-input{display:none}
.negative-stage.svg-drop-zone .stage-upload-affordance{z-index:6}
.negative-stage.svg-drop-zone.is-dragover .stage-upload-button::after{content:" · Soltar SVG aquí"}

/* Vista Cliente: wrapper interno de ajuste real, nunca recorta el SVG */
.asset-preview-stage{position:relative;padding:0!important;overflow:hidden!important}
.client-fit-stage{position:absolute;inset:42px;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;overflow:visible}
.client-fit-stage .svg-preview-img{position:static!important;inset:auto!important;display:block!important;object-fit:contain!important;object-position:center!important}
.client-fit-stage.fit-width .svg-preview-img{width:100%!important;height:auto!important;max-width:100%!important;max-height:100%!important}
.client-fit-stage.fit-height .svg-preview-img{height:100%!important;width:auto!important;max-height:100%!important;max-width:100%!important}
@media(max-width:650px){.client-fit-stage{inset:30px}}

/* Avatares: el escalado lo define avatar-fit; no duplicar padding en la tarjeta */
.avatar-admin-stage,.client-avatar-preview{padding:0!important}
.avatar-fit{max-width:100%;max-height:100%}
.avatar-fit .svg-preview-img{object-fit:contain!important}

/* Versión negra configurable */
.black-map-rows{display:grid;gap:8px;max-height:330px;overflow-y:auto;padding-right:5px;scrollbar-width:thin;scrollbar-color:#454d59 #111318}
.black-map-row{display:grid;grid-template-columns:minmax(150px,1fr) 28px minmax(150px,.9fr);gap:8px;align-items:center}
.black-map-row select{width:100%;border:1px solid var(--line);background:#101216;color:var(--text);border-radius:9px;padding:9px 10px}
.black-version-card .review-chip{margin-left:3px}
@media(max-width:650px){.black-map-row{grid-template-columns:1fr 24px 1fr}}

/* Paleta: degradés como una ficha única con acordeón de stops destacados */
.palette-gradient-card{border:1px solid var(--line);border-radius:13px;background:var(--panel);overflow:hidden}
.palette-gradient-card>summary{list-style:none}
.palette-gradient-card>summary::-webkit-details-marker{display:none}
.gradient-summary{display:grid;grid-template-columns:24px 92px minmax(170px,1fr) auto;align-items:center;gap:12px;padding:13px;cursor:pointer}
.gradient-chevron{width:20px;height:20px;color:#8e98a7;transition:transform .16s ease}
.palette-gradient-card[open] .gradient-chevron{transform:rotate(90deg)}
.gradient-preview{height:42px;border-radius:10px;border:1px solid rgba(255,255,255,.16)}
.gradient-summary-copy{display:grid;gap:2px;min-width:0}
.gradient-summary-copy strong{font-size:14px}
.gradient-summary-copy small{color:var(--muted);font-size:12px}
.gradient-visible-check{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;white-space:nowrap;cursor:pointer}
.gradient-visible-check input,.gradient-stop-check input,.gradient-stop-principal input{accent-color:var(--accent)}
.gradient-stop-list{display:grid;gap:8px;padding:0 13px 13px;border-top:1px solid var(--line)}
.gradient-stop-row{display:grid;grid-template-columns:34px minmax(150px,1fr) auto minmax(190px,auto) minmax(170px,auto);align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.045)}
.gradient-stop-row:last-child{border-bottom:0}
.gradient-stop-swatch{width:32px;height:32px;border-radius:8px;border:1px solid rgba(255,255,255,.2)}
.gradient-stop-info{display:grid;gap:2px}
.gradient-stop-info strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}
.gradient-stop-info span{color:var(--muted);font-size:12px}
.gradient-suggested{font-size:11px;color:#d6bd62;border:1px solid #5f5532;background:#211f16;border-radius:999px;padding:4px 7px}
.gradient-stop-check,.gradient-stop-principal{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;line-height:1.25}
.gradient-stop-check:has(input:disabled){opacity:.7}
@media(max-width:1050px){.gradient-stop-row{grid-template-columns:34px 1fr auto}.gradient-stop-check,.gradient-stop-principal{grid-column:2/4}.gradient-summary{grid-template-columns:24px 72px 1fr}.gradient-visible-check{grid-column:3}}
@media(max-width:650px){.gradient-summary{grid-template-columns:22px 58px 1fr}.gradient-visible-check{grid-column:1/4}.gradient-stop-row{grid-template-columns:32px 1fr}.gradient-suggested{grid-column:2}.gradient-stop-check,.gradient-stop-principal{grid-column:2}}

/* Cliente: degradés visibles como recursos cromáticos propios */
.client-gradient{display:grid;grid-template-columns:150px minmax(0,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel)}
.client-gradient.principal{border-color:#315e83}
.client-gradient-swatch{min-height:150px}
.client-gradient-body{padding:15px;display:grid;align-content:start;gap:14px}
.gradient-client-badge{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:4px 7px;color:var(--muted)}
.client-gradient-stops{display:flex;flex-wrap:wrap;gap:7px}
.client-gradient-stop{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:8px;padding:5px 7px;background:#101216}
.client-gradient-stop i{width:13px;height:13px;border-radius:4px;border:1px solid rgba(255,255,255,.2)}
.client-gradient-stop code{font-size:11px;color:#dfe4eb}
.client-gradient-stop small{font-size:10px;color:var(--muted)}
@media(max-width:650px){.client-gradient{grid-template-columns:1fr}.client-gradient-swatch{min-height:105px}}

/* v0.11.0 · estados de drag & drop consistentes */
.svg-drop-zone.is-dragover .stage-upload-button{font-size:0}
.svg-drop-zone.is-dragover .stage-upload-button::after{content:"Soltar SVG aquí";font-size:13px}
.manual-upload-card.is-dragover strong{font-size:0}
.manual-upload-card.is-dragover strong::after{content:"Soltar SVG aquí";font-size:14px}
.negative-stage.svg-drop-zone.is-dragover .stage-upload-button::after{content:"Soltar SVG aquí"}

/* Degradés tratados como una unidad en reasignaciones */
.gradient-mapping-units{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.gradient-mapping-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7b8492;font-weight:700}
.gradient-mapping-row{display:grid;grid-template-columns:minmax(150px,1fr) 28px minmax(165px,.9fr) 38px;gap:8px;align-items:center}
.gradient-unit-token{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:10px;background:#0e1014;padding:8px 10px;font-size:13px}
.gradient-unit-preview{width:42px;height:22px;border-radius:6px;border:1px solid rgba(255,255,255,.2);flex:0 0 42px}
.gradient-mapping-row select{width:100%;border:1px solid var(--line);background:#101216;color:var(--text);border-radius:9px;padding:9px 10px}
.gradient-map-color{width:34px;height:34px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:7px;background:transparent}
.black-gradient-map-row .gradient-unit-token{min-width:0}
@media(max-width:650px){.gradient-mapping-row{grid-template-columns:1fr 24px 1fr}.gradient-map-color{grid-column:3;justify-self:start}}

/* ===== v0.14.0 · consolidación ===== */
/* Admin más angosto: ~10/12 columnas, centrado */
.admin-view{max-width:1240px!important;margin:0 auto!important;width:min(100%,1240px)!important}
@media(max-width:1320px){.admin-view{max-width:calc(100vw - 230px)!important}}
@media(max-width:980px){.admin-view{max-width:none!important;width:auto!important;margin:0!important}}

/* Encuadre: el SVG ya llega con viewBox ajustado a contenido real; no forzar dimensiones que lo deformen */
.admin-logo-stage,.asset-preview-stage{position:relative}
.svg-preview-img{user-select:none;-webkit-user-drag:none}
.client-fit-stage{overflow:hidden!important}
.client-fit-stage .svg-preview-img{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important}

/* Zoom vectorial real por viewBox */
.preview-zoom-controls{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border-top:1px solid var(--line);background:#0f1116}
.preview-zoom-controls button{min-width:30px;height:28px;border:1px solid var(--line);border-radius:7px;background:#171a20;color:var(--text);cursor:pointer;font:600 12px/1 'DM Sans',sans-serif}
.preview-zoom-controls button:hover{background:#222731;border-color:#4a5361}
.preview-zoom-controls .preview-zoom-reset{min-width:52px;padding:0 9px}
.preview-zoom-value{min-width:44px;text-align:center;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.admin-logo-stage.is-panning{cursor:grabbing!important}
.admin-logo-stage:has(.svg-preview-img[data-preview-id]){touch-action:none}

/* Advertencias dinámicas: slot estable, sin reflow */
.negative-map-panel{position:relative}
.contrast-warning{min-height:38px;box-sizing:border-box;margin-bottom:9px!important}
.contrast-warning.is-empty{visibility:hidden;pointer-events:none}

/* Avatares: mayor ocupación y alineación vertical consistente */
.avatar-admin-body{display:flex!important;flex-direction:column;min-height:112px}
.avatar-admin-title{min-height:38px}
.avatar-warning{min-height:28px}
.avatar-admin-check{margin-top:auto!important}
.client-avatar-preview .avatar-fit,.avatar-admin-stage .avatar-fit{transition:width .15s ease,height .15s ease}

/* Paleta: jerarquía clara para el color corporativo principal */
.palette-row{transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.palette-row.is-principal{border-color:#47769c!important;background:#151b22!important;box-shadow:inset 3px 0 0 #6fb9ed,0 0 0 1px rgba(111,185,237,.08)}
.principal-check{border:1px solid transparent;border-radius:9px;padding:8px 9px;cursor:pointer;transition:.15s ease}
.principal-check:hover{background:#171b22;border-color:#343b47}
.principal-check.active{background:#172635;border-color:#3e739d;color:#eff8ff!important;font-weight:700}
.principal-check.active span::before{content:"Principal";display:inline-flex;margin-right:7px;padding:2px 6px;border-radius:999px;background:#244c6c;border:1px solid #3e739d;color:#bfe3ff;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;vertical-align:1px}
.principal-check input{width:16px;height:16px;flex:0 0 16px}

/* Degradés: una ficha limpia, nunca filas espurias */
.palette-gradient-card{width:100%;min-width:0}
.palette-gradient-card:empty{display:none}
.gradient-stop-list:empty{display:none}
.palette-scroll-list>hr,.palette-scroll-list>.empty-gradient-row{display:none!important}
.gradient-summary-copy small{white-space:normal}

/* Versión pluma */
.pluma-visible-check{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;white-space:nowrap}
.pluma-visible-check input{accent-color:var(--accent)}
.pluma-export-note{display:grid;gap:7px;margin-top:4px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#0e1014}
.pluma-export-note strong{font-size:13px}
.pluma-export-note>span{font-size:12px;color:var(--muted);line-height:1.4}
.pluma-download-pdf{justify-self:start;display:inline-flex;align-items:center;gap:7px}

/* Mantener controles de tarjetas a la misma altura */
.avatar-admin-grid{align-items:stretch}
.avatar-admin-card{display:flex;flex-direction:column;height:100%}
.avatar-admin-body{flex:1 1 auto}

/* Scroll interno estable también en Versión pluma */
.black-map-rows{overscroll-behavior:contain;scrollbar-gutter:stable}
.mapping-rows,.grayscale-rows,.palette-scroll-list{scrollbar-gutter:stable}
.favicon-admin-card{display:flex;flex-direction:column;height:100%}
.favicon-admin-body{display:flex!important;flex-direction:column;flex:1 1 auto;min-height:118px}
.favicon-admin-body .avatar-admin-check{margin-top:auto!important}


/* ===== v0.14.0 · ajustes de interacción y compacidad ===== */
/* El preview queda exclusivamente para inspección: pan/zoom, sin hover de carga */
.svg-drop-zone::after,.stage-upload-affordance{display:none!important}
.admin-logo-stage{cursor:default}
.admin-logo-stage:has(.svg-preview-img[data-preview-id]){cursor:grab}
.admin-logo-stage.is-panning{cursor:grabbing!important}
.stage-file-input{display:none!important}

/* Carga SVG lateral con jerarquía de primera acción */
.svg-upload-primary{display:grid;gap:3px;padding:15px 16px;border-radius:12px;border:1px solid #287fc0;background:#102536;cursor:pointer;box-shadow:inset 3px 0 0 var(--accent);transition:background .14s,border-color .14s,transform .14s}
.svg-upload-primary:hover{background:#143149;border-color:#4da6e8}
.svg-upload-primary.is-start{border-color:#3c9ee5;background:#12324a;box-shadow:inset 4px 0 0 var(--accent),0 0 0 1px rgba(3,133,232,.08)}
.svg-upload-primary.is-replace{background:#121a22;border-color:#31485a;box-shadow:inset 3px 0 0 #315f7e}
.svg-upload-primary input{display:none}
.svg-upload-primary strong{font-size:14px;color:#f4f8fb}
.svg-upload-primary small{font-size:12px;color:#9fb4c5;line-height:1.35}
.upload-priority-kicker{font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#7fc8ff}
.negative-upload-wrap{display:grid!important;justify-items:start;place-items:initial;text-align:left;border-style:solid;border-color:#31485a;background:#121a22;min-height:auto;padding:12px 14px}
.negative-upload-wrap.is-start{border-color:#3c9ee5;background:#12324a;box-shadow:inset 3px 0 0 var(--accent)}
.negative-upload-wrap.hidden{display:none!important}

/* Mapeos compactos: sin desplazamiento horizontal */
.mapping-rows{overflow-x:hidden!important;min-width:0;padding-right:6px}
.mapping-row{grid-template-columns:minmax(150px,190px) 24px minmax(0,1fr)!important;gap:7px;min-width:0;width:100%}
.color-token{min-width:0;width:auto;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:8px}
.mapping-target-card{grid-template-columns:18px 30px minmax(92px,108px) minmax(78px,94px)!important;gap:7px;min-width:0;width:max-content;max-width:100%;justify-self:start;padding-right:7px}
.mapping-target-card .mapping-text-input{width:90px!important;min-width:0!important;padding-left:8px;padding-right:8px}
.mapping-target-card .mapping-target-mode{min-width:0;width:108px}
.mapping-target-card.is-transparent{grid-template-columns:18px 30px minmax(108px,130px)!important;width:max-content}
.mapping-target-card.is-transparent .mapping-target-mode{width:130px}
.negative-config,.negative-map-panel{min-width:0}
@media(max-width:760px){.mapping-row{grid-template-columns:1fr!important}.map-arrow{display:none}.color-token{max-width:none}.mapping-target-card{width:100%;grid-template-columns:18px 30px minmax(100px,1fr) 94px!important}.mapping-target-card .mapping-target-mode{width:100%}}

/* Fit inicial real: el 100% representa contenido visible + margen, no mesa de trabajo */
.admin-logo-stage .svg-preview-img{inset:18px!important;width:calc(100% - 36px)!important;height:calc(100% - 36px)!important}
.small-preview-box .admin-logo-stage .svg-preview-img,.black-preview-box .admin-logo-stage .svg-preview-img,.grayscale-preview-box .admin-logo-stage .svg-preview-img{inset:16px!important;width:calc(100% - 32px)!important;height:calc(100% - 32px)!important}

/* ===== v0.14.0 · cámara robusta de preview ===== */
.admin-logo-stage{overflow:hidden!important}
.preview-camera-layer{position:absolute;inset:0;overflow:visible;will-change:transform;transform-origin:50% 50%;transition:transform .08s linear}
.admin-logo-stage.is-panning .preview-camera-layer{transition:none}
.preview-camera-layer>.svg-preview-img{position:absolute!important;inset:12px!important;width:calc(100% - 24px)!important;height:calc(100% - 24px)!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:center!important}
.small-preview-box .preview-camera-layer>.svg-preview-img,.black-preview-box .preview-camera-layer>.svg-preview-img,.grayscale-preview-box .preview-camera-layer>.svg-preview-img{inset:10px!important;width:calc(100% - 20px)!important;height:calc(100% - 20px)!important}
.client-fit-stage .preview-camera-layer{position:relative;inset:auto;width:100%;height:100%;transform:none!important}
.client-fit-stage .preview-camera-layer>.svg-preview-img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important}
.preview-zoom-controls .preview-zoom-reset{min-width:64px}
.preview-zoom-value{min-width:52px}
.admin-preview-box.camera-zoomed .admin-logo-stage{cursor:grab}
.preview-camera-layer>.registered-editor-overlay{position:absolute;z-index:8}

/* Paleta: estrella compacta para Color corporativo principal */
.palette-row{grid-template-columns:30px 52px minmax(180px,.95fr) minmax(175px,.85fr) minmax(175px,.85fr) minmax(145px,.68fr)!important}
.principal-star{width:28px;height:28px;border:1px solid transparent;border-radius:8px;background:transparent;color:#707987;display:grid;place-items:center;cursor:pointer;padding:0;transition:.15s ease}
.principal-star:hover{background:#171c23;border-color:#35404d;color:#b6c1cd}
.principal-star svg{width:18px;height:18px;display:block}
.principal-star path{fill:transparent;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.principal-star.active{color:#8bcfff;background:#142638;border-color:#356f99;box-shadow:0 0 0 1px rgba(111,185,237,.08)}
.principal-star.active path{fill:currentColor;stroke:currentColor}
.palette-row>.palette-visible-check{justify-self:start}
@media(max-width:1220px){.palette-row{grid-template-columns:30px 48px 1fr 1fr!important}.palette-row>.field:nth-of-type(3),.palette-row>.palette-visible-check{grid-column:3/5}.principal-star{grid-column:1;grid-row:1}.palette-row>.palette-swatch{grid-column:2}}
@media(max-width:650px){.palette-row{grid-template-columns:30px 45px 1fr!important}.palette-row>.field,.palette-row>.palette-visible-check{grid-column:3}.principal-star{grid-column:1}.palette-swatch{grid-column:2}}

/* Scope de cámara: solo los previews Admin transforman la composición completa. */
.preview-camera-layer{position:relative;inset:auto;width:100%;height:100%;overflow:visible}
.preview-camera-layer>.svg-preview-img{position:static!important;inset:auto!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center!important}
.admin-logo-stage>.preview-camera-layer{position:absolute;inset:0;width:auto;height:auto}
.admin-logo-stage>.preview-camera-layer>.svg-preview-img{position:absolute!important;inset:12px!important;width:calc(100% - 24px)!important;height:calc(100% - 24px)!important;max-width:none!important;max-height:none!important}
.small-preview-box .admin-logo-stage>.preview-camera-layer>.svg-preview-img,.black-preview-box .admin-logo-stage>.preview-camera-layer>.svg-preview-img,.grayscale-preview-box .admin-logo-stage>.preview-camera-layer>.svg-preview-img{inset:10px!important;width:calc(100% - 20px)!important;height:calc(100% - 20px)!important}

/* ===== v0.15.0 · robustez de cámara + consistencia de previews ===== */
/* Logo principal, secundario y Símbolo solo comparten viewport y proporción. */
.top-level-asset-card>.positive-row,
.symbol-card .symbol-positive-row{
  grid-template-columns:minmax(0,720px) minmax(260px,1fr)!important;
  gap:18px!important;
  align-items:start;
}
.top-level-asset-card>.positive-row>.admin-preview-box,
.symbol-card .symbol-preview-box{
  width:100%!important;
  max-width:720px!important;
}
.top-level-asset-card>.positive-row .admin-logo-stage,
.symbol-card .symbol-preview-box .admin-logo-stage{
  height:auto!important;
  min-height:0!important;
  aspect-ratio:4/3!important;
  padding:0!important;
}
@media(max-width:980px){
  .top-level-asset-card>.positive-row,
  .symbol-card .symbol-positive-row{grid-template-columns:1fr!important}
  .top-level-asset-card>.positive-row>.admin-preview-box,
  .symbol-card .symbol-preview-box{max-width:none!important}
}

/* Ajustar/zoom: estado base estable, sin transiciones que alteren la lectura del reset. */
.preview-camera-layer{transition:transform .06s linear}
.preview-zoom-value{min-width:44px!important}

/* Símbolo solo: selector directo a la izquierda, sin columna/label de Origen. */
.symbol-mode-row{justify-content:flex-start!important;align-items:center!important}
.symbol-mode-row>select{margin:0!important;min-width:230px}

/* Botón lateral de carga/reemplazo: acción inequívoca. */
.svg-upload-primary{
  border:1px solid #55baff!important;
  background:#0b3b5d!important;
  box-shadow:inset 4px 0 0 #20a0ff,0 0 0 1px rgba(85,186,255,.12)!important;
  padding:16px 16px!important;
}
.svg-upload-primary:hover{background:#0f4b75!important;border-color:#88d0ff!important}
.svg-upload-primary.is-start{
  background:#07598d!important;
  border-color:#7fd0ff!important;
  box-shadow:inset 5px 0 0 #9bdcff,0 0 0 2px rgba(3,133,232,.18)!important;
}
.svg-upload-primary strong{font-size:15px!important;font-weight:800!important;color:#fff!important}
.svg-upload-primary .upload-priority-kicker{color:#a9ddff!important}
.svg-upload-primary small{color:#c1d9ea!important}

/* El nombre de archivo queda como información técnica secundaria. */
.technical-file-name{display:block;margin-top:8px;color:#75808f;font-size:11px;line-height:1.35;overflow-wrap:anywhere}

/* Dropdown del Símbolo R: nunca desborda el panel. */
.registered-color-field{min-width:0!important;width:100%}
.registered-color-dropdown{width:100%;min-width:0}
.registered-color-menu{
  left:0!important;
  right:auto!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
.registered-color-option{grid-template-columns:24px minmax(72px,92px) minmax(0,1fr)!important;min-width:0}
.registered-color-rgb{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Versiones negativas: contenido ajustado al ancho, sin desplazamiento horizontal. */
.negative-body-grid{min-width:0}
.negative-config,.negative-map-panel,.mapping-rows{min-width:0!important;max-width:100%!important;overflow-x:hidden!important}
.mapping-row{
  grid-template-columns:minmax(118px,170px) 18px minmax(0,1fr)!important;
  gap:6px!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.mapping-row .color-token{max-width:170px!important;padding:7px 8px!important}
.mapping-target-card{
  grid-template-columns:16px 28px minmax(78px,1fr) 78px!important;
  gap:6px!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  padding-right:6px!important;
}
.mapping-target-card .mapping-target-mode{width:100%!important;min-width:0!important}
.mapping-target-card .mapping-text-input{width:78px!important;min-width:0!important;padding:7px!important}
.mapping-target-card.is-transparent{grid-template-columns:16px 28px minmax(96px,1fr)!important;width:100%!important}
.mapping-target-card.is-transparent .mapping-target-mode{width:100%!important}
.mapping-rows::-webkit-scrollbar:horizontal{height:0}
@media(max-width:760px){
  .mapping-row{grid-template-columns:1fr!important}
  .mapping-row .color-token{max-width:none!important}
  .mapping-target-card{grid-template-columns:16px 28px minmax(90px,1fr) 78px!important}
}

/* v0.16.0 · ajustes acumulados */
.negatives-head h3{font-size:22px!important;font-weight:750!important;letter-spacing:-.01em}
.negative-name{font-size:15px!important}
.black-version-card>.negative-card-head{min-height:48px}
.black-version-card>.negative-card-head .negative-name-wrap:empty{display:none}
.black-version-copy{display:none!important}

.dependent-disabled{opacity:.34!important;filter:saturate(.45);pointer-events:none;user-select:none}
.generated-note.dependent-disabled{background:#0e1014!important}

.negative-empty-state{border:1px dashed #39414d;border-radius:14px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#0f1115}
.negative-empty-state>div:first-child{display:grid;gap:4px}
.negative-empty-state strong{font-size:15px}
.negative-empty-state span{font-size:13px;color:var(--muted)}
.negative-empty-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.negative-create-upload{display:inline-flex;align-items:center;justify-content:center;position:relative}
.negative-create-upload input{display:none}

/* La propuesta circular debe llegar realmente al borde útil del avatar. */
.avatar-admin-card:has(.avatar-fit[style*="--avatar-fit-scale:1"]),.client-avatar-card:has(.avatar-fit[style*="--avatar-fit-scale:1"]){overflow:hidden}

/* Controles dependientes y menús internos nunca deben forzar overflow horizontal. */
.positive-actions,.registered-config,.registered-controls-grid,.negative-config,.negative-map-panel,.mapping-rows{min-width:0}
.registered-color-dropdown,.registered-color-dropdown summary,.registered-color-menu{max-width:100%;box-sizing:border-box}

@media(max-width:760px){
  .negative-empty-state{align-items:flex-start;flex-direction:column}
}
.negative-empty-state.is-disabled{opacity:.38;pointer-events:none}
.negative-create-upload.is-disabled{cursor:not-allowed}

/* ===== v0.17.0 ===== */
/* Carga maestra: clic + drag & drop fuera del preview. */
.svg-master-dropzone{
  border-style:dashed!important;
  border-width:1.5px!important;
  outline:1px solid rgba(3,133,232,.06);
}
.svg-master-dropzone.is-start{border-color:#55b7ff!important;background:#123b59!important}
.svg-master-dropzone.is-dragover{
  border-color:#8fd3ff!important;
  background:#174c70!important;
  box-shadow:inset 4px 0 0 var(--accent),0 0 0 2px rgba(3,133,232,.22)!important;
}
.svg-master-dropzone.is-dragover strong::after{content:" · Soltar SVG aquí";color:#a9dcff;font-weight:750}

/* Extracción automática conservadora de Símbolo solo. */
.symbol-auto-failed{
  margin-top:4px;padding:18px;border:1px solid #704f1e;border-radius:13px;background:#251b0d;
  display:grid;gap:6px;max-width:620px;
}
.symbol-auto-failed strong{color:#ffd27a;font-size:15px}
.symbol-auto-failed span{color:#c7b798;font-size:13px;line-height:1.5}

/* La cámara puede alejar por debajo de Ajustar; cursor de pan en cualquier escala distinta al fit. */
.admin-preview-box.camera-zoomed .admin-logo-stage{cursor:grab}

/* Zebra: líneas finas; la geometría del patrón se normaliza en JS al viewBox completo. */
.negative-stage.locating-color .svg-preview-img,
.grayscale-stage.locating-color .svg-preview-img{image-rendering:auto}


/* ===== v0.18.0 · consolidación de robustez visual ===== */

/* Información del SVG maestro: nombre real + truncado con fade. */
.svg-file-info{min-width:0}
.svg-file-info>span{display:block;color:var(--muted);font-size:13px;line-height:1.45}
.svg-file-title{display:flex;align-items:center;gap:8px;min-width:0;position:relative;margin-bottom:5px;cursor:default}
.file-info-icon{width:18px;height:18px;flex:0 0 auto;color:#8ab8d8}
.svg-file-name{
  min-width:0;max-width:100%;overflow:hidden;white-space:nowrap;display:block;position:relative;
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 34px),transparent 100%);
  mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 34px),transparent 100%);
}

/* Versión pluma: Visible para cliente con el mismo patrón que el resto. */
.internal-section-title{align-items:center;gap:14px}
.internal-section-title h3{margin:0!important}
.black-version-head{align-items:flex-start!important}
.black-version-card>.negative-card-head:has(.negative-name-wrap:empty){display:none}

/* Cámaras: ningún cambio de estado visual dispara transiciones que aparenten auto-fit. */
.preview-camera-layer{transition:none!important}

/* Avatares Admin: mismo hover cuadrado -> circular que Cliente. */
.avatar-admin-stage{border-radius:14px;overflow:hidden;transition:border-radius .22s ease}
.avatar-admin-card:hover .avatar-admin-stage{border-radius:50%}

/* Paleta: solo filas reales; eliminar artefactos visuales al final. */
.palette-scroll-list{
  display:grid!important;gap:8px!important;overflow-x:hidden!important;
  border:0!important;background:transparent!important;
}
.palette-scroll-list::before,.palette-scroll-list::after{content:none!important}
.palette-scroll-list>*:empty{display:none!important}
.palette-gradient-row{
  display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;
  min-height:72px;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:var(--panel);
}
.palette-gradient-swatch{width:42px;height:42px;border-radius:10px;border:1px solid rgba(255,255,255,.18)}
.palette-gradient-meta{display:grid;gap:3px;min-width:0}
.palette-gradient-meta strong{font-size:14px;color:var(--text)}
.palette-gradient-meta span{font-size:12px;color:var(--muted)}
.palette-gradient-row .gradient-stops-open{justify-self:end}

/* Diálogo de stops: fuera del flujo de la paleta, sin acordeón. */
.gradient-stops-dialog{
  border:0;padding:0;background:transparent;color:var(--text);max-width:min(620px,92vw);width:100%;
}
.gradient-stops-dialog::backdrop{background:rgba(0,0,0,.58);backdrop-filter:blur(2px)}
.gradient-stops-dialog-card{background:#14171c;border:1px solid #3a424e;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.55);padding:18px;display:grid;gap:14px}
.gradient-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.gradient-dialog-head>div{display:grid;gap:4px}
.gradient-dialog-head strong{font-size:17px}
.gradient-dialog-head span{color:var(--muted);font-size:13px;line-height:1.45}
.gradient-dialog-close{border:1px solid var(--line);background:#1b1f26;color:var(--text);width:34px;height:34px;border-radius:9px;font-size:21px;cursor:pointer}
.gradient-dialog-preview{height:72px;border-radius:11px;border:1px solid rgba(255,255,255,.15)}
.gradient-dialog-list{display:grid;gap:8px;max-height:420px;overflow-y:auto}
.gradient-dialog-stop{display:grid;grid-template-columns:34px minmax(0,1fr) 18px auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#101216}
.gradient-dialog-stop .gradient-stop-swatch{width:30px;height:30px;border-radius:8px}
.gradient-stop-info{display:grid;gap:2px;min-width:0}
.gradient-stop-info strong{font-size:13px}
.gradient-stop-info small{font-size:11px;color:var(--muted)}
.gradient-promote-label{font-size:12px;color:var(--muted)}
.gradient-dialog-stop input{accent-color:var(--accent)}

/* Negativos: sólidos y degradés comparten exactamente la misma geometría de ficha. */
.mapping-row,.gradient-mapping-row{grid-template-columns:170px 18px minmax(0,1fr)!important}
.mapping-row>.color-token,.gradient-mapping-row>.color-token{
  width:170px!important;max-width:170px!important;min-width:170px!important;box-sizing:border-box;
}
.source-gradient-token{height:42px;justify-content:flex-start}
.gradient-source-swatch{
  display:block;width:30px;height:24px;border-radius:7px;border:1px solid rgba(255,255,255,.2);flex:0 0 auto;
}
.source-gradient-token .gradient-source-swatch{width:100%;height:22px}
.gradient-target-card{grid-template-columns:16px 28px minmax(86px,1fr) 78px!important}
.gradient-target-swatch{width:28px;height:28px;border-radius:7px;border:1px solid rgba(255,255,255,.2);display:block}
.gradient-target-card .gradient-map-text{width:78px!important;min-width:0!important;padding:7px!important;border:1px solid var(--line);background:#0e1014;color:var(--text);border-radius:8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.gradient-target-card .gradient-map-mode{width:100%;min-width:0}
.gradient-mapping-units,.gradient-mapping-title{display:none!important}

/* Zebra de degradés y sólidos mantiene líneas finas y sin tocar cámara. */
.source-gradient-token{cursor:default;transition:border-color .14s,background .14s,box-shadow .14s}
.source-gradient-token:hover{border-color:#4a5668;background:#13171d;box-shadow:0 0 0 2px rgba(3,133,232,.08)}

/* Mejor ajuste responsive de filas de mapeo. */
@media(max-width:760px){
  .mapping-row,.gradient-mapping-row{grid-template-columns:1fr!important}
  .mapping-row>.color-token,.gradient-mapping-row>.color-token{width:100%!important;max-width:none!important;min-width:0!important}
  .gradient-target-card{width:100%!important}
}

/* Dropdown de color R: ancho acotado y sin overflow horizontal. */
.registered-color-menu{max-width:min(100%,360px)!important;overflow-x:hidden!important}

/* Cliente: los degradés no forman parte de Paleta principal. */
.client-gradient{display:none!important}


/* ===== v0.19.0 · motor tipológico supervisado; sin cambios de layout global ===== */
