@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

:root {

    --color-primary: #7380ec;
    --color-danger: #ff7782;
    --color-success: #41f1b6;
    --color-warning: #ffbb55;

    --color-white: #fff;
    --color-info-dark: #7d8da1;
    --color-info-light: #dce1eb;
    --color-dark: #363949;
    --color-light: rgba(132, 139, 200, 0.18);

    --color-primary-variant: 111e88;
    --color-dark-variant: #677483;
    --color-background: #f6f6f9;
    
    --card-border-radius: 2rem;
    --border-radius-1: 0.4rem;
    --border-radius-2: 0.8rem;
    --border-radius-3: 1.2rem;
    --card-padding: 1.8rem;
    --padding-1: 1.2rem;

    --box-shadow: o zrem 3rem var(--color-light);
    
    }
    
    /* ------------------- DARK THEME VARIABLES -------------------------- */
    .dark-theme-variables{
        --color-background: #181a1e;
        --color-white: #202528;
        --color-dark: #edeffd;
        --color-dark-varient: #a3bdcc;
        --color-light: rgba(0, 0, 0, 0.4);
        --box-shadow: 0 2rem 3rem var(--color-light);
    }

    *{
        margin: 0;
        padding: 0;
        outline: 0;
        appearance: none;
        border: 0;
        text-decoration: none;
        list-style: none;
        box-sizing: border-box;
    }

    html{
        font-size: 14px;
    }

    body{
        width: 100vw;
        height: 100vh;
        font-family: poppins, sans-serif;
        font-size: 0.88rem;
        background: var(--color-background);
        user-select: none;
        overflow-x: hidden;
        color: var(--color-dark);
    }

    .container{
        display: grid;
        width: 96%; 
        margin: 0;
        position: absolute;
        top: 0%;
        gap: 1.8rem;
        grid-template-columns: 14rem auto 25rem;
    } 

    a{
        color: var(--color-dark);
    }

    img{
        display: block;
        width: 80%;

    }

    h1{
        font-weight: 800;
        font-size: 1.8rem;
    }

    h2{
        font-size: 1.4rem;
    }

    h3{
        font-size: 0.87rem;   
    }

    h4{
        font-size: 0.8rem;
    }

    h5{
        font-size: 0.77rem;
    }

    small{
        font-size: 0.75rem;
    }

    .profile-photo{
        width: 2.8rem;
        height: 2.8rem;
        border-radius: 50%;
        overflow: hidden;
    }

    .text-muted{
        color: var(--color-info-dark);
    }

    p{
        color: var(--color-dark);
    }

    .primary{
        color: var(--color-primary);
    }
    .danger{
        color: var(--color-danger);
    }
    .success{
        color: var(--color-success);
    }    
    .warning{
        color: var(--color-warning);
    }

    aside{
        height: 100vh;    
    }

    aside .top{
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-top: 1.4rem;
    }

