/* =============== General Element ======== */
html,
body {
	height: 100%;
	background: var(--default-background);
	font-family: Arial, Sans-serif;
	font-size: 12px;
	color: var(--color-text-secondary);
	margin: 0;
	overflow: hidden;
    letter-spacing: 0.5px;
}

a {
	color: var(--color-text-secondary);
}

a.active {
	font-weight: bold;
}

button[disabled] {
	cursor: not-allowed !important;
	opacity: 0.5 !important;
}

button {
	cursor: pointer;
    background-color: var(--input-background);
}

select:hover,
input[type=checkbox]:hover {
	cursor: pointer;
}

ol, ul {
    padding-left: 0;
}

tbody, tfoot, thead, tr {
	border-style: none;
}
/* =============== Utility ======== */
.progress {
    background: var(--progressbar-background);
}

.spinner-border {
    color: var(--active-background);
    width: 16px;
    height: 16px;
}

.red-dot-marker {
	width: 6px;
	height: 6px;
	background: var(--text-highlight-red-color);
	margin-top: 10px;
	border-radius: 6px;
}

.arrow-right {
    width: 0;
    height: 0;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    border-left: 5px solid currentColor;
}

.arrow-down {
    width: 0;
    height: 0;
    border-left: 4px solid transparent; /* 三角形左边 */
    border-right: 4px solid transparent; /* 三角形右边 */
    border-top: 5px solid var(--color-text-secondary); /* 三角形下边 */
}

[data-control] {
	display: none;
	visibility: hidden;
}

[degree="1"] {
    transform: rotate(0deg);
}

[degree="2"] {
    transform: rotate(45deg);
}

[degree="3"] {
    transform: rotate(90deg);
}

[degree="4"] {
    transform: rotate(135deg);
}

[degree="5"] {
    transform: rotate(180deg);
}

[degree="6"] {
    transform: rotate(225deg);
}

[degree="7"] {
    transform: rotate(270deg);
}

[degree="8"] {
    transform: rotate(315deg);
}
/* =================Table (unified: .table + DataTables)=================== */
.table {
	width: 100%;
	margin: auto;
	text-align: left;
	vertical-align: middle;
}

/* Rounded thead + outer vertical borders need separate borders */
.table:not(.table-borderless),
table.dataTable:not(.table-borderless) {
	border-collapse: separate;
	border-spacing: 0;
}

/*
 * Bootstrap's * { box-sizing: border-box } applies to td/th.
 * dataTables.bootstrap5.min.css sets table.dataTable td, th { box-sizing: content-box }.
 * Plain .table without DataTables kept border-box, so height: 32px 列高與 DataTable 不一致或看似未生效。
 */
.table:not(.table-borderless) td,
.table:not(.table-borderless) th {
	box-sizing: content-box;
}

/* Strip Bootstrap .table-bordered full grid; redraw below */
.table-bordered > :not(caption) > * > *,
.table-bordered td,
.table-bordered th {
	border: 0;
}

/* Thead: top edge + row separator; outer sides only on first/last cell */
.table:not(.table-borderless) > thead > tr > th,
.table:not(.table-borderless) > thead > tr > td,
table.dataTable:not(.table-borderless) > thead > tr > th,
table.dataTable:not(.table-borderless) > thead > tr > td {
	font-weight: bold;
	height: 32px;
	background: var(--table-head-background);
	vertical-align: middle;
	border-style: solid;
	border-color: var(--table-border-color);
	border-width: 0;
	border-bottom-width: 1px;
}

.table:not(.table-borderless) > thead > tr:first-child > th,
.table:not(.table-borderless) > thead > tr:first-child > td,
table.dataTable:not(.table-borderless) > thead > tr:first-child > th,
table.dataTable:not(.table-borderless) > thead > tr:first-child > td {
	border-top-width: 1px;
}

.table:not(.table-borderless) > thead > tr > th:first-child,
.table:not(.table-borderless) > thead > tr > td:first-child,
table.dataTable:not(.table-borderless) > thead > tr > th:first-child,
table.dataTable:not(.table-borderless) > thead > tr > td:first-child {
	border-left-width: 1px;
}

.table:not(.table-borderless) > thead > tr > th:last-child,
.table:not(.table-borderless) > thead > tr > td:last-child,
table.dataTable:not(.table-borderless) > thead > tr > th:last-child,
table.dataTable:not(.table-borderless) > thead > tr > td:last-child {
	border-right-width: 1px;
}

.table:not(.table-borderless) > thead > tr:first-child > th:first-child,
.table:not(.table-borderless) > thead > tr:first-child > td:first-child,
table.dataTable:not(.table-borderless) > thead > tr:first-child > th:first-child,
table.dataTable:not(.table-borderless) > thead > tr:first-child > td:first-child {
	border-top-left-radius: 16px;
}

.table:not(.table-borderless) > thead > tr:first-child > th:last-child,
.table:not(.table-borderless) > thead > tr:first-child > td:last-child,
table.dataTable:not(.table-borderless) > thead > tr:first-child > th:last-child,
table.dataTable:not(.table-borderless) > thead > tr:first-child > td:last-child {
	border-top-right-radius: 16px;
}

/* 無 tfoot 時：最底為 tbody 最後一列 */
.table:not(.table-borderless):not(:has(tfoot)) > tbody > tr:last-child > th:first-child,
.table:not(.table-borderless):not(:has(tfoot)) > tbody > tr:last-child > td:first-child,
table.dataTable:not(.table-borderless):not(:has(tfoot)) > tbody > tr:last-child > th:first-child,
table.dataTable:not(.table-borderless):not(:has(tfoot)) > tbody > tr:last-child > td:first-child {
	border-bottom-left-radius: 16px;
}

.table:not(.table-borderless):not(:has(tfoot)) > tbody > tr:last-child > th:last-child,
.table:not(.table-borderless):not(:has(tfoot)) > tbody > tr:last-child > td:last-child,
table.dataTable:not(.table-borderless):not(:has(tfoot)) > tbody > tr:last-child > th:last-child,
table.dataTable:not(.table-borderless):not(:has(tfoot)) > tbody > tr:last-child > td:last-child {
	border-bottom-right-radius: 16px;
}

/* 有 tfoot 時：最底為 tfoot 最後一列 */
.table:not(.table-borderless):has(tfoot) > tfoot > tr:last-child > th:first-child,
.table:not(.table-borderless):has(tfoot) > tfoot > tr:last-child > td:first-child,
table.dataTable:not(.table-borderless):has(tfoot) > tfoot > tr:last-child > th:first-child,
table.dataTable:not(.table-borderless):has(tfoot) > tfoot > tr:last-child > td:first-child {
	border-bottom-left-radius: 16px;
}

.table:not(.table-borderless):has(tfoot) > tfoot > tr:last-child > th:last-child,
.table:not(.table-borderless):has(tfoot) > tfoot > tr:last-child > td:last-child,
table.dataTable:not(.table-borderless):has(tfoot) > tfoot > tr:last-child > th:last-child,
table.dataTable:not(.table-borderless):has(tfoot) > tfoot > tr:last-child > td:last-child {
	border-bottom-right-radius: 16px;
}

/* Tbody / tfoot: horizontal rules + outer sides on first/last cell only */
.table:not(.table-borderless) > tbody > tr > td,
.table:not(.table-borderless) > tbody > tr > th,
.table:not(.table-borderless) > tfoot > tr > td,
.table:not(.table-borderless) > tfoot > tr > th,
table.dataTable:not(.table-borderless) > tbody > tr > td,
table.dataTable:not(.table-borderless) > tbody > tr > th,
table.dataTable:not(.table-borderless) > tfoot > tr > td,
table.dataTable:not(.table-borderless) > tfoot > tr > th {
	vertical-align: middle;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	border-style: solid;
	border-color: var(--table-border-color);
	border-width: 0;
	border-bottom-width: 1px;
	height: 32px;
}

