/* ░░░░░ JLM admin panel (back-office) ░░░░░ */
.pnl{background:var(--cloud);display:flex;min-height:100dvh}
.btn--sm{padding:.6em 1.1em;font-size:.88rem}

/* sidebar */
.side{width:248px;flex-shrink:0;background:var(--ink);color:#C7C7D0;display:flex;flex-direction:column;
  position:sticky;top:0;height:100dvh;z-index:50}
.side__brand{display:flex;align-items:center;gap:.6rem;padding:1.3rem 1.4rem;border-bottom:1px solid rgba(255,255,255,.08)}
.side__brand img{height:34px}
.side__brand span{font-family:var(--hsans);font-weight:600;color:#fff;font-size:.95rem}
.side__nav{display:flex;flex-direction:column;padding:1rem .8rem;gap:.2rem;flex:1}
.side__nav a{display:flex;align-items:center;gap:.8rem;padding:.75rem .9rem;border-radius:11px;font-weight:500;
  font-size:.95rem;color:#B9B9C4;cursor:pointer;transition:.18s}
.side__nav a .ic{font-size:1.05rem;width:20px;text-align:center;opacity:.85}
.side__nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.side__nav a.on{background:var(--yellow);color:var(--ink);font-weight:600}
.side__foot{padding:1rem 1.2rem;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:.5rem}
.side__store{font-size:.88rem;color:var(--yellow);font-weight:600}
.side__by{font-size:.76rem;color:var(--muted-2)}
.side__by b{color:#C7C7D0}
.side__scrim{display:none}

/* main */
.pnl__main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.85);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);padding:.9rem 1.5rem;display:flex;align-items:center;gap:1rem}
.topbar__burger{display:none;flex-direction:column;gap:5px;width:38px;height:38px;align-items:center;justify-content:center;border-radius:10px}
.topbar__burger span{width:20px;height:2px;background:var(--ink);border-radius:2px}
.topbar__title{font-size:1.3rem;font-weight:700;margin-right:auto}
.topbar__act{display:flex;align-items:center;gap:.9rem}
.topbar__user{width:36px;height:36px;border-radius:50%;background:var(--ink);color:var(--yellow);font-family:var(--hsans);
  font-weight:700;display:grid;place-items:center;font-size:.95rem}
.content{padding:1.6rem 1.5rem;max-width:1200px;width:100%}

