:root {
    --wine: #7b1e2b;
    --orange: #ff7a00;
    --cream: #fff6eb;
    --graphite: #2a2a2a;
    --line: rgba(42,42,42,0.12);
    --shadow: 0 20px 50px rgba(42,42,42,0.08);
}
* { box-sizing: border-box; }
body.admin-body { margin: 0; font-family: 'Inter', sans-serif; background: linear-gradient(180deg, #fffdf9 0%, #f7efe6 100%); color: var(--graphite); }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.admin-container { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }
.admin-header { background: rgba(255,255,255,0.88); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 10; backdrop-filter: blur(10px); }
.admin-header__row { min-height: 78px; display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.admin-brand { font-family: 'Playfair Display', serif; font-size: 1.5rem; color: var(--wine); }
.admin-nav { display: flex; gap: 16px; flex-wrap: wrap; }
main.admin-container { padding: 32px 0 56px; }
.admin-hero, .admin-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 18px; margin-bottom: 24px; }
.eyebrow { text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.76rem; font-weight: 700; color: var(--orange); }
h1, h2 { font-family: 'Playfair Display', serif; margin: 8px 0 0; color: var(--wine); }
.admin-card, .flash { background: rgba(255,255,255,0.9); border: 1px solid rgba(255,255,255,0.9); border-radius: 24px; box-shadow: var(--shadow); padding: 24px; }
.stat-grid, .admin-grid { display: grid; gap: 18px; }
.stat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 24px; }
.admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.stat-card { display: grid; gap: 10px; }
.stat-card strong { font-size: 2rem; color: var(--wine); }
.login-shell { min-height: calc(100vh - 78px); display: grid; place-items: center; }
.login-card { width: min(460px, 100%); }
.form-card, .compact-form { display: grid; gap: 16px; }
.form-grid { display: grid; gap: 16px; }
.form-grid.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.four-columns { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.checkbox-row { display: flex; align-items: center; gap: 10px; }
.choice-group {
    display: grid;
    gap: 10px;
}
.choice-group__title {
    font-weight: 600;
}
.choice-grid {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fffdfa;
}
.choice-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 500;
}
.choice-item input {
    width: auto;
    margin: 0;
}
.ingredients-editor { display: grid; gap: 14px; }
.ingredient-row { display: grid; grid-template-columns: 1fr 180px 120px; gap: 12px; }
label { display: grid; gap: 8px; font-weight: 600; }
label small { font-size: 0.85rem; font-weight: 500; color: rgba(42, 42, 42, 0.72); }
input, select, textarea { width: 100%; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: #fffdfa; }
.button-primary, .button-secondary, td button, td a { display: inline-flex; align-items: center; justify-content: center; padding: 12px 18px; border-radius: 999px; font-weight: 700; }
.button-primary { background: var(--wine); color: #fff; border: 0; }
.button-secondary, td button, td a { background: rgba(255,255,255,0.8); border: 1px solid var(--line); color: var(--graphite); }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 14px 12px; text-align: left; border-bottom: 1px solid rgba(42,42,42,0.08); vertical-align: top; }
.actions { display: flex; gap: 10px; flex-wrap: wrap; }
.actions form { margin: 0; }
.flash { margin-bottom: 18px; }
.flash.success { border-left: 4px solid #3bb273; }
.flash.error { border-left: 4px solid #c0392b; }
@media (max-width: 980px) {
    .stat-grid, .admin-grid, .form-grid.two-columns, .form-grid.four-columns, .ingredient-row { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .admin-header__row, .admin-hero, .admin-toolbar, .admin-nav { flex-direction: column; align-items: flex-start; }
    table, thead, tbody, tr, th, td { display: block; }
    thead { display: none; }
    tr { padding: 16px 0; border-bottom: 1px solid rgba(42,42,42,0.08); }
    td { border-bottom: 0; padding: 8px 0; }
}