/* 避免 td 設 height 時 div 等區塊誤用 100% 高度撐滿；勿套用到 input/radio 等替換元素以免高度塌成數 px */
.table:not(.table-borderless) > tbody > tr > td > *:not(input, select, textarea, button),
.table:not(.table-borderless) > tbody > tr > th > *:not(input, select, textarea, button),
.table:not(.table-borderless) > tfoot > tr > td > *:not(input, select, textarea, button),
.table:not(.table-borderless) > tfoot > tr > th > *:not(input, select, textarea, button),
table.dataTable:not(.table-borderless) > tbody > tr > td > *:not(input, select, textarea, button),
table.dataTable:not(.table-borderless) > tbody > tr > th > *:not(input, select, textarea, button),
table.dataTable:not(.table-borderless) > tfoot > tr > td > *:not(input, select, textarea, button),
table.dataTable:not(.table-borderless) > tfoot > tr > th > *:not(input, select, textarea, button) {
	height: auto;
	max-height: none;
}

.table:not(.table-borderless) > tbody > tr > td:first-child,
.table:not(.table-borderless) > tbody > tr > th:first-child,
.table:not(.table-borderless) > tfoot > tr > td:first-child,
.table:not(.table-borderless) > tfoot > tr > th:first-child,
table.dataTable:not(.table-borderless) > tbody > tr > td:first-child,
table.dataTable:not(.table-borderless) > tbody > tr > th:first-child,
table.dataTable:not(.table-borderless) > tfoot > tr > td:first-child,
table.dataTable:not(.table-borderless) > tfoot > tr > th:first-child {
	border-left-width: 1px;
}

.table:not(.table-borderless) > tbody > tr > td:last-child,
.table:not(.table-borderless) > tbody > tr > th:last-child,
.table:not(.table-borderless) > tfoot > tr > td:last-child,
.table:not(.table-borderless) > tfoot > tr > th:last-child,
table.dataTable:not(.table-borderless) > tbody > tr > td:last-child,
table.dataTable:not(.table-borderless) > tbody > tr > th:last-child,
table.dataTable:not(.table-borderless) > tfoot > tr > td:last-child,
table.dataTable:not(.table-borderless) > tfoot > tr > th:last-child {
	border-right-width: 1px;
}

.dt-bootstrap5 {
	padding-left: 15px;
	padding-right: 15px;
}

.dt-body-center {
	text-align: center !important;
}

.table-responsive {
	display: block;
	width: 100%;
}

.table:not(.table-borderless) td,
.table:not(.table-borderless) th {
	padding:  6px 6px 6px 12px;
}

.table-sm td,
.table-sm th {
	padding: 2.3rem;
}

.table-hover tbody tr:hover {
	background: var(--table-hover-background);
}

.table > :not(:last-child) > :last-child > * {
	border-bottom-color: var(--table-border-color);
}

.table tr.selected {
	background: linear-gradient(to bottom, #e5f4fb 0, #d3edfa 100%);
}

td.required:before {
	padding-right: 0px;
}

/* =================DataTable=================== */
table.dataTable.table-hover > tbody > tr:hover > * {
    box-shadow: none;
}

table.dataTable thead>tr>th.sorting:before,
table.dataTable thead>tr>th.sorting:after {
    font-size: 14.5px;
    line-height: 7px;
    opacity: 0.4;
}

table.dataTable thead>tr>th.sorting_asc:before,
table.dataTable thead>tr>th.sorting_desc:after,
table.dataTable thead>tr>td.sorting_asc:before,
table.dataTable thead>tr>td.sorting_desc:after {
    opacity: 1
}

table.dataTable thead>tr>th.sorting {
    cursor: pointer !important;
}
table.dataTable td.dataTables_empty {
    border-bottom: 1px solid var(--table-border-color);
}

table.table th.table__checkbox-column,
table.table td.table__checkbox-column,
table.dataTable tbody td.table__checkbox-column {
    padding: 4px;
    text-align: center;
    vertical-align: middle;
}

.dataTables_scrollHead th.table-header__action-column {
    padding: 4px 0.75em;
}

.table-header__action-column img.table__icon-btn {
    vertical-align: -3px;
}

table.dataTable tbody td>img.table__icon-btn {
    vertical-align: -5px;
}

.dataTables_scrollBody .table {
	width: 100% !important;
}

.dataTables_paginate .page-link {
	border: 1px solid transparent;
    color: var(--color-text-secondary);
}

.dataTable thead th {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dataTables_length select {
	height: 28px !important;
}

div.dataTables_wrapper div.dataTables_paginate ul.pagination {
	justify-content: flex-start;
}

.page-item.disabled .page-link {
	border: 1px solid transparent;
	background-color: transparent;
    color: var(--color-text-secondary);
    opacity: 0.5;
}

.pagination {
    margin: 0;
    align-items: center;
}

.pagination a {
	color: #636363;
}

.pagination .page-item a{
	background-color: transparent;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.page-link {
	line-height: 1.25;
	padding: 0.5rem 0.75rem;
    border: 1px solid transparent;
}

.page-item.active .page-link {
	background-color: var(--active-background);
	border-color: var(--active-background);
    color: #FFFFFF;
    border-radius: 4px;
}
/* datatable extension  */
#topArea {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.table__icon-btn {
	border: 0px;
	padding: 6px;
}

.table__icon-btn[disabled],
.table__icon-btn.disabled {
	opacity: 0.5;
}

.table__icon-btn:hover {
	background-color: var(--hover-background);
	cursor: pointer;
	border-radius: 4px;
}

.table__icon-btn[disabled]:hover,
.table__icon-btn.disabled:hover {
	background-color: inherit;
	cursor: not-allowed;
}

.table__total-result {
	color: var(--color-text-secondary);
	position: absolute;
	font-weight: normal;
}

.table__camera-snapshot {
	min-width: 34px;
}

.table__camera-snapshot-area {
	width: 384px;
	position: fixed;
	display: none;
	z-index: 999;
}

.table__pagination--select-all {
    text-align: left;
    flex-grow: 1;
    align-items: center;
    display: flex;
    padding: 4px;
    padding-left: 12px;
    border-radius: 4px;
    max-width: 115px;
    border: 1px solid var(--border-primary-color);
}

.table__pagination--clear-all {
    text-align: left;
    color: var(--text-highlight-color);
    flex-grow: 1;
    cursor: pointer;
    align-items: center;
    display: flex;
	text-decoration: underline;
}

.table__action-dropdown img {
	cursor: pointer;
}

.table__action-dropdown-menu {
	min-width: 100px !important;
	box-shadow: 3px 3px 9px #0000004D;
	cursor: pointer;
}

.table__action-dropdown-menu li {
	padding: 5px 10px;
}

.table__action-dropdown-menu li:hover {
	background-color: #2196F3;
	color: #FFFFFF;
}
/* =================amChart=================== */
.amcharts-chart-div {
    background-color: var(--toolbar-background);
    border: var(--border-primary-color) 1px solid;
}
/* =================Form=================== */
.form-control {
	background: var(--text-input-background);
	border: 0;
    border-radius: 4px;
	height: 36px;
    color: var(--color-text-secondary);
}

.form-control:read-only {
    background-color: var(--input-background);
    opacity: 1;
	color: var(--color-text-secondary);
}

.form-control:focus {
	color: var(--color-text-secondary);
	border: 1px solid var(--border-secondary-color);
    box-shadow: 0 0 0 0rem #0D6EFD40;
    background-color: var(--text-input-focus);
}
/* -------Button------- */
button.liveViewer {
	width: auto;
	display: inline-block;
}

button:focus {
	outline: none;
	border: 1px solid var(--border-secondary-color);
}

button.form-control {
    line-height: 20px;
	background: #E4E4E4;
	border: 0px;
	width: 36px !important;
	height: 36px;
	padding: 6px;
    border-radius: 4px;
    line-height: 20px;
}

button.form-control:focus {
	background: var(--input-background);
}

button.form-control.active {
	background: var(--active-background);
}

button.form-control.auto-width-btn {
    padding: 6px 14px;
}

button.form-control.primary-btn {
    background-color: var(--color-background-general-button-primary);
    opacity: 1;
	color: var(--color-text-menu-active);
}

button.form-control.secondary-btn {
    background-color: var(--color-background-general-button-secondary);
    opacity: 1;
	color: var(--color-text-secondary);
}

button.auto-width-btn {
	width: auto !important;
}

button.icon-btn {
    background-color: transparent;
    opacity: 1;
    border: 0px;
    width: 36px !important;
    height: 36px !important;
    padding: 4px;
    border-radius: 4px;
}

button.icon-btn.active {
	background: var(--active-background);
}

button.icon-btn:hover {
    opacity: 1;
    border: 0px;
    width: 36px !important;
    height: 36px !important;
    padding: 4px;
    border-radius: 4px;
    background-color: var(--hover-background);
	cursor: pointer;
}

.btn:disabled {
    pointer-events: auto;
}

.btn:hover {
	color: var(--color-text-secondary);
}

.btn-secondary {
	color: #292B2C;
    border-color: #CCCCCC;
}

.btn-secondary:focus {
    color: #292B2C;
    box-shadow: 0 0 0 0.25rem #828A9180;
}

.btn-secondary:hover {
    color: #292B2C;
}

.three-btn-group {
	border-radius: 4px;
	height: 36px;
    background: transparent;
    position: relative;
    display: flex;
    align-items: center;
}

.three-btn-group > div {
    margin: 4px;
}

#advancedBtn {
	color: var(--color-text-secondary);
}

.btn-group__single-btn {
	cursor: pointer;
	display: inline-block;
    background: transparent;
    border-radius: 4px;
}

.btn-group__single-btn[disabled] {
	cursor: not-allowed;
}

.btn-group__single-btn.active {
	background: var(--active-background);
    border-radius: 4px;
}

.btn-group__single-btn-img {
	width: 18px !important;
	height: 18px;
	margin: 5px 5px;
}
/* toggleBtnGroup */
.btn__toggle-options {
    text-align: center;
    background: var(--toggle-button-default-background);
    border-radius: 14px;
    height: 36px;
    display: flex;
    width: 100%;
}

.btn__toggle-options>div {
    border-radius: 14px;
    width: 50%;
    padding: 4px;
    cursor: pointer;
}

.btn__toggle-options>div.active {
    background: var(--active-background);
    color: white;
    font-weight: bold;
    margin: 3px;
}

.btn__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn__upload-file {
    position: relative;
    overflow: hidden;
	border: none;
	background: var(--input-background);
	color: var(--color-text-secondary);
    line-height: 30px;
}

.btn__upload-file input.upload {
	position: absolute;
	top: 0;
	right: 0;
	margin: 0;
	padding: 0;
	opacity: 0;
    cursor: pointer;
}
/* --------Input------ */
input {
	background-color: var(--text-input-background);
	color: var(--color-text-secondary);
    font-family: Arial;
}

input[type="number"] {
    background-color: var(--text-input-background);
	color: var(--color-text-secondary);
}

input[type="number"]:focus {
    outline: none;
}

input[fake="password"] {
	-webkit-text-security: disc;
}

input[fake="password_confirm"] {
	-webkit-text-security: disc;
}

input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid var(--active-background);
    background-color: transparent;
    margin: 0;
    vertical-align: middle;
}

