:root{color-scheme:dark;--tg-bg:#07111f;--tg-card:rgba(15,23,42,.9);--tg-border:rgba(148,163,184,.22);--tg-text:#e5edf7;--tg-muted:#9fb0c5;--tg-primary:#38bdf8;--tg-ok:#34d399;--tg-warn:#fbbf24;--tg-danger:#fb7185}html[data-theme="light"]{color-scheme:light;--tg-bg:#f4f7fb;--tg-card:#fff;--tg-border:#dbe4ef;--tg-text:#0f172a;--tg-muted:#64748b;--tg-primary:#0369a1}.tg-page{min-height:100vh;background:radial-gradient(circle at top left,rgba(56,189,248,.16),transparent 32rem),var(--tg-bg);color:var(--tg-text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding:18px}.tg-shell{max-width:1180px;margin:0 auto;display:grid;gap:14px}.tg-topbar,.tg-card{background:var(--tg-card);border:1px solid var(--tg-border);border-radius:22px;box-shadow:0 18px 48px rgba(0,0,0,.22)}.tg-topbar{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.tg-title{padding:18px 20px}.tg-kicker{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tg-primary);font-weight:800}.tg-title h1{margin:4px 0;font-size:clamp(24px,3vw,38px)}.tg-title p{margin:0;color:var(--tg-muted)}.tg-actions{display:flex;flex-wrap:wrap;gap:8px}.tg-btn{border:1px solid var(--tg-border);background:rgba(148,163,184,.12);color:var(--tg-text);border-radius:14px;padding:10px 12px;font-weight:800;text-decoration:none;cursor:pointer}.tg-btn--primary{background:linear-gradient(135deg,#0284c7,#0f766e);border-color:transparent;color:#fff}.tg-btn--danger{background:rgba(251,113,133,.16);border-color:rgba(251,113,133,.45)}.tg-status{padding:12px 14px;border-radius:16px;border:1px solid var(--tg-border);background:rgba(148,163,184,.12)}.tg-status[data-tone="ok"]{border-color:rgba(52,211,153,.5)}.tg-status[data-tone="error"]{border-color:rgba(251,113,133,.55)}.tg-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:14px}.tg-card{padding:16px}.tg-card h2{font-size:18px;margin:0 0 10px}.tg-form{display:grid;gap:10px}.tg-form label{display:grid;gap:6px;font-weight:800;color:var(--tg-muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.tg-form input,.tg-form select,.tg-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--tg-border);border-radius:14px;background:rgba(2,6,23,.2);color:var(--tg-text);padding:11px 12px;outline:none}.tg-form textarea{min-height:86px;resize:vertical}.tg-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tg-list{display:grid;gap:10px}.tg-item{border:1px solid var(--tg-border);border-radius:16px;padding:12px;background:rgba(148,163,184,.08);display:grid;gap:8px}.tg-item-head{display:flex;justify-content:space-between;gap:10px}.tg-item strong{font-size:15px}.tg-meta{font-size:12px;color:var(--tg-muted);line-height:1.45}.tg-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--tg-border);border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}.tg-pill[data-active="true"]{color:var(--tg-ok);border-color:rgba(52,211,153,.45)}.tg-pill[data-active="false"]{color:var(--tg-danger);border-color:rgba(251,113,133,.45)}.tg-debug{max-height:260px;overflow:auto;font-size:12px;white-space:pre-wrap}.tg-help{color:var(--tg-muted);font-size:13px;line-height:1.55}.tg-help code{background:rgba(148,163,184,.14);padding:2px 5px;border-radius:6px}@media(max-width:860px){.tg-page{padding:10px}.tg-grid,.tg-row,.tg-switch-grid{grid-template-columns:1fr}.tg-topbar,.tg-channel-head,.tg-channel-foot{align-items:flex-start;flex-direction:column}.tg-actions{width:100%}.tg-btn{flex:1;text-align:center}}
.tg-channel-card{display:grid;gap:12px}.tg-channel-head,.tg-channel-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.tg-channel-head h2{margin:2px 0 0}.tg-switch-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tg-switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--tg-border);border-radius:16px;padding:12px;background:rgba(148,163,184,.08)}.tg-switch-row span{display:grid;gap:3px}.tg-switch-row strong{font-size:14px}.tg-switch-row small{color:var(--tg-muted);font-size:12px;line-height:1.45}.tg-switch-row input{appearance:none;width:52px;height:30px;border-radius:999px;border:1px solid var(--tg-border);background:rgba(148,163,184,.2);position:relative;cursor:pointer;flex:0 0 auto}.tg-switch-row input::after{content:"";position:absolute;left:4px;top:4px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.18s}.tg-switch-row input:checked{background:rgba(52,211,153,.55);border-color:rgba(52,211,153,.72)}.tg-switch-row input:checked::after{transform:translateX(22px)}.tg-channel-foot{color:var(--tg-muted);font-size:13px}.tg-pill[data-mode="all-on"]{color:var(--tg-ok);border-color:rgba(52,211,153,.45)}.tg-pill[data-mode="telegram-only"]{color:var(--tg-warn);border-color:rgba(251,191,36,.45)}


