:root{--ink:#1c2632;--muted:#5d6a78;--line:rgba(28,38,50,.10);--card:rgba(255,255,255,.94);--gold:#e2a524;--red:#d93f45}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;font-family:"Space Grotesk",system-ui,sans-serif;color:var(--ink);background:#dfe9f1}
button,input{font-family:inherit;color:inherit}
#c{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}
#c.hov{cursor:pointer}
#c.dragging{cursor:grabbing}
.card{background:var(--card);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 28px rgba(20,35,50,.14)}
.side{position:fixed;top:14px;left:14px;width:300px;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 92px);pointer-events:none;z-index:5}
.side>*{pointer-events:auto}
.brand{padding:14px 16px}
.brand .t{display:flex;align-items:center;gap:10px}
.brand h1{font-size:18px;margin:0;letter-spacing:-.01em;line-height:1.1}
.brand .sub{font-size:12px;color:var(--muted);margin-top:3px}
.stats{display:grid;grid-template-columns:1.15fr 1.15fr .8fr;gap:8px;margin-top:12px}
.stat .k{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.stat .v{font-size:14.5px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px;white-space:nowrap}
.bar{height:6px;background:#e5eaee;border-radius:99px;margin-top:10px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#f2cb63);width:0;transition:width .6s}
.barlbl{font-size:11px;color:var(--muted);margin-top:5px;display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}
.explore{padding:12px 14px;overflow:auto;min-height:0}
.explore h3{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:14px 0 6px;font-weight:600}
.explore h3:first-child{margin-top:0}
.bbcount{text-transform:none;letter-spacing:0;font-weight:500;margin-left:4px}
.bbopts{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:0 0 4px 6px}
.bbopts label{display:flex;align-items:center;gap:5px;cursor:pointer}.bbopts input{accent-color:var(--ink);margin:0}
.bblist{max-height:216px;overflow:auto}
.bbquota{height:6px;border-radius:3px;background:var(--line,#e5e7eb);overflow:hidden;margin:4px 0 8px}.bbquota i{display:block;height:100%;background:#2a9d8f}
.search{width:100%;padding:9px 11px;border-radius:9px;border:1px solid var(--line);background:#fff;font-size:13.5px;outline:none}
.search:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(226,165,36,.18)}
.li{display:flex;align-items:center;gap:8px;width:100%;padding:6px 6px;border:0;background:transparent;border-radius:8px;cursor:pointer;font-size:13px;text-align:left}
.li:hover{background:rgba(28,38,50,.05)}
.li .n{width:16px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}
.li .nm{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li .f{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.chip{width:12px;height:12px;border-radius:3px;flex:none;display:inline-block}
.empty{font-size:12.5px;color:var(--muted);padding:6px}
#results{margin-top:4px}
.legend{font-size:12.5px;color:var(--muted);line-height:1.55}
.legend .lg{display:flex;align-items:center;gap:8px;color:var(--ink)}
.legend .z1{background:#e0d4b6;border:1px solid #c4b38c}
.legend .z2{background:#8cae63;border:1px solid #6f8f4c}
.legend .z3{background:#ffc83d}
.formula{margin-top:8px;padding:8px 10px;background:rgba(226,165,36,.10);border-radius:8px;color:var(--ink);font-size:12.5px}
.panel{position:fixed;top:14px;right:14px;width:330px;padding:16px;z-index:6;max-height:calc(100vh - 100px);overflow:auto}
.panel[hidden]{display:none}
.ph{display:flex;align-items:flex-start;gap:10px}
.ph .chip{width:30px;height:30px;border-radius:8px;margin-top:2px}
.ph .chip.sale{background:repeating-linear-gradient(45deg,#ffc83d 0 6px,#ffe08a 6px 12px)}
.ph h2{font-size:17px;margin:0;line-height:1.2}
.ph .dom{font-size:12.5px;color:var(--muted);margin-top:2px}
.ph .x{margin-left:auto;border:0;background:transparent;font-size:20px;line-height:1;cursor:pointer;color:var(--muted);padding:2px 4px;border-radius:6px}
.ph .x:hover{background:rgba(28,38,50,.06)}
.badge{display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.04em;padding:2px 7px;border-radius:99px;background:#1c2632;color:#fff;margin-top:6px}
dl.facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin:14px 0 14px}
dl.facts dt{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
dl.facts dd{margin:2px 0 0;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.btn{width:100%;padding:11px 14px;border-radius:10px;border:0;font-size:14px;font-weight:600;cursor:pointer}
.btn.primary{background:var(--ink);color:#fff}
.btn.primary:hover{background:#2c3a4a}
.btn.primary:disabled{background:#aab3bc;cursor:not-allowed}
.btn.ghost{background:rgba(28,38,50,.06);color:var(--muted);cursor:default}
.note{font-size:11.5px;color:var(--muted);margin:9px 0 0;line-height:1.45}
.fl{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:14px 0 6px;display:flex;justify-content:space-between}
.fl b{color:var(--ink);text-transform:none;letter-spacing:0;font-size:13px}
.steps{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}
.stepper span.l{font-size:11.5px;color:var(--muted);padding-left:9px;flex:1}
.stepper button{border:0;background:transparent;width:30px;height:32px;font-size:16px;cursor:pointer}
.stepper button:hover{background:rgba(28,38,50,.06)}
.stepper output{width:22px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}
input[type=range]{width:100%;accent-color:var(--gold)}
input.txt{width:100%;padding:9px 11px;border-radius:9px;border:1px solid var(--line);background:#fff;font-size:14px;outline:none}
input.txt:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(226,165,36,.18)}
.sw{display:flex;gap:7px;flex-wrap:wrap}
.sw button{width:26px;height:26px;border-radius:7px;border:2px solid transparent;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.sw button[aria-pressed=true]{border-color:var(--ink);transform:scale(1.08)}
.price{margin:16px 0 10px;padding:12px;border-radius:10px;background:rgba(226,165,36,.10)}
.price .row{display:flex;justify-content:space-between;align-items:baseline}
.price strong{font-size:22px;font-variant-numeric:tabular-nums}
.price small{display:block;font-size:11.5px;color:var(--muted);margin-top:4px;line-height:1.4}
.err{color:var(--red);font-size:12.5px;margin-bottom:8px}
.err:empty{display:none}
.controls{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:2px;padding:5px;z-index:5}
.controls button{border:0;background:transparent;height:38px;min-width:38px;padding:0 9px;border-radius:9px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500}
.controls button:hover{background:rgba(28,38,50,.07)}
.controls button[aria-pressed=true]{background:var(--ink);color:#fff}
.controls .sep{width:1px;height:22px;background:var(--line);margin:0 4px}
.controls button{white-space:nowrap}
.controls svg{flex:none;width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hint{position:fixed;bottom:16px;left:14px;font-size:11.5px;color:var(--muted);z-index:4;max-width:300px;line-height:1.5;padding:8px 11px}
.tip{position:fixed;pointer-events:none;z-index:8;padding:7px 10px;border-radius:9px;background:rgba(20,28,38,.94);color:#fff;font-size:12.5px;line-height:1.35;white-space:nowrap;display:none}
.tip b{display:block;font-weight:600}
.tip span{opacity:.75;font-size:11.5px}
.toast{position:fixed;top:16px;left:50%;transform:translate(-50%,-20px);opacity:0;transition:.35s;z-index:9;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;font-size:13.5px;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.18);max-width:90vw;text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
.loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--muted);z-index:20}
.lbl-sm{display:inline}
@media (max-width:1400px){.hint{display:none}}
@media (max-width:1000px){.lbl-sm{display:none}}
@media (max-width:760px){
  .side{left:8px;right:8px;top:8px;width:auto;max-height:calc(100vh - 80px)}
  .brand{padding:11px 13px}.brand h1{font-size:16px}.stats{margin-top:8px}.stat .v{font-size:13px}
  .panel{left:8px;right:8px;top:auto;bottom:70px;width:auto;max-height:56vh}
  .controls{bottom:10px}.lbl-sm{display:none}
}

/* ===== platform additions ===== */
button,input,select{font-family:inherit;color:inherit}
.acct{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:12.5px}
.acct .who{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acct .who b{display:block;font-size:13px}
.acct .who span{color:var(--muted);font-variant-numeric:tabular-nums}
.sbtn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font-size:12.5px;cursor:pointer;font-weight:500;white-space:nowrap}
.sbtn:hover{background:#f4f6f8}
.sbtn.dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.menu{position:absolute;margin-top:4px;right:0;top:100%;min-width:200px;padding:6px;z-index:12}
.menu[hidden]{display:none}
.menu button,.menu a{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:7px;font-size:13px;cursor:pointer;text-decoration:none;color:var(--ink)}
.menu button:hover,.menu a:hover{background:rgba(28,38,50,.06)}
.menu .danger{color:var(--red)}
.menu hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.rel{position:relative}
.modal-bg{position:fixed;inset:0;background:rgba(15,22,30,.42);z-index:30;display:flex;align-items:center;justify-content:center;padding:16px}
.modal-bg[hidden]{display:none}
.modal{width:100%;max-width:380px;padding:20px;max-height:calc(100vh - 32px);overflow:auto}
.modal h2{margin:0 0 4px;font-size:18px}
.modal p{font-size:13px;color:var(--muted);margin:0 0 12px;line-height:1.5}
.tabs{display:flex;gap:4px;background:rgba(28,38,50,.06);padding:3px;border-radius:9px;margin:10px 0 6px}
.tabs button{flex:1;border:0;background:transparent;padding:7px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;color:var(--muted)}
.tabs button[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.chk{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--muted);margin-top:12px;line-height:1.45}
.chk input{margin-top:2px;accent-color:var(--ink)}
a{color:#1f5fa8}
.opts{display:grid;gap:6px}
.opts.c4{grid-template-columns:repeat(4,1fr)}
.opts.c3{grid-template-columns:repeat(3,1fr)}
.opt{border:1px solid var(--line);background:#fff;border-radius:9px;padding:6px 4px;font-size:11px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--muted);line-height:1.15;text-align:center}
.opt svg{width:30px;height:26px}
.opt[aria-pressed=true]{border-color:var(--ink);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);font-weight:600}
.opt .fs{width:100%;height:22px;border-radius:5px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.colrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.colrow input[type=color]{width:30px;height:28px;border:1px solid var(--line);border-radius:7px;padding:0;background:#fff;cursor:pointer}
.sec{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.sec>.st{font-size:12px;font-weight:700;letter-spacing:.02em;margin-bottom:2px}
.sel{width:100%;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:#fff;font-size:13px}
.drop{display:block;border:1.5px dashed rgba(28,38,50,.22);border-radius:10px;padding:12px;text-align:center;font-size:12.5px;color:var(--muted);cursor:pointer}
.drop:hover{border-color:var(--gold);background:rgba(226,165,36,.06)}
.drop input{display:none}
.pill{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:99px;background:#f3e3b6;color:#6b4d05}
.pill.ok{background:#d6efdf;color:#185c33}
.pill.no{background:#f7d4d5;color:#8a1d22}
.btnrow{display:flex;gap:8px;margin-top:6px}
.btnrow .btn{flex:1}
.modal.aff{max-width:440px}
.bbprev{background:#1d2b3a;border-radius:10px;overflow:hidden;aspect-ratio:2/1;margin-top:12px}
.bbprev.b{aspect-ratio:6/1}
.bbprev.p{aspect-ratio:2/3;max-width:180px;margin-left:auto;margin-right:auto}
.bbprev img{width:100%;height:100%;object-fit:cover;display:block}
.bbph{height:100%;display:grid;place-items:center;color:#f2cb63;font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;text-align:center;padding:8px}
.bbbars{display:flex;align-items:flex-end;gap:2px;height:56px;margin:4px 0 2px;border-bottom:1px solid var(--line)}
.bbbars i{flex:1;min-width:3px;background:#2a9d8f;border-radius:2px 2px 0 0}
.opt b{color:var(--ink);font-size:12px}
.affln{display:flex;gap:6px}.affln .txt{flex:1;min-width:0;font-size:12.5px}.affln .btn{width:auto;padding:8px 12px;font-size:13px}
.affgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.affst{border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:1px}
.affst span{font-size:11px;color:var(--muted)}.affst b{font-size:16px}.affst small{font-size:11px;color:var(--muted)}
.affacc{display:flex;align-items:center;gap:6px;margin-top:6px}.affacc div{flex:1;display:flex;flex-direction:column;font-size:13px}.affacc span{font-size:12px;color:var(--muted)}
.affrow{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:6px 0;border-bottom:1px solid var(--line)}
.affrow span{flex:1;color:var(--muted)}.affrow i{font-style:normal}
.btn.sec2{background:rgba(28,38,50,.07);color:var(--ink)}
.btn.sec2:hover{background:rgba(28,38,50,.12)}
a.btn{display:block;text-align:center;text-decoration:none;box-sizing:border-box}
.tog{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:10px;cursor:pointer}
.tog input{accent-color:var(--ink);width:16px;height:16px}
textarea.txt{resize:vertical;min-height:72px;line-height:1.45;font-size:13.5px}
.desc{font-size:13px;line-height:1.5;color:var(--ink);margin:12px 0 0;white-space:pre-line;overflow-wrap:anywhere}
.panel{width:350px}
.langsw{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;margin-left:auto;flex:none}
.langsw button{border:0;background:#fff;padding:4px 7px;font-size:11px;font-weight:700;cursor:pointer;color:var(--muted);letter-spacing:.04em}
.langsw button[aria-pressed=true]{background:var(--ink);color:#fff}
.brand .t{flex-wrap:nowrap}
.zt{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}
.zt th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;text-align:right;padding:0 0 4px}
.zt th:first-child,.zt td:first-child{text-align:left}
.zt td{padding:4px 0;border-top:1px solid var(--line);text-align:right}
.zt td small{display:block;font-size:10.5px;color:var(--muted)}
.ztn{font-size:11px;color:var(--muted);margin:6px 0 0}
.zt td:first-child{display:flex;align-items:center;gap:7px}
/* status mode demo */
.demoinfo{margin-top:10px;padding:8px 11px;border-radius:9px;background:#e8f5ee;color:#14532d;font-size:13px;line-height:1.35;border:1px solid #b7e1c8}
.demoinfo.on{background:#fff4dd;color:#7a4b00;border-color:#f1d08a}
.demoinfo[hidden]{display:none}.demoinfo b{font-weight:700}
.demoinfo code{font-size:11px;padding:1px 5px;border-radius:5px;background:rgba(0,0,0,.07)}
.demoinfo small{display:block;font-size:11.5px;opacity:.9;margin-top:2px}
/* promo diskon */
.promo{margin-top:10px;padding:8px 11px;border-radius:9px;background:linear-gradient(90deg,#d93f45,#e2a524);color:#fff;font-size:13px;font-weight:600;line-height:1.35}
.promo[hidden]{display:none}
.promo small{display:block;font-weight:400;font-size:11.5px;opacity:.95;margin-top:2px}
.zt s,.price s{color:var(--muted);font-weight:400;font-size:.85em;margin-right:2px}
/* Cari bisnis — kanan atas, bisa dibuka/tutup */
.finder{position:fixed;top:14px;right:14px;width:320px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:7;max-height:calc(100vh - 92px);pointer-events:none}
.finder>*{pointer-events:auto}
.finder-btn{display:flex;align-items:center;gap:8px;height:42px;padding:0 14px;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;color:var(--ink)}
.finder-btn:hover{background:#fff}
.finder-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.finder-btn .chev{font-size:12px;color:var(--muted);transition:transform .2s}
.finder-btn[aria-expanded=true]{background:var(--ink);color:#fff}
.finder-btn[aria-expanded=true] .chev{transform:rotate(180deg);color:#fff}
.finder .explore{width:100%;display:none}
.finder .explore.open{display:block}
.panel{top:66px;max-height:calc(100vh - 150px)}
@media (max-width:760px){
  .finder{top:auto;bottom:64px;right:8px;left:8px;width:auto;flex-direction:column-reverse;max-height:62vh}
  .finder-btn{height:38px;font-size:13px}
  body.panel-open .finder{display:none}
  .panel{top:auto;max-height:56vh}
}
/* pilihan metode pembayaran */
.paym{display:flex;flex-direction:column;gap:8px}
.paym-opt{display:flex;flex-direction:column;gap:3px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:11px;padding:12px 14px;cursor:pointer;font:inherit}
.paym-opt[hidden]{display:none}
.paym-opt:hover{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.paym-opt b{font-size:14.5px;color:var(--ink)}
.paym-opt span{font-size:12px;color:var(--muted);line-height:1.4}
.linkbtn{border:0;background:none;padding:0;margin-top:10px;font:inherit;font-size:12.5px;color:var(--muted);cursor:pointer;text-decoration:underline}
.linkbtn[hidden]{display:none}

/* jalan-jalan (sudut pandang pejalan kaki) */
.povhud,.joy{display:none}
body.riding.pov .povhud:not(.ridehud),body.riding.pov .joy{display:none}
body:not(.riding) .povhud.ridehud{display:none}
.povhud button.alt{background:var(--card2,#eef1f4);color:inherit}
.sidetog{flex:none;width:28px;height:28px;border:1px solid var(--line);border-radius:7px;background:transparent;color:inherit;cursor:pointer;display:grid;place-items:center;padding:0}
.sidetog svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.side.min .sidetog svg{transform:rotate(180deg)}
.side.min .sidebody{display:none}
.side.min .brand .sub{display:none}
.side.min .brand{padding:10px 12px}
.side.min{width:auto;max-width:300px}
body.pov .povhud{display:flex;position:fixed;left:50%;bottom:74px;transform:translateX(-50%);z-index:6;align-items:center;gap:12px;padding:8px 10px 8px 14px;max-width:calc(100vw - 32px);font-size:12px;line-height:1.4}
.povhud span{display:block;color:var(--muted)}
.povhud button{flex:none;border:0;border-radius:9px;padding:7px 12px;font:inherit;font-weight:600;background:#e4572e;color:#fff;cursor:pointer}
body.pov .joy{display:block;position:fixed;left:22px;bottom:96px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.22);border:2px solid rgba(255,255,255,.55);box-shadow:0 6px 20px rgba(0,0,0,.18);z-index:6;touch-action:none}
.joy .knob{position:absolute;left:calc(50% - 24px);top:calc(50% - 24px);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:0 2px 8px rgba(0,0,0,.25);pointer-events:none}
body.pov #rotL,body.pov #rotR,body.pov #zIn,body.pov #zOut,body.pov #reset,body.pov .hint{display:none}
@media (max-width:760px){body.pov .povhud{bottom:auto;top:66px}body.pov .povhud span{display:none}body.pov .joy{bottom:80px}}
body.pickwalk #c{cursor:crosshair}
.siteinfo{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:rgba(0,0,0,.035);border:1px solid rgba(0,0,0,.06)}
.siteinfo h3{margin:0 0 6px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.6}
.siteinfo .st{margin:0 0 4px;font-weight:600;font-size:13px;line-height:1.35}
.siteinfo .sd{margin:0 0 8px;font-size:12.5px;line-height:1.45;opacity:.85;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.siteinfo ul{list-style:none;margin:0 0 6px;padding:0}
.siteinfo li{padding:6px 0;border-top:1px solid rgba(0,0,0,.07);font-size:12.5px;line-height:1.35}
.siteinfo li a{color:inherit;text-decoration:none;font-weight:500}.siteinfo li a:hover{text-decoration:underline}
.siteinfo li span{display:block;font-size:11px;opacity:.55;margin-top:2px}
.siteinfo .note{margin:4px 0 0}
/* online & obrolan kota */
.online{display:flex;align-items:center;gap:8px;width:100%;margin-top:12px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.6);font:inherit;font-size:13px;color:var(--ink);cursor:pointer;text-align:left}
.online:hover{background:#fff}.online .go{margin-left:auto;font-size:12px;color:var(--muted)}
.online .dot,.cu .dot{width:8px;height:8px;border-radius:50%;background:#22b35e;box-shadow:0 0 0 3px rgba(34,179,94,.18);flex:none}
.cu .dot.w{background:#f0a020;box-shadow:0 0 0 3px rgba(240,160,32,.2)}
.chatfab{position:fixed;right:14px;bottom:16px;z-index:8;display:flex;align-items:center;gap:6px;padding:9px 13px;font:inherit;font-weight:600;font-size:13px;color:var(--ink);cursor:pointer}
.chatfab svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.chatfab .badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;font-style:normal;line-height:18px;text-align:center;box-sizing:border-box}
.chatfab .badge[hidden]{display:none}
body.chat-open .chatfab{display:none}
.chat{position:fixed;right:14px;bottom:16px;width:340px;height:min(560px,calc(100vh - 110px));z-index:9;display:flex;flex-direction:column;padding:0;overflow:hidden}
.chat[hidden]{display:none}
.chat-h{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px}.chat-h b{font-size:15px}
.chat-users{padding:0 14px 8px;max-height:132px;overflow:auto;border-bottom:1px solid var(--line);flex:none}
.cu-h{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.cu{display:flex;align-items:center;gap:7px;padding:4px 0;font-size:13px}.cu .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cu .tag{font-size:10.5px;color:#a8680a;background:rgba(240,160,32,.14);padding:1px 6px;border-radius:6px}
.cu .mini{border:1px solid var(--line);background:#fff;border-radius:7px;font:inherit;font-size:11.5px;padding:2px 8px;cursor:pointer}
.cu .mini:first-of-type{margin-left:auto}
.cu-e{font-size:12.5px;color:var(--muted);padding:6px 0}
.chat-tabs{display:flex;gap:4px;padding:8px 10px 0;overflow-x:auto;flex:none}
.chat-tabs button{border:1px solid var(--line);background:rgba(255,255,255,.7);border-radius:8px;padding:4px 10px;font:inherit;font-size:12px;cursor:pointer;white-space:nowrap;color:var(--ink)}
.chat-tabs button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.chat-tabs i{font-style:normal;background:var(--red);color:#fff;border-radius:8px;padding:0 5px;margin-left:5px;font-size:10.5px}
.chat-log{flex:1;overflow:auto;padding:8px 12px;display:flex;flex-direction:column;gap:6px}
.cm{max-width:86%;align-self:flex-start;background:rgba(28,38,50,.06);border-radius:10px 10px 10px 3px;padding:6px 9px}
.cm.me{align-self:flex-end;background:#e7f1ff;border-radius:10px 10px 3px 10px}
.cm-h{display:flex;gap:6px;align-items:baseline;font-size:11.5px}.cm-h span{color:var(--muted);font-size:10.5px}
.cm-h .del{margin-left:auto;border:0;background:none;color:var(--muted);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}
.cm-b{font-size:13px;line-height:1.4;white-space:pre-wrap;word-break:break-word;margin-top:1px}
.chat-form{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--line);flex:none}
.chat-form input{flex:1;min-width:0;border:1px solid var(--line);border-radius:9px;padding:8px 10px;font:inherit;font-size:13px}
.chat-guest{padding:10px 12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);display:flex;gap:8px;align-items:center;justify-content:space-between;flex:none}
.chat-guest[hidden],.chat-form[hidden]{display:none}
.chat-hide{display:flex;gap:6px;align-items:center;font-size:11.5px;color:var(--muted);padding:0 12px 10px;flex:none}
.peers{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden}
.peer{position:absolute;left:0;top:0;width:0;height:0}
.peer[hidden]{display:none}
.peer .nm,.peer .bub{position:absolute;left:0;transform:translateX(-50%);white-space:nowrap}
.peer .nm{bottom:0;background:rgba(20,30,42,.85);color:#fff;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:8px}
.peer .bub{bottom:24px;background:#fff;color:var(--ink);font-size:12px;padding:4px 9px;border-radius:10px;max-width:200px;white-space:normal;width:max-content;box-shadow:0 3px 10px rgba(0,0,0,.18)}
.peer.guest::after{content:"";position:absolute;left:-6px;top:-6px;width:9px;height:9px;border-radius:50%;background:#f0a020;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3)}
@media (max-width:760px){
  .chatfab{top:10px;right:8px;bottom:auto;padding:7px 10px}
  .chat{left:8px;right:8px;top:8px;bottom:auto;width:auto;height:min(70vh,520px)}
  body.chat-open .finder,body.chat-open .panel{display:none}
}
