.adm{display:grid;gap:18px;padding-block:4px 64px}
.adm section{display:grid;gap:14px}
.adm h2{font-size:24px}
.masuk{max-width:420px}
.siapa{font-size:14px;color:var(--muted);display:flex;align-items:center;gap:6px}
.tabs{display:flex;gap:6px;background:var(--cream);padding:5px;border-radius:999px;max-width:100%;overflow-x:auto;width:max-content}
.tabs button{border:0;background:transparent;font:600 15px/1 var(--f-display);color:var(--muted);min-height:44px;padding:0 16px;border-radius:999px;cursor:pointer;white-space:nowrap}
.tabs button[aria-selected="true"]{background:#fff;color:var(--red-ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.filter{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.filter h2{margin-right:auto}
.filter select,.filter input{width:auto;min-height:44px;font-size:15px}
.order{display:grid;gap:10px}
.o{display:grid;gap:10px;background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:16px}
.o.tunggu{border-color:#F4D98A}
.o-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.o-head h3{font-size:18px}
.o-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:15px;color:var(--muted)}
.o-meta b{color:var(--ink)}
.o-act{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.o-act select{width:auto;min-height:44px;font-size:15px}
.konfirm{background:var(--ok-bg);border-radius:14px;padding:12px 14px;display:grid;gap:10px;font-size:15px}
.gratis{background:var(--yellow);color:var(--ink)}
.kpi{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:760px){.kpi{grid-template-columns:repeat(5,1fr)}}
.kpi div{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:4px}
.kpi b{font:600 30px/1 var(--f-display)}
.kpi span{font-size:13px;font-weight:700;color:var(--muted)}
.kpi .hot{background:var(--wait-bg);border-color:#F4D98A}
.row2{display:grid;gap:16px}
@media(min-width:560px){.row2{grid-template-columns:1fr 1fr}}
form.card{display:grid;gap:14px}
td .btn{white-space:nowrap}
.yakin{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-weight:700}
.o-head .tag{margin-left:8px}
.rekap{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.rekap div{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:12px;display:grid;gap:2px}.rekap b{font:600 28px/1 var(--f-display)}.rekap span{font-size:13px;font-weight:700;color:var(--muted)}

/* ---- analitik (token brand; grafik: merah = periode ini, biru putus-putus = pembanding, divalidasi dataviz) ---- */
.an-filter{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
.an-filter label{font-size:14px}
.an-filter select,.an-filter input{font-size:15px}
.an-custom{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(min-width:760px){.an-filter{grid-template-columns:repeat(3,1fr)}}
.an-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media(min-width:760px){.an-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.an-kpi{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:4px;align-content:start;min-width:0}
.an-kpi b{font:600 clamp(20px,5.5vw,28px)/1.1 var(--f-display);overflow-wrap:anywhere}
.an-label{font-size:13px;font-weight:700;color:var(--muted)}
.an-delta{font-size:13px;font-weight:700}
.an-delta.naik{color:var(--ok)} .an-delta.turun{color:var(--red-ink)} .an-delta.datar{color:var(--muted)}
.an-ket{font-size:12px;color:var(--muted);line-height:1.35}
.an-chart{display:grid;gap:8px;min-width:0}
.an-legend{display:flex;gap:16px;font-size:13px;font-weight:700;color:var(--muted)}
.an-legend span{display:inline-flex;align-items:center;gap:6px}
.an-key-a,.an-key-b{display:inline-block;width:18px;height:0;border-top:2px solid #DC3330}
.an-key-b{border-top:2px dashed #2A8CC0}
.an-tren{position:relative;min-width:0;outline-offset:4px;touch-action:pan-y}
.an-tren svg{display:block;max-width:100%}
.an-grid{stroke:var(--line);stroke-width:1}
.an-sumbu{fill:var(--muted);font:600 11px var(--f-body)}
.an-garis{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.an-garis-a{stroke:#DC3330}
.an-garis-b{stroke:#2A8CC0;stroke-dasharray:5 4}
.an-hair{stroke:var(--ink);stroke-width:1;stroke-dasharray:2 3}
.an-dot{fill:#DC3330;stroke:#fff;stroke-width:2}
.an-dot-b{fill:#2A8CC0;stroke:#fff;stroke-width:2}
.an-tip{position:absolute;top:4px;min-width:150px;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:8px 10px;display:grid;gap:4px;font-size:13px;box-shadow:0 4px 12px rgba(0,0,0,.08);pointer-events:none}
.an-tip-tgl{font-weight:700;color:var(--muted)}
.an-tip-baris{display:flex;align-items:center;gap:6px}
.an-aktif{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;height:140px;align-items:end}
.an-batang{display:grid;grid-template-rows:1fr auto auto;justify-items:center;height:100%;gap:4px;font-size:12px;font-weight:700;color:var(--muted)}
.an-batang i{align-self:end;width:min(36px,70%);background:#DC3330;border-radius:4px 4px 0 0}
.an-batang b{font:600 14px/1 var(--f-display);color:var(--ink)}
.an-top{min-width:620px}
.an-sort{background:none;border:0;padding:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;min-height:32px}
.adm>*,#vApp>*{min-width:0}
#vApp{display:grid;gap:18px;min-width:0}
.adm,#vApp{grid-template-columns:minmax(0,1fr)}
.adm section{grid-template-columns:minmax(0,1fr)}
.adm section>*,.an-chart>*,.card>.scroll{min-width:0}
.an-delta{display:inline-flex;align-items:center;gap:2px;flex-wrap:wrap}
/* fieldset harga batch: label di atas, input penuh (jangan pakai .pilih: itu gaya tombol radio member) */
.harga-set{border:1.5px solid var(--line);border-radius:14px;padding:14px;margin:0;min-width:0;display:grid;gap:14px}
.harga-set legend{padding:0 6px;font-weight:700}
.harga-set label{display:grid;gap:6px}
.harga-set input{width:100%;min-height:48px}
