/* Admin Candilejas by Kokomo */
:root{
    --bg:#f5f2ec; --card:#fff; --text:#222; --muted:#777;
    --border:#e4ded3; --red:#d1322c; --red-h:#b2251f;
    --gold:#b4882d; --gold-h:#8d691f; --green:#1e9e5c;
    --grey:#444; --grey-d:#222;
    --radius:10px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Rubik',system-ui,sans-serif;line-height:1.5}
a{color:var(--red);text-decoration:none}
a:hover{color:var(--red-h)}
img{max-width:100%;display:block}

.admin-topbar{
    background:var(--grey-d); color:#fff; padding:14px 24px;
    display:flex; align-items:center; gap:20px;
    border-bottom:3px solid var(--red);
}
.admin-topbar img{width:38px}
.admin-topbar h1{font-size:16px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin:0; flex:1}
.admin-topbar nav{display:flex;gap:6px;flex-wrap:wrap}
.admin-topbar nav a{
    color:#ddd; padding:8px 14px; border-radius:6px; font-size:13px;
    text-transform:uppercase; letter-spacing:.08em;
}
.admin-topbar nav a:hover,
.admin-topbar nav a.active{background:var(--red); color:#fff}
.admin-topbar .logout{color:#ffb4af; font-size:13px}
.admin-topbar .view-site{color:#fff; font-size:13px}

.wrap{max-width:1180px;margin:28px auto;padding:0 24px}
h2.page-title{margin:0 0 6px;font-size:26px;letter-spacing:.02em}
p.page-sub{margin:0 0 22px;color:var(--muted)}

.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px;margin-bottom:22px;box-shadow:0 2px 6px rgba(0,0,0,.03)}
.card h3{margin:0 0 14px;font-size:17px;text-transform:uppercase;letter-spacing:.05em}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:780px){.grid2,.grid3{grid-template-columns:1fr}}

label{display:block;margin:10px 0 6px;font-size:13px;font-weight:600;color:#444;letter-spacing:.03em}
input[type=text], input[type=number], input[type=password], input[type=email],
textarea, select{
    width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:6px;
    font-size:14px; font-family:inherit; background:#fff; color:var(--text);
}
input:focus, textarea:focus, select:focus{outline:2px solid var(--gold); outline-offset:1px}
textarea{min-height:80px; resize:vertical}
.check-row{display:flex; align-items:center; gap:8px; margin-top:10px}
.check-row input{width:auto}

.btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:10px 18px; border-radius:6px; border:0; font-weight:600; cursor:pointer;
    font-size:14px; letter-spacing:.04em; text-transform:uppercase;
}
.btn-primary{background:var(--red); color:#fff}
.btn-primary:hover{background:var(--red-h)}
.btn-gold{background:var(--gold); color:#fff}
.btn-gold:hover{background:var(--gold-h)}
.btn-grey{background:#e3ddd2; color:#333}
.btn-grey:hover{background:#d5ceb8}
.btn-danger{background:transparent; color:#b2251f; border:1px solid #b2251f}
.btn-danger:hover{background:#b2251f; color:#fff}
.btn-sm{padding:6px 12px; font-size:12px}

.msg{padding:12px 16px; border-radius:6px; margin-bottom:18px; font-size:14px}
.msg.ok{background:#e3f6ec; color:#177a46; border:1px solid #a5dfbe}
.msg.err{background:#fbe4e3; color:#a51e19; border:1px solid #f0b2af}

/* Tabla platos */
table.dishes{width:100%; border-collapse:collapse; background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:0 2px 6px rgba(0,0,0,.04)}
table.dishes th, table.dishes td{padding:10px 12px; border-bottom:1px solid var(--border); vertical-align:middle; font-size:14px; text-align:left}
table.dishes th{background:#f0ebe0; color:#444; font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:700}
table.dishes tr:last-child td{border-bottom:0}
table.dishes tr.no-stock{opacity:.55}
table.dishes .thumb{width:54px; height:40px; border-radius:4px; object-fit:cover; background:#eee}
table.dishes .thumb-ph{width:54px; height:40px; border-radius:4px; background:#e8e2d4; display:grid;place-items:center; font-size:18px}

.badge{display:inline-block; padding:3px 8px; border-radius:999px; font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-weight:700}
.badge.on{background:#daf3e4; color:#1e7a44}
.badge.off{background:#f4dedc; color:#a51e19}
.badge.star{background:#fdf0d1; color:#7f5c0c}

.filter-row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; align-items:center}
.filter-row select, .filter-row input{max-width:220px}

/* Toggle stock */
.switch{position:relative; display:inline-block; width:46px; height:26px}
.switch input{opacity:0;width:0;height:0}
.slider{position:absolute;cursor:pointer;inset:0;background:#ccc;transition:.25s;border-radius:999px}
.slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;top:3px;background:#fff;transition:.25s;border-radius:50%}
.switch input:checked+.slider{background:var(--green)}
.switch input:checked+.slider:before{transform:translateX(20px)}

/* Login */
.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#1a1a1c,#2a2a2f);padding:20px}
.login-card{background:#fff;padding:36px 34px;border-radius:12px;width:100%;max-width:380px;box-shadow:0 20px 60px rgba(0,0,0,.35);text-align:center}
.login-card img{width:110px;margin:0 auto 12px}
.login-card h1{font-size:20px; letter-spacing:.08em; text-transform:uppercase; margin:0 0 4px}
.login-card p.small{color:var(--muted); font-size:13px; margin:0 0 22px}
.login-card label{text-align:left}
.login-card .btn{width:100%; justify-content:center; margin-top:14px}
.login-card .back{display:block; margin-top:16px; font-size:13px; color:var(--muted)}
