/**
 * Logical UI
 * Base CSS
 */

/* Font */
@font-face {
    font-family: "Inter";
    src: url("../fonts/font-inter-variable.woff2") format("woff2-variations");
    font-weight: 300 600;
    font-display: swap;
}

/* Body */
body {
    background: var(--neutral-50);
    font-family: "Inter", sans-serif;
    font-size: var(--text-base);
    color: var(--neutral-900);
}

/**************************/
/* Text UI                */
/**************************/
.pageTitle {
    font-size: var(--text-x1);
    font-weight: 600;
    color: var(--neutral-900);
    margin-bottom: 5px;
}
.pageTitle i {
    margin-right: 10px;
}

.pageSubtitle {
    font-size: var(--text-sm);
    color: var(--neutral-400);
}

/**************************/
/* Logical UI Layout      */
/**************************/
/* Top bar */
div#topBar {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: var(--topbar-h);
    background: var(--neutral-0);
    border-bottom: 1px solid var(--neutral-100);
    display: flex;
    align-items: center;
    z-index:100;
    gap: 0;
}
html[data-mode="admin"] #topBar {
    border-bottom: 1px solid var(--amber-500);
}

div#topBar-brand {
    width: var(--sidebar-w);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    border-right: 1px solid var(--neutral-100);
    height: 100%;
}
html[data-mode="admin"] #topBar-brand {
    border-right: 1px solid var(--amber-500);
}

div#topBar-logoHolder {
    margin-left: 15px;
}

div#topBar-search {
    flex: 1;
    padding: 0 20px;
    display: flex;
    align-items: center;
}

div#topBar-right {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-right: 15px;
}

.topBar-icon {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--neutral-600);
    cursor: pointer;
    position: relative;
}
.topBar-icon:hover {
    color: var(--neutral-900);
    background: var(--neutral-50);
}
.topBar-icon i {
    font-size: 16px;
}

div.topBar-divider {
    width: 1px;
    height: 25px;
    background: var(--neutral-200);
    margin: 0 8px;
}

div#topBar-userChip {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px 4px 4px;
    cursor: pointer;
}
div#topBar-userChip:hover {
    background: var(--neutral-50);
}

div#topBar-userChipDD {
    position: absolute;
    top: 100%;
    width: 250px;
    background: var(--neutral-0);
    border: 1px solid var(--neutral-200);
    border-top: 0;
    border-right: 0;
    z-index: 200;
    display: none;
    right: 0;
    box-shadow: var(--shadow-sm-left) var(--shadow-sm-bottom);
}
div#topBar-userChipDD.open {
    display: block;
}

div#userChipDD-profile {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--neutral-100);
}

/** Sidebar **/
aside#sideBar {
    position: fixed;
    top: var(--topbar-h);
    left: 0;
    bottom: 0;
    width: var(--sidebar-w);
    background: var(--neutral-0);
    border-right: 1px solid var(--neutral-100);
    padding: 12px 0;
    overflow-y: auto;
    flex-shrink: 0;
}
html[data-mode="admin"] #sideBar {
    border-right: 1px solid var(--amber-500);
}

.sideBar-navGroup {
    padding: 0 8px;
    margin-bottom: 4px;
}
.sideBar-navGroup a {
    text-decoration: none;
}

.sideBar-navTitle {
    font-size: 11px;
    color: var(--neutral-400);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 4px 10px;
    margin-top: 10px;
}

.sideBar-navItem {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    font-size: 13px;
    color: var(--neutral-600);
    cursor: pointer;
    text-decoration: none;
    font-weight: 400;
}
.sideBar-navItem:hover {
    color: var(--neutral-900);
    background: var(--neutral-50);
}
.sideBar-navItem-active {
    background: var(--teal-50);
}
.sideBar-navItem i {
    font-size: 15px;
    width: 16px;
    flex-shrink: 0;
}

.sideBar-navItemHolder {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    font-size: 13px;
    color: var(--neutral-600);
    text-decoration: none;
    font-weight: 400;
    position: relative;
}

.sideBar-divider {
    height: 1px;
    background: var(--neutral-100);
    margin: 8px;
}

/** Main **/
div#belowTopBar {
    margin-top: var(--topbar-h);
    width: 100%;
    left: 0;
}
div#bodyHolder {
    margin-left: var(--sidebar-w);
}
div#aboveMainContent {
    position: fixed;
    display: flex;
    justify-content: center;
    left: var(--sidebar-w);
    right: 0;
    z-index: 1000;
}

div#mainContentHolder {
    padding: 25px;
}
div.mainContent-header {
    margin-bottom: 25px;
    display: flex;
    justify-content: space-between;
}
div.mainContent-header-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}
div.mainContent-header-action {
    flex-shrink: 0;
}

div.header-title-icon {
    width: 48px;
    height: 48px;
    background: var(--teal-50);
    color: var(--teal-600);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
    border: 1px solid var(--teal-100);
}
html[data-mode="admin"] .header-title-icon {
    background: var(--amber-50);
    border-color: var(--amber-100);
    color: var(--amber-600);
}

/**************************/
/* Admin specific         */
/**************************/
div#adminBar {
    display: flex;
    background: var(--amber-500);
    height: var(--adminBar-h);
    font-size: 12px;
    font-weight: 600;
    color: #1A1206;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    padding-left: 10px;
    padding-right: 10px;
}

button.adminExit {
    gap: 6px;
    background: rgba( 0, 0, 0, .12);
    border: none;
    color: #1A1206;
    font-size: 11px;
    font-weight: 600;
    padding: 5px 10px;
    cursor: pointer;
}
button.adminExit:hover {
    background: rgba(0, 0, 0, .2);
}