:root{--ink:#152238;--muted:#65748b;--line:#e3e9f1;--bg:#f7f9fc;--brand:#4d5de6;--brand-dark:#3948c5;--soft:#edf0ff;--green:#13835b;--shadow:0 20px 60px #1d2b4610}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font:15px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.top{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);border-bottom:1px solid #edf0f5;background:#ffffffed;position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:21px;letter-spacing:-.7px}.mark{display:inline-grid;place-items:center;width:32px;height:32px;background:var(--brand);color:white;border-radius:10px;font-weight:900;font-size:20px}.top nav{display:flex;gap:30px;color:#536177;font-size:14px}.top nav a:hover,footer a:hover{color:var(--brand)}.auth-actions{display:flex;gap:10px}.btn{border:1px solid transparent;border-radius:10px;padding:10px 15px;font-weight:700;font-size:13px;transition:transform .15s,background .15s,border-color .15s;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{transform:translateY(-1px)}.primary{background:var(--brand);color:white;box-shadow:0 5px 12px #4d5de625}.primary:hover{background:var(--brand-dark)}.secondary{background:#fff;border-color:#dce3ed;color:#2a3850}.secondary:hover{background:#f7f8fb}.large{padding:14px 20px;font-size:14px}.full{width:100%}.hero{padding:76px max(7vw,24px) 72px;display:grid;grid-template-columns:1fr .92fr;gap:6vw;align-items:center;background:radial-gradient(ellipse at 88% 10%,#eef0ff 0,transparent 42%),linear-gradient(180deg,#fff,#fcfdff)}.eyebrow{color:var(--brand);font-weight:800;font-size:11px;letter-spacing:1.5px}.hero h1{font-size:clamp(38px,4.3vw,58px);letter-spacing:-2.6px;line-height:1.09;margin:17px 0 22px;font-weight:800}.hero h1 span{color:var(--brand)}.hero-copy>p{color:var(--muted);font-size:17px;max-width:580px;line-height:1.75}.hero-actions{display:flex;align-items:center;gap:15px;margin-top:28px}.fine{font-size:11px;color:#738096}.proof{display:flex;gap:19px;flex-wrap:wrap;margin-top:29px;font-size:11px;color:#5e6e82}.proof span:first-letter{color:var(--green)}.preview{background:white;border:1px solid #e2e7f2;border-radius:19px;padding:23px;box-shadow:0 28px 80px #283b6c18;transform:rotate(.4deg)}.preview-head{display:flex;justify-content:space-between;align-items:center}.preview-head small,.app-top small{font-size:9px;color:#8b97aa;letter-spacing:1px;font-weight:800}.preview-head h3{margin:4px 0 0;font-size:19px}.status{font-size:10px;color:var(--green);background:#e9f8f0;border-radius:30px;padding:5px 9px}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.metrics>div{border:1px solid #edf0f5;border-radius:11px;padding:14px}.metrics small{display:block;color:var(--muted);font-size:11px}.metrics strong{font-size:29px;display:block;letter-spacing:-1px;margin:2px 0}.metrics em{font-style:normal;color:var(--green);font-size:10px}.mock-table{border:1px solid #edf0f5;border-radius:9px;overflow:hidden}.mock-row{display:grid;grid-template-columns:1.4fr 1fr auto;gap:7px;align-items:center;padding:12px 10px;border-bottom:1px solid #f0f2f6;font-size:10px;color:#526177}.mock-row:last-child{border:0}.mock-label{background:#f8f9fc;font-weight:700;color:#8793a5}.device{font-style:normal;color:var(--brand);margin-right:5px}.pill{font-size:9px;border-radius:20px;padding:4px 7px;white-space:nowrap}.green{background:#e7f7ef;color:#13835b}.blue{background:#edf0ff;color:#4d5de6}.preview-foot{display:flex;justify-content:space-between;font-size:10px;color:#929db0;margin-top:15px}.preview-foot span:last-child{color:var(--brand);font-weight:700}.trust{padding:26px max(7vw,24px);border-top:1px solid #f0f2f6;border-bottom:1px solid #f0f2f6;text-align:center}.trust>span{font-size:10px;letter-spacing:1.5px;color:#929db0;font-weight:800}.trust div{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:18px;color:#56657a;font-size:13px}.section{padding:88px max(7vw,24px)}.section-title{text-align:center;max-width:700px;margin:0 auto 40px}.section-title h2{font-size:clamp(29px,3vw,39px);letter-spacing:-1.3px;line-height:1.2;margin:13px 0}.section-title p{color:var(--muted);font-size:15px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;max-width:1150px;margin:auto}.feature-grid article,.template-grid article{padding:25px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:box-shadow .2s,transform .2s}.feature-grid article:hover,.template-grid article:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.feature-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;background:var(--soft);color:var(--brand);font-size:20px}.feature-grid h3,.template-grid h3{font-size:15px;margin:18px 0 8px}.feature-grid p,.template-grid p{font-size:13px;color:var(--muted);margin:0;line-height:1.7}.tinted{background:#f8f9fd}.template-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;max-width:1150px;margin:auto}.template-grid article>span{font-size:24px;color:var(--brand);background:#edf0ff;width:43px;height:43px;display:grid;place-items:center;border-radius:12px}.pricing{padding-bottom:76px}.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;max-width:1000px;margin:auto}.price-card{position:relative;padding:27px;border:1px solid var(--line);border-radius:15px;display:flex;flex-direction:column;background:white}.price-card.featured{border:1.5px solid var(--brand);box-shadow:0 12px 38px #4d5de614}.popular{position:absolute;top:-12px;left:22px;background:var(--brand);color:white;border-radius:20px;padding:4px 10px;font-size:9px;font-weight:800;letter-spacing:.5px}.price-card h3{margin:0;font-size:18px}.price-card>p{font-size:12px;color:var(--muted);min-height:40px}.price{font-size:29px;font-weight:800;letter-spacing:-1px;margin:12px 0 17px}.price small{font-size:11px;font-weight:500;color:var(--muted);letter-spacing:0}.price-card ul{list-style:none;padding:0;margin:0 0 24px;flex:1}.price-card li{font-size:12px;color:#536177;margin:12px 0}.price-card li:before{content:'✓';color:var(--green);font-weight:800;margin-right:9px}.pricing-note{text-align:center;color:#8b96a7;font-size:11px;margin-top:22px}.cta{margin:0 max(7vw,24px) 72px;border-radius:19px;padding:39px 5%;background:linear-gradient(120deg,#4555df,#6674f0);color:white;display:flex;justify-content:space-between;align-items:center;gap:20px}.cta h2{font-size:27px;letter-spacing:-.8px;margin:0 0 7px}.cta p{margin:0;color:#e1e5ff;font-size:13px}.white{background:white;color:var(--brand)}footer{border-top:1px solid #edf0f5;padding:32px max(7vw,24px);display:flex;align-items:center;gap:20px;flex-wrap:wrap}footer>span{color:var(--muted);font-size:12px}footer>div{margin-left:auto;display:flex;gap:18px;font-size:12px;color:#536177}footer>small{width:100%;font-size:10px;color:#9aa4b3}.modal{position:fixed;inset:0;background:#121c32a8;z-index:30;display:grid;place-items:center;padding:20px;overflow-y:auto}.hidden{display:none!important}.modal-card{position:relative;background:white;border-radius:18px;padding:30px;width:min(100%,440px);box-shadow:0 25px 90px #0c173344}.close{position:absolute;right:16px;top:12px;border:0;background:transparent;color:#6d798c;font-size:27px}.modal-brand{font-weight:800;font-size:16px;display:flex;gap:8px;align-items:center}.modal-brand .mark{width:26px;height:26px;font-size:16px;border-radius:8px}.modal-card h2{font-size:23px;letter-spacing:-.6px;margin:23px 0 4px}.modal-card>p{font-size:12px;color:var(--muted);margin:0 0 20px}.tabs{display:grid;grid-template-columns:1fr 1fr;background:#f2f4f8;border-radius:9px;padding:4px;margin:18px 0}.tabs button{border:0;border-radius:7px;padding:9px;background:transparent;color:#67748a;font-size:12px;font-weight:700}.tabs button.active{background:white;color:var(--brand);box-shadow:0 1px 4px #17213b12}.modal form label{display:block;font-size:12px;font-weight:700;margin:13px 0 6px}.modal input,.modal select{width:100%;border:1px solid #dce3ed;border-radius:9px;padding:12px;color:var(--ink);background:white;outline:none}.modal input:focus,.modal select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #4d5de61a}.modal form .btn{margin-top:19px}.form-note{font-size:10px!important;color:#8994a5!important;line-height:1.5;margin-top:13px!important}.message{font-size:12px;margin-top:10px;color:#b42318}.message.success{color:var(--green)}.app-shell{min-height:100vh;background:#f8f9fc;display:grid;grid-template-columns:245px 1fr}.sidebar{background:white;border-right:1px solid var(--line);padding:25px 16px;display:flex;flex-direction:column;min-height:100vh}.side-label{font-size:9px;letter-spacing:1.2px;color:#98a2b2;font-weight:800;margin:37px 10px 8px}.workspace-name{font-weight:700;font-size:13px;padding:8px 10px;margin-bottom:18px;overflow-wrap:anywhere}.sidebar nav{display:grid;gap:5px}.side-link{width:100%;display:flex;align-items:center;gap:11px;padding:11px 12px;border:0;border-radius:9px;background:transparent;text-align:left;color:#66748a;font-size:13px}.side-link.active,.side-link:hover{background:#edf0ff;color:var(--brand);font-weight:700}.side-bottom{margin-top:auto}.quota{background:#f7f8fc;border:1px solid #e9edf4;border-radius:12px;padding:13px;margin:20px 0}.quota>div:first-child{display:flex;justify-content:space-between;font-size:10px}.quota>div:first-child span{color:#68758a}.quota>div:first-child b{color:var(--brand)}.bar{height:5px;background:#e1e6f0;border-radius:10px;margin:10px 0 6px;overflow:hidden}.bar span{display:block;width:0;height:100%;background:var(--brand);border-radius:10px}.quota small{font-size:9px;color:#909bad}.upgrade{display:block;border:0;background:transparent;color:var(--brand);font-size:11px;font-weight:700;margin-top:10px;padding:0}.app-main{min-width:0;padding:30px clamp(18px,4vw,55px)}.app-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--line)}.app-top h1{font-size:25px;letter-spacing:-.7px;margin:4px 0 0}.user-chip{font-size:11px;background:white;border:1px solid var(--line);border-radius:30px;padding:8px 12px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.welcome{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:30px 0 20px}.welcome h2{font-size:19px;margin:0 0 4px}.welcome p{font-size:12px;color:var(--muted);margin:0}.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.collection-card{background:white;border:1px solid var(--line);border-radius:12px;padding:20px;min-width:0;cursor:pointer}.collection-card:hover{border-color:#bfc6ff;box-shadow:var(--shadow)}.collection-card .collection-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#edf0ff;color:var(--brand);font-size:19px}.collection-card h3{font-size:14px;margin:15px 0 5px;overflow-wrap:anywhere}.collection-card p{font-size:11px;color:var(--muted);min-height:35px}.collection-card footer{padding:12px 0 0;border-top:1px solid #eff2f7;display:flex;justify-content:space-between;font-size:10px;color:#8490a2}.empty{text-align:center;padding:70px 20px}.empty-icon{font-size:35px;color:var(--brand)}.empty h3{margin:10px 0}.empty p{font-size:12px;color:var(--muted)}.table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:23px 0}.table-toolbar p{color:var(--muted);font-size:12px;margin:8px 0 0}.table-wrap{background:white;border:1px solid var(--line);border-radius:12px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:500px;text-align:left}th,td{padding:13px 15px;border-bottom:1px solid #eef1f6;font-size:12px;max-width:240px;overflow-wrap:anywhere}th{background:#f8f9fc;color:#67748a;font-size:10px;letter-spacing:.2px}td{color:#2b3950}tr:last-child td{border-bottom:0}.row-actions{display:flex;gap:6px}.small-action{border:1px solid var(--line);background:white;border-radius:6px;padding:5px 7px;color:#637087;font-size:10px}.table-bottom{display:flex;justify-content:space-between;gap:10px;padding:13px 3px;color:#8490a2;font-size:10px}.notice{margin:18px 0;background:#fff8e6;border:1px solid #f6dfa2;color:#805c12;padding:12px;border-radius:9px;font-size:12px}.field-pair{margin-bottom:12px}.field-pair label{display:block;font-size:12px;font-weight:700;margin:0 0 6px}.field-pair input,.field-pair select,.field-pair textarea{width:100%;border:1px solid #dce3ed;border-radius:8px;padding:11px}.field-pair textarea{min-height:75px}.danger{color:#b42318}@media(max-width:900px){.hero{grid-template-columns:1fr;gap:45px;padding-top:55px}.hero-copy{max-width:720px}.preview{max-width:620px;width:100%;margin:auto}.template-grid{grid-template-columns:repeat(2,1fr)}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell{grid-template-columns:205px 1fr}.sidebar{padding:20px 12px}.feature-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.top{height:65px;padding:0 16px}.top nav{display:none}.brand{font-size:19px}.auth-actions .secondary{display:none}.auth-actions .btn{padding:9px 11px;font-size:11px}.hero{padding:48px 20px 45px}.hero h1{font-size:39px;letter-spacing:-1.8px}.hero-copy>p{font-size:15px}.hero-actions{align-items:flex-start;flex-direction:column}.proof{gap:10px 14px}.preview{padding:15px}.mock-row{grid-template-columns:1.3fr .7fr auto;font-size:9px;padding:10px 7px}.trust{padding:22px 20px}.trust div{justify-content:center;gap:12px 20px;font-size:11px}.section{padding:62px 20px}.section-title{margin-bottom:28px}.feature-grid,.template-grid,.price-grid{grid-template-columns:1fr}.feature-grid article{padding:20px}.template-grid article{padding:20px}.price-card{padding:24px}.cta{margin:0 16px 48px;padding:27px 23px;align-items:flex-start;flex-direction:column}.cta h2{font-size:24px}footer{padding:27px 20px}footer>div{margin-left:0;flex-wrap:wrap}footer>span{width:100%}.app-shell{display:block}.sidebar{min-height:0;border-right:0;border-bottom:1px solid var(--line);padding:12px 15px;display:grid;grid-template-columns:1fr auto;align-items:center}.sidebar .brand{grid-column:1}.side-label,.workspace-name,.sidebar nav{display:none}.side-bottom{margin:0;display:flex;align-items:center;gap:8px;grid-column:2;grid-row:1}.quota{margin:0;padding:8px 9px;width:120px}.quota small,.quota .upgrade{display:none}.quota>div:first-child{font-size:9px}.bar{margin:6px 0 0}.side-bottom>.side-link{width:auto;padding:8px;font-size:0}.side-bottom>.side-link span{display:none}.app-main{padding:20px 14px}.app-top{padding-bottom:17px}.app-top h1{font-size:21px}.app-top small{font-size:8px}.user-chip{max-width:105px;font-size:9px}.welcome{align-items:flex-start;flex-direction:column;margin:22px 0 17px}.welcome h2{font-size:17px}.collection-grid{grid-template-columns:1fr}.collection-card{padding:16px}.table-toolbar{align-items:flex-start;flex-direction:column}.table-toolbar>.btn{width:100%}.table-bottom{flex-direction:column}.modal{padding:10px}.modal-card{padding:25px 20px}.modal-card h2{font-size:21px}}

/* STOKALYZE — identidad visual roja, gris y blanca */
:root {
  --ink: #25272b;
  --muted: #6b7280;
  --line: #e5e7eb;
  --bg: #f5f6f7;
  --brand: #dc2626;
  --brand-dark: #b91c1c;
  --soft: #fee2e2;
  --green: #15803d;
  --shadow: 0 16px 40px #25272b12;
}

body { background: #fff; color: var(--ink); }
.top { border-color: #e5e7eb; }
.mark { background: #dc2626; }
.top nav a:hover, footer a:hover { color: #dc2626; }
.primary { background: #dc2626; box-shadow: 0 5px 12px #dc262626; }
.primary:hover { background: #b91c1c; }
.hero {
  background:
    radial-gradient(ellipse at 88% 10%, #fee2e2 0, transparent 42%),
    linear-gradient(180deg, #fff, #f9f9fa);
}
.eyebrow, .hero h1 span { color: #dc2626; }
.preview { box-shadow: 0 28px 70px #25272b14; }
.device, .preview-foot span:last-child { color: #dc2626; }
.blue { background: #fee2e2; color: #b91c1c; }
.feature-icon, .template-grid article > span {
  background: #fee2e2;
  color: #b91c1c;
}
.tinted { background: #f5f6f7; }
.price-card.featured {
  border-color: #dc2626;
  box-shadow: 0 12px 38px #dc262614;
}
.popular { background: #dc2626; }
.cta { background: linear-gradient(120deg, #25272b, #45474c); }
.white { color: #b91c1c; }
.tabs { background: #f3f4f6; }
.tabs button.active { color: #dc2626; }
.modal input:focus, .modal select:focus {
  border-color: #dc2626;
  box-shadow: 0 0 0 3px #dc26261a;
}
.app-shell { background: #f5f6f7; }
.sidebar { background: #fff; }
.side-link.active, .side-link:hover {
  background: #fee2e2;
  color: #b91c1c;
}
.quota > div:first-child b, .upgrade { color: #dc2626; }
.bar span { background: #dc2626; }
.collection-card:hover { border-color: #fca5a5; }
.collection-card .collection-icon, .empty-icon {
  background: #fee2e2;
  color: #b91c1c;
}
th { background: #f5f6f7; }

/* ===== STOKALYZE BRAND REFRESH ===== */
:root {
  --ink: #101d35;
  --muted: #63728a;
  --line: #e1e8f2;
  --bg: #f5f8fd;
  --brand: #2563eb;
  --brand-dark: #1d4ed8;
  --soft: #eaf1ff;
  --shadow: 0 18px 50px #102a5612;
}

body {
  background: #fff;
}

.top {
  border-bottom-color: #e5ebf5;
}

.brand {
  gap: 10px;
  color: #101d35;
  letter-spacing: -0.6px;
}

.mark {
  width: 36px;
  height: 36px;
  padding: 4px;
  overflow: hidden;
  border-radius: 11px;
  background: linear-gradient(145deg, #102a56, #2563eb);
  box-shadow: 0 5px 14px #2563eb30;
}

.mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.modal-brand .mark {
  width: 30px;
  height: 30px;
}

.hero {
  background:
    radial-gradient(ellipse at 88% 10%, #dce9ff 0, transparent 43%),
    linear-gradient(180deg, #fff, #f8faff);
}

.eyebrow,
.device,
.top nav a:hover,
footer a:hover {
  color: var(--brand);
}

.primary {
  box-shadow: 0 5px 14px #2563eb25;
}

.preview {
  box-shadow: 0 28px 80px #102a5618;
}

.price-card.featured {
  box-shadow: 0 12px 38px #2563eb14;
}

.cta {
  background: linear-gradient(120deg, #102a56, #2563eb);
}

.sidebar {
  background: #fff;
  border-right-color: #e1e8f2;
}

.side-link.active,
.side-link:hover {
  background: #eaf1ff;
  color: #1d4ed8;
}

.collection-card:hover {
  border-color: #93b4ff;
}

.modal input:focus,
.modal select:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px #2563eb1a;
}

/* STOKALYZE: ajuste final de marca */
:root {
  --ink: #101d35;
  --muted: #63728a;
  --line: #e1e8f2;
  --bg: #f5f8fd;
  --brand: #2563eb;
  --brand-dark: #1d4ed8;
  --soft: #eaf1ff;
  --shadow: 0 18px 50px #102a5612;
}

.top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.top > .brand {
  flex: 0 0 auto;
  margin-right: auto;
  justify-content: flex-start;
  text-align: left;
}

.top nav {
  margin-left: auto;
  margin-right: 28px;
}

.brand .mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
  background: transparent;
  border-radius: 0;
}

.brand .mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.top .mark {
  width: 38px;
  height: 38px;
}

.sidebar
cd /opt/inventra

# Copia de seguridad adicional
sudo cp public/app.css /root/backups/inventra/app.css.pre-logo-fix.bak

# Comprobar las dimensiones del logotipo
file public/assets/stokalyze-logo.png

# Corregir logo, alineación y colores
cat >> public/app.css <<'CSS'


/* STOKALYZE: ajuste final de marca */
:root {
  --ink: #101d35;
  --muted: #63728a;
  --line: #e1e8f2;
  --bg: #f5f8fd;
  --brand: #2563eb;
  --brand-dark: #1d4ed8;
  --soft: #eaf1ff;
  --shadow: 0 18px 50px #102a5612;
}

.top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.top > .brand {
  flex: 0 0 auto;
  margin-right: auto;
  justify-content: flex-start;
  text-align: left;
}

.top nav {
  margin-left: auto;
  margin-right: 28px;
}

.brand .mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
  background: transparent;
  border-radius: 0;
}

.brand .mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.top .mark {
  width: 38px;
  height: 38px;
}

.sidebar .mark {
  width: 32px;
  height: 32px;
}

.modal-brand .mark {
  width: 30px;
  height: 30px;
}

.top nav a:hover,
footer a:hover {
  color: var(--brand);
}
