:root{
    --bs-body-bg: hsl(240, 67%, 97%);
    --bs-heading-color: hsl(277, 100%, 15%);

    --bs-nav-text-color: rgb(0, 0, 63%);
    --nav-hover-color: purple;
    --nav-active-color: hsl(277, 50%, 25%);
    --nav-active-text-color: hsl(277, 100%, 94%);
    --divider-color: lavender;
    --border-color: hsl(277, 50%, 30%);
    --input-bg-color: hsl(240, 67%, 98%);

    --bs-btn-bg: green;
    --bs-orange: hsl(39, 100%, 46%);
    --bs-warning2: hsl(28, 100%, 50%);
    --bs-warning-rgb: 235, 152, 0;
    /* --bs-btn-bg: hsl(39, 100%, 36%); */
    --bs-pink: hsl(332, 100%, 60%);

    --card-gradient: radial-gradient(circle at center, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));

    interpolate-size: allow-keywords; /* Smooth transitions */

}


/*********     DIM      *********/

/* Prevent all non-defined custom elements from displaying: */
*:not(:defined) { display: none; }

/* Hide cloaked elements for Alpine.js */
[x-cloak] { display: none !important; }

/* View transition between pages */
@view-transition {
    navigation: auto;
}

/* smooth scrolling by default */
html {
    scroll-behavior: smooth;
    scroll-padding-top: 3rem;
}


/*********   DIM TABLES *********/
/* Για να μην πηδάει στο φόρτωμα */
table.dim-table:not([data-dimtables-initialized="1"]) { margin-top: 3rem }
.dim-table-bar { height: 2rem }
/* Περιορισμός κελιών σε 50 χαρακτήρες με ellipsis (...) και κατακόρυφη στοίχηση στο κέντρο */
table.dim-table :is(th, td) {
    max-width: 50ch;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}
/* Να συρρικνώνονται τα κελιά αντί να εμφανίζεται η μπάρα κύλισης */
table.dim-table {
    max-width: 100%;
    table-layout: fixed;         
    border-collapse: collapse;
}
/* Μόνο για την παρούσα εφαρμογή, επειδή δεν έχουν όλες οι γραμμές κουμπιά (πχ viewer periods) */
table.dim-table tr{ 
    height: 3.5rem; 
}
table.dim-table i{
    font-size: 1.2rem;
}


/*********     THEME CORRECTIONS     *********/

body{
    /* color-scheme: dark; */
    background-color: var(--bs-body-bg);
}

main{
    margin-inline: 0.5rem;   /* for mobile */
    container-type: inline-size;
    container-name: main;
    /* border: var(--bs-border-width) var(--bs-border-style) white;
    border-radius: var(--bs-border-radius); */
}

.main-content {
    min-height: calc(100vh - 45px);
}

div {
    /* background-color: var(--bs-body-bg); */
    background-color: revert;
    /* color: revert; */
}

h3,h4,h5,p{margin-bottom: revert;}

.table td{min-width: 18ch}

label{
    margin-left: 0.2rem;
}

.bi {
    line-height: 1;
}

/* h1{font-size: 2.5rem}
h2{font-size: 2rem}
h3{font-size: 1.5rem} */

/* btn:is(.btn-success, .btn-primary, .btn-warning, .btn-info, .btn-danger, .btn-secondary){
    --bs-btn-color: #fff;
} */

.btn{
    padding: 0.6rem 1.2rem !important;
    min-width: 3rem;
}
.btn, .btn:focus, .btn:active, .btn:hover{
    color: var(--bs-light) !important;
 }
.btn:hover i {
    color: var(--bs-light) !important;
}

.btn-icon, .badge-icon{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
}

input.form-control{
    border-color: hsl(240, 93%, 90%);
}
input[readonly], input:disabled{
    background-color: hsl(240, 50%, 93%) !important;
}
input::placeholder{
    color: gray !important;
    opacity: 1 !important; /* Firefox */
}
.form-select{
    background-color: var(--input-bg-color);
}
.dropdown-search{
    max-width: 30ch;
}

.bg-warning2{
    background-color: var(--bs-warning2) !important;
    color: var(--bs-light) !important;
}
.bg-orange{
    background-color: var(--bs-orange) !important;
    color: var(--bs-light) !important;
}
.bg-purple{
    background-color: var(--bs-purple) !important;
    color: var(--bs-light) !important;
}
.bg-pink{
    background-color: hsl(322, 100%, 48%) !important;
    color: var(--bs-light) !important;
}
.bg-pink-light{
    background-color: hsl(330, 87%, 73%) !important;
    color: var(--bs-light) !important;
}
.bg-gray{
    background-color: hsl(0, 0%, 60%) !important;
    color: var(--bs-light) !important;
}
.bg-indigo{
    background-color: var(--bs-indigo) !important;
    color: var(--bs-light) !important;
}
.bg-danger-light{
    background-color: hsl(27, 100%, 84%) !important;
}
.bg-blue-light{
    background-color: hsl(210, 100%, 86%) !important;
}

a.text-primary, .btn-outline-primary, .btn-outline-primary i{
    color: #04c !important;
    border-color: #04c !important;
    &:focus{
        background-color: var(--bs-btn-active-bg) !important;
        border-color: var(--bs-btn-active-border-color) !important;
    }
}

.btn-warning{
    background-color: var(--bs-orange) !important;
    border-color: var(--bs-orange) !important;
    color: var(--bs-light) !important;
}
.btn-warning2{
    background-color: var(--bs-warning2) !important;
    color: var(--bs-light) !important;
}


