:root {
	--primary-color: #3674d9;
	--secondary-color: #5c6ac4;
	--danger-color: #e55c57;
	--success-color: #50b83c;
	--warning-color: #eec200;
	--teal-color: #46bdbb;
	--gray-100: #f7fafc;
	--gray-200: #edf2f7;
	--border-color: #e2e2e2;
	--border-color-2: #b6b6b6;
	--secondary-text: #b7b7b7;
	--header-color: #2f3447;
	--custom-red: #eb5757;
	--default-background: #f4f5fa;
	--custom-black-1: #212b36;
	--custom-black-2: #454f5b;
	--custom-gray-1: #637381;
	--white-2: #f4f6f8;
	--white-1: #f9fafb;
	--shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
	--soft-primary-color: #d9edf7;
	--core-grey: #e2e2e2;
	--core-green: #9ecb42;
}

body {
	font-family: "Inter", sans-serif;
	font-optical-sizing: auto;
	background-color: #f8f9fa;
}
.font-accent {
	font-family: "Caveat Brush", cursive;
	font-weight: 400;
	font-style: normal;
}

.mobile-apps {
	border-right: 1px solid var(--border-color);
	border-left: 1px solid var(--border-color);
	max-width: 480px;
	margin: 0 auto !important;
	background-color: #fefefe;
}

.pwa-install-prompt {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 10000;
	display: flex;
	justify-content: center;
	padding: 16px;
	padding-bottom: calc(16px + env(safe-area-inset-bottom));
	pointer-events: none;
	opacity: 0;
	transform: translateY(24px);
	transition:
		opacity 0.2s ease,
		transform 0.2s ease;
}

.pwa-install-prompt.show {
	pointer-events: auto;
	opacity: 1;
	transform: translateY(0);
}

.pwa-install-card {
	position: relative;
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 12px;
	width: min(100%, 448px);
	padding: 14px;
	padding-right: 46px;
	border: 1px solid #dfe6f2;
	border-radius: 14px;
	background: #ffffff;
	box-shadow: 0 18px 45px rgba(15, 23, 42, 0.16);
}

.pwa-install-icon {
	width: 48px;
	height: 48px;
	border-radius: 12px;
	grid-row: span 2;
}

.pwa-install-copy h2 {
	margin: 0 0 4px;
	color: var(--custom-black-1);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
}

.pwa-install-copy p {
	margin: 0;
	color: var(--custom-gray-1);
	font-size: 13px;
	line-height: 1.4;
}

.pwa-install-action {
	grid-column: 2;
	width: fit-content;
	min-width: 104px;
	min-height: 40px;
	margin-top: 2px;
	padding: 0 18px;
	border: 0;
	border-radius: 10px;
	background: var(--primary-color);
	color: #ffffff;
	font: inherit;
	font-size: 14px;
	font-weight: 700;
}

.pwa-install-close {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 30px;
	height: 30px;
	border: 0;
	border-radius: 50%;
	background: #f1f5f9;
	color: #475569;
	font-size: 22px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.app-container {
	display: flex;
	flex-direction: column;
	padding: 0;
	margin: 0;
	overflow-y: auto;
	padding-left: 1.2rem;
	padding-right: 1.2rem;
	min-height: 100vh;
}

.app-header {
	padding: 16px;
	height: 60px !important;
	display: flex;
	align-items: center;
	border-bottom: 0px;
	position: fixed;
	top: 0;
	max-width: 478px;
	width: 100%;
	border-bottom: 1px solid var(--border-color);
	z-index: 10;
	margin-left: -16px;
}

.app-header .back-btn {
	background: none;
	border: none;
	font-size: 1.5rem;
	color: #333;
	cursor: pointer;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color 0.2s ease;
}

.app-header .back-btn:hover {
	color: #0066cc;
}

.app-content {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	overflow-y: auto;
}

.app-card {
	background: #ffffff;
	border-radius: 12px;
	padding: 2rem;
	width: 100%;
	max-width: 420px;
	border: 1px solid #f0f0f0;
}

.app-card h1 {
	font-size: 1.75rem;
	font-weight: 700;
	color: #333;
	margin-bottom: 0.5rem;
	margin-top: 0;
}

.app-card .subtitle {
	font-size: 0.95rem;
	color: #666;
	margin-bottom: 1.5rem;
	line-height: 1.4;
}

.form-group {
	margin-bottom: 1.2rem;
}

.form-group label {
	display: block;
	font-size: 0.9rem;
	font-weight: 500;
	color: #333;
	margin-bottom: 0.5rem;
}

.form-group input {
	width: 100%;
	padding: 0.7rem 0.9rem;
	border: 1px solid #d0d0d0;
	border-radius: 6px;
	font-size: 1rem;
	transition: border-color 0.2s ease;
	background: #fafafa;
	box-sizing: border-box;
}

.form-group input:focus {
	outline: none;
	border-color: #0066cc;
	background: #ffffff;
}

.form-group input::placeholder {
	color: #999;
}

.btn-primary {
	width: 100%;
	padding: 0.75rem 1rem;
	background: #0066cc;
	color: white;
	border: none;
	border-radius: 6px;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}

.btn-primary:hover {
	background: #0052a3;
}

.btn-primary:active {
	background: #003d7a;
}

.btn-primary:disabled {
	background: #999;
	cursor: not-allowed;
}

.divider {
	display: flex;
	align-items: center;
	margin: 1.5rem 0;
}

.divider::before,
.divider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: #e0e0e0;
}

.divider-text {
	margin: 0 1rem;
	color: #999;
	font-size: 0.9rem;
}

.login-alternative {
	text-align: center;
	margin-bottom: 1.5rem;
}

.login-alternative-text {
	font-size: 0.95rem;
	color: #666;
	margin-bottom: 0.75rem;
	margin-top: 0;
}

.btn-secondary {
	width: 100%;
	padding: 0.75rem 1rem;
	background: transparent;
	color: #0066cc;
	border: 1px solid #0066cc;
	border-radius: 6px;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
}

.btn-secondary.mt-2 {
	margin-top: 0.75rem;
}

.btn-secondary:hover {
	background: #0066cc;
	color: white;
}

.btn-secondary:active {
	background: #0052a3;
}

.btn-secondary:disabled {
	background: #e0e0e0;
	border-color: #e0e0e0;
	color: #999;
	cursor: not-allowed;
}

.login-footer {
	text-align: center;
	font-size: 0.8rem;
	color: #999;
	margin-top: 1.5rem;
	line-height: 1.5;
}

.login-footer a {
	color: #0066cc;
	text-decoration: none;
	font-weight: 600;
	transition: color 0.2s ease;
}

.login-footer a:hover {
	color: #0052a3;
	text-decoration: underline;
}

/* Toggle between email and pin form */
.form-section {
	display: none;
}

.form-section.active {
	display: block;
	animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.loading {
	display: inline-block;
	margin-right: 0.5rem;
}

.loading i {
	animation: spin 1s linear infinite;
}

@keyframes spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

.error-message {
	color: #dc3545;
	font-size: 0.8rem;
	margin-top: 0.4rem;
	display: none;
}

.error-message.show {
	display: block;
}

/* PIN Input Styles */
.pin-input-container {
	display: flex;
	justify-content: center;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.pin-box {
	width: 3.5rem;
	height: 5rem;
	border: 2px solid #d0d0d0;
	border-radius: 8px;
	text-align: center;
	font-size: 1.5rem;
	font-weight: 600;
	color: #333;
	transition: all 0.2s ease;
	background: #fff;
}

.pin-box:focus {
	outline: none;
	border-color: #0066cc;
}

/* Numeric Keypad */
.numeric-keypad {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin-bottom: 1.5rem;
	border: 2px solid var(--border-color);
	border-radius: 16px;
	overflow: hidden;
}

.keypad-btn {
	padding: 0.75rem;
	height: 72px;
	border: 1px solid var(--border-color);
	background: #fff;
	font-size: 1.4rem;
	font-weight: 600;
	color: #333;
	cursor: pointer;
	transition: all 0.2s ease;
}

.keypad-btn:active {
	background: #e0e0e0;
	transform: scale(0.98);
}

.keypad-btn:disabled {
	background: #f5f5f5;
	color: #999;
	cursor: not-allowed;
}

.keypad-btn.empty-btn {
	background: transparent;
	border: none;
	cursor: default;
	background: var(--border-color);
}

.keypad-btn.empty-btn:active {
	background: transparent;
	transform: none;
}

.keypad-btn i {
	font-size: 1.2rem;
}

/* Resend PIN Link */
.resend-link {
	color: #0066cc;
	text-decoration: none;
	font-weight: 600;
	cursor: pointer;
	transition: color 0.2s ease;
}

.resend-link:hover {
	color: #0052a3;
	text-decoration: underline;
}

.resend-link.disabled {
	color: #999;
	cursor: not-allowed;
	text-decoration: none;
}

.resend-link.disabled:hover {
	text-decoration: none;
}

.small-text {
	font-size: 0.9rem;
	color: #666;
	margin: 0;
}

/* Mobile specific */
@media (max-width: 480px) {
	.login-card {
		padding: 1.5rem;
		border-radius: 10px;
	}

	.login-card h1 {
		font-size: 1.5rem;
	}

	.login-content {
		padding: 1rem;
	}

	.pin-box {
		width: 2.8rem;
		height: 2.8rem;
		font-size: 1.3rem;
	}

	.keypad-btn {
		padding: 0.65rem;
		font-size: 1rem;
	}
}

/* ========================================
   HOME PAGE STYLES
   ======================================== */

/* Home Page Container */
.home-page {
	padding-bottom: 80px; /* Space for bottom nav */
	overflow-y: auto;
	position: relative;
}

/* Top Header with Logo */
.top-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 0;
	margin-bottom: 1rem;
	background: #fff;
}

.hamburger-btn {
	background: transparent;
	border: none;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	border-radius: 8px;
	transition: background 0.2s ease;
}

.hamburger-btn:hover {
	background: #f5f5f5;
}

.hamburger-btn i {
	font-size: 1.3rem;
	color: #333;
}

.logo-header {
	display: flex;
	align-items: center;
	font-size: 1.4rem;
	font-weight: 600;
	color: #1a1a1a;
}

.logo-header i {
	font-size: 1.3rem;
	color: #4a7cff;
}

.notification-btn {
	background: transparent;
	border: none;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	border-radius: 8px;
	transition: background 0.2s ease;
	position: relative;
}

.notification-btn:hover {
	background: #f5f5f5;
}

.notification-btn i {
	font-size: 1.3rem;
	color: #333;
}

.notification-badge {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 8px;
	height: 8px;
	background: #ff4444;
	border-radius: 50%;
	border: 2px solid #fff;
}

/* User Profile Section */
.user-profile-section {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem 0;
	/* margin-bottom: 1.5rem; */
}

.profile-photo {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid #f0f0f0;
}

.profile-photo-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #eef3ff;
	color: #4a7cff;
	font-size: 2rem;
}

.menu-grid-item-locked,
.nav-item-locked {
	cursor: not-allowed;
}

.menu-grid-item.menu-grid-item-locked .menu-grid-icon {
	background: #f5f7fc;
}
.menu-grid-item-locked .menu-grid-icon > i:not(.menu-lock-badge),
.menu-grid-item-locked .menu-grid-label,
.menu-grid-item-locked .menu-grid-desc,
.nav-item-locked .tab-icon-locked > i:first-child,
.nav-item-locked > span:not(.tab-icon-locked) {
	opacity: 0.52;
}

.menu-grid-item-locked:hover {
	transform: none;
}
.menu-grid-item.menu-grid-item-locked:hover .menu-grid-icon {
	background: #f5f7fc;
}

.user-info {
	flex: 1;
}

.greeting {
	font-size: 1.5rem;
	font-weight: 700;
	color: #1a1a1a;
	margin: 0 0 0.25rem 0;
	line-height: 1.2;
}

.greeting-subtitle {
	font-size: 0.9rem;
	color: #666;
	margin: 0 0 0.5rem 0;
}

.verification-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	background: #e8f5e9;
	padding: 0.35rem 0.75rem;
	border-radius: 20px;
	font-size: 0.8rem;
	color: #2e7d32;
	font-weight: 500;
}

.verification-badge i {
	font-size: 0.9rem;
}

.kyc-notice {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
	margin: 0 0 1.25rem;
	padding: 1rem;
	border: 1px solid #f2d388;
	border-radius: 14px;
	background: #fff8e6;
	color: #765815;
}

.kyc-notice > i {
	font-size: 1.35rem;
	margin-top: 0.1rem;
}
.kyc-notice strong,
.kyc-notice span {
	display: block;
}
.kyc-notice span {
	margin-top: 0.2rem;
	font-size: 0.82rem;
	line-height: 1.45;
}
.kyc-notice-submitted {
	border-color: #b8d3ff;
	background: #eef5ff;
	color: #245ba8;
}

.kyc-coming-soon-page,
.kyc-form-page {
	padding-top: 1.5rem;
}
.kyc-back {
	color: #5a6572;
	font-size: 0.9rem;
	text-decoration: none;
}
.kyc-coming-soon-card,
.kyc-form-card {
	margin-top: 1.5rem;
	padding: 2rem 1.5rem;
	border: 1px solid #e6ebf7;
	border-radius: 20px;
	background: #fff;
	text-align: center;
}
.kyc-coming-soon-icon {
	width: 64px;
	height: 64px;
	margin: 0 auto 1rem;
	border-radius: 18px;
	background: #eef3ff;
	color: #2f6bff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.7rem;
}
.kyc-coming-soon-card h1,
.kyc-form-card h1 {
	margin: 0 0 0.6rem;
	color: #1a2233;
	font-size: 1.35rem;
}
.kyc-coming-soon-card p,
.kyc-form-card > p {
	margin: 0;
	color: #6b7684;
	font-size: 0.9rem;
	line-height: 1.55;
}
.kyc-home-button {
	display: inline-block;
	margin-top: 1.5rem;
	padding: 0.75rem 1rem;
	border-radius: 10px;
	background: #2f6bff;
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}
.kyc-form {
	margin-top: 1.25rem;
	text-align: left;
}
.kyc-step {
	display: none;
}
.kyc-step.active {
	display: block;
}
.kyc-step h2 {
	margin: 0 0 1rem;
	color: #1a2233;
	font-size: 1.05rem;
}
.kyc-steps {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	margin: 1.25rem 0 0;
}
.kyc-steps span {
	width: 27px;
	height: 27px;
	border-radius: 50%;
	background: #e6ebf2;
	color: #7b8794;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.78rem;
	font-weight: 700;
}
.kyc-steps span.active {
	background: #2f6bff;
	color: #fff;
}
.kyc-steps i {
	width: 34px;
	height: 2px;
	background: #e6ebf2;
}
.kyc-form label {
	display: block;
	margin-bottom: 1rem;
	color: #344054;
	font-size: 0.84rem;
	font-weight: 600;
}
.kyc-form label small {
	display: block;
	margin-top: 0.35rem;
	color: #7b8794;
	font-size: 0.72rem;
	font-weight: 400;
}
.kyc-form input,
.kyc-form select,
.kyc-form textarea {
	display: block;
	width: 100%;
	margin-top: 0.4rem;
	padding: 0.75rem;
	border: 1px solid #dbe2ea;
	border-radius: 10px;
	background: #fff;
	color: #1a2233;
	font: inherit;
}
.kyc-form input:disabled {
	background: #f4f6f8;
	color: #7b8794;
	cursor: not-allowed;
}
.kyc-form input[type="file"] {
	padding: 0.55rem;
	font-size: 0.78rem;
}
.kyc-image-preview {
	display: none;
	width: 100%;
	max-height: 210px;
	margin-top: 0.6rem;
	border: 1px solid #dbe2ea;
	border-radius: 10px;
	object-fit: contain;
	background: #f8fafc;
}
.kyc-image-preview[src] {
	display: block;
}
.kyc-form .kyc-home-button {
	width: 100%;
	border: 0;
	cursor: pointer;
}
.kyc-actions {
	display: flex;
	gap: 0.75rem;
}
.kyc-actions .kyc-home-button {
	margin-top: 0;
}
.kyc-actions > * {
	flex: 1;
	margin-top: 0;
	text-align: center;
}
.kyc-secondary-button {
	padding: 0.75rem 1rem;
	border: 1px solid #dbe2ea;
	border-radius: 10px;
	background: #fff;
	color: #475467;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.kyc-file-note,
.kyc-form-error {
	margin: 0 0 1rem;
	font-size: 0.78rem;
	line-height: 1.45;
}
.kyc-file-note {
	color: #6b7684;
}
.kyc-form-error {
	padding: 0.9rem 1rem;
	border: 1px solid #ef9a9a;
	border-left: 4px solid #d32f2f;
	border-radius: 10px;
	background: #fff0f0;
	color: #b42318;
	font-size: 0.88rem;
	font-weight: 600;
	box-shadow: 0 3px 10px rgba(180, 35, 24, 0.12);
}
.kyc-form-error[hidden] {
	display: none;
}

/* Notification Overlay */
.notification-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	z-index: 999;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
}

.notification-overlay.show {
	opacity: 1;
	visibility: visible;
}

/* Notification Popup */
.notification-popup {
	position: fixed;
	top: 65px;
	right: 10px;
	width: 320px;
	max-width: calc(100vw - 20px);
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
	z-index: 1000;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-10px);
	transition: all 0.3s ease;
}

.notification-popup.show {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.notification-popup-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--border-color);
}

.notification-popup-header h4 {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
	color: #1a1a1a;
}

.close-popup {
	width: 28px;
	height: 28px;
	background: transparent;
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	border-radius: 6px;
	transition: background 0.2s ease;
}

.close-popup:hover {
	background: #f0f0f0;
}

.close-popup i {
	font-size: 1rem;
	color: #666;
}

.notification-popup-body {
	padding: 1.5rem;
	max-height: 400px;
	overflow-y: auto;
}

.no-notification {
	text-align: center;
	padding: 2rem 1rem;
	color: #999;
}

.no-notification i {
	font-size: 3rem;
	margin-bottom: 1rem;
	color: #ddd;
}

.no-notification p {
	margin: 0;
	font-size: 0.95rem;
	color: #666;
}