input[type="radio"]:checked {
    box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 8px var(--active-background);
}

input[type="radio"]:disabled {
    cursor: not-allowed;
    opacity: 0.8;
}

input:checked+.slider {
	background-color: #2196F3;
}

input:focus+.slider {
	box-shadow: 0 0 1px #2196F3;
}

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

.password-eye {
	position: absolute;
	right: 6px;
	cursor: pointer;
	width: 20px;
}

/* TODO add confirmPassword id*/
#password, #pwdagain, #httpPassword, #tdPassword, #psd, #nvrAddModalPwd, #nvrEditModalPwd, #ldapPwd, #mailPwd, #cameraPwd, #cameraRtspPwd, #nodeSettingCancelPwd{
	padding-right: 25px;
}
/* ---------- number Input ----------*/
.number-input input[type=number]::-webkit-inner-spin-button,
.port-number-input input[type=number]::-webkit-outer-spin-button {
	-webkit-appearance: none;
}

.number-input {
	display: inline-flex;
	align-items: stretch;
	flex-shrink: 0;
	background-color: var(--input-background);
	height: 36px;
	width: 70px;
	min-width: 70px;
	border-radius: 4px;
}

.number-input img {
	outline: none;
	-webkit-appearance: none;
	background-color: #E4E4E4;
	border: none;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	margin: 0;
	position: relative;
	height: 18px;
	margin-right: 4px;
	border-radius: .25rem;
}

.number-input input[type=number] {
	font-family: Arial, Sans-serif;
	background-color: var(--input-background);
	width: 50px;
	font-size: 12px;
	font-weight: normal;
	font-style: normal;
	color: var(--color-text-secondary);
	min-height: 24px;
	margin: 0;
	padding: 4px 0px 3px 10px;
	line-height: 14px;
	border: none;
	border-radius: .25rem;
}

.number-input section {
	flex: 1;
	display: flex;
	align-items: center;
    justify-content: end;
    padding-right: 5px;
	margin: 0;
	min-height: 0;
	border: none;
	border-radius: .25rem;
	background-color: var(--input-background);
}

.number-input section img {
	width: 8px;
	margin: 0;
	background-color: var(--input-background);
}

.number-input p {
	margin: 0px;
	text-align: center;
	background-color: #E4E4E4;
}

.number-input div.form-control {
	flex: 1;
	min-width: 0;
	margin-left: auto;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: none !important;
	background-color: #E4E4E4;
	border: none;
	padding: 0 0 0 2px;
}

.number-input.disabled {
	opacity: 0.4;
}
/* -------- textbox / textarea ------------- */
.ainvr-textbox {
	outline: none;
	background: var(--text-input-background) !important;
	border-radius: 4px;
	border: 0 !important;
	padding-left: 8px;
	height: 36px !important;
	width: 100%;
    color: var(--color-text-secondary);
}

.ainvr-textbox::placeholder {
	color: var(--color-text-secondary);
    opacity: 0.5;
}

.ainvr-textbox:focus {
	border: 1px solid #0DA6EE;
}

.ainvr-textbox:disabled {
	background: #DDDDDD;
	cursor: not-allowed;
	opacity: 0.5;
}

.ainvr-textarea {
	background: var(--text-input-background) !important;
	border-radius: 4px;
	border: 0;
	padding-left: 4px;
	resize: none;
	width: 100%;
	overflow: auto;
    color: var(--color-text-secondary);
}