/* Excel Icon - SVG ως CSS icon */
.btn-excel{
    background-color: #177b45; 
    color: var(--bs-light);
    &:hover{
        background-color: #146c3f;
    }
}
.excel-icon {
    display: inline-block;
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg height='24px' width='24px' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 26 26' xml:space='preserve'%3E%3Cg%3E%3Cpath style='fill:white;' d='M25.162,3H16v2.984h3.031v2.031H16V10h3v2h-3v2h3v2h-3v2h3v2h-3v3h9.162C25.623,23,26,22.609,26,22.13V3.87C26,3.391,25.623,3,25.162,3z M24,20h-4v-2h4V20z M24,16h-4v-2h4V16z M24,12h-4v-2h4V12z M24,8h-4V6h4V8z'/%3E%3Cpath style='fill:white;' d='M0,2.889v20.223L15,26V0L0,2.889z M9.488,18.08l-1.745-3.299c-0.066-0.123-0.134-0.349-0.205-0.678H7.511C7.478,14.258,7.4,14.494,7.277,14.81l-1.751,3.27H2.807l3.228-5.064L3.082,7.951h2.776l1.448,3.037c0.113,0.24,0.214,0.525,0.304,0.854h0.028c0.057-0.198,0.163-0.492,0.318-0.883l1.61-3.009h2.542l-3.037,5.022l3.122,5.107L9.488,18.08L9.488,18.08z'/%3E%3C/g%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    vertical-align: middle;
}


/*********    LAYOUT    **********/ 

.sidebar{
    background-color: var(--bs-body-bg);
    border-right: 1px solid var(--border-color);
}

.sidebar-logo a .logo{
    align-content: center;  /* center vertically */
    width: auto;
}
.sidebar-logo a .logo img {
    height: 60px;
    width: auto;
}


.header, .sidebar-logo {        
    height: 4.2rem;     /*These two should have the same height*/
    background-color: var(--bs-body-bg);
    border-bottom: 1px solid #ccc;
}


.sidebar-menu *, .dropdown-menu *,  .dropdown-menu li,  .dropdown-menu a, .dropdown-menu div, .dropdown-menu span {
    transition: all 0.5s ease-in-out !important;
}
.sidebar-menu li a, .dropdown-menu li a {
    color: var(--bs-nav-text-color) !important;
    &:hover, &.active {
        background-color: var(--nav-hover-color) !important;
        color: var(--nav-active-text-color) !important;
    }
}

.icon-holder{
    margin-inline: 0.2rem;
}

/* .sidebar-menu a.dropdown-toggle:has(+.dropdown-menu a:hover) {
    background-color: var(--nav-hover-color) !important;
} */

.divider{
    background-color: var(--divider-color);
    opacity: 0.2;
    height: 2px;
}

.card{
    background-color: hsl(240, 67%, 96%);
    & input:not([type="checkbox"]), input:not([type="checkbox"]):focus{
        background-color: var(--input-bg-color);
    }
}

.card.canteen-card{
    border: 1px solid hsl(210, 95%, 78%) !important;
    background-color: hsl(210, 95%, 83%);
    background-image: var(--card-gradient);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 1px 3px 8px rgba(0, 0, 0, 0.5);
    &:hover {
        transform: translateY(-5px);
    }
}
.big-shadow{
    box-shadow: 1px 3px 5px 0px rgba(0, 0, 0, 0.5);
}
.small-shadow{
    box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, 0.5);
}
.lg{
    margin-inline: auto;
    max-width: 1200px;
}

.dashboard-card{
    padding: 0.3rem;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 1px 3px 8px rgba(0, 0, 0, 0.5);
    background-image: var(--card-gradient);
    &:hover {
        transform: translateY(-3px);
    }
    hr {
        margin: 0.5rem 0.7rem;
        border-top: 1px solid var(--border-color);
        @media (width>1650px) {
            margin-block: 1.5rem;
        }
    }
    i{
        font-size: 3rem;
        margin-right: 0.7rem;
    }
}

.shake-it{
    animation: shake 3s ease-in-out;
}
@keyframes shake {
    0%, 100% { transform: translateY(0); }
    /* 10% { transform: translateY(-4px); } */
    50% { transform: translateY(0); }
    55% { transform: translateY(-4px); }
    60% { transform: translateY(0); }
    65% { transform: translateY(-4px); }
    70% { transform: translateY(0); }
    75% { transform: translateY(-4px); }
    80% { transform: translateY(0); }
    85% { transform: translateY(-4px); }
    90% { transform: translateY(0); }
}

.rent-adjustment-item{
    padding: 0.6rem 1.2rem !important;
    background-color: hsl(240, 67%, 94%);
}







/*********    UTILITY CLASSES    *********/

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

.unseparated {
    white-space: nowrap !important;
}

.larger{
    font-size: larger;
}
.normal{
    font-size: medium;
}


@media (min-width: 1200px) {
    .narrow-cell-sm{
        width: 15ch;
    }
    .narrow-cell-m, .narrow-cell{
        width: 18ch;
    }
    .narrow-cell-l {
        width: 20ch;
    }
    .wide-cell-sm{
        width: 12vw;
    }
    .wide-cell-m{
        width: 15vw;
    }
    .wide-cell, .wide-cell-l{
        width: 20vw;
    }
    .wide-cell-xl{
        width: 30vw;
    }
}

