/* Global styles for WebKit browsers */

/* @import url('https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap'); */
@import url('https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100..900&display=swap');

div,
p,
h1,
h2,
h3,
h4,
h5,
h6,
li,
a,
blockquote,
section,
article,
aside,
figcaption,
label {
  /* font-family: "Raleway", sans-serif !important; */
  font-family: "Roboto Slab", serif !important;
}

html{
    font-size: 18px !important;
}

* {
    scrollbar-width: thin;
    /* Firefox */
    scrollbar-color: #343434 #f0f0f000;
    /* Firefox */
}

*::-webkit-scrollbar {
    width: 0.6250rem;
    height: 0.6250rem;
}

*::-webkit-scrollbar-track {
    background: #f0f0f000;
    border-radius: 0.6250rem;
}

*::-webkit-scrollbar-thumb {
    background-color: #383838;
    border-radius: 0.6250rem;
    /* border: 0.1250rem solid #f0f0f0; */
}

*::-webkit-scrollbar-thumb:hover {
    background-color: #686868;
}

.hidden{
    display: none;
}


body {
    margin: 0;
    padding: 0;
    background-color: #222;
    color: #fff;
    font-family: Arial, sans-serif;
}

.sidenav {
    position: fixed;
    top: 0;
    left: 0;
    width: 3.7500rem;
    height: 100vh;
    background-color: #111;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.logo {
    margin-top: 1.2500rem;
}

.logo img {
    width: 2.0000rem;
    height: auto;
}

