
:root{
  --mint:#bfdcc5;
  --mint2:#dceee0;
  --mint3:#eef7ef;
  --cream:#fffaf0;
  --paper:#fffdf7;
  --forest:#2f5b36;
  --forest2:#47724d;
  --ink:#171a16;
  --muted:#647060;
  --line:rgba(53,93,58,.18);
  --danger:#9b2f2f;
  --danger-bg:#f5dddd;
  --gold:#d89c3a;
  --shadow:0 18px 50px rgba(27,42,30,.10);
  --radius:24px;
  --sans:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
  --script:"Segoe Script","Brush Script MT",cursive;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;background:linear-gradient(135deg,var(--cream),#fff 42%,var(--mint3));color:var(--ink);font-family:var(--sans);letter-spacing:.01em}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.admin-layout{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;background:rgba(255,253,247,.92);backdrop-filter:blur(16px);border-right:1px solid var(--line);padding:30px 28px;display:flex;flex-direction:column;gap:26px;overflow:hidden}
.admin-brand{display:grid;justify-items:center;text-align:center;gap:12px;min-width:0;padding-bottom:20px;border-bottom:1px solid var(--line)}
.admin-brand img{width:126px;height:126px;object-fit:contain;flex:0 0 auto}
.admin-brand span{display:grid;gap:4px;max-width:100%}
.admin-brand strong{font-size:1.56rem;line-height:1.05;letter-spacing:.05em;font-weight:950;white-space:normal;overflow-wrap:anywhere}
.admin-brand small{display:block;color:var(--muted);font-weight:700;font-size:.96rem;white-space:normal;overflow-wrap:anywhere}
.admin-nav{display:grid;gap:10px}
.admin-nav a{display:flex;align-items:center;gap:13px;min-height:52px;padding:0 18px;border-radius:18px;font-weight:850;color:#263128;line-height:1.2;transition:.18s ease}
.admin-nav a:hover,.admin-nav a.is-active{background:linear-gradient(90deg,var(--mint2),rgba(220,238,224,.55));color:var(--forest)}
.nav-icon{width:22px;min-width:22px;display:inline-grid;place-items:center;color:currentColor;font-weight:900;font-size:1rem}
.sidebar-footer{margin-top:auto;color:var(--muted);font-size:.94rem;border-top:1px solid var(--line);padding-top:20px}
.preview-link{display:inline-flex;align-items:center;gap:8px;margin-top:8px;color:var(--forest);font-weight:900}
.content{padding:42px;overflow:auto;min-width:0}
.flash{padding:14px 18px;border-radius:18px;margin:0 0 18px;background:var(--mint2);color:var(--forest);font-weight:800}
.flash.error{background:var(--danger-bg);color:var(--danger)}
.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}
.topbar h1{font-size:clamp(2.5rem,4vw,4.7rem);margin:0;line-height:.98;font-weight:950;letter-spacing:.02em}
.topbar p{margin:10px 0 0;color:var(--muted);font-size:1.1rem;max-width:820px}
.user-pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--mint2);color:var(--forest);border:1px solid rgba(53,93,58,.28);border-radius:999px;min-height:44px;padding:0 20px;font-weight:900;white-space:nowrap}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:26px}
.stat-card,.panel{background:rgba(255,253,247,.90);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);padding:28px}
.stat-card{min-height:132px;display:grid;align-content:center}
.stat-card span{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;font-weight:950;line-height:1.35}
.stat-card strong{display:block;font-size:2.35rem;color:var(--forest);margin-top:8px;line-height:1}
.panel{margin-bottom:28px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}
.panel-head h2,.panel h2{font-size:2rem;margin:0;font-weight:950;letter-spacing:.04em}
.panel-head p{margin:6px 0 0;color:var(--muted)}
.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;min-height:44px;padding:0 22px;font-weight:950;border:1px solid var(--forest);background:var(--forest);color:#fff;cursor:pointer;line-height:1.2;white-space:nowrap;font:inherit;font-weight:900}
.btn.secondary{background:var(--mint3);color:var(--forest);border-color:rgba(53,93,58,.32)}
.btn.light{background:#fffdf8;color:var(--forest);border-color:rgba(53,93,58,.24)}
.btn.danger{background:var(--danger);border-color:var(--danger)}
.btn.small{min-height:36px;padding:0 14px;font-size:.9rem}
.mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.quick-card{border:1px solid var(--line);background:#fffdf8;border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:14px;min-height:178px}
.quick-card h3{margin:0;font-size:1.15rem;font-weight:950}
.quick-card p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.45;flex:1}
.table-wrap{overflow:auto}
.admin-table{width:100%;border-collapse:separate;border-spacing:0 12px;min-width:900px}
.admin-table th{text-align:left;color:var(--muted);font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;padding:0 14px 2px;font-weight:950}
.admin-table td{background:#fffdf8;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px;vertical-align:middle}
.admin-table td:first-child{border-left:1px solid var(--line);border-radius:18px 0 0 18px}
.admin-table td:last-child{border-right:1px solid var(--line);border-radius:0 18px 18px 0}
.admin-table strong{font-weight:950}
.thumb{width:72px;height:56px;object-fit:cover;border-radius:14px;border:1px solid var(--line);background:var(--mint2)}
.status,.kcal-badge,.stock-badge{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:0 14px;border-radius:999px;font-size:.84rem;font-weight:900;background:var(--mint2);color:var(--forest);white-space:nowrap}
.status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.status.off{background:var(--danger-bg);color:var(--danger)}
.kcal-badge{background:#fff4db;color:#7a5416;border:1px solid rgba(216,156,58,.26)}
.stock-badge{background:var(--mint3);border:1px solid var(--line)}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.actions form{display:inline-flex;margin:0}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.field{display:grid;gap:8px;margin-bottom:16px}
.field.half{grid-column:span 2}
.field.full{grid-column:1/-1}
.field label{font-weight:950;color:#263128}
.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:16px;background:#fffdf8;padding:14px 15px;font:inherit;outline:none;min-height:50px}
.field textarea{min-height:132px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--forest);box-shadow:0 0 0 4px rgba(191,220,197,.45)}
.help-text{color:var(--muted);font-size:.92rem;line-height:1.42}
.checkbox-row{display:flex;gap:12px;flex-wrap:wrap}
.checkbox-row label{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#fffdf8;color:var(--forest);font-weight:900}
.form-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
.image-preview{max-width:180px;border-radius:18px;border:1px solid var(--line);background:var(--mint2);padding:8px}
.qr-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:28px;align-items:start}
.qr-card-preview{background:#fffdf8;border:1px solid var(--line);border-radius:28px;padding:24px;box-shadow:var(--shadow);text-align:center}
.qr-code-box{width:260px;height:260px;border-radius:24px;margin:0 auto 18px;background:#fff;display:grid;place-items:center;border:1px solid var(--line);padding:18px}
.qr-code-box img{width:100%;height:100%;object-fit:contain}
.qr-card-preview .qr-logo{width:82px;margin:0 auto 12px}
.qr-card-preview h2{font-size:1.7rem;margin:0 0 10px}
.qr-card-preview p{margin:0;color:var(--muted)}
.qr-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.copy-box{display:flex;gap:10px;align-items:center;background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:10px 12px}
.copy-box code{overflow:auto;white-space:nowrap;flex:1;color:var(--forest);font-weight:900}
.print-card{min-height:100vh;display:grid;place-items:center;background:var(--cream);padding:40px}
.print-card-inner{width:380px;background:#fffdf8;border:1px solid var(--line);border-radius:34px;padding:28px;text-align:center;box-shadow:var(--shadow)}
.print-card-inner img.logo{width:110px;margin:0 auto 14px}
.print-card-inner .qr-code-box{width:260px;height:260px}
.print-card-inner h1{font-size:2rem;margin:0 0 8px}
.print-card-inner .script{font-family:var(--script);font-size:1.3rem;color:var(--forest)}
@media(max-width:1120px){
  .admin-layout{grid-template-columns:1fr}
  .sidebar{position:relative;height:auto}
  .content{padding:28px}
  .cards,.mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .qr-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .topbar{display:grid}
  .cards,.mini-grid,.form-grid{grid-template-columns:1fr}
  .field.half{grid-column:1/-1}
  .content{padding:22px}
  .admin-table{min-width:760px}
}
@media print{
  .sidebar,.topbar,.content>.panel:not(.print-only),.qr-actions,.no-print{display:none!important}
  .admin-layout{display:block}
  .content{padding:0}
  body{background:#fff}
  .print-card{display:grid!important}
}
.login-page {
    min-height: 100vh;
    margin: 0;
    background: linear-gradient(135deg, #fffaf1 0%, #f4fbf6 55%, #eaf6ef 100%);
}

.login-wrapper {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.login-card {
    width: 100%;
    max-width: 420px;
    background: rgba(255, 255, 255, 0.92);
    border-radius: 22px;
    padding: 34px 30px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.12);
}

.login-logo {
    width: 150px;
    max-width: 150px;
    height: auto;
    display: block;
    margin: 0 auto 24px;
}

.login-card h1 {
    text-align: center;
    margin: 0 0 10px;
}

.login-subtitle {
    text-align: center;
    margin: 0 0 28px;
}

.login-card .field {
    margin-bottom: 18px;
}

.login-card input {
    width: 100%;
    min-height: 52px;
    border-radius: 16px;
    padding: 0 16px;
}

.login-card .btn {
    width: 100%;
    min-height: 52px;
    border-radius: 18px;
    margin-top: 8px;
}