.ainvr-textarea:focus {
	outline: none;
}
/* ----------Toggle---------- */
.onoffswitch {
	position: relative;
	width: 40px;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
}

.onoffswitch.disabled {
	cursor: not-allowed;
}

.onoffswitch.disabled>* {
	pointer-events: none;
}

.onoffswitch-checkbox {
	display: none;
}

.onoffswitch-label {
	display: block;
	overflow: hidden;
	cursor: pointer;
	border: 1px solid var(--border-primary-color);
	border-radius: 20px;
	height: 18px;
}

.onoffswitch-inner {
	display: block;
	width: 200%;
	margin-left: -100%;
	transition: margin 0.3s ease-in 0s;
}

.onoffswitch-inner:before,
.onoffswitch-inner:after {
	display: block;
	float: left;
	width: 50%;
	height: 28px;
	padding: 0;
	line-height: 21px;
	font-size: 0px;
	color: #FFFFFF;
	font-family: Trebuchet, Arial, sans-serif;
	font-weight: bold;
	box-sizing: border-box;
    content: "";
}

.onoffswitch-inner:before {
	padding-left: 10px;
	background-color: var(--active-background);
	color: #FFFFFF;
}

.onoffswitch-inner:after {
	padding-right: 10px;
	background-color: var(--progressbar-background);
	text-align: right;
}

.onoffswitch-switch {
    display: block;
    background: #FFFFFF;
    position: absolute;
    right: 23px;
    border: 1px solid #DBDBDB;
    border-radius: 20px;
    transition: all 0.3s ease-in 0s;
    width: 12px;
    height: 12px;
    top: 50%;
    transform: translate(0%, -50%);
}

.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner {
	margin-left: 0;
}

.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch {
	right: 4px;
}
/*  -------------checkbox--------------- */
.checkmark {
	position: absolute;
	top: 0;
	left: 0;
	height: 20px;
	width: 20px;
	background-color: var(--checkbox-background-color);
	margin-top: -1px;
	border-radius: 4px;
	border: 1px solid var(--checkbox-border-color);
}

.checkmark:after {
	content: "";
	position: absolute;
	display: none;
}

.custom-checkbox.disabled {
	cursor: not-allowed;
}

.custom-checkbox {
    display: inline-block;
    position: relative;
    cursor: pointer;
    height: 20px;
    width: 20px;
    margin: 4px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
.custom-checkbox input {
	position: absolute;
	opacity: 0;
	height: 0;
	width: 0;
}
.custom-checkbox > span {
    display: inline-block;
    height: 20px;
    width: 20px;
    border-radius: 4px;
    border: 1px solid var(--checkbox-border-color);
    background-color: var(--checkbox-background-color);
}

.custom-checkbox:hover input~span {
	background-color: var(--checkbox-hover-background);
}

.custom-checkbox > span:after {
	content: "";
	position: absolute;
	display: none;
    left: 7px;
	top: 4px;
	width: 5px;
	height: 10px;
	border: solid white;
	border-width: 0 3px 3px 0;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}

.custom-checkbox input:disabled ~ span {
    opacity: 0.5;
    cursor: not-allowed;
}

.custom-checkbox input:disabled:checked ~ span {
    opacity: 0.5;
    cursor: not-allowed;
}

.custom-checkbox input:checked~span {
	background-color: var(--active-background);
    border-color: var(--active-background);
}

.custom-checkbox input:checked~span:after {
	display: block;
}

.custom-checkbox input:indeterminate~span {
	background-color: var(--active-background);
    border-color: var(--active-background);
}

.custom-checkbox input:indeterminate~span:after {
	display: block;
	left: 7px;
	top: 2px;
	width: 6px;
	height: 12px;
	border: solid white;
	border-width: 0 3px 0 0;
	-webkit-transform: rotate(90deg);
	-ms-transform: rotate(90deg);
	transform: rotate(90deg);
}
/* ----------dropdown---------- */
.dropdown-menu {
	min-width: 200px;
	z-index: 1100;
	color: var(--color-text-secondary);
	background: var(--default-background);
	border: 1px solid var(--border-primary-color);
    border-radius: 8px;
}

.dropdown-menu a {
	color: var(--color-text-secondary);
	text-decoration: none;
}

.dropdown-item {
    padding: 8px 16px;
}

.dropdown-item:focus, .dropdown-item:hover {
	color: #FFFFFF;
    background-color: var(--text-highlight-color);
    cursor: pointer;
}

#dropmenuIndoor {
	position: absolute;
	background: var(--sectionArea-background);
	width: 320px;
	max-height: 400px;
	left: -215px;
    top: 38px;
	z-index: 420;
	overflow: auto;
	border: 1px solid var(--border-primary-color);
	display: none;
    flex-direction: column;
}

#dropmenuIndoor .plan.active {
	background: var(--active-background);
    color: #FFFFFF;
}

#dropmenuIndoor .plan:hover {
	background: var(--active-background);
	cursor: pointer;
    color: #FFFFFF;
}

.dropdown-menu-select {
    position: relative;
    border: 0;
}

.dropdown-menu-select::after,
.dropdown-menu-select-btn::after {
    content: var(--icon-arrow-down);
    position: absolute;
    right: 8px;
    top: 0;
    height: 100%;
    width: 10px;
    display: flex;
    align-items: center;
}

select.form-control {
    border: 0;
    color: var(--color-text-secondary);
    padding: 5px 20px 5px 10px;
    background: var(--icon-arrow-down) no-repeat right center var(--input-background) !important;
    -webkit-appearance: none;
    background-position: bottom 15px right 5px !important;
    background-size: 10px !important;
}

.dropdown-menu-multi-select {
    height: 36px;
    -webkit-appearance: menulist-button;
    text-align: left;
    background: var(--input-background);
    color: var(--color-text-secondary);
    margin-right: 5px;
    padding-left: 1rem!important;
    margin-right: 0!important;
    cursor: pointer;
    padding-top: 8px;
    border-radius: 4px;
}

.dropdown-menu-multi-select[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
}

.ainvr-dropdown-menu-multi-select {
    border: 1px solid var(--progressbar-background);
    border-radius: 5px;
    z-index: 1100;
    background: var(--default-background);
    max-height: 208px;
    width: 100%;
    top: 36px;
    padding-bottom: 5px;
    overflow-y: auto;
    position: absolute;
    flex-direction: column;
    display: none;
}

.ainvr-dropdown-menu-multi-select.top-start {
    inset: auto auto 0px 0px;
    transform: translate(0px, -30px);
}

.ainvr-dropdown-menu-multi-select .dropdown-items {
    cursor: pointer;
}

.ainvr-dropdown-menu-multi-select .dropdown-items.active {
    background: var(--active-background);
}

.ainvr-dropdown-menu-multi-select .dropdown-items:hover {
    background: var(--active-background);
}

.ainvr-dropdown-menu-multi-select .dropdown-items.active .dropdown-items-txt,
.ainvr-dropdown-menu-multi-select .dropdown-items:hover .dropdown-items-txt
{
    color: #FFFFFF;
}

.ainvr-dropdown-menu-multi-select .dropdown-items .custom-checkbox input:checked~span {
	background-color: var(--active-background);
}

.ainvr-dropdown-menu-multi-select .dropdown-items .dropdown-items-txt {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ainvr-dropdown-menu-multi-select-area {
    position: relative;
}

.dropdownicon-position {
	inset: 0 auto auto 10px !important;
}

#customContextMenu {
	background-color: var(--table-odd-background);
}

