/* ============================================================
   RustToko — style.css
   ============================================================ */

* { box-sizing: border-box; }

:root {
    --ink: #0f172a;
    --ink-2: #334155;
    --muted: #64748b;
    --line: #e2e8f0;
    --line-2: #cbd5e1;
    --bg: #eef2f7;
    --panel: #ffffff;
    --brand-1: #0b1220;
    --brand-2: #101a2e;
    --brand-3: #1b2a44;
    --accent-1: #0d9488;
    --accent-2: #14b8a6;
    --danger: #dc2626;
    --link: #2563eb;
    --radius: 14px;
    --radius-sm: 8px;
    --shadow-1: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 3px rgba(15, 23, 42, .06);
    --shadow-2: 0 4px 12px rgba(15, 23, 42, .08), 0 2px 4px rgba(15, 23, 42, .05);
    --shadow-3: 0 14px 30px rgba(15, 23, 42, .12), 0 4px 10px rgba(15, 23, 42, .06);
    --pad-x: 24px;
    --gap-y: 22px;
    --transition: .18s cubic-bezier(.4, 0, .2, 1);
}

html { -webkit-text-size-adjust: 100%; }

body {
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    margin: 0;
    color: var(--ink);
    background:
        radial-gradient(1100px 500px at 50% -180px, #e2e8f0 0%, transparent 60%),
        var(--bg);
    line-height: 1.55;
    font-size: 15px;
    min-height: 100vh;
}

a { color: var(--link); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--accent-1); text-decoration: none; }

img { max-width: 100%; height: auto; display: block; }

/* ============================================================
   WRAP
   ============================================================ */
.wrap {
    max-width: 1180px;
    margin: var(--gap-y) auto;
    padding: 0 18px;
}

.skip {
    position: absolute; left: -9999px;
    background: var(--brand-2); color: #fff;
    padding: 8px 12px; border-radius: var(--radius-sm);
}
.skip:focus { left: 12px; top: 12px; z-index: 99; }

/* ============================================================
   HEADER
   ============================================================ */
.site-header {
    background: linear-gradient(180deg, var(--brand-3) 0%, var(--brand-2) 60%, var(--brand-1) 100%);
    color: #fff;
    padding: 18px var(--pad-x);
    border-radius: var(--radius) var(--radius) 0 0;
    box-shadow: var(--shadow-2);
    position: relative;
    overflow: hidden;
}
.site-header::before {
    content: "";
    position: absolute; inset: 0;
    background:
        radial-gradient(600px 200px at 20% 0%, rgba(20, 184, 166, .18), transparent 70%),
        radial-gradient(600px 200px at 100% 100%, rgba(59, 130, 246, .12), transparent 70%);
    pointer-events: none;
}
.header-inner {
    display: flex; gap: 18px; align-items: center; flex-wrap: wrap;
    position: relative; z-index: 1;
}

.brand { display: flex; gap: 12px; align-items: center; color: #fff; }
.brand:hover { color: #fff; }

.brand-mark {
    display: inline-flex; align-items: center; justify-content: center;
    width: 42px; height: 42px; border-radius: 11px;
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff; font-weight: 800; font-size: 20px;
    box-shadow: 0 6px 16px rgba(13, 148, 136, .35), inset 0 1px 0 rgba(255, 255, 255, .25);
    letter-spacing: -.5px;
}
.brand-title { font-weight: 700; font-size: 17px; display: block; letter-spacing: .2px; }
.brand-tag { font-size: 12px; color: #cbd5e1; display: block; margin-top: 2px; }

.cari-header { margin-left: auto; display: flex; gap: 8px; }
.cari-header input {
    padding: 10px 14px;
    border: 1px solid rgba(255, 255, 255, .14);
    background: rgba(255, 255, 255, .07);
    color: #fff;
    border-radius: var(--radius-sm);
    min-width: 240px;
    font-size: 14px;
    transition: all var(--transition);
    backdrop-filter: blur(6px);
}
.cari-header input::placeholder { color: #94a3b8; }
.cari-header input:focus {
    outline: none;
    background: rgba(255, 255, 255, .12);
    border-color: rgba(20, 184, 166, .6);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .2);
}
.cari-header button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 20px;
    border: 0;
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    transition: all var(--transition);
    box-shadow: 0 3px 10px rgba(13, 148, 136, .3), inset 0 1px 0 rgba(255, 255, 255, .2);
    letter-spacing: .2px;
}

/* Desktop: sembunyikan SVG, hanya tampilkan teks "Cari" */
.cari-header button[type="submit"] svg {
    display: none;
}
.cari-header button:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(13, 148, 136, .4), inset 0 1px 0 rgba(255, 255, 255, .25);
}
.cari-header button:active { transform: translateY(0); }

/* ============================================================
   NAV
   ============================================================ */
.site-nav {
    background: var(--brand-1);
    border-top: 1px solid rgba(255, 255, 255, .06);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03), 0 2px 6px rgba(0, 0, 0, .12);
    padding: 0 var(--pad-x);
    margin-bottom: var(--gap-y);
}
.site-nav ul {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-wrap: wrap;
    max-width: none;
}
.site-nav a {
    color: #cbd5e1;
    display: block;
    padding: 12px 18px;
    font-weight: 500;
    font-size: 14px;
    transition: all var(--transition);
    border-bottom: 2px solid transparent;
}
.site-nav a:hover {
    color: #fff;
    background: rgba(255, 255, 255, .05);
    border-bottom-color: var(--accent-2);
}

/* ============================================================
   LAYOUT
   ============================================================ */
.bigcont {
    display: flex;
    gap: var(--gap-y);
    align-items: stretch;
}
.konten {
    flex: 1 1 auto;
    min-width: 0;
    background: var(--panel);
    padding: var(--pad-x);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-1);
}
.sidebar {
    width: 280px;
    flex: 0 0 280px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.sidebar .kotak {
    background: var(--panel);
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-1);
    transition: box-shadow var(--transition), border-color var(--transition);
}
.sidebar .kotak:hover {
    box-shadow: var(--shadow-2);
    border-color: var(--line-2);
}
.sidebar .kotak:last-child { flex: 1 1 auto; }

.kotak h4 {
    margin: 0 0 12px;
    padding-bottom: 10px;
    font-size: 13px;
    letter-spacing: .8px;
    text-transform: uppercase;
    color: var(--ink);
    position: relative;
}
.kotak h4::after {
    content: "";
    position: absolute; left: 0; bottom: 0;
    height: 2px; width: 42px;
    background: linear-gradient(90deg, var(--accent-1), var(--accent-2));
    border-radius: 2px;
}

