/* ===========================================
   O Braseiro — Estilos partilhados
   Usado por index.html e admin.html
   =========================================== */

/* ----- Wine card (partilhado) ----- */
.wine-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 0 14px 0;
    margin-bottom: 6px;
    border-bottom: 1px solid rgba(0,0,0,0.08);
}

.wine-card:last-child {
    border-bottom: none;
}

.wine-image {
    width: 110px;
    min-width: 110px;
    height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

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

.wine-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 200px;
    font-size: 12px;
    color: #333;
    padding-top: 4px;
}

.wine-info h3 {
    margin: 0 0 4px;
    font-size: 15px;
    color: #2a1215;
    font-weight: 700;
}

.wine-info .middle-block {
    margin-top: 6px;
    margin-bottom: auto;
}

.wine-info p {
    margin: 1px 0;
    line-height: 1.45;
}

.wine-info .price {
    margin-top: 10px;
    font-weight: 700;
    color: #5c0010;
    text-align: right;
    font-size: 13px;
}

.desc-text {
    margin-top: 8px !important;
}

/* ----- Status messages (partilhado) ----- */
.status {
    font-size: 12px;
    color: #333;
    margin: 0 0 10px;
    white-space: pre-wrap;
}

.error { color: #8a0f23; font-weight: 700; }
.ok    { color: #1f6f3a; font-weight: 700; }
.warn  { color: #7a5c00; font-weight: 700; }

/* ----- Loading skeleton (partilhado) ----- */
.skeleton-wrap {
    padding: 20px 0;
}

.skeleton-card {
    display: flex;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid rgba(0,0,0,0.07);
    animation: skeleton-pulse 1.4s ease-in-out infinite;
}

.skeleton-img {
    width: 110px;
    min-width: 110px;
    height: 200px;
    border-radius: 8px;
    background: #e0d8d0;
}

.skeleton-lines {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 6px;
}

.skeleton-line {
    height: 12px;
    border-radius: 6px;
    background: #e0d8d0;
}

.skeleton-line.title { width: 55%; height: 16px; }
.skeleton-line.s1    { width: 38%; }
.skeleton-line.s2    { width: 30%; }
.skeleton-line.s3    { width: 45%; }
.skeleton-line.s4    { width: 22%; }
.skeleton-line.price { width: 15%; align-self: flex-end; margin-top: auto; }

@keyframes skeleton-pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.45; }
}
