: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: "Work Sans", sans-serif;
	font-optical-sizing: auto;
	background-color: #f8f9fa;
}

.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: #fff;
}

.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: 0px;
	height: 60px !important;
	display: flex;
	align-items: center;
	border-bottom: 0px;
	position: fixed;
	top: 0;
	max-width: 446px;
	width: 100%;
	border-bottom: 1px solid var(--border-color);
	z-index: 10;
}

.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;
}

/* Home Header */
.home-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding: 1.5rem 0 1rem 0;
	position: relative;
}

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

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

.notification-btn {
	background: #f5f5f5;
	border: none;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background 0.2s ease;
}

.notification-btn:hover {
	background: var(--border-color);
}

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

/* Notification Popup */
.notification-popup {
	position: absolute;
	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: var(--primary-color);
	border-radius: 16px;
	padding: 1.5rem;
	margin-bottom: 1.5rem;
}

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

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

.antifraud-score {
	font-size: 3rem;
	font-weight: 700;
	color: #fff;
	margin: 0;
	line-height: 1;
}

.antifraud-status {
	font-size: 1rem;
	color: #fff;
	margin: 0.5rem 0 0 0;
	font-weight: 600;
}

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

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

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

.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;
}

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

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

.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;
	margin-right: 1rem;
	flex-shrink: 0;
}

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

.menu-content {
	flex: 1;
}

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

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

.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;
}

.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) {
	.home-header {
		padding: 1rem 0 0.75rem 0;
	}

	.greeting {
		font-size: 1.5rem;
	}

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

	.antifraud-card {
		padding: 1.25rem;
	}

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

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

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

	.summary-cards {
		gap: 0.75rem;
	}

	.summary-card {
		padding: 1rem;
	}

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

	.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;
	}
}

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

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

/* Page Header with Back Button */
.nilai-page .app-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 0;
	margin-bottom: 1.5rem;
}

.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: 1.5rem;
}

/* Total Nilai Card */
.total-nilai-card {
	background: #fff;
	border-radius: 16px;
	padding: 1.5rem;
	border: 1px solid var(--border-color);
}

.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: 1rem;
}

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

.nilai-max {
	font-size: 1.5rem;
	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.baik {
	background: var(--core-green);
}

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

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

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

.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;
}

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

.breakdown-item {
	display: flex;
	align-items: center;
	padding: 1rem;
	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 {
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 1rem;
	flex-shrink: 0;
}

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

.breakdown-content {
	flex: 1;
}

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

.breakdown-status {
	font-size: 0.85rem;
	color: #666;
	margin: 0;
}

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

.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-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) {
	.nilai-page .app-header {
		padding: 0.75rem 0;
		margin-bottom: 1rem;
	}

	.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-page .app-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 0;
	margin-bottom: 1.5rem;
}

/* 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: 12px;
	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) {
	.outlet-page .app-header {
		padding: 0.75rem 0;
		margin-bottom: 1rem;
	}

	.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;
}

.riwayat-page .app-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 0;
	margin-bottom: 1rem;
}

/* 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) {
	.riwayat-page .app-header {
		padding: 0.75rem 0;
		margin-bottom: 0.75rem;
	}

	.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-page .app-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 0;
	margin-bottom: 1.5rem;
}

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

/* 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) {
	.aturan-page .app-header {
		padding: 0.75rem 0;
		margin-bottom: 1rem;
	}

	.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-page .app-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 0;
	margin-bottom: 1.5rem;
}

/* 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-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-page .app-header {
		padding: 0.75rem 0;
		margin-bottom: 1rem;
	}

	.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-container {
	padding: 1.5rem;
}

.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;
}

.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: 500px;
	max-height: 80vh;
	background: #fff;
	border-radius: 16px;
	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: #f8f9fa;
}

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

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

.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;
}

/* Wage Summary Card */
.wage-summary-card {
	background: #f8f9fa;
	border-radius: 16px;
	padding: 1.5rem;
	margin-bottom: 1.5rem;
	border: 1px solid var(--border-color);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* 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;
}

.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;
}

.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: 12px;
	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 .day-number {
	font-size: 0.85rem;
	font-weight: 500;
	color: #2c3e50;
	margin-bottom: 0.25rem;
}

.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;
}

.outlet-section {
	margin-top: 1rem;
}

/* 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: #ff9800;
	font-size: 1.25rem;
	margin-top: 0.125rem;
}

.info-box-yellow p {
	margin: 0;
	color: #856404;
	font-size: 0.875rem;
	line-height: 1.5;
}

/* Pilih Tanggal Page */
.pilih-tanggal-page .app-header {
	height: 60px !important;
	min-height: 60px !important;
	max-height: 60px !important;
	padding: 0 !important;
}

/* 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 {
	border: 2px solid #e0e0e0;
	border-radius: 10px;
	padding: 1rem;
	transition: all 0.3s ease;
	background: white;
}

.shift-option input[type="checkbox"]:checked + .shift-card {
	border-color: #007bff;
	background: #e7f3ff;
}

/* 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-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) {
	.app-header {
		max-width: calc(100% - 34px);
	}

	.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;
	}
}