.list-kat { list-style: none; margin: 0; padding: 0; }
.list-kat li {
    padding: 8px 0;
    border-bottom: 1px dashed var(--line);
    font-size: 14px;
}
.list-kat li:last-child { border-bottom: 0; }
.list-kat a {
    color: var(--ink-2);
    display: flex; justify-content: space-between; gap: 8px;
    transition: all var(--transition);
}
.list-kat a:hover { color: var(--accent-1); padding-left: 4px; }
.list-kat span { color: var(--muted); font-size: 12px; }

.list-produk-side { list-style: none; margin: 0; padding: 0; }
.list-produk-side li {
    padding: 8px 0;
    border-bottom: 1px dashed var(--line);
}
.list-produk-side li:last-child { border-bottom: 0; }
.list-produk-side a {
    display: flex; gap: 10px; align-items: center;
    color: var(--ink-2);
    transition: all var(--transition);
}
.list-produk-side a:hover { color: var(--accent-1); }
.list-produk-side img {
    width: 48px; height: 48px;
    object-fit: cover; border-radius: 6px;
    border: 1px solid var(--line);
    flex: 0 0 48px;
}
.judul-side {
    display: -webkit-box;
    -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 13px; line-height: 1.3;
    margin-bottom: 2px;
}
.harga-side { display: block; font-size: 12px; color: var(--danger); font-weight: 700; }

/* ============================================================
   TIPOGRAFI
   ============================================================ */
.hero {
    font-size: 22px; margin: 0 0 18px; font-weight: 700;
    color: var(--ink); letter-spacing: -.3px;
}
.hero small { font-size: 14px; color: var(--muted); font-weight: 500; }
.section {
    font-size: 17px; margin: 26px 0 14px; font-weight: 700;
    color: var(--ink); position: relative; padding-left: 14px;
}
.section::before {
    content: "";
    position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 4px; height: 18px; border-radius: 2px;
    background: linear-gradient(180deg, var(--accent-1), var(--accent-2));
}
.breadcrumb { font-size: 13px; color: var(--muted); margin-bottom: 12px; }
.breadcrumb a { color: var(--muted); }
.breadcrumb a:hover { color: var(--accent-1); }

/* ============================================================
   CHIPS
   ============================================================ */