/* Antifraud Card */
.antifraud-card {
	background: linear-gradient(135deg, #4a7cff 0%, #5b8dff 100%);
	border-radius: 16px;
	padding: 1.5rem;
	margin-bottom: 1.5rem;
	box-shadow: 0 4px 12px rgba(74, 124, 255, 0.2);
	text-decoration: none;
}

.antifraud-card:hover {
	box-shadow: 0 6px 16px rgba(74, 124, 255, 0.3);
}

.antifraud-card-green,
.antifraud-card-green:hover {
	background: linear-gradient(135deg, #167447 0%, #22a05a 100%);
	box-shadow: 0 4px 12px rgba(22, 116, 71, 0.2);
}

.antifraud-card-red,
.antifraud-card-red:hover {
	background: linear-gradient(135deg, #dc3545 0%, #ef5350 100%);
	box-shadow: 0 4px 12px rgba(220, 53, 69, 0.2);
}

.antifraud-card-orange,
.antifraud-card-orange:hover {
	background: linear-gradient(135deg, #ea580c 0%, #f97316 100%);
	box-shadow: 0 4px 12px rgba(234, 88, 12, 0.2);
}

.antifraud-card-black,
.antifraud-card-black:hover {
	background: #171717;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.24);
}

.home-status-link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: #167447;
	font-size: 0.8rem;
	font-weight: 600;
	text-decoration: none;
}

.home-status-link i {
	font-size: 0.55rem;
}

.antifraud-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.antifraud-details {
	flex: 1;
}

.antifraud-label {
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.9);
	margin: 0 0 0.5rem 0;
}

.antifraud-score {
	font-size: 2.75rem;
	font-weight: 700;
	color: #fff;
	margin: 0;
	line-height: 1;
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
}

.antifraud-max {
	font-size: 1.25rem;
	color: rgba(255, 255, 255, 0.8);
	font-weight: 400;
}

.antifraud-status-label {
	font-size: 0.95rem;
	color: #fff;
	margin: 0.5rem 0;
	font-weight: 600;
	display: inline-block;
	padding: 0.25rem 0.75rem;
	background: rgba(76, 175, 80, 0.3);
	border-radius: 12px;
}

.antifraud-progress {
	width: 100%;
	height: 8px;
	background: rgba(255, 255, 255, 0.3);
	border-radius: 10px;
	overflow: hidden;
	margin: 0.75rem 0;
}

.antifraud-progress-bar {
	height: 100%;
	background: #4caf50;
	border-radius: 10px;
	transition: width 0.5s ease;
}

.antifraud-expiry {
	font-size: 0.8rem;
	color: rgba(255, 255, 255, 0.8);
	margin: 0;
}

.antifraud-icon {
	background: rgba(255, 255, 255, 0.2);
	width: 70px;
	height: 70px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.antifraud-icon i {
	font-size: 2.2rem;
	color: #fff;
}

/* Summary Section */
.summary-section {
	margin-bottom: 1.5rem;
}

.summary-section .summary-card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.summary-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1rem;
}

.summary-header h3 {
	font-size: 1.1rem;
	font-weight: 600;
	color: #1a1a1a;
	margin: 0;
}

.month-selector {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 0.5rem 0.75rem;
	font-size: 0.9rem;
	color: #4a7cff;
	font-weight: 600;
	cursor: pointer;
	outline: none;
	transition: border-color 0.2s ease;
}

.month-selector:hover {
	border-color: #4a7cff;
}

.summary-cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.summary-card {
	border-radius: 12px;
	padding: 1.25rem;
	border: 1px solid var(--border-color);
}

.summary-label {
	font-size: 0.85rem;
	color: #666;
	margin: 0 0 0.75rem 0;
}

.summary-value {
	font-size: 2rem;
	font-weight: 700;
	color: #1a1a1a;
	margin: 0 0 0.5rem 0;
	line-height: 1;
}

.summary-total {
	font-size: 1.5rem;
	color: #999;
	font-weight: 400;
}

.summary-trend {
	font-size: 0.8rem;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.25rem;
}

.summary-trend.positive {
	color: #28a745;
}

.summary-trend i {
	font-size: 0.7rem;
}

.summary-info {
	font-size: 0.8rem;
	color: #666;
	margin: 0;
}

.summary-comparison {
	font-size: 0.8rem;
	margin: 0.5rem 0 0 0;
	display: flex;
	align-items: center;
	gap: 0.35rem;
	font-weight: 500;
}

.summary-comparison.text-success {
	color: #28a745;
}

.summary-comparison.text-danger {
	color: #dc3545;
}

.summary-comparison.text-muted {
	color: #999;
}

.summary-comparison i {
	font-size: 0.75rem;
}

/* Menu Grid */
.menu-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.menu-grid-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-decoration: none;
	padding: 0.75rem 0.5rem;
	transition: transform 0.2s ease;
}

.menu-grid-item:hover {
	transform: translateY(-2px);
}

.menu-grid-icon {
	position: relative;
	width: 48px;
	height: 48px;
	background: #f0f4ff;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 0.5rem;
	transition: all 0.2s ease;
}

.menu-grid-item:hover .menu-grid-icon {
	background: #e3edff;
}

.menu-grid-icon i {
	font-size: 1.3rem;
	color: #4a7cff;
}

.menu-lock-badge,
.nav-lock-badge {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	box-shadow: 0 0 0 2px #fff;
	border-radius: 50%;
	background: #dc3545;
	color: #fff !important;
}

.menu-lock-badge {
	right: -7px;
	top: -7px;
	width: 19px;
	height: 19px;
	font-size: 0.62rem !important;
}

.menu-grid-label {
	font-size: 0.75rem;
	font-weight: 600;
	color: #1a1a1a;
	text-align: center;
	line-height: 1.2;
	margin-bottom: 0.25rem;
}

.menu-grid-desc {
	font-size: 0.65rem;
	color: #999;
	text-align: center;
	margin: 0;
	line-height: 1.2;
}

/* Next Schedule Section */
.next-schedule-section {
	margin-bottom: 1.5rem;
}

.section-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1rem;
}

.section-header h3 {
	font-size: 1.1rem;
	font-weight: 600;
	color: #1a1a1a;
	margin: 0;
}

.view-all-link {
	font-size: 0.85rem;
	color: #4a7cff;
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: 0.25rem;
	font-weight: 500;
	transition: gap 0.2s ease;
}

.view-all-link:hover {
	gap: 0.5rem;
}

.view-all-link i {
	font-size: 0.7rem;
}

/* Schedule Card */
.schedule-card {
	background: #fff;
	border: 1px solid var(--border-color);
	border-radius: 16px;
	padding: 1.25rem;
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	transition: box-shadow 0.2s ease;
}

.schedule-card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.schedule-date-box {
	background: #f0f4ff;
	border-radius: 12px;
	padding: 0.75rem;
	text-align: center;
	min-width: 70px;
}

.schedule-day {
	font-size: 0.7rem;
	color: #666;
	text-transform: uppercase;
	margin-bottom: 0.25rem;
}

.schedule-date-num {
	font-size: 1.75rem;
	font-weight: 700;
	color: #1a1a1a;
	line-height: 1;
	margin-bottom: 0.25rem;
}

.schedule-month {
	font-size: 0.75rem;
	color: #666;
}

.schedule-details {
	flex: 1;
}

.schedule-outlet {
	font-size: 1rem;
	font-weight: 600;
	color: #1a1a1a;
	margin: 0 0 0.35rem 0;
}

.schedule-address {
	font-size: 0.8rem;
	color: #666;
	margin: 0 0 0.5rem 0;
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

.schedule-time {
	font-size: 0.85rem;
	color: #666;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

.schedule-time i {
	color: #4a7cff;
}

.schedule-status {
	display: flex;
	align-items: flex-start;
}

.status-badge {
	font-size: 0.75rem;
	padding: 0.35rem 0.75rem;
	border-radius: 12px;
	font-weight: 600;
	white-space: nowrap;
}

.status-confirmed {
	background: #e8f5e9;
	color: #2e7d32;
}

.status-pending {
	background: #fff3e0;
	color: #f57c00;
}

.empty-schedule {
	text-align: center;
	padding: 2.5rem 1rem;
	background: #fafafa;
	border-radius: 16px;
	color: #999;
}

.empty-schedule i {
	font-size: 2.5rem;
	margin-bottom: 1rem;
	color: #ddd;
}

.empty-schedule p {
	margin: 0;
	font-size: 0.9rem;
	color: #666;
}

/* Marketing Banner */
.marketing-banner {
	background: linear-gradient(135deg, #e3f2fd 0%, #f0f4ff 100%);
	border-radius: 16px;
	padding: 1.5rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1.5rem;
	position: relative;
}

.banner-content {
	flex: 1;
	z-index: 1;
}

.banner-content h3 {
	font-size: 1.2rem;
	font-weight: 700;
	color: #1a1a1a;
	margin: 0 0 0.5rem 0;
	line-height: 1.3;
}

.banner-content p {
	font-size: 0.85rem;
	color: #666;
	margin: 0;
	line-height: 1.4;
}
.banner-image {
	width: 240px;
	height: 240px;
	flex-shrink: 0;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	position: absolute;
	right: 0;
	bottom: 0px;
	z-index: 9;
}

.banner-image img {
	width: 100%;
	height: auto;
	object-fit: contain;
}

.banner-image-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #c8d6f4;
	font-size: 4rem;
}

/* Menu List (Old - Hidden) */
.menu-list {
	border-radius: 12px;
	padding: 0.5rem;
	margin-bottom: 1rem;
	border: 1px solid var(--border-color);
}

.menu-item {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	padding: 1rem;
	background: #fff;
	margin-bottom: 0.5rem;
	text-decoration: none;
	transition: all 0.2s ease;
}

.menu-item:last-child {
	margin-bottom: 0;
	border-bottom: none;
}

.menu-item:hover {
	background: #f8f9fa;
	transform: translateX(2px);
}

.menu-icon {
	width: 44px;
	height: 44px;
	background: #f0f4ff;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-bottom: 8px;
}

.menu-icon i {
	font-size: 1.2rem;
	color: #4a7cff;
}

.menu-content {
	flex: 1;
	justify-content: center;
	align-items: center;
}

.menu-title {
	font-size: 0.8rem;
	font-weight: 600;
	color: #1a1a1a;
	margin: 0 0 0.25rem 0;
	text-align: center;
}

.menu-subtitle {
	font-size: 0.7rem;
	color: #666;
	margin: 0;
	text-align: center;
}

.menu-arrow {
	font-size: 0.9rem;
	color: #999;
}

/* Bottom Navigation Bar */
.bottom-nav {
	position: fixed;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	max-width: 480px;
	background: #fff;
	border-top: 1px solid var(--border-color);
	display: flex;
	justify-content: space-around;
	padding: 0.75rem 0;
	z-index: 100;
}

.nav-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-decoration: none;
	color: #999;
	font-size: 0.75rem;
	transition: color 0.2s ease;
	flex: 1;
	padding: 0.25rem;
}

.nav-item i {
	font-size: 1.3rem;
	margin-bottom: 0.25rem;
}

.tab-icon-locked {
	position: relative;
	display: inline-flex;
}

.tab-icon-locked > i {
	margin-bottom: 0.25rem;
}
.nav-lock-badge {
	right: -8px;
	top: -4px;
	width: 16px;
	height: 16px;
	margin: 0 !important;
	font-size: 0.52rem !important;
}

.nav-item span {
	font-weight: 500;
}

.nav-item:hover {
	color: #666;
}

.nav-item.active {
	color: #4a7cff;
}

.nav-item.active i {
	color: #4a7cff;
}

/* Responsive Adjustments */
@media (max-width: 480px) {
	.top-header {
		padding: 0.75rem 0;
	}

	.logo-header {
		font-size: 0.9rem;
	}

	.logo-header i {
		font-size: 1.1rem;
	}

	.user-profile-section {
		padding: 0.75rem 0;
		/* margin-bottom: 1rem; */
	}

	.profile-photo {
		width: 70px;
		height: 70px;
	}

	.greeting {
		font-size: 1.3rem;
	}

	.greeting-subtitle {
		font-size: 0.85rem;
	}

	.notification-popup {
		width: calc(100vw - 20px);
		right: 10px;
	}

	.antifraud-card {
		padding: 1.25rem;
	}

	.antifraud-score {
		font-size: 2.25rem;
	}

	.antifraud-icon {
		width: 60px;
		height: 60px;
	}

	.antifraud-icon i {
		font-size: 1.9rem;
	}

	.summary-cards {
		gap: 0.75rem;
	}

	.summary-card {
		padding: 1rem;
	}

	.summary-value {
		font-size: 1.75rem;
	}

	.menu-grid-icon {
		width: 44px;
		height: 44px;
	}

	.menu-grid-icon i {
		font-size: 1.2rem;
	}

	.menu-grid-label {
		font-size: 0.7rem;
	}

	.menu-grid-desc {
		font-size: 0.6rem;
	}

	.schedule-card {
		padding: 1rem;
		gap: 0.75rem;
	}

	.schedule-date-box {
		min-width: 60px;
		padding: 0.5rem;
	}

	.schedule-date-num {
		font-size: 1.5rem;
	}

	.marketing-banner {
		padding: 1.25rem;
	}

	.banner-content h3 {
		font-size: 1.1rem;
	}

	.banner-content p {
		font-size: 0.8rem;
	}

	.banner-image {
		width: 210px;
		height: 210px;
	}

	.menu-item {
		padding: 0.85rem;
	}

	.menu-icon {
		width: 40px;
		height: 40px;
	}

	.menu-icon i {
		font-size: 1.1rem;
	}

	.bottom-nav {
		padding: 0.5rem 0;
	}

	.nav-item i {
		font-size: 1.2rem;
	}
}

/* Extra Small Devices (below 360px) */
@media (max-width: 360px) {
	.logo-header {
		font-size: 0.8rem;
	}

	.profile-photo {
		width: 60px;
		height: 60px;
	}

	.greeting {
		font-size: 1.2rem;
	}

	.greeting-subtitle {
		font-size: 0.8rem;
	}

	.verification-badge {
		font-size: 0.7rem;
		padding: 0.3rem 0.6rem;
	}

	.antifraud-score {
		font-size: 2rem;
	}

	.menu-grid {
		gap: 0.5rem;
	}

	.menu-grid-icon {
		width: 40px;
		height: 40px;
	}

	.menu-grid-icon i {
		font-size: 1.1rem;
	}

	.menu-grid-label {
		font-size: 0.65rem;
	}

	.menu-grid-desc {
		font-size: 0.55rem;
	}

	.schedule-date-box {
		min-width: 55px;
		padding: 0.5rem;
	}

	.schedule-date-num {
		font-size: 1.3rem;
	}

	.banner-content h3 {
		font-size: 1rem;
	}

	.banner-content p {
		font-size: 0.75rem;
	}
}

/* ========================================
   NILAI PAGE STYLES
   ======================================== */

/* Nilai Page Container */
.nilai-page {
	padding-bottom: 2rem;
}

.page-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: #1a1a1a;
	margin: 0;
	flex: 1;
	text-align: center;
}

.header-spacer {
	/* width: 40px; Same as back button to center title */
}

/* Nilai Content */
.nilai-content {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

/* Total Nilai Card */
.total-nilai-card {
	background: #fff;
	border-radius: 18px;
	padding: 1.5rem;
	border: 1px solid var(--border-color);
	box-shadow: 0 8px 24px rgba(24, 39, 75, 0.06);
}

.card-label {
	font-size: 0.9rem;
	color: #666;
	margin: 0 0 1rem 0;
	font-weight: 500;
}

.nilai-score-wrapper {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	margin-bottom: 1.25rem;
}

.nilai-score {
	font-size: 3.4rem;
	font-weight: 700;
	color: #1a1a1a;
	margin: 0;
	line-height: 1;
}

.nilai-max {
	font-size: 1.15rem;
	color: #999;
	font-weight: 400;
}

.nilai-badge {
	background: var(--core-green);
	color: #fff;
	padding: 0.35rem 0.85rem;
	border-radius: 20px;
	font-size: 0.85rem;
	font-weight: 600;
	margin-left: auto;
}

.nilai-badge.status-green {
	background: var(--core-green);
}

.nilai-badge.status-red {
	background: var(--danger-color);
}

.nilai-badge.status-orange {
	background: #f97316;
}

.nilai-badge.status-black {
	background: #1f2937;
}

.nilai-state-green .nilai-score {
	color: var(--core-green);
}

.nilai-state-green .progress-bar-fill {
	background: var(--core-green);
}

.nilai-state-red .nilai-score {
	color: var(--danger-color);
}

.nilai-state-red .progress-bar-fill {
	background: var(--danger-color);
}

.nilai-state-orange .nilai-score {
	color: #f97316;
}

.nilai-state-orange .progress-bar-fill {
	background: #f97316;
}

.nilai-state-black .nilai-score {
	color: #1f2937;
}

.nilai-state-black .progress-bar-fill {
	background: #1f2937;
}

/* Progress Bar */
.progress-bar-container {
	width: 100%;
	height: 8px;
	background: var(--border-color);
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 0.85rem;
}

.progress-bar-fill {
	height: 100%;
	background: var(--primary-color);
	border-radius: 10px;
	transition: width 0.3s ease;
}

.last-updated {
	font-size: 0.85rem;
	color: #999;
	margin: 0;
}

.last-updated i {
	margin-right: 0.25rem;
}

.status-note {
	font-size: 0.85rem;
	font-weight: 600;
	margin: 0 0 0.25rem;
}

/* Breakdown List */
.breakdown-list {
	background: #fff;
	border-radius: 16px;
	padding: 0 0.85rem;
	border: 1px solid var(--border-color);
}

.nilai-section-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0.25rem 0 -0.25rem;
}

.nilai-section-heading h3 {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	color: #20242d;
}

.nilai-section-heading p {
	margin: 0.2rem 0 0;
	font-size: 0.8rem;
	color: #8a909c;
}

.breakdown-item {
	display: flex;
	align-items: center;
	padding: 0.9rem 0;
	border-bottom: 1px solid var(--border-color);
	transition: background 0.2s ease;
}

.breakdown-item:last-child {
	border-bottom: none;
}

.breakdown-item:hover {
	background: #f8f9fa;
}

.breakdown-icon {
	width: 38px;
	height: 38px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 0.8rem;
	flex-shrink: 0;
	background: #eef4ff;
}

.breakdown-icon i {
	font-size: 1.1rem;
	color: var(--primary-color);
}

.breakdown-content {
	flex: 1;
}

.breakdown-label {
	font-size: 0.92rem;
	font-weight: 600;
	color: #1a1a1a;
	margin: 0;
}

.breakdown-status {
	font-size: 0.78rem;
	color: #8a909c;
	margin: 0.15rem 0 0;
}

.status-text {
	color: var(--success-color);
	font-weight: 600;
	font-size: 0.82rem;
}

.status-text i {
	margin-right: 0.15rem;
}

.breakdown-score {
	display: flex;
	align-items: baseline;
	gap: 0.25rem;
	flex-shrink: 0;
}

.score-value {
	font-size: 1.25rem;
	font-weight: 700;
	color: #1a1a1a;
}

.score-deduction {
	color: var(--danger-color);
	background: #fff0f0;
	border-radius: 8px;
	padding: 0.2rem 0.45rem;
}

