/* winemebkk-app — ส่วนเพิ่มจากสไตล์หลัก (style.css)
   1) สถานะ "สินค้าหมด" บนหน้าเว็บ  2) ฟอร์ม/ข้อความแจ้งเตือน  3) ระบบหลังบ้าน (admin) */

/* ---------- 1. sold out (ไม่เปิดเผยจำนวนคงเหลือ) ---------- */
.badge-sold{background:#3a2f2d;color:#fff}
.btn-sold{background:#f0e9e7;border-color:#f0e9e7;color:#9a8f8c;cursor:not-allowed}
.btn-sold:hover{background:#f0e9e7;border-color:#f0e9e7;color:#9a8f8c}
.card.is-sold .card-ph img{opacity:.55;filter:grayscale(.5)}
.card.is-sold:hover{border-color:var(--line);box-shadow:none;transform:none}
.card.is-sold h3,.card.is-sold .price{color:var(--muted)}
.spec .out{color:#9a8f8c}
.cart-warn{border:1px solid #e6c9c9;background:#fdf3f3;border-left:3px solid var(--wine);
  padding:12px 16px;font-size:13.5px;color:var(--wine-dark);margin-bottom:18px}

/* ---------- 2. ฟอร์ม / ข้อความ ---------- */
.alert{border:1px solid var(--line);border-left:3px solid var(--wine);background:var(--wine-tint-2);
  padding:13px 16px;font-size:14px;margin-bottom:20px;color:var(--ink-2)}
.alert-ok{border-left-color:#3f7a4a;background:#f2f8f3;color:#2c5a35}
.alert-error{border-left-color:var(--wine);background:#fdf3f3;color:var(--wine-dark)}
.field .hint{font-size:12.5px;color:var(--muted);margin-top:6px}
.radio-row{display:flex;gap:22px;flex-wrap:wrap;margin-top:6px}
.radio-row label{display:flex;align-items:center;gap:9px;font-size:14.5px;text-transform:none;letter-spacing:0;font-weight:400}
.checkout-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:48px;padding:56px 0 90px;align-items:start}
.summary-item{display:flex;justify-content:space-between;gap:14px;font-size:14px;padding:8px 0;border-bottom:1px solid var(--line-2)}
.summary-item .nm{color:var(--ink-2)}
.summary-item .qty{color:var(--muted);font-size:12.5px}
.order-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-end}
.order-code{font-family:var(--font-serif);font-size:26px;color:var(--wine);letter-spacing:.04em}
.steps{display:flex;gap:8px;flex-wrap:wrap;margin:26px 0 30px}
.step{border:1px solid var(--line);padding:9px 15px;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.step.on{background:var(--wine);border-color:var(--wine);color:#fff}
.step.done{border-color:var(--wine);color:var(--wine)}

/* ---------- 3. ระบบหลังบ้าน ---------- */
.admin-body{background:var(--bg-soft);min-height:100vh}
.admin-top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.admin-top-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 0}
.admin-top .brand-name{font-size:19px}
.admin-top .tag{background:var(--wine);color:#fff;font-size:10px;letter-spacing:.18em;padding:4px 9px;text-transform:uppercase;margin-left:12px}
.admin-nav{display:flex;gap:24px;flex-wrap:wrap;border-top:1px solid var(--line-2);padding:12px 0 0;margin-top:12px;width:100%}
.admin-nav a{font-size:12.5px;letter-spacing:.06em;color:var(--ink-2);padding-bottom:10px;border-bottom:2px solid transparent}
.admin-nav a:hover{color:var(--wine)}
.admin-nav a.on{color:var(--wine);border-bottom-color:var(--wine);font-weight:600}
.admin-wrap{padding:34px 0 80px}
.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:34px}
.stat{background:#fff;border:1px solid var(--line);padding:22px 20px}
.stat .k{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.stat .v{font-family:var(--font-serif);font-size:30px;color:var(--wine);margin-top:8px}
.stat .d{font-size:12.5px;color:var(--muted)}
.panel{background:#fff;border:1px solid var(--line);padding:26px;margin-bottom:26px}
.panel > h2{font-size:20px;margin-bottom:18px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.panel-head h2{font-size:20px}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{text-align:left;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  padding:10px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.table td{padding:12px 10px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.table tr:hover td{background:#fdfbfa}
.table .num{text-align:right;white-space:nowrap}
.thumb{width:44px;height:58px;object-fit:contain;background:var(--wine-tint-2);border:1px solid var(--line-2)}
.pill{display:inline-block;padding:4px 10px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:1px solid}
.pill-new{background:#fdf3f3;border-color:#e6c9c9;color:var(--wine-dark)}
.pill-confirmed{background:#fdf8ee;border-color:#e8dcc0;color:#7a6420}
.pill-packed{background:#f2f6fd;border-color:#cfdcef;color:#2c4a7a}
.pill-shipped{background:#eef6f8;border-color:#cfe3e8;color:#245a63}
.pill-done{background:#f2f8f3;border-color:#cfe6d4;color:#2c5a35}
.pill-cancelled{background:#f4f2f1;border-color:#e0dbd9;color:#7a6d6a}
.pill-off{background:#f4f2f1;border-color:#e0dbd9;color:#7a6d6a}
.btn-row{display:flex;gap:8px;flex-wrap:wrap}
.btn-xs{padding:8px 12px;font-size:10.5px;letter-spacing:.08em}
.danger{color:var(--wine);border-color:#e6c9c9}
.danger:hover{background:var(--wine);color:#fff;border-color:var(--wine)}
.form-2{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
.form-3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 22px}
.inline-form{display:inline}
.a-actions{white-space:nowrap;text-align:right}
.muted-row td{color:var(--muted)}
.empty{border:1px dashed var(--line);padding:40px;text-align:center;color:var(--muted)}
.img-preview{display:flex;gap:20px;align-items:flex-start;margin-bottom:8px}
.img-preview img{width:110px;height:150px;object-fit:contain;background:var(--wine-tint-2);border:1px solid var(--line)}
.login-box{max-width:430px;margin:70px auto;background:#fff;border:1px solid var(--line);padding:38px 34px}
.login-box h1{font-size:23px;text-align:center;margin-bottom:26px;text-transform:uppercase;letter-spacing:.08em}
.log-list{list-style:none;padding:0;margin:0;font-size:13.5px}
.log-list li{padding:9px 0;border-bottom:1px solid var(--line-2);display:flex;gap:14px}
.log-list .at{color:var(--muted);white-space:nowrap;font-size:12.5px}
.kv{display:grid;grid-template-columns:150px 1fr;gap:8px 18px;font-size:14.5px}
.kv .k{color:var(--muted);font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding-top:3px}
@media (max-width:900px){
  .admin-grid{grid-template-columns:1fr 1fr}
  .checkout-grid{grid-template-columns:1fr;gap:30px}
  .form-2,.form-3{grid-template-columns:1fr}
  .kv{grid-template-columns:1fr}
}
@media (max-width:620px){
  .admin-grid{grid-template-columns:1fr}
  .table th:nth-child(n+4),.table td:nth-child(n+4){display:none}
}
