/*
 * Buku Kas Umum - Public Stylesheet
 * Plugin: Buku Kas Umum Excel Download Gratis 2026
 * Design standard: Bright colors, no dark backgrounds on content cards.
 */

/* ── CSS VARIABLES ──────────────────────────────────── */
#bku-wrap {
	--bku-green:       #16a34a;
	--bku-green-light: #dcfce7;
	--bku-green-mid:   #86efac;
	--bku-red:         #dc2626;
	--bku-red-light:   #fee2e2;
	--bku-blue:        #2563eb;
	--bku-blue-light:  #dbeafe;
	--bku-amber:       #d97706;
	--bku-amber-light: #fef3c7;
	--bku-purple:      #7c3aed;
	--bku-purple-light:#ede9fe;
	--bku-gray-50:     #f9fafb;
	--bku-gray-100:    #f3f4f6;
	--bku-gray-200:    #e5e7eb;
	--bku-gray-600:    #4b5563;
	--bku-gray-700:    #374151;
	--bku-gray-900:    #111827;
	--bku-radius:      10px;
	--bku-shadow:      0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);
	--bku-shadow-md:   0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -1px rgba(0,0,0,.06);

	font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
	font-size: 14px;
	color: var(--bku-gray-700);
	line-height: 1.5;
	max-width: 100%;
}

/* ── RESET ──────────────────────────────────────────── */
#bku-wrap *, #bku-wrap *::before, #bku-wrap *::after {
	box-sizing: border-box;
}

/* ── HEADER ─────────────────────────────────────────── */
#bku-wrap .bku-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	background: linear-gradient(135deg, #1e3a5f 0%, #2563eb 100%);
	color: #fff;
	padding: 20px 24px;
	border-radius: var(--bku-radius);
	margin-bottom: 20px;
	box-shadow: var(--bku-shadow-md);
}

#bku-wrap .bku-header-title {
	display: flex;
	align-items: center;
	gap: 12px;
}

#bku-wrap .bku-header-title svg {
	width: 36px;
	height: 36px;
	stroke: #93c5fd;
	flex-shrink: 0;
}

#bku-wrap .bku-header-title h2 {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
	color: #fff;
}

#bku-wrap .bku-header-title p {
	margin: 2px 0 0;
	font-size: 12px;
	color: #93c5fd;
}

#bku-wrap .bku-header-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

/* ── FILTER GROUP ───────────────────────────────────── */
#bku-wrap .bku-filter-group {
	display: flex;
	gap: 6px;
}

/* ── BUTTONS ────────────────────────────────────────── */
#bku-wrap .bku-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border-radius: 7px;
	border: none;
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	transition: transform .15s, box-shadow .15s, opacity .15s;
	text-decoration: none;
}

#bku-wrap .bku-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0,0,0,.2);
}

#bku-wrap .bku-btn:active {
	transform: translateY(0);
}

#bku-wrap .bku-btn-primary {
	background: linear-gradient(135deg, #059669, #16a34a);
	color: #fff;
	box-shadow: 0 2px 8px rgba(22,163,74,.35);
}

#bku-wrap .bku-btn-secondary {
	background: rgba(255,255,255,.15);
	color: #fff;
	border: 1px solid rgba(255,255,255,.3);
	backdrop-filter: blur(4px);
}

#bku-wrap .bku-btn-excel {
	background: linear-gradient(135deg, #15803d, #166534);
	color: #fff;
	box-shadow: 0 2px 8px rgba(21,128,61,.4);
}

#bku-wrap .bku-btn-excel:hover {
	background: linear-gradient(135deg, #166534, #14532d);
}

#bku-wrap .bku-btn:disabled {
	opacity: .6;
	cursor: not-allowed;
	transform: none !important;
}

/* ── SELECT / INPUT ─────────────────────────────────── */
#bku-wrap .bku-select,
#bku-wrap .bku-input {
	padding: 8px 10px;
	border: 1.5px solid var(--bku-gray-200);
	border-radius: 7px;
	font-size: 13px;
	background: #fff;
	color: var(--bku-gray-700);
	transition: border-color .2s, box-shadow .2s;
	width: 100%;
}

#bku-wrap .bku-select:focus,
#bku-wrap .bku-input:focus {
	outline: none;
	border-color: var(--bku-blue);
	box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}

#bku-wrap .bku-filter-group .bku-select {
	width: auto;
	background: rgba(255,255,255,.12);
	color: #fff;
	border-color: rgba(255,255,255,.25);
}

#bku-wrap .bku-filter-group .bku-select option {
	background: #1e3a5f;
	color: #fff;
}

/* ── SUMMARY CARDS ──────────────────────────────────── */
#bku-wrap .bku-summary-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	margin-bottom: 20px;
}

