body, html{
margin: 0;
padding: 0;
border: 0;
font: normal 22px/1.4 'LatoLatinWeb', helvetica, arial, verdana, sans-serif;
background-color: #fff;
color: #8b8b8b;
}

a{
color: #3bb34a;
text-decoration: none;
}

a:hover{
color: #55c960;
text-decoration: underline;
}

h1{
font-size: 1.5em;
font-family: 'LatoLatinWebLight', helvetica, arial, verdana, sans-serif;
font-weight: normal;
margin: 1.5em 0 0.5em 0;
color: #617bb5;
}

h2{
font-size: 1.1em;
font-weight: bold;
margin: 0 0 0.5em 0;
color: #8498d1;
}

h3{
font-size: 1em;
font-weight: bold;
margin: 1em 0 0.2em 0;
color: #8498d1;
}

#splash{
min-height: 100vh;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
padding: 2rem;
display: flex;
align-items: center;
justify-content: center;
}

.splash-container{
max-width: 1200px;
margin: 0 auto;
}

.hero-section{
text-align: center;
margin-bottom: 4rem;
}

.hero-badge{
display: inline-block;
background: rgba(255, 255, 255, 0.2);
color: #fff;
padding: 0.5rem 1.5rem;
border-radius: 2rem;
font-size: 0.9rem;
margin-bottom: 1.5rem;
backdrop-filter: blur(10px);
}

#splash h1.title{
font-size: 4rem;
margin: 0 0 1rem 0;
padding: 0;
text-align: center;
color: #ffffff;
font-weight: 700;
letter-spacing: -0.02em;
text-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.subtitle{
font-size: 1.4rem;
color: rgba(255, 255, 255, 0.9);
margin: 0 0 2.5rem 0;
font-weight: 300;
}

.cta-section{
margin-top: 2rem;
text-align: center;
}

.button.primary{
background: #ffffff;
color: #667eea;
padding: 1rem 3rem;
font-size: 1.2rem;
font-weight: 600;
border: none;
border-radius: 3rem;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
transition: all 0.3s ease;
display: inline-flex;
align-items: center;
gap: 0.8rem;
margin: 0;
}

.button.primary:hover{
transform: translateY(-2px);
box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
background: #f8f9fa;
}

.button-icon{
font-size: 1.5rem;
line-height: 1;
}

.upload-hint{
color: rgba(255, 255, 255, 0.8);
font-size: 0.9rem;
margin-top: 1rem;
}

.features-section{
margin-bottom: 4rem;
}

.features-title{
text-align: center;
color: #ffffff;
font-size: 2.2rem;
margin-bottom: 3rem;
font-weight: 600;
}

.features-grid{
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
margin-bottom: 3rem;
max-width: 1000px;
margin-left: auto;
margin-right: auto;
}

.feature-card{
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
border-radius: 1rem;
padding: 2rem;
border: 1px solid rgba(255, 255, 255, 0.2);
transition: all 0.3s ease;
}