.score-max {
	font-size: 1rem;
	color: #999;
	font-weight: 400;
}

/* Total Row */
.breakdown-total {
	background: #f8f9fa;
	border-radius: 12px;
	margin-top: 0.5rem;
	border: none;
}

.breakdown-total .breakdown-icon i {
	color: var(--primary-color);
}

.breakdown-total .score-value.total {
	font-size: 1.5rem;
	color: #4a7cff;
}

.breakdown-total .score-max.total {
	font-size: 1.1rem;
	color: #4a7cff;
}

/* Info Box */
.info-box {
	background: #e8f2ff;
	border-radius: 12px;
	padding: 1rem;
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	border: 1px solid #d0e7ff;
}

.info-icon {
	flex-shrink: 0;
	color: #4a7cff;
}

.info-icon i {
	font-size: 1.5rem;
}

.info-content {
	flex: 1;
}

.info-title {
	font-size: 0.95rem;
	font-weight: 600;
	color: #1a1a1a;
	margin: 0 0 0.25rem 0;
}

.info-text {
	font-size: 0.85rem;
	color: #666;
	margin: 0;
	line-height: 1.4;
}

/* Responsive Adjustments for Nilai Page */
@media (max-width: 480px) {
	.page-title {
		font-size: 1.1rem;
	}

	.total-nilai-card {
		padding: 1.25rem;
	}

	.nilai-score {
		font-size: 2.5rem;
	}

	.nilai-max {
		font-size: 1.25rem;
	}

	.nilai-badge {
		padding: 0.3rem 0.7rem;
		font-size: 0.8rem;
	}

	.breakdown-item {
		padding: 0.85rem;
	}

	.breakdown-icon {
		width: 36px;
		height: 36px;
	}

	.breakdown-icon i {
		font-size: 1rem;
	}

	.score-value {
		font-size: 1.1rem;
	}

	.score-max {
		font-size: 0.9rem;
	}

	.breakdown-total .score-value.total {
		font-size: 1.3rem;
	}

	.info-box {
		padding: 0.85rem;
		gap: 0.75rem;
	}

	.info-icon i {
		font-size: 1.3rem;
	}
}

/* ========================================
   OUTLET PAGE STYLES
   ======================================== */

/* Outlet Page Container */
.outlet-page {
	padding-bottom: 2rem;
}

/* Outlet Content */
.outlet-content {
	display: flex;
	flex-direction: column;
}

/* Info Box Variations */
.info-box-top,
.info-box-bottom {
	background: #e8f2ff;
	border-radius: 12px;
	padding: 1rem;
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	border: 1px solid #d0e7ff;
}

.info-content {
	flex: 1;
}

.info-title {
	font-size: 0.95rem;
	font-weight: 600;
	color: #1a1a1a;
	margin: 0 0 0.25rem 0;
}

.info-text {
	font-size: 0.85rem;
	color: #666;
	margin: 0;
	line-height: 1.5;
}

/* Outlet List */
.outlet-list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.outlet-item {
	display: flex;
	align-items: center;
	padding: 1.25rem;
	background: #fff;
	border-radius: 8px;
	border: 1px solid var(--border-color);
	text-decoration: none;
	transition: all 0.2s ease;
}

.outlet-item:hover {
	background: #f8f9fa;
	transform: translateY(-2px);
}

.outlet-icon {
	width: 48px;
	height: 48px;
	background: #f0f4ff;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 1rem;
	flex-shrink: 0;
}

.outlet-icon i {
	font-size: 1.4rem;
	color: #4a7cff;
}

.outlet-content {
	flex: 1;
}

.outlet-name {
	font-size: 1.05rem;
	font-weight: 600;
	color: #1a1a1a;
	margin: 0 0 0.4rem 0;
}

.outlet-address {
	font-size: 0.85rem;
	color: #666;
	margin: 0;
	display: flex;
	align-items: flex-start;
	gap: 0.4rem;
}

.outlet-address i {
	font-size: 0.8rem;
	color: #999;
}

.outlet-arrow {
	font-size: 1rem;
	color: #999;
	flex-shrink: 0;
}

/* Responsive Adjustments for Outlet Page */
@media (max-width: 480px) {
	.info-box-top,
	.info-box-bottom {
		padding: 0.85rem;
		gap: 0.75rem;
	}

	.outlet-item {
		padding: 1rem;
	}

	.outlet-icon {
		width: 44px;
		height: 44px;
	}

	.outlet-icon i {
		font-size: 1.2rem;
	}

	.outlet-name {
		font-size: 1rem;
	}

	.outlet-address {
		font-size: 0.8rem;
	}
}

/* ========================================
   RIWAYAT KERJA PAGE STYLES
   ======================================== */

/* Riwayat Page Container */
.riwayat-page {
	padding-bottom: 2rem;
}

/* Month Filter */
.month-filter-container {
	background: #ffffff;
	padding: 1rem 1.5rem;
	margin: 0 0 1rem 0;
	border-radius: 12px;
	border: 1px solid var(--border-color);
	display: flex;
	align-items: center;
	gap: 1rem;
}

.filter-label {
	font-size: 0.9rem;
	font-weight: 600;
	color: #2c3e50;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	white-space: nowrap;
}

.filter-label i {
	color: #007bff;
}

.month-filter-select {
	flex: 1;
	padding: 0.6rem 1rem;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	font-size: 0.95rem;
	font-weight: 500;
	color: #2c3e50;
	background: #fff;
	cursor: pointer;
	transition: all 0.3s ease;
}

.month-filter-select:focus {
	outline: none;
	border-color: #007bff;
	background: #ffffff;
}

/* Loading State */
.loading-state {
	text-align: center;
	padding: 3rem 1rem;
	color: #7f8c8d;
	display: none;
}

.loading-state i {
	font-size: 2.5rem;
	color: #007bff;
	margin-bottom: 1rem;
}

.loading-state p {
	font-size: 0.9rem;
	margin: 0;
}

/* Riwayat Content */
.riwayat-content {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/* Tabs Navigation */
.tabs-container {
	display: flex;
	gap: 0.5rem;
	overflow-x: auto;
	border-bottom: 2px solid #f0f0f0;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.tabs-container::-webkit-scrollbar {
	display: none;
}

.tab-item {
	padding: 0.65rem 1.25rem;
	background: transparent;
	border: none;
	color: #999;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	position: relative;
	transition: color 0.2s ease;
	border-bottom: 3px solid transparent;
}

.tab-item:hover {
	color: #666;
}

.tab-item.active {
	color: #4a7cff;
	border-bottom-color: #4a7cff;
}

/* Work History List */
.work-history-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.work-history-item {
	background: #fff;
	border-radius: 12px;
	padding: 1.25rem;
	border: 1px solid var(--border-color);
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	transition: all 0.2s ease;
	position: relative;
}

.work-history-item:hover {
	border: 1px solid #e0e0e0;
	transform: translateY(-2px);
}

.work-date {
	font-size: 1rem;
	font-weight: 600;
	color: #1a1a1a;
	margin-bottom: 0.25rem;
}

.work-details {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9rem;
	color: #666;
}

.work-time {
	color: #666;
}

.work-separator {
	color: #ccc;
}

.work-outlet {
	color: #666;
}

.work-status {
	position: absolute;
	top: 1.25rem;
	right: 1.25rem;
	padding: 0.4rem 0.9rem;
	border-radius: 20px;
	font-size: 0.8rem;
	font-weight: 600;
}

.work-status.status-1 {
	background: #e8f5e9;
	color: #2e7d32;
}

.work-status.status-2 {
	background: #ffebee;
	color: #c62828;
}

.work-status.status-banned {
	background: #f5f5f5;
	color: #757575;
}

.work-status.status-proses {
	background: #fff3e0;
	color: #f57c00;
}

/* Load More Button */
.load-more-container {
	display: flex;
	justify-content: center;
	padding: 1rem 0;
}

.btn-load-more {
	padding: 0.75rem 2rem;
	background: transparent;
	color: #4a7cff;
	border: 2px solid #4a7cff;
	border-radius: 8px;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
}

.btn-load-more:hover {
	background: #4a7cff;
	color: #fff;
}

.btn-load-more:active {
	transform: scale(0.98);
}

/* Responsive Adjustments for Riwayat Page */
@media (max-width: 480px) {
	.month-filter-container {
		padding: 0.875rem 1rem;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.75rem;
	}

	.filter-label {
		font-size: 0.85rem;
	}

	.month-filter-select {
		width: 100%;
		padding: 0.5rem 0.875rem;
		font-size: 0.9rem;
	}

	.tab-item {
		padding: 0.55rem 1rem;
		font-size: 0.9rem;
	}

	.work-history-item {
		padding: 1rem;
	}

	.work-date {
		font-size: 0.95rem;
	}

	.work-details {
		font-size: 0.85rem;
	}

	.work-status {
		top: 1rem;
		right: 1rem;
		padding: 0.35rem 0.75rem;
		font-size: 0.75rem;
	}

	.btn-load-more {
		padding: 0.65rem 1.75rem;
		font-size: 0.9rem;
	}
}

/* ========================================
   ATURAN PAGE STYLES
   ======================================== */

/* Aturan Page Container */
.aturan-page {
	padding-bottom: 2rem;
}

/* Aturan Content */
.aturan-content {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.aturan-intro,
.aturan-section {
	background: #fff;
	border: 1px solid var(--border-color);
	border-radius: 16px;
	padding: 1.1rem;
}

.aturan-intro {
	display: flex;
	gap: 0.85rem;
	align-items: center;
	background: #eef5ff;
	border-color: #cfe1ff;
}
.aturan-intro i {
	color: var(--primary-color);
	font-size: 1.4rem;
}
.aturan-intro span {
	display: block;
	color: #667085;
	font-size: 0.82rem;
	margin-top: 0.1rem;
}
.aturan-section h3 {
	font-size: 1rem;
	margin: 0 0 0.85rem;
	color: var(--primary-color);
}
.aturan-section article {
	padding: 0.75rem 0;
	border-top: 1px solid #edf0f3;
}
.aturan-section article > b,
.aturan-number {
	display: block;
	font-size: 0.88rem;
	color: #20252d;
}
.aturan-section article p,
.aturan-note {
	margin: 0.35rem 0 0;
	color: #596273;
	font-size: 0.82rem;
	line-height: 1.55;
}
.aturan-section article ul,
.aturan-section article ol {
	margin: 0.5rem 0 0;
	padding-left: 1.2rem;
	color: #596273;
	font-size: 0.82rem;
	line-height: 1.55;
}
.aturan-section article li + li {
	margin-top: 0.4rem;
}
.status-rules {
	display: grid;
	gap: 0.55rem;
	margin-top: 0.65rem;
}
.status-rule {
	border-left: 4px solid;
	border-radius: 8px;
	padding: 0.65rem 0.75rem;
	background: #f8fafc;
}
.status-rule strong {
	display: block;
	font-size: 0.78rem;
}
.status-rule span {
	display: block;
	margin-top: 0.2rem;
	font-size: 0.78rem;
	color: #596273;
	line-height: 1.45;
}
.status-rule.active {
	border-color: #22a06b;
}
.status-rule.suspend {
	border-color: #dc3545;
}
.status-rule.restricted {
	border-color: #f59e0b;
}
.status-rule.off {
	border-color: #343a40;
}
.point-rule-table-wrap {
	overflow-x: auto;
}
.point-rule-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.78rem;
}
.point-rule-table th,
.point-rule-table td {
	padding: 0.55rem;
	border: 1px solid #c9cdd2;
}
.point-rule-table thead,
.point-rule-table tfoot {
	background: #e5e5e5;
}
.point-rule-table th:not(:first-child),
.point-rule-table td:not(:first-child) {
	text-align: right;
}

/* Rules List */
.rules-list {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.rule-item {
	background: #fff;
	border-radius: 16px;
	padding: 1.5rem;
	border: 1px solid var(--border-color);
	display: flex;
	gap: 1.25rem;
	transition: all 0.2s ease;
}

.rule-item:hover {
	border: 1px solid #e0e0e0;
	transform: translateY(-2px);
}

.rule-icon {
	width: 42px;
	height: 42px;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.rule-icon i {
	font-size: 1.5rem;
	color: #fff;
}

/* Icon Background Colors */
.rule-icon.bg-blue {
	background: var(--primary-color);
}

.rule-icon.bg-red {
	background: var(--danger-color);
}

.rule-icon.bg-purple {
	background: #9b59b6;
}

.rule-icon.bg-orange {
	background: var(--warning-color);
}

.rule-icon.bg-teal {
	background: var(--teal-color);
}

.rule-content {
	flex: 1;
}

.rule-title {
	font-size: 1rem;
	font-weight: 600;
	color: #1a1a1a;
	margin: 0 0 0.75rem 0;
	line-height: 1.4;
}

.rule-description {
	font-size: 0.9rem;
	color: #666;
	margin: 0;
	line-height: 1.6;
}

/* Responsive Adjustments for Aturan Page */
@media (max-width: 480px) {
	.rules-list {
		gap: 1rem;
	}

	.rule-item {
		padding: 1.25rem;
		gap: 1rem;
	}

	.rule-icon {
		width: 52px;
		height: 52px;
	}

	.rule-icon i {
		font-size: 1.3rem;
	}

	.rule-title {
		font-size: 0.95rem;
		margin-bottom: 0.5rem;
	}

	.rule-description {
		font-size: 0.85rem;
		line-height: 1.5;
	}
}

/* ========================================
   PROFILE PAGE STYLES
   ======================================== */

/* Profile Page Container */
.profile-page {
	padding-bottom: 2rem;
}

/* Profile Content */
.profile-content {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

/* Profile Card */
.profile-card {
	background: #fff;
	border-radius: 16px;
	display: flex;
	align-items: center;
	gap: 1rem;
}

.profile-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #4a7cff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	font-weight: 700;
	color: #fff;
	flex-shrink: 0;
}

.profile-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }

.profile-info {
	flex: 1;
}

.profile-name {
	font-size: 1.1rem;
	font-weight: 600;
	color: #1a1a1a;
	margin: 0 0 0.25rem 0;
}

.profile-email {
	font-size: 0.9rem;
	color: #666;
	margin: 0;
}

/* Profile Section */
.profile-section {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.section-title {
	font-size: 0.85rem;
	font-weight: 600;
	margin: 0;
	padding: 0 0.25rem;
}

/* Menu Group */
.menu-group {
	background: #fff;
	border-radius: 12px;
	border: 1px solid var(--border-color);
	overflow: hidden;
}

.profile-menu-item {
	display: flex;
	align-items: center;
	padding: 1rem 1.25rem;
	text-decoration: none;
	border-bottom: 1px solid #f5f5f5;
	transition: background 0.2s ease;
}

.profile-menu-item:last-child {
	border-bottom: none;
}

.profile-menu-item:hover {
	background: #f8f9fa;
}

.menu-icon-wrapper {
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 1rem;
	flex-shrink: 0;
}

.menu-icon-wrapper i {
	font-size: 1.1rem;
	color: #4a4a4a;
}

.menu-label {
	flex: 1;
	font-size: 0.95rem;
	font-weight: 500;
	color: #1a1a1a;
}

.profile-menu-item .menu-arrow {
	font-size: 0.9rem;
	color: #999;
}

/* Logout Section */
.logout-section {
	display: flex;
	justify-content: center;
}

.btn-logout {
	width: 100%;
	padding: 0.85rem 1.5rem;
	background: transparent;
	color: var(--danger-color);
	border: 2px solid var(--border-color);
	border-radius: 8px;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
}

.btn-logout:hover {
	background: #dc3545;
	color: #fff;
}

.btn-logout:active {
	transform: scale(0.98);
}

/* Responsive Adjustments for Profile Page */
@media (max-width: 480px) {
	.profile-content {
		gap: 1rem;
	}

	.profile-card {
		padding: 1.25rem;
	}

	.profile-avatar {
		width: 52px;
		height: 52px;
		font-size: 1.4rem;
	}

	.profile-name {
		font-size: 1.05rem;
	}

	.profile-email {
		font-size: 0.85rem;
	}

	.profile-menu-item {
		padding: 0.85rem 1rem;
	}

	.menu-icon-wrapper {
		width: 36px;
		height: 36px;
	}

	.menu-icon-wrapper i {
		font-size: 1rem;
	}

	.menu-label {
		font-size: 0.9rem;
	}

	.btn-logout {
		padding: 0.75rem 1.25rem;
		font-size: 0.9rem;
	}
}

/* ======================================== */
/* SETTINGS PAGES STYLING                   */
/* ======================================== */

/* Change Email & Change PIN Pages */
.change-email-page,
.change-pin-page {
	padding-bottom: 2rem;
}

.form-info {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 1rem;
	background: #e7f3ff;
	border-left: 4px solid var(--primary-color);
	border-radius: 8px;
	margin-bottom: 1.5rem;
}

.form-info i {
	font-size: 1.2rem;
	color: var(--primary-color);
	margin-top: 0.1rem;
}

.form-info p {
	margin: 0;
	font-size: 0.9rem;
	color: #333;
	line-height: 1.5;
}

.form-info strong {
	color: var(--primary-color);
	font-weight: 600;
}

.settings-form {
	display: flex;
	flex-direction: column;
}

.form-group {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.form-group label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: #333;
}

.form-group label i {
	font-size: 1rem;
	color: var(--primary-color);
}

.form-group input {
	width: 100%;
	padding: 0.85rem 1rem;
	border: 2px solid var(--border-color);
	border-radius: 8px;
	font-size: 0.95rem;
	transition: all 0.2s ease;
}

.form-group input:focus {
	outline: none;
	border-color: var(--primary-color);
}

.form-group input::placeholder {
	color: #999;
}

.btn-block {
	width: 100%;
	margin-top: 1rem;
}

.btn-primary {
	padding: 0.95rem 1.5rem;
	background: var(--primary-color);
	color: #fff;
	border: none;
	border-radius: 8px;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}

.btn-primary:hover {
	background: #2e5fcc;
}

.btn-primary:active {
	transform: scale(0.98);
}

.btn-primary:disabled {
	background: #ccc;
	cursor: not-allowed;
}

/* Notifications Page */
.notifications-page {
	padding-bottom: 2rem;
}

.notification-form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-top: 1.5rem;
}

.notification-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem;
	background: #fff;
	border: 2px solid var(--border-color);
	border-radius: 12px;
	transition: all 0.2s ease;
}

.notification-item:hover {
	border-color: var(--primary-color);
	border: 1px solid #e0e0e0;
}

.notification-info {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	flex: 1;
}

.notification-info i {
	font-size: 1.4rem;
	margin-top: 0.2rem;
}

.notification-text h3 {
	margin: 0 0 0.25rem 0;
	font-size: 0.95rem;
	font-weight: 600;
	color: #1a1a1a;
}

.notification-text p {
	margin: 0;
	font-size: 0.85rem;
	color: #666;
	line-height: 1.4;
}

/* Toggle Switch */
.toggle-switch {
	position: relative;
	display: inline-block;
	width: 50px;
	height: 28px;
	flex-shrink: 0;
}

.toggle-switch input {
	opacity: 0;
	width: 0;
	height: 0;
}

.toggle-slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #ccc;
	transition: 0.3s;
	border-radius: 28px;
}

