/* Nagorik Sheba - Admin-only components (extracted; avoids user-panel/Bulma conflicts) */
:root{
  --admin-primary:#0e2a4e;
  --admin-accent:#1890ff;
  --primary-color:#0D9488;
  --primary-dark:#0F766E;
  --secondary-color:#0F172A;
  --bg-white:#ffffff;
  --border-color:#E2E8F0;
  --border-radius:12px;
  --text-primary:#0F172A;
  --text-secondary:#334155;
  --text-light:#64748B;
  --success-color:#10B981;
  --error-color:#EF4444;
  --warning-color:#F59E0B;
  --transition:all .2s ease;
}
.card-header{
    background: var(--bg-white);
    border-bottom: 1px solid var(--border-color);
    border-radius: var(--border-radius) var(--border-radius) 0 0;
    padding: 0.75rem 1rem;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--text-primary);
}
.card-header .badge{
    margin-left: 0.5rem;
}
.card-body{
    padding: 0.75rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
/* Card with header and footer */
.card-with-footer .card-footer{
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color);
}
/* ============ BUTTONS ============ */

.btn{
    display: inline-block;
    padding: 0.6rem 1.25rem;
    background: var(--primary-color);
    color: white;
    border: none;
    border-radius: var(--border-radius);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: var(--transition);
    white-space: nowrap;
}
.btn:hover{
    background: var(--primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.btn:focus,
.btn:focus-visible{
    outline: 2px solid white;
    outline-offset: 2px;
}
.btn-secondary{
    background: var(--secondary-color);
    color: white;
}
.btn-secondary:hover{
    background: #2a343b;
}
.btn-success{
    background: var(--success-color);
    color: white;
}
.btn-success:hover{
    background: #3d9915;
}
.btn-warning{
    background: var(--warning-color);
    color: #333333;
}
.btn-warning:hover{
    background: #d4970b;
}
.btn-error{
    background: var(--error-color);
    color: white;
}
.btn-error:hover{
    background: #d91e18;
}
.btn-outline{
    background: transparent;
    border: 2px solid var(--primary-color);
    color: var(--primary-color);
    padding: 0.5rem 1rem;
}
.btn-outline:hover{
    background: var(--primary-color);
    color: white;
}
.btn-disabled{
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}
.btn-primary{
    background: var(--primary-color);
    color: white;
}
.btn-primary:hover{
    background: var(--primary-dark);
}
.btn-link{
    background: transparent;
    border: none;
    color: var(--primary-color);
    padding: 0;
    font-size: inherit;
    cursor: pointer;
}
.btn-link:hover{
    color: var(--primary-dark);
}
/* ============ FORMS ============ */

.form-group{
    margin-bottom: 1.25rem;
}
.form-group label{
    display: block;
    margin-bottom: 0.375rem;
    font-weight: 500;
    font-size: 0.8125rem;
    color: var(--text-secondary);
}
.form-group label.required{
    color: var(--error-color);
    font-weight: 600;
}
.form-group small{
    color: var(--text-light);
    font-size: 0.75rem;
    margin-top: 0.25rem;
    display: block;
}
.notification.error{
    background: #fee2e2;
    border-color: #f87171;
    color: #dc2626;
}
.notification.error .icon{
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}
.alert.error{
    background: #fef2f2;
    border-color: #f87171;
    color: var(--error-color);
}
/* Narrow centered container for auth/test pages */
.panel-narrow{
    max-width: 480px;
    margin: 0 auto;
}
.btn-sm{
    padding: 0.35rem 0.9rem;
    font-size: 0.8125rem;
}
.btn{
        width: 100%;
    }
.form-group{
        margin-bottom: 1rem;
    }
.form-group label{
        font-size: 0.8125rem;
    }
.custom-alert.error{
    background: #fef2f2;
    border-color: #f87171;
    color: var(--error-color);
}
.btn{
        width: 100%;
    }
.form-group{
        margin-bottom: 1rem;
    }
.form-group label{
        font-size: 0.8125rem;
    }
.mt-4{ margin-top: 1.5rem; }
/* ============ CUSTOM UTILITIES ============ */

.btn-group{
    display: flex;
    gap: 0.5rem;
}
.text-center{ text-align: center; }
.btn{
        min-height: 44px;
        padding: 10px 16px;
    }
/* ——— Fix: global .btn{width:100%}
.btn{ width: auto; }
/* undo aggressive rule */
    /* Only primary form submit buttons become full-width */
    .card-body > form > .btn[type="submit"],
    .card-body > form .form-group + .btn,
    .panel-narrow .btn[type="submit"]{
        width: 100%;
        justify-content: center;
    }
/* Keep inline table / card actions auto-width */
    .data-table .btn, .table .btn, .svc-card .btn, .svc-foot .btn{
        width: auto;
        display: inline-flex;
        white-space: nowrap;
    }
/* Fix btn group wrapping */
    .btn-group, .svc-foot{ flex-wrap: wrap; gap: 8px; }
/* ——— Table responsive wrapper (add via HTML, also fallback via CSS) ——— */
.table-responsive, .card-body:has(> .data-table), .card-body:has(> .table){
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -12px;
    padding: 0 12px;
}
/* Card body fallback: scroll indicator */
.card-body{ position: relative; }
.card-body::after{
        content: '';
        position: absolute;
        top: 0; right: 0; bottom: 0;
        width: 24px;
        background: linear-gradient(to right, transparent, rgba(255,255,255,0.9));
        pointer-events: none;
        opacity: 0;
        transition: opacity 0.2s;
    }
.card-body.is-scrollable::after{ opacity: 1; }
.panel-narrow{ padding: 0 12px; }
.container.mt-4{ padding-left: 12px; padding-right: 12px; }
.page-layout, .container, .card, .card-body, .navbar, .footer{
        max-width: 100% !important;
        box-sizing: border-box;
        overflow-x: clip;
    }
/* Remove old scroll hint */
    .card-body::after{ display: none !important; }
.card-body{ overflow: visible !important; padding: 12px !important; }
/* Forms full width */
    .form-group .input, .form-group .select, .form-group .textarea{
        width: 100%;
    }
.btn[type="submit"]{ width: 100%; }
.card-header{ font-size: 14px; padding: 10px 12px; }
.card, .card-with-footer, .card-admin, .card-section, .box, .stat-card{
    border-radius: 12px !important;
  }
.auth-buttons .btn, .nav-actions .btn{ min-height: 40px; font-size: 13px; }
.hero-ctas .btn{ width: 100%; justify-content: center; }
.svc .btn{ width: 100%; }
/* Delivery file button full width on phone */
  .data-table td a.btn, .table td a.btn, td a[href*="download"]{
    width: 100% !important; justify-content: center; margin-top: 6px;
  }
.form-group{ margin-bottom: 12px !important; }

/* Utility spacing used by admin pages */
.mt-8 { margin-top: 2rem !important; }
.mb-4 { margin-bottom: 1rem !important; }
.text-light { color: #64748B; }

/* Bulma navbar safety on admin (avoid user-panel overrides) */
.navbar { background: var(--admin-primary, #0e2a4e); }
.navbar-brand, .navbar-item { color: #fff; }

/* Tables inside cards */
.card-body .table-container { margin-top: 10px; }