/* stat cards */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.4rem}
.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.3rem 1.4rem;position:relative;overflow:hidden}
.stat__ic{position:absolute;right:1rem;top:1rem;font-size:1.5rem;opacity:.18}
.stat__v{font-family:var(--hsans);font-size:1.9rem;font-weight:700;line-height:1}
.stat__l{color:var(--muted);font-size:.85rem;margin-top:.35rem}
.stat__d{font-size:.75rem;font-weight:600;margin-top:.5rem;color:#27c08a}
.stat--accent{background:linear-gradient(135deg,var(--yellow),var(--yellow-deep));border:none}
.stat--accent .stat__l{color:rgba(14,14,16,.7)}.stat--accent .stat__d{color:var(--ink)}

/* dash row */
.dash__row{display:grid;grid-template-columns:1.3fr 1fr;gap:1rem}
.card2{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.4rem}
.card2__t{font-family:var(--hsans);font-size:.95rem;margin-bottom:1.1rem}
.bars{display:flex;flex-direction:column;gap:.8rem}
.bar{display:grid;grid-template-columns:130px 1fr 38px;align-items:center;gap:.7rem;font-size:.85rem}
.bar__track{height:10px;background:var(--cloud);border-radius:6px;overflow:hidden}
.bar__fill{height:100%;background:linear-gradient(90deg,var(--yellow),var(--yellow-deep));border-radius:6px;transition:width .8s var(--ease)}
.bar__n{font-weight:700;font-family:var(--hsans);text-align:right}
.activity{list-style:none;display:flex;flex-direction:column;gap:.9rem}
.activity li{display:flex;gap:.7rem;align-items:flex-start;font-size:.88rem}
.activity .dot{width:8px;height:8px;border-radius:50%;background:var(--yellow-deep);margin-top:.45rem;flex-shrink:0}
.activity small{color:var(--muted-2);display:block}

/* toolbar */
.tbar{display:flex;gap:.7rem;margin-bottom:1.1rem;flex-wrap:wrap;align-items:center}
.tbar__search{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid var(--line);border-radius:11px;padding:.55rem .9rem;color:var(--muted);flex:1;min-width:200px}
.tbar__search input{border:none;outline:none;flex:1;font-family:inherit;font-size:.92rem;color:var(--ink)}
.tbar select{background:#fff;border:1px solid var(--line);border-radius:11px;padding:.6rem .9rem;font-family:inherit;font-size:.92rem;color:var(--ink)}

/* table */
.tablewrap{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:auto}
.tbl{width:100%;border-collapse:collapse;font-size:.9rem;min-width:640px}
.tbl th{text-align:left;padding:.85rem 1rem;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted-2);font-weight:700;border-bottom:1px solid var(--line);background:var(--cloud);position:sticky;top:0}
.tbl td{padding:.7rem 1rem;border-bottom:1px solid var(--cloud);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:#fcfcfd}
.tbl__img{width:40px;height:40px;object-fit:contain;mix-blend-mode:multiply;background:var(--cloud);border-radius:8px;padding:3px}
.tbl__code{font-family:var(--hsans);font-size:.78rem;color:var(--muted-2);font-weight:600}
.tbl__name{font-weight:600}
.tbl__price{font-family:var(--hsans);font-weight:700}
.tbl__act{color:var(--muted-2);cursor:pointer;padding:.3rem .5rem;border-radius:8px;font-size:.95rem}
.tbl__act:hover{background:var(--cloud);color:var(--ink)}
.tbl__foot{color:var(--muted-2);font-size:.85rem;margin-top:.8rem}
.pill{display:inline-flex;align-items:center;gap:.35em;font-size:.74rem;font-weight:700;padding:.28em .7em;border-radius:100px}
.pill--on{background:rgba(39,192,138,.14);color:#1c9b6e}
.pill--ai{background:rgba(255,210,0,.2);color:#8a6d00}
.pill--new{background:rgba(255,210,0,.2);color:#8a6d00}
.pill--proc{background:rgba(91,140,255,.16);color:#3b63d6}
.pill--done{background:rgba(39,192,138,.14);color:#1c9b6e}
.pill--b2b{background:var(--ink);color:#fff}
.tog{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;font-size:.92rem;cursor:pointer}
.skeleton-note{color:var(--muted-2);font-size:.85rem;margin-top:1rem;font-style:italic}

/* settings */
.setgrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fld{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;color:var(--muted);margin-bottom:.7rem}
.fld input{border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;font-family:inherit;font-size:.92rem;color:var(--ink);font-weight:400}

/* top sellers */
.sellers{display:flex;flex-direction:column;gap:.75rem}
.seller{display:grid;grid-template-columns:22px 40px 1fr 64px;align-items:center;gap:.8rem}
.seller__rk{font-family:var(--hsans);font-weight:700;color:var(--muted-2);text-align:center}
.seller__b{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.seller__b b{font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seller__n{font-family:var(--hsans);font-weight:700;font-size:.84rem;text-align:right}

/* order filter chips + actions */
.ofilters{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}
.ochip{font-weight:600;font-size:.88rem;padding:.5em 1em;border-radius:100px;background:#fff;border:1.5px solid var(--line);transition:.2s}
.ochip i{font-style:normal;opacity:.55;font-weight:700}
.ochip:hover{border-color:var(--muted-2)}
.ochip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.oact{display:flex;gap:.4rem}
.obtn{font-size:.78rem;font-weight:600;padding:.4em .7em;border-radius:8px;background:var(--cloud);white-space:nowrap;transition:.2s}
.obtn:hover{background:var(--yellow)}

/* voucher */
.voucher{background:#fff;border-radius:18px;width:380px;max-width:94vw;padding:1.6rem;position:relative;box-shadow:var(--shadow-lg);animation:pop .3s var(--ease)}
.voucher__hd{display:flex;align-items:center;gap:.8rem;border-bottom:2px dashed var(--line);padding-bottom:1rem;margin-bottom:.6rem}
.voucher__logo{height:36px}
.voucher__hd b{display:block;font-family:var(--hsans);font-size:.92rem}
.voucher__hd span{font-size:.76rem;color:var(--muted)}
.voucher__row{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;font-size:.86rem;border-bottom:1px solid var(--cloud)}
.voucher__row span{color:var(--muted)}.voucher__row b{text-align:right}
.voucher__bars{height:44px;margin-top:1.1rem;background:repeating-linear-gradient(90deg,#0e0e10 0 2px,#fff 2px 4px,#0e0e10 4px 7px,#fff 7px 9px,#0e0e10 9px 11px,#fff 11px 14px)}
.voucher__code{font-family:var(--hsans);letter-spacing:.28em;text-align:center;font-size:1.1rem;margin:.6rem 0 1rem;font-weight:700}
#vPrint{margin-top:.4rem}
@media print{
  body *{visibility:hidden!important}
  #voucher,#voucher *{visibility:visible!important}
  #voucher{position:absolute!important;inset:0;background:#fff;display:block;padding:1rem}
  .voucher{box-shadow:none;width:100%;max-width:none}
  .pmodal__x,#vPrint{display:none!important}
}

/* roadmap */
.road__intro{color:var(--muted);font-size:1rem;margin-bottom:1.4rem;max-width:60ch}
.road{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;align-items:start}
.road__col{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.4rem}
.road__h{font-family:var(--hsans);font-size:1rem;display:flex;align-items:center;gap:.5rem;margin-bottom:1.1rem}
.road__h small{font-weight:400;color:var(--muted-2);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}
.rdot{width:11px;height:11px;border-radius:50%;flex-shrink:0}
.rdot--done{background:#27c08a}.rdot--next{background:var(--yellow-deep)}.rdot--grow{background:#5b8cff}
.road__list{list-style:none;display:flex;flex-direction:column;gap:.75rem}
.road__list li{position:relative;padding-left:1.6rem;font-size:.9rem;line-height:1.4;color:var(--ink)}
.road__list li::before{position:absolute;left:0;top:-1px;font-size:.95rem}
.road__list li.rdone{color:var(--muted)}
.road__list li.rdone::before{content:"✓";color:#27c08a;font-weight:700}
.road__list li.rnext::before{content:"○";color:var(--yellow-deep)}
.road__list li.rgrow::before{content:"◆";color:#5b8cff;font-size:.8rem}
.road__list b{color:var(--ink)}

@media(max-width:900px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .dash__row,.setgrid,.road{grid-template-columns:1fr}
}
@media(max-width:760px){
  .side{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .3s var(--ease)}
  .side.open{transform:none}
  .side__scrim{display:none;position:fixed;inset:0;background:rgba(14,14,16,.5);z-index:49}
  .side__scrim.on{display:block}
  .topbar__burger{display:flex}
  .content{padding:1.1rem}
}
@media(max-width:440px){ .stats{grid-template-columns:1fr 1fr;gap:.7rem} .topbar__act .btn{display:none} }
