﻿/* See additional styling of typography in ThemeService.cs */

/* ================================================
   GLOBAL COLOR VARIABLES (default and light theme)
   ================================================ */
:root {
    /* Links */
    --link-color: hsl(225, 68%, 64%); /* blue */ /*was rgb(13, 110, 253); --> rgb(101, 133, 224) */
    --link-hover: hsl(39, 100%, 50%); /*orange;*/
    /* Typography (light mode) */
    --h1-color: hsl(0, 0%, 0%); /*black;*/
    --h2-color: hsl(0, 0%, 0%); /*black;*/
    --h4-color: hsl(218, 56%, 32%); /*#24467e;*/ /* dark blue */
    /* Grays */
    --gray-444: hsl(0, 0%, 27%); /*#444444;*/ /* very dark gray */
    --gray-555: hsl(0, 0%, 33%); /*#555555;*/ /* darker gray */
    --gray-160: hsl(0, 0%, 63%); /*rgb(160, 160, 160);*/ /* light gray */
    --silver: hsl(0, 0%, 75%); /* very light gray */
    /* Focus rings */
    --focus-orange: hsl(39, 100%, 50%); /*hsl(36, 100%, 50%);*/ /*#ff9800;*/
    /* Carousel */
    --carousel-arrow: hsl(0, 0%, 100%); /*white;*/
    /* Menu hover */
    --menu-hover: hsl(39, 100%, 50%); /*orange;*/
}

/* ============================================
   DARK MODE VARIABLES
   ============================================ */
@media (prefers-color-scheme: dark) {
    :root {
        --h1-color: white;
        --h2-color: white;
        --h4-color: hsl(216, 58%, 79%) ; /*#a7bfe6;*/ /* light blue */
    }
}

/* ============================================
   BASE TYPOGRAPHY
   ============================================ */
html {
    /* set the reference for all child elements - Similar to the Microsoft web site */
    font-size: 100%;
}

body {
    font-size: 105%;
    font-weight: 300;
    padding-bottom: 20px;
}


/* TYPOGRAPHY COLOR THEMES: */
/* https://www.colorhexa.com/ */
/* Light mode (default) */
/*:root {
    .mud-typography-h1 {
        color: black;
    }

    .mud-typography-h2 {
        color: black;
    }

    .mud-typography-h4 {
        color: #24467e;  dark blue
    }
}*/

/* Dark mode */
/*@media (prefers-color-scheme: dark) {
    :root {
        .mud-typography-h1 {
            color: white;
        }

        .mud-typography-h2 {
            color: white;
        }

        .mud-typography-h4 {
            color: #a7bfe6;*/ /* light blue*/
        /*}
    }
}*/

/* Typography overrides */
.mud-typography-h1 {
    color: var(--h1-color);
}

.mud-typography-h2 {
    color: var(--h2-color);
}

.mud-typography-h4 {
    color: var(--h4-color);
}


/* ============================================
   NAVIGATION & MENU ITEMS
   ============================================ */
/* MudNavLink elements used in menus */
.mud-nav-item {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: 28px !important; /* reduce height */
}

    /* gray links */
    .mud-nav-item a {
        padding-top: 1px !important;
        padding-bottom: 1px !important;
        /*color: #444 !important;*/
        text-decoration: none !important;
        background-color: transparent !important;
        transition: color 0.2s ease, text-decoration 0.2s ease;
    }

        /* orange text on hover */
        /*.mud-nav-item a:hover {
            color: orange !important;
            text-decoration: underline !important;
            text-decoration-color: orange !important;
            background-color: transparent !important;
        }*/
        .mud-nav-item a:hover {
            color: var(--menu-hover) !important;
            text-decoration: underline !important;
            text-decoration-color: var(--menu-hover) !important;
            background-color: transparent !important;
        }


/*.mud-divider {
    background-color: #555555;*/ /* darker gray */
    /*height: 2px !important;*/ /* thicker line */
    /*margin: 4px 0;*/ /* vertical spacing */
/*}*/

/* Divider */
.mud-divider {
    background-color: var(--silver) !important;
    height: 2px !important; /* thicker line */
    margin: 4px 0 !important;
}

/* ============================================
   DROPDOWN BUTTONS
   ============================================ */
/* Menu headers: */
/*.custom-dropdown-button {*/
    /* Gray */
    /*color: rgb(160, 160, 160) !important;
    transition: color 0.3s ease, text-decoration 0.3s ease;
}*/

