/* Halaman panel (Masuk, Undangan Saya, Tamu, Check-in). Dipakai bersama builder/builder.css. */
body.page{display:block;overflow:auto;height:auto;min-height:100%}
.wrap{max-width:1080px;margin:0 auto;padding:26px 18px 80px}
.wrap.narrow{max-width:440px;padding-top:8vh}
.ptitle{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.ptitle h1{font-size:26px;font-weight:700;letter-spacing:-.01em}
.ptitle p{color:var(--sub)}
.who{font-size:12.5px;opacity:.85;margin-right:4px;max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.inv{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.inv .ph{aspect-ratio:16/9;background:var(--teal) center/cover;position:relative}
.inv .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,56,65,.85),transparent 60%)}
.inv .ph h3{position:absolute;left:16px;bottom:12px;right:16px;z-index:1;color:#fff;font-size:21px;font-weight:700}
.inv .bd{padding:14px 16px 16px;display:grid;gap:10px;flex:1}
.inv .meta{font-size:12.5px;color:var(--sub);overflow-wrap:anywhere}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:99px;font-size:11.5px;font-weight:600;background:var(--paper);color:var(--sub);white-space:nowrap}
.chip.ok{background:#E3F4EA;color:#17694A}.chip.bad{background:#FBE6E3;color:#9A2C20}.chip.warn{background:#FBF0D9;color:#8A5C06}.chip.teal{background:var(--teal);color:#fff}
.inv .acts{margin-top:auto}
.adminbox{border-top:1px dashed var(--line);padding-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.adminbox .fld label{font-size:11.5px}
.adminbox select,.adminbox input{height:40px;font-size:13.5px;padding:0 10px;width:100%;border:1px solid var(--line);border-radius:10px;background:#fff}
.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;margin-top:16px}
.panel h2{font-size:16px;font-weight:700;margin-bottom:12px}
.rowf{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.rowf .fld{flex:1;min-width:150px}
.rowf .fld.s{flex:0 0 110px;min-width:90px}
.msg{font-size:13px;margin-top:10px;min-height:18px}.msg.bad{color:var(--bad)}.msg.ok{color:var(--ok)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:16px}
.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.stat b{display:block;font-size:26px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.stat span{font-size:12px;color:var(--sub)}
.stat.hl{background:var(--teal);color:#fff;border-color:var(--teal)}.stat.hl span{color:rgba(255,255,255,.8)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}
.tabs button{min-height:44px;padding:0 16px;font-weight:600;color:var(--sub);border-bottom:2px solid transparent;white-space:nowrap}
.tabs button[aria-selected=true]{color:var(--teal);border-color:var(--teal)}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--sub);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl td b{display:block}.tbl td small{color:var(--sub)}
.tbl .ops{justify-content:flex-end}
.tblwrap{overflow-x:auto;margin:0 -20px;padding:0 20px}
.mini{min-height:34px;padding:0 10px;border-radius:8px;border:1px solid var(--line);font-size:12.5px;font-weight:600;background:#fff;white-space:nowrap;display:inline-flex;align-items:center;text-decoration:none;color:var(--ink)}
.mini:hover{border-color:var(--teal)}.mini.wa{background:#1E8E5A;border-color:#1E8E5A;color:#fff}.mini.del{color:var(--bad)}
.empty{text-align:center;padding:40px 16px;color:var(--sub)}
.wishrow{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}
.wishrow p{font-size:13.5px;color:var(--sub);white-space:pre-line;overflow-wrap:anywhere}
.wishrow.hid{opacity:.55}
.linkbox{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.linkbox code{flex:1;min-width:200px;background:var(--paper);border-radius:10px;padding:11px 12px;font-size:12.5px;overflow-wrap:anywhere}
/* check-in */
.ci{max-width:520px;margin:0 auto;padding:16px 14px 60px}
#reader{border-radius:16px;overflow:hidden;background:#000;min-height:120px}
#reader video{border-radius:16px}
.res{border-radius:16px;padding:18px;margin-top:14px;color:#fff;background:var(--teal)}
.res.good{background:var(--ok)}.res.dup{background:var(--warn)}.res.err{background:var(--bad)}
.res h2{font-size:22px;font-weight:700;overflow-wrap:anywhere}
.res p{opacity:.92;font-size:13.5px}
.res .rowf{margin-top:12px;align-items:center}
.res .b{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.14);color:#fff}
.cnt{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.16);border-radius:10px;padding:3px}
.cnt button{width:40px;height:40px;border-radius:8px;background:rgba(255,255,255,.2);color:#fff;font-size:20px}
.cnt b{min-width:26px;text-align:center;font-size:20px}
.found{display:grid;gap:6px;margin-top:10px}
.found button{display:flex;justify-content:space-between;gap:10px;align-items:center;min-height:52px;padding:8px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left}
@media(max-width:860px){.page .top{position:sticky}.adminbox{grid-template-columns:1fr}.tbl .hide-m{display:none}}
/* perbaikan: tombol di tabel tidak ikut ukuran tombol ikon */
.tbl .ops button,.tbl .ops a,.wishrow .ops button{width:auto;height:auto;min-height:34px;padding:0 10px;font-size:12.5px;color:var(--ink)}
.tbl .ops .wa{color:#fff}.tbl .ops .del,.wishrow .ops .del{color:var(--bad)}
.tbl .ops{gap:6px;flex-wrap:wrap}
#reader{min-height:0}#reader:empty{display:none}
.cihead{font-size:20px;font-weight:700;margin-bottom:12px}