#bku-wrap .bku-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 20px;
	border-radius: var(--bku-radius);
	box-shadow: var(--bku-shadow);
	transition: transform .2s, box-shadow .2s;
}

#bku-wrap .bku-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--bku-shadow-md);
}

/* Kartu Pemasukan — bright green gradient */
#bku-wrap .bku-card-masuk {
	background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
	border: 1.5px solid #6ee7b7;
}

/* Kartu Pengeluaran — bright orange/red */
#bku-wrap .bku-card-keluar {
	background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);
	border: 1.5px solid #fca5a5;
}

/* Kartu Saldo — bright blue */
#bku-wrap .bku-card-saldo {
	background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
	border: 1.5px solid #93c5fd;
}

#bku-wrap .bku-card-icon {
	width: 44px;
	height: 44px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

#bku-wrap .bku-card-masuk .bku-card-icon {
	background: #16a34a;
	color: #fff;
}
#bku-wrap .bku-card-masuk .bku-card-icon svg { stroke: #fff; }

#bku-wrap .bku-card-keluar .bku-card-icon {
	background: #dc2626;
	color: #fff;
}
#bku-wrap .bku-card-keluar .bku-card-icon svg { stroke: #fff; }

#bku-wrap .bku-card-saldo .bku-card-icon {
	background: #2563eb;
	color: #fff;
}
#bku-wrap .bku-card-saldo .bku-card-icon svg { stroke: #fff; }

#bku-wrap .bku-card-icon svg {
	width: 22px;
	height: 22px;
}

#bku-wrap .bku-card-body {
	display: flex;
	flex-direction: column;
}

#bku-wrap .bku-card-label {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--bku-gray-600);
	margin-bottom: 3px;
}

#bku-wrap .bku-card-value {
	font-size: 17px;
	font-weight: 700;
	color: var(--bku-gray-900);
}

/* ── FORM SECTION ───────────────────────────────────── */
#bku-wrap .bku-form-section {
	background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%);
	border: 1.5px solid #bbf7d0;
	border-radius: var(--bku-radius);
	padding: 20px 24px;
	margin-bottom: 20px;
}

#bku-wrap .bku-section-title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 16px;
	font-size: 14px;
	font-weight: 700;
	color: var(--bku-gray-900);
}

#bku-wrap .bku-section-title svg {
	color: var(--bku-green);
}

#bku-wrap .bku-form-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

#bku-wrap .bku-form-full {
	grid-column: 1 / -1;
}

#bku-wrap .bku-form-group label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: var(--bku-gray-700);
	margin-bottom: 5px;
}

#bku-wrap .bku-required {
	color: #dc2626;
}

#bku-wrap .bku-form-footer {
	margin-top: 14px;
	display: flex;
	justify-content: flex-start;
}

/* ── INFO LOGIN ─────────────────────────────────────── */
#bku-wrap .bku-info-login {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--bku-amber-light);
	border: 1.5px solid #fcd34d;
	border-radius: var(--bku-radius);
	padding: 12px 16px;
	margin-bottom: 20px;
	font-size: 13px;
	color: #92400e;
}

#bku-wrap .bku-info-login a {
	color: var(--bku-blue);
	font-weight: 600;
}

/* ── ALERT ──────────────────────────────────────────── */
#bku-wrap .bku-alert {
	padding: 10px 14px;
	border-radius: 7px;
	margin-bottom: 12px;
	font-size: 13px;
	font-weight: 500;
}

#bku-wrap .bku-alert.bku-alert-success {
	background: var(--bku-green-light);
	border: 1px solid var(--bku-green-mid);
	color: #14532d;
}

#bku-wrap .bku-alert.bku-alert-error {
	background: var(--bku-red-light);
	border: 1px solid #fca5a5;
	color: #7f1d1d;
}

/* ── TABLE SECTION ──────────────────────────────────── */
#bku-wrap .bku-table-section {
	background: #fff;
	border: 1.5px solid var(--bku-gray-200);
	border-radius: var(--bku-radius);
	overflow: hidden;
	margin-bottom: 20px;
	box-shadow: var(--bku-shadow);
}

#bku-wrap .bku-table-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--bku-gray-100);
	background: var(--bku-gray-50);
}

#bku-wrap .bku-table-header .bku-section-title {
	margin: 0;
}

#bku-wrap .bku-total-rows {
	font-size: 12px;
	color: var(--bku-gray-600);
	background: var(--bku-blue-light);
	padding: 3px 10px;
	border-radius: 20px;
	font-weight: 600;
	color: var(--bku-blue);
}

#bku-wrap .bku-table-wrapper {
	overflow-x: auto;
}

#bku-wrap .bku-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13.5px;
}