aside .logo{
    display: flex;
    gap: 0.8rem;
}

    aside .logo img{
        width: 2rem;
        height: 2rem;
    }

    aside .close{
        display: none;
    }

    /*================================SIDE BAR========================*/

    aside .sidebar{
        display: flex;
        flex-direction: column;
        height: 86vh;
        position: relative;
        top: 3rem;   
    }

    aside h3{
        font-weight: 500;
    }

    aside .sidebar a{
        display: flex;
        color: var(--color-info-dark);
        margin-left: 2rem;
        gap: 1rem;
        align-items: center;
        position: relative;
        height: 3.7rem;
        transition: all 300ms ease;
    }

    aside .sidebar a span{
        font-size: 1.6rem;
        transition: all 300ms ease;
    }

    aside .sidebar a:last-child {
        position: absolute;
        bottom: 2rem;
        width: 100%;
    }

    aside .sidebar a.active {
        background: var(--color-light);
        color: var(--color-primary);
        margin-left: 0;
    }

    aside .sidebar a.active:before { 
        content: " ";
        width: 6px;
        height: 100%;
        background: var(--color-primary);
    }

    aside .sidebar a.active span{
        color: var(--color-primary);
        margin-left: calc(1rem - 3px);
    }

    aside .sidebar a:hover{
        color: var(--color-primary);
    }

    aside .sidebar a:hover span{
        margin-left: 1rem ;
    }

    aside .sidebar .message-count{
        background: var(--color-danger);
        color: var(--color-white);
        padding: 2px 10px;
        font-size: 11px;
        border-radius: var(--border-radius-1);
    }

    /* ========================== MAIN =============  ================= */

    main{
        margin-top: 1.4rem;
    }

    main .date {
        display: inline-block;
        background: var(--color-light);
        border-radius: var(--border-radius-1);
        margin-top: 1rem;
        padding: 0.5rem 1.6rem;
    }

    main .date input[type='date']{
        background: transparent;
        color: var(--color-dark);
    }

    main .insights {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.6rem;
    }

    main .insights > div {
        background: var(--color-white);
        padding: var(--card-padding);
        border-radius: var(--card-border-radius);
        margin-top: 1rem;
        box-shadow: var(--box-shadow);
        transition: all 300ms ease;
    }

    main .insights > div:hover {
        box-shadow: none;
    }

    main .insights > div span{
        background: var(--color-primary);
        padding: 0.5rem;
        border-radius: 50%;
        color: var(--color-white);
        font-size: 2rem;
    }

    main .insights > div.expenses span{
        background: var(--color-danger);
    }

    main .insights > div.income span{
        background: var(--color-success);
    }

    main .insights > div .middle{
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    main .insights h3{
        margin: 1rem 0 0.6rem;
        font-size: 1rem;
    }

    main .insights .progress{
        position: relative;
        width: 92px;
        height: 92px;
        border-radius: 50%;
    }

    main .insights svg{
        width: 7rem;
        height: 7rem;
    }

    main .insights svg circle {
        fill: none;
        stroke: var(--color-primary);
        stroke-width: 14;
        stroke-linecap: round;
        transform: translate(5px, 5px);
        stroke-dasharray: 110;
        stroke-dashoffset: 92;
    }

    main .insights .sales svg circle{
        stroke-dashoffset: -10;
        stroke-dasharray: 200;
    }

    main .insights .expenses svg circle{
        stroke-dashoffset: 0;
        stroke-dasharray: 0;
    }

    main .insights .income svg circle{
        stroke-dashoffset: 0;
        stroke-dasharray: 0;
    }

    main .insights .progress .number{
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    main .insights small{
        margin-top: 1.3rem;
    }

    .onbut{
        background-color: black;
        color: white;
        padding: 5px;
        border-radius: 5px;
        
    }
    .onbut:hover{
        cursor: pointer;
        box-shadow: var(--box-shadow);
    }

    /* --- SLIDESHOW FIX --- */

/* Make slideshow fit to the right of sidebar */
/* Make slideshow bigger */
.slideshow-container {
  position: relative;
  margin-left: 130px;          /* same as sidebar width */
  width: calc(140% - 5%);   /* fill the rest of the page */
  height: 30vh;                /* make it tall (adjust between 80–95vh as you like) */
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 2px 2px 15px rgba(0, 0, 0, 0.3);
}

/* Each slide fits the new larger container */
.mySlides {
  display: none;
  width: 100%;
  height: 100%;
}

/* Image styling + zoom effect */
.mySlides img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: transform 2s ease; /* smoother, slower zoom */
}

/* Zoom slightly on the active slide */
.mySlides.active img {
  transform: scale(1.2); /* make it zoom a little more */
}

/* Optional fade effect */
.fade {
  animation: fade 1s ease-in-out;
}

@keyframes fade {
  from { opacity: 0.4; }
  to { opacity: 1; }
}

/* Dot controls styling */
div[style*="text-align:center"] {
  margin-top: 10px;
  text-align: center;
  margin-left: 250px; /* align with slideshow */
}

.dot {
  height: 10px;
  width: 10px;
  margin: 0 4px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
}

.active {
  background-color: #717171;
}



    /* =================================== RECENT ORDERS ========================= */

    main .recent-orders{
        margin-top: 2rem;

    }

    main .recent-orders h2{
        margin-bottom: 0.8rem;
    }

    main .recent-orders table{
        background: var(--color-white);
        width: 100%;
        border-radius: var(--card-border-radius);
        padding: var(--card-padding);
        text-align: center;
        box-shadow: var(--box-shadow);
        transition: all 300ms ease;
    }

    main .recent-orders table:hover{
        box-shadow: none;
    } 

    main table tbody td{
        height: 2.8rem;
        border-bottom: 1px solid var(--color-light);
        color: var(--color-dark-variant);
    }

    main table tbody tr:last-child td {
        border: none;
    }

    main .recent-orders a{
        text-align: center;
        display: block;
        margin: 1rem auto;
        color: var(--color-primary);
    }

    /* ==================== RIGHT ====================== */
    .right{
        margin-top: 1.4rem; 
    }

    .right .top{
        display: flex;
        justify-content: end;
        gap: 2rem;
    }

    .right .top button{
        display: none;
    }

    .right .theme-toggler{
        background: var(--color-light);
        display: flex;
        justify-content: space-between;
        align-items: center;
        height: 1.6rem;
        width: 4.2rem;
        cursor: pointer;
        border-radius: var(--border-radius-1);
    }

    .right .theme-toggler span{
        font-size: 1.2rem;
        width: 50%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .right .theme-toggler span.active{
        background: var(--color-primary);
        color: white;
        border-radius: var(--border-radius-1);
    }

    .right .top .profile{
        display: flex;
        gap: 2rem;
        text-align: right;
    }

    /* ===================== RECENT UPDATES ====================== */
    
    .right .recent-updates{
     margin-top: 1rem;
    }

    .right .recent-updates h2{
        margin-bottom: 0.8rem;
    }

    .right .recent-updates .updates{
        background: var(--color-white);
        padding: var(--card-padding);
        border-radius: var(--card-border-radius);
        box-shadow: var(--box-shadow);
        transition: all 300ms ease;
    }

    .right .recent-updates .updates:hover{
        box-shadow: none;
    }

    .right .recent-updates .updates .update{
        display: grid; 
        grid-template-columns: 2.6rem auto;
        gap: 1rem;
        margin-bottom: 1rem;
    }

    /* ======================== SALES ANALYTICS ======================== */
    .right .sales-analytics{
        margin-top: 2rem;
    }

    .right .sales-analytics h2{
        margin-bottom: 0.8rem;
    }

    .right .sales-analytics .item{
        background: var(--color-white);
        display: flex;
        align-items: center;
        gap: 1rem;
        margin-bottom: 0.7rem;
        padding: 1.4rem var(--card-padding);
        border-radius: var(--border-radius-3);
        box-shadow: var(--box-shadow);
        transition: all 300ms ease;
    }

    .right .sales-analytics .item:hover{
        box-shadow: none; 
    }

    .right .sales-analytics .item .right{
        display: flex;
        justify-content: space-between;
        align-items: start;
        margin: 0;
        width: 100%;
    }

    .right .sales-analytics .item .icon{
        padding: 0.6rem;
        color: var(--color-white);
        border-radius: 50%;
        background: var(--color-primary);
        display: flex;
    }

    .right .sales-analytics .item.offline .icon{
        background: var(--color-danger);
    }

    .right .sales-analytics .item.customers .icon{
        background: var(--color-success);
    }

    .right .sales-analytics .add-product{
        background-color: transparent;
        border: 2px dashed var(--color-primary);
        color: var(--color-primary);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .right .sales-analytics .add-product:hover{
        background: var(--color-primary);
        color: white;
        cursor: pointer;
    }

    .right .sales-analytics .add-product div{
        display: flex;
        align-items: center;
        gap: 0.6rem;
    }

    .right .sales-analytics .add-product div h3{
        font-weight: 600;
    }

    /* ==================================   MEDIA QUERIES ======================== */
    @media screen and (max-width: 1200px){
        .container{
            width: 94%;
            grid-template-columns: 7rem auto 23rem;
        }

        aside .logo h2{
            display: none;
        }

        aside .sidebar h3{
            display: none;
        }

        aside .sidebar a{
            width: 5.6rem;
        }

        aside .sidebar a:last-child{
            position: relative;
            margin-top: 1.8rem;
        }

        main .insights{
            grid-template-columns: 1fr;
            gap: 0;
        }

        main .recent-orders{
            width: 94%;
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
            margin: 2rem 0 0 8.8rem;
        }

        main .recent-orders table{
            width: 83vw;
        }

        main table thead tr th:last-child,
        main table thead tr th:first-child{
            display: none;
        }

        main table body tr td:last-child,
        main table body tr td:first-child{
            display: none;
        }
    }

    /* The Modal (background) */
.modal {
  display: none;
  position: fixed;
  z-index: 1;
  padding-top: 100px;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.4);
  color: #333;
}

/* The Modal (background) */
.modal {
    display: none;
    position: fixed;
    z-index: 1;
    padding-top: 100px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.4);
    color: #333;
  }
  
  /* Modal Content */
  .modal-content {
    background-color: white;
    margin: auto;
    padding: 20px;
    border: 1px solid #888;
    width: 80%;
    max-width: 400px;
    border-radius: 10px;
  }

  .modal-content:hover{
    box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19);
  }
  /* The Close Button */
  .close-btn {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
  }
  
  .close-btn:hover,
  .close-btn:focus {
    color: black;
    text-decoration: none;
    cursor: pointer;
    
  }

  .delete-btn{
    background-color: red;
    color: white;
    border-radius: 4px;
    padding: 5%;
  }
  .delete-btn:hover{
    box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19);
    cursor: pointer;
  }

  .add{
    background-color: black;
    color: white;
    border-radius: 4px;
    padding: 5%;
    
  }
  .add:hover{
    box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19);
    cursor: pointer;
  }
  
    /* ============================== MEDIA QUERIES ============================== */
    @media screen and (max-width: 768px){
        .container{
            width: 100%;
            grid-template-columns: 1fr;
        }

        aside{
            position: fixed;
            left: -100%;
            background: var(--color-white);
            width: 18rem;
            z-index: 3;
            box-shadow: 1rem 3rem 4rem var(--color-light);
            height: 100vh;
            padding-right: var(--card-padding);
            display: none;
            animation: showMenu 400ms ease forwards;
        }

        @keyframes showMenu {
            to{
                left: 0;
            }
        }

        aside .logo{
            margin-left: 1rem;
        }

        aside .logo h2{
            display: inline;
        }

        aside .sidebar h3{
            display: inline;
        }

        aside .sidebar a{
            width: 100%;
            height: 3.4rem;
        }

        aside .sidebar a:last-child{
            position: absolute;
            bottom: 5rem;
        }

        aside .close{
            display: inline-block;
            cursor: pointer;
        }

        main{
            margin-top: 8rem;
            padding: 01rem;
        }

        main .recent-orders {
            position: relative;
            margin: 3rem 0 0 0;
            width: 100%;
        }

        main .recent-orders table{
            width: 100%;
            margin: 0;
        }

        .right{
            width: 94%;
            margin: 0 auto 4rem;
        }

        .right .top {
            position: fixed;
            top: 0;
            left: 0;
            align-items: center;
            padding: 0 0.8rem;
            height: 4.6rem;
            background: var(--color-white);
            width: 100%;
            margin: 0;
            z-index: 2;
            box-shadow: 0 1rem 1rem var(--color-light);
        }

        .right .top .theme-toggler{
            width: 4.4rem;
            position: absolute;
            left: 66%;
        }

        .right .profile .info{
            display: none;
        }

        .right .top button{
            display: inline-block;
            background: transparent;
            cursor: pointer;
            color: var(--color-dark);
            position: absolute;
            left: 1rem;
        }

        .right .top button span{
            font-size: 2rem;
        }
    }

    /* =============================================== FOR REVIEW PAGE ====================================================== */

    
    .card {
      border: 1px solid #ccc; padding: 1rem; border-radius: 8px;
      margin-bottom: 1rem; box-shadow: 2px 2px 10px rgba(0,0,0,0.1);
    }
    .card h3 { margin: 0 0 0.5rem 0; }
    .card a { color: blue; text-decoration: underline; }

    #reviewContainer{
        border-radius: 30px;
    }
    #reviewContainer:hover{
        box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19);
    }


    body {
      
      margin: 0;
      padding: 1rem;
      background: #f7f7f7;
      color: #333;
    }

    h1 {
      text-align: center;
      margin-bottom: 1rem;
    }

    /* 🔍 Search + Sort Controls */
    .controls {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: 1rem;
      margin-bottom: 1.5rem;
    }

    input[type="text"], select {
      padding: 0.6rem 1rem;
      border: 1px solid #ccc;
      border-radius: 5px;
      font-size: 1rem;
    }
    @media (max-width: 768px) {
    /* 1. Ensure the control bar uses the full screen width */
    .controls {
        /* If you want them to occupy the whole width, push them to the sides */
        justify-content: space-between; 
        /* Add edge padding if not already present */
        padding: 0 1rem; 
    }

    /* 2. Allocate 2/3 of the space to the search box */
    #searchBox {
        flex: 2; 
        min-width: 0; /* Important for flex-items inside small containers */
    }

    #sortSelect {
        flex: 0.7;
        padding: 0.3rem 0.4rem;
        min-width: 0;
    }
}

    /* 🖼️ Gallery Layout */
    .gallery {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 1rem;
      justify-items: center;
      transition: all 0.3s ease;
    }

    .gallery-item {
      background: white;
      border-radius: 8px;
      overflow: hidden;
      box-shadow: 0 2px 10px rgba(0,0,0,0.1);
      width: 220px;         /* ✅ Fixed width */
      height: 260px;        /* ✅ Fixed height */
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      transition: transform 0.2s ease, opacity 0.3s ease;
    }

    .gallery-item img {
      width: 100%;
      height: 180px;        /* ✅ Fixed height for image area */
      object-fit: cover;    /* ensures images fill the box nicely */
    }

    .info {
      padding: 0.5rem;
      text-align: center;
    }

    .gallery-item:hover {
      transform: scale(1.03);
    }

    @media (max-width: 600px) {
      input[type="text"], select {
        width: 100%;
      }
    }



    .gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px;
  padding: 10px;
}

.gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.gallery-item img:hover {
  transform: scale(1.05);
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
}

h1 {
  margin-top: 20px;
  margin-bottom: 20px;
}


/* 📱 Make sidebar icons bigger only on mobile view */
@media screen and (max-width: 768px) {
  aside .sidebar a span.material-icons-sharp {
    font-size: 2.2rem !important; /* increase size for mobile */
    size: 100%;
  }
}

/* 📱 Make logo text bigger only on mobile */
@media screen and (max-width: 768px) {
  aside .logo h1 {
    font-size: 2rem !important;   /* increase size for mobile */
    letter-spacing: 1px;          /* optional: add a little spacing */
  }

  aside .logo .danger {
    color: var(--color-danger);   /* keep red part consistent */
  }
}

.location-cards {
  display: flex;
  gap: 60px; /* space between cards */
  justify-content: center;
  flex-wrap: wrap; /* wrap on smaller screens */
}

.location-cards .card {
  background: white;
  border-radius: 10px;
  width: 250px;
  height: 250px; /* square */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.location-cards .card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 15px rgba(0,0,0,0.2);
  background-color: #f9f9f9;
}

/* Mobile adjustments */
@media screen and (max-width: 768px) {
  .location-cards {
    flex-direction: row;
    justify-content: center;
    gap: 15px;
  }

  .location-cards .card {
    width: 45%;  /* two cards side by side on mobile */
    height: 0;
    padding-bottom: 45%; /* keeps square ratio */
    position: relative;
  }

  .location-cards .card h3,
  .location-cards .card p {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}


#menu-btn {
  display: none; /* hidden on desktop */
}

