﻿/* EIS IDP STYLES */
:root {
    --wave-purple-light: #A48AC6;
    --wave-purple-dark: #7D4CBF;

    --pf-light: #C1A6E3;
    --pf-dark: #7D4CBF;
    --pf-error: #e74c3c;
    --pf-bg: #fafafa;
}

html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
    background: radial-gradient( circle at top left, rgba(255,255,255,1) 0%, rgba(243,232,255,0.8) 40%, rgba(230,255,245,0.6) 80%, rgba(255,255,255,1) 100% );
    min-height: 90vh;
    color: #333;
}

/* GENERAL SITE STYLES */

.identity {
    color: blueviolet;
    font-weight: 300;
}

.identity-alt {
    color: #9E91F2;
    font-weight: 300;
}
.password-wrapper {
    position: relative;
    width: 100%;
}

.password-input {
    height: 56px;
    padding-right: 60px;
    border: 2px solid #333;
    border-radius: 12px;
    background: #f5f5f5;
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: 16px;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    cursor: pointer;
    color: #666;
    font-size: 1.2rem;
    padding-left: 12px;
    border-left: 1px solid #ddd;
}

    .password-toggle:hover {
        color: #000;
    }

/* === BUTTONS === */

/* Gradient Buttons  */
.btn-gradient {
    /* gradient background */
    background: linear-gradient( 135deg, var(--pf-light), var(--pf-dark) );
    color: #fff;
    border: none;
    padding: 0.5rem 1.5rem;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 0.5rem;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

    .btn-gradient:hover,
    .btn-gradient:focus {
        transform: translateY(-2px);
        box-shadow: 0 6px 12px rgba(0,0,0,0.15);
        outline: none;
        color: #fff;
    }

/* Outline‑style Buttons */
.btn-outline-gradient {
    background: transparent;
    color: var(--pf-dark);
    border: 2px solid var(--pf-dark);
    padding: 0.5rem 1.4rem;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 0.5rem;
    transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

    .btn-outline-gradient :hover {
        background: var(--pf-dark);
        color: #fff;
        box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    }


/* Pill Modifier */
.btn-pill {
    border-radius: 999px !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

/* === LOGIN LANDING PAGE === */

.login-container {
    width: 540px;
    margin: 2rem auto;
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    background: #ffffff;
}

/* HEADER */
.login-header {
    position: relative;
    padding: 2rem 1rem 0;
    text-align: center;
    background: #fff;
    height: 220px;
    overflow: hidden;
    border-radius: 10px;
    z-index: 1;
}

/* bump up the logo size */
.logo {
    width: auto;
   /* height: 240px;*/
    object-fit: contain;
    position:relative;
    z-index: 3;
}

/* style the “Identity” word */
.identity-title {
    position:relative;
    margin: 0;
    color: #fff;
    font-size: 2rem;
  /*  letter-spacing: .05em;*/
    font-weight: 300;
    z-index: 3;
    text-align:left;
}

/* SVG wave */
.login-header-wave,
#wave {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 230px; /* Reveal more of the 700px-high SVG */
    pointer-events: none;
}

.login-container {
    overflow: visible;
}

/* BODY */
.login-body {
    padding: 1.5rem;
}

.login-container .btn-login {
    background-color: var(--wave-purple-dark);
    border: none;
    color: #fff;
    width: 100%;
    padding: .75rem;
    border-radius: .5rem;
    font-weight: 500;
    transition: background-color .2s;
}

    .login-container .btn-login:hover {
        background-color: var(--wave-purple-light);
    }

.login-header .back-icon {
    position: absolute;
    top: 1rem;
    left: 1rem;
    font-size: 1.5rem;
    color: rgba(255,255,255,0.8);
    z-index: 10; /* above the SVG wave */
    transition: color .2s;
}

    .login-header .back-icon:hover {
        color: rgba(255,255,255,0.5);
        text-decoration: none;
    }

/* form groups */
.login-body .form-group {
    display: flex;
    flex-direction: column;
}

/* labels */
.login-body .form-label {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--wave-purple-dark);
    margin-bottom: 0.35rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    text-align: left;
}
.login-footer {
    background-color: #F2F2F2;
    padding:10px;
    border-radius: 5px;
}
/* inputs */
.login-body .form-control {
    padding: 0.6rem 0.75rem;
    border-radius: 0.375rem;
    border: 1px solid #ccc;
    background: #fafafa;
    transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    font-size: 0.95rem;
    color: #333;
}

    .login-body .form-control::placeholder {
        color: #999;
        opacity: 1;
    }

    /* focus state */
    .login-body .form-control:focus {
        outline: none;
        border-color: var(--wave-purple-dark);
        box-shadow: 0 0 0 0.2rem rgba(125,76,191, 0.25);
    }

/* validation messages */
.login-body .validation-message,
.login-body .validation-summary-errors {
    color: #e74c3c;
    font-size: 0.85rem;
}

/* login button */
.login-body .btn-login {
    display: block;
    width: 100%;
    padding: 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    color: #fff;
    background: var(--wave-purple-dark);
    border: none;
    border-radius: 0.375rem;
    transition: background 0.2s ease-in-out;
}

    .login-body .btn-login:hover,
    .login-body .btn-login:focus {
        background: var(--wave-purple-light);
        text-decoration: none;
        color: #fff;
    }

.login-container .logo {
    text-align: center;
    margin-bottom: 1.5rem;
}

    .login-container .logo img {
        max-width: 360px; /* or whatever fits */
        height: auto;
        display: inline-block;
        border: solid white 10px;
    }

/* Optional: style the Azure button differently */
.btn-login.azure {
    background: #5dade2 !important;
    color: #fff;
}

/* hide the summary container when there are no errors */
.validation-summary-valid {
    display: none !important;
}

/* style it when there are errors */
.validation-summary-errors {
    display: block;
}

.validation-summary {
    display: none;
    background: rgba(255, 50, 50, 0.2);
    padding: .75rem 1rem;
    border-radius: .5rem;
    margin-bottom: 1rem;
}

.validation-message {
    display: block;
    color: #ffdddd;
    font-style: italic;
    margin-top: -.5rem;
    margin-bottom: 1rem;
    font-size: .9rem;
}

.validation-summary > ul {
    display: block; /* only shows when UL is present */
}

/* === CARDS STYLES === */
.card {
    border-radius:10px !important;
}

.action-card {
    border: 1px solid rgba(125,76,191,0.15);
    border-radius: 0.75rem;
    background: #fff;
}

    /* match your existing section headings */
    .action-card .section-heading {
        font-size: 1rem;
        color: #6c53a0;
        font-weight: 600;
    }

    /* remove default header borders/padding bleed */
    .action-card .card-header {
        padding: 0.75rem 1rem;
    }

    /* give the grid some breathing room */
    .action-card .card-body {
        padding: 1rem;
    }

/* APPS PAGE */
.app-logo {
   /* width: 3rem;
    height: 3rem;*/
    display: inline-block;
    object-fit: cover;
    object-position: center center;
    border-radius: 10px;
    vertical-align: middle;
    position:relative;
    z-index: 2;
}


/* === NAV MENU === */
/* subtle translucent nav */
.subtle-nav {
    background: rgba(255,255,255,0.8);
    border-bottom: 1px solid rgba(125,76,191, 0.25);
    padding: 0.5rem 1rem;
}

    /* brand tweaks */
    .subtle-nav .navbar-brand {
        font-weight: 600;
        color: dimgrey;
    }

    .subtle-nav .nav-item {
        margin-right: 0.5rem;
    }

    /* remove default nav-link padding + style */
    .subtle-nav .nav-link {
        display: inline-flex;
        align-items: center;
        position: relative;
        padding: 0.5rem 1.5rem;
        color: #353535;
        font-weight: 500;
        transition: transform 0.2s ease, color 0.2s ease;
    }

        /* icon spacing */
        .subtle-nav .nav-link .bi {
            font-size: 1.2rem;
            vertical-align: middle;
            margin-right: 0.5rem;
        }

        /* hover/focus state */
        .subtle-nav .nav-link:hover,
        .subtle-nav .nav-link:focus {
            color: var(--wave-purple-dark);
            transform: translateY(-2px);
        }

            .subtle-nav .nav-link:hover::after,
            .subtle-nav .nav-link:focus::after {
                opacity: 1;
                transform: translateY(0);
            }

        /* active item */
        .subtle-nav .nav-link.active {
            color: var(--wave-purple-dark);
        }

            .subtle-nav .nav-link.active::after {
                opacity: 1;
                transform: translateY(0);
            }


/* === TABLES === */
/* Wrap your table in a responsive container */
.table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 1rem;
}

