diff --git a/web/assets/css/custom.css b/web/assets/css/custom.css
index ca7d23b1..c41bcc16 100644
--- a/web/assets/css/custom.css
+++ b/web/assets/css/custom.css
@@ -1050,12 +1050,17 @@ li.ant-select-dropdown-menu-item:empty:after {
     color: rgba(255, 255, 255, 0.25);
 }
 
+.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(
+    :last-child
+  ),
+.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(
+    :last-child
+  ),
+.ant-input-group.ant-input-group-compact
+  > .ant-input:not(:first-child):not(:last-child),
+.ant-input-number-handler,
 .ant-input-number-handler-wrap {
-    border-radius: 0;
-}
-
-.ant-input-number-handler {
-    border-radius: 0;
+  border-radius: 0;
 }
 
 .ant-input-number {
@@ -1089,7 +1094,8 @@ li.ant-select-dropdown-menu-item:empty:after {
     > td,
 .ant-table-thead
     > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
-    > td {
+    > td,
+.ant-calendar-time-picker-select li:hover {
     background-color: rgb(232 244 242);
 }
 
@@ -1121,3 +1127,11 @@ li.ant-select-dropdown-menu-item:empty:after {
 .ant-input-group-addon:not(:first-child):not(:last-child), .ant-input-group-wrap:not(:first-child):not(:last-child), .ant-input-group>.ant-input:not(:first-child):not(:last-child) {
     border-radius: 0rem 1rem 1rem 0rem;
 }
+
+.ant-tag {
+    margin-right: 6px;
+}
+
+b, strong {
+    font-weight: 500;
+}
diff --git a/web/assets/persian-datepicker/persian-datepicker.min.css b/web/assets/persian-datepicker/persian-datepicker.min.css
index bbbef736..9e99974a 100644
--- a/web/assets/persian-datepicker/persian-datepicker.min.css
+++ b/web/assets/persian-datepicker/persian-datepicker.min.css
@@ -1 +1,454 @@
-jdp-overlay{height:0;width:0}jdp-container{-moz-animation:.3s cubic-bezier(.23,1,.32,1) jdpOpenAnimation;-webkit-animation:.3s cubic-bezier(.23,1,.32,1) jdpOpenAnimation;animation:.3s cubic-bezier(.23,1,.32,1) jdpOpenAnimation;background:#fff;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.12),0 1px 4px rgba(0,0,0,.24);direction:rtl;display:none;max-width:307.875px;min-width:307.875px;overflow:hidden;padding:.5rem 0;position:absolute;-ms-touch-action:manipulation;touch-action:manipulation;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}jdp-container,jdp-container *,jdp-container :after,jdp-container :before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}jdp-container .jdp-icon-minus,jdp-container .jdp-icon-plus{border:1px solid #e6e6e6;border-radius:4px;cursor:pointer;display:inline-block;flex:none;overflow:hidden;text-align:center;text-decoration:none;vertical-align:middle}jdp-container .jdp-icon-minus svg,jdp-container .jdp-icon-plus svg{height:1.5rem;padding:.25rem;vertical-align:middle;width:1.5rem}jdp-container .jdp-icon-minus.not-in-range,jdp-container .jdp-icon-plus.not-in-range{cursor:not-allowed}jdp-container .jdp-icon-minus.not-in-range svg,jdp-container .jdp-icon-plus.not-in-range svg{opacity:.3}jdp-container .jdp-months,jdp-container .jdp-years{fill:rgba(0,0,0,.9);color:rgba(0,0,0,.9);display:-webkit-inline-box;display:-webkit-flex;display:-ms-inline-flexbox;display:inline-flex;font-size:120%;margin:0 2.5%}jdp-container .jdp-months{width:50%}jdp-container .jdp-years{width:40%}jdp-container .jdp-month,jdp-container .jdp-month input,jdp-container .jdp-month select,jdp-container .jdp-time,jdp-container .jdp-time input,jdp-container .jdp-time select,jdp-container .jdp-year,jdp-container .jdp-year input,jdp-container .jdp-year select{background:#fff;border:none;border-radius:0;color:inherit;display:inline-block;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:0;outline:0;padding:0;text-align:center;vertical-align:initial;width:100%}jdp-container .jdp-month input:active,jdp-container .jdp-month input:focus,jdp-container .jdp-month select:active,jdp-container .jdp-month select:focus,jdp-container .jdp-month:active,jdp-container .jdp-month:focus,jdp-container .jdp-time input:active,jdp-container .jdp-time input:focus,jdp-container .jdp-time select:active,jdp-container .jdp-time select:focus,jdp-container .jdp-time:active,jdp-container .jdp-time:focus,jdp-container .jdp-year input:active,jdp-container .jdp-year input:focus,jdp-container .jdp-year select:active,jdp-container .jdp-year select:focus,jdp-container .jdp-year:active,jdp-container .jdp-year:focus{outline:0}jdp-container .jdp-month input option,jdp-container .jdp-month option,jdp-container .jdp-month select option,jdp-container .jdp-time input option,jdp-container .jdp-time option,jdp-container .jdp-time select option,jdp-container .jdp-year input option,jdp-container .jdp-year option,jdp-container .jdp-year select option{font-size:95%;min-height:1.3rem;outline:0;padding:0}jdp-container .jdp-month:hover,jdp-container .jdp-time:hover,jdp-container .jdp-year:hover{filter:brightness(.9)}jdp-container .jdp-month input,jdp-container .jdp-time input,jdp-container .jdp-year input{-webkit-appearance:none;-moz-appearance:textfield;cursor:text}jdp-container .jdp-month input::-webkit-inner-spin-button,jdp-container .jdp-month input::-webkit-outer-spin-button,jdp-container .jdp-time input::-webkit-inner-spin-button,jdp-container .jdp-time input::-webkit-outer-spin-button,jdp-container .jdp-year input::-webkit-inner-spin-button,jdp-container .jdp-year input::-webkit-outer-spin-button{-webkit-appearance:none}jdp-container .jdp-month select,jdp-container .jdp-time select,jdp-container .jdp-year select{-webkit-appearance:menulist;-moz-appearance:menulist;cursor:pointer;position:relative}jdp-container .jdp-days{-ms-flex-pack:justify;display:inline-block;display:-ms-flexbox;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;justify-content:space-around;outline:0;padding:.5rem 0 0;text-align:left;width:100%}jdp-container .jdp-day,jdp-container .jdp-day-name{background:0 0;border:1px solid transparent;color:rgba(0,0,0,.9);display:inline-block;flex-basis:14.2857143%;font-weight:400;height:31px;justify-content:center;line-height:31px;margin:2px 0;position:relative;text-align:center;width:14.2857143%}jdp-container .jdp-day-name.today,jdp-container .jdp-day.today{border-color:rgba(0,0,0,.3)}.dark jdp-container .jdp-day-name.selected,.dark jdp-container .jdp-day.selected,jdp-container .jdp-day-name.selected,jdp-container .jdp-day.selected{background-color:#008771!important;color:#fff!important;opacity:1!important}.dark jdp-container .jdp-day-name.holly-day,.dark jdp-container .jdp-day-name.last-week,.dark jdp-container .jdp-day.holly-day,.dark jdp-container .jdp-day.last-week,jdp-container .jdp-day-name.holly-day,jdp-container .jdp-day-name.last-week,jdp-container .jdp-day.holly-day,jdp-container .jdp-day.last-week{color:#f44336}.dark jdp-container .jdp-day.not-in-month,jdp-container .jdp-day.not-in-month{opacity:.4}jdp-container .jdp-day.disabled-day{cursor:not-allowed;opacity:.15}jdp-container .jdp-day:not(.disabled-day){border-radius:4px;cursor:pointer;transition:.1s linear}jdp-container .jdp-day:not(.disabled-day):hover{background:rgba(0,0,0,.1);transform:scale(1.15);z-index:1}jdp-container .jdp-day-name{background-color:rgba(0,0,0,.1);border-radius:0;cursor:default;font-size:90%;font-weight:900}jdp-container .jdp-footer{-ms-flex-pack:justify;display:inline-block;display:-ms-flexbox;display:flex;flex-wrap:nowrap;-ms-flex-wrap:nowrap;justify-content:space-between;outline:0;padding:.5rem .5rem 0;width:100%}jdp-container .jdp-btn-close,jdp-container .jdp-btn-empty,jdp-container .jdp-btn-today{background:#008771;border-radius:5px;color:#fff;cursor:pointer;display:inline-block;font-size:90%;font-weight:400;padding:.3em .6em;text-align:center}jdp-container .jdp-btn-close.disabled-btn,jdp-container .jdp-btn-empty.disabled-btn,jdp-container .jdp-btn-today.disabled-btn{cursor:not-allowed;opacity:.2}@media only screen and (max-width:481px){jdp-overlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:rgba(0,0,0,.3);display:none;height:100%;left:0;position:fixed;top:0;width:100%}jdp-container{-moz-animation:.3s cubic-bezier(.23,1,.32,1) jdpOpenAnimationMobile;-webkit-animation:.3s cubic-bezier(.23,1,.32,1) jdpOpenAnimationMobile;animation:.3s cubic-bezier(.23,1,.32,1) jdpOpenAnimationMobile;border-radius:4px 4px 0 0;bottom:0!important;left:50%!important;max-width:100%;min-width:280px;top:unset!important;transform:translateX(-50%)!important;width:100%}jdp-container .jdp-footer{margin:.5rem 0}jdp-container .jdp-btn-close,jdp-container .jdp-btn-empty,jdp-container .jdp-btn-today{font-size:100%;padding:.5em .8em}jdp-container .jdp-btn-today~.jdp-btn-empty{margin-left:auto;margin-right:1em}}jdp-container .jdp-time-container{display:flex;padding:0}jdp-container .jdp-time-container .jdp-time{flex:auto;margin:0 .5rem;position:relative}jdp-container .jdp-time-container .jdp-time select{background:rgba(0,0,0,.03);border-radius:5px;padding:.5rem 1rem .5rem 7px}jdp-container .jdp-time-container .jdp-time:after{content:":";font-size:1.5rem;height:100%;position:absolute;right:-.7rem;top:50%;transform:translateY(-50%)}jdp-container .jdp-time-container .jdp-time:first-child:after{display:none}jdp-container .jdp-time-container.jdp-only-time .jdp-time select{font-size:1.5rem;padding:.8rem 1rem .8rem 7px}jdp-container .jdp-time-container.jdp-only-time .jdp-time:after{font-size:2.3rem;position:absolute;right:-.8rem}@-webkit-keyframes jdpOpenAnimation{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes jdpOpenAnimation{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes jdpOpenAnimationMobile{0%{bottom:-10%;opacity:0}to{bottom:0;opacity:1}}@keyframes jdpOpenAnimationMobile{0%{margin-bottom:-20%;opacity:0}to{margin-bottom:0;opacity:1}}.dark jdp-overlay{background-color:#181f2c}.dark jdp-container{background:#181f2c;border-color:#2c3950;box-shadow:0 1px 6px rgba(255,255,255,.12),0 1px 4px rgba(255,255,255,.24);color:#fff}.dark jdp-container .jdp-icon-minus,.dark jdp-container .jdp-icon-plus{border:1px solid #ccc}.dark jdp-container .jdp-months,.dark jdp-container .jdp-years{fill:rgba(255,255,255,0.9);color:rgba(255,255,255,.9)}.dark jdp-container .jdp-month,.dark jdp-container .jdp-month input,.dark jdp-container .jdp-month select,.dark jdp-container .jdp-time,.dark jdp-container .jdp-time input,.dark jdp-container .jdp-time select,.dark jdp-container .jdp-year,.dark jdp-container .jdp-year input,.dark jdp-container .jdp-year select{background:#222d42;color:#fff}.dark jdp-container .jdp-day,.dark jdp-container .jdp-day-name{border:1px solid transparent;color:rgba(255,255,255,.9)}.dark jdp-container .jdp-day-name.today,.dark jdp-container .jdp-day.today{border-color:rgba(255,255,255,.3)}.dark jdp-container .jdp-day.disabled-day{opacity:.15}.dark jdp-container .jdp-day:not(.disabled-day):hover{background:rgba(255,255,255,.1);transform:scale(1.15);z-index:1}.dark jdp-container .jdp-day-name{background-color:#222d42}.dark jdp-container .jdp-footer{background:#181f2c}.dark jdp-container .jdp-btn-close,.dark jdp-container .jdp-btn-empty,.dark jdp-container .jdp-btn-today{background:#008771;color:#fff}.dark jdp-container .jdp-btn-close.disabled-btn,.dark jdp-container .jdp-btn-empty.disabled-btn,.dark jdp-container .jdp-btn-today.disabled-btn{opacity:.2}
\ No newline at end of file
+jdp-overlay {
+    height: 0;
+    width: 0;
+}
+jdp-container {
+    -moz-animation: 0.3s cubic-bezier(0.23, 1, 0.32, 1) jdpOpenAnimation;
+    -webkit-animation: 0.3s cubic-bezier(0.23, 1, 0.32, 1) jdpOpenAnimation;
+    animation: 0.3s cubic-bezier(0.23, 1, 0.32, 1) jdpOpenAnimation;
+    background: #fff;
+    border-radius: 1rem;
+    box-shadow: 0 2px 8px rgba(0,0,0,.15);
+    direction: rtl;
+    display: none;
+    width: 280px;
+    overflow: hidden;
+    padding: 0.5rem 0;
+    position: absolute;
+    -ms-touch-action: manipulation;
+    touch-action: manipulation;
+    -moz-user-select: none;
+    -webkit-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    transform-origin: bottom;
+}
+jdp-container,
+jdp-container *,
+jdp-container :after,
+jdp-container :before {
+    -moz-box-sizing: border-box;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+}
+jdp-container .jdp-icon-minus,
+jdp-container .jdp-icon-plus {
+    border: 1px solid rgb(232 244 242);
+    border-radius: 6px;
+    cursor: pointer;
+    display: flex;
+    flex: none;
+    overflow: hidden;
+    text-align: center;
+    text-decoration: none;
+    vertical-align: middle;
+    transition: all 0.2s;
+    width: 24px;
+    height: 24px;
+    align-items: center;
+    justify-content: center;
+}
+
+jdp-container .jdp-icon-minus:hover,
+jdp-container .jdp-icon-plus:hover {
+    background-color: rgb(232 244 242);
+}
+
+jdp-container .jdp-icon-minus svg,
+jdp-container .jdp-icon-plus svg {
+    height: 1.5rem;
+    padding: 0.25rem;
+    vertical-align: middle;
+    width: 1.5rem;
+}
+jdp-container .jdp-icon-minus.not-in-range,
+jdp-container .jdp-icon-plus.not-in-range {
+    cursor: not-allowed;
+}
+jdp-container .jdp-icon-minus.not-in-range svg,
+jdp-container .jdp-icon-plus.not-in-range svg {
+    opacity: 0.3;
+}
+jdp-container .jdp-months,
+jdp-container .jdp-years {
+    fill: rgba(0, 0, 0, 0.9);
+    color: rgba(0, 0, 0, 0.9);
+    display: -webkit-inline-box;
+    display: -webkit-flex;
+    display: -ms-inline-flexbox;
+    display: inline-flex;
+    font-size: 120%;
+    margin: 0 2.5%;
+}
+jdp-container .jdp-months {
+    width: 40%;
+    margin-right: 1rem;
+}
+jdp-container .jdp-years {
+    width: 40%;
+    margin: 0.5rem 1.2rem 0.8rem 0;
+}
+jdp-container .jdp-month,
+jdp-container .jdp-month input,
+jdp-container .jdp-month select,
+jdp-container .jdp-time,
+jdp-container .jdp-time input,
+jdp-container .jdp-time select,
+jdp-container .jdp-year,
+jdp-container .jdp-year input,
+jdp-container .jdp-year select {
+    background: #fff;
+    border: none;
+    border-radius: 0;
+    color: inherit;
+    display: inline-block;
+    font-family: inherit;
+    font-size: inherit;
+    font-weight: 300;
+    height: auto;
+    line-height: inherit;
+    margin: 0;
+    outline: 0;
+    padding: 0;
+    text-align: center;
+    vertical-align: initial;
+    width: 100%;
+    font-feature-settings: "ss01";
+}
+jdp-container .jdp-month input:active,
+jdp-container .jdp-month input:focus,
+jdp-container .jdp-month select:active,
+jdp-container .jdp-month select:focus,
+jdp-container .jdp-month:active,
+jdp-container .jdp-month:focus,
+jdp-container .jdp-time input:active,
+jdp-container .jdp-time input:focus,
+jdp-container .jdp-time select:active,
+jdp-container .jdp-time select:focus,
+jdp-container .jdp-time:active,
+jdp-container .jdp-time:focus,
+jdp-container .jdp-year input:active,
+jdp-container .jdp-year input:focus,
+jdp-container .jdp-year select:active,
+jdp-container .jdp-year select:focus,
+jdp-container .jdp-year:active,
+jdp-container .jdp-year:focus {
+    outline: 0;
+}
+jdp-container .jdp-month input option,
+jdp-container .jdp-month option,
+jdp-container .jdp-month select option,
+jdp-container .jdp-time input option,
+jdp-container .jdp-time option,
+jdp-container .jdp-time select option,
+jdp-container .jdp-year input option,
+jdp-container .jdp-year option,
+jdp-container .jdp-year select option {
+    font-size: 95%;
+    min-height: 1.3rem;
+    outline: 0;
+    padding: 0;
+}
+jdp-container .jdp-month input,
+jdp-container .jdp-time input,
+jdp-container .jdp-year input {
+    -webkit-appearance: none;
+    -moz-appearance: textfield;
+    cursor: text;
+}
+jdp-container .jdp-month input::-webkit-inner-spin-button,
+jdp-container .jdp-month input::-webkit-outer-spin-button,
+jdp-container .jdp-time input::-webkit-inner-spin-button,
+jdp-container .jdp-time input::-webkit-outer-spin-button,
+jdp-container .jdp-year input::-webkit-inner-spin-button,
+jdp-container .jdp-year input::-webkit-outer-spin-button {
+    -webkit-appearance: none;
+}
+jdp-container .jdp-month select,
+jdp-container .jdp-time select,
+jdp-container .jdp-year select {
+    -webkit-appearance: none;
+    -moz-appearance: none;
+    cursor: pointer;
+    appearance: none;
+    position: relative;
+}
+jdp-container .jdp-days {
+    -ms-flex-pack: justify;
+    display: inline-block;
+    display: -ms-flexbox;
+    display: flex;
+    flex-wrap: wrap;
+    -ms-flex-wrap: wrap;
+    justify-content: space-around;
+    outline: 0;
+    padding: 8px 12px;
+    text-align: left;
+    width: 100%;
+    border-top: 1px solid #e8e8e8;
+}
+jdp-container .jdp-day,
+jdp-container .jdp-day-name {
+    background: 0 0;
+    border: 1px solid transparent;
+    color: rgba(0,0,0,.65);
+    display: block;
+    font-weight: 400;
+    height: 24px;
+    justify-content: center;
+    line-height: 22px;
+    margin: 2px 6px;
+    position: relative;
+    text-align: center;
+    width: 24px;
+    font-feature-settings: "ss01";
+}
+jdp-container .jdp-day-name.today,
+jdp-container .jdp-day.today {
+    border-color: #008771;
+    color: #008771;
+    font-weight: 700;
+}
+.dark jdp-container .jdp-day-name.selected,
+.dark jdp-container .jdp-day.selected,
+jdp-container .jdp-day-name.selected,
+jdp-container .jdp-day.selected {
+    background-color: #008771 !important;
+    color: #fff !important;
+    opacity: 1 !important;
+}
+.dark jdp-container .jdp-day-name.holly-day,
+.dark jdp-container .jdp-day-name.last-week,
+.dark jdp-container .jdp-day.holly-day,
+.dark jdp-container .jdp-day.last-week,
+jdp-container .jdp-day-name.holly-day,
+jdp-container .jdp-day-name.last-week,
+jdp-container .jdp-day.holly-day,
+jdp-container .jdp-day.last-week {
+    color: #f44336;
+}
+.dark jdp-container .jdp-day.not-in-month,
+jdp-container .jdp-day.not-in-month {
+    opacity: 0.4;
+}
+jdp-container .jdp-day.disabled-day {
+    cursor: not-allowed;
+    opacity: 0.15;
+}
+jdp-container .jdp-day:not(.disabled-day) {
+    border-radius: 6px;
+    cursor: pointer;
+    transition: 0.1s linear;
+}
+jdp-container .jdp-day:not(.disabled-day):hover {
+    background: rgb(232 244 242);
+}
+jdp-container .jdp-day-name {
+    background-color: rgb(0 0 0 / 0%);
+    border-radius: 6px;
+    cursor: default;
+}
+jdp-container .jdp-footer {
+    -ms-flex-pack: justify;
+    display: inline-block;
+    display: -ms-flexbox;
+    display: flex;
+    flex-wrap: nowrap;
+    -ms-flex-wrap: nowrap;
+    justify-content: space-between;
+    outline: 0;
+    padding: 6px 12px 0;
+    width: 100%;
+    border-top: 1px solid #e8e8e8;
+}
+jdp-container .jdp-btn-close,
+jdp-container .jdp-btn-empty,
+jdp-container .jdp-btn-today {
+    background: #00877000;
+    border-radius: 5px;
+    color: #008771;
+    cursor: pointer;
+    display: inline-block;
+    font-size: 90%;
+    font-weight: 400;
+    padding: 0.3em 0.6em;
+    text-align: center;
+}
+jdp-container .jdp-btn-close.disabled-btn,
+jdp-container .jdp-btn-empty.disabled-btn,
+jdp-container .jdp-btn-today.disabled-btn {
+    cursor: not-allowed;
+    opacity: 0.2;
+}
+jdp-container .jdp-time-container {
+    display: flex;
+    padding: 6px 12px 12px 12px;
+}
+jdp-container .jdp-time-container .jdp-time {
+    flex: auto;
+    margin: 0 0.5rem;
+    position: relative;
+}
+jdp-container .jdp-time-container .jdp-time select {
+    border: 1px solid rgb(232 244 242);
+    border-radius: 6px;
+    appearance: none;
+    transition: all 0.2s;
+}
+
+jdp-container .jdp-time-container .jdp-time select:hover {
+    background-color: rgb(232 244 242);
+}
+
+jdp-container .jdp-time-container .jdp-time:after {
+    content: ":";
+    font-size: 1.5rem;
+    height: 100%;
+    position: absolute;
+    right: -0.7rem;
+    transform: translateY(-50%);
+}
+jdp-container .jdp-time-container .jdp-time:first-child:after {
+    display: none;
+}
+jdp-container .jdp-time-container.jdp-only-time .jdp-time select {
+    font-size: 1.5rem;
+    padding: 0.8rem 1rem 0.8rem 7px;
+}
+jdp-container .jdp-time-container.jdp-only-time .jdp-time:after {
+    font-size: 2.3rem;
+    position: absolute;
+    right: -0.8rem;
+}
+@-webkit-keyframes jdpOpenAnimation {
+    0% {
+        transform: scaleY(.8);
+        transform-origin: 0% 0%;
+        opacity: 0
+    }
+
+    to {
+        transform: scaleY(1);
+        transform-origin: 0% 0%;
+        opacity: 1
+    }
+}
+@keyframes jdpOpenAnimation {
+    0% {
+        transform: scaleY(.8);
+        transform-origin: 0% 0%;
+        opacity: 0
+    }
+
+    to {
+        transform: scaleY(1);
+        transform-origin: 0% 0%;
+        opacity: 1
+    }
+}
+@-webkit-keyframes jdpOpenAnimationMobile {
+    0% {
+        bottom: -10%;
+        opacity: 0;
+    }
+    to {
+        bottom: 0;
+        opacity: 1;
+    }
+}
+@keyframes jdpOpenAnimationMobile {
+    0% {
+        margin-bottom: -20%;
+        opacity: 0;
+    }
+    to {
+        margin-bottom: 0;
+        opacity: 1;
+    }
+}
+
+.dark jdp-container .jdp-days {
+    border-color: #313f5a;
+}
+
+.dark jdp-overlay {
+    background-color: #181f2c;
+}
+.dark jdp-container {
+    background: #101828;
+    border-color: #2c3950;
+    box-shadow: 0 2px 8px rgba(0,0,0,.15);
+    color: #fff;
+}
+.dark jdp-container .jdp-icon-minus,
+.dark jdp-container .jdp-icon-plus {
+    border-color: #313f5a;
+}
+
+.dark jdp-container .jdp-icon-minus:hover,
+.dark jdp-container .jdp-icon-plus:hover {
+    background-color: #313f5a;
+}
+
+.dark jdp-container .jdp-months,
+.dark jdp-container .jdp-years {
+    fill: rgba(255, 255, 255, 0.9);
+    color: rgba(255, 255, 255, 0.9);
+}
+.dark jdp-container .jdp-month,
+.dark jdp-container .jdp-month input,
+.dark jdp-container .jdp-month select,
+.dark jdp-container .jdp-time,
+.dark jdp-container .jdp-time input,
+.dark jdp-container .jdp-time select,
+.dark jdp-container .jdp-year,
+.dark jdp-container .jdp-year input,
+.dark jdp-container .jdp-year select {
+    background: #101828;
+    color: rgb(255 255 255 / 65%);
+}
+.dark jdp-container .jdp-day,
+.dark jdp-container .jdp-day-name {
+    border: 1px solid transparent;
+    color: rgba(255, 255, 255, 0.65);
+}
+.dark jdp-container .jdp-day-name.today,
+.dark jdp-container .jdp-day.today {
+    border-color: #008771;
+}
+.dark jdp-container .jdp-day.disabled-day {
+    opacity: 0.15;
+}
+.dark jdp-container .jdp-day:not(.disabled-day):hover {
+    background-color: #313f5a;
+    color: #fff;
+}
+.dark jdp-container .jdp-footer {
+    border-color: #313f5a;
+}
+.dark jdp-container .jdp-btn-close,
+.dark jdp-container .jdp-btn-empty,
+.dark jdp-container .jdp-btn-today {
+    color: rgb(255 255 255 / 65%);
+}
+
+.dark jdp-container .jdp-btn-close:hover,
+.dark jdp-container .jdp-btn-empty:hover,
+.dark jdp-container .jdp-btn-today:hover {
+    color: rgb(255, 255, 255);
+}
+
+.dark jdp-container .jdp-btn-close.disabled-btn,
+.dark jdp-container .jdp-btn-empty.disabled-btn,
+.dark jdp-container .jdp-btn-today.disabled-btn {
+    opacity: 0.2;
+}
+
+.dark jdp-container .jdp-time-container .jdp-time select:hover {
+    background-color: #313f5a;
+    color: #fff;
+}
+
+.dark jdp-container .jdp-time-container .jdp-time select {
+    border: 1px solid rgb(49 63 90);
+}
diff --git a/web/html/login.html b/web/html/login.html
index 34eff41c..b622a080 100644
--- a/web/html/login.html
+++ b/web/html/login.html
@@ -31,7 +31,7 @@
   }
   .title {
     font-size: 32px;
-    font-weight: bold;
+    font-weight: 600;
   }
   #app {
     overflow: hidden;
@@ -204,7 +204,7 @@
     position: relative;
     width: 100%;
     height: 15vh;
-    margin-bottom: -5px; /*Fix for safari gap*/
+    margin-bottom: -8px; /*Fix for safari gap*/
     min-height: 100px;
     max-height: 150px;
   }
@@ -212,23 +212,27 @@
     animation: move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;
   }
   .dark .parallax > use {
-    fill: rgb(10 117 87 / 20%);
+    fill: #0f2d32;
   }
   .parallax > use:nth-child(1) {
     animation-delay: -2s;
-    animation-duration: 7s;
+    animation-duration: 4s;
     opacity: 0.2;
   }
   .parallax > use:nth-child(2) {
     animation-delay: -3s;
-    animation-duration: 10s;
+    animation-duration: 7s;
     opacity: 0.4;
   }
   .parallax > use:nth-child(3) {
     animation-delay: -4s;
-    animation-duration: 13s;
+    animation-duration: 10s;
     opacity: 0.6;
   }
+  .parallax > use:nth-child(4) {
+  animation-delay: -5s;
+  animation-duration: 13s;
+  }
   @keyframes move-forever {
     0% {
       transform: translate3d(-90px, 0, 0);
@@ -255,9 +259,10 @@
                         <path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z" />
                     </defs>
                     <g class="parallax">
+                        <use xlink:href="#gentle-wave" x="48" y="0" fill="rgba(0, 135, 113, 0.08)" />
                         <use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(0, 135, 113, 0.08)" />
                         <use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(0, 135, 113, 0.08)" />
-                        <use xlink:href="#gentle-wave" x="48" y="7" fill="rgba(0, 135, 113, 0.08)" />
+                        <use xlink:href="#gentle-wave" x="48" y="7" fill="#c7ebe2" />
                     </g>
                 </svg>
             </div>
@@ -290,7 +295,7 @@
                         </a-form-item>
                         <a-form-item>
                             <a-row justify="center" class="centered">
-                                <div class="wave-btn-bg wave-btn-bg-cl" :style="loading ? { width: '54px' } : { display: 'inline-block' }">
+                                <div class="wave-btn-bg wave-btn-bg-cl" :style="loading ? { width: '52px' } : { display: 'inline-block' }">
                                     <a-button class="ant-btn-primary-login" type="primary" :loading="loading" @click="login" :icon="loading ? 'poweroff' : undefined">
                                         [[ loading ? '' : '{{ i18n "login" }}' ]]
                                     </a-button>
diff --git a/web/html/xui/common_sider.html b/web/html/xui/common_sider.html
index f91b9fbb..13d5bd49 100644
--- a/web/html/xui/common_sider.html
+++ b/web/html/xui/common_sider.html
@@ -1,19 +1,19 @@
 {{define "menuItems"}}
 <a-menu-item key="{{ .base_path }}panel/">
     <a-icon type="dashboard"></a-icon>
-    <span>{{ i18n "menu.dashboard"}}</span>
+    <span><b>{{ i18n "menu.dashboard"}}</b></span>
 </a-menu-item>
 <a-menu-item key="{{ .base_path }}panel/inbounds">
     <a-icon type="user"></a-icon>
-    <span>{{ i18n "menu.inbounds"}}</span>
+    <span><b>{{ i18n "menu.inbounds"}}</b></span>
 </a-menu-item>
 <a-menu-item key="{{ .base_path }}panel/settings">
     <a-icon type="setting"></a-icon>
-    <span>{{ i18n "menu.settings"}}</span>
+    <span><b>{{ i18n "menu.settings"}}</b></span>
 </a-menu-item>
 <a-menu-item key="{{ .base_path }}panel/xray">
     <a-icon type="tool"></a-icon>
-    <span>{{ i18n "menu.xray"}}</span>
+    <span><b>{{ i18n "menu.xray"}}</b></span>
 </a-menu-item>
 <!--<a-menu-item key="{{ .base_path }}panel/clients">-->
 <!--    <a-icon type="laptop"></a-icon>-->
@@ -21,7 +21,7 @@
 <!--</a-menu-item>-->
 <a-menu-item key="{{ .base_path }}logout">
     <a-icon type="logout"></a-icon>
-    <span>{{ i18n "menu.logout"}}</span>
+    <span><b>{{ i18n "menu.logout"}}</b></span>
 </a-menu-item>
 {{end}}
 
diff --git a/web/html/xui/component/persianDatepicker.html b/web/html/xui/component/persianDatepicker.html
index 10ef8472..456d5ec6 100644
--- a/web/html/xui/component/persianDatepicker.html
+++ b/web/html/xui/component/persianDatepicker.html
@@ -5,7 +5,7 @@
                  @input="$emit('input', convertToGregorian($event.target.value)); jalaliDatepicker.hide();"
                  :placeholder="placeholder">
             <template #addonAfter>
-                <a-icon type="calendar" style="font-size: 16px;"/>
+                <a-icon type="calendar" style="font-size: 14px; opacity: 0.5;"/>
             </template>
         </a-input>
     </div>
@@ -57,4 +57,4 @@
         }
     });
 </script>
-{{end}}
\ No newline at end of file
+{{end}}
diff --git a/web/html/xui/form/inbound.html b/web/html/xui/form/inbound.html
index 048fc818..6f3705ff 100644
--- a/web/html/xui/form/inbound.html
+++ b/web/html/xui/form/inbound.html
@@ -54,7 +54,7 @@
                 <a-icon type="question-circle"></a-icon>
             </a-tooltip>
         </template>
-            <a-date-picker v-if="datepicker == 'gregorian'" :show-time="{ format: 'HH:mm:ss' }" format="YYYY-MM-DD HH:mm:ss"
+            <a-date-picker style="width: 100%;" v-if="datepicker == 'gregorian'" :show-time="{ format: 'HH:mm:ss' }" format="YYYY-MM-DD HH:mm:ss"
                 :dropdown-class-name="themeSwitcher.currentTheme"
                 v-model="dbInbound._expiryTime"></a-date-picker>
             <persian-datepicker v-else placeholder='{{ i18n "pages.settings.datepickerPlaceholder" }}'
@@ -117,4 +117,4 @@
 <template v-if="inbound.canSniffing()">
     {{template "form/sniffing"}}
 </template>
-{{end}}
\ No newline at end of file
+{{end}}
diff --git a/web/html/xui/form/stream/external_proxy.html b/web/html/xui/form/stream/external_proxy.html
index 2a072df9..9c3ed2e0 100644
--- a/web/html/xui/form/stream/external_proxy.html
+++ b/web/html/xui/form/stream/external_proxy.html
@@ -20,7 +20,7 @@
             <a-input-number style="width: 15%;" v-model.number="row.port" min="1" max="65531"></a-input-number>
         </a-tooltip>
         <a-input style="width: 20%" v-model.trim="row.remark" placeholder='{{ i18n "remark" }}'></a-input>
-        <a-button style="width: 10%; margin: 0px" @click="inbound.stream.externalProxy.splice(index, 1)">-</a-button>
+        <a-button style="width: 10%; margin: 0px; border-radius: 0 1rem 1rem 0;" @click="inbound.stream.externalProxy.splice(index, 1)">-</a-button>
     </a-input-group>
 </a-form>
 {{end}}
diff --git a/web/html/xui/form/stream/stream_tcp.html b/web/html/xui/form/stream/stream_tcp.html
index 19a09ac3..8576df8c 100644
--- a/web/html/xui/form/stream/stream_tcp.html
+++ b/web/html/xui/form/stream/stream_tcp.html
@@ -33,7 +33,7 @@
         </template>
     </a-form-item>
     <a-form-item label='{{ i18n "pages.inbounds.stream.tcp.requestHeader" }}'>
-        <a-button size="small" @click="inbound.stream.tcp.request.addHeader('host', '')">+</a-button>
+        <a-button size="small" @click="inbound.stream.tcp.request.addHeader('Host', '')">+</a-button>
     </a-form-item>
     <a-form-item :wrapper-col="{span:24}">
         <a-input-group compact v-for="(header, index) in inbound.stream.tcp.request.headers">
@@ -79,4 +79,4 @@
         </a-input-group>
     </a-form-item>
 </a-form>
-{{end}}
\ No newline at end of file
+{{end}}
diff --git a/web/html/xui/form/stream/stream_ws.html b/web/html/xui/form/stream/stream_ws.html
index 00b64167..62380e94 100644
--- a/web/html/xui/form/stream/stream_ws.html
+++ b/web/html/xui/form/stream/stream_ws.html
@@ -7,7 +7,7 @@
         <a-input v-model.trim="inbound.stream.ws.path"></a-input>
     </a-form-item>
     <a-form-item label='{{ i18n "pages.inbounds.stream.tcp.requestHeader" }}'>
-        <a-button size="small" @click="inbound.stream.ws.addHeader('host', '')">+</a-button>
+        <a-button size="small" @click="inbound.stream.ws.addHeader('Host', '')">+</a-button>
     </a-form-item>
     <a-form-item :wrapper-col="{span:24}">
         <a-input-group compact v-for="(header, index) in inbound.stream.ws.headers">
diff --git a/web/html/xui/index.html b/web/html/xui/index.html
index a9391952..abd3b8d0 100644
--- a/web/html/xui/index.html
+++ b/web/html/xui/index.html
@@ -18,6 +18,14 @@
     .ant-card-dark h2 {
         color: hsla(0, 0%, 100%, .65);
     }
+
+    .ant-tag-df {
+        color: rgb(0 0 0 / 80%);
+    }
+
+    .dark .ant-tag-df {
+        color: rgb(255 255 255 / 80%);
+    }
 </style>
 
 <body>
@@ -36,15 +44,15 @@
                                         <a-progress type="dashboard" status="normal"
                                                     :stroke-color="status.cpu.color"
                                                     :percent="status.cpu.percent"></a-progress>
-                                        <div>CPU:  [[ cpuCoreFormat(status.cpuCores) ]]</div>
-                                        <div>Speed:  [[ cpuSpeedFormat(status.cpuSpeedMhz) ]]</div>
+                                        <div><b>CPU:</b> [[ cpuCoreFormat(status.cpuCores) ]]</div>
+                                        <div><b>Speed:</b> [[ cpuSpeedFormat(status.cpuSpeedMhz) ]]</div>
                                     </a-col>
                                     <a-col :span="12" style="text-align: center">
                                         <a-progress type="dashboard" status="normal"
                                                     :stroke-color="status.mem.color"
                                                     :percent="status.mem.percent"></a-progress>
                                         <div>
-                                            {{ i18n "pages.index.memory"}}: [[ sizeFormat(status.mem.current) ]] / [[ sizeFormat(status.mem.total) ]]
+                                            <b>{{ i18n "pages.index.memory"}}:</b> [[ sizeFormat(status.mem.current) ]] / [[ sizeFormat(status.mem.total) ]]
                                         </div>
                                     </a-col>
                                 </a-row>
@@ -56,7 +64,7 @@
                                                     :stroke-color="status.swap.color"
                                                     :percent="status.swap.percent"></a-progress>
                                         <div>
-                                            Swap: [[ sizeFormat(status.swap.current) ]] / [[ sizeFormat(status.swap.total) ]]
+                                            <b>Swap:</b> [[ sizeFormat(status.swap.current) ]] / [[ sizeFormat(status.swap.total) ]]
                                         </div>
                                     </a-col>
                                     <a-col :span="12" style="text-align: center">
@@ -64,7 +72,7 @@
                                                     :stroke-color="status.disk.color"
                                                     :percent="status.disk.percent"></a-progress>
                                         <div>
-                                            {{ i18n "pages.index.hard"}}: [[ sizeFormat(status.disk.current) ]] / [[ sizeFormat(status.disk.total) ]]
+                                            <b>{{ i18n "pages.index.hard"}}:</b> [[ sizeFormat(status.disk.current) ]] / [[ sizeFormat(status.disk.total) ]]
                                         </div>
                                     </a-col>
                                 </a-row>
@@ -75,25 +83,25 @@
             </transition>
             <transition name="list" appear>
                 <a-row>
-                    <a-col :sm="24" :md="12">
+                    <a-col :sm="24" :lg="12">
                         <a-card hoverable>
-                            3X-UI <a href="https://github.com/MHSanaei/3x-ui/releases" target="_blank"><a-tag color="green">v{{ .cur_ver }}</a-tag></a>
-                            Xray <a-tag color="green" style="cursor: pointer;" @click="openSelectV2rayVersion">v[[ status.xray.version ]]</a-tag>
-                            <a href="https://t.me/panel3xui" target="_blank"><a-tag color="green">@panel3xui</a-tag></a>
+                            <b>3X-UI:</b>
+                            <a rel="noopener" href="https://github.com/MHSanaei/3x-ui/releases" target="_blank"><a-tag color="green">v{{ .cur_ver }}</a-tag></a>
+                            <a rel="noopener" href="https://t.me/panel3xui" target="_blank"><a-tag color="green">@Panel3xui</a-tag></a>
                         </a-card>
                     </a-col>
-                    <a-col :sm="24" :md="12">
+                    <a-col :sm="24" :lg="12">
                         <a-card hoverable>
-                            {{ i18n "menu.link" }}:
-                            <a-tag color="purple" style="cursor: pointer;" @click="openLogs()">{{ i18n "pages.index.logs" }}</a-tag>
-                            <a-tag color="purple" style="cursor: pointer;" @click="openConfig">{{ i18n "pages.index.config" }}</a-tag>
-                            <a-tag color="purple" style="cursor: pointer;" @click="openBackup">{{ i18n "pages.index.backup" }}</a-tag>
+                            <b>{{ i18n "pages.index.operationHours" }}:</b>
+                            <a-tag class="ant-tag-df">Xray [[ formatSecond(status.appStats.uptime) ]]</a-tag>
+                            <a-tag class="ant-tag-df">OS [[ formatSecond(status.uptime) ]]</a-tag>
                         </a-card>
                     </a-col>
-                    <a-col :sm="24" :md="12">
+                    <a-col :sm="24" :lg="12">
                         <a-card hoverable>
-                            {{ i18n "pages.index.xrayStatus" }}:
-                            <a-tag :color="status.xray.color">[[ status.xray.state ]]</a-tag>
+                            <b>{{ i18n "pages.index.xrayStatus" }}:</b>
+                            <a-tag style="text-transform: capitalize;" :color="status.xray.color">[[ status.xray.state ]]
+                            </a-tag>
                             <a-popover v-if="status.xray.state === State.Error"
                                 :overlay-class-name="themeSwitcher.currentTheme">
                                 <span slot="title" style="font-size: 12pt">An error occurred while running Xray
@@ -106,137 +114,143 @@
                             </a-popover>
                             <a-tag color="purple" style="cursor: pointer;" @click="stopXrayService">{{ i18n "pages.index.stopXray" }}</a-tag>
                             <a-tag color="purple" style="cursor: pointer;" @click="restartXrayService">{{ i18n "pages.index.restartXray" }}</a-tag>                    
-                            <a-tag color="purple" style="cursor: pointer;" @click="openSelectV2rayVersion">{{ i18n "pages.index.xraySwitch" }}</a-tag>
+                            <a-tag color="purple" style="cursor: pointer;" @click="openSelectV2rayVersion">v[[ status.xray.version ]]</a-tag>
                         </a-card>
                     </a-col>
-                    <a-col :sm="24" :md="12">
+                    <a-col :sm="24" :lg="12">
                         <a-card hoverable>
-                            {{ i18n "pages.index.operationHours" }}:
-                            Xray
-                            <a-tag color="green">[[ formatSecond(status.appStats.uptime) ]]</a-tag>
-                            OS
-                            <a-tag color="green">[[ formatSecond(status.uptime) ]]</a-tag>
+                            <b>{{ i18n "menu.link" }}:</b>
+                            <a-tag color="purple" style="cursor: pointer;" @click="openLogs()">{{ i18n "pages.index.logs" }}</a-tag>
+                            <a-tag color="purple" style="cursor: pointer;" @click="openConfig">{{ i18n "pages.index.config" }}</a-tag>
+                            <a-tag color="purple" style="cursor: pointer;" @click="openBackup">{{ i18n "pages.index.backup" }}</a-tag>
                         </a-card>
                     </a-col>
-                    <a-col :sm="24" :md="12">
+                    <a-col :sm="24" :lg="12">
                         <a-card hoverable>
-                            {{ i18n "pages.index.systemLoad" }}: [[ status.loads[0] ]] | [[ status.loads[1] ]] | [[ status.loads[2] ]]
+                            <b>{{ i18n "pages.index.systemLoad" }}:</b>
+                            <a-tag class="ant-tag-df">
                             <a-tooltip>
+                                [[ status.loads[0] ]] | [[ status.loads[1] ]] | [[ status.loads[2] ]]
                                 <template slot="title">
                                     {{ i18n "pages.index.systemLoadDesc" }}
                                 </template>
-                                <a-icon type="question-circle"></a-icon>
                             </a-tooltip>
+                            </a-tag>
                         </a-card>
                     </a-col>
-                    <a-col :sm="24" :md="12">
+                    <a-col :sm="24" :lg="12">
                         <a-card hoverable>
-                            {{ i18n "usage"}}:
-                            RAM [[ sizeFormat(status.appStats.mem) ]] -
-                            Threads [[ status.appStats.threads ]]
-                            </a-tooltip>
+                            <b>{{ i18n "usage"}}:</b>
+                            <a-tag class="ant-tag-df">
+                            RAM [[ sizeFormat(status.appStats.mem) ]]
+                            </a-tag>
+                            <a-tag class="ant-tag-df">
+                                Threads [[ status.appStats.threads ]]
+                            </a-tag>
                         </a-card>
                     </a-col>
-                    <a-col :sm="24" :md="12">
+                    <a-col :sm="24" :lg="12">
                         <a-card hoverable>
                             <a-row>
                                 <a-col :span="12">
-                                    <a-icon type="global"></a-icon>
-                                    IPv4:
+                                    <a-tag class="ant-tag-df">
                                     <a-tooltip>
+                                    <a-icon type="global"></a-icon> IPv4
                                         <template slot="title">
                                             [[ status.publicIP.ipv4 ]]
                                         </template>
-                                        <a-icon type="question-circle"></a-icon>
                                     </a-tooltip>
-                                </a-col>
-                                <a-col :span="12">
-                                    <a-icon type="global"></a-icon>
-                                    IPv6:
+                                </a-tag>
+                            </a-col>
+                            <a-col :span="12">
+                                <a-tag class="ant-tag-df">
                                     <a-tooltip>
+                                    <a-icon type="global"></a-icon> IPv6
                                         <template slot="title">
                                             [[ status.publicIP.ipv6 ]]
                                         </template>
-                                        <a-icon type="question-circle"></a-icon>
                                     </a-tooltip>
+                                    </a-tag>
                                 </a-col>
                             </a-row>
                         </a-card>
                     </a-col>                    
-                    <a-col :sm="24" :md="12">
+                    <a-col :sm="24" :lg="12">
                         <a-card hoverable>
                             <a-row>
                                 <a-col :span="12">
-                                    <a-icon type="swap"></a-icon>
-                                    TCP:  [[ status.tcpCount ]]
+                                    <a-tag class="ant-tag-df">
                                     <a-tooltip>
+                                    <a-icon type="swap"></a-icon> TCP:  [[ status.tcpCount ]]
                                         <template slot="title">
                                             {{ i18n "pages.index.connectionTcpCountDesc" }}
                                         </template>
-                                        <a-icon type="question-circle"></a-icon>
                                     </a-tooltip>
+                                    </a-tag>
                                 </a-col>
                                 <a-col :span="12">
-                                    <a-icon type="swap"></a-icon>
-                                    UDP:  [[ status.udpCount ]]
+                                    <a-tag class="ant-tag-df">
                                     <a-tooltip>
+                                    <a-icon type="swap"></a-icon> UDP:  [[ status.udpCount ]]
                                         <template slot="title">
                                             {{ i18n "pages.index.connectionUdpCountDesc" }}
                                         </template>
-                                        <a-icon type="question-circle"></a-icon>
                                     </a-tooltip>
+                                    </a-tag>
                                 </a-col>
                             </a-row>
                         </a-card>
                     </a-col>
-                    <a-col :sm="24" :md="12">
+                    <a-col :sm="24" :lg="12">
                         <a-card hoverable>
                             <a-row>
                                 <a-col :span="12">
-                                    <a-icon type="arrow-up"></a-icon>
-                                    [[ sizeFormat(status.netIO.up) ]]/s
+                                    <a-tag class="ant-tag-df">
                                     <a-tooltip>
+                                    <a-icon type="arrow-up"></a-icon>
+                                    Up: [[ sizeFormat(status.netIO.up) ]]/s
                                         <template slot="title">
                                             {{ i18n "pages.index.upSpeed" }}
                                         </template>
-                                        <a-icon type="question-circle"></a-icon>
                                     </a-tooltip>
+                                    </a-tag>
                                 </a-col>
                                 <a-col :span="12">
-                                    <a-icon type="arrow-down"></a-icon>
-                                    [[ sizeFormat(status.netIO.down) ]]/s
+                                    <a-tag class="ant-tag-df">
                                     <a-tooltip>
+                                    <a-icon type="arrow-down"></a-icon>
+                                    Down: [[ sizeFormat(status.netIO.down) ]]/s
                                         <template slot="title">
                                             {{ i18n "pages.index.downSpeed" }}
                                         </template>
-                                        <a-icon type="question-circle"></a-icon>
                                     </a-tooltip>
+                                    </a-tag>
                                 </a-col>
                             </a-row>
                         </a-card>
                     </a-col>
-                    <a-col :sm="24" :md="12">
+                    <a-col :sm="24" :lg="12">
                         <a-card hoverable>
                             <a-row>
                                 <a-col :span="12">
-                                    <a-icon type="cloud-upload"></a-icon>
-                                    [[ sizeFormat(status.netTraffic.sent) ]]
+                                    <a-tag class="ant-tag-df">
                                     <a-tooltip>
+                                        <a-icon type="cloud-upload"></a-icon>
                                         <template slot="title">
                                             {{ i18n "pages.index.totalSent" }}
-                                        </template>
-                                        <a-icon type="question-circle"></a-icon>
+                                        </template> Out: [[ sizeFormat(status.netTraffic.sent) ]]
                                     </a-tooltip>
+                                    </a-tag>
                                 </a-col>
                                 <a-col :span="12">
-                                    <a-icon type="cloud-download"></a-icon>
-                                    [[ sizeFormat(status.netTraffic.recv) ]]
+                                    <a-tag class="ant-tag-df">
                                     <a-tooltip>
+                                        <a-icon type="cloud-download"></a-icon>
                                         <template slot="title">
                                             {{ i18n "pages.index.totalReceive" }}
-                                        </template>
-                                        <a-icon type="question-circle"></a-icon>
+                                        </template> In: [[ sizeFormat(status.netTraffic.recv) ]]
                                     </a-tooltip>
+                                    </a-tag>
                                 </a-col>
                             </a-row>
                         </a-card>
@@ -256,7 +270,7 @@
         ></a-alert>
         <template v-for="version, index in versionModal.versions">
             <a-tag :color="index % 2 == 0 ? 'purple' : 'green'"
-                   style="margin: 10px" @click="switchV2rayVersion(version)">
+                   style="margin-right: 10px" @click="switchV2rayVersion(version)">
                 [[ version ]]
             </a-tag>
         </template>
diff --git a/web/html/xui/settings.html b/web/html/xui/settings.html
index 0acbbfec..533553c5 100644
--- a/web/html/xui/settings.html
+++ b/web/html/xui/settings.html
@@ -76,15 +76,15 @@
         <a-layout-content>
             <a-spin :spinning="spinning" :delay="500" tip='{{ i18n "loading"}}'>
                 <a-space direction="vertical">
-                    <a-card hoverable style="margin-bottom: .5rem;">
-                        <a-row>
-                            <a-col :xs="24" :sm="8" style="padding: 4px;">
+                    <a-card hoverable style="margin-bottom: .5rem; overflow-x: hidden;">
+                        <a-row style="display: flex; flex-wrap: wrap; align-items: center;">
+                            <a-col :xs="24" :sm="10" style="padding: 4px;">
                                 <a-space direction="horizontal">
                                     <a-button type="primary" :disabled="saveBtnDisable" @click="updateAllSetting">{{ i18n "pages.settings.save" }}</a-button>
                                     <a-button type="danger" :disabled="!saveBtnDisable" @click="restartPanel">{{ i18n "pages.settings.restartPanel" }}</a-button>
                                 </a-space>
                             </a-col>
-                            <a-col :xs="24" :sm="16">
+                            <a-col :xs="24" :sm="14">
                                 <template>
                                     <div>
                                         <template>
diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml
index 68a61181..157baf8c 100644
--- a/web/translation/translate.en_US.toml
+++ b/web/translation/translate.en_US.toml
@@ -76,7 +76,7 @@
 "title" = "Overview"
 "memory" = "RAM"
 "hard" = "Disk"
-"xrayStatus" = "Status"
+"xrayStatus" = "Xray"
 "stopXray" = "Stop"
 "restartXray" = "Restart"
 "xraySwitch" = "Version"
diff --git a/web/translation/translate.es_ES.toml b/web/translation/translate.es_ES.toml
index b6fcdbd4..b0d54d87 100644
--- a/web/translation/translate.es_ES.toml
+++ b/web/translation/translate.es_ES.toml
@@ -76,7 +76,7 @@
 "title" = "Estado del Sistema"
 "memory" = "Memoria"
 "hard" = "Disco Duro"
-"xrayStatus" = "Estado de"
+"xrayStatus" = "Xray"
 "stopXray" = "Detener"
 "restartXray" = "Reiniciar"
 "xraySwitch" = "Versión"
diff --git a/web/translation/translate.fa_IR.toml b/web/translation/translate.fa_IR.toml
index 114487a4..5be08677 100644
--- a/web/translation/translate.fa_IR.toml
+++ b/web/translation/translate.fa_IR.toml
@@ -76,7 +76,7 @@
 "title" = "نمای کلی"
 "memory" = "RAM"
 "hard" = "Disk"
-"xrayStatus" = "وضعیت‌ایکس‌ری"
+"xrayStatus" = "ایکس‌ری"
 "stopXray" = "توقف"
 "restartXray" = "شروع‌مجدد"
 "xraySwitch" = "‌نسخه"
diff --git a/web/translation/translate.id_ID.toml b/web/translation/translate.id_ID.toml
index 15d4c25a..ad108b05 100644
--- a/web/translation/translate.id_ID.toml
+++ b/web/translation/translate.id_ID.toml
@@ -76,7 +76,7 @@
 "title" = "Ikhtisar"
 "memory" = "RAM"
 "hard" = "Disk"
-"xrayStatus" = "Status"
+"xrayStatus" = "Xray"
 "stopXray" = "Stop"
 "restartXray" = "Restart"
 "xraySwitch" = "Versi"
diff --git a/web/translation/translate.ru_RU.toml b/web/translation/translate.ru_RU.toml
index 3c6799da..8badec04 100644
--- a/web/translation/translate.ru_RU.toml
+++ b/web/translation/translate.ru_RU.toml
@@ -76,7 +76,7 @@
 "title" = "Статус системы"
 "memory" = "Память"
 "hard" = "Жесткий диск"
-"xrayStatus" = "Статус"
+"xrayStatus" = "Xray"
 "stopXray" = "Остановить"
 "restartXray" = "Перезапустить"
 "xraySwitch" = "Версия"
diff --git a/web/translation/translate.vi_VN.toml b/web/translation/translate.vi_VN.toml
index 5d3007bc..ad987cf3 100644
--- a/web/translation/translate.vi_VN.toml
+++ b/web/translation/translate.vi_VN.toml
@@ -76,7 +76,7 @@
 "title" = "Trạng thái hệ thống"
 "memory" = "Ram"
 "hard" = "Dung lượng"
-"xrayStatus" = "Trạng thái Xray"
+"xrayStatus" = "Xray"
 "stopXray" = "Dừng lại"
 "restartXray" = "Khởi động lại"
 "xraySwitch" = "Phiên bản"
diff --git a/web/translation/translate.zh_Hans.toml b/web/translation/translate.zh_Hans.toml
index bef4feeb..7a10e65d 100644
--- a/web/translation/translate.zh_Hans.toml
+++ b/web/translation/translate.zh_Hans.toml
@@ -76,7 +76,7 @@
 "title" = "系统状态"
 "memory" = "内存"
 "hard" = "硬盘"
-"xrayStatus" = "状态"
+"xrayStatus" = "Xray"
 "stopXray" = "停止"
 "restartXray" = "重启"
 "xraySwitch" = "版本"