/* ==========================================================================
   ADMIN SAFBRI — stylesheet (FB Group + Messenger theme)
   ========================================================================== */
:root{
  --fb-blue:#1877F2;
  --fb-blue-dark:#166FE5;
  --bg:#F0F2F5;
  --text:#050505;
  --muted:#65676B;
  --white:#FFFFFF;
  --green:#42B72A;
  --green-dark:#36A420;
  --border:#E4E6EB;
  --pill-green-bg:#E6F4EA; --pill-green-fg:#137333;
  --pill-blue-bg:#E7F3FF;
  --danger:#E41E3F;
}
*{box-sizing:border-box;margin:0;padding:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{background:var(--bg);display:flex;justify-content:center;min-height:100dvh;color:var(--text)}

.app-container{
  width:100%;max-width:480px;background:var(--white);
  display:flex;flex-direction:column;height:100dvh;
  box-shadow:0 0 20px rgba(0,0,0,.15);position:relative;overflow:hidden}

/* ---------------- Header ---------------- */
.fb-header{background:var(--fb-blue);color:#fff;padding:12px 16px;
  display:flex;justify-content:space-between;align-items:center;
  box-shadow:0 2px 4px rgba(0,0,0,.1);flex:none}
.brand{font-size:18px;font-weight:800;letter-spacing:.5px;display:flex;align-items:center;gap:8px}
.logo-dot{font-size:17px}
.admin-badge{font-size:11px;background:rgba(255,255,255,.25);padding:5px 11px;
  border-radius:12px;display:flex;align-items:center;gap:6px;font-weight:600}
.dot-online{width:8px;height:8px;background:#31A24C;border-radius:50%;
  box-shadow:0 0 0 3px rgba(49,162,76,.25);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}

/* ---------------- Group pinned card ---------------- */
.group-card{background:#fff;border-bottom:3px solid var(--border);padding:14px 16px;flex:none}
.group-tag{display:inline-block;background:var(--pill-blue-bg);color:var(--fb-blue);
  font-size:11px;font-weight:700;padding:4px 8px;border-radius:4px;
  text-transform:uppercase;margin-bottom:8px;letter-spacing:.3px}
.status-pill{display:inline-block;background:var(--pill-green-bg);color:var(--pill-green-fg);
  font-size:12px;font-weight:700;padding:4px 12px;border-radius:20px;margin-bottom:8px}
.status-pill.warn{background:#FFF3CD;color:#8A6D3B}
.status-pill.danger{background:#FDE7EA;color:var(--danger)}
.trx-amount{font-size:22px;font-weight:800;color:var(--text);margin-bottom:6px}
.trx-meta{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;
  gap:8px;background:var(--bg);padding:8px 12px;border-radius:6px}
.trx-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------------- Chat ---------------- */
.chat-box{flex:1;overflow-y:auto;padding:16px 16px 20px;background:#fff;
  display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth;
  overscroll-behavior:contain}
.sys-notice{background:#FFF8E6;color:#8A6D3B;font-size:12px;padding:10px 14px;
  border-radius:8px;border-left:4px solid #FFC107;line-height:1.45}
.msg{max-width:78%;padding:10px 14px;border-radius:18px;font-size:14px;
  line-height:1.4;word-wrap:break-word;overflow-wrap:anywhere;animation:pop .18s ease}
@keyframes pop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.msg-sender{font-size:10px;font-weight:700;margin-bottom:3px;color:var(--muted)}
.msg-in{background:var(--border);color:var(--text);align-self:flex-start;border-bottom-left-radius:4px}
.msg-out{background:var(--fb-blue);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.msg-out .msg-sender{color:rgba(255,255,255,.85)}
.msg-admin{background:var(--pill-blue-bg);color:var(--text);border:1px solid var(--fb-blue);
  align-self:flex-start}
.msg-sys{align-self:center;background:var(--bg);color:var(--muted);font-size:11px;
  padding:5px 12px;border-radius:12px;max-width:90%;text-align:center}
.msg img{max-width:100%;border-radius:10px;margin-top:6px;display:block}
.typing-hint{font-size:11px;color:var(--muted);padding-left:6px;font-style:italic;height:14px}

/* ---------------- Footer ---------------- */
.footer{background:#fff;border-top:1px solid var(--border);padding:12px;flex:none}
.btn-cairkan{width:100%;background:var(--green);color:#fff;border:none;padding:12px;
  border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;margin-bottom:10px;
  transition:background .15s}
.btn-cairkan:hover{background:var(--green-dark)}
.btn-cairkan:disabled{background:#BCC0C4;cursor:not-allowed}
.input-group{display:flex;gap:8px}
.input-group input{flex:1;padding:10px 14px;border:1px solid #CCD0D5;border-radius:20px;
  outline:none;font-size:14px;background:var(--bg);min-width:0}
.input-group input:focus{background:#fff;border-color:var(--fb-blue)}
.btn-send{background:var(--fb-blue);color:#fff;border:none;padding:10px 16px;
  border-radius:20px;font-weight:700;cursor:pointer}
.btn-send:hover{background:var(--fb-blue-dark)}

/* ---------------- Modal PIN ---------------- */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;
  align-items:center;justify-content:center;z-index:50;padding:20px}
.modal-overlay[hidden]{display:none}
.modal{background:#fff;border-radius:14px;padding:22px;width:100%;max-width:360px;
  box-shadow:0 12px 40px rgba(0,0,0,.3)}
.modal h3{font-size:16px;margin-bottom:6px}
.modal-sub{font-size:13px;color:var(--muted);margin-bottom:14px;line-height:1.4}
.modal input{width:100%;padding:12px;border:2px solid var(--border);border-radius:10px;
  font-size:20px;letter-spacing:6px;text-align:center;outline:none;font-family:monospace}
.modal input:focus{border-color:var(--fb-blue)}
.modal-actions{display:flex;gap:10px;margin-top:16px}
.btn-ghost{flex:1;background:var(--bg);color:var(--text);border:none;padding:11px;
  border-radius:8px;font-weight:700;cursor:pointer}
.btn-primary{flex:1;background:var(--fb-blue);color:#fff;border:none;padding:11px;
  border-radius:8px;font-weight:700;cursor:pointer}
.btn-primary:disabled{background:#BCC0C4;cursor:not-allowed}
.modal-err{color:var(--danger);font-size:12px;margin-top:10px;min-height:16px;text-align:center}

.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);
  background:var(--text);color:#fff;padding:11px 18px;border-radius:22px;font-size:13px;
  z-index:99;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;max-width:90%}
.toast.show{opacity:1;transform:translateX(-50%) translateY(-6px)}
.toast.ok{background:var(--green-dark)}
.toast.err{background:var(--danger)}