#customContextMenu li:hover {
	color: #FFFFFF;
	background-color: #0D99FF;
}
/* indoor map floor panel inside dropdownPlugin custom-html-menu and #dropmenuIndoor */
.dual-dropdown .custom-html-menu .indoor-map-custom-panel,
#dropmenuIndoor {
	width: 320px;
	max-height: 400px;
	overflow-y: auto;
}

.dual-dropdown .custom-html-menu .indoor-map-building-title,
#dropmenuIndoor .indoor-map-building-title {
	font-size: 14px;
	color: var(--color-text-secondary);
}

.dual-dropdown .custom-html-menu .indoor-map-plan-cell,
#dropmenuIndoor .indoor-map-plan-cell {
	flex: 0 0 calc(50% - 4px);
	max-width: calc(50% - 4px);
}

.dual-dropdown .custom-html-menu a.indoor-map-floor-link.dropdown-item,
#dropmenuIndoor a.indoor-map-floor-link.dropdown-item {
	background-color: var(--input-background);
	border: 1px solid var(--border-primary-color);
	color: var(--color-text-secondary);
}

/* Override dual-dropdown .dropdown-item:hover (!important) so floor tiles get active background */
.dual-dropdown .custom-html-menu a.indoor-map-floor-link.dropdown-item:not([disabled]):hover,
.dual-dropdown .custom-html-menu a.indoor-map-floor-link.dropdown-item:not([disabled]):focus,
.dual-dropdown .custom-html-menu a.indoor-map-floor-link.dropdown-item:not([disabled]).active,
#dropmenuIndoor a.indoor-map-floor-link.dropdown-item:hover,
#dropmenuIndoor a.indoor-map-floor-link.dropdown-item:focus,
#dropmenuIndoor a.indoor-map-floor-link.dropdown-item.active {
	background-color: var(--active-background) !important;
	color: #FFFFFF !important;
}
/* -----------Select------------- */
select.form-control:focus {
	border: 0;
	background: #E4E4E4;
}

select.form-control option {
	background: var(--text-input-background);
}

select.form-control:disabled {
	opacity: 0.5;
    cursor: not-allowed;
}

select.form-control:not([size]):not([multiple]) {
    height: 36px;
}

.select2-results {
    background: var(--default-background);
}

.select2-container--default .select2-results__option[aria-selected=true] {
    background: var(--webkit-scrollbar-thumb);
    color: var(--color-text-secondary);
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
	background-color: var(--active-background);
	color: #FFFFFF;
}

.select2-selection.select2-selection--multiple {
    border: none !important;
}

.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
	background: var(--text-input-background);
    border-radius: 4px;
    border: none;
    padding: 4px;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
	background: var(--tag-background);
    border: none;
    display: flex;
    align-items: center;
    flex-direction: row-reverse;
    padding: 4px 8px;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: var(--tag-delete-color);
    font-size: 16px;
    line-height: 16px;
    font-weight: lighter;
    margin-left: 4px;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
    color: var(--tag-delete-color);
}

.select2-dropdown{
    z-index: 9999;
}
/* ------------- Hint ------- */
.hint__field-valid-input-border {
	border: 1px solid #900 !important;
}

.hint__field-valid-box {
	position: absolute;
	min-width: 205px;
	max-width: 300px;
	z-index: 500;
	color: #900;
	/* Override inherited text-align (e.g. .thumbnail_floor { text-align: center }) so caret/SVG stays left */
	text-align: left;
}

.hint__field-valid-content {
	border: 1px solid #900;
	padding: 5px;
	background: #FEE;
	margin-top: -18px;
	margin-left: 4px;
	-webkit-box-shadow: 1px 1px 3px #00000059;
	-moz-box-shadow: 1px 1px 3px #00000059;
	-o-box-shadow: 1px 1px 3px #00000059;
	-ms-box-shadow: 1px 1px 3px #00000059;
	box-shadow: 1px 1px 3px #00000059;
	white-space: initial;
    word-break: break-word;
}

.hint-body {
	position: fixed;
    color: #FFFFFF;
    background: #000000;
    align-items: center;
    justify-content: space-around;
    border-radius: 5px;
	display: none;
    width: 305px;
	font-weight: 100;
	align-items: flex-start;
	z-index: 1000;
}

.hint-body__content {
	text-align: left;
    width: 90%;
    word-wrap: break-word;
    white-space: normal;
    padding: 10px;
}

.hint-body__triangle {
	position: fixed;
    height: 0;
    border: 12px solid;
    border-color: #000000 transparent transparent transparent;
	display: none;
}

.hint-body__content--hidden {
    font-size: 20px;
    cursor: pointer;
    width: 18px;
	display: flex;
    justify-content: center;
}
/* ----------Tooltip---------- */
.tooltip-selected {
    display: none;
    border: 1px solid var(--border-secondary-color);
    position: absolute;
    background: var(--default-background);
    z-index: 9999;
    margin: 2px 0px;
    border-radius: 3px;
    text-align: left;
    padding: 4px;
}

#selectedTooltip.tooltip-selected {
    max-width: 200px;
    box-sizing: border-box;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* =================Modal=================== */
.modal-dialog .dataTables_scrollHeadInner {
    width: auto;
    min-width: 100%;
}

.modal-body {
	padding: 0px;
	overflow-y: auto;
}

.modal-content {
	background: var(--default-background);
}

.modal-header {
	border-bottom: 1px solid var(--border-primary-color);
}

.general-modal-dialog .modal-content {
    overflow: hidden;
	padding: 0;
	border: 1px solid var(--border-primary-color);
	background: var(--default-background);
	webkit-border-radius: 16px;
	-moz-border-radius: 16px;
	-o-border-radius: 16px;
	-ms-border-radius: 16px;
	border-radius: 16px;
	-webkit-box-shadow: inset 0 1px 1px var(--img-background-primary), 0 0 4px #000000B3;
	-moz-box-shadow: inset 0 1px 1px var(--img-background-primary), 0 0 4px #000000B3;
	-o-box-shadow: inset 0 1px 1px var(--img-background-primary), 0 0 4px #000000B3;
	-ms-box-shadow: inset 0 1px 1px var(--img-background-primary), 0 0 4px #000000B3;
	box-shadow: inset 0 1px 1px var(--img-background-primary), 0 0 4px #000000B3;
}

.general-modal-dialog .modal-content tbody {
    border-bottom-left-radius: 16px;
    border-bottom-right-radius: 16px;
}

.general-modal-dialog .modal-header {
	overflow: hidden;
	padding: 10px;
	height: 50px;
}

.general-modal-dialog .modal-header .modal-title {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: normal;
	font-style: normal;
	color: var(--color-text-secondary);
}

.general-modal-dialog .modal-body {
	margin: 0;
	padding: 0px;
	background: var(--default-background);
	overflow: hidden;
    border-bottom-left-radius: 16px;
    border-bottom-right-radius: 16px;
}

.general-modal-dialog .modal-body .form-control {
	display: inline-block;
}

.general-modal-dialog .modal-body .form-row {
    align-items: center;
    display: flex;
}

.general-modal-dialog .modal-body>.dialog-footer {
	text-align: end;
	padding: 15px 15px 15px 15px;
	border-top: 1px solid var(--table-border-color);
}

.general-modal-dialog .modal-body>.dialog-footer button {
	cursor: pointer;
}

.search-bar {
	padding: 1px 15px 0 18px;
	display: flex;
	flex-wrap: wrap;
	flex: 1;
	-webkit-flex: 1;
	flex-direction: row;
}

