.gruvpay-wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 32px 20px;
    font-family: inherit;
    color: #0f172a;
}
.gruvpay-panel {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 22px;
    box-shadow: 0 12px 30px rgba(17, 41, 111, 0.06);
}
.gruvpay-login {
    max-width: 520px;
    margin: 40px auto;
    padding: 34px;
}
.gruvpay-login h1,
.gruvpay-dashboard h1 {
    margin: 0 0 8px;
    color: #11296f;
    font-size: clamp(28px, 4vw, 40px);
    line-height: 1.1;
}
.gruvpay-subtitle {
    margin: 0 0 24px;
    color: #475569;
    font-size: 16px;
}
.gruvpay-brand-bar {
    height: 6px;
    border-radius: 999px;
    background: linear-gradient(90deg, #1383a0 0%, #2aa6da 100%);
    margin-bottom: 24px;
}
.gruvpay-login .login-username label,
.gruvpay-login .login-password label {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
    color: #0f172a;
}
.gruvpay-login input[type="text"],
.gruvpay-login input[type="password"],
.gruvpay-login input[type="email"] {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #fff;
}
.gruvpay-login .login-submit input,
.gruvpay-button,
.gruvpay-dashboard a.gruvpay-button {
    background: #11296f;
    color: #fff;
    border: none;
    border-radius: 12px;
    padding: 12px 18px;
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
}
.gruvpay-login .login-submit input:hover,
.gruvpay-button:hover {
    opacity: 0.94;
}
.gruvpay-login .login-remember {
    margin: 14px 0;
}
.gruvpay-login .login-submit {
    margin: 14px 0 0;
}
.gruvpay-links {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 18px;
}
.gruvpay-links a,
.gruvpay-logout {
    color: #1383a0;
    text-decoration: none;
    font-weight: 700;
}
.gruvpay-dashboard {
    padding: 34px;
}
.gruvpay-header-row {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    flex-wrap: wrap;
}
.gruvpay-company {
    margin: 0;
    color: #1383a0;
    font-size: 18px;
    font-weight: 700;
}
.gruvpay-meta {
    margin: 12px 0 0;
    color: #64748b;
    font-size: 14px;
}
.gruvpay-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
    margin: 28px 0;
}
.gruvpay-card {
    padding: 22px;
    border-radius: 20px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbfd 100%);
    border: 1px solid #dbe3ea;
}
.gruvpay-card__label {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 8px;
}
.gruvpay-card__value {
    font-size: 34px;
    line-height: 1.05;
    font-weight: 800;
    color: #11296f;
}
.gruvpay-note {
    margin: 0 0 22px;
    padding: 14px 16px;
    border-radius: 14px;
    background: #eff8fc;
    color: #25516c;
    border: 1px solid #d0ecf7;
}
.gruvpay-table-wrap {
    overflow: auto;
    border: 1px solid #dbe3ea;
    border-radius: 18px;
}
.gruvpay-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}
.gruvpay-table th {
    background: #f8fafc;
    color: #334155;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.gruvpay-table th,
.gruvpay-table td {
    padding: 14px 16px;
    border-bottom: 1px solid #e2e8f0;
    text-align: left;
    white-space: nowrap;
}
.gruvpay-table tr:last-child td {
    border-bottom: none;
}
.gruvpay-empty {
    padding: 18px;
    border: 1px dashed #cbd5e1;
    border-radius: 16px;
    background: #fff;
}
.gruvpay-pagination {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 18px;
}
.gruvpay-page-link {
    display: inline-flex;
    min-width: 40px;
    justify-content: center;
    align-items: center;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #dbe3ea;
    background: #fff;
    color: #11296f;
    text-decoration: none;
    font-weight: 600;
}
.gruvpay-page-link.is-active {
    background: #11296f;
    color: #fff;
    border-color: #11296f;
}
.gruvpay-admin-card {
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 16px;
    padding: 22px;
    margin: 20px 0;
}
.gruvpay-admin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}
.gruvpay-status {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    background: #ecfdf5;
    color: #166534;
    font-weight: 600;
}
.gruvpay-status.is-inactive {
    background: #fef2f2;
    color: #991b1b;
}
@media (max-width: 640px) {
    .gruvpay-wrap {
        padding: 20px 14px;
    }
    .gruvpay-dashboard,
    .gruvpay-login {
        padding: 22px;
    }
    .gruvpay-card__value {
        font-size: 28px;
    }
}