.custom-dropdown-button {
    color: var(--gray-160) !important;
    transition: color 0.3s ease, text-decoration 0.3s ease;
}


    /* On hover: white and underline */
    .custom-dropdown-button:hover {
        color: white !important;
        text-decoration: underline;
    }

    /*.custom-dropdown-button:focus,
    .custom-dropdown-button:focus-visible {
        outline: 2px solid #ff9800;*/ /* orange focus ring for keyboard */
        /*outline-offset: 2px;
        border-radius: 4px;
    }*/

    .custom-dropdown-button:focus,
    .custom-dropdown-button:focus-visible {
        outline: 2px solid var(--focus-orange);
        outline-offset: 2px;
        border-radius: 4px;
    }

/* Target the button inside MudMenu */
/*.mud-menu .mud-button:focus,
.mud-menu .mud-button:focus-visible {
    outline: 2px solid #ff9800;*/ /* orange focus ring for keyboard */
    /*outline-offset: 2px;
    border-radius: 4px;
}*/

/* MudMenu focus ring for keyboard */
.mud-menu .mud-button:focus,
.mud-menu .mud-button:focus-visible {
    outline: 2px solid var(--focus-orange);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Remove hover background for menu items */
.mud-popover .mud-menu-item.no-hover-bg:hover,
.mud-popover .mud-menu-item.no-hover-bg:focus,
.mud-popover .mud-list-item-clickable.no-hover-bg:hover,
.mud-popover .mud-list-item-clickable.no-hover-bg:focus {
    background-color: transparent !important;
}

/*.no-hover-bg .focusable-navlink:hover .menuItem-text {
    color: orange !important;
    text-decoration: underline !important;
}*/

.no-hover-bg .focusable-navlink:hover .menuItem-text {
    color: var(--menu-hover) !important;
    text-decoration: underline !important;
}

/* ============================================
   LOGO
   ============================================ */
/*.LogoImage:focus,
.LogoImage:focus-visible {
    outline: 2px solid #ff9800;*/ /* orange focus ring for keyboard */
    /*outline-offset: 2px;
    border-radius: 4px;
}*/

.LogoImage:focus,
.LogoImage:focus-visible {
    outline: 2px solid var(--focus-orange);
    outline-offset: 2px;
    border-radius: 4px;
}

.LogoImage img {
    max-width: 100%;
    height: auto;
}


/* ============================================
   NAVLINK FOCUS RING
   ============================================ */
/* Menu items on keyboard focus */
/*.focusable-navlink:focus,
.focusable-navlink:focus-visible {
    outline: 2px solid orange;
    outline-offset: 2px;
    border-radius: 4px;
}*/

.focusable-navlink:focus,
.focusable-navlink:focus-visible {
    outline: 2px solid var(--menu-hover);
    outline-offset: 2px;
    border-radius: 4px;
}


/* ============================================
   LINKS - Overrides MudBlazor default
   ============================================ */
/*a,
.mud-link {
    text-decoration: none;*/
    /*color: rgb(13, 110, 253);*/ /* blue - we must keep this */
    /*color: var(--link-color);
}*/

a,
.mud-link {
    text-decoration: none;
    color: var(--link-color);
}

    /*a:hover {
        text-decoration: underline;*/
        /*color: orange !important;*/
        /*color: var(--link-hover) !important;
    }*/

    a:hover {
        text-decoration: underline;
        color: var(--link-hover) !important;
    }

/* ============================================
   CAROUSEL
   ============================================ */
/* Carousel left and right arrows */
/*.custom-arrow-icon {
    opacity: 0.4;
    color: white !important;
    cursor: pointer;
    transition: opacity 0.3s ease-in-out;
}

    .custom-arrow-icon:hover {
        opacity: 1;
        color: white !important;
    }*/

.custom-arrow-icon {
    opacity: 0.4;
    color: var(--carousel-arrow) !important;
    cursor: pointer;
    transition: opacity 0.3s ease-in-out;
}

    .custom-arrow-icon:hover {
        opacity: 1;
        color: var(--carousel-arrow) !important;
    }

/* Carousel custom rectangle buttons */
.custom-bullet-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 8px; /* adds spacing between bullets */
    position: relative;
    top: -15px; /* raises the icon */
}

.rectangle-svg {
    width: 30px;
    height: 3px;
    display: block;
}


/* ============================================
   FOCUS OUTLINES
   ============================================ */
/* Outline elements with focus, except h1 titles getting focus for ARIA */
/**:focus:not(input):not(textarea):not(select):not(h1) {
    outline: 2px dashed orange !important;
}*/

*:focus:not(input):not(textarea):not(select):not(h1) {
    outline: 2px dashed var(--menu-hover) !important;
}

/* MudBlazor uses a rounded/circular style for mud-icon-button. We’ll override this to create a rectangular focus ring:
   Make the adornment button rectangular when focused */
/*.mud-icon-button:focus-visible {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: 2px;
    border-radius: 4px !important;*/ /* Make less rounded */
/*}*/