.feature-card:hover{
transform: translateY(-5px);
background: rgba(255, 255, 255, 0.15);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.feature-icon{
font-size: 3rem;
margin-bottom: 1rem;
}

.feature-card h3{
color: #ffffff;
font-size: 1.2rem;
margin: 0.5rem 0;
font-weight: 600;
}

.feature-card p{
color: rgba(255, 255, 255, 0.8);
font-size: 0.95rem;
line-height: 1.6;
margin: 0;
}

.benefits-section{
display: flex;
justify-content: center;
gap: 3rem;
flex-wrap: wrap;
padding: 2rem;
background: rgba(255, 255, 255, 0.1);
border-radius: 1rem;
backdrop-filter: blur(10px);
max-width: 900px;
margin-left: auto;
margin-right: auto;
}

.benefit-item{
text-align: center;
}

.benefit-value{
display: block;
font-size: 2rem;
color: #ffffff;
font-weight: 700;
margin-bottom: 0.5rem;
}

.benefit-label{
display: block;
color: rgba(255, 255, 255, 0.8);
font-size: 0.9rem;
}

.subscript{
font-size: 0.75em;
}

.nav{
margin: 0;
padding: 0;
text-align: center;
}

li{
list-style: none;
float: left;
margin: 0;
padding: 0;
}

.button{
display: block;
margin: 0 0.5em;
padding: 0.6em 2.4em;
background-color: #fff;
border-radius: 5em;
border: 2px solid #d7e9b7;
cursor: pointer;
color: #3bb34a;
}

.button a:hover{
text-decoration: none;
}

.button.start{
background: #fff url(img/start.svg) no-repeat;
background-size: 1.4em 1.4em;
background-position: 1.8em 50%;
padding-left: 3.7em;
}

.button.spinner{
background: #fff url(img/spin.svg) no-repeat;
background-size: 1.4em 1.4em;
background-position: 1.8em 50%;
padding-left: 3.7em;
}

.button.upload{
background: #fff url(img/upload.svg) no-repeat;
background-size: 1em 1em;
background-position: 2.2em 50%;
padding-left: 4em;
display: inline-block;
}

.button.download{
background: #fff url(img/download.svg) no-repeat;
background-size: 1em 1em;
background-position: 2.2em 50%;
padding-left: 4em;
}

.button.sheet{
background: #fff url(img/sheet.svg) no-repeat;
background-size: 1em 1em;
background-position: 2.2em 50%;
padding-left: 4em;
}

.button.code{
background: #fff url(img/code.svg) no-repeat;
background-size: 1.2em 1.2em;
background-position: 2em 50%;
padding-left: 3.9em;
}

.button.config{
background: #fff url(img/settings.svg) no-repeat;
background-size: 1.2em 1.2em;
background-position: 2em 50%;
padding-left: 3.9em;
}

.button.close{
background: #fff url(img/close.svg) no-repeat;
background-size: 2em 2em;
background-position: 1.8em 50%;
padding-left: 3.9em;
}

.button.zoomin{
background: #fff url(img/zoomin.svg) no-repeat;
background-size: 1.5em 1.5em;
}

.button.zoomout{
background: #fff url(img/zoomout.svg) no-repeat;
background-size: 1.5em 1.5em;
}

.button.exit{
background: #fff url(img/close.svg) no-repeat;
background-size: 1.5em 1.5em;
}

.button:hover{
color: #55c960;
box-shadow: 0 2px 1px #d7dae1;
text-decoration: none;
}

.button:active{
background-color: #dddde3;
box-shadow: inset 0 2px 2px #d0d2da;
}

.button.disabled{
cursor: default;
opacity: 0.5;
color: #999;
-webkit-filter: saturate(0);
filter: saturate(0);
}

.button.disabled:hover{
box-shadow: none;
}

.button.disabled:active{
background-color: #fff;
box-shadow: none;
}

#splash .nav{
float: left;
width: 150%;
margin: 4em 0 0 -20%;
}

#faq{
display: none;
float: left;
margin-top: 2em;
padding-bottom: 5em;
}

/* svgnest styles */

#svgnest{
display: none;
min-height: 100vh;
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
padding: 2rem;
margin: 0 auto;
}

.workspace-header{
max-width: 1400px;
margin: 0 auto 2rem;
background: white;
border-radius: 1rem;
padding: 1.5rem 2rem;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 1.5rem;
}

.workspace-title{
font-size: 2rem;
margin: 0;
color: #667eea;
font-weight: 700;
flex-shrink: 0;
}

.action-buttons{
display: flex;
gap: 0.75rem;
flex-wrap: wrap;
align-items: center;
justify-content: center;
}

/* Novos estilos de botões modernos */
.btn{
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.85rem 1.75rem;
border: none;
border-radius: 0.75rem;
font-size: 0.95rem;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
text-decoration: none;
color: white;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
box-shadow: 0 4px 10px rgba(102, 126, 234, 0.3);
position: relative;
overflow: hidden;
}

.btn::before{
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: rgba(255, 255, 255, 0.1);
transition: left 0.5s ease;
}

.btn:hover::before{
left: 100%;
}

.btn:hover{
transform: translateY(-2px);
box-shadow: 0 6px 15px rgba(102, 126, 234, 0.4);
}

.btn-icon{
font-size: 1.2rem;
line-height: 1;
z-index: 1;
}

.btn-text{
line-height: 1;
z-index: 1;
}

.btn-start{
background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
box-shadow: 0 4px 10px rgba(17, 153, 142, 0.3);
}

.btn-start:hover{
box-shadow: 0 6px 15px rgba(17, 153, 142, 0.4);
}

.btn-start.btn-spinner {
background: linear-gradient(135deg, #ee0979 0%, #ff6a00 100%);
animation: pulse 2s infinite;
}

@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.8; }
}

.btn-download{
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
box-shadow: 0 4px 10px rgba(79, 172, 254, 0.3);
}

.btn-download:hover{
box-shadow: 0 6px 15px rgba(79, 172, 254, 0.4);
}

.btn-sheet{
background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
box-shadow: 0 4px 10px rgba(250, 112, 154, 0.3);
}