.search-bar__input {
    display: flex;
	background-color: var(--input-background);
    flex: 1;
    border-radius: 4px;
}

div:has(> .search-bar__text) {
    border-radius: 4px;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.search-bar__text {
	width: 100%;
    height: 36px;
	padding-left: 30px;
	background-color: var(--input-background) !important;
	border: 0;
    border-radius: 4px;
	outline: none;
	flex: auto;
}

.modal__search-box {
	display: flex;
}

.modal__search-box > div {
    display: flex;
	background-color: var(--input-background);
}

.modal__search-box > div:last-child {
    flex: 1;
    overflow: hidden;
}

.modal__search-box .search-bar__text {
    flex: 1;
    padding-left: 10px;
	background: none;
}

.modal__confirm-btn {
	background: var(--color-background-confirm-button-primary) !important;
	border: 1px;
	height: 36px !important;
	min-width: 75px !important;
	color: #FFFFFF !important;
	border-radius: 4px;
    line-height: 20px;
}

.modal__cancel-btn {
	background: var(--color-background-confirm-button-secondary) !important;
	border: 1px;
	height: 36px !important;
	min-width: 75px !important;
	border-radius: 4px;
    color: var(--color-text-secondary);
    line-height: 20px;
}

/* Modal 內「刪除」等破壞性按鈕：實心白字。以 --text-highlight-red-color 與 --default-background 混色（不新增主題變數；勿用 --delete-button-background，該變數為中性灰供 .deleteObject 等） */
.modal__danger-btn {
	--modal-danger-fill: color-mix(in srgb, var(--text-highlight-red-color) 76%, var(--default-background) 24%);
	background: var(--modal-danger-fill) !important;
	border: 1px solid var(--modal-danger-fill) !important;
	height: 36px !important;
	min-width: 75px !important;
	border-radius: 6px !important;
	line-height: 20px;
	color: #ffffff !important;
}

.modal__danger-btn:hover {
	filter: brightness(0.92);
}

/* Modal 關閉按鈕：與 sceneViewModal 一致，使用 icon-btn + <img close> */
.modal .modal-header .icon-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--modal-header-background);
	outline: none;
}

.modal .modal-header .icon-btn:hover {
	background: var(--hover-background);
}

.modal .modal-header .icon-btn img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

/* 保留舊 class 以相容可能仍使用 modal__close-btn 的程式 */
.modal__close-btn {
	font-size: 18px;
    font-weight: 600;
	display: flex;
    justify-content: center;
    align-items: center;
	width: 28px;
	height: 24px;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	-o-border-radius: 4px;
	-ms-border-radius: 4px;
	border-radius: 4px;
	color: var(--color-text-secondary);
	border: 0;
	background: var(--modal-header-background);
	outline: none;
	cursor: pointer;
	opacity: 1;
}

/* 點擊時不顯示 focus 邊框，與 icon-btn 行為一致 */
.modal__close-btn:focus,
.modal__close-btn:focus-visible {
	outline: none;
	border: 0;
	box-shadow: none;
}

.modal__close-btn img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

@media (min-width:780px) {
	.modal-xl {
		max-width: 780px;
	}
}

@media (min-width:950px) {
	.modal-xl {
		max-width: 920px;
	}
}

@media (min-width:1200px) {
	.modal-xl {
		max-width: 1100px;
	}
}

@media (min-width:1400px) {
	.modal-xl {
		max-width: 1200px;
	}
}
/* =================Layout=================== */
.container-fluid {
	padding-right: 15px;
	padding-left: 15px;
}

.page__tool-bar {
	max-width: 100%;
    padding: 12px 0;
    background: var(--toolbar-section-background);
}

@media (min-width: 1200px){
	.col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9 {
		padding-right: 15px;
		padding-left: 15px;
	}
}

@media (min-width: 576px){
	.col-sm-6 {
		-webkit-box-flex: 0;
		flex: 0 0 50%;
		max-width: 50%;
	}
}
/* ------------Nav---------- */
nav {
    background-color: var(--toolbar-section-background);
    padding: 8px 16px 0px 16px;
    border-bottom: 1px solid var(--border-primary-color);
}

.nav-tabs {
	border-bottom: 0;
}

.nav-tabs .nav-link {
	font-weight: bold;
	color: var(--color-text-secondary);
	cursor: pointer;
    display: block;
    text-align: center;
    padding: 13px;
    letter-spacing: 0.5px;
}

.nav-link.active {
	border: 0 !important;
	border-bottom: 3px solid var(--tab-active-background) !important;
	color: var(--tab-active-background) !important;
	background-color: var(--toolbar-section-background) !important;
}
/* ------------Card---------- */
.main-card {
	height: 98%;
	max-width: 98%;
	margin: 10px auto;
	border-radius: .25rem;
	flex-direction: column;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
}
.card-body {
	height: 95%;
	overflow-y: hidden;
	padding: 0;
}

.card__event-data-row {
	position: relative;
	top: 5px;
	left: 5px;
	text-overflow: ellipsis;
	overflow: hidden;
	display: inline-block;
	white-space: nowrap;
}
/* =================Scroll Bar=================== */
::-webkit-scrollbar {
    width: 5px;
    height: 5px;
}

::-webkit-scrollbar-track {
    background: var(--webkit-scrollbar-track);
}

::-webkit-scrollbar-thumb {
    background: var(--webkit-scrollbar-thumb);
    border-radius: 5px;
}
/* ================= Image  / Thumbnail =================== */
.thumbnail {
    max-height: 110px;
    max-width: auto;
    cursor: pointer;
}

#boundingBox .img-area {
	width: 102px;
	height: 102px;
	margin: 0;
	border: 3px solid var(--text-input-background);
	position: relative;
	cursor: pointer;
}
/* ================= Toastr =================== */
#toast-container>.toast {
	display: flex;
	align-items: center;
	background-image: none !important;
	text-align: left;
}

#toast-container>.toast:before {
	font-family: FontAwesome;
	font-size: 24px;
	float: left;
	color: #FFFFFF;
	margin: auto 0.5em auto -1.5em;
}

#toast-container>.toast-warning:before {
	content: "\f071";
}

#toast-container>.toast-error:before {
	content: "\f071";
}

#toast-container>.toast-info:before {
	content: "\f071";
}

#toast-container>.toast-success:before {
	content: "\f00c";
}

#toast-container .toast-close-button {
    position: absolute;
    font-size: 16px;
    top: 6px;
    left: 264px;
}

#toast-container .toast-message {
	width: 240px;
}

#toast-container .toast-message {
	overflow-wrap: break-word;
	word-wrap: break-word;
	-ms-word-break: break-all;
	word-break: break-all;
	word-break: break-word;
    -ms-hyphens: auto;
	-moz-hyphens: auto;
	-webkit-hyphens: auto;
	hyphens: auto;
}

.toast-error {
	background-color: #FF000099;
}

.toast-success {
	background-color: #219BA6E0;
}

.toast-info {
	background-color: #219BA6E0;
}
/* ================= Slide =================== */
.slider-handle {
	background: var(--slider-selection-background) !important;
	border: 1px solid var(--slider-selection-background);
    height: 16px;
    width: 16px;
}

.slider-track-high {
	background: var(--slider-track-high-background);
}

.slider-selection {
	background: var(--slider-selection-background);
}

.slider-track {
    height: 6px !important;
    padding: 0 !important;
}

.slider {
	margin: 0px 10px;
}
/* ================= Map =================== */
.map__event-thumbnail {
	position: absolute;
    cursor: pointer;
	display: flex;
    transform: translate(-50%, -50%);
}