@media screen and (max-width: 768px) {
  #menu-btn {
    display: block;
    position: absolute;
    top: 1rem;
    left: 1rem;
    font-size: 2rem;
    z-index: 500;
    background: none;
    border: none;
    cursor: pointer;
  }
}

/* Hide by default (desktop and tablet) */
.mobile-title {
  display: none;
}

/* Show only on mobile */
@media screen and (max-width: 768px) {
  .mobile-title {
    display: block;
    text-align: center;
    font-size: 2rem;
    margin: 0;
    margin-top: 5px;
    margin-bottom: 5px;
    font-weight: bold;
  } 

  .key {
  font-size: 5vb;
  display: inline-block;
  letter-spacing: 0vw;
  transition: transform 0.2s;
}



@keyframes pressDown1 {
  30%,
  40%,
  100% {
    transform: translateY(0);
  }
  35% {
    transform: translateY(10px);
  }
}

@keyframes pressDown2 {
  70%,
  80%,
  100% {
    transform: translateY(0);
  }
  75% {
    transform: translateY(10px);
  }
}

@keyframes pressDown3 {
  30%,
  40%,
  100% {
    transform: translateY(0);
  }
  35% {
    transform: translateY(10px);
  }
}

@keyframes pressDown4 {
  40%,
  50%,
  100% {
    transform: translateY(0);
  }
  45% {
    transform: translateY(10px);
  }
}

@keyframes pressDown5 {
  20%,
  30%,
  100% {
    transform: translateY(0);
  }
  25% {
    transform: translateY(10px);
  }
}

@keyframes pressDown6 {
  60%,
  70%,
  100% {
    transform: translateY(0);
  }
  65% {
    transform: translateY(10px);
  }
}

@keyframes pressDown7 {
  10%,
  20%,
  100% {
    transform: translateY(0);
  }
  15% {
    transform: translateY(10px);
  }
}

@keyframes pressDown8 {
  35%,
  45%,
  100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(10px);
  }
}