/* Reduce padding on the adornment icon button when input is dense */
/*.mud-input-margin-dense .mud-input-adornment-icon-button {
    padding-top: 4px !important;*/ /* default is 8px or more */
/*padding-bottom: 4px !important;*/ /* default is 8px or more */
/*width: 32px;
    height: 32px;
}*/


/* ============================================
   INPUT ADORNMENTS
   ============================================ */
/* This below make it so the end adornment clickable icon on password fields has the same size/alignment as on clickable adornments */
/* Normalize padding/margin between clickable and non-clickable adornments */
.uniform-adornment .mud-input-adornment {
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

    /* For clickable icon (button) */
    .uniform-adornment .mud-input-adornment button {
        padding: 0;
        margin: 0;
        border-radius: 0; /* optional: keep it square if desired */
        background: none;
        border: none;
        min-width: 0;
        height: 24px; /* match the size of icon */
        width: 24px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

/* Optional: adjust icon size */
.uniform-adornment .mud-icon-root {
    font-size: 20px; /* or whatever size you're using */
}

/* ============================================
   APP BAR
   ============================================ */
.black-appbar {
    height: 5rem;
    max-height: 5rem;
    width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
    padding-left: 1rem;
    padding-right: 1rem;
}

.appBarContainer {
    height: 50%; /*hack for vertical centering*/
}


/* ============================================
   LISTS
   ============================================ */
ol {
    margin-left: 2rem;
}

ul {
    margin-left: 2rem;
}

.mud-divider {
    background-color: silver !important;
    height: 1px !important;
    margin: 4px 0 !important;
}

/* Fix MudTextField label when browser autofills password */
/* Target MudBlazor's label and force it to float */
.force-float-label .mud-input-label {
    transform: scale(0.75) !important;
}


/* ============================================
   AUTOFILL FIX
   ============================================ */
/* Remove Chrome/Edge autofill yellow background */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1000px var(--mud-palette-surface) inset !important;
    box-shadow: 0 0 0 1000px var(--mud-palette-surface) inset !important;
    -webkit-text-fill-color: var(--mud-palette-text-primary) !important;
    caret-color: var(--mud-palette-text-primary) !important;
}



/* ============================================
   Custom style for div containers of MudCard
   ============================================ */
/* Smooth hover animation */
.custom-card-wrapper {
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}

    .custom-card-wrapper:hover {
        box-shadow: 0 8px 18px rgba(0,0,0,0.25);
        transform: translateY(-4px);
    }





/*dynamic color comes from inline style*/
/*.glossy-header {
    background-image: linear-gradient( to bottom, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.25) 35%, rgba(255, 255, 255, 0.10) 60%, rgba(255, 255, 255, 0.00) 100% );
    background-blend-mode: screen;
}
*/
/*or 'overlay' if you prefer*/

/* 1 Curved “Apple‑style” highlight (premium, glassy) */
/*.glossy-header {
    position: relative;
    overflow: hidden;
}

    .glossy-header::before {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        background: radial-gradient( ellipse at top, rgba(255,255,255,0.65) 0%, rgba(255,255,255,0.25) 40%, rgba(255,255,255,0.05) 70%, rgba(255,255,255,0) 100% );
        mix-blend-mode: screen;
        z-index: 1;
    }*/

/* Diagonal shine (modern, dynamic) */
/*.glossy-header::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient( 135deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.10) 35%, rgba(255,255,255,0.00) 60% );
    mix-blend-mode: screen;
    z-index: 1;
}*/

/* Stronger reflection (bold, high‑contrast) */
/*.glossy-header::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient( to bottom, rgba(255,255,255,0.75) 0%, rgba(255,255,255,0.40) 30%, rgba(255,255,255,0.15) 60%, rgba(255,255,255,0) 100% );
    mix-blend-mode: screen;
    z-index: 1;
}*/

/* With animation */
.glossy-header::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient( 120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.45) 50%, rgba(255,255,255,0) 100% );
    transform: translateX(-100%);
    transition: transform 0.6s ease-out;
    mix-blend-mode: screen;
}

.glossy-header:hover::before {
    transform: translateX(100%);
}


/* ============================================
   DIALOG BOXES STYLING
   ============================================ */
/*.blur {
    backdrop-filter: blur(10px);
}

.dialog-background {
    background-color: transparent;
}

.dialog-background-title {
    background: rgba(var(--mud-palette-info-rgb), 0.5);
    color: var(--mud-palette-white);
}

.dialog-background-surface {
    background: rgba(var(--mud-palette-surface-rgb), 0.75);
}
*/

/* ============================================
   Layout css for the footer
   ============================================ */
.layout-root {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.layout-content {
    flex: 1 0 auto;
}

footer {
    flex-shrink: 0;
    width: 100%;
}