.toggle-slider:before {
	position: absolute;
	content: "";
	height: 20px;
	width: 20px;
	left: 4px;
	bottom: 4px;
	background-color: white;
	transition: 0.3s;
	border-radius: 50%;
}

.toggle-switch input:checked + .toggle-slider {
	background-color: var(--primary-color);
}

.toggle-switch input:checked + .toggle-slider:before {
	transform: translateX(22px);
}

/* Save Status Message */
.save-status {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1rem;
	background: #d4edda;
	border: 1px solid #c3e6cb;
	border-radius: 8px;
	margin-top: 1rem;
	color: #155724;
	font-size: 0.9rem;
	animation: slideDown 0.3s ease;
}

@keyframes slideDown {
	from {
		opacity: 0;
		transform: translateY(-10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Help Center Page */
.help-center-page {
	padding-bottom: 2rem;
}

/* Contact Support Page */
.contact-support-page {
	min-height: 100vh;
	background: linear-gradient(160deg, #ffffff 0%, #f7faff 72%, #edf4ff 100%);
}

.contact-support-header {
	display: grid;
	grid-template-columns: 40px 1fr 40px;
	align-items: center;
	padding: 1.25rem 0;
}

.contact-support-header h1 {
	margin: 0;
	color: #14244a;
	font-size: 1.05rem;
	font-weight: 700;
	text-align: center;
}

.contact-support-header .back-btn {
	width: 40px;
	height: 40px;
	border: 0;
	background: transparent;
	color: #183660;
	font-size: 1.25rem;
}

.contact-support-content {
	margin: 0 auto;
}

.support-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 172px;
	height: 172px;
	margin: 0 auto 1.35rem;
	border-radius: 50%;
	background: #eef5ff;
	color: #2166d8;
}

.support-hero-ring {
	position: absolute;
	inset: 17px;
	border: 12px solid #2872e3;
	border-bottom-color: transparent;
	border-radius: 50%;
	transform: rotate(-18deg);
}

.support-hero i {
	position: relative;
	z-index: 1;
	font-size: 4rem;
	text-shadow: 0 8px 15px rgba(33, 102, 216, 0.18);
}

.support-spark {
	position: absolute;
	color: #91bbff;
	font-size: 1.45rem;
	font-weight: 700;
}

.spark-one {
	top: 24px;
	right: 21px;
}
.spark-two {
	bottom: 33px;
	left: 23px;
}
.spark-three {
	top: 39px;
	left: 24px;
	width: 9px;
	height: 9px;
	border: 3px solid #a8c8ff;
	border-radius: 50%;
}

.support-intro {
	margin-bottom: 1.65rem;
	text-align: center;
}

.support-intro h2 {
	margin: 0 0 0.5rem;
	color: #112650;
	font-size: 1.75rem;
	font-weight: 700;
}

.support-intro p {
	margin: 0;
	color: #667085;
	font-size: 0.92rem;
	line-height: 1.55;
}

.whatsapp-support-card {
	padding: 1.65rem;
	border: 1px solid #eef0f5;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(30, 61, 114, 0.08);
	text-align: center;
}

.whatsapp-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 66px;
	height: 66px;
	margin: 0 auto 1rem;
	border-radius: 50%;
	background: #e4f9ed;
	color: #20af62;
	font-size: 2.35rem;
}

.whatsapp-support-card h2 {
	margin: 0 0 0.35rem;
	color: #14244a;
	font-size: 1.05rem;
	font-weight: 700;
}

.whatsapp-support-card > p {
	margin: 0 0 1.35rem;
	color: #667085;
	font-size: 0.82rem;
}

.whatsapp-button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	min-height: 58px;
	border-radius: 10px;
	background: #25b862;
	color: #fff;
	font-size: 1.05rem;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 7px 13px rgba(37, 184, 98, 0.2);
}

.whatsapp-button:hover {
	background: #1fa656;
	color: #fff;
}

.whatsapp-button i {
	font-size: 1.55rem;
}

.support-reply-note {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	margin-top: 1.35rem;
	padding: 0.85rem;
	border-radius: 10px;
	background: #ecfaf2;
	color: #426354;
	text-align: left;
}

.support-reply-note i {
	margin-top: 0.1rem;
	color: #22af61;
	font-size: 1.25rem;
}

.support-reply-note p {
	margin: 0;
	font-size: 0.78rem;
	line-height: 1.4;
}

.support-hours {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	margin-top: 1.5rem;
	padding: 1rem;
	border: 1px solid #eef1f7;
	border-radius: 15px;
	background: rgba(255, 255, 255, 0.74);
	box-shadow: 0 5px 16px rgba(30, 61, 114, 0.04);
}

.support-hours-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #eaf3ff;
	color: #2574ed;
	font-size: 1.65rem;
}

.support-hours strong {
	color: #18274a;
	font-size: 0.82rem;
}

.support-hours p {
	margin: 0.3rem 0 0;
	color: #667085;
	font-size: 0.82rem;
	line-height: 1.5;
}

.help-content {
	padding: 1.5rem;
}

.search-box {
	position: relative;
	margin-bottom: 1.5rem;
}

.search-box i {
	position: absolute;
	left: 1rem;
	top: 50%;
	transform: translateY(-50%);
	color: #999;
	font-size: 1rem;
}

.search-box input {
	width: 100%;
	padding: 0.85rem 1rem 0.85rem 2.75rem;
	border: 2px solid var(--border-color);
	border-radius: 8px;
	font-size: 0.95rem;
	transition: all 0.2s ease;
}

.search-box input:focus {
	outline: none;
	border-color: var(--primary-color);
}

.contact-support {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.25rem;
	background: var(--primary-color);
	border-radius: 12px;
	margin-bottom: 1.5rem;
	color: #fff;
}

.contact-icon {
	width: 48px;
	height: 48px;
	background: rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.contact-icon i {
	font-size: 1.5rem;
}

.contact-text {
	flex: 1;
}

.contact-text h3 {
	margin: 0 0 0.25rem 0;
	font-size: 1rem;
	font-weight: 600;
}

.contact-text p {
	margin: 0;
	font-size: 0.85rem;
	opacity: 0.9;
}

.btn-contact {
	width: 40px;
	height: 40px;
	background: rgba(255, 255, 255, 0.9);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: all 0.2s ease;
}

.btn-contact i {
	color: var(--primary-color);
	font-size: 1.1rem;
}

.btn-contact:hover {
	background: #fff;
	transform: scale(1.05);
}

/* FAQ Container */
.faq-container {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.faq-category {
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
}

.category-title {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 1.25rem;
	margin: 0;
	background: #f8f9fa;
	border-bottom: 2px solid var(--border-color);
	font-size: 1rem;
	font-weight: 600;
	color: #1a1a1a;
}

.category-title i {
	color: var(--primary-color);
	font-size: 1.1rem;
}

.faq-item {
	border-bottom: 1px solid var(--border-color);
}

.faq-item:last-child {
	border-bottom: none;
}

.faq-question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	cursor: pointer;
	transition: all 0.2s ease;
}

.faq-question:hover {
	background: #f8f9fa;
}

.faq-question span {
	flex: 1;
	font-size: 0.95rem;
	font-weight: 500;
	color: #1a1a1a;
}

.faq-question i {
	color: #999;
	font-size: 0.9rem;
	transition: transform 0.3s ease;
}

.faq-answer {
	padding: 0 1.25rem 1rem 1.25rem;
	background: #f8f9fa;
	animation: fadeIn 0.3s ease;
}

.faq-answer p {
	margin: 0;
	font-size: 0.9rem;
	color: #555;
	line-height: 1.6;
}

@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(-5px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.empty-state {
	text-align: center;
	padding: 3rem 1.5rem;
	color: #999;
}

.empty-state i {
	font-size: 3rem;
	margin-bottom: 1rem;
}

.empty-state p {
	margin: 0;
	font-size: 0.95rem;
}

/* About Page */
.about-page {
	padding-bottom: 2rem;
}

.about-content {
	padding: 1.5rem;
}

.app-info-header {
	text-align: center;
	padding: 2rem 1rem;
	background: var(--primary-color);
	border-radius: 16px;
	margin-bottom: 1.5rem;
	color: #fff;
}

.app-logo {
	width: 80px;
	height: 80px;
	margin: 0 auto 1rem;
	background: rgba(255, 255, 255, 0.2);
	border-radius: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.app-logo i {
	font-size: 2.5rem;
}

.app-info-header h2 {
	margin: 0 0 0.5rem 0;
	font-size: 1.5rem;
	font-weight: 700;
}

.version {
	margin: 0;
	font-size: 0.9rem;
	opacity: 0.9;
}

.app-description {
	padding: 1.25rem;
	background: #f8f9fa;
	border-left: 4px solid var(--primary-color);
	border-radius: 8px;
	margin-bottom: 1.5rem;
}

.app-description p {
	margin: 0;
	font-size: 0.95rem;
	color: #555;
	line-height: 1.6;
}

.features-section,
.developer-section {
	margin-bottom: 1.5rem;
}

.features-section h3,
.developer-section h3 {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1rem 0;
	font-size: 1.05rem;
	font-weight: 600;
	color: #1a1a1a;
}

.features-section h3 i,
.developer-section h3 i {
	color: var(--primary-color);
}

.features-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.features-list li {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 0.85rem;
	background: #fff;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	font-size: 0.9rem;
	color: #555;
}

.features-list li i {
	font-size: 1.1rem;
	margin-top: 0.1rem;
}

.developer-card {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.25rem;
	background: #fff;
	border: 2px solid var(--border-color);
	border-radius: 12px;
}

.developer-card > i {
	font-size: 2rem;
	color: var(--primary-color);
}

.developer-info h4 {
	margin: 0 0 0.25rem 0;
	font-size: 1rem;
	font-weight: 600;
	color: #1a1a1a;
}

.developer-info p {
	margin: 0;
	font-size: 0.85rem;
	color: #666;
}

/* Links Section */
.links-section {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.link-item {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.25rem;
	background: #fff;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	text-decoration: none;
	color: #1a1a1a;
	transition: all 0.2s ease;
}

.link-item:hover {
	background: #f8f9fa;
	border-color: var(--primary-color);
}

.link-item > i:first-child {
	width: 36px;
	height: 36px;
	background: #f0f6ff;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--primary-color);
	font-size: 1.1rem;
}

.link-item span {
	flex: 1;
	font-size: 0.95rem;
	font-weight: 500;
}

.link-item .fa-chevron-right {
	color: #999;
	font-size: 0.9rem;
}

/* Copyright */
.copyright {
	text-align: center;
	padding: 1.5rem 0 0;
	border-top: 1px solid var(--border-color);
}

.copyright p {
	margin: 0;
	font-size: 0.85rem;
	color: #999;
}

/* ======================================== */
/* NILAI PAGE - HISTORY LINK               */
/* ======================================== */

.history-link-box {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.25rem;
	background: #fff;
	border: 1px solid var(--border-color);
	border-radius: 12px;
	text-decoration: none;
	transition: all 0.2s ease;
}

.history-link-box:hover {
	border-color: var(--primary-color);
	border: 1px solid #e0e0e0;
	transform: translateY(-2px);
}

.history-icon {
	width: 48px;
	height: 48px;
	background: #f0f6ff;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.history-icon i {
	font-size: 1.4rem;
	color: var(--primary-color);
}

.history-content {
	flex: 1;
}

.history-title {
	margin: 0 0 0.25rem 0;
	font-size: 1rem;
	font-weight: 600;
	color: #1a1a1a;
}

.history-subtitle {
	margin: 0;
	font-size: 0.85rem;
	color: #666;
}

.history-arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
}

.history-arrow i {
	font-size: 1rem;
	color: #999;
}

/* ======================================== */
/* HISTORY NILAI PAGE                       */
/* ======================================== */

.history-nilai-page {
	padding-bottom: 2rem;
}

.history-nilai-content {
	padding: 1.5rem;
}

.filter-btn {
	width: 40px;
	height: 40px;
	background: transparent;
	border: 2px solid var(--border-color);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.2s ease;
}

.filter-btn:hover {
	border-color: var(--primary-color);
	background: #f0f6ff;
}

.filter-btn i {
	font-size: 1rem;
	color: #666;
}

/* Info Banner */
.info-banner {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 1rem;
	background: #e7f3ff;
	border-left: 4px solid var(--primary-color);
	border-radius: 8px;
	margin-bottom: 1.5rem;
}

.info-banner i {
	font-size: 1.2rem;
	color: var(--primary-color);
	margin-top: 0.1rem;
	flex-shrink: 0;
}

.info-banner p {
	margin: 0;
	font-size: 0.9rem;
	color: #333;
	line-height: 1.5;
}

/* History List / Table */
.history-table-container {
	overflow-x: auto;
	margin-bottom: 1.5rem;
	border-radius: 12px;
	border: 1px solid var(--border-color);
	background: #fff;
}

.history-table {
	width: 100%;
	border-collapse: collapse;
}

.history-table thead {
	background: #f8f9fa;
	border-bottom: 2px solid var(--border-color);
}

.history-table th {
	padding: 0.95rem 1rem;
	text-align: left;
	font-size: 0.85rem;
	font-weight: 600;
	color: #666;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.history-table th.text-center {
	text-align: center;
}

.history-table tbody tr {
	border-bottom: 1px solid var(--border-color);
	transition: all 0.2s ease;
	cursor: pointer;
}

.history-table tbody tr:hover {
	background: #f8f9fa;
}

.history-table td {
	padding: 1rem;
	vertical-align: middle;
}

.history-table td.text-center {
	text-align: center;
}

.history-score-badge.score-baik {
	background: var(--success-color);
}

.history-score-badge.score-cukup {
	background: var(--warning-color);
}

.history-score-badge.score-kurang {
	background: var(--danger-color);
}

/* Score Legend */
.score-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	padding: 1rem;
	background: #f8f9fa;
	border-radius: 8px;
}

.legend-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.legend-dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	flex-shrink: 0;
}

.legend-dot.legend-baik {
	background: #22c55e;
}

.legend-dot.legend-cukup {
	background: #f59e0b;
}

.legend-dot.legend-kurang {
	background: #ef4444;
}

.legend-label {
	font-size: 0.85rem;
	color: #666;
}

/* Empty State */
.empty-state {
	text-align: center;
	padding: 3rem 1.5rem;
	color: #999;
}

.empty-state i {
	font-size: 3.5rem;
	margin-bottom: 1rem;
	color: #ddd;
}

.empty-state h3 {
	margin: 0 0 0.5rem 0;
	font-size: 1.1rem;
	font-weight: 600;
	color: #666;
}

.empty-state p {
	margin: 0;
	font-size: 0.9rem;
	color: #999;
}

/* Filter Modal */
.filter-modal {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.5);
	z-index: 1000;
	align-items: flex-end;
	animation: fadeIn 0.3s ease;
}

.filter-modal-content {
	width: 100%;
	max-height: 70vh;
	background: #fff;
	border-radius: 20px 20px 0 0;
	animation: slideUp 0.3s ease;
}

@keyframes slideUp {
	from {
		transform: translateY(100%);
	}
	to {
		transform: translateY(0);
	}
}

.filter-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--border-color);
}

.filter-header h3 {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 600;
	color: #1a1a1a;
}

.close-modal {
	width: 32px;
	height: 32px;
	background: transparent;
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	border-radius: 6px;
	transition: all 0.2s ease;
}

.close-modal:hover {
	background: #f0f0f0;
}

.close-modal i {
	font-size: 1.2rem;
	color: #666;
}

.filter-body {
	padding: 1.5rem;
}

.filter-group {
	margin-bottom: 1.25rem;
}

.filter-group:last-child {
	margin-bottom: 0;
}

.filter-group label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: #333;
}

.filter-group select {
	width: 100%;
	padding: 0.85rem 1rem;
	border: 2px solid var(--border-color);
	border-radius: 8px;
	font-size: 0.95rem;
	background: #fff;
	cursor: pointer;
	transition: all 0.2s ease;
}

.filter-group select:focus {
	outline: none;
	border-color: var(--primary-color);
}

/* Detail Modal */
.detail-modal {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.5);
	z-index: 1001;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	animation: fadeIn 0.3s ease;
}

.detail-modal-content {
	width: 100%;
	max-width: 680px;
	max-height: 80vh;
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	animation: scaleIn 0.3s ease;
}

@keyframes scaleIn {
	from {
		opacity: 0;
		transform: scale(0.9);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

.detail-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--border-color);
	background: #fff;
}