/* ── Module 2: Account status badge ── */
.gruvpay-status-row{margin:6px 0 4px;}
.gruvpay-account-status{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-weight:700;font-size:13px;}
.gruvpay-account-status.is-active{background:#dcfce7;color:#166534;}
.gruvpay-account-status.is-inactive{background:#fef2f2;color:#991b1b;}

/* ── Module 2: Redeem row ── */
.gruvpay-redeem-row{margin:0 0 28px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.gruvpay-redeem-hint{margin:0;color:#64748b;font-size:13px;}

/* ── Module 2: Buttons ── */
.gruvpay-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 22px;border-radius:12px;font-weight:700;font-size:15px;border:none;cursor:pointer;transition:opacity .15s;}
.gruvpay-btn--primary{background:#11296F;color:#fff;}
.gruvpay-btn--primary:hover{opacity:.9;}
.gruvpay-btn--secondary{background:#f1f5f9;color:#334155;border:1px solid #cbd5e1;}
.gruvpay-btn--secondary:hover{background:#e2e8f0;}
.gruvpay-btn--disabled{background:#e2e8f0;color:#94a3b8;cursor:not-allowed;}

/* ── Module 2: Tooltip ── */
.gruvpay-tooltip-wrap{position:relative;display:inline-flex;align-items:center;}
.gruvpay-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:0;background:#1e293b;color:#fff;font-size:13px;border-radius:10px;padding:10px 14px;min-width:260px;max-width:320px;line-height:1.5;z-index:10;pointer-events:none;}
.gruvpay-tooltip::after{content:'';position:absolute;top:100%;left:20px;border:6px solid transparent;border-top-color:#1e293b;}
.gruvpay-tooltip-wrap:hover .gruvpay-tooltip,
.gruvpay-btn--disabled:focus + .gruvpay-tooltip{display:block;}

/* ── Module 2: Overlay & modal ── */
.gruvpay-overlay{position:fixed;inset:0;background:rgba(15,23,42,.6);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;}
.gruvpay-modal{background:#fff;border-radius:22px;padding:34px;max-width:480px;width:100%;box-shadow:0 24px 60px rgba(17,41,111,.18);position:relative;}
.gruvpay-modal h2{margin:0 0 6px;color:#11296F;font-size:clamp(22px,3vw,28px);}
.gruvpay-modal-available{margin:0 0 20px;color:#475569;font-size:15px;}
.gruvpay-modal-label{display:block;font-weight:700;color:#0f172a;margin-bottom:6px;}
.gruvpay-select,.gruvpay-textarea{width:100%;padding:11px 14px;border:1px solid #cbd5e1;border-radius:12px;font-size:15px;color:#0f172a;background:#fff;box-sizing:border-box;}
.gruvpay-select:focus,.gruvpay-textarea:focus{outline:none;border-color:#1383A0;box-shadow:0 0 0 3px rgba(19,131,160,.15);}
.gruvpay-modal-error{margin-top:14px;padding:12px 16px;background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:10px;font-size:14px;}
.gruvpay-modal-success{margin-top:14px;padding:12px 16px;background:#dcfce7;color:#166534;border:1px solid #bbf7d0;border-radius:10px;font-size:14px;}
.gruvpay-modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap;}

/* ── Module 2: Ledger credit/debit colours ── */
.gruvpay-credit{color:#166534;font-weight:700;}
.gruvpay-debit{color:#991b1b;font-weight:700;}

@media(max-width:640px){
    .gruvpay-modal{padding:24px;}
    .gruvpay-modal-actions{flex-direction:column-reverse;}
    .gruvpay-btn{width:100%;}
}


.gruvpay-login h1,
.gruvpay-dashboard h1 {
    font-size: 32px !important;
}
.gruvpay-dashboard h2,
.gruvpay-modal h2{
    font-size: 28px !important;
}
.gruvpay-login p.gruvpay-subtitle {
    line-height: 1.4em;
    margin-bottom: 25px;
}
.gruvpay-login form#loginform .login-username {
    margin-bottom: 16px;
}
.gruvpay-login form#loginform input.input,
.gruvpay-modal .gruvpay-select {
    background: #F4F7FB;
    border: 1px solid #11728B;
    border-radius: 16px;
    color: #11296F;
    padding: 12px;
    width: 100%;
    font-size: 16px;
    line-height: 1.5;
}
.gruvpay-modal .gruvpay-select {
    padding-right: 40px;
    appearance: none;
    --webkirt-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-chevron-down' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: calc(100% - 20px) 50%;
    background-size: 15px;
}
.gruvpay-modal .gruvpay-textarea{
    background: #F4F7FB;
    border: 1px solid #11728B;
    border-radius: 16px;
    color: #11296F;
    padding: 12px;
    width: 100%;
    font-size: 16px;
    line-height: 1.5;
}
.gruvpay-login form#loginform  label,
.gruvpay-modal .gruvpay-modal-label,
.gruvpay-login #gruv-login-form .gruv-field label{
    font-size: 16px;
    font-weight: 400;
}
.gruvpay-panel.gruvpay-login,
.gruvpay-panel.gruvpay-dashboard{
    background: unset;
    border: 0;
    background-image: linear-gradient(100deg, var(--e-global-color-c347fb9) 0%, var(--e-global-color-7bd2e13) 100%);
    margin-top: 0;
}
.gruvpay-panel.gruvpay-login .gruvpay-brand-bar,
.gruvpay-panel.gruvpay-dashboard .gruvpay-brand-bar,
.gruvpay-modal .gruvpay-brand-bar {
    display: none;
}
.gruvpay-links a:hover {
    color: var( --e-global-color-secondary ) !important;
}
p.gruvpay-note {
    display: none;
    margin-bottom: 28px !important;
}
.gruvpay-panel.gruvpay-dashboard .gruvpay-table-wrap{
    border: 0;
}
.gruvpay-panel.gruvpay-dashboard .gruvpay-table-wrap tr th,
.gruvpay-panel.gruvpay-dashboard .gruvpay-table-wrap tr td{
    border: 0;
}
.gruvpay-panel.gruvpay-dashboard .gruvpay-table-wrap table.gruvpay-table {
    margin-bottom: 0;
}
.gruvpay-panel.gruvpay-dashboard .gruvpay-header-row{
    flex-wrap: nowrap;
    grid-gap: 20px;
}
.gruvpay-panel.gruvpay-dashboard .gruvpay-header-row > div:nth-child(2){
    min-width: 62px;
}
@media (max-width:767px){
    .gruvpay-login h1, .gruvpay-dashboard h1{font-size: 24px !important;}
    .gruvpay-dashboard h2{font-size: 22px !important;}
}
button.gruvpay-btn.gruvpay-btn--disabled {
    opacity: 0.5;
}

/* ── Custom login form (replaces wp_login_form) ── */
.gruvpay-field-group{margin-bottom:18px;}
.gruvpay-label{display:block;font-weight:700;margin-bottom:6px;color:#0f172a;font-size:14px;}
.gruvpay-input{width:100%;padding:12px 14px;border:1.5px solid #cbd5e1;border-radius:12px;background:#fff;font-size:15px;color:#0f172a;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;}
.gruvpay-input:focus{outline:none;border-color:#1383A0;box-shadow:0 0 0 3px rgba(19,131,160,.15);}
.gruvpay-input::placeholder{color:#94a3b8;}
.gruvpay-password-wrap{position:relative;display:flex;align-items:center;}
.gruvpay-password-wrap .gruvpay-input{padding-right:44px;}
.gruvpay-toggle-pw{position:absolute;right:12px;background:none;border:none;cursor:pointer;color:#64748b;padding:4px;display:flex;align-items:center;}
.gruvpay-toggle-pw:hover{color:#1383A0;}
.gruvpay-remember-row{margin:14px 0 20px;font-size:14px;color:#475569;}
.gruvpay-remember-label{display:flex;align-items:center;gap:8px;cursor:pointer;}
.gruvpay-submit-btn{width:100%;padding:13px;background:#11296F;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;transition:opacity .15s;}
.gruvpay-submit-btn:hover{opacity:.9;}
.gruvpay-submit-btn:disabled{opacity:.6;cursor:not-allowed;}
.gruvpay-login-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:10px;padding:11px 14px;font-size:14px;margin-bottom:16px;}

/* ── Custom AJAX login form ─────────────────────────────────────────────────── */
#gruv-login-form{margin-top:4px;}
.gruv-field{margin-bottom:18px;}
.gruv-field label{display:block;font-weight:700;font-size:14px;color:#0f172a;margin-bottom:6px;}
.gruv-field input[type=email],
.gruv-field input[type=password],
.gruv-field input[type=text]{width:100%;padding:12px 14px;border:1px solid #11728B;border-radius:16px;background:#F4F7FB;font-size:16px;color:#11296F;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;}
/* .gruv-field input:focus{outline:none;border-color:#1383A0;} */
/* .gruv-field input::placeholder{color:#94a3b8;} */
.gruv-input-error{border-color:#f87171 !important;box-shadow:0 0 0 3px rgba(248,113,113,.15) !important;}
.gruv-field-error{display:block;color:#dc2626;font-size:13px;margin-top:5px;min-height:18px;}
.gruv-pw-wrap{position:relative;display:flex;align-items:center;}
.gruv-pw-wrap input{padding-right:44px;}
.gruv-pw-toggle{position:absolute;right:12px;background:none;border:none;cursor:pointer;color:#64748b;padding:4px;display:flex;align-items:center;line-height:1;}
.gruv-pw-toggle:hover{color:#1383A0;}
.gruv-remember-row{margin:14px 0 20px;}
.gruv-remember-label{display:flex;align-items:center;gap:8px;font-size:14px;color:#475569;cursor:pointer;}
.gruv-submit-btn{width:100%;padding:13px;background:#11296F;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;transition:opacity .15s;}
.gruv-submit-btn:hover{opacity:.9;}
.gruv-submit-btn:disabled{opacity:.6;cursor:not-allowed;}
.gruv-alert{border-radius:10px;padding:12px 16px;font-size:14px;margin-bottom:18px;}
.gruv-alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;}
.gruv-alert-success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0;}
.gruv-field-error:empty {
    display: none;
}
.gruvpay-login form#gruv-login-form .gruv-field button.gruv-pw-toggle {
    background-color: transparent;
    border: 0;
    padding: 0;
    color: #475569;
    right: 17px;
}
.gruv-field input[type=password]{
    padding-right: 40px;
}
p.gruvpay-company {
    font-size: 25px;
}

body .gruvpay-learn-more
{
	color: #11296f !important;
	font-size: 18px;
	font-weight: 500;
}

/* ── Record ID & Business Name columns ── */
/*
.gruvpay-record-id{color:#e8734a;font-weight:700;font-size:13px;}
.gruvpay-store-location{color:#e8734a;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:0.03em;}
.gruvpay-table th:nth-last-child(-n+2){color:#e8734a;}
*/