.nav-icons {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.nav-icon {
    font-size: 1.5000rem;
    color: #888;
    margin: 1.2500rem 0;
    cursor: pointer;
    transition: color 0.3s;
}

.nav-icon:hover {
    color: #aaa;
}

.nav-icon.active {
    color: #00ffff;
}

.content {
    margin-left: 3.7500rem;
    padding: 0.9375rem;
    display: flex;
    /* height: 100vh; */
    box-sizing: border-box;
}

.menu-section {
    width: 0;
    /* border: 0.0625rem dotted #555; */
    background-color: #111;
    transition: width 0.3s ease;
    overflow-x: hidden;
    height: calc(100vh - 2.1875rem);
    /* position: relative; */
    border-radius: 1.2500rem;
    position: sticky;
    top: 1.2500rem;
}

.menu-section.history-active {
    width: 15.6250rem;
}

.menu-section.dashboard-active {
    width: 40.6250rem;
}

.section-content {
    position: absolute;
    top: 0;
    height: 100%;
    width: 100%;
    padding: 1.2500rem;
    box-sizing: border-box;
    transition: transform 0.3s ease;
}

.history-section {
    transform: translateX(-100%);
}

.history-section.active {
    transform: translateX(0);
}

/* History styling */
.history-heading {
    font-size: 0.7500rem;
    font-weight: bold;
    text-transform: uppercase;
    color: #aaa;
    margin-top: 1.5000rem;
    margin-bottom: 0.7500rem;
}

.history-items {
    list-style: none;
    padding: 0;
    margin: 0.7500rem 0;
}

.history-item {
    font-size: 0.8750rem;
    padding: 0.5000rem;
    margin-bottom: 0.5000rem;
    cursor: pointer;
    border-radius: 0.2500rem;
    transition: background-color 0.2s;
    height: 1.2500rem;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    color: #cccccc;
}

.history-item:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.history-item.active {
    background-color: #333;
}

.dashboard-section {
    transform: translateX(100%);
}

.dashboard-section.active {
    transform: translateX(0);
}

.tabs {
    display: flex;
    border-bottom: 0.0625rem solid #444;
    margin-bottom: 0.6250rem;
}

.tab {
    padding: 0.5000rem 1.0000rem;
    cursor: pointer;
    border-radius: 0.2500rem 0.2500rem 0 0;
    background-color: #333;
    margin-right: 0.2500rem;
    font-size: 0.8750rem;
}

.tab.active {
    background-color: #444;
    color: #fff;
}

.tab-content {
    display: none;
}

.tab-content.active {
    display: block;
}

.table-container {
    width: 100%;
    overflow-x: auto;
}

table {
    border-collapse: collapse;
    width: 100%;
    font-size: 0.8750rem;
}

th,
td {
    border: 0.0625rem solid #555;
    padding: 0.7500rem 1.0000rem;
    text-align: left;
}

th {
    font-weight: bold;
    background: transparent;
}

.chat-section {
    flex: 1;
    /* border: 0.0625rem dotted #555; */
    margin-left: 0.6250rem;
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.chat-wrapper {
    flex: 1;
    max-width: 62.5000rem;
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

.messages {
    flex: 1;
    padding: 0.6250rem;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.message {
    display: inline-block;
    max-width: 70%;
    padding: 0.8125rem 1.1250rem;
    margin: 0.5000rem 0;
    border-radius: 1.2500rem;
    line-height: 1.4;
    font-size: 1.0000rem;
}

.message.user2 {
    align-self: flex-end;
    background-color: #333;
    color: #fff;
    margin-right: 1.2500rem;
}

.message.ai {
    align-self: flex-start;
    background: transparent;
    color: #fff;
}

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

.loading-dots {
    font-size: 1.5000rem;
}

.chat-input {
    display: flex;
    flex-direction: column;
    background-color: #111;
    padding: 1.5000rem;
    border-radius: 2.5000rem;
    box-sizing: border-box;
    margin: 0.6250rem;
    margin-bottom: 0.0000rem;

    position: sticky;
    bottom: 1.5625rem;

    box-shadow: 0 1.8750rem 0.0000rem #222;
}

.chat-input .row {
    display: flex;
    align-items: center;
    margin-bottom: 0.7500rem;
}

.chat-input .row:last-child {
    margin-bottom: 0;
}

.chat-input textarea {
    flex: 1;
    padding: 0.7500rem 1.0000rem;
    border: none;
    border-radius: 1.2500rem;
    background: transparent;
    color: #fff;
    font-size: 0.8750rem;
    resize: none;
    outline: none;
    box-shadow: none;
}

.chat-input textarea:focus {
    outline: none;
    box-shadow: none;
}

.custom-select {
    position: relative;
    width: 15.6250rem;
    margin-right: 0.5000rem;
    font-size: 0.7500rem;
    height: 2.5000rem;
}

.select-selected {
    background-color: #222;
    border-radius: 1.2500rem;
    line-height: 2.5000rem;
    padding: 0 2.5000rem 0 0.7500rem;
    position: relative;
    height: 100%;
    box-sizing: border-box;
    cursor: pointer;
}

.select-selected:after {
    content: 'arrow_drop_down';
    font-family: 'Material Icons';
    position: absolute;
    right: 0.7500rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.0000rem;
}

.select-selected-active:after {
    transform: translateY(-50%) rotate(180deg);
}

.select-items {
    position: absolute;
    background-color: #222;
    border-radius: 0.2500rem;
    bottom: 105%;
    left: 0;
    right: 0;
    z-index: 99;
    max-height: 9.3750rem;
    overflow-y: auto;
    font-size: 0.7500rem;
}

.select-items div {
    padding: 0.3750rem 0.6250rem;
    cursor: pointer;
}

.select-items div:hover {
    background-color: #333;
}

.select-hide {
    display: none;
}

.chat-input button {
    width: 2.5000rem;
    height: 2.5000rem;
    border: none;
    background: #fff;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
}

.chat-input button .material-icons {
    font-size: 1.2500rem;
    color: #000;
}

table th,
table td {
    font-size: 0.8750rem;
}


.connection_dot {
    width: 0.3125rem;
    height: 0.3125rem;
    /* background-color: rgb(47, 255, 71); */
    border-radius: 50%;
    margin-right: 0.7500rem;
    /* box-shadow: 0 0 0.6250rem 0.1875rem green; */
    animation: connection_dot_animation 0.75s linear alternate-reverse infinite;
}

@keyframes connection_dot_animation {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    100% {
        transform: scale(0);
        opacity: 0;
    }
}

.ws_status_ele {
    color: grey;
    font-size: 0.7500rem;
}


/* dashboard button */

.dashboard-btn{
    width: 5.0000rem;
    border: none;
    background-color: #0095a5;
    padding: 0.6250rem;
    border-radius: 0.3125rem;
    color: #ffffff;
    font-weight: 600;
    cursor: pointer;
}


.actions-icon-container{
    width: 4.3750rem;
    font-size: 0.8750rem;
    display: flex;
    justify-content: center;
}

.actions-icon-container > span{
    font-size: 1.2500rem;
    margin: 0 0.3750rem;
    color: grey;
    cursor: pointer;
}

.actions-icon-container > span:hover{
    color: white;
}

/* custom switch code */

.sw-switch-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.2500rem;
}

.sw-switch-row {
    display: flex;
    align-items: center;
    gap: 0.7500rem;
    justify-content: center;
}

/* Hide the default checkbox */
.sw-switch {
    position: relative;
    display: inline-block;
    width: 1.8750rem;  /* Even smaller switch width */
    height: 1.0000rem; /* Even smaller switch height */
}

.sw-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

/* The slider */
.sw-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #444;
    transition: .4s;
    border-radius: 1.3750rem;
}

.sw-slider:before {
    position: absolute;
    content: "";
    height: 0.7500rem; /* Even smaller knob */
    width: 0.7500rem;  /* Even smaller knob */
    left: 0.1250rem;    /* Adjusted position */
    bottom: 0.1250rem;  /* Adjusted position */
    background-color: #ddd;
    transition: .4s;
    border-radius: 50%;
}

input:checked + .sw-slider {
    background-color: #0095a5;
}

input:focus + .sw-slider {
    box-shadow: 0 0 0.1875rem #0095a5;
}

input:checked + .sw-slider:before {
    transform: translateX(0.8750rem); /* Adjusted translation distance for smaller switch */
}

/* Different colored switches - all now #0095a5 for consistency */
input.sw-green:checked + .sw-slider {
    background-color: #0095a5;
}

input.sw-red:checked + .sw-slider {
    background-color: #0095a5;
}



/* table inputs */

table .edit-strategy-disabled input, table .edit-strategy-disabled select{
    width: 7.5000rem;
    padding: 0.3125rem;
    /* border: 0.0625rem solid; */
    border: none;
    border-radius: 0.3125rem;
    background-color: #2f2f2f;
    color: grey;
    pointer-events: none;
}


table input, table select{
    width: 7.5000rem;
    padding: 0.3125rem;
    /* border: 0.0625rem solid; */
    border: none;
    border-radius: 0.3125rem;
    background-color: #4f4f4f;
    color: rgb(227, 227, 227);
}


.thinking-div{
    background-image: linear-gradient(90deg, #5f5f5f, #5f5f5f, #5f5f5f, #5f5f5f, #5f5f5f, #5f5f5f, rgb(255, 255, 255), #5f5f5f);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;

    position: absolute;
    bottom: calc(100% + 1.2500rem);
    /* background-color: #00000052; */
    backdrop-filter: blur(0.6250rem);
    padding: 0.3125rem 0.6250rem;

    animation: rainbow-animation 1.2s linear infinite reverse;
}

@keyframes rainbow-animation {
    0% {
        background-position: 0% 50%;
    }
    100% {
        background-position: 200% 50%;
    }
}



/* footer */

footer {
    height: 1.5625rem;
    position: fixed;
    bottom: 0.0000rem;
    left: 50%;
    transform: translate(-50%, 0);
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    /* backdrop-filter: blur(0.3750rem); */
    z-index: 3;
}

#powered_by {
    background-color: transparent;
    font-size: 0.6250rem;
    color: grey;

    display: flex;
    align-items: center;
}

footer #f_tradezee_logo {
    height: 0.9375rem;
    margin-left: 0.3125rem;
}

.dashboard-reload{
    border: none;
    border-radius: 50%;
    background-color: transparent;
    color: white;
}

/* animations */

.card-line-loading-animation {
	width: 100%;
	height: 0.1875rem;
	background: linear-gradient(90deg,
			transparent,
			rgb(0, 229, 255),
			transparent);
	position: absolute;
	animation: line_loading_animation 1s infinite ease-out;
}

@keyframes line_loading_animation {
	0% {
		left: -100%;
	}

	50% {
		left: 0%;
	}

	100% {
		left: 100%;
	}
}



/* media query */

@media (orientation: portrait){
    .menu-section{
        position: fixed;
        max-width: calc(100vw - 1.5625rem);
        overflow-x: auto;
        z-index: 3;
    }
}