/* Base reset */
.table-modern {
    width: 100%;
    border-collapse: separate; /* allows border-radius */
    border-spacing: 0;
    background: #fff;
    font-family: inherit;
    color: #333;
}

    /* Header styling */
    .table-modern thead tr {
        background: linear-gradient(135deg, #7D4CBF80 0%, #A48AC680 100%);
        color:#535353;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        font-size: 0.9rem;
        padding: 0.75rem 1rem;
        border-bottom: 3px solid #8FC4AF;
    }

    .table-modern th {
        padding: 0.75rem 1rem;
        text-align: left;
        font-weight: 500;
        white-space: nowrap;
    }

    /* Body rows */
    .table-modern tbody tr {
        transition: background-color 0.2s ease-in-out;
    }

        .table-modern tbody tr:nth-child(odd) {
            background-color: #f9f7ff; /* very light lavender */
        }

        .table-modern tbody tr:hover {
            background-color: #e8e4fa; /* subtle lavender on hover */
        }

    .table-modern td {
        padding: 0.75rem 1rem;
        border-bottom: 1px solid #ececec;
        vertical-align: middle;
    }

    /* Rounded corners on the first/last cells */
    .table-modern thead th:first-child {
        border-top-left-radius: 0.5rem;
    }

    .table-modern thead th:last-child {
        border-top-right-radius: 0.5rem;
    }

    .table-modern tbody tr:last-child td:first-child {
        border-bottom-left-radius: 0.5rem;
    }

    .table-modern tbody tr:last-child td:last-child {
        border-bottom-right-radius: 0.5rem;
    }

    /* Action links */
    .table-modern a {
        color: #6c53a0;
        text-decoration: none;
    }

        .table-modern a:hover {
            text-decoration: underline;
        }

    /* keep details & edit in purple */
    .table-modern .action-icon.details-icon,
    .table-modern .action-icon.edit-icon {
        color: #535353;
    }

        .table-modern .action-icon.details-icon:hover,
        .table-modern .action-icon.edit-icon:hover {
            color: var(--wave-purple-light);
        }

    /* subtle red for delete */
    .table-modern .action-icon.delete-icon {
        color: rgba(220, 53, 69, 0.7); /* bootstrap’s danger red at 70% opacity */
        transition: color 0.2s ease-in-out;
    }

        .table-modern .action-icon.delete-icon:hover {
            color: #dc3545; /* full bootstrap danger */
        }

    /* icon sizing stays consistent */
    .table-modern .action-icon {
        font-size: 1.2rem;
        margin: 0 0.3rem;
        text-decoration: none;
    }

.table-fixed {
    table-layout: fixed;
    width: 100%;
}

    .table-fixed th,
    .table-fixed td {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

        .table-fixed td:last-child,
        .table-fixed th:last-child {
            text-align: right;
            white-space: nowrap;
        }


.email-column {
    font-weight: 600;
}


/* Mobile adjustments */
@media (max-width: 576px) {
    .table-modern thead {
        display: none; /* hide header on very small */
    }

    .table-modern,
    .table-modern tbody,
    .table-modern tr,
    .table-modern td {
        display: block;
        width: 100%;
    }

        .table-modern tr {
            margin-bottom: 1rem;
        }

        .table-modern td {
            text-align: right;
            padding-left: 50%;
            position: relative;
        }

            .table-modern td::before {
                /* use the data-label attribute to show header labels */
                content: attr(data-label);
                position: absolute;
                left: 1rem;
                width: calc(50% - 2rem);
                font-weight: 500;
                text-align: left;
            }
}


/* Profile Page */
/* Center & size */
/* Container & card */
.profile-card {
    max-width: 600px;
    margin-top: 3rem;
    border-radius: 0.75rem;
    box-shadow: 0 6px 18px rgba(0,0,0,0.08);
    overflow: hidden;
}

    .profile-card .card-body {
        padding: 2rem;
    }

/* Name / email */
.profile-name {
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--wave-purple-dark);
}

/* Definition list tweaks */
.profile-card dt {
    font-weight: 600;
}

.profile-card dd {
    margin-bottom: 1rem;
    line-height: 1.3;
}


/* Role badges */
.role-badge {
    display: inline-block;
    margin-right: 0.3rem;
    margin-bottom: 0.3rem;
    font-size: 0.85rem;
    background: #f3f0ff;
    color: #6c53a0;
    padding: 0.35em 0.6em;
    border-radius: 0.5rem;
}

.btn-logout {
    /* subtle diagonal gradient from very light grey → slightly darker grey */
    background: linear-gradient(135deg, #fafafa 0%, #ededed 100%);
    border: 1px solid #ccc;
    color: #333;
    padding: 0.5rem 1.2rem;
    border-radius: 0.375rem;
    font-weight: 500;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

    .btn-logout:hover,
    .btn-logout:focus {
        background: linear-gradient(135deg, #f2f2f2 0%, #e1e1e1 100%);
        border-color: #bfbfbf;
        color: #111;
    }

.section-heading {
    font-size: 1.1rem;
    font-weight: 600;
    color: #6c53a0; /* deep purple */
    margin-bottom: 1.5rem;
}

.user-details .bi {
    font-size: 20px;
    vertical-align: -.15em;
    color: #535353;
}

.detail-list li {
    margin-bottom: 1rem;
    font-size: 1.05rem;
    color: #3f4040;
}

.user-details .role-badge {
    background: linear-gradient(135deg, #7D4CBF80 0%, #A48AC680 100%);
    color: #1e3721;
    font-weight: 500;
}


/* === FORM STYLES === */
.modern-form {
    display: block;
    width: 100%;
}

    /* Form Groups */
    .modern-form .form-group {
        display: flex;
        flex-direction: column;
        margin-bottom: 1.5rem;
    }

        /* Labels */
        .modern-form .form-group label {
            font-size: 0.9rem;
            font-weight: 300;
            color: var(--pf-dark);
            margin-bottom: 0.4rem;
            text-transform: uppercase;
            letter-spacing: 0.02em;
            text-align: left;
        }

        /* Inputs / Selects / Textareas */
        .modern-form .form-group input,
        .modern-form .form-group select,
        .modern-form .form-group textarea {
            padding: 0.75rem 1rem;
            font-size: 1rem;
            border: 1px solid #ccc;
            border-radius: 0.5rem;
            background: var(--pf-bg);
            transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
            color: #333;
        }

            .modern-form .form-group input::placeholder,
            .modern-form .form-group textarea::placeholder {
                color: #999;
                opacity: 1;
            }

            /* focus state */
            .modern-form .form-group input:focus,
            .modern-form .form-group select:focus,
            .modern-form .form-group textarea:focus {
                outline: none;
                border-color: var(--pf-dark);
                box-shadow: 0 0 0 0.2rem rgba(125,76,191,0.25);
            }

    /* Validation Messages */
    .modern-form .validation-message,
    .modern-form .validation-summary-errors {
        color: var(--pf-error);
        font-size: 0.85rem;
        margin-top: 0.3rem;
    }

    /* Buttons */
    .modern-form .btn {
        padding: 0.75rem 1.25rem;
        font-size: 1rem;
        font-weight: 600;
        border-radius: 0.5rem;
        border: none;
        cursor: pointer;
        transition: background 0.2s ease-in-out;
    }

    .modern-form .btn-primary,
    .modern-form .btn-login {
        display: block;
        width: 100%;
        background: var(--pf-dark);
        color: #fff;
    }

        .modern-form .btn-primary:hover,
        .modern-form .btn-login:hover {
            background: var(--pf-light);
            color: #fff;
        }

    /* optional small helper */
    .modern-form .mb-2 {
        margin-bottom: 0.5rem;
    }

    .modern-form .form-control[readonly],
    .modern-form .form-control:disabled,
    .modern-form .form-select:disabled {
        background-color: rgba(243,232,255,0.8) !important;
        cursor: default;
        pointer-events: none;
        box-shadow: none;
    }

        .modern-form .form-control[readonly]:focus {
            outline: none;
            box-shadow: none;
            background-color: rgba(243,232,255,0.8) !important;
        }

/* make them stack & full-width */
.btn-group-vertical.roles-toggle .btn {
    width: 100%;
    text-align: left;
}

.native-checkbox {
    all: revert;
    appearance: auto;
    -webkit-appearance: auto;
    margin: 0 .5rem 0 0;
}

.icon-circle {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(111,66,193,.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #6f42c1;
    font-size: 1.1rem;
}
