.jqp-app{max-width:920px;margin:0 auto;padding:18px 14px 32px;color:#18231f;font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.jqp-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 18px 20px;border-radius:22px;background:linear-gradient(135deg,#064e3b,#0b8a62);color:#fff;margin-bottom:16px}.jqp-eyebrow{display:block;font-size:10px;letter-spacing:.16em;font-weight:800;opacity:.8}.jqp-top h1{font-size:24px;line-height:1.15;margin:5px 0}.jqp-top p{margin:0;color:#d7f5e8;font-size:13px}.jqp-settings{color:#fff;text-decoration:none;border:1px solid #ffffff65;padding:8px 10px;border-radius:12px;font-size:12px;white-space:nowrap}.jqp-card{background:#fff;border:1px solid #e5ebe7;border-radius:20px;padding:18px;margin-bottom:14px;box-shadow:0 8px 24px #12351a0a}.jqp-section-title{display:flex;gap:12px;align-items:center;margin-bottom:16px}.jqp-icon{display:grid;place-items:center;background:#e2f7ed;color:#087f5b;border-radius:13px;width:42px;height:42px;font-size:25px}.jqp-section-title h2,.jqp-history h2{margin:0;font-size:18px;color:#15241d}.jqp-section-title p,.jqp-history-head p{margin:3px 0 0;color:#718078;font-size:12px}.jqp-create label{display:block;font-size:12px;font-weight:750;margin:13px 0 6px}.jqp-create input,.jqp-create select{width:100%;box-sizing:border-box;border:1px solid #d9e3dd;border-radius:12px;padding:13px 12px;background:#fbfdfc;font-size:16px;color:#18231f}.jqp-create .jqp-amount{font-size:24px;font-weight:800;letter-spacing:.01em}.jqp-primary{display:block;width:100%;border:0;border-radius:13px;background:#087f5b;color:#fff;font-size:15px;font-weight:800;padding:14px 16px;margin-top:16px;cursor:pointer}.jqp-hint{font-size:11px;color:#718078;margin:10px 0 0}.jqp-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.jqp-stat{border:1px solid #dcebe2;border-radius:17px;padding:15px;background:#f1faf5;min-width:0}.jqp-stat span{display:block;font-size:11px;color:#537064}.jqp-stat strong{display:block;font-size:19px;line-height:1.3;color:#087f5b;margin-top:5px;overflow-wrap:anywhere}.jqp-history-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:14px}.jqp-count{font-size:10px;color:#718078;background:#f1f5f2;padding:6px 8px;border-radius:99px;white-space:nowrap}.jqp-table-wrap{overflow-x:auto;margin:0 -2px}.jqp-table{border-collapse:collapse;width:100%;font-size:12px;min-width:590px}.jqp-table th{text-align:left;background:#f4f8f5;color:#5c6f64;font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:10px 9px}.jqp-table td{border-bottom:1px solid #edf1ee;padding:11px 9px;vertical-align:top}.jqp-table td small{display:block;color:#718078;font-size:10px;margin-top:3px}.jqp-money{font-weight:800;white-space:nowrap}.jqp-status{display:inline-block;border-radius:99px;padding:4px 7px;font-size:10px;font-weight:800;white-space:nowrap}.is-confirmed{background:#dcfce7;color:#166534}.is-pending{background:#fff1c2;color:#855d00}.jqp-inline{margin-top:7px}.jqp-confirm{background:#087f5b;border:0;border-radius:8px;color:#fff;font-size:10px;font-weight:750;padding:7px 8px;cursor:pointer;white-space:nowrap}.jqp-empty{text-align:center;padding:28px 10px;color:#718078;font-size:13px}.jqp-pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:16px}.jqp-pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:32px;padding:0 9px;border-radius:9px;border:1px solid #dce5df;color:#385448;text-decoration:none;font-size:11px}.jqp-pagination a.is-current{background:#087f5b;color:#fff;border-color:#087f5b}.jqp-flash{background:#dcfce7;color:#166534;padding:10px 12px;border-radius:12px;margin-bottom:12px;font-size:12px}.jqp-error{background:#fee2e2;color:#991b1b}.jqp-foot{text-align:center;color:#84938a;font-size:10px;padding:8px}.jqp-login{max-width:500px;margin:24px auto;padding:24px;border-radius:18px;background:#f1faf5}.jqp-login a{display:inline-block;background:#087f5b;color:#fff;padding:10px 14px;border-radius:10px;text-decoration:none}.jqp-modal{position:fixed;inset:0;z-index:999999;background:#061a12d9;display:grid;place-items:center;padding:14px;box-sizing:border-box}.jqp-modal-box{position:relative;max-width:390px;width:100%;background:#fff;border-radius:24px;padding:24px;text-align:center;box-sizing:border-box;box-shadow:0 20px 80px #0005}.jqp-modal-box h2{font-size:30px;margin:8px 0 16px;color:#087f5b}.jqp-modal-box img{display:block;width:min(100%,300px);height:auto;margin:0 auto;border:1px solid #edf0ed;border-radius:12px}.jqp-modal-box p{font-size:12px;color:#65746b}.jqp-modal-close{position:absolute;z-index:5;right:12px;top:12px;pointer-events:auto;touch-action:manipulation;cursor:pointer;background:#edf5ef;border:0;border-radius:9px;padding:8px;color:#234334}@media(max-width:480px){.jqp-app{padding:10px 9px 24px}.jqp-top{padding:16px;border-radius:18px}.jqp-top h1{font-size:21px}.jqp-card{padding:14px;border-radius:17px}.jqp-stat{padding:12px}.jqp-stat strong{font-size:16px}}@media(prefers-color-scheme:dark){body:has(.jqp-app){background:#0d1511}.jqp-app{color:#e5eee8}.jqp-card{background:#151f19;border-color:#29372e}.jqp-section-title h2,.jqp-history h2{color:#eef8f1}.jqp-section-title p,.jqp-history-head p,.jqp-hint{color:#a4b5aa}.jqp-create input,.jqp-create select{background:#0f1813;border-color:#34473a;color:#f2fff6}.jqp-table th{background:#1c2a21;color:#b7c8bc}.jqp-table td{border-color:#29372e}.jqp-count{background:#1c2a21;color:#b7c8bc}.jqp-pagination a{border-color:#34473a;color:#d6e9dc}.jqp-empty{color:#a4b5aa}}@media print{body *{visibility:hidden!important}.jqp-modal,.jqp-modal *{visibility:visible!important}.jqp-modal{position:absolute;background:#fff;inset:0}.jqp-modal-box{box-shadow:none}}


/* v1.0.7: dashboard is an app-like homepage; remove surrounding theme chrome and excess spacing. */
body:has(.jqp-app) { margin:0 !important; padding-top:0 !important; }
html:has(.jqp-app) { margin-top:0 !important; scroll-padding-top:0 !important; }
body:has(.jqp-app) #wpadminbar { display:none !important; }
body:has(.jqp-app) .wp-site-blocks,
body:has(.jqp-app) #page,
body:has(.jqp-app) #content,
body:has(.jqp-app) #primary,
body:has(.jqp-app) .site-content,
body:has(.jqp-app) .content-area,
body:has(.jqp-app) .site-main,
body:has(.jqp-app) main,
body:has(.jqp-app) article,
body:has(.jqp-app) .entry-content,
body:has(.jqp-app) .wp-block-post-content { margin-top:0 !important; padding-top:0 !important; }
body:has(.jqp-app) .entry-header,
body:has(.jqp-app) .entry-title,
body:has(.jqp-app) .page-header,
body:has(.jqp-app) .wp-block-post-title { display:none !important; }
/* Hide only the WordPress theme header/footer, not the QRIS-KU app header. */
body:has(.jqp-app) header.site-header,
body:has(.jqp-app) #masthead,
body:has(.jqp-app) .wp-site-blocks > header:not(.jqp-top),
body:has(.jqp-app) footer.site-footer,
body:has(.jqp-app) #colophon,
body:has(.jqp-app) .wp-site-blocks > footer,
body:has(.jqp-app) .site-info { display:none !important; }
body:has(.jqp-app) .jqp-app { margin:0 auto !important; padding-top:8px !important; }
body:has(.jqp-app) .jqp-foot { padding-bottom:8px !important; }
@media(max-width:782px) {
  body:has(.jqp-app) { padding-top:0 !important; }
  body:has(.jqp-app) .jqp-app { padding:8px 9px 16px !important; }
}


/* v1.0.8: prevent tiny bounce/overflow when dashboard content fits; keep natural page scroll when records grow. */
html:has(.jqp-app) { min-height:100%; overflow-x:hidden !important; overscroll-behavior-y:none; }
body:has(.jqp-app) { min-height:100vh; min-height:100dvh; height:auto !important; overflow-x:hidden !important; overflow-y:auto !important; overscroll-behavior-y:none; }
body:has(.jqp-app) #page,
body:has(.jqp-app) .wp-site-blocks,
body:has(.jqp-app) main,
body:has(.jqp-app) #content,
body:has(.jqp-app) .site-content,
body:has(.jqp-app) .site-main,
body:has(.jqp-app) .entry-content { min-height:0 !important; height:auto !important; }
body:has(.jqp-app) .jqp-app { box-sizing:border-box; width:100%; max-width:100%; padding-bottom:8px !important; }
body:has(.jqp-app) .jqp-foot { margin:0 !important; padding:8px 0 0 !important; }
body:has(.jqp-app) .jqp-table-wrap { max-width:100%; overscroll-behavior-x:contain; }

/* v1.0.9: Bootstrap-style chevron for payment selector */
.jqp-create select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2716%27 height=%2716%27 fill=%27none%27 viewBox=%270 0 16 16%27%3E%3Cpath d=%27m3 6 5 5 5-5%27 stroke=%27%23198754%27 stroke-width=%271.8%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:42px}
.jqp-create #jqp-note-wrap[hidden]{display:none!important}
.jqp-create #jqp-note-wrap{margin-top:2px}