.map__event-thumbnail > img {
	width: 100%;
    height: 80px;
    border-radius: 10px;
}

.map__event-thumbnail > span {
	color: #FFFFFF;
    background: var(--active-background);
    top: -15%;
    left: 90%;
    height: 25px;
    width: 25px;
    font-weight: bold;
    text-align: center;
    line-height: 25px;
    border-radius: 100%;
    transform: none;
}

.map__event-info, .map__event-info .leaflet-popup-content-wrapper {
	border-radius: 10px;
        cursor: pointer;
        overflow: initial;
}

.map__event-info .leaflet-popup-tip-container {
        display: none;
}

.map__event-info .leaflet-popup-close-button {
        display: none;
}

.map__event-info a.map__event-info-content > img {
        width: 100%;
        height: 120px;
	border-radius: 10px;
}

.map__event-info div.map__event-info-content {
        position: absolute;
        background: #0000004D;
        color: #FFFFFF;
        bottom: 0;
        padding: 1px 9px;
        width: 100%;
        border-radius: 0 0 10px 10px;
}

.map__event-info span.map__event-info-content {
	color: #FFFFFF;
    background: #FF0000;
    top: -10%;
    left: 95%;
    height: 25px;
    width: 25px;
    font-weight: bold;
    text-align: center;
    line-height: 25px;
    border-radius: 100%;
    transform: none;
}

.map__event-info .map__event-info-content .card__event-data-row, .map__event-info .map__event-info-content .map__event-popup-row {
    display: block;
    top: 0px !important;
    left: 0px !important;
}

.map__event-popup-pre-arrow {
	position: absolute;
	top: 35px;
	background: #0000004D;
	height: 40px;
	width: 20px;
}

.map__event-popup-pre-arrow>button>svg {
	margin-top: 5px;
	margin-left: -5px;
	width: 20px !important;
	height: 20px;
	color: #FFFFFF;
}

.map__event-popup-pre-arrow>button {
	background: transparent;
	border: 0px;
	cursor: pointer;
	height: 40px;
	width: 20px;
}

.map__event-popup-pre-arrow>button.disabled {
	cursor: not-allowed;
	opacity: 0.5;
}

.map__event-popup-next-arrow {
	position: absolute;
	top: 35px;
	right: 0px;
	background: #0000004D;
	height: 40px;
	width: 20px;
}

.map__event-popup-next-arrow>button>svg {
	margin-top: 5px;
	margin-left: -5px;
	width: 20px !important;
	height: 20px;
	color: #FFFFFF;
}

.map__event-popup-next-arrow>button {
	background: transparent;
	border: 0px;
	cursor: pointer;
	height: 40px;
	width: 20px;
}

.map__event-popup-next-arrow>button.disabled
{
    cursor: not-allowed;
    opacity: 0.5;
}

.map__pin {
	width: 30px;
	height: 30px;
	border-radius: 60% 60% 60% 0;
	background: #FF0000;
	position: absolute;
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	-o-transform: rotate(-45deg);
	-ms-transform: rotate(-45deg);
	transform: rotate(-45deg);
	left: 50%;
	top: 50%;
	margin: -25px 0 0 -15px;
	-webkit-animation-name: bounce;
	-moz-animation-name: bounce;
	-o-animation-name: bounce;
	-ms-animation-name: bounce;
	animation-name: bounce;
	-webkit-animation-fill-mode: both;
	-moz-animation-fill-mode: both;
	-o-animation-fill-mode: both;
	-ms-animation-fill-mode: both;
	animation-fill-mode: both;
	-webkit-animation-duration: 1s;
	-moz-animation-duration: 1s;
	-o-animation-duration: 1s;
	-ms-animation-duration: 1s;
	animation-duration: 1s;
    cursor: pointer;
}

.map__indoor-pin {
    width: 29px;
    height: 29px;
    transform: translate(-50%, -50%);
}

.map__indoor-time {
    position: absolute;
    font-weight: bold;
    color: #FFFFFF;
    background-color: #00000099;
    display: none;
    text-align: center;
    left: 50%;
    transform: translate(-50%, 0%);
}

.map__pin-font {
    position: absolute;
    color: #FFFFFF;
    font-weight: bold;
    text-align: center;
    z-index: 1;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.map__pin .leaflet-popup-close-button {
	position: absolute;
	top: 5px;
	right: 5px;
	font: bold 16px/14px Tahoma, Verdana, sans-serif;
	color: #C3C3C3;
	display: none;
}

.map__pin.hide {
	background: none;
}

.map__zoom-in {
	border-radius: 2px 2px 0 0;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 1px solid var(--border-secondary-color);
	background: var(--input-background);
	margin-bottom: -1px;
    color: var(--color-text-secondary);
}

.map__zoom-in>div[disabled] {
	opacity: 0.5;
	cursor: not-allowed;
}

.map__zoom-out {
	border-radius: 0 0 2px 2px;
	width: 32px;
	height: 32px;
	border: 1px solid var(--border-secondary-color);
	background: var(--input-background);
	padding: 0;
    color: var(--color-text-secondary);
}

.map__zoom-in div,
.map__zoom-out div {
	font: bold 22px 'Lucida Console', Monaco, monospace;
	text-indent: 1px;
}

.map__zoom-out>div[disabled] {
	opacity: 0.5;
	cursor: not-allowed;
}

.map__indoor-bg {
    background-image: var(--indoor-map-background);
    background-size: 15px 15px;
}

.map__building {
	width: 150px;
	display: inline-block;
	height: 140px;
	padding-top: 33px;
}

.map__location-direction {
    position: absolute;
    left: -7.5px;
    top: -20.5px;
    transform-origin: 22px 34px;
}

.map__zoom-control {
	position: absolute;
	bottom: 10px;
	right: 0px;
	width: 40px;
	z-index: 1000;
}

.leaflet-container {
	background: #FFFFFF;
	cursor: auto;
}

.leaflet-popup-content {
	margin: 0px;
}

.leaflet-popup-content>table>tbody>tr>td {
	vertical-align: top;
}

.leaflet-popup-content-wrapper {
	border-radius: 0px;
	padding: 0px;
}

.leaflet-popup__custom-style {
	background-color: #FFFFFF66;
	box-shadow: 5px 5px 10px 0px #00000080;
}

.leaflet-popup-content .map__event-popup-row {
	width: 115px;
	position: relative;
	text-overflow: ellipsis;
	overflow: hidden;
	display: inline-block;
	white-space: nowrap;
}

.leaflet-control-zoom {
	background: #FFFFFF;
}

.leaflet-control-zoom a[disabled] {
	opacity: 0.5;
	cursor: not-allowed;
}

#indoorMapArea .sidebar {
	background-size: 15px 15px;
	width: calc(50vw - 40px);
}

/* 室內圖預覽：資訊列疊在縮圖底部 */
#indoorMapArea #mapPreviewStack.map-preview-stack {
	position: absolute;
	left: 15px;
	bottom: 15px;
	z-index: 3;
}

#indoorMapArea #mapPreviewStack #mapPreView {
	position: relative;
	border-radius: 4px;
	border: 3px solid #989898;
	z-index: 1;
	width: 170px;
	height: 163px;
	background-size: 170px 170px;
}

#indoorMapArea #mapPreviewStack #mapPreView:hover {
	border: 3px solid #4CA8D5;
}