#bku-wrap .bku-table thead tr {
	background: linear-gradient(135deg, #1e3a5f 0%, #1d4ed8 100%) !important;
}

#bku-wrap .bku-table thead th {
	padding: 13px 12px !important;
	text-align: left !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	letter-spacing: .06em !important;
	color: #ffffff !important;
	white-space: nowrap !important;
	border: none !important;
	border-right: 1px solid rgba(255,255,255,.2) !important;
	background: transparent !important;
}

#bku-wrap .bku-table thead th:last-child {
	border-right: none !important;
}

#bku-wrap .bku-table tbody tr {
	border-bottom: 1px solid var(--bku-gray-100) !important;
	transition: background .15s;
	background: #ffffff !important;
}

#bku-wrap .bku-table tbody tr:nth-child(even) {
	background: #f8fafc !important;
}

#bku-wrap .bku-table tbody tr:hover {
	background: #f0f9ff !important;
}

#bku-wrap .bku-table tbody tr:last-child {
	border-bottom: none !important;
}

#bku-wrap .bku-table td {
	padding: 11px 12px !important;
	color: var(--bku-gray-700) !important;
	vertical-align: middle !important;
	border-bottom: 1px solid var(--bku-gray-100) !important;
	background: transparent !important;
}

/* Kolom lebar */
#bku-wrap .bku-col-no        { width: 45px; }
#bku-wrap .bku-col-tanggal   { width: 95px; white-space: nowrap; }
#bku-wrap .bku-col-kategori  { width: 110px; }
#bku-wrap .bku-col-masuk,
#bku-wrap .bku-col-keluar,
#bku-wrap .bku-col-saldo     { width: 130px; text-align: right; white-space: nowrap; }
#bku-wrap .bku-col-aksi      { width: 50px; text-align: center; }

#bku-wrap .bku-text-masuk  { color: #15803d; font-weight: 600; }
#bku-wrap .bku-text-keluar { color: #dc2626; font-weight: 600; }
#bku-wrap .bku-text-muted  { color: #9ca3af; }
#bku-wrap .bku-saldo-positif { color: #1d4ed8; font-weight: 700; }
#bku-wrap .bku-saldo-negatif { color: #dc2626; font-weight: 700; }

#bku-wrap .bku-badge {
	display: inline-block;
	background: var(--bku-purple-light);
	color: var(--bku-purple);
	padding: 2px 8px;
	border-radius: 20px;
	font-size: 11px;
	font-weight: 600;
}

/* Hapus button */
#bku-wrap .bku-btn-hapus {
	background: var(--bku-red-light);
	border: 1px solid #fca5a5;
	color: var(--bku-red);
	width: 28px;
	height: 28px;
	border-radius: 6px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background .15s;
}

#bku-wrap .bku-btn-hapus:hover {
	background: #fca5a5;
}

/* Empty state */
#bku-wrap .bku-empty {
	text-align: center;
	padding: 40px 20px;
	color: var(--bku-gray-600);
}

#bku-wrap .bku-empty svg {
	display: block;
	margin: 0 auto 10px;
	stroke: #d1d5db;
}

#bku-wrap .bku-empty p {
	margin: 0;
}

/* Table footer totals */
#bku-wrap .bku-table-footer {
	padding: 12px 20px;
	background: linear-gradient(135deg, #f0fdf4, #ecfdf5);
	border-top: 2px solid #bbf7d0;
}

#bku-wrap .bku-totals-row {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
	font-size: 13px;
	font-weight: 600;
	color: var(--bku-gray-700);
}

/* ── DOWNLOAD SECTION ───────────────────────────────── */
#bku-wrap .bku-download-section {
	margin-bottom: 10px;
}

#bku-wrap .bku-download-card {
	display: flex;
	align-items: center;
	gap: 16px;
	background: linear-gradient(135deg, #fef9c3 0%, #fef08a 100%);
	border: 1.5px solid #fde047;
	border-radius: var(--bku-radius);
	padding: 18px 22px;
	box-shadow: var(--bku-shadow);
}

#bku-wrap .bku-download-icon {
	font-size: 32px;
	flex-shrink: 0;
}

#bku-wrap .bku-download-info {
	flex: 1;
	display: flex;
	flex-direction: column;
}

#bku-wrap .bku-download-info strong {
	font-size: 14px;
	color: #713f12;
}

#bku-wrap .bku-download-info span {
	font-size: 12px;
	color: #92400e;
	margin-top: 2px;
}

/* ── NOMINAL INPUT WRAPPER ──────────────────────────── */
#bku-wrap .bku-nominal-wrap {
	display: flex;
	align-items: center;
	border: 1.5px solid var(--bku-gray-200);
	border-radius: 7px;
	overflow: hidden;
	transition: border-color .2s, box-shadow .2s;
	background: #fff;
}