.key:nth-child(1) {
  animation: pressDown1 2s infinite;
}

.key:nth-child(2) {
  animation: pressDown2 3s infinite;
}

.key:nth-child(3) {
  animation: pressDown3 4s infinite;
}

.key:nth-child(4) {
  animation: pressDown4 2.5s infinite;
}

.key:nth-child(5) {
  animation: pressDown5 2.5s infinite;
}

.key:nth-child(6) {
  animation: pressDown6 3.5s infinite;
}

.key:nth-child(7) {
  animation: pressDown7 2.2s infinite;
}

.key:nth-child(8) {
  animation: pressDown8 3.2s infinite;
}


}

@media screen and (max-width: 768px) {
  .mobile-title h1,
  .mobile-title .keyboard {
    margin: 0 !important;
    padding: 0 !important;
  }
}


@media screen and (max-width: 768px) {
  aside {
    position: fixed;
    left: -250px;
    transition: left 0.3s ease;
  }
  aside.active {
    left: 0;
  }
}

/* HIDE bottom nav on desktop */
.mobile-bottom-nav {
  display: none;
}

/* MOBILE ONLY */
@media screen and (max-width: 768px) {
  /* Hide the sidebar completely on mobile */
  aside {
    display: none;
  }

  /* Show bottom navigation */
  .mobile-bottom-nav {
    display: flex;
    justify-content: space-around;
    align-items: center;

    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;

    background: #ffffff;
    border-top: 1px solid #ccc;
    padding: 0.5rem 0;

    z-index: 5000;
  }

  .mobile-bottom-nav .nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: #333;
    font-size: 0.75rem;
  }

  .mobile-bottom-nav .nav-item span {
    font-size: 1.8rem;
    margin-bottom: 2px;
  }

  .mobile-bottom-nav .nav-item.active,
  .mobile-bottom-nav .nav-item:hover {
    color: #0d6efd; /* blue highlight */
  }
}

