.jv-kalender  {
	width:100%;
	margin: auto;
	background: #fefefe;
}
.jv-kalender h1  {
	text-align: center;
	margin-bottom: 20px;
	font-weight:bold;
}
.jv-kalender select  {
	margin-right: 10px;
	width: auto;
	display: inline-block;
}
.jv-kalender table th {
	background-color:#f8f8f8;
	text-transform:uppercase;
}
.jv-kalender table th, .jv-kalender table td  {
	height: 90px;
	vertical-align: middle;
	text-align: center;
	font-weight: normal;
}
.jv-kalender table th:nth-child(1), .jv-kalender table td:nth-child(1)  {
	color: red;
}
.jv-kalender table th:nth-child(6), .jv-kalender table td:nth-child(6)  {
	color: green;
}
.jv-kalender td.today  {
	background-color: #ffffd8;
	position: relative;
}
.jv-kalender .date  {
	font-size: 33px;
	font-weight: bold;
}
.jv-kalender .pasaran  {
	font-size: 12px;
	color: #2980b9;
	text-transform:uppercase;
}
.jv-kalender .neptu  {
	font-size: 12px;
	color: #555;
}
.jv-kalender #loading  {
	display: none;
	text-align: center;
	margin-bottom: 15px;
}
.jv-kalender table th {
	font-weight:bold;
	font-size:18px;
	width: calc(100% / 7);
}
.jv-kalender td:empty  {
	background-color: #fafafa;
}
.mb-3 {
	margin-bottom:1.5em;
}
input,select  {
	padding: 6px 10px;
	border-radius: 4px;
	box-sizing: border-box;
	border:1px solid #dedede;
	min-width:11% !important;
	margin-right:11px !important;
	margin-top:8px !important;
}
label {
	margin-right:5px !important;
}
#loading {
	display:none;
	text-align:center;
	margin-bottom:15px;
	font-family:sans-serif;
	color:#333
}
.spinner {
	display:inline-block;
	width:30px;
	height:30px;
	border:3px solid #ccc;
	border-top:3px solid #ff3300;
	border-radius:50%;
	animation:spin 0.8s linear infinite;
	margin:0 auto 10px
}
@keyframes spin  {
	to  {
	transform: rotate(360deg);
}
}
.jv-kalender td.today::after  {
	content: '';
	position: absolute;
	top: 6px;
	right: 6px;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background-color: #ff3c00;
	box-shadow: 0 0 0 rgba(255, 60, 0, 0.7);
	animation: pulse-ring 1.5s infinite;
	z-index: 2;
}
@keyframes pulse-ring  {
	0%  {
	box-shadow: 0 0 0 0 rgba(255, 60, 0, 0.7);
}
70%  {
	box-shadow: 0 0 0 10px rgba(255, 60, 0, 0);
}
100%  {
	box-shadow: 0 0 0 0 rgba(255, 60, 0, 0);
}
}
#popup-jawa  {
	display: none;
	position: fixed;
	z-index: 9999;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.4);
	justify-content: center;
	align-items: center;
}
#popup-jawa.show  {
	display: flex;
	animation: fadeIn 0.2s ease-in-out;
}
#popup-jawa .popup-inner  {
	background: #fff;
	border-radius: 8px;
	width: 90%;
	max-width: 425px;
	box-shadow: 0 10px 30px rgba(0,0,0,0.25);
	padding: 20px;
	animation: scaleIn 0.168s ease-out;
	font-family: sans-serif;
}
.popup-header {
  position: relative;
  font-weight: bold;
  font-size: 21px;
  margin-bottom: 15px;
  padding-right: 40px; /* beri ruang agar teks tidak tertabrak tombol */
}
.popup-close {
  position: absolute;
  top: -45px;       /* separuh di luar */
  right: -29px;     /* separuh di luar */
  width: 25px;
  height: 25px;
  background: #ff3c00;
  color: #fff;
  font-weight: bold;
  border-radius: 50%;
  font-size: 19px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 999;
  transition: 0.2s;
}

.popup-jawa .popup-close:hover {
  background-color: #d63000;
}

.popup-table  {
	width: 100%;
	border-collapse: collapse;
}
.popup-table td  {
	padding: 8px 5px;
	border-bottom: 1px solid #eee;
	font-size: 14px;
}
.popup-table td:first-child  {
	font-weight: bold;
	color: #333;
	width: 38%;
}
@keyframes fadeIn  {
	from  {
	opacity: 0;
}
to  {
	opacity: 1;
}
}
@keyframes scaleIn  {
	from  {
	transform: scale(0.95);
}
to  {
	transform: scale(1);
}
}
    @media (max-width:768px) {
	.jv-kalender h1 {
	font-size:1.5em
}
.jv-kalender select,.jv-kalender input {
	width:100%!important;
	margin-right:0!important;
	margin-bottom:10px
}
.jv-kalender table th,.jv-kalender table td {
	height:45px;
	font-size:12px;
	padding:4px
}
.jv-kalender .date {
	font-size:20px
}
.jv-kalender .pasaran,.jv-kalender .neptu {
	font-size:10px
}
.popup-header {
	font-size:18px;
	flex-direction:column;
	gap:10px
}
#popup-jawa .popup-inner {
	padding:15px
}
.popup-table td {
	font-size:13px;
	padding:6px 4px
}
.popup-table td:first-child {
	width:45%
}
}
@media (max-width:480px) {
	.jv-kalender table th,.jv-kalender table td {
	height:25px;
	font-size:12px
}
.jv-kalender .date {
	font-size:18px
}
.jv-kalender .pasaran,.jv-kalender .neptu {
	font-size:9px
}
.popup-table td {
	font-size:12px
}
}
@media (max-width:600px) {
	.jv-kalender td.today::after {
	top:4px;
	right:4px;
	width:7px;
	height:7px;
	box-shadow:0 0 0 1px rgba(255,60,0,0.4)
}
}
.jv-kalender-toolbar  {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}
.nav-buttons {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ced4da;
  border-radius: 6px;
  overflow: hidden;
}
.nav-buttons button {
  padding: 3px 9px;
  font-size: 21px;
  font-weight: 600;
  border: none;
  background-color: #f8f9fa;
  color: #495057;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.nav-buttons button:hover {
  background-color: #e2e6ea;
  color: #212529;
}
.nav-buttons button svg {
  width: 1em;
  height: 1.2em;
  display: block;
  margin-top: 2px;
}

/* Tambahkan border hanya di tengah */
.nav-buttons button + button  {
  border-left: 1px solid #ced4da;
}

.jvc-important {
  background-color: #ffebeb !important;
  border: 2px solid red;
  position: relative;
  color:red !important;
}
.jvc-important::after {
  content: "★";
  position: absolute;
  top: 2px;
  left: 4px;
  color: red !important;
  font-size: 0.9em;
}
.jvc-important .date,
.jvc-important .pasaran {
  color: red !important;
}