.detail-title {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.detail-title i {
	color: #1677ff;
	font-size: 1.35rem;
}

.detail-header h3 {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 600;
	color: #1a1a1a;
}

.detail-body {
	padding: 1rem 1rem 1rem;
	max-height: 60vh;
	overflow-y: auto;
}

.report-summary {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	border-radius: 14px;
}

.report-summary-icon {
	font-size: 1.8rem;
	color: #1677ff;
}

.report-summary-outlet {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.report-summary-outlet span,
.report-meta span {
	font-size: 0.78rem;
	color: #667085;
}

.report-summary-outlet strong {
	color: #182b4d;
}

.report-summary-score {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	color: #167447;
	font-size: 0.78rem;
	font-weight: 700;
}

.report-summary-score span {
	padding: 0.4rem 0.6rem;
	border-radius: 999px;
	background: #d9f7e6;
}

.report-summary-score strong {
	font-size: 1.8rem;
	color: #101828;
}

.report-summary-score small {
	font-size: 0.9rem;
}
.report-meta > div {
	display: grid;
	grid-template-columns: 28px 1fr auto;
	align-items: center;
	gap: 0.5rem;
	padding: 8px 0;
}

.report-meta i {
	color: #1677ff;
	font-size: 1rem;
}

.report-meta strong {
	font-size: 0.9rem;
	font-weight: 600;
	color: #1f2937;
	text-align: right;
}

.report-section h4 {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 0.85rem;
	padding: 0.75rem 1rem;
	border-radius: 12px;
	background: #eaf3ff;
	color: #1f4b8f;
	font-size: 1rem;
}

.report-section h4 i {
	color: #1677ff;
}

.report-table-wrap {
	overflow-x: auto;
	border: 1px solid #e2e8f0;
	border-radius: 14px;
	font-size: 12px;
}

.report-table {
	width: 100%;
	min-width: 500px;
	border-collapse: collapse;
	font-size: 0.82rem;
}

.report-table th,
.report-table td {
	padding: 0.5rem;
	border-right: 1px solid #e2e8f0;
	border-bottom: 1px solid #e2e8f0;
	vertical-align: top;
}

.report-table th:last-child,
.report-table td:last-child {
	border-right: 0;
}

.report-table tbody tr:last-child td {
	border-bottom: 0;
}

.report-table th {
	background: #edf5ff;
	color: #1e3a6d;
	font-size: 0.84rem;
}

.report-table .report-spacer {
	border-bottom: 0px;
	padding: 0;
	background: #fff;
}

.report-deduction {
	display: inline-block;
	padding: 0.28rem 0.55rem;
	border-radius: 999px;
	background: #dcfce7;
	color: #166534;
	font-weight: 700;
}

.report-conclusion {
	display: flex;
	gap: 0.85rem;
	margin-top: 1.5rem;
	padding: 1rem;
	border-radius: 14px;
	background: #e9fbf1;
	color: #174d30;
	font-size: 0.9rem;
}

.report-conclusion > i {
	margin-top: 0.2rem;
	font-size: 1.4rem;
}

.report-conclusion strong {
	display: block;
	margin-bottom: 0.2rem;
}

.report-conclusion p {
	margin: 0;
	font-size: 0.8rem;
	line-height: 1.4;
}

.detail-item {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--border-color);
}

.detail-item:last-child {
	border-bottom: none;
}

.detail-label {
	font-size: 0.9rem;
	font-weight: 600;
	color: #666;
}

.detail-value {
	font-size: 0.95rem;
	color: #1a1a1a;
	text-align: right;
}

.detail-feedback {
	margin-top: 1rem;
	padding: 1rem;
	background: #f8f9fa;
	border-left: 4px solid var(--primary-color);
	border-radius: 8px;
}

.detail-feedback .detail-label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: #333;
}

.feedback-text {
	margin: 0;
	font-size: 0.9rem;
	color: #555;
	line-height: 1.6;
}

/* Responsive Adjustments for Settings Pages */
@media (max-width: 480px) {
	.form-container,
	.notification-settings-container,
	.help-content,
	.about-content {
		padding: 1rem;
	}

	.app-info-header {
		padding: 1.5rem 1rem;
	}

	.app-logo {
		width: 64px;
		height: 64px;
	}

	.app-logo i {
		font-size: 2rem;
	}

	.app-info-header h2 {
		font-size: 1.25rem;
	}

	/* History Table Responsive */
	.history-table th,
	.history-table td {
		padding: 0.75rem 0.65rem;
		font-size: 0.85rem;
	}

	.history-table th {
		font-size: 0.75rem;
	}

	.history-date {
		font-size: 0.85rem;
	}

	.outlet-name {
		font-size: 0.9rem;
	}

	.outlet-brand {
		font-size: 0.75rem;
	}

	.history-score-badge {
		padding: 0.3rem 0.65rem;
		font-size: 0.85rem;
		min-width: 42px;
	}
}

/* ===========================
   UPAH KERJA PAGE
   =========================== */

.upah-kerja-page {
	padding-bottom: 2rem;
}

.point-history-container {
	border: 1px solid color-mix(in srgb, var(--primary-color) 35%, #fff);
	border-radius: 8px;
	overflow: hidden;
}

.point-history-table thead th {
	background: var(--primary-color);
	color: #fff;
	border-color: color-mix(in srgb, var(--primary-color) 80%, #fff);
	padding: 0.85rem 0.75rem;
}

.point-history-table td {
	border-color: color-mix(in srgb, var(--primary-color) 18%, #fff);
	padding: 0.8rem 0.75rem;
}

.point-history-table .point-group-separator td {
	background: color-mix(in srgb, var(--primary-color) 12%, #fff);
	height: 10px;
	padding: 0;
}

.point-history-table tfoot td {
	background: color-mix(in srgb, var(--primary-color) 15%, #fff);
	color: var(--primary-color);
	font-weight: 700;
	border-top: 2px solid var(--primary-color);
}

.point-info-modal .detail-modal-content {
	border-radius: 18px;
	overflow: hidden;
}
.point-info-modal .detail-header {
	background: linear-gradient(135deg, #2f6bff, #3f5bdb);
	color: #fff;
}
.point-info-modal .detail-header small {
	display: block;
	font-size: 0.65rem;
	letter-spacing: 0.1em;
	opacity: 0.7;
}
.point-info-modal .detail-header h3 {
	color: #fff;
	margin: 0.15rem 0 0;
}
.point-info-modal .detail-header .close-modal {
	color: #fff;
}
.point-info-body {
	padding: 1rem !important;
}
.point-info-hero {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	color: #274075;
	margin-bottom: 1rem;
}
.point-info-hero > i {
	background: #e8efff;
	color: var(--primary-color);
	padding: 0.7rem;
	border-radius: 12px;
	font-size: 1.15rem;
}
.point-info-hero b,
.point-info-hero span {
	display: block;
}
.point-info-hero span {
	color: #7a8594;
	font-size: 0.78rem;
	margin-top: 0.15rem;
}
.point-info-section {
	margin-top: 1rem;
}
.point-info-section h4 {
	font-size: 0.86rem;
	color: #2c3e50;
	margin-bottom: 0.55rem;
}
.point-info-section h4 i {
	color: var(--primary-color);
	width: 20px;
}
.point-info-card {
	border: 1px solid #e7ebf3;
	border-radius: 12px;
	padding: 0.75rem;
	background: #fbfcff;
}
.point-info-card b {
	color: #2f6bff;
	font-size: 0.82rem;
}
.point-info-card p {
	color: #687384;
	font-size: 0.78rem;
	line-height: 1.45;
	margin: 0.3rem 0 0;
}
.point-info-grid {
	display: grid;
	gap: 0.5rem;
	grid-template-columns: repeat(3, 1fr);
}
.point-info-grid > div {
	border: 1px solid #e7ebf3;
	border-radius: 10px;
	padding: 0.55rem;
	font-size: 0.69rem;
}
.point-info-grid i {
	color: var(--primary-color);
	display: block;
	margin-bottom: 0.35rem;
}
.point-info-grid b,
.point-info-grid span {
	display: block;
}
.point-info-grid span {
	color: #7a8594;
	margin-top: 0.2rem;
	line-height: 1.35;
}
.point-info-note {
	display: flex;
	gap: 0.5rem;
	background: #fff8e8;
	color: #8a6a29;
	border-radius: 10px;
	margin-top: 1rem;
	padding: 0.7rem;
	font-size: 0.76rem;
	line-height: 1.4;
}
.point-info-note i {
	margin-top: 0.1rem;
}

/* Wage Summary Card */
.wage-summary-card {
	border-radius: 8px;
	padding: 1rem;
	margin-bottom: 1.5rem;
	border: 1px solid var(--border-color);
}

/* Wage Amount Styling */
.wage-amount {
	display: inline-block;
	padding: 0.4rem 0.8rem;
	background: #e7f3ff;
	color: var(--primary-color);
	border-radius: 6px;
	font-weight: 600;
	font-size: 0.9rem;
}

/* History Date */
.history-date {
	font-size: 0.9rem;
	color: #333;
	font-weight: 500;
}

/* History Outlet Cell */
.history-outlet-cell {
	font-size: 0.9rem;
	color: #555;
	line-height: 1.4;
}

/* Detail Separator */
.detail-separator {
	height: 1px;
	background: var(--border-color);
	margin: 0.75rem 0;
}

/* Score Badge Styling */
.score-baik {
	display: inline-block;
	padding: 0.35rem 0.75rem;
	background: var(--success-color);
	color: #fff;
	border-radius: 6px;
	font-weight: 600;
	font-size: 0.9rem;
	min-width: 50px;
	text-align: center;
}

.score-cukup {
	display: inline-block;
	padding: 0.35rem 0.75rem;
	background: var(--warning-color);
	color: #fff;
	border-radius: 6px;
	font-weight: 600;
	font-size: 0.9rem;
	min-width: 50px;
	text-align: center;
}

.score-kurang {
	display: inline-block;
	padding: 0.35rem 0.75rem;
	background: var(--danger-color);
	color: #fff;
	border-radius: 6px;
	font-weight: 600;
	font-size: 0.9rem;
	min-width: 50px;
	text-align: center;
}

/* Text Color Utilities */
.text-success {
	color: var(--success-color) !important;
}

.text-warning {
	color: var(--warning-color) !important;
}

/* ===========================
   JADWAL PAGES
   =========================== */

/* Pilih Outlet Page */
.pilih-outlet-page {
	padding-bottom: 2rem;
}

.outlet-list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

/* Animasi transisi antar view (brand <-> outlet search) */
@keyframes viewFadeIn {
	from {
		opacity: 0;
		transform: translateY(8px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

#brandSelectionView,
#outletSelectionView {
	animation: viewFadeIn 0.28s ease;
}

/* Saat kalender di-hide, outlet view naik ke atas -> beri jarak dari fixed header */
#outletSelectionView {
	padding-top: 75px;
}

.outlet-search-box {
	position: relative;
	display: flex;
	align-items: center;
}

.outlet-search-icon {
	position: absolute;
	left: 1rem;
	color: #7f8c8d;
	font-size: 0.9rem;
	pointer-events: none;
}

.outlet-search-input {
	width: 100%;
	padding: 0.75rem 1rem 0.75rem 2.5rem;
	border: 1px solid var(--border-color);
	border-radius: 12px;
	font-size: 0.95rem;
	background: #ffffff;
	outline: none;
	transition: border-color 0.2s ease;
}

.outlet-search-input:focus {
	border-color: #007bff;
}

/* Filter chips */
.outlet-filters {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.filter-chips {
	display: flex;
	gap: 0.5rem;
	flex: 1;
	overflow-x: auto;
	-ms-overflow-style: none;
	scrollbar-width: none;
}

.filter-chips::-webkit-scrollbar {
	display: none;
}

.filter-chip {
	flex-shrink: 0;
	padding: 0.5rem 1rem;
	border: 1px solid var(--border-color);
	border-radius: 20px;
	background: #ffffff;
	color: #2c3e50;
	font-size: 0.85rem;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s ease;
}

.filter-chip.active {
	background: #007bff;
	border-color: #007bff;
	color: #ffffff;
}

.filter-icon-btn {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border: 1px solid var(--border-color);
	border-radius: 12px;
	background: #ffffff;
	color: #2c3e50;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Outlet card (redesign) */
.outlet-card {
	background: #ffffff;
	border: 1px solid var(--border-color);
	border-radius: 14px;
	padding: 1rem 1.1rem;
	margin-bottom: 0.75rem;
	cursor: pointer;
	transition: all 0.2s ease;
}

.outlet-card:hover {
	border-color: #007bff;
	transform: translateY(-2px);
}

.outlet-card.locked {
	cursor: not-allowed;
	opacity: 0.65;
}

.outlet-card.selected {
	border-color: #2563eb;
	background: #fff;
}

.outlet-selected {
	background: #2563eb;
	border-radius: 999px;
	color: #fff;
	font-size: 0.7rem;
	font-weight: 700;
	padding: 0.25rem 0.5rem;
}

.outlet-brand-logo {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	object-fit: contain;
	flex: 0 0 36px;
	margin-right: 0.75rem;
}

.outlet-brand-logo.fallback {
	display: grid;
	place-items: center;
	background: var(--primary-color);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
}

.outlet-card-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 0.75rem;
}

.outlet-card-row.bottom {
	margin-top: 0.75rem;
	align-items: flex-end;
}

.outlet-head {
	display: flex;
	gap: 0.5rem;
	flex: 1;
	min-width: 0;
}

.outlet-pin {
	color: #2c3e50;
	font-size: 1rem;
	margin-top: 0.15rem;
}

.outlet-info {
	min-width: 0;
}

.outlet-name {
	font-size: 1rem;
	font-weight: 700;
	color: #2c3e50;
	margin: 0 0 0.15rem 0;
}

.outlet-address {
	font-size: 0.8rem;
	color: #7f8c8d;
	margin: 0;
}

.outlet-side-top {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.5rem;
	flex-shrink: 0;
}

.outlet-fav {
	font-size: 1.1rem;
	color: #b0b8c1;
}

.outlet-fav.is-fav {
	color: #007bff;
}

.outlet-distance {
	font-size: 0.8rem;
	color: #7f8c8d;
	font-weight: 500;
}

.outlet-card .shift-label-mini {
	font-size: 0.75rem;
	color: #7f8c8d;
	margin: 0 0 0.35rem 0;
}

.outlet-card .shift-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

/* scoped ke .outlet-card: hindari bentrok dengan .shift-badge absolute di komponen lain */
.outlet-card .shift-badge {
	position: static;
	background: #e7f6ec;
	color: #1e7e46;
	font-size: 0.75rem;
	font-weight: 600;
	padding: 0.3rem 0.6rem;
	border-radius: 8px;
}

.outlet-fee {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	flex-shrink: 0;
}

.fee-label {
	font-size: 0.7rem;
	color: #7f8c8d;
}

.fee-amount {
	font-size: 1rem;
	font-weight: 700;
	color: #007bff;
}

/* Brand grid (redesign) */
.brand-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.75rem;
}

.brand-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	background: #ffffff;
	border: 1px solid var(--border-color);
	border-radius: 14px;
	padding: 1.25rem 1rem;
	cursor: pointer;
	transition: all 0.2s ease;
}

.brand-card:hover {
	border-color: #007bff;
	transform: translateY(-2px);
}

.brand-fav {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	color: #b0b8c1;
	font-size: 1rem;
}

.brand-fav.is-fav {
	color: #007bff;
}

.brand-logo {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #f0f2f5;
	color: #2c3e50;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 1.1rem;
	margin-bottom: 0.6rem;
	overflow: hidden;
}

.brand-logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 6px;
}

.brand-card-name {
	font-size: 1rem;
	font-weight: 700;
	color: #2c3e50;
	margin: 0 0 0.2rem 0;
}

.brand-card-count {
	font-size: 0.8rem;
	color: #7f8c8d;
	margin: 0 0 0.5rem 0;
}

.brand-fee-label {
	font-size: 0.72rem;
	color: #7f8c8d;
	margin: 0;
}

.brand-fee-amount {
	font-size: 1rem;
	font-weight: 700;
	color: #007bff;
	margin: 0.1rem 0 0 0;
}

/* Locked brand card */
.brand-card.locked {
	background: #f7f8fa;
	cursor: default;
	justify-content: center;
}

.brand-card.locked:hover {
	border-color: var(--border-color);
	transform: none;
}

.brand-lock {
	color: #b0b8c1;
	font-size: 1.6rem;
	margin-bottom: 0.6rem;
}

.brand-card.locked .brand-card-name {
	color: #5a6572;
}

.brand-card-reason {
	font-size: 0.78rem;
	color: #8a94a0;
	margin: 0.2rem 0 0 0;
}

.outlet-item {
	background: #ffffff;
	border-radius: 12px;
	padding: 1rem 1.25rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	cursor: pointer;
	transition: all 0.3s ease;
	border: 1px solid var(--border-color);
}

.outlet-item:hover {
	border: 1px solid #e0e0e0;
	transform: translateY(-2px);
	border-color: #007bff;
}

.outlet-info {
	flex: 1;
}

.outlet-name {
	font-size: 1rem;
	font-weight: 600;
	color: #2c3e50;
	margin: 0 0 0.25rem 0;
}

.outlet-address {
	font-size: 0.85rem;
	color: #7f8c8d;
	margin: 0;
}

.outlet-select-indicator {
	font-size: 1.5rem;
	color: #007bff;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.outlet-item:hover .outlet-select-indicator {
	opacity: 1;
}

.empty-state {
	text-align: center;
	padding: 3rem 2rem;
	color: #7f8c8d;
}

.empty-state i {
	font-size: 4rem;
	color: #bdc3c7;
	margin-bottom: 1rem;
}

.empty-state h3 {
	font-size: 1.25rem;
	font-weight: 600;
	color: #2c3e50;
	margin-bottom: 0.5rem;
}

.empty-state p {
	font-size: 0.9rem;
	line-height: 1.5;
}

/* Schedule Calendar Section */
.schedule-calendar-section {
	margin-bottom: 1.5rem;
	border-radius: 12px;
}

.section-title {
	font-size: 1.1rem;
	font-weight: 600;
	color: #2c3e50;
	margin-bottom: 1rem;
	margin-top: 1rem;
}

.schedule-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 0.5rem;
	background: #ffffff;
	border-radius: 8px;
	padding: 1rem;
	border: 1px solid var(--border-color);
	margin-bottom: 0.75rem;
}

.calendar-day-header {
	text-align: center;
	font-size: 0.75rem;
	font-weight: 600;
	color: #7f8c8d;
	padding: 0.5rem 0;
}

.calendar-day-cell {
	aspect-ratio: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: #f8f9fa;
	border-radius: 8px;
	position: relative;
	transition: all 0.2s ease;
	border: 1px solid transparent;
}

.calendar-day-cell.empty {
	background: transparent;
	border: none;
}

.calendar-day-cell.today {
	background: #e7f3ff;
	border-color: #007bff;
}

.calendar-day-cell.today .day-number {
	color: #007bff;
	font-weight: 600;
}

.calendar-day-cell.past {
	opacity: 0.5;
}

.calendar-day-cell.has-schedule {
	background: #d4edda;
	border-color: #28a745;
}

.calendar-day-cell.suspended {
	background: #fee2e2;
	border-color: #dc2626;
}

.suspend-day-icon {
	color: #dc2626;
	font-size: 0.65rem;
}

.schedule-suspend-notice {
	margin-top: 1rem;
	background: #fee2e2;
	border: 1px solid #fecaca;
	border-radius: 10px;
	color: #b91c1c;
	font-size: 0.85rem;
	font-weight: 600;
	margin-bottom: 1rem;
	padding: 0.75rem;
}

.calendar-day-cell .day-number {
	font-size: 0.85rem;
	font-weight: 500;
	color: #2c3e50;
	margin-bottom: 0.25rem;
}

.status-calendar-day {
	font: inherit;
	cursor: pointer;
}

.status-calendar-day:disabled {
	cursor: default;
}

.status-calendar-day.has-attendance {
	background: #e9fbf1;
	border-color: #22a06b;
}

.status-calendar-day.has-absence {
	background: #fff4e5;
	border-color: #e47c18;
}

.status-calendar-day.has-suspend {
	background: #fee2e2;
	border-color: #dc2626;
}

.status-calendar-day.has-restricted {
	background: #f5f0ff;
	border-color: #7c3aed;
}

.status-calendar-markers,
.status-calendar-legend {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
}

.status-calendar-legend {
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 1rem;
	font-size: 0.78rem;
	color: #667085;
}

.status-calendar-legend span {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
}

.status-calendar-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #98a2b3;
}

.status-calendar-dot.attendance {
	background: #22a06b;
}
.status-calendar-dot.absence {
	background: #e47c18;
}
.status-calendar-dot.suspend {
	background: #dc2626;
}
.status-calendar-dot.restricted {
	background: #7c3aed;
}

.status-detail-item {
	padding: 0.9rem 0;
	border-bottom: 1px solid #e5e7eb;
}

.status-detail-item:last-child {
	border-bottom: 0;
}
.status-detail-item strong,
.status-detail-item span {
	display: block;
}
.status-detail-item strong {
	color: #1f2937;
}
.status-detail-item span {
	margin-top: 0.2rem;
	color: #667085;
	font-size: 0.86rem;
}
.status-detail-item.absence strong {
	color: #b45309;
}
.status-detail-item.suspend strong {
	color: #b91c1c;
}
.status-detail-item.restricted strong {
	color: #6d28d9;
}

.status-modal-hero {
	padding: 1rem;
	border-radius: 10px;
	background: #eef4ff;
	color: #1f3f78;
}
.status-modal-hero span,
.status-modal-hero strong {
	display: block;
}
.status-modal-hero span {
	font-size: 0.76rem;
	color: #667085;
}
.status-modal-hero strong {
	margin-top: 0.25rem;
	font-size: 1.3rem;
}
.status-modal-hero.suspend-1 {
	background: #fff4e5;
	color: #b45309;
}
.status-modal-hero.suspend-2 {
	background: #fee2e2;
	color: #b91c1c;
}
.status-modal-hero.suspend {
	background: #fff4e5;
	color: #b45309;
}
.status-modal-hero.restricted {
	background: #f5f0ff;
	color: #6d28d9;
}
.status-modal-hero.dormant {
	background: #fff7ed;
	color: #c2410c;
}
.status-modal-hero.off {
	background: #e5e7eb;
	color: #1f2937;
}
.status-modal-reason,
.status-modal-attendance {
	display: flex;
	gap: 0.75rem;
	margin-top: 1rem;
	padding: 0.9rem;
	border: 1px solid #e1e7f0;
	border-radius: 10px;
}
.status-modal-reason > i,
.status-modal-attendance > i {
	margin-top: 0.1rem;
	color: #2f6bff;
	font-size: 1.15rem;
}
.status-modal-reason strong,
.status-modal-attendance span,
.status-modal-attendance strong,
.status-modal-attendance small {
	display: block;
}
.status-modal-reason strong {
	color: #1f2937;
	font-size: 0.88rem;
}
.status-modal-reason p {
	margin: 0.25rem 0 0;
	color: #52627c;
	font-size: 0.84rem;
	line-height: 1.45;
}
.status-modal-dates {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	margin-top: 1rem;
}
.status-modal-dates > div,
.status-modal-stat {
	padding: 0.8rem;
	border-radius: 8px;
	background: #f8fafc;
}
.status-modal-dates span,
.status-modal-stat span,
.status-modal-attendance span {
	display: block;
	color: #667085;
	font-size: 0.74rem;
}
.status-modal-dates strong,
.status-modal-stat strong,
.status-modal-attendance strong {
	display: block;
	margin-top: 0.22rem;
	color: #1f2937;
	font-size: 0.84rem;
}
.status-modal-attendance small {
	margin-top: 0.18rem;
	color: #667085;
	font-size: 0.76rem;
}
.status-modal-stat {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 0.75rem;
}
.status-modal-stat.score {
	background: #e9fbf1;
}

.status-history-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	background: #fff;
}

.current-status-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1rem;
	padding: 1.25rem;
	border-radius: 12px;
	background: #eef4ff;
	color: #14244a;
}

.current-status-copy span,
.current-status-copy strong,
.current-status-copy small {
	display: block;
}

.current-status-copy > span {
	font-size: 0.72rem;
	font-weight: 700;
	color: #667085;
}
.current-status-copy strong {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	margin-top: 0.55rem;
	font-size: 1.85rem;
}
.current-status-copy strong i {
	font-size: 1.15rem;
}
.current-status-copy small {
	margin-top: 0.45rem;
	color: #52627c;
	font-size: 0.82rem;
}
.current-status-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	border: 1px solid #d8e1f3;
	border-radius: 12px;
	background: #f7faff;
	box-shadow: 0 3px 7px rgba(24, 50, 97, 0.08);
	font-size: 1.8rem;
}