/* v1.1.1: recent transactions on dashboard; full history has its own page. */
.jqp-top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.jqp-all-history{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.jqp-dashboard-page .jqp-table-wrap{height:auto;max-height:none;overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.jqp-history-page .jqp-table-wrap{height:auto;max-height:none;overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.jqp-history-page .jqp-table{min-width:590px}
@media(max-width:480px){.jqp-top-actions{gap:6px}.jqp-settings{padding:8px 9px}.jqp-history-page .jqp-history-head{align-items:flex-start}}

/* v1.1.2: dashboard focuses on the latest payment confirmation, while full transaction tables stay on the history page. */
.jqp-reload{display:inline-flex;align-items:center;justify-content:center;min-width:34px;min-height:34px;padding:7px;box-sizing:border-box}
.jqp-reload svg{display:block}
.jqp-pending-card{margin-top:14px}
.jqp-pending-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.jqp-pending-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:13px;background:#e2f7ed;color:#087f5b}
.jqp-pending-head h2{margin:0;font-size:17px;color:#15241d}
.jqp-pending-head p{margin:4px 0 0;font-size:12px;color:#718078}
.jqp-pending-amount{display:grid;gap:4px;padding:14px;border-radius:14px;background:#f4faf6;border:1px solid #e0eee5}
.jqp-pending-amount span{font-size:12px;color:#537064}
.jqp-pending-amount strong{font-size:25px;line-height:1.25;color:#087f5b}
.jqp-pending-amount small{font-size:11px;color:#718078}
.jqp-pending-form{margin-top:12px}
.jqp-confirm-primary{display:block;width:100%;padding:13px 16px;border:0;border-radius:12px;background:#087f5b;color:#fff;font-size:14px;font-weight:800;cursor:pointer;touch-action:manipulation}
.jqp-pending-empty{display:grid;gap:5px;padding:15px;border-radius:14px;background:#f4faf6;border:1px dashed #cbded1;text-align:center}
.jqp-pending-empty strong{font-size:13px;color:#176b4e}
.jqp-pending-empty span{font-size:11px;color:#718078}
@media(prefers-color-scheme:dark){.jqp-pending-head h2{color:#eef8f1}.jqp-pending-head p{color:#a4b5aa}.jqp-pending-amount,.jqp-pending-empty{background:#101a14;border-color:#34473a}.jqp-pending-amount span,.jqp-pending-amount small,.jqp-pending-empty span{color:#a4b5aa}.jqp-pending-empty strong{color:#9ce5c3}}


/* v1.1.3: compact pending-confirmation card on mobile so the action sits higher. */
@media(max-width:480px){
  .jqp-app{padding:8px 6px 20px}
  .jqp-top{margin-bottom:12px}
  .jqp-card{padding:12px;margin-bottom:12px}
  .jqp-pending-card{padding:12px;margin-top:12px}
  .jqp-pending-head{gap:9px;margin-bottom:10px}
  .jqp-pending-icon{flex-basis:38px;width:38px;height:38px;border-radius:11px}
  .jqp-pending-head h2{font-size:16px;line-height:1.25}
  .jqp-pending-head p{font-size:11px;line-height:1.4;margin-top:3px}
  .jqp-pending-amount{padding:11px;gap:3px}
  .jqp-pending-amount strong{font-size:23px}
  .jqp-pending-form{margin-top:9px}
  .jqp-confirm-primary{padding:12px 12px;font-size:13px;line-height:1.35}
  .jqp-pending-empty{padding:12px;gap:4px}
}


/* v1.1.4: use more of the phone viewport and center the pending payment amount. */
@media(max-width:480px){
  body:has(.jqp-app) .jqp-app{position:relative;left:50%;transform:translateX(-50%);width:calc(100vw - 24px)!important;max-width:none!important;box-sizing:border-box;margin-top:-28px!important;padding:6px 0 16px!important}
  .jqp-pending-amount{text-align:center;justify-items:center;padding:10px 12px;gap:3px}
  .jqp-pending-amount span,.jqp-pending-amount strong,.jqp-pending-amount small{display:block;text-align:center;width:100%}
  .jqp-pending-amount strong{font-size:25px;line-height:1.2}
}

/* v1.1.5: responsive transaction filters and period summaries on history page. */
.jqp-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0;padding:14px;border:1px solid var(--jqp-border,#2a3a31);border-radius:14px;background:rgba(120,150,130,.045)}
.jqp-filters label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:12px;font-weight:700;color:var(--jqp-text,#dfe9e2)}
.jqp-filters select,.jqp-filters input[type=date]{width:100%;min-width:0;box-sizing:border-box;padding:10px 11px;border:1px solid #34473b;border-radius:10px;background:#101a14;color:#eef8f1;font:inherit;font-size:13px;min-height:42px}
.jqp-filters .jqp-custom-date{display:none}
.jqp-filter-submit{align-self:end;min-height:42px;padding:10px 12px;font-size:13px}
.jqp-filter-reset{display:flex;align-items:center;justify-content:center;align-self:end;min-height:42px;border-radius:10px;border:1px solid #34473b;color:#b7c8bd;text-decoration:none;font-size:13px;font-weight:700}
.jqp-period-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 16px}
.jqp-period-summary>div{display:flex;flex-direction:column;gap:5px;min-width:0;padding:13px;border-radius:12px;background:#eaf7ef;color:#456557}
.jqp-period-summary span{font-size:11px;line-height:1.35}
.jqp-period-summary strong{font-size:18px;line-height:1.25;color:#087f5b;overflow-wrap:anywhere}
@media(max-width:480px){.jqp-filters{gap:8px;padding:10px;margin:12px 0}.jqp-filters label{font-size:11px}.jqp-filters select,.jqp-filters input[type=date]{padding:9px 7px;font-size:12px}.jqp-period-summary>div{padding:10px}.jqp-period-summary span{font-size:10px}.jqp-period-summary strong{font-size:16px}}
@media(prefers-color-scheme:dark){.jqp-period-summary>div{background:#eaf7ef}}


/* v1.1.6: history page uses natural vertical scrolling; keep only the green app header sticky. */
html:has(.jqp-history-page) { height:auto !important; min-height:100% !important; overflow-x:hidden !important; overflow-y:auto !important; overscroll-behavior-y:auto !important; }
body:has(.jqp-history-page) { height:auto !important; min-height:100vh !important; min-height:100dvh !important; max-height:none !important; overflow-x:hidden !important; overflow-y:auto !important; overscroll-behavior-y:auto !important; touch-action:pan-y !important; }
body:has(.jqp-history-page) #page,
body:has(.jqp-history-page) .wp-site-blocks,
body:has(.jqp-history-page) main,
body:has(.jqp-history-page) #content,
body:has(.jqp-history-page) .site-content,
body:has(.jqp-history-page) .site-main,
body:has(.jqp-history-page) .entry-content,
body:has(.jqp-history-page) .jqp-app { height:auto !important; min-height:0 !important; max-height:none !important; overflow:visible !important; }
body:has(.jqp-history-page) .jqp-app { padding-bottom:calc(28px + env(safe-area-inset-bottom, 0px)) !important; touch-action:pan-y !important; }
body:has(.jqp-history-page) .jqp-top { position:sticky !important; top:0 !important; z-index:1000 !important; margin-top:0 !important; box-shadow:0 6px 18px rgba(0,0,0,.12); }
body:has(.jqp-history-page) .jqp-table-wrap { overflow-x:auto !important; overflow-y:visible !important; -webkit-overflow-scrolling:touch; touch-action:pan-x pan-y !important; }
body:has(.jqp-history-page) .jqp-foot { padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px)) !important; }


/* v1.1.8 audit fix: the legacy mobile centering rule transforms .jqp-app.
   Disable only that transform on history so its sticky header can track page scroll,
   without changing the wrapper width or horizontal alignment. */
@media(max-width:820px){
  body:has(.jqp-history-page) .jqp-app{
    position:static !important;
    left:auto !important;
    transform:none !important;
    width:auto !important;
    max-width:920px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }
}
body:has(.jqp-history-page) .jqp-top{
  position:-webkit-sticky !important;
  position:sticky !important;
  top:0 !important;
  z-index:1000 !important;
}

/* v1.1.9: dedicated, theme-independent sign-in screen and admin logout action. */
body:has(.jqp-login){margin:0!important;min-height:100vh;min-height:100dvh;background:#07130f!important;color:#edf8f1;overflow-x:hidden!important}
html:has(.jqp-login){margin-top:0!important;overflow-x:hidden!important}
body:has(.jqp-login) #wpadminbar{display:none!important}
body:has(.jqp-login) .wp-site-blocks,
body:has(.jqp-login) #page,
body:has(.jqp-login) #content,
body:has(.jqp-login) #primary,
body:has(.jqp-login) .site-content,
body:has(.jqp-login) .content-area,
body:has(.jqp-login) .site-main,
body:has(.jqp-login) main,
body:has(.jqp-login) article,
body:has(.jqp-login) .entry-content,
body:has(.jqp-login) .wp-block-post-content{margin:0!important;padding:0!important;max-width:none!important;width:100%!important;min-height:0!important}
body:has(.jqp-login) header.site-header,
body:has(.jqp-login) #masthead,
body:has(.jqp-login) .wp-site-blocks>header,
body:has(.jqp-login) footer.site-footer,
body:has(.jqp-login) #colophon,
body:has(.jqp-login) .wp-site-blocks>footer,
body:has(.jqp-login) .site-info,
body:has(.jqp-login) .entry-header,
body:has(.jqp-login) .entry-title,
body:has(.jqp-login) .page-header,
body:has(.jqp-login) .wp-block-post-title{display:none!important}
body:has(.jqp-login) .jqp-login{box-sizing:border-box;position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;width:100%;max-width:560px;min-height:100vh;min-height:100dvh;margin:0 auto!important;padding:clamp(24px,7vw,42px) clamp(20px,6vw,34px)!important;border:0!important;border-radius:0!important;background:radial-gradient(ellipse at 90% 0%,rgba(16,185,129,.22),transparent 42%),linear-gradient(160deg,#071b14 0%,#0b2b20 55%,#06130e 100%)!important;color:#f0fff6!important;font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:none!important}
.jqp-login-brand{display:flex;align-items:center;gap:12px;margin-bottom:26px}
.jqp-login-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:linear-gradient(145deg,#20d99a,#087f5b);color:#fff;font-size:25px;font-weight:900;box-shadow:0 8px 24px #00a87835}
.jqp-login-kicker{font-size:11px;letter-spacing:.2em;font-weight:800;color:#9de8c5}
body:has(.jqp-login) .jqp-login>h1{margin:0 0 8px!important;color:#f3fff7!important;font-size:clamp(36px,9vw,48px)!important;line-height:1.08!important;letter-spacing:-.045em;font-weight:800}
.jqp-login-lead{max-width:390px;margin:0 0 28px!important;color:#b9d7c7;font-size:16px;line-height:1.6}
.jqp-login-panel{padding:clamp(22px,6vw,30px);border:1px solid #ffffff1c;border-radius:24px;background:linear-gradient(145deg,#12392bdf,#0b251cdb);box-shadow:0 20px 55px #0003;backdrop-filter:blur(12px)}
.jqp-login-lock{display:grid;place-items:center;width:42px;height:42px;margin-bottom:18px;border-radius:13px;background:#1b6247;color:#c7f9dc;font-size:27px;font-weight:700}
.jqp-login-panel h2{margin:0 0 8px!important;color:#f4fff8!important;font-size:22px!important;line-height:1.25;font-weight:750}
.jqp-login-panel p{margin:0 0 22px!important;color:#b8d3c4;font-size:14px;line-height:1.65}
.jqp-login-button{display:flex!important;align-items:center;justify-content:space-between;gap:12px;width:100%;box-sizing:border-box;padding:15px 17px!important;border:1px solid #38d9a0;border-radius:14px;background:linear-gradient(100deg,#0e9b6c,#087f5b);color:#fff!important;text-decoration:none!important;font-size:15px;font-weight:800;box-shadow:0 9px 22px #007a5238;transition:filter .15s ease}
.jqp-login-button:hover,.jqp-login-button:focus{filter:brightness(1.08);color:#fff!important}
.jqp-login-button span{font-size:21px;line-height:1}
.jqp-login-note{margin:22px 0 0!important;color:#729c87;font-size:11px;text-align:center;letter-spacing:.02em}
.jqp-logout{border-color:#ffffff80!important;background:#ffffff12}
@media(max-width:480px){body:has(.jqp-login) .jqp-login{max-width:none;justify-content:center;padding:28px 22px calc(28px + env(safe-area-inset-bottom,0px))!important}.jqp-login-brand{margin-bottom:22px}.jqp-login-lead{margin-bottom:24px!important}.jqp-login-panel{border-radius:21px}}

/* v1.2.0 audit: make the real QRIS-KU app header persist on the history screen.
   The element is the <header.jqp-top> emitted by the shortcode, not the theme header. */
body:has(.jqp-history-page) .jqp-app{
  position:relative!important;left:auto!important;transform:none!important;
  width:calc(100% - 28px)!important;max-width:920px!important;
  margin-left:auto!important;margin-right:auto!important;box-sizing:border-box!important;
}
body:has(.jqp-history-page) .jqp-top{
  position:fixed!important;top:8px!important;left: max(12px, calc((100vw - 920px)/2 + 14px))!important;
  right:max(12px, calc((100vw - 920px)/2 + 14px))!important;width:auto!important;
  box-sizing:border-box!important;z-index:9999!important;margin:0 0 16px!important;
  box-shadow:0 8px 24px rgba(0,0,0,.24)!important;
}
body:has(.jqp-history-page) .jqp-sticky-spacer{display:block!important;width:100%;pointer-events:none}
body:has(.jqp-history-page) .jqp-table-wrap{max-width:100%;overflow-x:auto!important;overflow-y:visible!important;overscroll-behavior-x:contain!important}
body:has(.jqp-app) hr,body:has(.jqp-login) hr{display:none!important}
body:has(.jqp-app) .wp-block-separator{display:none!important}
@media(max-width:480px){
  body:has(.jqp-history-page) .jqp-app{width:calc(100% - 24px)!important;padding:6px 0 calc(24px + env(safe-area-inset-bottom,0px))!important}
  body:has(.jqp-history-page) .jqp-top{left:12px!important;right:12px!important;top:8px!important;padding:16px!important;border-radius:18px!important;gap:8px!important}
  body:has(.jqp-history-page) .jqp-top h1{font-size:21px!important}
  body:has(.jqp-history-page) .jqp-top-actions{gap:6px!important}
  body:has(.jqp-history-page) .jqp-settings{padding:8px 9px!important}
}

/* Custom WordPress-authenticated QRIS-KU sign-in page. */
.jqp-auth-form{display:flex;flex-direction:column;gap:9px;margin-top:18px}
.jqp-auth-form>label:not(.jqp-remember){color:#c6e4d4;font-size:13px;font-weight:700;margin-top:7px}
.jqp-auth-form>input:not([type=hidden]){width:100%;box-sizing:border-box;min-height:49px;padding:12px 14px;border:1px solid #315b47;border-radius:12px;background:#071a12;color:#f1fff7;font:inherit;font-size:16px;outline:none}
.jqp-auth-form>input:focus{border-color:#35d7a0;box-shadow:0 0 0 3px #35d7a025}
.jqp-auth-form .jqp-login-button{margin-top:8px;cursor:pointer;font-family:inherit}
.jqp-remember{display:flex;align-items:center;gap:9px;color:#b9d7c7;font-size:13px;margin:7px 0}
.jqp-remember input{width:18px;height:18px;accent-color:#0e9b6c}
.jqp-back-link{color:#a5ddc1;text-align:center;text-decoration:none;font-size:13px;padding:8px}
.jqp-auth-error{margin:0;padding:11px 12px;border:1px solid #a83b3b;border-radius:11px;background:#3b1717;color:#ffd8d8;font-size:13px}
body:has(.jqp-login) .wp-block-separator,body:has(.jqp-login) hr{display:none!important}
body:has(.jqp-login) .jqp-login .jqp-back-link{display:block!important;background:transparent!important;border:0!important;padding:8px!important;color:#a5ddc1!important;box-shadow:none!important}


/* v1.2.1: align history content with the fixed app header; center public and login screens. */
@media(max-width:820px){
  body:has(.jqp-history-page) .jqp-app{
    width:100vw!important;max-width:none!important;
    margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;
    padding:6px 12px calc(24px + env(safe-area-inset-bottom,0px))!important;
    box-sizing:border-box!important;
  }
  body:has(.jqp-history-page) .jqp-top{
    left:12px!important;right:12px!important;width:auto!important;
  }
  body:has(.jqp-history-page) .jqp-history-card,
  body:has(.jqp-history-page) .jqp-card,
  body:has(.jqp-history-page) .jqp-filters,
  body:has(.jqp-history-page) .jqp-period-summary,
  body:has(.jqp-history-page) .jqp-table-wrap{
    max-width:100%!important;min-width:0!important;box-sizing:border-box!important;
  }
}

/* Reset theme spacing only around QRIS-KU's own front-end screens. */
body:has(.jqp-dashboard-page),
body:has(.jqp-login){
  margin:0!important;min-height:100dvh!important;background:#06130e!important;
}
body:has(.jqp-dashboard-page) #page,
body:has(.jqp-dashboard-page) .wp-site-blocks,
body:has(.jqp-dashboard-page) main,
body:has(.jqp-dashboard-page) #content,
body:has(.jqp-dashboard-page) .site-content,
body:has(.jqp-dashboard-page) .site-main,
body:has(.jqp-dashboard-page) .entry-content,
body:has(.jqp-dashboard-page) .wp-block-post-content,
body:has(.jqp-login) #page,
body:has(.jqp-login) .wp-site-blocks,
body:has(.jqp-login) main,
body:has(.jqp-login) #content,
body:has(.jqp-login) .site-content,
body:has(.jqp-login) .site-main,
body:has(.jqp-login) .entry-content,
body:has(.jqp-login) .wp-block-post-content{
  margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important;
  border:0!important;box-shadow:none!important;
}
body:has(.jqp-dashboard-page) .jqp-app{
  min-height:100dvh!important;box-sizing:border-box!important;
  display:flex!important;flex-direction:column!important;justify-content:center!important;
  padding-top:calc(18px + env(safe-area-inset-top,0px))!important;
  padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))!important;
  background:radial-gradient(ellipse at 85% 0%,rgba(16,185,129,.20),transparent 42%),linear-gradient(160deg,#071b14 0%,#0b2b20 55%,#06130e 100%)!important;
}
body:has(.jqp-dashboard-page) .jqp-top{flex-shrink:0}
body:has(.jqp-login) .jqp-login{
  min-height:100dvh!important;height:auto!important;justify-content:center!important;
  margin-top:0!important;margin-bottom:0!important;
}
@media(max-width:480px){
  body:has(.jqp-dashboard-page) .jqp-app{
    padding-top:calc(18px + env(safe-area-inset-top,0px))!important;
    padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))!important;
  }
}


/* v1.2.4 hotfix: preserve v1.2.1 visual baseline; adjust only history breathing room and wrapper background continuity. */
body:has(.jqp-history-page) .jqp-top{
  transition:none!important;animation:none!important;will-change:auto!important;
}
body:has(.jqp-history-page) .jqp-sticky-spacer{
  display:block!important;width:100%!important;min-height:1px!important;
  margin:0 0 18px!important;padding:0!important;border:0!important;
  flex:none!important;box-sizing:border-box!important;pointer-events:none!important;
}
/* Keep the approved v1.2.1 dashboard/login layout; paint theme wrappers with the same background to remove black bands. */
html:has(body .jqp-dashboard-page),html:has(body .jqp-login),
body:has(.jqp-dashboard-page),body:has(.jqp-login),
body:has(.jqp-dashboard-page) #page,body:has(.jqp-dashboard-page) .wp-site-blocks,
body:has(.jqp-dashboard-page) main,body:has(.jqp-dashboard-page) #content,
body:has(.jqp-dashboard-page) .site-content,body:has(.jqp-dashboard-page) .site-main,
body:has(.jqp-login) #page,body:has(.jqp-login) .wp-site-blocks,
body:has(.jqp-login) main,body:has(.jqp-login) #content,
body:has(.jqp-login) .site-content,body:has(.jqp-login) .site-main{
  background-color:#06130e!important;
}