.btn-sheet:hover{
box-shadow: 0 6px 15px rgba(250, 112, 154, 0.4);
}

.btn-config{
background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
color: #667eea;
box-shadow: 0 4px 10px rgba(168, 237, 234, 0.3);
}

.btn-config:hover{
box-shadow: 0 6px 15px rgba(168, 237, 234, 0.4);
}

.btn.disabled{
opacity: 0.4;
cursor: not-allowed;
pointer-events: none;
filter: grayscale(50%);
background: linear-gradient(135deg, #c0c0c0 0%, #9e9e9e 100%);
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
}

.btn.disabled::before{
display: none;
}

.btn.active{
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.4);
filter: brightness(1.1);
}

.btn-primary{
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
width: 100%;
justify-content: center;
margin-top: 1.5rem;
}

.btn-save{
padding: 1rem 2rem;
font-size: 1rem;
}

#controls{
max-width: 1400px;
margin: 0 auto;
position: relative;
}

/* Modal overlay - painéis em modal com scroll */
.modal-overlay{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
backdrop-filter: blur(5px);
z-index: 1000;
display: none;
align-items: center;
justify-content: center;
padding: 2rem;
overflow-y: auto;
}

.modal-overlay.active{
display: flex;
}

.modal-content{
background: white;
border-radius: 1rem;
padding: 2rem;
max-width: 600px;
width: 100%;
max-height: 90vh;
overflow-y: auto;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
position: relative;
animation: modalSlideIn 0.3s ease-out;
}

@keyframes modalSlideIn {
from {
opacity: 0;
transform: translateY(-50px);
}
to {
opacity: 1;
transform: translateY(0);
}
}

.modal-content::-webkit-scrollbar {
width: 8px;
}

.modal-content::-webkit-scrollbar-track {
background: #f1f1f1;
border-radius: 10px;
}

.modal-content::-webkit-scrollbar-thumb {
background: #667eea;
border-radius: 10px;
}

.modal-content::-webkit-scrollbar-thumb:hover {
background: #764ba2;
}

.panel-title{
font-size: 1.5rem;
color: #667eea;
margin: 0 0 1.5rem 0;
font-weight: 700;
display: flex;
align-items: center;
gap: 0.5rem;
}

.panel-description{
color: #666;
margin-bottom: 1.5rem;
line-height: 1.6;
}

/* Config items */
.config-item{
margin-bottom: 1.5rem;
}

.config-label{
display: flex;
align-items: center;
gap: 0.5rem;
font-weight: 600;
color: #333;
margin-bottom: 0.5rem;
font-size: 0.95rem;
}

.config-input{
width: 100%;
padding: 0.75rem 1rem;
border: 2px solid #e0e0e0;
border-radius: 0.5rem;
font-size: 1rem;
transition: all 0.3s ease;
box-sizing: border-box;
}