.chips { display: flex; gap: 8px; flex-wrap: wrap; margin: 12px 0 4px; }
.chip {
    background: linear-gradient(180deg, #eef2ff, #e0e7ff);
    color: #3730a3;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    border: 1px solid #c7d2fe;
    transition: all var(--transition);
}
.chip:hover {
    color: #fff;
    background: linear-gradient(135deg, #4f46e5, #6366f1);
    border-color: #4f46e5;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(79, 70, 229, .3);
}

/* ============================================================
   KARTU PRODUK
   ============================================================ */
.grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 16px;
}
.kartu {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
    transition: all var(--transition);
    box-shadow: var(--shadow-1);
    display: flex;
    flex-direction: column;
}
.kartu:hover {
    border-color: var(--accent-2);
    box-shadow: var(--shadow-3);
    transform: translateY(-3px);
}
.kartu-link {
    color: inherit;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}
.kartu-link:hover { color: inherit; }
.kartu-media {
    position: relative;
    aspect-ratio: 1 / 1;
    background: linear-gradient(135deg, #f8fafc, #eef2f7);
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
    border-bottom: 1px solid var(--line);
}
.kartu-media img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform .35s ease;
}
.kartu:hover .kartu-media img { transform: scale(1.06); }
.no-img { color: #94a3b8; font-size: 13px; }
.badge-habis {
    position: absolute; top: 10px; left: 10px;
    background: linear-gradient(135deg, #dc2626, #b91c1c);
    color: #fff;
    padding: 3px 10px; border-radius: 4px;
    font-size: 11px; font-weight: 700; letter-spacing: .3px;
    box-shadow: 0 2px 6px rgba(220, 38, 38, .35);
    z-index: 2;
}
.badge-diskon {
    position: absolute; top: 10px; right: 10px;
    background: linear-gradient(135deg, #f59e0b, #ea580c);
    color: #fff;
    padding: 3px 10px; border-radius: 4px;
    font-size: 11px; font-weight: 700; letter-spacing: .3px;
    box-shadow: 0 2px 6px rgba(234, 88, 12, .35);
    z-index: 2;
}
.kartu-body {
    padding: 12px 14px 12px;
    display: flex; flex-direction: column;
    flex: 1 1 auto;
}
.kartu-judul {
    font-size: 14px; margin: 0 0 8px; line-height: 1.35;
    min-height: 2.7em; overflow: hidden;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    color: var(--ink);
    transition: color var(--transition);
}
.kartu:hover .kartu-judul { color: var(--accent-1); }

.kartu-harga-wrap { margin-top: auto; }
.kartu-harga-awal {
    margin: 0;
    font-size: 12px;
    color: var(--muted);
    text-decoration: line-through;
}
.kartu-harga {
    margin: 2px 0 0;
    font-size: 16px; font-weight: 800;
    color: var(--danger); letter-spacing: -.2px;
}
.kartu-meta { margin: 5px 0 0; font-size: 12px; color: var(--muted); }

.kartu-beli {
    display: block;
    margin: 0 14px 14px;
    padding: 9px 14px;
    text-align: center;
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff;
    border-radius: var(--radius-sm);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: .3px;
    transition: all var(--transition);
    box-shadow: 0 3px 10px rgba(13, 148, 136, .3);
}
.kartu-beli:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(13, 148, 136, .4);
}

.lihat-semua-wrap { margin-top: 18px; text-align: center; }
.lihat-semua {
    display: inline-block;
    padding: 10px 22px;
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff;
    font-weight: 600; font-size: 14px;
    box-shadow: 0 4px 12px rgba(13, 148, 136, .3);
    transition: all var(--transition);
}
.lihat-semua:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(13, 148, 136, .4);
}

/* ============================================================
   DETAIL PRODUK
   ============================================================ */
.produk-judul {
    font-size: 22px; margin: 0 0 18px; font-weight: 700;
    color: var(--ink); line-height: 1.35; letter-spacing: -.3px;
}
.produk-layout { display: flex; gap: 26px; align-items: flex-start; flex-wrap: wrap; }

.galeri { flex: 1 1 420px; min-width: 300px; }
.galeri-utama {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: linear-gradient(135deg, #f8fafc, #eef2f7);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-1);
}
.galeri-besar {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0;
    transition: opacity .25s ease;
    pointer-events: none;
    background: #fff;
}
.galeri-besar.aktif {
    opacity: 1;
    pointer-events: auto;
    z-index: 1;
}
.galeri-thumbs {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
    margin-top: 12px;
}
.galeri-thumb {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    padding: 0;
    border: 2px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
    background: #f8fafc;
    cursor: pointer;
    transition: all var(--transition);
    display: block;
}
.galeri-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .25s ease;
}
.galeri-thumb:hover {
    border-color: var(--line-2);
    transform: translateY(-2px);
    box-shadow: var(--shadow-2);
}
.galeri-thumb:hover img { transform: scale(1.05); }
.galeri-thumb.aktif {
    border-color: var(--accent-2);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .25), var(--shadow-2);
}
.galeri-thumb.aktif::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--accent-1), var(--accent-2));
}
.no-img-big {
    background: linear-gradient(135deg, #f8fafc, #eef2f7);
    padding: 48px; text-align: center;
    border-radius: var(--radius);
    color: #94a3b8;
    border: 1px dashed var(--line-2);
}

.info-produk {
    width: 340px; flex: 0 0 340px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 18px;
    box-shadow: var(--shadow-1);
}
.harga-wrap {
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px dashed var(--line);
}
.harga-coret {
    font-size: 15px;
    color: var(--muted);
    text-decoration: line-through;
    margin-right: 8px;
}
.diskon-chip {
    display: inline-block;
    background: linear-gradient(135deg, #f59e0b, #ea580c);
    color: #fff;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 700;
    vertical-align: middle;
    box-shadow: 0 2px 6px rgba(234, 88, 12, .3);
}
.harga-besar {
    font-size: 26px;
    color: var(--danger);
    font-weight: 800;
    letter-spacing: -.5px;
    margin-top: 4px;
}
.meta { list-style: none; margin: 0 0 16px; padding: 0; }
.meta li {
    padding: 6px 0; font-size: 14px;
    display: flex; gap: 8px;
    border-bottom: 1px dashed var(--line);
}
.meta li:last-child { border-bottom: 0; }
.meta .label { color: var(--muted); min-width: 72px; }
.habis { color: var(--danger); font-weight: 700; }

/* ============================================================
   TOMBOL MARKETPLACE
   ============================================================ */
.mp-title {
    margin: 0 0 10px; font-weight: 700; font-size: 13px;
    color: var(--ink);
    text-transform: uppercase; letter-spacing: .5px;
}
.mp-btn {
    display: flex; justify-content: space-between; align-items: center;
    padding: 12px 16px;
    border-radius: var(--radius-sm);
    color: #fff;
    margin-bottom: 8px;
    font-weight: 700; font-size: 14px;
    box-shadow: 0 3px 8px rgba(0, 0, 0, .12);
    transition: all var(--transition);
    position: relative;
    overflow: hidden;
}
.mp-btn::before {
    content: "";
    position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, .18), transparent 60%);
    opacity: 0;
    transition: opacity var(--transition);
}
.mp-btn:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, .18);
}
.mp-btn:hover::before { opacity: 1; }
.mp-tokopedia,
.mp-tokopedia-rg { background: linear-gradient(135deg, #03ac0e, #0f9e1a); }
.mp-shopee { background: linear-gradient(135deg, #ee4d2d, #d63b1c); }
.mp-tiktok,
.mp-tiktok-rg {
    background: linear-gradient(135deg, #111827, #000);
}
.mp-harga {
    font-weight: 700; opacity: .95; font-size: 13px;
    background: rgba(0, 0, 0, .15);
    padding: 2px 8px; border-radius: 4px;
}

/* ============================================================
   NOTICE
   ============================================================ */
.notice {
    padding: 12px 16px;
    border-radius: var(--radius-sm);
    margin: 10px 0;
    font-size: 14px;
    border-left: 4px solid;
}
.notice-habis {
    background: linear-gradient(135deg, #fef2f2, #fee2e2);
    border-color: var(--danger);
    color: #991b1b;
}
.notice-info {
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    border-color: #3b82f6;
    color: #1e40af;
}

/* ============================================================
   VIDEO & DESKRIPSI
   ============================================================ */
.blok { margin-top: 30px; }
.video-wrap {
    position: relative;
    padding-top: 56.25%;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--line);
}
.video-wrap iframe {
    position: absolute; inset: 0;
    width: 100%; height: 100%; border: 0;
}
.deskripsi img { max-width: 100%; height: auto; border-radius: 6px; }
.deskripsi table { border-collapse: collapse; width: 100%; }
.deskripsi td, .deskripsi th { padding: 6px 10px; border: 1px solid var(--line); }
.deskripsi h1, .deskripsi h2, .deskripsi h3 { color: var(--ink); }

/* ============================================================
   FORMULIR KONTAK
   ============================================================ */
.form-kontak label {
    display: block;
    font-weight: 600;
    color: var(--ink-2);
    font-size: 14px;
}
.form-kontak input,
.form-kontak textarea {
    width: 100%;
    max-width: 540px;
    padding: 10px 14px;
    border: 1px solid var(--line-2);
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 14px;
    color: var(--ink);
    background: #fff;
    transition: all var(--transition);
    margin-top: 4px;
}
.form-kontak input:focus,
.form-kontak textarea:focus {
    outline: none;
    border-color: var(--accent-2);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .15);
}
.form-kontak button {
    padding: 11px 28px;
    border: 0;
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff;
    font-weight: 700; font-size: 14px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(13, 148, 136, .3);
    transition: all var(--transition);
    letter-spacing: .3px;
}
.form-kontak button:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(13, 148, 136, .4);
}
.form-kontak button:active { transform: translateY(0); }

.alert {
    background: linear-gradient(135deg, #ecfdf5, #d1fae5);
    border: 1px solid #a7f3d0;
    border-left: 4px solid #10b981;
    color: #065f46;
    padding: 12px 16px;
    border-radius: var(--radius-sm);
    font-size: 14px;
    margin-bottom: 14px;
}

/* ============================================================
   PAGINATION
   ============================================================ */
.pagination {
    display: flex; gap: 10px;
    align-items: center; justify-content: center;
    margin: 26px 0 6px; flex-wrap: wrap;
}
.pagination a,
.pagination .off {
    padding: 8px 16px;
    border: 1px solid var(--line-2);
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-weight: 600;
    background: #fff;
    transition: all var(--transition);
}
.pagination a { color: var(--ink-2); }
.pagination a:hover {
    color: #fff;
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    border-color: var(--accent-1);
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(13, 148, 136, .3);
}
.pagination .off { color: #cbd5e1; cursor: not-allowed; }
.pagination .hal-info { color: var(--muted); font-size: 13px; padding: 0 6px; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer {
    background: linear-gradient(0deg, var(--brand-1) 0%, var(--brand-2) 60%, var(--brand-3) 100%);
    color: #cbd5e1;
    padding: 28px var(--pad-x) 26px;
    text-align: center;
    border-radius: 0 0 var(--radius) var(--radius);
    margin-top: var(--gap-y);
    position: relative;
    overflow: hidden;
    box-shadow: var(--shadow-2);
}
.site-footer::before {
    content: "";
    position: absolute; inset: 0;
    background:
        radial-gradient(600px 200px at 100% 0%, rgba(20, 184, 166, .14), transparent 70%),
        radial-gradient(600px 200px at 0% 100%, rgba(59, 130, 246, .10), transparent 70%);
    pointer-events: none;
}
.site-footer > * { position: relative; z-index: 1; }
.site-footer a {
    color: #cbd5e1;
    margin: 0 10px;
    font-size: 13px;
    transition: color var(--transition);
}
.site-footer a:hover { color: var(--accent-2); }
.footer-brand {
    font-weight: 700;
    margin: 0 0 10px;
    color: #fff;
    font-size: 16px;
    letter-spacing: .3px;
}
.footer-tag {
    font-size: 12px;
    color: #94a3b8;
    margin: 12px 0 0;
}

/* ============================================================
   RESPONSIVE DASAR
   ============================================================ */
@media (max-width: 900px) {
    .bigcont { flex-direction: column; }
    .sidebar { width: 100%; flex: 1 1 auto; }
    .sidebar .kotak:last-child { flex: 0 0 auto; }
    .info-produk { width: 100%; flex: 1 1 auto; }
    .cari-header { margin-left: 0; width: 100%; }
    .cari-header input { flex: 1; min-width: 0; }
    .konten { padding: 18px; }
    .grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
    .site-nav ul { overflow-x: auto; flex-wrap: nowrap; }
    .site-nav a { padding: 10px 14px; white-space: nowrap; }
    .galeri-thumbs { gap: 8px; }
}
@media (max-width: 520px) {
    .brand-tag { display: none; }
    .hero { font-size: 18px; }
    .produk-judul { font-size: 18px; }
    .harga-besar { font-size: 22px; }
    .galeri-thumbs { grid-template-columns: repeat(4, 1fr); }
}

/* ============================================================
   SORT BAR
   ============================================================ */
.sort-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 16px;
    padding: 10px 14px;
    background: linear-gradient(180deg, #f8fafc, #eef2f7);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    font-size: 14px;
}
.sort-bar label {
    color: var(--muted);
    font-weight: 600;
}
.sort-bar select {
    padding: 7px 12px;
    border: 1px solid var(--line-2);
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 14px;
    color: var(--ink);
    background: #fff;
    cursor: pointer;
    transition: all var(--transition);
}
.sort-bar select:focus {
    outline: none;
    border-color: var(--accent-2);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .15);
}
.sort-btn {
    padding: 7px 14px;
    border: 0;
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff;
    font-weight: 700;
    font-size: 13px;
    cursor: pointer;
}

/* ============================================================
   ADMIN LOGIN & ADMIN PAGE
   ============================================================ */
.admin-login {
    max-width: 420px;
    margin: 40px auto;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 28px;
    box-shadow: var(--shadow-1);
}
.admin-login h1 {
    font-size: 22px;
    margin-bottom: 18px;
}
.form-admin label {
    display: block;
    font-weight: 600;
    color: var(--ink-2);
    font-size: 14px;
}
.form-admin input {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--line-2);
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 14px;
    color: var(--ink);
    background: #fff;
    margin-top: 4px;
    transition: all var(--transition);
}
.form-admin input:focus {
    outline: none;
    border-color: var(--accent-2);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .15);
}
.form-admin button {
    padding: 11px 28px;
    border: 0;
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(13, 148, 136, .3);
    transition: all var(--transition);
    letter-spacing: .3px;
}
.form-admin button:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(13, 148, 136, .4);
}

.alert-error {
    background: linear-gradient(135deg, #fef2f2, #fee2e2);
    border: 1px solid #fecaca;
    border-left: 4px solid var(--danger);
    color: #991b1b;
    padding: 12px 16px;
    border-radius: var(--radius-sm);
    font-size: 14px;
    margin-bottom: 14px;
}

/* ---------- Admin page ---------- */
.admin-page {
    background: #f1f5f9;
    min-height: 100vh;
    margin: 0;
}
.admin-header {
    background: linear-gradient(180deg, var(--brand-2) 0%, var(--brand-1) 100%);
    color: #fff;
    padding: 14px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: var(--shadow-2);
    border-bottom: 3px solid var(--accent-1);
}
.admin-header-brand {
    font-weight: 700;
    font-size: 17px;
    letter-spacing: .3px;
}
.admin-header-sub {
    color: #94a3b8;
    font-weight: 400;
    font-size: 13px;
    margin-left: 8px;
}
.admin-logout button {
    padding: 7px 16px;
    border: 1px solid rgba(255, 255, 255, .25);
    background: rgba(255, 255, 255, .08);
    color: #fff;
    border-radius: var(--radius-sm);
    font-weight: 600;
    font-size: 13px;
    cursor: pointer;
    transition: all var(--transition);
}
.admin-logout button:hover {
    background: rgba(220, 38, 38, .85);
    border-color: rgba(220, 38, 38, .85);
}

.admin-main {
    max-width: 1180px;
    margin: 24px auto;
    padding: 0 18px;
}
.admin-panel {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 24px;
    box-shadow: var(--shadow-1);
}
.admin-panel h1 {
    font-size: 20px;
    margin: 0 0 14px;
}
.admin-panel p {
    margin: 8px 0;
    color: var(--ink-2);
    font-size: 14px;
}
.admin-note {
    color: var(--muted) !important;
    font-size: 13px !important;
    margin-top: 20px !important;
    padding-top: 16px;
    border-top: 1px dashed var(--line);
}

/* ============================================================
   RT CHAT WIDGET
   ============================================================ */
.rt-chat {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 9000;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
.rt-chat-tombol {
    position: relative;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 0;
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(13, 148, 136, .45), 0 2px 6px rgba(0, 0, 0, .15);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .18s ease, box-shadow .18s ease;
}
.rt-chat-tombol:hover {
    transform: translateY(-3px) scale(1.03);
    box-shadow: 0 12px 28px rgba(13, 148, 136, .55), 0 3px 8px rgba(0, 0, 0, .18);
}
.rt-chat-tombol:active { transform: scale(.97); }

.rt-chat-badge {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 22px;
    height: 22px;
    padding: 0 8px;
    border-radius: 11px;
    background: linear-gradient(135deg, #dc2626, #b91c1c);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 22px;
    text-align: center;
    box-shadow: 0 2px 8px rgba(220, 38, 38, .55), 0 0 0 2px #fff;
    white-space: nowrap;
    letter-spacing: .2px;
}
.rt-chat-badge.baca {
    background: linear-gradient(135deg, #64748b, #475569);
    box-shadow: 0 2px 6px rgba(71, 85, 105, .4), 0 0 0 2px #fff;
}

.rt-chat-panel {
    position: absolute;
    right: 0;
    bottom: 72px;
    width: 380px;
    max-width: calc(100vw - 32px);
    height: 520px;
    max-height: calc(100vh - 120px);
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(15, 23, 42, .25), 0 4px 12px rgba(15, 23, 42, .12);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: rt-chat-muncul .22s cubic-bezier(.4, 0, .2, 1);
}
@keyframes rt-chat-muncul {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.rt-chat-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    background: linear-gradient(180deg, var(--brand-2), var(--brand-1));
    color: #fff;
    border-bottom: 2px solid var(--accent-1);
}
.rt-chat-header-judul { font-weight: 700; font-size: 15px; letter-spacing: .2px; }

.rt-chat-header-info {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.rt-chat-header-sub {
    font-size: 12px;
    color: #94a3b8;
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 200px;
}
.rt-chat-header-sub.kosong { font-style: italic; }
.rt-chat-nama-btn {
    background: rgba(255, 255, 255, .1);
    border: 0;
    color: #fff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: 13px;
    line-height: 1;
    cursor: pointer;
    margin-right: 6px;
    transition: background .18s ease;
}
.rt-chat-nama-btn:hover { background: rgba(255, 255, 255, .22); }

.rt-chat-tutup {
    background: rgba(255, 255, 255, .1);
    border: 0;
    color: #fff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    transition: background .18s ease;
}
.rt-chat-tutup:hover { background: rgba(255, 255, 255, .22); }
.rt-chat-nama-modal {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    padding: 20px;
    animation: rt-chat-muncul .18s ease;
}
.rt-chat-nama-modal[hidden] { display: none !important; }
.rt-chat-nama-modal-box {
    background: #fff;
    border-radius: 12px;
    padding: 18px;
    width: 100%;
    max-width: 320px;
    box-shadow: 0 20px 50px rgba(15, 23, 42, .35);
}
.rt-chat-nama-modal-box label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 8px;
}
.rt-chat-nama-modal-box input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--line-2);
    border-radius: 8px;
    font-family: inherit;
    font-size: 15px;
    color: var(--ink);
    background: #fff;
    transition: all .18s ease;
    box-sizing: border-box;
}
.rt-chat-nama-modal-box input:focus {
    outline: none;
    border-color: var(--accent-2);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .15);
}
.rt-chat-nama-modal-actions {
    display: flex;
    gap: 8px;
    margin-top: 14px;
    justify-content: flex-end;
}
.rt-chat-nama-modal-actions button {
    padding: 8px 16px;
    border-radius: 8px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    border: 0;
    transition: all .18s ease;
}
.rt-chat-nama-modal-actions .sekunder {
    background: #e2e8f0;
    color: var(--ink-2);
}
.rt-chat-nama-modal-actions .sekunder:hover { background: #cbd5e1; }
.rt-chat-nama-modal-actions .primer {
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff;
    box-shadow: 0 3px 8px rgba(13, 148, 136, .3);
}
.rt-chat-nama-modal-actions .primer:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(13, 148, 136, .4);
}
.rt-chat-nama-hint {
    margin: 12px 0 0;
    font-size: 11px;
    color: var(--muted);
    line-height: 1.4;
}

.rt-chat-isi {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 14px;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    gap: 8px;
    scroll-behavior: smooth;
}
.rt-chat-isi::-webkit-scrollbar { width: 8px; }
.rt-chat-isi::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }

.rt-chat-pesan {
    max-width: 82%;
    padding: 9px 13px;
    border-radius: 14px;
    font-size: 14px;
    line-height: 1.45;
    word-wrap: break-word;
    animation: rt-chat-pesan-muncul .18s ease;
}
@keyframes rt-chat-pesan-muncul {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.rt-chat-pesan.pengunjung {
    align-self: flex-end;
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff;
    border-bottom-right-radius: 4px;
}
.rt-chat-pesan.admin {
    align-self: flex-start;
    background: #fff;
    color: var(--ink);
    border: 1px solid var(--line);
    border-bottom-left-radius: 4px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.rt-chat-pesan-sistem {
    align-self: center;
    background: #e2e8f0;
    color: var(--muted);
    font-size: 12px;
    padding: 5px 12px;
    border-radius: 999px;
    max-width: 90%;
    text-align: center;
}
.rt-chat-pesan-nama {
    font-size: 11px;
    font-weight: 700;
    opacity: .75;
    margin-bottom: 3px;
}
.rt-chat-pesan-waktu {
    display: block;
    font-size: 10px;
    opacity: .65;
    margin-top: 4px;
    text-align: right;
}

.rt-chat-produk {
    align-self: flex-start;
    display: flex;
    gap: 10px;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    text-decoration: none;
    color: inherit;
    max-width: 90%;
    transition: all .18s ease;
}
.rt-chat-produk:hover {
    border-color: var(--accent-2);
    box-shadow: 0 4px 12px rgba(13, 148, 136, .15);
    color: inherit;
    text-decoration: none;
}
.rt-chat-produk img,
.rt-chat-produk .thumb-kosong {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    object-fit: cover;
    background: #f1f5f9;
    flex: 0 0 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    color: var(--muted);
}
.rt-chat-produk-info { min-width: 0; }
.rt-chat-produk-judul {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 3px;
}
.rt-chat-produk-harga {
    font-size: 13px;
    color: var(--danger);
    font-weight: 700;
}

.rt-chat-form {
    border-top: 1px solid var(--line);
    background: #fff;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rt-chat-field-nama input:focus {
    outline: none;
    border-color: var(--accent-2);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .15);
}

.rt-chat-input-row {
    display: flex;
    gap: 8px;
    align-items: flex-end;
}
.rt-chat-input-row textarea {
    flex: 1 1 auto;
    resize: none;
    min-height: 40px;
    max-height: 120px;
    padding: 9px 12px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    color: var(--ink);
    background: #fff;
    line-height: 1.4;
    transition: all .18s ease;
}
.rt-chat-input-row textarea:focus {
    outline: none;
    border-color: var(--accent-2);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .15);
}
.rt-chat-kirim {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    border: 0;
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 3px 8px rgba(13, 148, 136, .3);
    transition: all .18s ease;
}
.rt-chat-kirim:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(13, 148, 136, .4);
}
.rt-chat-kirim:disabled { opacity: .5; cursor: not-allowed; }

.rt-chat-info {
    font-size: 12px;
    color: var(--muted);
    text-align: center;
    padding: 2px 0 4px;
}
.rt-chat-info.error { color: var(--danger); }

@media (max-width: 520px) {
    .rt-chat { right: 16px; bottom: 16px; }
    .rt-chat-tombol { width: 52px; height: 52px; }

    /* Panel chat tampil sebagai modal melayang di bawah header.
       Header tetap terlihat, halaman web di belakang tetap terlihat
       di sisi kiri/kanan dan bawah. */
    .rt-chat-panel {
        position: fixed;
        top: calc(var(--rt-chat-top, 0px) + 66px);
        left: 10px;
        right: 10px;
        bottom: auto;
        width: auto;
        max-width: none;
        height: calc(var(--rt-chat-h, 100dvh) - 82px - env(safe-area-inset-bottom, 0px));
        max-height: calc(var(--rt-chat-h, 100dvh) - 82px - env(safe-area-inset-bottom, 0px));
        border-radius: 16px;
        padding: 0;
        box-shadow:
            0 20px 60px rgba(15, 23, 42, .35),
            0 4px 20px rgba(15, 23, 42, .2),
            0 0 0 1px rgba(15, 23, 42, .08);
        overflow: hidden;
    }

    .rt-chat-input-row textarea,
    .rt-chat-nama-modal-box input {
        font-size: 16px;
    }
    .rt-chat-field-nama input {
        font-size: 16px;
    }
    .rt-chat-header {
        padding-top: 14px;
    }
    .rt-chat-form {
        padding-bottom: max(10px, env(safe-area-inset-bottom));
    }
    .rt-chat:has(.rt-chat-panel:not([hidden])) .rt-chat-tombol {
        display: none;
    }
}

/* ============================================================
   RT_CHAT_HIDDEN_FIX
   ============================================================ */
.rt-chat-panel[hidden] { display: none !important; }
.rt-chat-badge[hidden] { display: none !important; }

/* ============================================================
   ADMIN CHAT PANEL
   ============================================================ */
.admin-header-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}
.admin-header-user {
    color: #cbd5e1;
    font-size: 13px;
}