.current-status-card.active strong i {
	color: #22a06b;
}
.current-status-card.suspend-1 strong i {
	color: #f79009;
}
.current-status-card.suspend-2 strong i {
	color: #e9343f;
}
.current-status-card.suspend strong i {
	color: #f79009;
}
.current-status-card.restricted strong i {
	color: #7c3aed;
}
.current-status-card.dormant strong i {
	color: #ea580c;
}
.current-status-card.off strong i {
	color: #263241;
}

.status-history-intro {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin-bottom: 1.5rem;
	padding: 1rem;
	border: 1px solid #d8e1f3;
	border-radius: 12px;
	background: #fff;
	color: #52627c;
	font-size: 0.86rem;
	line-height: 1.5;
}
.status-history-intro i {
	color: #2f6bff;
	font-size: 1.25rem;
}
.status-timeline-section h3 {
	margin: 0 0 0.8rem;
	color: #1a2740;
	font-size: 1.05rem;
}
.status-timeline {
	overflow: hidden;
	border: 1px solid #dfe5ee;
	border-radius: 12px;
	background: #fff;
}
.status-timeline-head,
.status-timeline-row {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr) 126px;
}
.status-timeline-head {
	padding: 0.9rem 1rem;
	background: #f8fafc;
	color: #72809a;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
}
.status-timeline-head span:first-child {
	grid-column: 1 / span 2;
}
.status-timeline-row {
	width: 100%;
	padding: 1rem;
	border: 0;
	border-top: 1px solid #e8edf4;
	background: #fff;
	color: inherit;
	text-align: left;
	font: inherit;
	cursor: pointer;
}
.status-timeline-row:hover {
	background: #fafcff;
}
.status-timeline-marker {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 0.3rem;
}
.status-timeline-marker::before {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: #98a2b3;
	content: "";
}
.status-timeline-marker i {
	position: absolute;
	top: 17px;
	bottom: -1rem;
	width: 2px;
	background: #dfe5ee;
}
.status-timeline-row.active .status-timeline-marker::before {
	background: #22a06b;
}
.status-timeline-row.suspend-1 .status-timeline-marker::before {
	background: #f79009;
}
.status-timeline-row.suspend-2 .status-timeline-marker::before {
	background: #e9343f;
}
.status-timeline-row.restricted .status-timeline-marker::before {
	background: #7c3aed;
}
.status-timeline-row.off .status-timeline-marker::before {
	background: #263241;
}
.status-timeline-detail b {
	display: inline-flex;
	padding: 0.3rem 0.5rem;
	border-radius: 6px;
	background: #eef1f5;
	color: #263241;
	font-size: 0.78rem;
}
.status-timeline-detail small {
	display: block;
	margin-top: 0.55rem;
	color: #52627c;
	font-size: 0.8rem;
	line-height: 1.4;
}
.status-timeline-row.active .status-timeline-detail b {
	background: #e7f6ec;
	color: #1e7e46;
}
.status-timeline-row.suspend-1 .status-timeline-detail b {
	background: #fff4e5;
	color: #b45309;
}
.status-timeline-row.suspend-2 .status-timeline-detail b {
	background: #fee2e2;
	color: #b91c1c;
}
.status-timeline-row.restricted .status-timeline-detail b {
	background: #f5f0ff;
	color: #6d28d9;
}
.status-timeline-date {
	align-self: center;
	color: #344054;
	font-size: 0.8rem;
	text-align: right;
}

.status-help-card {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin-top: 1.5rem;
	padding: 1rem;
	border-radius: 12px;
	background: #eef4ff;
	color: #213a6c;
}
.status-help-card > i {
	color: #2f6bff;
	font-size: 1.9rem;
}
.status-help-card > div {
	flex: 1;
	min-width: 0;
}
.status-help-card strong,
.status-help-card span {
	display: block;
}
.status-help-card strong {
	font-size: 0.85rem;
}
.status-help-card span {
	margin-top: 0.25rem;
	color: #52627c;
	font-size: 0.75rem;
	line-height: 1.4;
}
.status-help-card a {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.6rem;
	border: 1px solid #bdd0ff;
	border-radius: 8px;
	color: #1f65e8;
	font-size: 0.72rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

@media (max-width: 400px) {
	.status-timeline-head,
	.status-timeline-row {
		grid-template-columns: 32px minmax(0, 1fr) 100px;
	}
	.status-timeline-row {
		padding: 0.85rem 0.7rem;
	}
	.status-timeline-date {
		font-size: 0.72rem;
	}
	.status-help-card {
		align-items: flex-start;
		flex-wrap: wrap;
	}
	.status-help-card a {
		margin-left: auto;
	}
}

.status-history-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.82rem;
}

.status-history-table th,
.status-history-table td {
	padding: 0.85rem;
	border-bottom: 1px solid #e5e7eb;
	text-align: left;
}

.status-history-table th {
	background: #f8fafc;
	color: #667085;
	font-size: 0.72rem;
	text-transform: uppercase;
}

.status-history-row {
	cursor: pointer;
}

.status-history-row:hover {
	background: #f8fafc;
}

.status-history-badge {
	display: inline-flex;
	padding: 0.3rem 0.55rem;
	border-radius: 6px;
	font-size: 0.75rem;
	font-weight: 700;
}

.status-history-badge.active {
	background: #e7f6ec;
	color: #1e7e46;
}
.status-history-badge.aktif {
	background: #e7f6ec;
	color: #1e7e46;
}
.status-history-badge.suspend-1 {
	background: #fff4e5;
	color: #b45309;
}
.status-history-badge.suspend-2 {
	background: #fee2e2;
	color: #b91c1c;
}
.status-history-badge.suspend {
	background: #fff4e5;
	color: #b45309;
}
.status-history-badge.restricted {
	background: #f5f0ff;
	color: #6d28d9;
}
.status-history-badge.dormant {
	background: #fff7ed;
	color: #c2410c;
}
.status-history-badge.off {
	background: #e5e7eb;
	color: #1f2937;
}

.status-sample {
	display: block;
	width: 100%;
	margin-top: 1rem;
	padding: 0;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
	cursor: zoom-in;
}
.status-sample img,
.status-sample-modal img {
	display: block;
	width: 100%;
	height: auto;
}
.status-sample span {
	display: block;
	padding: 0.65rem;
	color: #52627c;
	font-size: 0.8rem;
}
.status-sample-modal .detail-modal-content {
	max-width: min(1100px, 100%);
}

.status-summary {
	margin-top: 1.5rem;
}

.status-summary h3 {
	margin: 0 0 0.75rem;
	font-size: 1rem;
	color: #1f2937;
}

.status-summary-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}

.status-summary-grid > div {
	padding: 0.9rem;
	background: #f8fafc;
	border-radius: 8px;
}

.status-summary-grid span,
.status-summary-grid strong {
	display: block;
}

.status-summary-grid span {
	font-size: 0.78rem;
	color: #667085;
}

.status-summary-grid strong {
	margin-top: 0.25rem;
	font-size: 0.95rem;
	color: #1f2937;
}

.schedule-indicators {
	display: flex;
	gap: 0.15rem;
	flex-wrap: wrap;
	justify-content: center;
}

.schedule-dot {
	width: 4px;
	height: 4px;
	background: #28a745;
	border-radius: 50%;
}

.schedule-dot i {
	font-size: 0.35rem;
	color: #28a745;
}

.calendar-legend-mini {
	display: flex;
	justify-content: center;
	gap: 1.5rem;
	font-size: 0.8rem;
	color: #7f8c8d;
}

.calendar-legend-mini .legend-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.legend-dot-mini {
	width: 12px;
	height: 12px;
	border-radius: 4px;
	border: 1px solid transparent;
}

.legend-dot-mini.has-schedule {
	background: #d4edda;
	border-color: #28a745;
}

.legend-dot-mini.today {
	background: #e7f3ff;
	border-color: #007bff;
}

/* Brand Selection */
.brand-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 0.75rem;
}

.brand-item {
	background: #ffffff;
	border-radius: 8px;
	padding: 1rem 1.25rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	cursor: pointer;
	transition: all 0.3s ease;
	border: 1px solid var(--border-color);
}

.brand-item:hover {
	transform: translateY(-2px);
	border-color: #007bff;
	box-shadow: 0 2px 8px rgba(0, 123, 255, 0.1);
}

.brand-info {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex: 1;
}

.brand-icon {
	width: 48px;
	height: 48px;
	background: linear-gradient(135deg, #007bff 0%, #0056b3 100%);
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-size: 1.25rem;
}

.brand-icon.disabled {
	background: #9e9e9e;
}

.brand-name {
	font-size: 1.05rem;
	font-weight: 600;
	color: #2c3e50;
	margin: 0 0 0.25rem 0;
}

.brand-outlet-count {
	font-size: 0.85rem;
	color: #7f8c8d;
	margin: 0;
}

.brand-select-indicator {
	font-size: 1.25rem;
	color: #007bff;
	opacity: 0.5;
	transition: opacity 0.3s ease;
}

.brand-item:hover .brand-select-indicator {
	opacity: 1;
}

.brand-item.brand-disabled {
	background: #f5f5f5;
	cursor: not-allowed;
	opacity: 0.7;
}

.brand-item.brand-disabled:hover {
	transform: none;
	border-color: var(--border-color);
	box-shadow: none;
}

.brand-item.brand-disabled .brand-icon {
	background: #9e9e9e;
}

.brand-item.brand-disabled .brand-name {
	color: #9e9e9e;
}

.brand-item.brand-disabled .brand-outlet-count {
	color: #bdbdbd;
}

.brand-item.brand-disabled .brand-select-indicator {
	color: #bdbdbd;
	opacity: 0.5;
}

.back-to-brand-btn {
	background: none;
	border: none;
	color: #007bff;
	font-size: 1.1rem;
	cursor: pointer;
	padding: 0;
	margin-right: 0.75rem;
	transition: transform 0.2s ease;
}

.back-to-brand-btn:hover {
	transform: translateX(-3px);
}

.section-title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.outlet-list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

/* Pilih Tanggal Page */
.pilih-tanggal-page {
	padding-bottom: 5rem;
}

.header-title-center {
	flex: 1;
	text-align: center;
}

.page-subtitle {
	font-size: 0.8rem;
	color: #7f8c8d;
	margin: 0;
	font-weight: 400;
}

.calendar-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 0rem;
	background: #ffffff;
	margin-bottom: 1rem;
}

.nav-btn {
	background: none;
	border: none;
	font-size: 1.25rem;
	color: #007bff;
	cursor: pointer;
	padding: 0.5rem;
	transition: transform 0.2s ease;
}

.nav-btn:hover {
	transform: scale(1.2);
}

.calendar-month {
	font-size: 1.1rem;
	font-weight: 600;
	color: #2c3e50;
	margin: 0;
}

/* Calendar Legend */
.calendar-legend {
	display: flex;
	justify-content: center;
	gap: 1.5rem;
	padding: 0.75rem 1rem;
	background: #f8f9fa;
	border-radius: 8px;
	margin-bottom: 1rem;
}

.legend-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.85rem;
	color: #2c3e50;
}

.legend-dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	display: inline-block;
}

.legend-available {
	background: #28a745;
}

.legend-full {
	background: #dc3545;
}

.legend-disabled {
	background: #ffc107;
}

.legend-banned {
	background: #95a5a6;
}

.legend-too-far {
	background: #6c757d;
}

/* Calendar Grid */
.calendar-grid {
	display: flex;
	gap: 0.75rem;
	/* padding: 0 1rem; */
}