.config-input:focus{
outline: none;
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

.config-input:hover{
border-color: #b0b0b0;
}

.config-checkbox{
display: flex;
align-items: center;
}

.config-checkbox .config-label{
margin-bottom: 0;
cursor: pointer;
user-select: none;
}

.config-checkbox input[type="checkbox"]{
width: 1.2rem;
height: 1.2rem;
cursor: pointer;
margin-right: 0.5rem;
}

.tooltip{
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.5rem;
height: 1.5rem;
background: #667eea;
color: white;
border-radius: 50%;
font-size: 0.8rem;
cursor: help;
font-weight: bold;
}

.tooltip:hover{
background: #764ba2;
transform: scale(1.1);
}

/* Sheet selection grid */
.sheet-grid{
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1rem;
max-width: 900px;
margin-left: auto;
margin-right: auto;
}

.sheet-card{
background: linear-gradient(135deg, #667eea15 0%, #764ba215 100%);
border: 2px solid #e0e0e0;
border-radius: 0.75rem;
padding: 1.5rem;
text-align: center;
cursor: pointer;
transition: all 0.3s ease;
text-decoration: none;
display: block;
}

.sheet-card:hover{
border-color: #667eea;
transform: translateY(-5px);
box-shadow: 0 10px 25px rgba(102, 126, 234, 0.2);
background: linear-gradient(135deg, #667eea25 0%, #764ba225 100%);
}

.sheet-size{
font-size: 1.1rem;
font-weight: 700;
color: #333;
margin-bottom: 0.5rem;
}

.sheet-label{
font-size: 0.9rem;
color: #666;
}

/* Custom size section */
.custom-size-section{
margin-top: 2rem;
padding-top: 2rem;
border-top: 2px solid #e0e0e0;
}

.custom-size-title{
font-size: 1.2rem;
color: #667eea;
margin: 0 0 1rem 0;
font-weight: 600;
display: flex;
align-items: center;
gap: 0.5rem;
}

.custom-size-inputs{
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1rem;
margin-bottom: 1rem;
}

.custom-input-group{
display: flex;
flex-direction: column;
gap: 0.5rem;
}

.custom-input-group label{
font-size: 0.9rem;
font-weight: 600;
color: #333;
}

.custom-input-group input[type="number"]{
width: 100%;
padding: 0.75rem 1rem;
border: 2px solid #e0e0e0;
border-radius: 0.5rem;
font-size: 1rem;
transition: all 0.3s ease;
box-sizing: border-box;
}

.custom-input-group input[type="number"]:focus{
outline: none;
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

.custom-input-group input[type="number"]:hover{
border-color: #b0b0b0;
}

#applyCustomSize{
width: 100%;
justify-content: center;
}

/* Info card - estatísticas discretas */
.info-card{
display: none;
max-width: 1400px;
margin: 1rem auto;
background: white;
border-radius: 0.75rem;
padding: 1rem 1.5rem;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.progress-bar-section{
margin-bottom: 0.75rem;
}

.progress{
width: 100%;
height: 0.5rem;
background: #f0f0f0;
border-radius: 1rem;
overflow: hidden;
}

.progress_inner{
height: 100%;
background: linear-gradient(90deg, #11998e 0%, #38ef7d 100%);
border-radius: 1rem;
transition: width 0.3s ease;
}

.stats-inline{
display: none;
flex-direction: row;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 1.5rem;
}

.stat-inline{
display: flex;
align-items: center;
gap: 0.5rem;
}

.stat-inline-label{
color: #666;
font-size: 0.85rem;
font-weight: 500;
}

.stat-inline-value{
color: #667eea;
font-size: 0.95rem;
font-weight: 700;
}

.info-time-inline{
color: #999;
font-size: 0.8rem;
font-style: italic;
}

#info{
display: block;
}

#info_placement{
display: flex !important;
}

#messagewrapper{
width: 50em;
}

/* Removidos estilos antigos - h1.label, .column, etc. - agora usamos .stat-card */

/* svg styles - área de visualização */ 

#select{
max-width: 1400px;
margin: 2rem auto;
background: white;
border-radius: 1rem;
padding: 2rem;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

#select, #bins{
position: relative;
}

#bins{
max-width: 1400px;
margin: 2rem auto;
}

#select svg, #bins svg{
  width: calc(100% - 4rem);
  max-width: 100%;
  height: auto;
  position: relative;
  display: block;
  overflow: visible;
  margin: 0;
}

#select svg *{
fill: #fff !important;
fill-opacity: 0 !important;
stroke: #667eea !important;
stroke-width: 2px !important;
vector-effect: non-scaling-stroke !important;
stroke-linejoin: round !important;
pointer-events: fill;
}

#select svg *.fullRect{
fill: #f5f7fa !important;
fill-opacity: 1 !important;
stroke: #e0e0e0 !important;
stroke-width: 2px !important;
vector-effect: non-scaling-stroke !important;
stroke-linejoin: round !important;
}

#select svg *:hover{
stroke: #764ba2 !important;
cursor: pointer !important;
}

#select svg *.active{
stroke: #11998e !important;
stroke-width: 3px !important;
}

#select.disabled svg *, #select.disabled svg *:hover, #select.disabled svg *.active{
stroke: #9b9da2 !important;
stroke-width: 2px !important;
cursor: default !important;
}

#bins svg{
background: white;
border-radius: 1rem;
padding: 2rem;
margin-bottom: 1.5rem;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}

#bins svg.grid{
width: 100%;
margin: 0 0 1.5rem 0;
}

#bins svg *{
fill: #667eea !important;
stroke: #764ba2 !important;
stroke-width: 2px !important;
vector-effect: non-scaling-stroke !important;
stroke-linejoin: round !important;
}

#bins svg .bin{
fill: #ffffff !important;
stroke: #667eea !important;
}

#bins svg .hole{
fill: #ffffff !important;
stroke: #764ba2 !important;
}

/* messages - notificações modernas */

#messagewrapper{
	position: fixed;
	left: 50%;
	transform: translateX(-50%);
	bottom: 2rem;
	z-index: 1000;
	max-width: 90%;
	width: auto;
	min-width: 300px;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

#message{
	overflow: hidden;
	height: 0;
	opacity: 0;
	transition: all 0.3s ease;
}