@media (max-width:768px){
  #gtech-profile-area img { width:36px !important; height:36px !important; }
  #gtech-profile-area span { display:none; } /* hide name on very small screens, optional */



}

/* ===== MODAL OVERLAY ===== */
.model-modal {
  position: fixed;
  inset: 0; /* top:0 right:0 bottom:0 left:0 */
  background: rgba(0, 0, 0, 0.6);

  display: none; /* hidden by default */
  align-items: center;
  justify-content: center;

  z-index: 100000; /* VERY high to beat all layouts */
  
  /* Prevent click-through & scroll */
  pointer-events: auto;
  touch-action: none;
  overscroll-behavior: contain;
}

/* ===== MODAL BOX ===== */
.model-box {
  background: #ffffff;
  color: #000;

  width: 90%;
  max-width: 320px;

  padding: 20px;
  border-radius: 12px;
  text-align: center;

  position: relative;
  z-index: 100001;

  /* iOS rendering fixes */
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}

/* ===== TITLE ===== */
.model-box h3 {
  margin: 0 0 16px;
  font-size: 18px;
}

/* ===== BUTTONS ===== */
.model-box button {
  width: 100%;
  padding: 12px;
  margin: 8px 0;

  border: none;
  border-radius: 6px;

  font-size: 16px;
  font-weight: 600;

  background: #000;
  color: #fff;

  cursor: pointer;
}

/* Button tap fix for iOS */
.model-box button:active {
  opacity: 0.8;
}

/* ===== CLOSE BUTTON ===== */
.model-box .close {
  position: absolute;
  top: 8px;
  right: 10px;

  font-size: 20px;
  font-weight: bold;
  cursor: pointer;
  color: #333;
}
