/**
 * Sahaya Donation Pro - Public Stylesheet
 * Modern, premium, responsive design with CSS custom properties.
 */

/* ============================================================
   CSS Custom Properties (Design Tokens)
   ============================================================ */
:root {
	--sahaya-primary:       #6c47ff;
	--sahaya-primary-dark:  #4a2fd4;
	--sahaya-primary-light: #ede8ff;
	--sahaya-secondary:     #ff6b6b;
	--sahaya-success:       #22c55e;
	--sahaya-success-bg:    #f0fdf4;
	--sahaya-error:         #ef4444;
	--sahaya-error-bg:      #fef2f2;
	--sahaya-warning:       #f59e0b;
	--sahaya-bg:            #f8f9ff;
	--sahaya-surface:       #ffffff;
	--sahaya-border:        #e5e7f0;
	--sahaya-text:          #1a1a2e;
	--sahaya-text-muted:    #6b7280;
	--sahaya-text-light:    #9ca3af;
	--sahaya-radius-sm:     6px;
	--sahaya-radius:        10px;
	--sahaya-radius-lg:     16px;
	--sahaya-shadow:        0 4px 16px rgba(108, 71, 255, 0.08);
	--sahaya-shadow-hover:  0 8px 24px rgba(108, 71, 255, 0.18);
	--sahaya-transition:    0.22s cubic-bezier(0.4, 0, 0.2, 1);
	--sahaya-font:          'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* ============================================================
   Wrap & Base
   ============================================================ */
.sahaya-donation-wrap,
.sahaya-portal-wrap {
	font-family:      var(--sahaya-font);
	color:            var(--sahaya-text);
	max-width:        780px;
	margin:           0 auto;
	padding:          0 16px 48px;
}

/* ============================================================
   Form Header
   ============================================================ */
.sahaya-form-header {
	text-align:  center;
	padding:     40px 24px 32px;
	background:  linear-gradient(135deg, var(--sahaya-primary) 0%, var(--sahaya-secondary) 100%);
	border-radius: var(--sahaya-radius-lg) var(--sahaya-radius-lg) 0 0;
	color:       #fff;
}

.sahaya-trust-logo {
	max-height:    64px;
	margin-bottom: 16px;
	border-radius: var(--sahaya-radius-sm);
}

.sahaya-form-title {
	font-size:   28px;
	font-weight: 800;
	margin:      0 0 8px;
	color:       #fff;
}

.sahaya-form-subtitle {
	font-size:   15px;
	color:       rgba(255,255,255,0.85);
	margin:      0;
}

/* ============================================================
   Section
   ============================================================ */
.sahaya-section {
	background:    var(--sahaya-surface);
	border:        1px solid var(--sahaya-border);
	border-radius: var(--sahaya-radius);
	padding:       28px 28px 20px;
	margin-bottom: 20px;
	box-shadow:    var(--sahaya-shadow);
}

.sahaya-section-title {
	font-size:     17px;
	font-weight:   700;
	color:         var(--sahaya-text);
	margin:        0 0 20px;
	display:       flex;
	align-items:   center;
	gap:           10px;
}

.sahaya-step-badge {
	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	width:           28px;
	height:          28px;
	background:      linear-gradient(135deg, var(--sahaya-primary), var(--sahaya-secondary));
	color:           #fff;
	border-radius:   50%;
	font-size:       13px;
	font-weight:     700;
	flex-shrink:     0;
}

/* ============================================================
   Quick Amount Buttons
   ============================================================ */
.sahaya-quick-amounts {
	display:        flex;
	flex-wrap:      wrap;
	gap:            10px;
	margin-bottom:  20px;
}

.sahaya-quick-amount-btn {
	flex:          1 1 auto;
	min-width:     90px;
	padding:       10px 16px;
	background:    var(--sahaya-primary-light);
	color:         var(--sahaya-primary);
	border:        2px solid transparent;
	border-radius: var(--sahaya-radius-sm);
	font-size:     14px;
	font-weight:   700;
	cursor:        pointer;
	transition:    all var(--sahaya-transition);
	font-family:   var(--sahaya-font);
}

.sahaya-quick-amount-btn:hover,
.sahaya-quick-amount-btn.active {
	background:    var(--sahaya-primary);
	color:         #fff;
	border-color:  var(--sahaya-primary-dark);
	transform:     translateY(-2px);
	box-shadow:    var(--sahaya-shadow-hover);
}

/* ============================================================
   Form Elements
   ============================================================ */
.sahaya-form-group {
	margin-bottom: 18px;
}

.sahaya-form-row {
	display:        grid;
	grid-template-columns: 1fr 1fr;
	gap:            16px;
}

.sahaya-form-row-4 {
	grid-template-columns: 1fr 1fr 1fr 1fr;
}

.sahaya-label {
	display:       block;
	font-size:     13px;
	font-weight:   600;
	color:         var(--sahaya-text);
	margin-bottom: 6px;
}

.sahaya-required {
	color:       var(--sahaya-error);
	margin-left: 2px;
}

.sahaya-input,
.sahaya-select,
.sahaya-textarea {
	display:        block;
	width:          100%;
	padding:        11px 14px;
	border:         2px solid var(--sahaya-border);
	border-radius:  var(--sahaya-radius-sm);
	font-size:      15px;
	font-family:    var(--sahaya-font);
	color:          var(--sahaya-text);
	background:     var(--sahaya-surface);
	transition:     border-color var(--sahaya-transition), box-shadow var(--sahaya-transition);
	outline:        none;
}

.sahaya-input:focus,
.sahaya-select:focus,
.sahaya-textarea:focus {
	border-color: var(--sahaya-primary);
	box-shadow:   0 0 0 3px rgba(108, 71, 255, 0.12);
}

.sahaya-input.error,
.sahaya-select.error,
.sahaya-textarea.error {
	border-color: var(--sahaya-error);
	box-shadow:   0 0 0 3px rgba(239, 68, 68, 0.10);
}

.sahaya-textarea {
	resize:     vertical;
	min-height: 80px;
}

.sahaya-input[readonly] {
	background: var(--sahaya-bg);
	cursor:     default;
	color:      var(--sahaya-text-muted);
}

/* Input prefix (₹ symbol) */
.sahaya-input-prefix-wrap {
	position: relative;
}

.sahaya-input-prefix {
	position:    absolute;
	left:        14px;
	top:         50%;
	transform:   translateY(-50%);
	font-weight: 700;
	color:       var(--sahaya-primary);
	font-size:   17px;
	pointer-events: none;
}

.sahaya-input-prefix-wrap .sahaya-input {
	padding-left: 36px;
}

/* Field error */
.sahaya-field-error {
	display:     block;
	font-size:   12px;
	color:       var(--sahaya-error);
	margin-top:  4px;
	min-height:  16px;
	font-weight: 500;
}

/* ============================================================
   PAN Validation Indicator
   ============================================================ */
.sahaya-pan-wrap {
	position: relative;
}

.sahaya-pan-status {
	position:    absolute;
	right:       12px;
	top:         50%;
	transform:   translateY(-50%);
	font-size:   18px;
	line-height: 1;
}

.sahaya-pan-entity {
	display:     block;
	font-size:   11px;
	color:       var(--sahaya-success);
	font-weight: 600;
	margin-top:  4px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* ============================================================
   Checkboxes
   ============================================================ */
.sahaya-checkbox-group {
	display:        flex;
	flex-direction: column;
	gap:            14px;
}

.sahaya-checkbox-label {
	display:     flex;
	align-items: center;
	gap:         10px;
	cursor:      pointer;
	font-size:   14px;
	color:       var(--sahaya-text);
	line-height: 1.5;
}

.sahaya-checkbox-label input[type="checkbox"] {
	width:        18px;
	height:       18px;
	accent-color: var(--sahaya-primary);
	flex-shrink:  0;
	cursor:       pointer;
}

.sahaya-badge {
	display:       inline-block;
	background:    linear-gradient(135deg, var(--sahaya-success), #16a34a);
	color:         #fff;
	font-size:     10px;
	font-weight:   700;
	padding:       2px 8px;
	border-radius: 20px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	margin-left:   4px;
}

.sahaya-donation-date {
	margin-top:  12px;
	color:       var(--sahaya-text-muted);
	font-size:   13px;
}

/* ============================================================
   Alert Messages
   ============================================================ */
.sahaya-alert {
	padding:       14px 18px;
	border-radius: var(--sahaya-radius-sm);
	font-size:     14px;
	font-weight:   500;
	margin-bottom: 16px;
	display:       flex;
	align-items:   flex-start;
	gap:           10px;
	animation:     sahaya-slide-in 0.3s ease;
}

.sahaya-alert-success {
	background:   var(--sahaya-success-bg);
	color:        #15803d;
	border-left:  4px solid var(--sahaya-success);
}

.sahaya-alert-error {
	background:   var(--sahaya-error-bg);
	color:        #991b1b;
	border-left:  4px solid var(--sahaya-error);
}

@keyframes sahaya-slide-in {
	from { opacity: 0; transform: translateY(-8px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   Buttons
   ============================================================ */
.sahaya-btn {
	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	gap:             8px;
	padding:         13px 28px;
	border:          none;
	border-radius:   var(--sahaya-radius-sm);
	font-size:       15px;
	font-weight:     700;
	font-family:     var(--sahaya-font);
	cursor:          pointer;
	transition:      all var(--sahaya-transition);
	text-decoration: none;
	white-space:     nowrap;
}

.sahaya-btn-primary {
	background:   linear-gradient(135deg, var(--sahaya-primary), var(--sahaya-secondary));
	color:        #fff;
	box-shadow:   0 4px 14px rgba(108, 71, 255, 0.35);
}

.sahaya-btn-primary:hover:not(:disabled) {
	transform:  translateY(-2px);
	box-shadow: 0 6px 20px rgba(108, 71, 255, 0.45);
}

.sahaya-btn-outline {
	background:   transparent;
	color:        var(--sahaya-primary);
	border:       2px solid var(--sahaya-primary);
}

.sahaya-btn-outline:hover {
	background:   var(--sahaya-primary-light);
	transform:    translateY(-2px);
}

.sahaya-btn-link {
	background:   none;
	border:       none;
	color:        var(--sahaya-primary);
	cursor:       pointer;
	font-size:    13px;
	font-weight:  600;
	padding:      0;
	text-decoration: underline;
}

.sahaya-btn-full {
	width: 100%;
}

.sahaya-btn:disabled {
	opacity: 0.65;
	cursor:  not-allowed;
}

.sahaya-btn-spinner {
	display: inline-flex;
}

.sahaya-form-submit {
	text-align:  center;
	padding-top: 8px;
}

.sahaya-secure-note {
	margin-top:  12px;
	font-size:   12px;
	color:       var(--sahaya-text-muted);
	display:     flex;
	align-items: center;
	justify-content: center;
	gap:         6px;
}

/* Spinner SVG */
.sahaya-spinner {
	width:     22px;
	height:    22px;
	animation: rotate 1s linear infinite;
}

.sahaya-spinner .path {
	stroke:           #fff;
	stroke-linecap:   round;
	animation:        dash 1.5s ease-in-out infinite;
}

@keyframes rotate {
	100% { transform: rotate(360deg); }
}

@keyframes dash {
	0%   { stroke-dasharray: 1, 150; stroke-dashoffset: 0; }
	50%  { stroke-dasharray: 90, 150; stroke-dashoffset: -35; }
	100% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; }
}

/* ============================================================
   Payment Overlay
   ============================================================ */
.sahaya-overlay {
	position: fixed;
	inset:    0;
	background: rgba(26, 26, 46, 0.7);
	z-index:    99999;
	display:    flex;
	align-items: center;
	justify-content: center;
	backdrop-filter: blur(4px);
}

.sahaya-overlay-inner {
	background:    #fff;
	border-radius: var(--sahaya-radius-lg);
	padding:       48px 64px;
	text-align:    center;
	box-shadow:    var(--sahaya-shadow-hover);
}

.sahaya-overlay-spinner {
	width:         48px;
	height:        48px;
	border:        4px solid var(--sahaya-primary-light);
	border-top-color: var(--sahaya-primary);
	border-radius: 50%;
	animation:     rotate 0.8s linear infinite;
	margin:        0 auto 16px;
}

/* ============================================================
   Donor Portal Header
   ============================================================ */
.sahaya-portal-header {
	text-align:    center;
	padding:       48px 24px 32px;
	background:    linear-gradient(135deg, var(--sahaya-primary) 0%, var(--sahaya-secondary) 100%);
	border-radius: var(--sahaya-radius-lg) var(--sahaya-radius-lg) 0 0;
	color:         #fff;
}

.sahaya-portal-icon svg {
	color:         rgba(255,255,255,0.9);
	margin-bottom: 12px;
}

.sahaya-portal-header h2 {
	font-size:   26px;
	font-weight: 800;
	color:       #fff;
	margin:      0 0 10px;
}

.sahaya-portal-header p {
	font-size: 14px;
	color:     rgba(255,255,255,0.85);
	margin:    0;
}

/* ============================================================
   Login Form
   ============================================================ */
.sahaya-login-wrap {
	background:    var(--sahaya-surface);
	border-radius: var(--sahaya-radius-lg);
	box-shadow:    var(--sahaya-shadow);
	overflow:      hidden;
}

.sahaya-login-step {
	padding: 32px 32px;
}

.sahaya-otp-info {
	display:     flex;
	align-items: center;
	gap:         12px;
	background:  var(--sahaya-primary-light);
	border-radius: var(--sahaya-radius-sm);
	padding:     14px 16px;
	margin-bottom: 24px;
	font-size:   14px;
	color:       var(--sahaya-primary);
}

.sahaya-otp-inputs {
	display:         flex;
	justify-content: center;
	gap:             12px;
	margin-bottom:   24px;
}

.sahaya-otp-digit {
	width:         52px;
	height:        60px;
	text-align:    center;
	font-size:     26px;
	font-weight:   800;
	border:        2px solid var(--sahaya-border);
	border-radius: var(--sahaya-radius-sm);
	font-family:   monospace;
	color:         var(--sahaya-primary);
	transition:    border-color var(--sahaya-transition);
	outline:       none;
}

.sahaya-otp-digit:focus {
	border-color: var(--sahaya-primary);
	box-shadow:   0 0 0 3px rgba(108, 71, 255, 0.12);
}

.sahaya-otp-resend {
	text-align:  center;
	margin-top:  16px;
	font-size:   13px;
	color:       var(--sahaya-text-muted);
}

.sahaya-login-footer {
	text-align:    center;
	padding:       16px 32px 24px;
	font-size:     13px;
	color:         var(--sahaya-text-muted);
}

.sahaya-login-footer a {
	color: var(--sahaya-primary);
	text-decoration: none;
}

/* ============================================================
   Donor Dashboard
   ============================================================ */
.sahaya-dashboard-wrap {
	background:    var(--sahaya-bg);
	border-radius: var(--sahaya-radius-lg);
	overflow:      hidden;
}

.sahaya-dashboard-header {
	background:    var(--sahaya-surface);
	border-bottom: 1px solid var(--sahaya-border);
	padding:       20px 28px;
	display:       flex;
	align-items:   center;
	justify-content: space-between;
	flex-wrap:     wrap;
	gap:           12px;
}

.sahaya-dashboard-greeting {
	display:     flex;
	align-items: center;
	gap:         14px;
}

.sahaya-avatar {
	width:           52px;
	height:          52px;
	background:      linear-gradient(135deg, var(--sahaya-primary), var(--sahaya-secondary));
	color:           #fff;
	border-radius:   50%;
	display:         flex;
	align-items:     center;
	justify-content: center;
	font-size:       22px;
	font-weight:     800;
	flex-shrink:     0;
}

.sahaya-dashboard-greeting h2 {
	font-size:   20px;
	font-weight: 700;
	margin:      0;
}

.sahaya-dashboard-greeting p {
	font-size: 13px;
	color:     var(--sahaya-text-muted);
	margin:    4px 0 0;
}

/* Stats Grid */
.sahaya-stats-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: var(--sahaya-border);
	border-bottom: 1px solid var(--sahaya-border);
}

.sahaya-stat-card {
	background:  var(--sahaya-surface);
	padding:     24px 20px;
	display:     flex;
	align-items: center;
	gap:         14px;
}

.sahaya-stat-icon {
	width:           48px;
	height:          48px;
	border-radius:   var(--sahaya-radius-sm);
	display:         flex;
	align-items:     center;
	justify-content: center;
	font-size:       22px;
	font-weight:     800;
	flex-shrink:     0;
}

.sahaya-stat-icon--rupee { background: var(--sahaya-primary-light); color: var(--sahaya-primary); }
.sahaya-stat-icon--count { background: #fff0f3; color: var(--sahaya-secondary); }
.sahaya-stat-icon--cert  { background: var(--sahaya-success-bg); color: var(--sahaya-success); }

.sahaya-stat-value {
	font-size:   22px;
	font-weight: 800;
	color:       var(--sahaya-text);
}

.sahaya-stat-label {
	font-size:  12px;
	color:      var(--sahaya-text-muted);
	margin-top: 2px;
}

/* ============================================================
   Tabs (Dashboard)
   ============================================================ */
.sahaya-dashboard-tabs {
	background: var(--sahaya-surface);
}

.sahaya-tabs-nav {
	display:    flex;
	border-bottom: 1px solid var(--sahaya-border);
	overflow-x: auto;
}

.sahaya-tab-btn {
	padding:      14px 20px;
	border:       none;
	background:   transparent;
	font-size:    14px;
	font-weight:  600;
	color:        var(--sahaya-text-muted);
	cursor:       pointer;
	white-space:  nowrap;
	border-bottom: 3px solid transparent;
	transition:   all var(--sahaya-transition);
	font-family:  var(--sahaya-font);
}

.sahaya-tab-btn:hover {
	color:      var(--sahaya-primary);
	background: var(--sahaya-primary-light);
}

.sahaya-tab-btn.active {
	color:        var(--sahaya-primary);
	border-color: var(--sahaya-primary);
}

.sahaya-tab-panel {
	padding: 24px;
}

/* ============================================================
   Tables
   ============================================================ */
.sahaya-table-wrap {
	overflow-x: auto;
}

.sahaya-table {
	width:           100%;
	border-collapse: collapse;
	font-size:       14px;
}

.sahaya-table th {
	background:  var(--sahaya-bg);
	color:       var(--sahaya-text-muted);
	font-weight: 700;
	font-size:   12px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding:     12px 16px;
	text-align:  left;
	border-bottom: 2px solid var(--sahaya-border);
}

.sahaya-table td {
	padding:      12px 16px;
	border-bottom: 1px solid var(--sahaya-border);
	color:        var(--sahaya-text);
	vertical-align: middle;
}

.sahaya-table tr:last-child td {
	border-bottom: none;
}

.sahaya-table tr:hover td {
	background: var(--sahaya-bg);
}

/* Status badges */
.sahaya-status {
	display:       inline-block;
	padding:       3px 10px;
	border-radius: 20px;
	font-size:     11px;
	font-weight:   700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.sahaya-status--paid    { background: var(--sahaya-success-bg); color: #15803d; }
.sahaya-status--pending { background: #fff7ed; color: #c2410c; }
.sahaya-status--failed  { background: var(--sahaya-error-bg); color: #991b1b; }

/* ============================================================
   Skeleton loader
   ============================================================ */
.sahaya-skeleton-row {
	height:        48px;
	background:    linear-gradient(90deg, #f0f0f0 25%, #e8e8e8 50%, #f0f0f0 75%);
	background-size: 200% 100%;
	animation:     skeleton-shimmer 1.4s infinite;
	border-radius: var(--sahaya-radius-sm);
	margin-bottom: 8px;
}

@keyframes skeleton-shimmer {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

/* ============================================================
   Receipt / 80G Card
   ============================================================ */
.sahaya-receipt-wrap,
.sahaya-80g-wrap {
	max-width: 720px;
	margin:    0 auto;
}

.sahaya-receipt-card,
.sahaya-80g-card {
	background:    var(--sahaya-surface);
	border:        1px solid var(--sahaya-border);
	border-radius: var(--sahaya-radius-lg);
	overflow:      hidden;
	box-shadow:    var(--sahaya-shadow);
}

.sahaya-receipt-header,
.sahaya-80g-header {
	display:     flex;
	align-items: flex-start;
	gap:         20px;
	padding:     28px 32px;
	background:  var(--sahaya-bg);
	border-bottom: 1px solid var(--sahaya-border);
}

.sahaya-receipt-logo {
	max-height:    70px;
	max-width:     180px;
	object-fit:    contain;
}

.sahaya-receipt-trust-info h2,
.sahaya-80g-trust-info h2 {
	font-size:   18px;
	font-weight: 800;
	color:       var(--sahaya-text);
	margin:      0 0 6px;
}

.sahaya-receipt-trust-info p,
.sahaya-80g-trust-info p {
	font-size: 13px;
	color:     var(--sahaya-text-muted);
	margin:    0 0 4px;
}

.sahaya-receipt-divider {
	text-align:  center;
	padding:     14px 0;
	background:  linear-gradient(135deg, var(--sahaya-primary), var(--sahaya-secondary));
}

.sahaya-receipt-title {
	color:         #fff;
	font-size:     11px;
	font-weight:   800;
	text-transform: uppercase;
	letter-spacing: 2px;
}

.sahaya-receipt-meta {
	display:    grid;
	grid-template-columns: repeat(2, 1fr);
	gap:        1px;
	background: var(--sahaya-border);
	border-bottom: 1px solid var(--sahaya-border);
}

.sahaya-receipt-meta-item {
	background:     var(--sahaya-surface);
	padding:        16px 24px;
	display:        flex;
	flex-direction: column;
	gap:            4px;
}

.sahaya-meta-label {
	font-size:   11px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color:       var(--sahaya-text-muted);
	font-weight: 600;
}

.sahaya-meta-value {
	font-size:   15px;
	font-weight: 700;
	color:       var(--sahaya-text);
}

.sahaya-receipt-section {
	padding: 24px 32px;
}

.sahaya-receipt-section h4 {
	font-size:   13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color:       var(--sahaya-text-muted);
	margin:      0 0 14px;
}

.sahaya-receipt-table {
	width:           100%;
	border-collapse: collapse;
	font-size:       14px;
}

.sahaya-receipt-table th {
	width:       180px;
	text-align:  left;
	padding:     9px 0;
	color:       var(--sahaya-text-muted);
	font-weight: 600;
	border-bottom: 1px solid var(--sahaya-border);
}

.sahaya-receipt-table td {
	padding:     9px 0;
	font-weight: 600;
	color:       var(--sahaya-text);
	border-bottom: 1px solid var(--sahaya-border);
}

.sahaya-receipt-amount-wrap {
	text-align:    center;
	padding:       24px 32px;
	background:    var(--sahaya-primary-light);
}

.sahaya-receipt-amount-label {
	font-size:   12px;
	text-transform: uppercase;
	letter-spacing: 1px;
	color:       var(--sahaya-primary);
	font-weight: 700;
	margin-bottom: 8px;
}

.sahaya-receipt-amount {
	font-size:   42px;
	font-weight: 900;
	color:       var(--sahaya-primary);
}

.sahaya-receipt-signature {
	padding:     24px 32px;
	text-align:  right;
}

.sahaya-signature-line {
	width:        200px;
	height:       2px;
	background:   var(--sahaya-text);
	margin:       0 0 10px auto;
}

.sahaya-receipt-actions {
	display:     flex;
	gap:         12px;
	padding:     20px 32px;
	border-top:  1px solid var(--sahaya-border);
	justify-content: center;
	flex-wrap:   wrap;
}

.sahaya-receipt-footer {
	text-align:    center;
	padding:       16px 32px;
	background:    var(--sahaya-bg);
	border-top:    1px solid var(--sahaya-border);
	font-size:     12px;
	color:         var(--sahaya-text-muted);
}

/* 80G specific */
.sahaya-80g-body {
	padding:    24px 32px;
	font-size:  15px;
	line-height: 1.8;
	color:      var(--sahaya-text);
}

.sahaya-80g-amount {
	font-size:   32px;
	font-weight: 900;
	color:       #1a472a;
	text-align:  center;
	padding:     16px 0;
}

.sahaya-80g-amount-words {
	display:     block;
	font-size:   14px;
	font-weight: 500;
	color:       var(--sahaya-text-muted);
	margin-top:  4px;
}

/* ============================================================
   Profile Form
   ============================================================ */
.sahaya-profile-wrap {
	max-width: 600px;
}

.sahaya-profile-wrap h3 {
	font-size:   18px;
	font-weight: 700;
	margin:      0 0 20px;
}

/* ============================================================
   Pagination
   ============================================================ */
.sahaya-pagination {
	display:         flex;
	justify-content: center;
	gap:             6px;
	margin-top:      20px;
}

.sahaya-pagination button {
	min-width:  36px;
	height:     36px;
	border:     1px solid var(--sahaya-border);
	background: var(--sahaya-surface);
	color:      var(--sahaya-text);
	border-radius: var(--sahaya-radius-sm);
	cursor:     pointer;
	font-size:  14px;
	font-weight: 600;
	transition: all var(--sahaya-transition);
}

.sahaya-pagination button.active,
.sahaya-pagination button:hover {
	background:  var(--sahaya-primary);
	color:       #fff;
	border-color: var(--sahaya-primary);
}

/* ============================================================
   Admin-inherited tabs (for settings page)
   ============================================================ */
.sahaya-settings-tabs {
	margin-top: 20px;
}

.sahaya-settings-tabs .sahaya-tabs-nav {
	margin-bottom:  0;
	border-bottom:  1px solid var(--sahaya-border);
}

.sahaya-settings-tabs .tab-link {
	display:       inline-block;
	padding:       10px 18px;
	text-decoration: none;
	color:         var(--sahaya-text-muted);
	font-weight:   600;
	font-size:     13px;
	border-bottom: 3px solid transparent;
	transition:    all var(--sahaya-transition);
}

.sahaya-settings-tabs .tab-link.active {
	color:        var(--sahaya-primary);
	border-color: var(--sahaya-primary);
}

.sahaya-settings-tabs .tab-content {
	background:    var(--sahaya-surface);
	border:        1px solid var(--sahaya-border);
	border-top:    none;
	border-radius: 0 0 var(--sahaya-radius-sm) var(--sahaya-radius-sm);
	padding:       24px;
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 600px) {
	.sahaya-form-row,
	.sahaya-form-row-4 {
		grid-template-columns: 1fr;
	}

	.sahaya-stats-grid {
		grid-template-columns: 1fr;
	}

	.sahaya-receipt-meta {
		grid-template-columns: 1fr;
	}

	.sahaya-receipt-header,
	.sahaya-80g-header {
		flex-direction: column;
	}

	.sahaya-quick-amounts {
		gap: 8px;
	}

	.sahaya-quick-amount-btn {
		min-width: 70px;
		font-size: 13px;
	}

	.sahaya-otp-digit {
		width:  44px;
		height: 52px;
		font-size: 22px;
	}

	.sahaya-dashboard-header {
		flex-direction: column;
		align-items:   flex-start;
	}
}

/* ============================================================
   Print styles for receipts
   ============================================================ */
@media print {
	.sahaya-receipt-actions,
	.sahaya-portal-header,
	.sahaya-dashboard-header,
	.sahaya-tabs-nav {
		display: none !important;
	}

	.sahaya-receipt-card,
	.sahaya-80g-card {
		box-shadow: none;
		border:     1px solid #ccc;
	}
}