.calendar-column {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.calendar-date-item {
	background: #ffffff;
	border-radius: 12px;
	padding: 1rem;
	border: 1px solid #e0e0e0;
	cursor: pointer;
	transition: all 0.3s ease;
	position: relative;
}

.calendar-date-item.date-available {
	border-color: #28a745;
}

.calendar-date-item.date-available:hover {
	border: 1px solid #28a745;
	transform: translateY(-2px);
}

.calendar-date-item.date-full {
	background: #ffe6e6;
	border-color: #dc3545;
	cursor: not-allowed;
	opacity: 0.7;
}

.calendar-date-item.date-banned {
	background: #f0f0f0;
	border-color: #95a5a6;
	cursor: not-allowed;
	opacity: 0.6;
}

.calendar-date-item.date-disabled {
	background: #fff3cd;
	border-color: #ffc107;
	cursor: not-allowed;
	opacity: 0.8;
}

.calendar-date-item.date-past,
.calendar-date-item.date-too_far {
	background: #f8f9fa;
	border-color: #dee2e6;
	cursor: not-allowed;
	opacity: 0.5;
}

.calendar-date-item.date-too-far {
	background: #e8e9eb;
	border-color: #6c757d;
	cursor: not-allowed;
	opacity: 0.6;
}

.calendar-date-item.date-booked {
	background: #e6f7ff;
	border-color: #007bff;
}

.calendar-date-item.selected {
	background: #d4edda;
	border: 1px solid #28a745;
}

/* Weekend styling (Saturday & Sunday) */
.calendar-date-item.weekend .date-number,
.calendar-date-item.weekend .date-day {
	color: #e55c57;
}

.date-number {
	font-size: 1.75rem;
	font-weight: 700;
	color: #2c3e50;
	margin-bottom: 0.25rem;
	line-height: 1;
}

.date-day {
	font-size: 0.8rem;
	color: #7f8c8d;
	text-transform: uppercase;
	margin-bottom: 0.5rem;
	font-weight: 500;
}

.date-status {
	margin-top: 0.5rem;
}

.status-badge {
	display: inline-block;
	padding: 0.25rem 0.6rem;
	border-radius: 6px;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
}

.status-available {
	background: #d4edda;
	color: #155724;
}

.status-disabled {
	background: #d8ca9d;
	color: #856404;
	text-transform: none;
	font-size: 0.7rem;
}

.status-full {
	background: #f8d7da;
	color: #721c24;
}

.status-banned {
	background: #e2e3e5;
	color: #383d41;
}

.status-past {
	background: #e9ecef;
	color: #495057;
}

.status-too-far {
	background: #d8dcde;
	color: #383d41;
}

/* Submit Floating Button */
.submit-floating-container {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: #ffffff;
	padding: 1rem 1.5rem;
	border-top: 1px solid #e0e0e0;
	z-index: 100;
	max-width: 480px;
	margin: 0 auto;
}

.btn-submit-jadwal {
	width: 100%;
	padding: 1rem;
	background: #95a5a6;
	color: white;
	border: none;
	border-radius: 12px;
	font-size: 1rem;
	font-weight: 600;
	cursor: not-allowed;
	transition: all 0.3s ease;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
}

.btn-submit-jadwal.active {
	background: var(--primary-color);
	cursor: pointer;
	border: 1px solid #0056b3;
}

.btn-submit-jadwal.active:hover {
	transform: translateY(-2px);
	border: 1px solid #0056b3;
}

.btn-submit-jadwal:disabled {
	opacity: 0.6;
}

/* Info Box Blue */
.info-box-blue {
	background: #e7f3ff;
	border-left: 4px solid #007bff;
	padding: 0.875rem 1rem;
	border-radius: 8px;
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin: 0 1rem;
	margin-top: 1rem;
}

.info-box-blue i {
	color: #007bff;
	font-size: 1.25rem;
	margin-top: 0.125rem;
}

.info-box-blue p {
	margin: 0;
	color: #004085;
	font-size: 0.875rem;
	line-height: 1.5;
}

/* Info Box Yellow */
.info-box-yellow {
	background: #fff3cd;
	border-left: 4px solid #ffc107;
	padding: 0.875rem 1rem;
	border-radius: 8px;
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.info-box-yellow i {
	color: #ff9700;
	font-size: 1.25rem;
	margin-top: 0.125rem;
}

.info-box-yellow p {
	margin: 0;
	color: #856404;
	font-size: 0.875rem;
	line-height: 1.5;
}

/* Shift Badge on Calendar Date */
.shift-badge {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	background: #007bff;
	color: white;
	font-size: 0.65rem;
	padding: 0.2rem 0.4rem;
	border-radius: 4px;
	font-weight: 600;
}

/* Shift Modal */
.shift-modal {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1000;
	align-items: center;
	justify-content: center;
}

.shift-modal-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(2px);
}

.shift-modal-content {
	position: relative;
	background: white;
	border-radius: 16px;
	width: 90%;
	max-width: 400px;
	z-index: 1001;
	animation: slideUp 0.3s ease;
	border: 1px solid #e0e0e0;
}

@keyframes slideUp {
	from {
		transform: translateY(30px);
		opacity: 0;
	}
	to {
		transform: translateY(0);
		opacity: 1;
	}
}

.shift-modal-header {
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid #e0e0e0;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.shift-modal-header h3 {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 600;
	color: #2c3e50;
}

.shift-modal-close {
	background: none;
	border: none;
	font-size: 1.5rem;
	color: #7f8c8d;
	cursor: pointer;
	padding: 0;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: all 0.2s ease;
}

.shift-modal-close:hover {
	background: #f0f0f0;
	color: #2c3e50;
}

.shift-modal-body {
	padding: 1.5rem;
}

.shift-date-label {
	font-size: 0.95rem;
	color: #7f8c8d;
	margin-bottom: 1.25rem;
	text-align: center;
	font-weight: 500;
}

/* Shift Loading */
.shift-loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	padding: 2rem;
	color: #7f8c8d;
}

.shift-loading i {
	font-size: 2rem;
	color: #007bff;
}

.shift-options {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
}

.shift-option {
	cursor: pointer;
	margin: 0;
}

.shift-option input[type="checkbox"] {
	display: none;
}

.shift-card {
	/* padding: 1rem; */
	transition: all 0.3s ease;
	background: white;
}

.shift-option input[type="checkbox"]:checked + .shift-card {
	border-color: #fff;
}

/* Shift Full State */
.shift-option.shift-full {
	cursor: not-allowed;
	opacity: 0.6;
}

.shift-option.shift-full .shift-card {
	background: #f8f9fa;
	border-color: #dee2e6;
}

.shift-option.shift-full .shift-card .shift-name,
.shift-option.shift-full .shift-card .shift-time {
	color: #95a5a6;
}

.shift-option.shift-full .shift-card .shift-icon-name i {
	color: #bdc3c7;
}

/* Shift Header - Compact Layout */
.shift-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 0.5rem;
}

.shift-icon-name {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.shift-icon-name i {
	font-size: 1.5rem;
	color: #7f8c8d;
}

.shift-option input[type="checkbox"]:checked + .shift-card .shift-icon-name i {
	color: #007bff;
}

.shift-icon-name > div {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
}

.shift-name {
	font-size: 1rem;
	font-weight: 600;
	color: #2c3e50;
	line-height: 1.2;
}

.shift-time {
	font-size: 0.75rem;
	color: #7f8c8d;
	line-height: 1.2;
}

.shift-count {
	font-size: 0.85rem;
	font-weight: 600;
	color: #007bff;
	background: #e7f3ff;
	padding: 0.25rem 0.6rem;
	border-radius: 6px;
}

/* Shift Bookings List */
.shift-bookings {
	display: none;
	padding-top: 0.5rem;
	border-top: 1px solid #f0f0f0;
	margin-top: 0.5rem;
}

.shift-bookings small {
	font-size: 0.8rem;
	color: #5a6c7d;
	line-height: 1.4;
	display: block;
}

.shift-bookings .text-muted {
	color: #95a5a6 !important;
	font-style: italic;
}

.shift-partner-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.5rem;
}

.shift-staff-card {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	padding: 9px;
	border: 1px solid #e4e8ee;
	border-radius: 10px;
	font-size: 0.78rem;
	font-weight: 600;
}

.shift-staff-card > span:last-child {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shift-staff-card img,
.shift-staff-avatar {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 32px;
}

.shift-staff-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #e8f0ff;
	color: #3675de;
	font-size: 0.68rem;
}

.shift-staff-card.is-empty {
	color: #8b97a8;
	font-weight: 500;
}

.shift-partner {
	color: #40566b;
	font-size: 0.82rem;
}

.shift-partner i {
	color: var(--primary-color);
	margin-right: 0.3rem;
}

.shift-booked-partners {
	border-top: 1px solid #e5e7eb;
	color: #1d4ed8;
	font-size: 0.78rem;
	font-weight: 600;
	margin-top: 0.6rem;
	padding-top: 0.55rem;
}

.shift-cancel-button {
	background: #fee2e2;
	border: 0;
	border-radius: 7px;
	color: #b91c1c;
	font-size: 0.75rem;
	font-weight: 700;
	margin-top: 0.7rem;
	padding: 0.45rem 0.65rem;
}

.shift-modal-footer {
	padding: 1rem 1.5rem;
	border-top: 1px solid #e0e0e0;
	display: flex;
	gap: 0.75rem;
}

.btn-cancel,
.btn-confirm {
	flex: 1;
	padding: 0.875rem;
	border-radius: 8px;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.3s ease;
	border: none;
}

.btn-cancel {
	background: #f0f0f0;
	color: #2c3e50;
}

.btn-cancel:hover {
	background: #e0e0e0;
}

.btn-confirm {
	background: var(--primary-color);
	color: white;
	border: 1px solid #0056b3;
}

.btn-confirm:hover {
	transform: translateY(-2px);
	border: 1px solid #0056b3;
}

.btn-confirm:disabled {
	background: #95a5a6;
	cursor: not-allowed;
	opacity: 0.6;
	border: none;
}

.btn-confirm:disabled:hover {
	transform: none;
}

.btn-danger {
	background: var(--danger-color);
	color: white;
	border: 1px solid #c82333;
	flex: 1;
	padding: 0.875rem;
	border-radius: 8px;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.3s ease;
}

.btn-danger:hover {
	transform: translateY(-2px);
	border: 1px solid #c82333;
}

.btn-danger:disabled {
	background: #95a5a6;
	cursor: not-allowed;
	opacity: 0.6;
	transform: none;
	border: 1px solid #95a5a6;
}

/* Cancel Form */
.cancel-form {
	padding: 1rem 0;
}

.cancel-form .form-group {
	margin-top: 1rem;
}

.cancel-form .form-group label {
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 600;
	color: #2c3e50;
	font-size: 0.9rem;
}

.cancel-form .text-danger {
	color: #dc3545;
}

.cancel-form .form-control {
	width: 100%;
	padding: 0.75rem;
	border: 1px solid #ddd;
	border-radius: 8px;
	font-size: 0.9rem;
	font-family: inherit;
	resize: vertical;
	transition: border-color 0.3s ease;
}

.cancel-form .form-control:focus {
	outline: none;
	border-color: #007bff;
}

.cancel-form .form-control::placeholder {
	color: #95a5a6;
}

/* Schedule Detail Modal */
.schedule-detail-list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.schedule-detail-item {
	background: #f8f9fa;
	border-radius: 12px;
	padding: 1rem;
	border: 1px solid #e0e0e0;
}

.schedule-detail-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 0.75rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid #e0e0e0;
}

.schedule-outlet-name {
	font-size: 1rem;
	font-weight: 600;
	color: #2c3e50;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.schedule-outlet-name i {
	color: #007bff;
	font-size: 1.1rem;
}

.badge-status {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.35rem 0.75rem;
	border-radius: 20px;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
}

.badge-approved {
	background: #d4edda;
	color: #155724;
}

.badge-approved i {
	font-size: 0.85rem;
}

.badge-pending {
	background: #fff3cd;
	color: #856404;
}

.badge-pending i {
	font-size: 0.85rem;
}