/* v24EGF Telegram Admin Manual Verify UI */
.tg-rule-card {
  border: 1px solid rgba(34,197,94,.24);
  background: linear-gradient(135deg, rgba(34,197,94,.10), rgba(59,130,246,.08));
}
.tg-rule-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
  margin-top: 10px;
}
.tg-rule-item {
  border: 1px solid rgba(148,163,184,.25);
  border-radius: 14px;
  padding: 10px 12px;
  background: rgba(15,23,42,.42);
}
.tg-rule-item strong {
  display: block;
  margin-bottom: 4px;
}
.tg-rule-item span {
  color: rgba(226,232,240,.78);
  font-size: .88rem;
}
.tg-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.tg-summary span {
  border: 1px solid rgba(148,163,184,.22);
  border-radius: 14px;
  padding: 10px;
  background: rgba(15,23,42,.35);
}
.tg-summary strong {
  display: block;
  font-size: 1.25rem;
}
.tg-summary small {
  color: rgba(226,232,240,.7);
}
.tg-item[data-state="pending_manual"] {
  border-color: rgba(245,158,11,.62);
  box-shadow: 0 0 0 1px rgba(245,158,11,.08);
}
.tg-item[data-state="relief_admin"] {
  border-color: rgba(34,197,94,.62);
  box-shadow: 0 0 0 1px rgba(34,197,94,.08);
}
.tg-pill[data-state="pending_manual"] {
  background: rgba(245,158,11,.18);
  color: #fbbf24;
}
.tg-pill[data-state="manual_active"],
.tg-pill[data-state="auto_active"],
.tg-pill[data-state="relief_admin"] {
  background: rgba(34,197,94,.18);
  color: #86efac;
}
.tg-pill[data-state="need_nokp"],
.tg-pill[data-state="relief_admin_off"],
.tg-pill[data-state="all_staff_off"] {
  background: rgba(239,68,68,.18);
  color: #fca5a5;
}
.tg-notes {
  margin-top: 8px;
  color: rgba(226,232,240,.74);
}
.tg-notes summary {
  cursor: pointer;
  font-size: .86rem;
}
@media (max-width: 760px) {
  .tg-rule-grid,
  .tg-summary {
    grid-template-columns: 1fr;
  }
}


/* v24EGF · Telegram Admin desktop width fix
   Masalah screenshot: page terlalu sempit di tengah desktop seperti mobile.
   Guard ini paksa desktop guna lebar penuh yang munasabah tanpa ganggu mobile. */
body.roses-admin-compact-v24EDI:has(.tg-page),
body:has(.tg-page) {
  min-width: 0 !important;
  overflow-x: hidden;
}
.tg-page {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
  padding: clamp(16px, 2vw, 32px) clamp(18px, 3vw, 44px) 132px !important;
}
.tg-shell {
  width: min(100%, 1480px) !important;
  max-width: 1480px !important;
  margin-inline: auto !important;
  gap: 18px !important;
}
.tg-topbar,
.tg-card {
  width: 100%;
  box-sizing: border-box;
}
.tg-title h1 {
  font-size: clamp(28px, 2.1vw, 44px) !important;
}
.tg-title p,
.tg-help,
.tg-meta {
  font-size: clamp(13px, .85vw, 15px);
}
.tg-card h2 {
  font-size: clamp(18px, 1.15vw, 22px);
}
.tg-grid {
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr) !important;
  align-items: start;
}
.tg-rule-grid,
.tg-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.tg-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}
.tg-item {
  min-width: 0;
}
.tg-item-head {
  align-items: flex-start;
}
.tg-actions {
  align-items: center;
}
.tg-debug {
  max-height: 360px;
}
@media (min-width: 1500px) {
  .tg-shell {
    width: min(100%, 1560px) !important;
    max-width: 1560px !important;
  }
  .tg-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 980px) {
  .tg-page {
    padding: 12px 12px 120px !important;
  }
  .tg-shell {
    width: 100% !important;
    max-width: none !important;
  }
  .tg-grid,
  .tg-row,
  .tg-switch-grid,
  .tg-rule-grid,
  .tg-summary,
  .tg-list {
    grid-template-columns: 1fr !important;
  }
}


/* v24EGF · hard click guard for Telegram recipient buttons */
.tg-actions,
.tg-actions .tg-btn,
.tg-item button[data-test],
.tg-item button[data-fill],
.tg-item button[data-toggle] {
  pointer-events: auto !important;
  position: relative;
  z-index: 3;
  cursor: pointer;
  user-select: none;
}
.tg-item details,
.tg-item .tg-meta,
.tg-item .tg-item-head {
  position: relative;
  z-index: 1;
}
.tg-item .tg-btn:disabled {
  opacity: .62;
  cursor: wait;
}