#bku-wrap .bku-nominal-wrap:focus-within {
	border-color: var(--bku-blue);
	box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}

#bku-wrap .bku-nominal-prefix {
	padding: 8px 10px;
	background: var(--bku-gray-100);
	color: var(--bku-gray-600);
	font-size: 13px;
	font-weight: 700;
	border-right: 1.5px solid var(--bku-gray-200);
	white-space: nowrap;
	user-select: none;
}

#bku-wrap .bku-nominal-input {
	border: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	flex: 1;
	text-align: right;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .02em;
	padding: 8px 12px;
}

#bku-wrap .bku-nominal-input:focus {
	outline: none;
	box-shadow: none !important;
}


@media (max-width: 640px) {
	#bku-wrap .bku-summary-grid {
		grid-template-columns: 1fr;
	}

	#bku-wrap .bku-header {
		flex-direction: column;
		align-items: flex-start;
	}

	#bku-wrap .bku-form-grid {
		grid-template-columns: 1fr;
	}

	#bku-wrap .bku-download-card {
		flex-direction: column;
		text-align: center;
	}

	#bku-wrap .bku-col-kategori,
	#bku-wrap .bku-col-saldo { display: none; }
}

/* ── LOGIN GATE ─────────────────────────────────────── */
#bku-wrap .bku-gate {
	text-align: center;
	padding: 40px 24px;
	background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
	border: 1.5px solid #bae6fd;
	border-radius: var(--bku-radius);
}

#bku-wrap .bku-gate-icon { font-size: 52px; margin-bottom: 12px; }

#bku-wrap .bku-gate-title {
	font-size: 22px;
	font-weight: 800;
	color: var(--bku-gray-900);
	margin: 0 0 10px;
}

#bku-wrap .bku-gate-desc {
	font-size: 14px;
	color: var(--bku-gray-600);
	margin: 0 0 24px;
	line-height: 1.6;
}

#bku-wrap .bku-gate-features {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	max-width: 360px;
	margin: 0 auto 28px;
	text-align: left;
}

#bku-wrap .bku-gate-feature {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--bku-gray-700);
	background: #fff;
	padding: 8px 12px;
	border-radius: 8px;
	box-shadow: var(--bku-shadow);
}

#bku-wrap .bku-gate-feature-icon { font-size: 15px; flex-shrink: 0; }

#bku-wrap .bku-btn-gate {
	background: linear-gradient(135deg, #1d4ed8, #2563eb);
	color: #fff !important;
	font-size: 15px;
	padding: 12px 32px;
	border-radius: 10px;
	box-shadow: 0 4px 14px rgba(37,99,235,.4);
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	transition: transform .15s, box-shadow .15s;
}

#bku-wrap .bku-btn-gate:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(37,99,235,.5);
}

#bku-wrap .bku-gate-note {
	margin: 14px 0 0;
	font-size: 12px;
	color: var(--bku-gray-600);
}

/* ── NAMA USAHA EDIT INLINE ─────────────────────── */
#bku-wrap .bku-nama-usaha-wrap {
	display: flex;
	align-items: center;
	gap: 7px;
}
#bku-wrap .bku-nama-usaha-wrap h2 {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
	color: #fff;
}
#bku-wrap .bku-btn-edit-nama {
	background: rgba(255,255,255,.18);
	border: 1px solid rgba(255,255,255,.25);
	border-radius: 5px;
	width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	flex-shrink: 0;
	transition: background .15s;
}
#bku-wrap .bku-btn-edit-nama svg { stroke: rgba(255,255,255,.85); }
#bku-wrap .bku-btn-edit-nama:hover { background: rgba(255,255,255,.28); }
#bku-wrap .bku-edit-nama-form {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 4px;
	flex-wrap: wrap;
}
#bku-wrap .bku-input-nama {
	background: rgba(255,255,255,.15);
	border: 1.5px solid rgba(255,255,255,.35);
	border-radius: 6px;
	padding: 5px 10px;
	font-size: 13px;
	color: #fff;
	width: 200px;
	outline: none;
}
#bku-wrap .bku-input-nama::placeholder { color: rgba(255,255,255,.5); }
#bku-wrap .bku-input-nama:focus { border-color: rgba(255,255,255,.7); }
#bku-wrap .bku-btn-simpan-nama {
	background: #16a34a;
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 5px 12px;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}
#bku-wrap .bku-btn-batal-nama {
	background: rgba(255,255,255,.15);
	color: rgba(255,255,255,.8);
	border: 1px solid rgba(255,255,255,.25);
	border-radius: 6px;
	padding: 5px 10px;
	font-size: 12px;
	cursor: pointer;
}
