body {
font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
background: #f0f2f5;
margin: 0;
padding: 16px;
color: #1e293b;
}
.container {
max-width: 700px;
margin: 0 auto;
}
.card {
background: white;
border-radius: 28px;
box-shadow: 0 8px 20px rgba(0,0,0,0.05), 0 2px 4px rgba(0,0,0,0.02);
padding: 20px;
margin-bottom: 20px;
transition: all 0.2s;
}
.header {
text-align: center;
margin-bottom: 20px;
}
.header h1 {
font-size: 1.7rem;
font-weight: 600;
margin: 0 0 4px 0;
background: linear-gradient(135deg, #2b6e3c, #1e8e3e);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
}
.header p {
font-size: 0.85rem;
color: #5b6e8c;
margin: 0;
}
.import-area {
background: #f8fafc;
border: 1.5px dashed #94a3b8;
border-radius: 20px;
padding: 16px;
text-align: center;
margin-bottom: 24px;
transition: background 0.2s;
}
.import-label {
display: inline-flex;
align-items: center;
gap: 8px;
background: #1e8e3e;
color: white;
padding: 10px 20px;
border-radius: 40px;
font-weight: 500;
font-size: 0.9rem;
cursor: pointer;
transition: background 0.2s;
box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
.import-label:active {
background: #166b2e;
transform: scale(0.97);
}
.import-label input {
display: none;
}
.file-status {
font-size: 0.8rem;
margin-top: 10px;
color: #2c6b2f;
font-weight: 500;
}
.stats {
display: flex;
justify-content: space-between;
background: #eef2ff;
padding: 12px 16px;
border-radius: 60px;
margin-bottom: 24px;
font-size: 0.85rem;
font-weight: 500;
}
.search-box {
display: flex;
gap: 12px;
align-items: center;
flex-wrap: wrap;
margin-bottom: 24px;
}
.search-input-wrapper {
flex: 1;
position: relative;
}
.search-input-wrapper input {
width: 100%;
padding: 16px 18px;
font-size: 1rem;
border: 1.5px solid #e2e8f0;
border-radius: 48px;
background: white;
transition: all 0.2s;
font-family: monospace;
letter-spacing: 0.3px;
}
.search-input-wrapper input:focus {
outline: none;
border-color: #2b6e3c;
box-shadow: 0 0 0 3px rgba(30,142,62,0.2);
}
.scan-btn {
background: #1e293b;
color: white;
border: none;
border-radius: 48px;
padding: 0 22px;
font-size: 1rem;
font-weight: 500;
cursor: pointer;
display: flex;
align-items: center;
gap: 6px;
transition: 0.1s linear;
height: 54px;
}
.scan-btn:active {
background: #0f172a;
transform: scale(0.96);
}
.result-card {
background: white;
border-radius: 28px;
padding: 20px;
box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}
.product-found {
border-left: 6px solid #1e8e3e;
}
.product-notfound {
border-left: 6px solid #dc2626;
text-align: center;
color: #7f8c8d;
}
.product-title {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 8px;
word-break: break-word;
}
.barcode {
font-family: monospace;
background: #f1f5f9;
padding: 6px 12px;
border-radius: 40px;
display: inline-block;
font-size: 0.85rem;
margin-bottom: 16px;
}
.info-row {
display: flex;
justify-content: space-between;
padding: 10px 0;
border-bottom: 1px solid #edf2f7;
}
.info-label {
font-weight: 600;
color: #4a5b7a;
}
.info-value {
font-weight: 500;
text-align: right;
word-break: break-word;
max-width: 60%;
}
.price {
font-size: 1.4rem;
font-weight: 800;
color: #2b6e3c;
}
.help-text {
font-size: 0.75rem;
text-align: center;
margin-top: 24px;
color: #6c7a91;
}
/* Timer bar */
.timer-container {
margin-top: 16px;
padding: 8px 12px;
background: #f8fafc;
border-radius: 60px;
display: flex;
align-items: center;
gap: 12px;
font-size: 0.8rem;
}
.timer-bar {
flex: 1;
height: 6px;
background: #e2e8f0;
border-radius: 10px;
overflow: hidden;
}
.timer-progress {
width: 0%;
height: 100%;
background: #1e8e3e;
border-radius: 10px;
transition: width 0.1s linear;
}
.timer-text {
font-weight: 500;
color: #475569;
min-width: 65px;
text-align: right;
}
button, .import-label {
cursor: pointer;
user-select: none;
}
@media (max-width: 480px) {
body {
padding: 12px;
}
.search-box {
flex-direction: column;
gap: 8px;
}
.scan-btn {
width: 100%;
justify-content: center;
}
.info-row {
flex-direction: column;
gap: 4px;
}
.info-value {
text-align: left;
max-width: 100%;
}
.timer-container {
font-size: 0.7rem;
}
}