.admin-chat {
    display: grid;
    grid-template-columns: 320px 1fr;
    height: calc(100vh - 62px);
    overflow: hidden;
}

/* ---------- Daftar percakapan (kiri) ---------- */
.admin-daftar {
    background: #fff;
    border-right: 1px solid var(--line);
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.admin-daftar-head {
    padding: 12px;
    border-bottom: 1px solid var(--line);
    background: #f8fafc;
}
.admin-daftar-head input {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--line-2);
    border-radius: 8px;
    font-family: inherit;
    font-size: 14px;
    color: var(--ink);
    transition: all .18s ease;
}
.admin-daftar-head input:focus {
    outline: none;
    border-color: var(--accent-2);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .15);
}
.admin-daftar-list {
    list-style: none;
    margin: 0;
    padding: 6px;
    overflow-y: auto;
    flex: 1 1 auto;
}
.admin-daftar-list::-webkit-scrollbar { width: 8px; }
.admin-daftar-list::-webkit-scrollbar-thumb {
    background: #cbd5e1; border-radius: 4px;
}

.admin-item {
    padding: 10px 12px;
    border-radius: 10px;
    cursor: pointer;
    transition: all .15s ease;
    margin-bottom: 2px;
    border: 1px solid transparent;
}
.admin-item:hover {
    background: #f1f5f9;
}
.admin-item.aktif {
    background: linear-gradient(135deg, #ecfeff, #e0f2fe);
    border-color: var(--accent-2);
}
.admin-item-nama {
    font-weight: 700;
    font-size: 14px;
    color: var(--ink);
    margin-bottom: 3px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-item-preview {
    font-size: 12px;
    color: var(--muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-bottom: 4px;
}
.admin-item-bawah {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.admin-item-waktu {
    font-size: 11px;
    color: #94a3b8;
}
.admin-item-badge {
    background: linear-gradient(135deg, #dc2626, #b91c1c);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 1px 8px;
    border-radius: 999px;
    min-width: 20px;
    text-align: center;
}
.admin-kosong {
    padding: 30px 14px;
    text-align: center;
    color: var(--muted);
    font-size: 13px;
}

/* ---------- Ruang percakapan (kanan) ---------- */
.admin-ruang {
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: #f8fafc;
    overflow: hidden;
}
.admin-kosong-besar {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    font-size: 15px;
    text-align: center;
    padding: 40px;
}
.admin-ruang-inner {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.admin-ruang-head {
    padding: 12px 20px;
    background: #fff;
    border-bottom: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.admin-ruang-nama {
    font-weight: 700;
    font-size: 15px;
    color: var(--ink);
}
.admin-ruang-meta {
    font-size: 12px;
    color: var(--muted);
    margin-top: 2px;
    font-family: ui-monospace, "SF Mono", Menlo, monospace;
}
.admin-hapus-btn {
    padding: 7px 14px;
    background: linear-gradient(135deg, #dc2626, #b91c1c);
    color: #fff;
    border: 0;
    border-radius: 8px;
    font-weight: 600;
    font-size: 12px;
    cursor: pointer;
    transition: all .18s ease;
}
.admin-hapus-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(220, 38, 38, .35);
}

.admin-pesan {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.admin-pesan::-webkit-scrollbar { width: 8px; }
.admin-pesan::-webkit-scrollbar-thumb {
    background: #cbd5e1; border-radius: 4px;
}

.admin-pesan-bubble {
    max-width: 62%;
    padding: 9px 13px;
    border-radius: 14px;
    font-size: 14px;
    line-height: 1.45;
    word-wrap: break-word;
    animation: admin-bubble .18s ease;
}
@keyframes admin-bubble {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
}
.admin-pesan-bubble.pengunjung {
    align-self: flex-start;
    background: #fff;
    color: var(--ink);
    border: 1px solid var(--line);
    border-bottom-left-radius: 4px;
}
.admin-pesan-bubble.admin {
    align-self: flex-end;
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff;
    border-bottom-right-radius: 4px;
}
.admin-pesan-nama {
    font-size: 11px;
    font-weight: 700;
    opacity: .8;
    margin-bottom: 3px;
}
.admin-pesan-waktu {
    display: block;
    font-size: 10px;
    opacity: .65;
    margin-top: 4px;
    text-align: right;
}
.admin-pesan-kosong {
    text-align: center;
    color: var(--muted);
    font-size: 13px;
    padding: 24px;
}

.admin-form {
    border-top: 1px solid var(--line);
    background: #fff;
    padding: 12px 16px;
    display: flex;
    gap: 10px;
    align-items: flex-end;
}
.admin-form textarea {
    flex: 1 1 auto;
    min-height: 42px;
    max-height: 140px;
    resize: none;
    padding: 10px 12px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    color: var(--ink);
    line-height: 1.4;
    transition: all .18s ease;
}
.admin-form textarea:focus {
    outline: none;
    border-color: var(--accent-2);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .15);
}
.admin-form button {
    padding: 10px 22px;
    background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
    color: #fff;
    border: 0;
    border-radius: 10px;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    box-shadow: 0 3px 10px rgba(13, 148, 136, .3);
    transition: all .18s ease;
}
.admin-form button:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(13, 148, 136, .4);
}
.admin-form button:disabled { opacity: .5; cursor: not-allowed; }

.admin-info {
    padding: 6px 20px 12px;
    font-size: 12px;
    color: var(--muted);
    text-align: center;
}
.admin-info.error { color: var(--danger); }

@media (max-width: 760px) {
    .admin-chat {
        grid-template-columns: 1fr;
        position: relative;
    }
    .admin-daftar {
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        width: 300px;
        z-index: 5;
        transform: translateX(-100%);
        transition: transform .22s ease;
    }
    .admin-daftar.terbuka {
        transform: translateX(0);
        box-shadow: 4px 0 20px rgba(0, 0, 0, .15);
    }
}

/* ============================================================
   RT CHAT: indikator "sedang membaca/mengetik"
   ============================================================ */
.rt-chat-pesan.rt-chat-baca {
    font-style: italic;
    opacity: .85;
}
.rt-chat-pesan.rt-chat-baca .rt-chat-pesan-nama {
    font-style: normal;
}
.rt-chat-pesan.rt-chat-indikator {
    background: #fff;
    color: var(--muted);
    border: 1px solid var(--line);
    border-bottom-left-radius: 4px;
    font-style: italic;
    opacity: .95;
}
.rt-chat-pesan.rt-chat-indikator .rt-chat-pesan-nama {
    font-style: normal;
    opacity: .85;
    color: var(--ink);
}
.rt-chat-ind-body { display: inline; }
.rt-chat-dot {
    display: inline-block;
    animation: rt-chat-dot-blink 1.2s infinite;
}
.rt-chat-dot:nth-of-type(1) { animation-delay: 0s; }
.rt-chat-dot:nth-of-type(2) { animation-delay: .2s; }
.rt-chat-dot:nth-of-type(3) { animation-delay: .4s; }
@keyframes rt-chat-dot-blink {
    0%, 60%, 100% { opacity: .25; }
    30%           { opacity: 1; }
}

/* ============================================================
   DROPDOWN KATEGORI (desktop hover + mobile accordion)
   ============================================================ */
.nav-dropdown { position: relative; }
.nav-dropdown > .nav-dropdown-toggle { cursor: pointer; user-select: none; }
.nav-dropdown .caret { font-size: 10px; margin-left: 4px; opacity: .7; }
.nav-dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 240px;
    max-width: 340px;
    max-height: 420px;
    overflow-y: auto;
    list-style: none;
    margin: 6px 0 0;
    padding: 6px;
    background: #fff;
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-3);
    z-index: 90;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu,
.nav-dropdown.terbuka .nav-dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.nav-dropdown-menu li { padding: 0; border: 0; }
.nav-dropdown-menu a {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 12px;
    color: var(--ink-2) !important;
    font-size: 13px;
    border-radius: 6px;
    border-bottom: 0 !important;
    white-space: normal;
    text-align: left;
}
.nav-dropdown-menu a:hover {
    background: #f1f5f9;
    color: var(--accent-1) !important;
    border-bottom-color: transparent !important;
}
.nav-dropdown-menu .nama { flex: 1 1 auto; min-width: 0; }
.nav-dropdown-menu .hit { color: var(--muted); font-size: 12px; flex: 0 0 auto; }
.nav-dropdown-menu .kosong {
    padding: 8px 12px;
    color: var(--muted);
    font-size: 13px;
}

.list-produk-side .loading,
.list-produk-side .kosong {
    color: var(--muted);
    font-size: 12px;
    padding: 8px 0;
    border-bottom: 0 !important;
    font-style: italic;
}

/* ============================================================
   IKON SVG DI TOMBOL MARKETPLACE
   ============================================================ */
.mp-btn .mp-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.mp-btn .mp-logo {
    flex: 0 0 20px;
    display: block;
    transition: transform .22s cubic-bezier(.4, 0, .2, 1);
}
.mp-btn:hover .mp-logo {
    transform: scale(1.12) rotate(-5deg);
}
@media (max-width: 520px) {
    .mp-btn .mp-logo { flex-basis: 18px; }
    .mp-btn .mp-brand { gap: 8px; }
}

/* ============================================================
   HEADER MOBILE: 1 BARIS, STICKY, SEARCH ICON-ONLY
   LOGO SVG SELALU TAMPIL
   ============================================================ */

/* Tombol search bulat — hanya tampil di mobile */
.cari-toggle {
    display: none;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .08);
    color: #fff;
    border-radius: 50%;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    flex: 0 0 40px;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.cari-toggle:hover  { background: rgba(255, 255, 255, .18); }
.cari-toggle:active { transform: scale(.94); }

/* Tombol close di dalam form search (mobile only) */
.cari-tutup {
    display: none;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    background: rgba(255, 255, 255, .1);
    color: #fff;
    border-radius: 50%;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    transition: background .18s ease;
}
.cari-tutup:hover { background: rgba(255, 255, 255, .22); }

/* Override green background dari .cari-header button */
.cari-header button.cari-tutup {
    background: rgba(255, 255, 255, .1);
    border-radius: 50%;
    box-shadow: none;
    padding: 0;
    width: 36px;
    min-width: 36px;
    height: 36px;
    flex: 0 0 36px;
}
.cari-header button.cari-tutup:hover {
    background: rgba(255, 255, 255, .22);
    box-shadow: none;
    transform: none;
}

/* Tombol hamburger */
.nav-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .08);
    border-radius: 10px;
    cursor: pointer;
    flex: 0 0 40px;
    transition: background .18s ease, border-color .18s ease;
}
.nav-toggle:hover { background: rgba(255, 255, 255, .16); }
.nav-toggle-bar {
    display: block;
    width: 18px;
    height: 2px;
    background: #fff;
    border-radius: 2px;
    transition: transform .22s ease, opacity .18s ease;
}
.nav-toggle.aktif .nav-toggle-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.aktif .nav-toggle-bar:nth-child(2) { opacity: 0; }
.nav-toggle.aktif .nav-toggle-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 900px) {

    .wrap {
        margin: 0;
        padding: 0;
        max-width: 100%;
    }

    /* ── HEADER STICKY ── */
    .site-header {
        position: sticky;
        top: 0;
        z-index: 100;
        border-radius: 0;
        padding: 10px 14px;
        box-shadow: 0 2px 12px rgba(0, 0, 0, .22);
    }

    /* ── HEADER 1 BARIS ── */
    .header-inner {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 8px;
        width: 100%;
    }

    .brand {
        flex: 1 1 auto;
        min-width: 0;
        gap: 8px;
    }
    .brand-mark {
        width: 34px;
        height: 34px;
        font-size: 15px;
        flex: 0 0 34px;
        border-radius: 9px;
    }
    .brand-text { min-width: 0; overflow: hidden; }
    .brand-title {
        font-size: 13px;
        line-height: 1.15;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        display: block;
    }
    .brand-tag { display: none; }

    /* Tampilkan tombol search bulat & hamburger */
    .cari-toggle { display: flex; }
    .nav-toggle  { display: flex; }

    /* Form search: default HILANG di mobile */
    .cari-header {
        display: none;
        margin-left: 0;
        flex: 1 1 auto;
        min-width: 0;
        gap: 6px;
        align-items: center;
    }
    .cari-header input {
        min-width: 0;
        flex: 1 1 auto;
        padding: 9px 16px;
        font-size: 14px;
        border-radius: 999px;
    }
    .cari-header button[type="submit"] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        width: 40px;
        min-width: 40px;
        height: 40px;
        flex: 0 0 40px;
        border-radius: 10px;
        gap: 0;
        font-size: 0;
    }
    .cari-header button[type="submit"] svg {
        display: block;
        width: 20px;
        height: 20px;
    }
    .cari-submit-text { display: none !important; }
    .cari-tutup { display: flex; }

    /* ── MODE CARI AKTIF ──
       Logo SVG (.brand-mark) TETAP TAMPIL.
       Yang disembunyikan: nama+tagline (.brand-text),
       tombol search bulat (.cari-toggle), dan hamburger (.nav-toggle). */
    /* Saat cari aktif: form turun ke baris bawah header (brand tetap terlihat) */
    .header-inner.cari-aktif {
        flex-wrap: wrap;
    }
    .header-inner.cari-aktif .cari-header {
        display: flex;
        order: 99;
        flex-basis: 100%;
        margin: 0 -14px -10px;
        padding: 10px 14px;
        background: rgba(0, 0, 0, .25);
        border-top: 1px solid rgba(255, 255, 255, .08);
        gap: 8px;
        align-items: center;
    }
    .header-inner.cari-aktif .cari-header input {
        flex: 1 1 auto;
        min-width: 0;
        font-size: 16px;
    }
    .header-inner.cari-aktif .cari-tutup {
        display: flex;
    }

    /* ── NAV ── */
    .site-nav {
        padding: 0 14px;
        margin-bottom: 0;
        max-height: 0;
        overflow: hidden;
        transition: max-height .28s ease;
    }
    .site-nav.terbuka {
        max-height: 70vh;
        overflow-y: auto;
        padding: 6px 14px 10px;
        margin-bottom: 14px;
        -webkit-overflow-scrolling: touch;
    }
    .site-nav ul {
        flex-direction: column;
        flex-wrap: wrap;
        overflow-x: visible;
        width: 100%;
    }
    .site-nav > ul > li {
        width: 100%;
        border-bottom: 1px solid rgba(255, 255, 255, .06);
    }
    .site-nav > ul > li:last-child { border-bottom: 0; }
    .site-nav a {
        padding: 12px 4px;
        white-space: normal;
        border-bottom: 0;
        display: block;
    }
    .site-nav a:hover { border-bottom-color: transparent; }

    /* Dropdown kategori → accordion mobile */
    .nav-dropdown { position: static; }
    .nav-dropdown:hover .nav-dropdown-menu {
        opacity: 1;
        visibility: visible;
        transform: none;
    }
    .nav-dropdown-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border: 0;
        border-radius: 0;
        padding: 0 0 0 14px;
        min-width: 0;
        max-width: none;
        max-height: 0;
        overflow: hidden;
        margin: 0;
        transition: max-height .25s ease;
        background: rgba(255, 255, 255, .03);
    }
    .nav-dropdown.terbuka .nav-dropdown-menu {
        max-height: 60vh;
        overflow-y: auto;
        padding: 4px 0 6px 14px;
    }
    .nav-dropdown-menu a {
        color: #cbd5e1 !important;
        padding: 9px 10px;
        font-size: 13px;
        border-bottom: 0 !important;
        border-radius: 6px;
    }
    .nav-dropdown-menu a:hover {
        background: rgba(255, 255, 255, .06);
        color: #fff !important;
    }
    .nav-dropdown-menu .hit { color: #94a3b8; }
    .nav-dropdown .caret { transition: transform .2s ease; }
    .nav-dropdown.terbuka .caret { transform: rotate(180deg); }

    /* Konten utama */
    .bigcont {
        padding: 0 12px;
        margin-top: 14px;
    }
    .konten { padding: 16px; }
    .site-footer {
        border-radius: 0;
        margin-top: 14px;
    }
}

/* Desktop: tombol mobile tidak muncul */
@media (min-width: 901px) {
    .cari-toggle { display: none !important; }
    .cari-tutup  { display: none !important; }
    .nav-toggle  { display: none !important; }
}