#message.active{
	height: auto;
	opacity: 1;
	padding: 1rem 2rem;
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: white;
	border-radius: 0.75rem;
	box-shadow: 0 10px 30px rgba(102, 126, 234, 0.4);
	cursor: pointer;
	font-weight: 600;
	line-height: 1.5;
}

#message.error{
	background: linear-gradient(135deg, #ff6b6b 0%, #ee5a6f 100%);
	box-shadow: 0 10px 30px rgba(255, 107, 107, 0.4);
	height: auto;
	opacity: 1;
	padding: 1rem 2rem;
	color: white;
	border-radius: 0.75rem;
	cursor: pointer;
	font-weight: 700;
	line-height: 1.5;
}

#message.active:hover, #message.error:hover{
	transform: translateY(-2px);
	box-shadow: 0 15px 40px rgba(102, 126, 234, 0.5);
}

.message-close {
	background: white;
	border: none;
	color: #667eea;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	cursor: pointer;
	font-size: 20px;
	line-height: 1;
	display: none;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
	transition: all 0.3s ease;
	font-weight: bold;
}

.message-close:hover {
	transform: scale(1.1);
	background: #f3f4f6;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}

#message.active ~ .message-close,
#message.error ~ .message-close {
	display: flex;
}



/* animations taken from animate.css */

.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

@-webkit-keyframes bounce {
  from, 20%, 53%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
  }

  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0);
  }

  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0);
  }

  90% {
    -webkit-transform: translate3d(0,-4px,0);
    transform: translate3d(0,-4px,0);
  }
}

@keyframes bounce {
  from, 20%, 53%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
  }

  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0);
  }

  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0);
  }

  90% {
    -webkit-transform: translate3d(0,-4px,0);
    transform: translate3d(0,-4px,0);
  }
}

.bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom;
}

@-webkit-keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp;
}

@media only screen and (max-width: 1800px) {
   body { font-size: 20px; }
	#svgnest, #messagewrapper{
	width: 60em;
	}
	
	.progress{
	width: 100%;
	}
}

@media only screen and (max-width: 1500px) {
   body { font-size: 16px; }
	#svgnest, #messagewrapper{
	width: 50em;
	}
	
	#svgnest{
	margin-top: 5em;
	}
	
	#svgnest .logo{
	width: 25%;
	}
	
	#controls{
	margin-top: 3em;
	}
	
	#splash .logo{
		width: 60%;
		margin: 0 20%;
	}
	
	h1.label{
	font-size: 3em;
	}
	
	.progress{
	width: 100%;
	}
}

@media only screen and (max-width: 1300px) {
	body { font-size: 14px; }
}

@media only screen and (max-width: 790px) {
	body { font-size: 16px; }
	
	#splash{
		padding: 1rem;
	}
	
	#splash h1.title{
		font-size: 2.5rem;
	}
	
	.subtitle{
		font-size: 1.1rem;
	}
	
	.features-grid{
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	
	.benefits-section{
		flex-direction: column;
		gap: 1.5rem;
	}
	
	.button.primary{
		padding: 0.9rem 2rem;
		font-size: 1rem;
	}
	
	.features-title{
		font-size: 1.8rem;
	}
	
	/* Responsividade svgnest */
	.workspace-header{
		flex-direction: column;
		text-align: center;
	}
	
	.action-buttons{
		width: 100%;
		flex-direction: column;
	}
	
	.btn{
		width: 100%;
		justify-content: center;
	}
	
	.stats-grid{
		grid-template-columns: 1fr;
	}
	
	.sheet-grid{
		grid-template-columns: 1fr;
	}
}

@media only screen and (max-width: 480px) {
	#splash h1.title{
		font-size: 2rem;
	}
	
	.subtitle{
		font-size: 1rem;
	}
	
	.hero-badge{
		font-size: 0.8rem;
		padding: 0.4rem 1rem;
	}
	
	.feature-card{
		padding: 1.5rem;
	}
	
	.feature-icon{
		font-size: 2.5rem;
	}
	
	.benefit-value{
		font-size: 1.5rem;
	}
	
	/* Mobile svgnest */
	.workspace-title{
		font-size: 1.5rem;
	}
	
	.panel-card{
		padding: 1.5rem;
	}
	
	.btn{
		padding: 0.6rem 1rem;
		font-size: 0.9rem;
	}
	
	#select, #bins, .info-card{
		padding: 1rem;
	}
	
	.stats-inline{
		flex-direction: column;
		align-items: flex-start;
		gap: 0.5rem;
	}
	
	.stat-inline{
		width: 100%;
		justify-content: space-between;
	}
}