.schedule-detail-body {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.schedule-shift-info {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: #495057;
	font-size: 0.9rem;
}

.schedule-shift-info i {
	color: #6c757d;
	font-size: 1rem;
}

.shift-label {
	font-weight: 600;
	color: #2c3e50;
}

.shift-time {
	color: #6c757d;
	font-size: 0.85rem;
}

/* Responsive for small screens */
@media (max-width: 480px) {
	.calendar-grid {
		gap: 0.5rem;
		/* padding: 0 0.75rem; */
	}

	.calendar-column {
		gap: 0.5rem;
	}

	.calendar-date-item {
		padding: 0.75rem;
	}

	.date-number {
		font-size: 1.5rem;
	}

	.date-day {
		font-size: 0.7rem;
	}

	.status-badge {
		padding: 0.2rem 0.5rem;
		font-size: 0.7rem;
	}

	.outlet-item {
		padding: 0.875rem 1rem;
	}

	.outlet-name {
		font-size: 0.95rem;
	}

	.outlet-address {
		font-size: 0.8rem;
	}

	.submit-floating-container {
		padding: 0.875rem 1rem;
	}

	.btn-submit-jadwal {
		padding: 0.875rem;
		font-size: 0.95rem;
	}

	.shift-modal-content {
		width: 95%;
	}

	.shift-modal-header {
		padding: 1rem 1.25rem;
	}

	.shift-modal-header h3 {
		font-size: 1.1rem;
	}

	.shift-modal-body {
		padding: 1.25rem;
	}

	.shift-card {
		padding: 0.875rem;
	}

	.shift-icon-name i {
		font-size: 1.25rem;
	}

	.shift-name {
		font-size: 0.95rem;
	}

	.shift-time {
		font-size: 0.7rem;
	}

	.shift-count {
		font-size: 0.8rem;
		padding: 0.2rem 0.5rem;
	}

	.shift-bookings small {
		font-size: 0.75rem;
	}

	.shift-modal-footer {
		padding: 0.875rem 1rem;
	}

	.btn-cancel,
	.btn-confirm {
		padding: 0.75rem;
		font-size: 0.9rem;
	}
}

/* ============================ WITHDRAW PAGE ============================ */
.withdraw-history-link {
	position: absolute;
	right: 16px;
	color: #007bff;
	font-size: 0.85rem;
	font-weight: 600;
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

.withdraw-info-banner {
	display: flex;
	align-items: start;
	gap: 0.5rem;
	background: #eaf3ff;
	color: #2c6cb0;
	border-radius: 12px;
	padding: 0.75rem 1rem;
	font-size: 0.82rem;
	margin-bottom: 1rem;
}

.withdraw-info-banner i {
	color: #4a90e2;
}

/* Saldo card */
.withdraw-balance-card {
	background: linear-gradient(135deg, #2f6bff 0%, #3f5bdb 100%);
	border-radius: 18px;
	padding: 1.25rem;
	color: #fff;
	margin-bottom: 1rem;
}

.withdraw-dual-balance .wb-amount {
	font-size: clamp(1.15rem, 5vw, 1.65rem);
	white-space: nowrap;
}

.wb-top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.wb-label {
	font-size: 0.9rem;
	opacity: 0.9;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.wb-label i {
	cursor: pointer;
	opacity: 0.8;
}

.wb-amount {
	font-size: 1.9rem;
	font-weight: 700;
	margin: 0.25rem 0;
}

.wb-sub {
	font-size: 0.8rem;
	opacity: 0.75;
}

.wb-wallet {
	font-size: 2.4rem;
	opacity: 0.85;
}

/* Change rekening page */
.change-rekening-page {
	min-height: 100vh;
	background: #fff;
}

.rekening-current-card {
	position: relative;
	overflow: hidden;
	min-height: 196px;
	padding: 1.5rem;
	background: linear-gradient(135deg, #1660e7 0%, #245cf0 58%, #2e72ff 100%);
	box-shadow: 0 12px 22px rgba(35, 93, 239, 0.2);
}

.rekening-current-card::after {
	position: absolute;
	right: -48px;
	bottom: -80px;
	width: 250px;
	height: 220px;
	border-radius: 50%;
	background: rgba(118, 157, 255, 0.22);
	content: "";
}

.rekening-current-card .wb-top {
	position: relative;
	z-index: 1;
}

.rekening-current-card .wb-label {
	font-size: 0.95rem;
	font-weight: 600;
}

.rekening-current-card .wb-label i {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.15);
}

.rekening-current-card .wb-amount {
	margin-top: 1.1rem;
	font-size: clamp(1.7rem, 7vw, 2.4rem);
	letter-spacing: 0;
	word-break: break-all;
}

.rekening-current-card .wb-sub {
	font-size: 0.9rem;
	font-weight: 500;
}

.rekening-current-card .wb-wallet {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 16px;
	background: #fff;
	color: #1b5de8;
	font-size: 1.8rem;
	opacity: 1;
}

.rekening-history-title {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin: 0 0 1.15rem;
	color: #1c2d4f;
	font-size: 1.05rem;
	font-weight: 700;
}

.rekening-history-title i {
	color: #57657d;
}

.rekening-pending-notice {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	margin-bottom: 1.25rem;
	padding: 1rem;
	border-radius: 16px;
	background: #fff7e6;
	color: #875118;
	font-size: 0.82rem;
	line-height: 1.5;
}

.rekening-pending-notice i {
	color: #ff9917;
	font-size: 1.25rem;
}

.rekening-history-card {
	overflow: hidden;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(26, 48, 91, 0.09);
}

.rekening-history-table {
	width: 100%;
	min-width: 590px;
	border-collapse: collapse;
	color: #162448;
	font-size: 0.8rem;
}

.rekening-history-table th {
	padding: 1rem;
	background: #f4f6fc;
	font-size: 0.75rem;
	font-weight: 700;
	text-align: left;
}

.rekening-history-table td {
	padding: 0.9rem 1rem;
	border-right: 1px solid #eef0f5;
	vertical-align: top;
}

.rekening-history-table td:last-child {
	border-right: 0;
}

.history-date-cell {
	min-width: 110px;
}
.history-date-cell i {
	margin-right: 0.35rem;
	color: #2473ef;
}
.history-date-cell strong,
.history-date-cell small,
.history-account-cell small,
.history-status-cell small {
	display: block;
}
.history-date-cell small,
.history-account-cell small,
.history-status-cell small {
	margin-top: 0.35rem;
	color: #74809a;
}
.history-account-cell {
	min-width: 145px;
	font-weight: 700;
}
.history-reason-cell {
	min-width: 125px;
	line-height: 1.55;
}
.history-status-cell {
	min-width: 125px;
}
.history-status-cell small i {
	margin-right: 0.2rem;
}

.rekening-status {
	display: inline-flex;
	padding: 0.35rem 0.7rem;
	border-radius: 8px;
	font-size: 0.75rem;
	font-weight: 700;
}

.status-pending {
	background: #ffe385;
	color: #544100;
}
.status-approved {
	background: #dff7e8;
	color: #1c7d45;
}
.status-rejected {
	background: #ffe4e6;
	color: #bd2336;
}
.status-default {
	background: #eef1f5;
	color: #566174;
}

.rekening-security-note {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin: 4rem 1.5rem 2rem;
	padding: 1.15rem;
	border: 1px solid #edf0f5;
	border-radius: 18px;
	box-shadow: 0 8px 22px rgba(26, 48, 91, 0.07);
}

.rekening-security-note > i:first-child {
	color: #1e69ee;
	font-size: 2rem;
}

.rekening-security-note > div {
	flex: 1;
}
.rekening-security-note strong {
	color: #182a50;
	font-size: 0.82rem;
}
.rekening-security-note p {
	margin: 0.28rem 0 0;
	color: #6f7a91;
	font-size: 0.75rem;
	line-height: 1.55;
}
.rekening-security-note > i:last-child {
	color: #667085;
}

.wb-stats {
	display: flex;
	background: rgba(255, 255, 255, 0.95);
	border-radius: 12px;
	margin-top: 1rem;
	overflow: hidden;
}

.wb-stat {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem;
	color: #2c3e50;
}

.wb-stat:first-child {
	border-right: 1px solid #eef0f3;
}

.wb-stat i {
	color: #3f5bdb;
	font-size: 1.1rem;
}

.wb-stat span {
	display: block;
	font-size: 0.72rem;
	color: #7f8c8d;
}

.wb-stat strong {
	font-size: 0.9rem;
}

/* Nominal + rekening card */
.withdraw-card {
	background: #fff;
	border: 1px solid var(--border-color);
	border-radius: 16px;
	padding: 1.1rem;
	margin-bottom: 1rem;
}

.withdraw-section-title {
	font-size: 0.95rem;
	font-weight: 700;
	color: #2c3e50;
	margin: 0 0 0.6rem 0;
}

.nominal-input-box {
	display: flex;
	align-items: center;
	border: 1px solid var(--border-color);
	border-radius: 12px;
	padding: 0.5rem 0.9rem;
	gap: 0.5rem;
}

.ni-rp {
	color: #7f8c8d;
	font-weight: 600;
	border-right: 1px solid var(--border-color);
	padding-right: 0.6rem;
}

.nominal-input-box input {
	flex: 1;
	border: none;
	outline: none;
	font-size: 1.3rem;
	font-weight: 700;
	color: #2c3e50;
	background: transparent;
	min-width: 0;
}

.ni-all {
	border: none;
	background: none;
	color: #007bff;
	font-weight: 700;
	font-size: 0.9rem;
	cursor: pointer;
}

.withdraw-hint {
	display: block;
	color: #9aa4af;
	font-size: 0.76rem;
	margin-top: 0.4rem;
}

/* Rekening card */
.rekening-card {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	border: 1px solid var(--border-color);
	border-radius: 12px;
	padding: 0.85rem;
	text-decoration: none;
	color: inherit;
}

.rek-logo {
	width: 44px;
	height: 44px;
	border-radius: 10px;
	background: #eaf1ff;
	color: #2f6bff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	flex-shrink: 0;
}

.rek-info {
	flex: 1;
	min-width: 0;
}

.rek-info strong {
	font-size: 0.9rem;
	color: #2c3e50;
}

.rek-info p {
	margin: 0.1rem 0 0;
	font-size: 0.8rem;
	color: #7f8c8d;
}

.rek-arrow {
	color: #b0b8c1;
}

.add-rekening-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	border: 1px dashed #b9c6ff;
	border-radius: 12px;
	padding: 0.7rem;
	margin-top: 0.6rem;
	color: #007bff;
	font-weight: 600;
	font-size: 0.85rem;
	text-decoration: none;
}

/* Ringkasan */
.withdraw-summary {
	background: #f7f8fa;
	border-radius: 12px;
	padding: 0.9rem 1rem;
	margin-top: 1rem;
}

.withdraw-summary h5 {
	font-size: 0.85rem;
	font-weight: 700;
	color: #2c3e50;
	margin: 0 0 0.6rem 0;
}

.ws-row {
	display: flex;
	justify-content: space-between;
	font-size: 0.82rem;
	color: #5a6572;
	margin-bottom: 0.4rem;
}

.ws-row.ws-total {
	margin-bottom: 0;
	font-weight: 700;
	color: #2c3e50;
}

.ws-total span:last-child {
	color: #007bff;
	font-size: 1rem;
}

.badge-free {
	background: #e7f6ec;
	color: #1e7e46;
	font-style: normal;
	font-size: 0.68rem;
	font-weight: 600;
	padding: 0.1rem 0.4rem;
	border-radius: 6px;
	margin-left: 0.25rem;
}

/* Keamanan */
.withdraw-security {
	display: flex;
	gap: 0.75rem;
	background: #fdf6e6;
	border-radius: 12px;
	padding: 0.9rem 1rem;
}

.withdraw-security i {
	color: #d99e2b;
	font-size: 1.3rem;
	margin-top: 0.1rem;
}

.withdraw-security strong {
	font-size: 0.88rem;
	color: #2c3e50;
}

.withdraw-security p {
	margin: 0.15rem 0 0;
	font-size: 0.78rem;
	color: #8a7a4f;
}

/* Bottom submit bar */
.withdraw-submit-bar {
	position: fixed;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	max-width: 478px;
	padding: 0.75rem 1.2rem;
	background: #fff;
	border-top: 1px solid var(--border-color);
	z-index: 20;
}

.withdraw-submit-bar .btn {
	margin: 0;
}

/* History */
.withdraw-history-list {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.withdraw-history-item {
	display: flex;
	align-items: start;
	gap: 0.75rem;
	background: #fff;
	border: 1px solid var(--border-color);
	border-radius: 12px;
	padding: 0.85rem;
}

.wh-icon {
	width: 42px;
	height: 42px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.wh-icon.wh-success {
	background: #e7f6ec;
	color: #1e7e46;
}
.wh-icon.wh-pending {
	background: #fff5e0;
	color: #d99e2b;
}
.wh-icon.wh-approved {
	background: #e8f1ff;
	color: #2563eb;
}
.wh-icon.wh-failed {
	background: #fdecec;
	color: #d64545;
}
.wh-icon.wh-cancelled {
	background: #f1f3f5;
	color: #6b7280;
}

.wh-info {
	flex: 1;
	min-width: 0;
}

.wh-info strong {
	font-size: 0.95rem;
	color: #2c3e50;
}

.wh-info p {
	margin: 0.1rem 0 0;
	font-size: 0.78rem;
	color: #7f8c8d;
}

.wh-note {
	color: #d64545 !important;
}

.wh-badge {
	font-size: 0.72rem;
	font-weight: 600;
	padding: 0.25rem 0.6rem;
	border-radius: 8px;
	flex-shrink: 0;
}

.wh-badge.wh-success {
	background: #e7f6ec;
	color: #1e7e46;
}
.wh-badge.wh-pending {
	background: #fff5e0;
	color: #d99e2b;
}
.wh-badge.wh-approved {
	background: #e8f1ff;
	color: #2563eb;
}
.wh-badge.wh-failed {
	background: #fdecec;
	color: #d64545;
}
.wh-badge.wh-cancelled {
	background: #f1f3f5;
	color: #6b7280;
}

/* Detail penarikan */
.wd-hero {
	border-radius: 16px;
	padding: 0.9rem 1rem;
	margin-bottom: 1rem;
}

.wd-hero.wh-success {
	background: #eefaf1;
}
.wd-hero.wh-pending {
	background: #fdf6e6;
}
.wd-hero.wh-approved {
	background: #eef5ff;
}
.wd-hero.wh-failed {
	background: #fdeeee;
}
.wd-hero.wh-cancelled {
	background: #f4f5f7;
}

.wd-hero-code {
	font-size: 0.8rem;
	color: #8a8f98;
	word-break: break-all;
}

.wd-hero-amount {
	font-size: 1.55rem;
	font-weight: 700;
	color: #1f2937;
	margin: 0.7rem 0 0.1rem;
}

.wd-receipt-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: #6b7280;
}

.wd-receipt-caption {
	font-size: 0.78rem;
	color: #6b7280;
	margin-bottom: 0.55rem;
}

.wd-detail-card {
	padding: 0;
	overflow: hidden;
}

.wd-card-head {
	display: flex;
	align-items: center;
	padding: 0.65rem 0.9rem;
	border-bottom: 1px solid var(--border-color);
}

.wd-card-head .withdraw-section-title {
	margin: 0;
}

.wd-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.58rem 0.9rem;
	border-bottom: 1px solid #f1f3f5;
}

.wd-row:last-of-type {
	border-bottom: none;
}

.wd-row-label {
	font-size: 0.8rem;
	color: #7f8c8d;
}

.wd-row-value {
	font-size: 0.8rem;
	font-weight: 600;
	color: #2c3e50;
	text-align: right;
	word-break: break-word;
}

.wd-total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0.65rem 0.9rem 0.9rem;
	padding: 0.65rem 0.75rem;
	background: #eefaf1;
	border: 1px solid #cdecd8;
	border-radius: 12px;
	border-top: 1px dashed #cdecd8;
}

.wd-total .wd-row-label {
	color: #2c3e50;
	font-size: 0.92rem;
}

.wd-total-value {
	font-size: 1.05rem;
	color: #1e7e46;
}

.wd-note-banner {
	display: flex;
	gap: 0.75rem;
	background: #eef4ff;
	border-radius: 12px;
	padding: 0.9rem 1rem;
	margin-bottom: 1rem;
}

.wd-note-banner i {
	color: #2f6bff;
	font-size: 1.3rem;
	margin-top: 0.1rem;
}

.wd-note-banner strong {
	font-size: 0.88rem;
	color: #2c3e50;
}

.wd-note-banner p {
	margin: 0.15rem 0 0;
	font-size: 0.78rem;
	color: #6b7684;
}

.wd-note-banner.wd-note-failed {
	background: #fdeeee;
}

.wd-note-banner.wd-note-failed i {
	color: #d64545;
}

/* OTP Modal input */
.otp-modal-info {
	font-size: 0.85rem;
	color: #5a6572;
	margin-bottom: 0.75rem;
}

.otp-modal-input {
	width: 100%;
	border: 1px solid var(--border-color);
	border-radius: 12px;
	padding: 0.75rem 1rem;
	font-size: 1.3rem;
	font-weight: 700;
	letter-spacing: 4px;
	text-align: center;
	color: #2c3e50;
	outline: none;
}

.otp-modal-input:focus {
	border-color: #007bff;
}

.otp-modal-error {
	color: #d64545;
	font-size: 0.8rem;
	margin: 0.5rem 0 0;
}

/* ============================ WORK HISTORY (REDESIGN) ============================ */
.riwayat-content {
	padding-bottom: 1rem;
}

/* Month filter card */
.month-filter-card {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	background: #fff;
	border: 1px solid var(--border-color);
	border-radius: 14px;
	padding: 0.85rem 1rem;
	margin-bottom: 1rem;
}

.mfc-icon {
	width: 42px;
	height: 42px;
	border-radius: 10px;
	background: #eaf1ff;
	color: #2f6bff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	flex-shrink: 0;
}

.mfc-text {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.mfc-label {
	font-size: 0.75rem;
	color: #8a94a0;
}

.mfc-value {
	font-size: 1rem;
	font-weight: 700;
	color: #1a2233;
}

.mfc-arrow {
	color: #8a94a0;
}

/* Native select transparan menutupi card (buka picker saat di-tap) */
.mfc-select {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	border: none;
	cursor: pointer;
}

/* Tabs */
.riwayat-tabs {
	display: flex;
	gap: 1.25rem;
	border-bottom: 1px solid var(--border-color);
}

.riwayat-tab {
	background: none;
	border: none;
	padding: 0.6rem 0;
	font-size: 0.9rem;
	font-weight: 600;
	color: #8a94a0;
	cursor: pointer;
	position: relative;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
}

.riwayat-tab.tab-terlambat {
	color: #d64545;
}

.riwayat-tab.active {
	color: #2f6bff;
	border-bottom-color: #2f6bff;
}

.riwayat-tab.tab-terlambat.active {
	color: #d64545;
	border-bottom-color: #d64545;
}

/* Summary banner */
.riwayat-summary {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	background: #eef4ff;
	border-radius: 12px;
	padding: 0.85rem 1rem;
}

.rs-icon {
	color: #2f6bff;
	font-size: 1.2rem;
}

.rs-text {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.rs-text strong {
	font-size: 0.85rem;
	color: #1a2233;
}

.rs-text span {
	font-size: 0.78rem;
	color: #6b7684;
}

.rs-btn {
	background: #fff;
	border: 1px solid #cfe0ff;
	color: #2f6bff;
	border-radius: 10px;
	padding: 0.45rem 0.7rem;
	font-size: 0.78rem;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	flex-shrink: 0;
}

.riwayat-month-label {
	font-size: 0.85rem;
	color: #8a94a0;
	margin: 0px;
}

/* History item */
.work-history-list {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.rwh-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	background: #fff;
	border: 1px solid var(--border-color);
	border-left: 3px solid #d1d8e0;
	border-radius: 4px;
	padding: 0.75rem;
}

.rwh-item.is-late {
	border-left-color: #d64545;
}

.rwh-date {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 42px;
	flex-shrink: 0;
}

.rwh-day-name {
	font-size: 0.68rem;
	color: #8a94a0;
}

.rwh-day {
	font-size: 1.25rem;
	font-weight: 700;
	color: #1a2233;
	line-height: 1.1;
}

.rwh-month {
	font-size: 0.68rem;
	color: #8a94a0;
}

.rwh-logo {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #f0f2f5;
	color: #2c3e50;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 0.8rem;
	flex-shrink: 0;
	overflow: hidden;
}

.rwh-logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 3px;
}

.rwh-info {
	flex: 1;
	min-width: 0;
}

.rwh-info h4 {
	font-size: 0.95rem;
	font-weight: 700;
	color: #1a2233;
	margin: 0 0 0.2rem;
}

.rwh-info p {
	font-size: 0.76rem;
	color: #7f8c8d;
	margin: 0.1rem 0;
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

.rwh-info p i {
	width: 12px;
	color: #a4adb8;
}

.rwh-right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.5rem;
	flex-shrink: 0;
}

.rwh-status {
	font-size: 0.7rem;
	font-weight: 600;
	padding: 0.25rem 0.55rem;
	border-radius: 8px;
}

.rwh-status.st-ontime {
	background: #e7f6ec;
	color: #1e7e46;
}
.rwh-status.st-terlambat {
	background: #fdecec;
	color: #d64545;
}
.rwh-status.st-absent {
	background: #f0f2f5;
	color: #8a94a0;
}

.rwh-arrow {
	color: #c4ccd6;
	font-size: 0.8rem;
}

/* ============================ PROFILE (REDESIGN) ============================ */
.profile-page .profile-content {
	padding-top: 0.5rem;
}

.profile-top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding: 1.25rem 0 1rem;
}

.profile-top-title {
	font-size: 1.5rem;
	font-weight: 700;
	color: #1a2233;
	margin: 0;
}

.profile-top-sub {
	font-size: 0.85rem;
	color: #8a94a0;
	margin: 0.15rem 0 0;
}

.profile-gear {
	width: 42px;
	height: 42px;
	border-radius: 12px;
	border: 1px solid var(--border-color);
	background: #fff;
	color: #5a6572;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	flex-shrink: 0;
}

/* Hero card */
.profile-hero-card {
	background: #fff;
	border: 1px solid #e6ebf7;
	border-radius: 20px;
	padding: 0;
	overflow: hidden;
	margin-bottom: 2rem;
}

.phc-head {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.25rem;
	background: linear-gradient(180deg, #e7edfb 0%, #f4f7fd 55%, #ffffff 100%);
}

.profile-avatar {
	position: relative;
	width: 62px;
	height: 62px;
	border-radius: 50%;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.avatar-edit {
	position: absolute;
	right: -2px;
	bottom: -2px;
	width: 22px;
	height: 22px;
	background: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.6rem;
	color: #5a6572;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
	z-index: 1;
}

.profile-info {
	flex: 1;
	min-width: 0;
}

.profile-name {
	font-size: 1.1rem;
	font-weight: 700;
	color: #1a2233;
	margin: 0;
}

.profile-email {
	font-size: 0.82rem;
	color: #6b7684;
	margin: 0.1rem 0 0.4rem;
}

.member-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	background: #fff;
	border: 1px solid #dbe4ff;
	color: #2f6bff;
	font-size: 0.72rem;
	font-weight: 600;
	padding: 0.2rem 0.55rem;
	border-radius: 20px;
}

.member-badge i {
	color: #f5a623;
}

.phc-arrow {
	color: #a4adb8;
	font-size: 0.85rem;
}

.phc-stats {
	display: flex;
	background: #fff;
	border-top: 1px solid #eef0f5;
	padding: 1.1rem 0.5rem;
}

.phc-stat {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	padding: 0 0.3rem;
	text-align: center;
}

.phc-stat + .phc-stat {
	border-left: 1px solid #e2e8f4;
}

.stat-chip {
	width: 38px;
	height: 38px;
	border-radius: 11px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1rem;
}

.chip-blue {
	background: #e5edff;
	color: #2f6bff;
}
.chip-green {
	background: #e2f5ea;
	color: #1e9e5a;
}
.chip-amber {
	background: #fdf2d6;
	color: #e0a020;
}
.chip-purple {
	background: #efe8ff;
	color: #8b5cf6;
}

.phc-stat strong {
	font-size: 0.98rem;
	font-weight: 700;
	color: #1a2233;
	line-height: 1.1;
}

.stat-label {
	font-size: 0.7rem;
	color: #8a94a0;
}

/* Menu items with description */
.profile-menu-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.85rem;
	text-decoration: none;
	color: inherit;
}

.menu-icon-wrapper {
	width: 42px;
	height: 42px;
	border-radius: 10px;
	background: #eef3ff;
	color: #2f6bff;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.menu-text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.menu-label {
	font-size: 0.92rem;
	font-weight: 700;
	color: #1a2233;
}

.menu-desc {
	font-size: 0.76rem;
	color: #8a94a0;
}

.menu-arrow {
	color: #c4ccd6;
	font-size: 0.8rem;
}

/* Logout */
.logout-section {
	margin-top: 1.25rem;
	text-align: center;
}

.btn-logout {
	width: 100%;
	background: #fff;
	border: 1px solid #f3d0d0;
	color: #d64545;
	font-weight: 700;
	font-size: 0.95rem;
	padding: 0.9rem;
	border-radius: 14px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}

.logout-sub {
	font-size: 0.76rem;
	color: #a4adb8;
	margin: 0.4rem 0 0;
}

/* Profile spacing overrides (match mockup) */
.profile-page .profile-section {
	gap: 0.6rem;
	/* margin-bottom: 1.75rem; */
}

.profile-page .section-title {
	font-size: 1.05rem;
	font-weight: 700;
	color: #1a2233;
	margin-bottom: 0.2rem;
	padding: 0;
}

.profile-page .menu-group {
	border-radius: 16px;
}

.profile-page .profile-menu-item {
	padding: 0.9rem 1rem;
	border-bottom-color: #f0f2f5;
}

/* Safari iOS zooms focused form fields below 16px. */
@media (max-width: 768px) {
}

.profile-page .menu-icon-wrapper {
	width: 42px;
	height: 42px;
	margin-right: 0;
}

.notification-settings-container {
	padding: 6rem 0px 0px 0px;
}

/* ===== Tutorial Page ===== */
.tutorial-page {
	padding-bottom: 2rem;
}
.tutorial-content {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.tutorial-intro {
	display: flex;
	gap: 0.85rem;
	align-items: center;
	background: #eef5ff;
	border: 1px solid #cfe1ff;
	border-radius: 16px;
	padding: 1.1rem;
}
.tutorial-intro i {
	color: var(--primary-color);
	font-size: 1.4rem;
}
.tutorial-intro span {
	display: block;
	color: #667085;
	font-size: 0.82rem;
	margin-top: 0.1rem;
}
.tutorial-step {
	display: grid;
	grid-template-columns: minmax(110px, 38%) 1fr;
	gap: 0.9rem;
	background: #fff;
	border: 1px solid var(--border-color);
	border-radius: 16px;
	padding: 1rem;
}
.tutorial-shot img {
	width: 100%;
	height: auto;
	border-radius: 12px;
	border: 1px solid #e6ebf3;
	background: #f5f7fb;
	display: block;
}
.tutorial-desc h3 {
	font-size: 0.98rem;
	margin: 0.4rem 0 0.35rem;
	color: #20252d;
}
.tutorial-badge {
	display: inline-block;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--primary-color);
	background: #eef2fb;
	border-radius: 999px;
	padding: 0.2rem 0.6rem;
}
.tutorial-desc p {
	margin: 0;
	color: #596273;
	font-size: 0.82rem;
	line-height: 1.55;
}
.tutorial-desc ul {
	margin: 0.55rem 0 0;
	padding-left: 1.1rem;
	color: #667085;
	font-size: 0.78rem;
	line-height: 1.5;
}
.tutorial-desc li + li {
	margin-top: 0.3rem;
}
@media (max-width: 380px) {
	.tutorial-step {
		grid-template-columns: 1fr;
	}
	.tutorial-shot img {
		max-width: 200px;
		margin: 0 auto;
	}
}

.tutorial-page .menu-group {
	margin-top: 0.25rem;
}
