.tzq-navbar,
.tzq-custom-navbar {
background: color-mix(in srgb, var(--tzq-bg-primary) 95%, transparent);
backdrop-filter: blur(20px) saturate(180%);
-webkit-backdrop-filter: blur(20px) saturate(180%);
z-index: var(--tzq-z-sticky);
position: sticky;
top: 0;
margin-top: 0;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 0 4px 20px
color-mix(in srgb, var(--tzq-text-primary) 8%, transparent);
background-color: var(--tzq-bg-primary);
color: var(--tzq-text-primary);
}
.tzq-navbar:hover,
.tzq-custom-navbar:hover {
background: color-mix(in srgb, var(--tzq-bg-primary) 95%, transparent);
}
body.admin-bar .tzq-navbar,
body.admin-bar .tzq-custom-navbar {top: 0px;}
.tzq-navbar.sticky-disabled,
.tzq-custom-navbar.sticky-disabled {
position: relative !important;
}
.tzq-navbar.scrolled,
.tzq-custom-navbar.scrolled {
background: color-mix(in srgb, var(--tzq-bg-primary) 98%, transparent);
box-shadow: 0 8px 30px
color-mix(in srgb, var(--tzq-text-primary) 12%, transparent);
}
.tzq-navbar.scrolled:hover,
.tzq-custom-navbar.scrolled:hover {
background: color-mix(in srgb, var(--tzq-bg-primary) 98%, transparent);
}
body.tzq-dark-mode .tzq-navbar,
body.tzq-dark-mode .tzq-custom-navbar,
[data-theme="dark"] .tzq-navbar,
[data-theme="dark"] .tzq-custom-navbar {
background: var(--tzq-bg-primary);
backdrop-filter: none;
-webkit-backdrop-filter: none;
}
body.tzq-dark-mode .tzq-navbar.scrolled,
body.tzq-dark-mode .tzq-custom-navbar.scrolled,
[data-theme="dark"] .tzq-navbar.scrolled,
[data-theme="dark"] .tzq-custom-navbar.scrolled {
background: var(--tzq-bg-primary);
}
.tzq-navbar__container {
max-width: var(--tzq-content-max);
margin: 0 auto;
padding-left: clamp(0.75rem, 2vw, 1.5rem);
padding-right: clamp(0.75rem, 2vw, 1.5rem);
}
.tzq-navbar__content {
display: flex;
justify-content: space-between;
align-items: center;
min-height: var(--tzq-header-height, 90px);
max-height: var(--tzq-header-height, 90px);
gap: var(--tzq-gap-md);
}
.tzq-navbar__logo {
display: flex;
gap: 0.5rem;
text-decoration: none;
color: inherit;
cursor: pointer;
transition: all 0.3s ease;
align-items: center;
}
.tzq-navbar__logo:hover {
transform: scale(1.05);
}
.tzq-navbar__logo-icon {
width: 50px;
height: 50px;
background: var(--tzq-gradient-primary);
border-radius: var(--tzq-radius-md);
display: flex;
align-items: center;
justify-content: center;
color: var(--tzq-text-inverse);
box-shadow: 0 4px 12px color-mix(in srgb, var(--tzq-primary) 25%, transparent);
transition: var(--tzq-transition);
}
.tzq-navbar__logo:hover .tzq-navbar__logo-icon {
transform: scale(1.1) rotate(5deg);
box-shadow: 0 8px 24px color-mix(in srgb, var(--tzq-primary) 30%, transparent);
}
.tzq-navbar__logo-text {
font-family: var(--tzq-font-heading);
font-weight: 800;
font-size: 1.875rem;
color: var(--tzq-text-primary);
letter-spacing: -0.02em;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
pointer-events: none;
}
.tzq-navbar__logo-accent {
color: var(--tzq-primary);
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
pointer-events: none;
}
.tzq-navbar__menu {
display: none;
background: color-mix(in srgb, var(--tzq-bg-secondary) 70%, transparent);
padding: var(--tzq-spacing-sm);
border-radius: var(--tzq-radius-md);
backdrop-filter: blur(10px);
box-shadow: inset 0 1px 2px
color-mix(in srgb, var(--tzq-bg-primary) 50%, transparent);
}
.tzq-navbar__menu-list {
display: none;
align-items: center;
gap: 0.5rem;
list-style: none;
margin: 0;
padding: 0;
}
@media (min-width: 769px) {
.tzq-navbar:not(.tzq-navbar--style-2) .tzq-navbar__menu {
display: flex !important;
}
.tzq-navbar:not(.tzq-navbar--style-2) .tzq-navbar__menu-list {
display: flex;
}
}
@media (max-width: 991px) {
.tzq-navbar__menu {
display: none !important;
}
.tzq-navbar__menu-list {
display: none !important;
}
}
@media (min-width: 992px) {
.tzq-navbar__mobile-btn,
.tzq-navbar__mobile-menu,
.tzq-bottom-bar {
display: none !important;
}
}
.tzq-navbar__menu-item {
list-style: none;
margin: 0;
padding: 0;
position: relative;
}
.tzq-navbar__item {
color: var(--tzq-text-primary);
font-weight: 700;
padding: var(--tzq-spacing-2-5) var(--tzq-spacing-4);
border-radius: var(--tzq-radius-md);
text-decoration: none;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 0 1px 2px
color-mix(in srgb, var(--tzq-text-primary) 3%, transparent);
white-space: nowrap;
position: relative;
overflow: hidden;
font-size: 0.9375rem;
}
.tzq-navbar__item:focus-visible,
.tzq-navbar__item:focus-visible::after {
outline: 2px solid #ffe082;
outline-offset: 2px;
}
.tzq-navbar__item:hover::before,
.tzq-navbar__item--active::before {
width: 80%;
}
.tzq-navbar__item:hover,
.tzq-navbar__item--active {
color: var(--tzq-primary);
background: color-mix(in srgb, var(--tzq-bg-primary) 90%, transparent);
box-shadow: 0 4px 12px color-mix(in srgb, var(--tzq-primary) 15%, transparent);
transform: translateY(-2px);
font-weight: 800;
}
.tzq-navbar__menu-item--has-children {
position: relative;
}
.tzq-navbar__dropdown-icon {
margin-left: 6px;
display: inline-flex;
align-items: center;
transition: transform 0.2s ease;
}
.tzq-navbar__menu-item--has-children:hover .tzq-navbar__dropdown-icon {
transform: rotate(180deg);
}
.tzq-navbar__sub {
position: absolute;
top: 100%;
left: 0;
min-width: 200px;
background: var(--tzq-bg-primary);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
box-shadow: var(--tzq-shadow-lg);
padding: var(--tzq-spacing-2) 0;
opacity: 0;
visibility: hidden;
transform: translateY(10px);
transition: all 0.2s ease;
z-index: 100;
list-style: none;
margin: 0;
}
.tzq-navbar__menu-item--has-children:hover .tzq-navbar__sub {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.tzq-navbar__sub li {
display: block;
width: 100%;
list-style: none;
margin: 0;
padding: 0;
}
.tzq-navbar__sub a {
display: block;
padding: var(--tzq-spacing-sm) var(--tzq-spacing-md);
color: var(--tzq-text-primary);
font-size: 0.9rem;
transition: background 0.2s;
white-space: nowrap;
}
.tzq-navbar__sub a:hover {
background: var(--tzq-bg-secondary);
color: var(--tzq-primary);
}
[data-theme="dark"] .tzq-navbar__sub {
background: var(--tzq-bg-secondary);
border-color: var(--tzq-border-color);
}
[data-theme="dark"] .tzq-navbar__sub a:hover {
background: var(--tzq-bg-tertiary);
}
.tzq-navbar__actions {
display: flex;
gap: 1rem;
align-items: center;
flex-direction: row-reverse;
}
.tzq-auth-btn,
.tzq-login-btn {
display: inline-flex !important;
align-items: center;
gap: var(--tzq-spacing-sm, 0.5rem);
padding: var(--tzq-spacing-sm, 0.5rem) var(--tzq-spacing-lg, 1rem);
background: var(--tzq-gradient-primary);
color: white !important;
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
font-weight: 600;
font-size: var(--tzq-font-sm, 0.875rem);
cursor: pointer;
transition: all 0.3s ease;
text-decoration: none;
box-shadow: var(--tzq-shadow-primary-xl-alt);
white-space: nowrap;
flex-shrink: 0;
}
.tzq-auth-btn:hover,
.tzq-login-btn:hover {
transform: translateY(-2px);
box-shadow: var(--tzq-shadow-primary-2xl);
color: white !important;
text-decoration: none;
}
.tzq-auth-btn .tzq-btn__icon,
.tzq-login-btn .tzq-btn__icon {
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
font-size: 1rem;
line-height: 1;
}
.tzq-auth-btn .tzq-btn__text,
.tzq-login-btn .tzq-btn__text {
display: inline;
white-space: nowrap;
}
.tzq-user-menu {
position: relative;
display: inline-flex;
align-items: center;
}
.tzq-user-menu__btn {
display: inline-flex;
align-items: center;
gap: 0.6rem;
padding: 0.35rem 0.85rem 0.35rem 0.45rem;
background: color-mix(
in srgb,
var(--tzq-bg-primary) 90%,
var(--tzq-bg-tertiary)
);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
cursor: pointer;
box-shadow: var(--tzq-shadow-sm);
transition:
transform 0.2s ease,
box-shadow 0.2s ease,
border-color 0.2s ease;
}
.tzq-user-menu__btn:hover {
border-color: color-mix(
in srgb,
var(--tzq-primary) 60%,
var(--tzq-border-light)
);
box-shadow: var(--tzq-shadow-md);
transform: translateY(-1px);
}
.tzq-user-menu__avatar {
width: 30px;
height: 30px;
border-radius: var(--tzq-radius-md);
overflow: hidden;
flex-shrink: 0;
box-shadow: 0 0 0 2px color-mix(in srgb, var(--tzq-primary) 15%, transparent);
}
.tzq-user-menu__avatar img {
width: 100%;
height: 100%;
object-fit: cover;
}
.tzq-user-menu__info {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 2px;
}
.tzq-user-menu__name {
font-weight: 600;
font-size: 0.9rem;
color: var(--tzq-text-primary);
line-height: 1;
}
.tzq-user-menu__level {
font-size: 0.72rem;
color: var(--tzq-text-secondary);
letter-spacing: 0.02em;
line-height: 1;
}
.tzq-user-menu__dropdown {
position: absolute;
top: calc(100% + 0.55rem);
right: 0;
background: var(--tzq-bg-primary);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
box-shadow: var(--tzq-shadow-black-md);
min-width: 220px;
opacity: 0;
visibility: hidden;
transform: translateY(8px) scale(0.98);
transform-origin: top right;
transition:
opacity 0.2s ease,
transform 0.2s ease,
visibility 0.2s ease;
z-index: 1000;
overflow: hidden;
list-style: none;
padding: 0;
margin: 0;
}
.tzq-user-menu__dropdown li {
list-style: none;
margin: 0;
padding: 0;
}
.tzq-user-menu__dropdown--open {
opacity: 1;
visibility: visible;
transform: translateY(0) scale(1);
}
.tzq-user-menu__item {
display: flex;
align-items: center;
gap: 0.6rem;
padding: 0.65rem 0.9rem;
color: var(--tzq-text-primary);
text-decoration: none;
transition:
background 0.2s ease,
color 0.2s ease;
border-bottom: 1px solid var(--tzq-text-secondary);
}
.tzq-user-menu__item:hover {
background: var(--tzq-gradient-primary);
color: var(--tzq-text-inverse);
}
.tzq-user-menu__item--logout:hover {
background: color-mix(in srgb, var(--tzq-error) 12%, var(--tzq-bg-primary));
color: var(--tzq-error);
}
.tzq-user-menu__icon {
width: 28px;
height: 28px;
border-radius: var(--tzq-radius-md);
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 1rem;
background: color-mix(in srgb, var(--tzq-primary) 10%, transparent);
color: var(--tzq-primary);
flex-shrink: 0;
}
.tzq-user-menu__divider {
height: 1px;
background: var(--tzq-border-light);
margin: 0.35rem 0;
}
body.tzq-dark-mode .tzq-user-menu__dropdown,
[data-theme="dark"] .tzq-user-menu__dropdown {
background: var(--tzq-bg-secondary);
border-color: var(--tzq-border-dark);
}
body.tzq-dark-mode .tzq-user-menu__btn,
[data-theme="dark"] .tzq-user-menu__btn {
background: color-mix(
in srgb,
var(--tzq-bg-secondary) 80%,
var(--tzq-bg-tertiary)
);
border-color: var(--tzq-border-dark);
}
body.tzq-dark-mode .tzq-user-menu__item,
[data-theme="dark"] .tzq-user-menu__item {
color: var(--tzq-text-primary);
}
.tzq-dark-mode-toggle {
display: flex !important;
align-items: center;
justify-content: center;
padding: var(--tzq-spacing-3);
color: var(--tzq-text-secondary);
background: var(--tzq-bg-tertiary);
border-radius: var(--tzq-radius-md);
cursor: pointer;
transition: all 0.3s ease;
position: relative;
min-width: 44px;
min-height: 44px;
width: 44px;
height: 44px;
opacity: 1;
visibility: visible;
box-shadow: 0 2px 4px
color-mix(in srgb, var(--tzq-text-primary) 5%, transparent);
}
.tzq-dark-mode-toggle:hover {
background: var(--tzq-border-light);
color: var(--tzq-primary);
transform: scale(1.1);
}
.tzq-dark-mode-toggle svg {
width: 20px;
height: 20px;
transition: transform 0.3s ease;
}
.tzq-dark-mode-toggle:active {
transform: scale(0.95);
}
body.tzq-dark-mode .tzq-dark-icon {
display: none;
}
body.tzq-dark-mode .tzq-light-icon {
display: block !important;
}
body:not(.tzq-dark-mode) .tzq-dark-icon {
display: block;
}
body:not(.tzq-dark-mode) .tzq-light-icon {
display: none !important;
}
.tzq-theme-switch {
background: none;
border: 1px solid var(--tzq-primary-light);
padding: 0;
cursor: pointer;
width: 48px;
height: 26px;
position: relative;
border-radius: var(--tzq-radius-md);
outline: none;
margin-right: var(--tzq-spacing-sm);
}
.tzq-theme-switch__track {
display: block;
width: 100%;
height: 100%;
background-color: var(--tzq-bg-tertiary);
border-radius: var(--tzq-radius-md);
position: relative;
transition: background-color 0.3s ease;
border: 1px solid var(--tzq-primary-light);
}
.tzq-theme-switch__handle {
display: flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
background-color: var(--tzq-bg-primary);
border-radius: var(--tzq-radius-md);
position: absolute;
top: 2px;
left: 2px;
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: var(--tzq-shadow-sm);
overflow: hidden;
}
.tzq-theme-switch__icon {
font-size: 11px;
line-height: 1;
position: absolute;
transition: opacity 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
top: 0;
left: 0;
border-radius: var(--tzq-radius-md);
margin: 0;
padding: 0;
border: 1px solid var(--tzq-primary-light);
outline: none;
box-sizing: border-box;
}
.tzq-theme-switch__icon--sun {
opacity: 1;
}
.tzq-theme-switch__icon--moon {
opacity: 0;
}
[data-theme="dark"] .tzq-theme-switch__track,
body.tzq-dark-mode .tzq-theme-switch__track {
background-color: var(--tzq-primary);
border-color: var(--tzq-primary);
}
[data-theme="dark"] .tzq-theme-switch__handle,
body.tzq-dark-mode .tzq-theme-switch__handle {
transform: translateX(22px);
background-color: var(--tzq-bg-primary, #ffffff);
}
[data-theme="dark"] .tzq-theme-switch__icon--sun,
body.tzq-dark-mode .tzq-theme-switch__icon--sun {
opacity: 0;
}
[data-theme="dark"] .tzq-theme-switch__icon--moon,
body.tzq-dark-mode .tzq-theme-switch__icon--moon {
opacity: 1;
}
.tzq-nav-btn {
display: flex;
align-items: center;
gap: 0.5rem;
background: var(--tzq-gradient-secondary);
color: white;
padding: var(--tzq-spacing-3) var(--tzq-spacing-6);
border-radius: var(--tzq-radius-md);
font-weight: 900;
text-decoration: none;
box-shadow: 0 4px 14px
color-mix(in srgb, var(--tzq-secondary, #4ecdc4) 30%, transparent);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
border: 1px solid var(--tzq-primary-light);
cursor: pointer;
font-family: var(--tzq-font-heading);
position: relative;
overflow: hidden;
}
.tzq-nav-btn::before {
content: "";
position: absolute;
top: 50%;
left: 50%;
width: 0;
height: 0;
border-radius: var(--tzq-radius-md);
background: color-mix(in srgb, var(--tzq-text-inverse) 30%, transparent);
transform: translate(-50%, -50%);
transition:
width 0.6s ease,
height 0.6s ease;
}
.tzq-nav-btn:hover::before {
width: 300px;
height: 300px;
}
.tzq-nav-btn:hover {
background: var(--tzq-primary-dark);
transform: translateY(-2px);
box-shadow: 0 8px 24px color-mix(in srgb, var(--tzq-primary) 40%, transparent);
}
.tzq-nav-btn:active {
transform: translateY(0);
box-shadow: 0 2px 8px color-mix(in srgb, var(--tzq-primary) 30%, transparent);
}
.tzq-nav-btn-text {
display: none;
position: relative;
z-index: 1;
}
.tzq-navbar--style-2 {
min-height: auto;
height: auto;
padding: 0;
}
.tzq-navbar--style-2 .tzq-navbar__container {
display: flex;
flex-direction: column;
gap: 0;
}
.tzq-navbar--style-2 .tzq-navbar__top-row {
display: flex;
justify-content: space-between;
align-items: center;
min-height: 85px;
gap: var(--tzq-gap-md);
}
.tzq-navbar--style-2 .tzq-navbar__top-actions {
display: flex;
gap: 1rem;
align-items: center;
justify-content: flex-end;
flex-direction: row;
}
.tzq-navbar--style-2 .tzq-navbar__menu-row {
display: flex;
align-items: center;
min-height: 56px;
width: 100%;
position: relative;
}
.tzq-navbar--style-2 .tzq-navbar__menu-row::before {
content: "";
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
background: var(--tzq-gradient-primary);
z-index: -1;
width: 100vw;
margin-left: calc(-50vw + 50%);
}
.tzq-navbar--style-2
.tzq-navbar__menu-row
.tzq-navbar__menu-item--has-children:hover
.tzq-navbar__sub,
.tzq-navbar--style-2
.tzq-navbar__menu-row
.tzq-navbar__menu-item--has-children
.tzq-navbar__sub {
background: var(--tzq-gradient-primary);
border-color: rgba(255, 255, 255, 0.2);
}
.tzq-navbar--style-2 .tzq-navbar__menu-row .tzq-navbar__sub a {
color: #ffffff;
font-weight: 500;
}
.tzq-navbar--style-2 .tzq-navbar__menu-row .tzq-navbar__sub a:hover {
background: rgba(255, 255, 255, 0.15);
color: #ffffff;
}
.tzq-navbar--style-2 .tzq-navbar__menu-row .tzq-navbar__menu .tzq-navbar__item {
color: #ffffff;
}
.tzq-navbar--style-2
.tzq-navbar__menu-row
.tzq-navbar__menu
.tzq-navbar__item:hover {
color: #ffffff;
background: rgba(255, 255, 255, 0.15);
}
.tzq-navbar--style-2
.tzq-navbar__menu-row
.tzq-navbar__menu
.tzq-navbar__item--active {
color: #ffffff;
background: rgba(255, 255, 255, 0.2);
}
.tzq-navbar--style-2 .tzq-navbar__menu {
display: flex;
width: 100%;
background: transparent;
padding: var(--tzq-spacing-sm) 0;
box-shadow: none;
backdrop-filter: none;
}
.tzq-navbar--style-2 .tzq-navbar__menu-list {
display: flex;
}
@media (min-width: 769px) {
.tzq-navbar--style-2 .tzq-navbar__menu {
display: flex;
}
.tzq-navbar--style-2 .tzq-navbar__menu-list {
display: flex;
}
}
.tzq-notification-center-btn {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
background: var(--tzq-bg-tertiary);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
color: var(--tzq-text-secondary);
cursor: pointer;
transition: all 0.2s ease;
box-shadow: var(--tzq-shadow-sm);
}
.tzq-notification-center-btn:hover {
background: var(--tzq-bg-hover);
border-color: var(--tzq-primary);
transform: translateY(-2px);
box-shadow: var(--tzq-shadow-md);
}
.tzq-notification-center-btn__badge {
position: absolute;
top: -4px;
right: -4px;
display: none;
align-items: center;
justify-content: center;
min-width: 20px;
height: 20px;
padding: 0 6px;
background: var(--tzq-error);
color: white;
font-size: 0.75rem;
font-weight: 700;
border-radius: var(--tzq-radius-md);
border: 1px solid var(--tzq-primary-light);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.tzq-notification-center-btn__badge:not(:empty) {
display: flex;
}
.tzq-header-search {
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.tzq-header-search__toggle {
width: 44px;
height: 44px;
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
background: var(--tzq-bg-tertiary);
color: var(--tzq-text-secondary);
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s ease;
box-shadow: var(--tzq-shadow-sm);
}
.tzq-header-search__toggle:hover {
background: var(--tzq-bg-hover);
border-color: var(--tzq-primary);
transform: translateY(-2px);
box-shadow: var(--tzq-shadow-md);
}
.tzq-header-search__form {
position: absolute;
right: 0;
top: calc(100% + 0.4rem);
background: var(--tzq-bg-primary);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
padding: var(--tzq-spacing-sm);
box-shadow: var(--tzq-shadow-lg);
display: none;
min-width: 240px;
z-index: 5;
}
.tzq-header-search--open .tzq-header-search__form {
display: flex;
}
.tzq-header-search__field {
width: 100%;
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
padding: var(--tzq-spacing-sm) var(--tzq-spacing-md);
font-size: 0.95rem;
}
.tzq-header-search__field:focus {
outline: 2px solid var(--tzq-primary);
outline-offset: 1px;
}
.tzq-header-icon-btn {
width: 44px;
height: 44px;
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
background: var(--tzq-bg-tertiary);
color: var(--tzq-text-secondary);
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s ease;
box-shadow: var(--tzq-shadow-sm);
}
.tzq-header-icon-btn:hover {
background: var(--tzq-bg-hover);
border-color: var(--tzq-primary);
transform: translateY(-2px);
box-shadow: var(--tzq-shadow-md);
}
.tzq-header-icon-btn__icon {
font-size: 1.1rem;
}
.tzq-bottom-bar {
display: flex;
position: fixed;
left: 0;
right: 0;
bottom: 0;
padding: 0.6rem 1rem calc(0.6rem + env(safe-area-inset-bottom));
background: color-mix(in srgb, var(--tzq-bg-primary) 96%, transparent);
border-top: 1px solid var(--tzq-border-light);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
z-index: 10001;
gap: 0.75rem;
align-items: center;
justify-content: space-around;
}
.tzq-bottom-bar__btn {
width: 44px;
height: 44px;
border-radius: var(--tzq-radius-md);
border: 1px solid var(--tzq-primary-light);
background: var(--tzq-bg-tertiary);
color: var(--tzq-text-secondary);
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: var(--tzq-shadow-sm);
}
.tzq-bottom-bar__link {
display: inline-flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0.25rem;
text-decoration: none;
color: var(--tzq-text-secondary);
min-width: 64px;
min-height: 44px;
}
.tzq-bottom-bar__icon {
font-size: 1rem;
}
.tzq-bottom-bar__label {
font-size: 0.75rem;
font-weight: 600;
letter-spacing: 0.02em;
}
.tzq-menu-panel {
position: fixed;
bottom: calc(5rem + env(safe-area-inset-bottom));
right: -400px;
width: 380px;
max-width: calc(100vw - 2rem);
max-height: calc(100vh - 120px);
background: var(--tzq-bg-primary);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
box-shadow: var(--tzq-shadow-xl);
z-index: 10000;
display: flex;
flex-direction: column;
transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);
overflow: hidden;
}
.tzq-menu-panel--open {
right: 1rem;
}
@media (max-width: 768px) {
.tzq-menu-panel {
bottom: calc(4.5rem + env(safe-area-inset-bottom));
}
}
.tzq-menu-panel__header {
display: flex;
align-items: center;
justify-content: space-between;
padding: var(--tzq-spacing-md) var(--tzq-spacing-lg);
border-bottom: 1px solid var(--tzq-border-light);
background: var(--tzq-bg-secondary);
flex-shrink: 0;
}
.tzq-menu-panel__title {
font-size: 1.125rem;
font-weight: 700;
margin: 0;
color: var(--tzq-text-primary);
}
.tzq-menu-panel__close {
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
background: transparent;
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
color: var(--tzq-text-secondary);
cursor: pointer;
transition: all 0.2s ease;
font-size: 1.25rem;
}
.tzq-menu-panel__close:hover {
background: var(--tzq-bg-hover);
color: var(--tzq-text-primary);
}
.tzq-menu-panel__body {
flex: 1;
overflow-y: auto;
padding: var(--tzq-spacing-md);
}
.tzq-menu-panel__list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: var(--tzq-spacing-xs);
}
.tzq-menu-panel__list > li {
margin: 0;
padding: 0;
}
.tzq-menu-panel__list > li > a {
display: flex;
align-items: center;
gap: var(--tzq-spacing-sm);
padding: var(--tzq-spacing-sm) var(--tzq-spacing-md);
background: var(--tzq-bg-secondary);
border-radius: var(--tzq-radius-md);
text-decoration: none;
color: var(--tzq-text-primary);
font-weight: 500;
font-size: 0.9375rem;
transition: all 0.2s ease;
border-left: 3px solid transparent;
}
.tzq-menu-panel__list > li > a:hover {
background: var(--tzq-bg-hover);
color: var(--tzq-primary);
border-left-color: var(--tzq-primary);
}
.tzq-menu-panel__list > li.current-menu-item > a,
.tzq-menu-panel__list > li.current_page_item > a {
background: var(--tzq-bg-blue-light);
color: var(--tzq-primary);
border-left-color: var(--tzq-primary);
font-weight: 600;
}
.gp-modal:not(.gp-modal--open):not(.gp-modal--transition) {
display: none;
}
.gp-modal--transition:not(.gp-modal--open) {
pointer-events: none;
}
.gp-modal__overlay {
display: none;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.2);
justify-content: center;
align-items: center;
z-index: 10000;
backdrop-filter: blur(3px);
transition: opacity 500ms ease;
opacity: 0;
}
.gp-modal--open:not(.gp-modal--transition) .gp-modal__overlay {
display: flex;
opacity: 1;
}
.gp-search-modal .gp-modal__overlay {
align-items: flex-start;
padding-top: 25vh;
}
.gp-modal__container {
max-width: 100%;
max-height: 100vh;
transform: scale(0.9);
transition: transform 500ms ease;
padding: 0 10px;
}
.gp-modal--open:not(.gp-modal--transition) .gp-modal__container {
transform: scale(1);
}
.tzq-bottom-bar__search .tzq-header-search__form {
position: fixed;
top: auto;
bottom: calc(
72px + env(safe-area-inset-bottom) + var(--tzq-bottom-bar-offset, 0px) +
0.75rem
);
left: 50%;
right: auto;
transform: translateX(-50%);
width: min(92vw, 420px);
}
.tzq-user-menu--bottom {
position: relative;
}
.tzq-user-menu__btn--bottom {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.4rem 0.6rem;
border-radius: var(--tzq-radius-md);
border: 1px solid var(--tzq-primary-light);
background: var(--tzq-bg-tertiary);
cursor: pointer;
position: relative;
z-index: 1;
}
.tzq-user-menu__btn--bottom .tzq-user-menu__info {
display: flex;
flex-direction: column;
align-items: flex-start;
font-size: 0.75rem;
line-height: 1.1;
}
.tzq-user-menu__dropdown--bottom {
position: fixed;
top: auto;
bottom: calc(72px + env(safe-area-inset-bottom) + 0.75rem);
left: 50%;
right: auto;
min-width: 200px;
width: min(92vw, 360px);
background: color-mix(in srgb, var(--tzq-bg-primary) 92%, #ffffff);
border: 1px solid var(--tzq-primary-light);
box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
z-index: 9999;
display: none;
opacity: 0;
visibility: hidden;
transform: translate(-50%, 6px);
transform-origin: bottom center;
transition:
opacity 0.2s ease,
transform 0.2s ease;
}
.tzq-user-menu__dropdown--bottom.tzq-user-menu__dropdown--open {
display: block;
opacity: 1;
visibility: visible;
transform: translate(-50%, 0);
}
.tzq-user-menu--bottom:focus-within .tzq-user-menu__dropdown--bottom {
display: block;
opacity: 1;
visibility: visible;
transform: translate(-50%, 0);
}
.tzq-navbar__actions .tzq-theme-switch,
.tzq-navbar__top-actions .tzq-theme-switch,
.tzq-navbar__actions .tzq-notification-center-btn,
.tzq-navbar__top-actions .tzq-notification-center-btn,
.tzq-navbar__actions .tzq-header-search,
.tzq-navbar__top-actions .tzq-header-search {
display: inline-flex !important;
visibility: visible !important;
opacity: 1 !important;
}
.tzq-top-bar {
background: linear-gradient(
135deg,
var(--tzq-primary, #2563eb),
var(--tzq-primary-dark, #1e40af)
);
color: var(--tzq-text-inverse, #ffffff);
padding: var(--tzq-spacing-sm, 0.75rem) 0;
position: relative;
z-index: 1000;
box-shadow: var(--tzq-shadow-black-md);
font-size: var(--tzq-font-sm, 0.875rem);
font-weight: 600;
line-height: 1.5;
}
.tzq-top-bar__container {
max-width: var(--tzq-content-max, 1200px);
margin: 0 auto;
padding: 0 var(--tzq-container-padding, 1rem);
display: flex;
align-items: center;
justify-content: center;
gap: var(--tzq-spacing-md, 1rem);
position: relative;
}
.tzq-top-bar__content {
flex: 1;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
}
.tzq-top-bar__text,
.tzq-top-bar__link {
color: white;
text-decoration: none;
transition: opacity 0.3s ease;
}
.tzq-top-bar__link:hover {
opacity: 0.9;
text-decoration: none;
}
.tzq-top-bar__close {
background: color-mix(
in srgb,
var(--tzq-text-inverse, #ffffff) 20%,
transparent
);
border: 1px solid var(--tzq-primary-light);
color: var(--tzq-text-inverse, #ffffff);
cursor: pointer;
padding: var(--tzq-spacing-1) var(--tzq-spacing-2);
border-radius: var(--tzq-radius-md);
display: flex;
align-items: center;
justify-content: center;
transition: background 0.3s ease;
flex-shrink: 0;
line-height: 1;
}
.tzq-top-bar__close:hover {
background: color-mix(
in srgb,
var(--tzq-text-inverse, #ffffff) 30%,
transparent
);
}
.tzq-top-bar__close:focus {
outline: 2px solid
color-mix(in srgb, var(--tzq-text-inverse, #ffffff) 50%, transparent);
outline-offset: 2px;
} :root {
--tzq-admin-bar-height: 0px;
--tzq-top-bar-height: 0px;
--tzq-navbar-offset: 0px;
}
body.admin-bar {
--tzq-admin-bar-height: 32px;
}
@media (max-width: 782px) {
body.admin-bar {
--tzq-admin-bar-height: 46px;
}
} .site-header {
display: none;
}
.tzq-notification-center {
position: fixed;
top: 80px;
right: -400px;
width: 380px;
max-width: calc(100vw - 2rem);
max-height: calc(100vh - 120px);
background: var(--tzq-bg-primary);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
box-shadow: var(--tzq-shadow-xl);
z-index: 9999;
display: flex;
flex-direction: column;
transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);
overflow: hidden;
}
.tzq-notification-center--open {
right: 1rem;
}
.tzq-notification-center__header {
display: flex;
align-items: center;
justify-content: space-between;
padding: var(--tzq-spacing-md) var(--tzq-spacing-lg);
border-bottom: 1px solid var(--tzq-border-light);
background: var(--tzq-bg-secondary);
}
.tzq-notification-center__title {
font-size: 1.125rem;
font-weight: 700;
color: var(--tzq-text-primary);
margin: 0;
}
.tzq-notification-center__actions {
display: flex;
align-items: center;
gap: var(--tzq-spacing-sm);
}
.tzq-notification-center__action,
.tzq-notification-center__close {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
padding: 0;
background: transparent;
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
color: var(--tzq-text-secondary);
font-size: 1.5rem;
font-weight: 300;
cursor: pointer;
transition: all 0.2s ease;
}
.tzq-notification-center__action:hover,
.tzq-notification-center__close:hover {
background: var(--tzq-bg-hover);
color: var(--tzq-text-primary);
}
.tzq-notification-center__filters {
display: flex;
gap: var(--tzq-spacing-xs);
padding: var(--tzq-spacing-sm) var(--tzq-spacing-lg);
border-bottom: 1px solid var(--tzq-border-light);
background: var(--tzq-bg-secondary);
overflow-x: auto;
flex-shrink: 0;
scrollbar-width: none;
}
.tzq-notification-center__filters::-webkit-scrollbar {
display: none;
}
.tzq-notification-center__filter {
padding: var(--tzq-spacing-xs) var(--tzq-spacing-md);
background: transparent;
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
color: var(--tzq-text-secondary);
font-size: 0.875rem;
font-weight: 500;
white-space: nowrap;
cursor: pointer;
transition: all 0.2s ease;
}
.tzq-notification-center__filter:hover {
background: var(--tzq-bg-hover);
color: var(--tzq-text-primary);
}
.tzq-notification-center__filter--active {
background: var(--tzq-primary);
color: white;
border-color: var(--tzq-primary);
}
.tzq-notification-center__body {
flex: 1;
overflow-y: auto;
padding: var(--tzq-spacing-sm);
}
.tzq-notification-center__empty {
display: flex;
align-items: center;
justify-content: center;
padding: var(--tzq-spacing-2xl);
color: var(--tzq-text-tertiary);
text-align: center;
}
.tzq-notification-item {
display: flex;
gap: var(--tzq-spacing-md);
padding: var(--tzq-spacing-md);
background: var(--tzq-bg-secondary);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
margin-bottom: var(--tzq-spacing-sm);
cursor: pointer;
transition: all 0.2s ease;
position: relative;
}
.tzq-notification-item:hover {
background: var(--tzq-bg-hover);
border-color: var(--tzq-primary-light);
transform: translateX(-2px);
}
.tzq-notification-item--read {
opacity: 0.7;
}
.tzq-notification-item__icon {
flex-shrink: 0;
font-size: 1.5rem;
line-height: 1;
}
.tzq-notification-item__content {
flex: 1;
min-width: 0;
}
.tzq-notification-item__header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: var(--tzq-spacing-sm);
margin-bottom: var(--tzq-spacing-xs);
}
.tzq-notification-item__title {
font-size: 0.9375rem;
font-weight: 600;
color: var(--tzq-text-primary);
margin: 0;
line-height: 1.4;
}
.tzq-notification-item__time {
flex-shrink: 0;
font-size: 0.75rem;
color: var(--tzq-text-tertiary);
white-space: nowrap;
}
.tzq-notification-item__message {
font-size: 0.875rem;
color: var(--tzq-text-secondary);
margin: 0 0 var(--tzq-spacing-xs) 0;
line-height: 1.5;
}
.tzq-notification-item__xp {
display: inline-flex;
align-items: center;
padding: 2px 8px;
background: var(--tzq-success-light);
color: var(--tzq-success-dark);
font-size: 0.75rem;
font-weight: 700;
border-radius: var(--tzq-radius-md);
margin-top: var(--tzq-spacing-xs);
}
.tzq-notification-item__action {
display: inline-flex;
align-items: center;
padding: var(--tzq-spacing-xs) var(--tzq-spacing-md);
background: var(--tzq-primary);
color: white;
font-size: 0.875rem;
font-weight: 600;
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
cursor: pointer;
transition: all 0.2s ease;
margin-top: var(--tzq-spacing-xs);
}
.tzq-notification-item__action:hover {
background: var(--tzq-primary-dark);
transform: translateY(-1px);
box-shadow: var(--tzq-shadow-sm);
}
.tzq-notification-item__remove {
position: absolute;
top: var(--tzq-spacing-xs);
right: var(--tzq-spacing-xs);
width: 24px;
height: 24px;
padding: 0;
background: transparent;
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
color: var(--tzq-text-tertiary);
font-size: 1.25rem;
line-height: 1;
cursor: pointer;
transition: all 0.2s ease;
opacity: 0;
}
.tzq-notification-item:hover .tzq-notification-item__remove {
opacity: 1;
}
.tzq-notification-item__remove:hover {
background: var(--tzq-error-light);
color: var(--tzq-error);
}
.tzq-notification-center__tasks {
border-bottom: 1px solid var(--tzq-border-light);
background: var(--tzq-bg-secondary);
}
.tzq-tasks-header {
display: flex;
align-items: center;
gap: var(--tzq-spacing-sm);
padding: var(--tzq-spacing-sm) var(--tzq-spacing-lg);
cursor: pointer;
user-select: none;
transition: background 0.2s ease;
}
.tzq-tasks-header:hover {
background: var(--tzq-bg-hover);
}
.tzq-tasks-header__icon {
font-size: 1.125rem;
}
.tzq-tasks-header__title {
flex: 1;
font-size: 0.875rem;
font-weight: 600;
color: var(--tzq-text-primary);
}
.tzq-tasks-header__toggle {
font-size: 0.75rem;
color: var(--tzq-text-tertiary);
transition: transform 0.2s ease;
}
.tzq-tasks-body {
padding: 0 var(--tzq-spacing-lg) var(--tzq-spacing-md);
max-height: 250px;
overflow-y: auto;
transition:
max-height 0.3s ease,
padding 0.3s ease,
opacity 0.3s ease;
}
.tzq-tasks-body--collapsed {
max-height: 0;
padding-top: 0;
padding-bottom: 0;
overflow: hidden;
opacity: 0;
}
.tzq-tasks-loading,
.tzq-tasks-empty {
padding: var(--tzq-spacing-md);
text-align: center;
color: var(--tzq-text-tertiary);
font-size: 0.875rem;
}
.tzq-task-item {
display: flex;
align-items: flex-start;
gap: var(--tzq-spacing-sm);
padding: var(--tzq-spacing-sm);
margin-bottom: var(--tzq-spacing-xs);
background: var(--tzq-bg-primary);
border-radius: var(--tzq-radius-md);
border: 1px solid var(--tzq-primary-light);
transition: all 0.2s ease;
}
.tzq-task-item:last-child {
margin-bottom: 0;
}
.tzq-task-item--completed {
background: var(--tzq-success-bg, rgba(16, 185, 129, 0.1));
border-color: var(--tzq-success, #10b981);
}
.tzq-task-item--rewarded {
opacity: 0.7;
}
.tzq-task-item__icon {
font-size: 1.25rem;
flex-shrink: 0;
}
.tzq-task-item__content {
flex: 1;
min-width: 0;
}
.tzq-task-item__name {
font-size: 0.875rem;
font-weight: 600;
color: var(--tzq-text-primary);
margin-bottom: 2px;
}
.tzq-task-item__desc {
font-size: 0.75rem;
color: var(--tzq-text-secondary);
margin-bottom: var(--tzq-spacing-xs);
}
.tzq-task-item__progress {
display: flex;
align-items: center;
gap: var(--tzq-spacing-sm);
}
.tzq-task-item__progress-bar {
flex: 1;
height: 6px;
background: var(--tzq-bg-tertiary);
border-radius: var(--tzq-radius-md);
overflow: hidden;
}
.tzq-task-item__progress-fill {
height: 100%;
background: linear-gradient(
90deg,
var(--tzq-primary),
var(--tzq-primary-light, #818cf8)
);
border-radius: var(--tzq-radius-md);
transition: width 0.3s ease;
}
.tzq-task-item--completed .tzq-task-item__progress-fill {
background: var(--tzq-success, #10b981);
}
.tzq-task-item__progress-text {
font-size: 0.7rem;
color: var(--tzq-text-tertiary);
flex-shrink: 0;
min-width: 35px;
text-align: right;
}
.tzq-task-item__reward {
font-size: 0.75rem;
font-weight: 600;
color: var(--tzq-primary);
flex-shrink: 0;
padding: var(--tzq-spacing-xs) var(--tzq-spacing-sm);
background: var(--tzq-primary-bg, rgba(99, 102, 241, 0.1));
border-radius: var(--tzq-radius-md);
}
.tzq-task-item--completed .tzq-task-item__reward {
color: var(--tzq-success, #10b981);
background: var(--tzq-success-bg, rgba(16, 185, 129, 0.1));
}
body.tzq-dark-mode .tzq-notification-center,
[data-theme="dark"] .tzq-notification-center {
background: var(--tzq-bg-dark);
border-color: var(--tzq-border-dark);
}
body.tzq-dark-mode .tzq-notification-center__header,
[data-theme="dark"] .tzq-notification-center__header {
background: var(--tzq-bg-dark-secondary);
border-color: var(--tzq-border-dark);
}
body.tzq-dark-mode .tzq-notification-center__filters,
[data-theme="dark"] .tzq-notification-center__filters {
background: var(--tzq-bg-dark-secondary);
border-color: var(--tzq-border-dark);
}
body.tzq-dark-mode .tzq-notification-item,
[data-theme="dark"] .tzq-notification-item {
background: var(--tzq-bg-dark-secondary);
border-color: var(--tzq-border-dark);
}
body.tzq-dark-mode .tzq-notification-center__tasks,
[data-theme="dark"] .tzq-notification-center__tasks {
background: var(--tzq-bg-dark-secondary);
border-color: var(--tzq-border-dark);
}
body.tzq-dark-mode .tzq-task-item,
[data-theme="dark"] .tzq-task-item {
background: var(--tzq-bg-dark);
border-color: var(--tzq-border-dark);
}