#indoorMapArea #mapPreviewStack #indoorMapInfo {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	border-radius: 10px;
	z-index: 2;
	min-height: 51px;
	height: auto;
	background: #00000080;
	color: #FFFFFF;
	max-width: none;
	min-width: 0;
	box-sizing: border-box;
	padding: 2px 4px;
}

#indoorMapArea #mapPreviewStack #indoorMapInfo > div {
	width: 95%;
}

/* 無 snapshot 時僅顯示資訊列 */
#indoorMapArea #mapPreviewStack.map-preview-stack--info-only #mapPreView {
	display: none !important;
}

#indoorMapArea #mapPreviewStack.map-preview-stack--info-only #indoorMapInfo {
	position: relative;
	left: auto;
	right: auto;
	bottom: auto;
	border-radius: 4px;
	max-width: 150px;
	min-width: 100px;
}

/* floorPlan 彈窗內的 indoorMapInfo（非 #indoorMapArea 結構；left 由行內 style 控制） */
#floorPlanZoomDialog #indoorMapInfo {
	position: absolute;
	bottom: 15px;
	border-radius: 4px;
	z-index: 3;
	height: 51px;
	background: #00000080;
	color: #FFFFFF;
	max-width: 150px;
	min-width: 100px;
}

#floorPlanZoomDialog #indoorMapInfo > div {
	width: 95%;
}
/* ================= Datetime Picker =================== */
.datepicker table tr td.today.active,
.datepicker table tr td.today.disabled,
.datepicker table tr td.today.disabled.active,
.datepicker table tr td.today.disabled.disabled,
.datepicker table tr td.today.disabled:active,
.datepicker table tr td.today.disabled:hover,
.datepicker table tr td.today.disabled:hover.active,
.datepicker table tr td.today.disabled:hover.disabled,
.datepicker table tr td.today.disabled:hover:active,
.datepicker table tr td.today.disabled:hover:hover,
.datepicker table tr td.today.disabled:hover[disabled],
.datepicker table tr td.today.disabled[disabled],
.datepicker table tr td.today:active,
.datepicker table tr td.today:hover,
.datepicker table tr td.today:hover.active,
.datepicker table tr td.today:hover.disabled,
.datepicker table tr td.today:hover:active,
.datepicker table tr td.today:hover:hover,
.datepicker table tr td.today:hover[disabled],
.datepicker table tr td.today[disabled] {
    background: var(--active-background);
    color: #FFFFFF;
}

.datepicker table tr td.today,
.datepicker table tr td.today.disabled,
.datepicker table tr td.today.disabled:hover,
.datepicker table tr td.today:hover {
    background: #DDEFFF;
}

.datepicker .datepicker-switch:hover, .datepicker .next:hover, .datepicker .prev:hover, .datepicker tfoot tr th:hover {
	background: var(--active-background);
    color: #FFFFFF;
}

.datepicker table tr td.day.focused, .datepicker table tr td.day:hover {
	background: var(--active-background);
    color: #FFFFFF;
}

.datepicker.dropdown-menu {
    background: var(--text-input-background);
}

.datepicker.dropdown-menu th, .datepicker.dropdown-menu td{
    font-size: 12px;
    width: 30px;
    height:30px;
    vertical-align: middle;
}

.datepicker .datepicker-switch {
    width: 145px !important;
}

.datepicker table {
    margin: 0 auto;
}

.datepicker table tr td span.active, .datepicker table tr td.active {
    background: var(--active-background);
}

.datepicker table tr td span.active.active, .datepicker table tr td.active.active,
.datepicker table tr td span.focused{
    background-color: var(--active-background);
}

.datepicker table tr td span:hover {
    background-color: #EEEEEE;
    color: #111111;
}
.datepicker-dropdown:before, .datepicker-dropdown::after {
    display: none;
}

.datepicker-dropdown {
    width: 220px !important;
    padding: 5px;
    left: unset;
}

.datetime__btn--clear-date {
	background: #E4E4E4;
	border: none;
	width: 70px;
	border-radius: 3px;
	padding: 4px;
}

.datetime__clear-area {
	display: flex;
	justify-content: right;
	padding: 7px;
}

#startTimePicker {
	border: 0;
	background: var(--input-background);
}

#endTimePicker {
	border: 0;
	background: var(--input-background);
}

.ui-datepicker {
	z-index: 9999 !important;
}
/* ======================== jquery ui overwrite ====================== */
.ui-state-default a, .ui-state-default a:link,
.ui-state-default a:visited, a.ui-button, a:link.ui-button,
a:visited.ui-button, .ui-button {
	color: var(--color-text-secondary);
}

.krz-widget-content-calendar {
	border-left: 0;
	top: 0;
	padding: 0;
    width: 29px;
}
.krz-widget-content-calendar label {
    padding: 7px 0px;
    cursor:pointer;
}

.krz-widget-content-calendar:hover {
    border-bottom: 1px solid var(--hover-background);
    background: var(--hover-background);
    cursor: pointer;
}

.krz-widget-content>input {
	border: 0;
	background: var(--input-background);
	padding: 6.5px 6.5px;
}

.krz-widget-content>input:focus {
	border: 0;
	background: var(--text-input-focus);
	padding: 6.5px;
}

.krz-widget-content-up {
	color: var(--color-text-secondary);
	border: 0;
}

.krz-widget-content-up:hover {
	border: 0;
    border-bottom: 1px solid var(--input-background);
    background: var(--input-background);
}

.krz-widget-content-down {
	border: 0;
}

.krz-widget-content-down:hover {
	border: 0;
    border-bottom: 1px solid var(--input-background);
    background: var(--input-background);
}

.krz-spiner-button {
    display: flex;
    align-items: center;
    justify-content: center;
}

.krz-spinner-button-up, .krz-spinner-button-down {
	color: var(--color-text-secondary) !important;
}

.ui-resizable-e:hover {
	border-left: 3px solid #47ACD5
}

.ui-resizable-e:active {
	border-left: 3px solid #47ACD5
}

.ui-menu-item-wrapper {
	background-color: var(--default-background) !important;
}

.ui-widget-content {
	background-color: var(--default-background);
	color: var(--color-text-secondary) !important;
    z-index: 1000;
}

.ui-autocomplete .ui-menu-item-wrapper {
	color: var(--color-text-secondary) !important;
	font-weight: normal !important;
}

.ui-menu-item-wrapper:hover {
	background: var(--text-highlight-color) !important;
	color: var(--color-text-primary) !important;
}

/* ======================== custom-color-btn ====================== */
.custom-color-btn {
    border-radius: 50%;
    width: 20px;
    height: 20px;
    cursor: pointer;
    display: inline-block;
    overflow: hidden;
    margin-right: 4px;
}

.custom-color-btn.selected {
    border: solid 2px #00d2ff !important;
}

.custom-color-btn.selected img {
    margin-top: -3px;
}

img[search] {
    width: 16px;
}

.nav-item {
    width: 135px;
}

 /* ======================== tiny components ====================== */
.btn-spit {
    border-left: 1px solid var(--border-primary-color);
    height: 28px;
    margin: 0 8px;
    display: inline-block;
}

.horizontal-line {
    border-top: 1px solid var(--border-primary-color);
}

.split-line {
	background: var(--input-background);
	line-height: 36px;
}

.otpModal .general-modal-dialog.modal-dialog .modal-body .form-modal-button-area {
    border-top: none;
}

.warning-area {
    border-radius: 10px;
    padding: 17px;
    border: 1px solid var(--warning-border, #ff47478f);
    color: var(--warning-text, #ff4747);
    background:  var(--warning-background, #ff525252);
}
