@import url(variables.css);

/* Exams header: single white bar (nyulaw navbar), logo left + Dashboard / Admin / Log Out right */

/* Navbar content: max-width 1615px, centered (purple bar below stays full width) */
.navbar-wrap {
  width: 100%;
  max-width: 1615px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
  box-sizing: border-box;
}

@media (min-width: 768px) {
  .navbar-wrap {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .navbar-wrap {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

/* Login form: same horizontal padding as navbar so content lines up on mobile and up */
.login-form-wrap {
  padding-left: 1rem;
  padding-right: 1rem;
  box-sizing: border-box;
}

@media (min-width: 768px) {
  .login-form-wrap {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .login-form-wrap {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

/* Mobile: show hamburger in navbar brand (nyulaw shows menu when .navbar-menu.is-active) */
@media screen and (max-width: 768px) {
    /* Prevent X icon from being clipped on the right */
    header[aria-label="branding-and-main-menu"] .navbar-wrap,
    header .navbar.primary,
    header .navbar.primary .navbar-content,
    header .navbar.primary .navbar-brand {
        overflow: visible;
    }
    header .navbar.primary .navbar-burger {
        overflow: visible;
        flex-shrink: 0;
    }

    header .navbar.primary {
        position: relative;
        width: 100%;
    }

    header .navbar.primary .navbar-brand {
        flex: 1 1 auto;
        display: flex;
        align-items: center;
        min-width: 0;
    }

    /* Open menu: full width; same left/right padding as navbar so items align with logo */
    header .navbar.primary .navbar-menu.is-active {
        left: 0;
        right: 0;
        width: 100%;
        padding-left: 1rem;
        padding-right: 1rem;
        box-sizing: border-box;
    }
    /* Match logo alignment: navbar-wrap is 1rem, logo item has 0.75rem → content at 1.75rem; menu gets 1rem so item text at 1rem + 0.75rem = 1.75rem */
    header .navbar.primary .navbar-menu.is-active .navbar-end .navbar-item,
    header .navbar.primary .navbar-menu.is-active .navbar-end .navbar-link,
    header .navbar.primary .navbar-menu.is-active .navbar-end .navbar-logout-form .navbar-link {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    /* Even spacing for three lines: reset nyulaw’s absolute positioning so flex + margin control layout */
    header .navbar.primary .navbar-burger span {
        position: relative;
        top: auto;
        bottom: auto;
        left: auto;
        margin: 4px 0;
    }
    header .navbar.primary .navbar-burger span:nth-child(2) {
        display: none !important;
    }

    /* When open: use Font Awesome X so it’s a full, centered icon that won’t clip */
    header .navbar.primary .navbar-burger-x {
        display: none;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        font-size: 1.375rem;
        color: inherit;
        pointer-events: none;
    }
    header .navbar.primary .navbar-burger.is-active .navbar-burger-x {
        display: block;
    }
    header .navbar.primary .navbar-burger.is-active span {
        display: none !important;
    }
}

/* Mobile: align login form left edge with hamburger menu items (Dashboard / Log out at 1.75rem) */
@media screen and (max-width: 768px) {
    .login-form-wrap {
        padding-left: 1.75rem;
        padding-right: 1rem;
    }
}

/* Desktop: hide hamburger, show menu; allow nav items to wrap so they don't go off-screen */
@media screen and (min-width: 769px) {
    header .navbar.primary .navbar-burger {
        display: none !important;
    }

    header .navbar.is-white.primary {
        display: flex;
        flex-direction: row;
        align-items: center;
        flex-wrap: nowrap;
    }

    header .navbar.primary .navbar-content {
        flex-shrink: 0;
        display: flex;
        align-items: center;
    }

    header .navbar.primary .navbar-menu {
        display: flex;
        flex-grow: 1;
        flex-shrink: 1;
        min-width: 0;
        justify-content: flex-end;
        align-items: center;
        overflow: visible;
    }

    /* Allow nav items to stack/wrap on smaller viewports before hamburger; dropdowns stay under their trigger */
    header .navbar.primary .navbar-end {
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 0;
        min-width: 0;
        overflow: visible;
    }

    /* Each dropdown trigger is its own positioning context so dropdown sits directly below when wrapped */
    header .navbar.primary .navbar-item.has-dropdown {
        position: relative;
    }

    /* Keep dropdown aligned under its category when items wrap; prevent clipping */
    header .navbar.primary .navbar-item.has-dropdown .navbar-dropdown {
        left: 0;
        min-width: 10rem;
    }

    /* Hover dropdowns from 769px up (nyulaw only enables hover at 1024px; when nav wraps, hover was broken) */
    header .navbar.primary .navbar-item.has-dropdown:hover .navbar-dropdown,
    header .navbar.primary .navbar-item.has-dropdown.is-active .navbar-dropdown {
        display: block;
    }
    header .navbar.primary .navbar-item.has-dropdown .navbar-dropdown {
        position: absolute;
        top: 100%;
        z-index: 30;
    }
}

/* Icon-above-label nav items (same pattern as PILC Frontend-Project) */
header .navbar.primary .navbar-end.navbar-end-icon-stack {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 0.25rem;
}

header .navbar.primary .navbar-item-icon .navbar-icon-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding: 0.25rem 0;
}

header .navbar.primary .navbar-item-icon .navbar-icon {
    font-size: 1.25rem;
    color: inherit;
    flex-shrink: 0;
}

header .navbar.primary .navbar-item-icon .navbar-icon-label {
    font-size: 0.75rem;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
    color: inherit;
}

/* Slightly smaller icon/label when space is tight so items fit before hamburger */
@media screen and (min-width: 769px) and (max-width: 1399px) {
    header .navbar.primary .navbar-item-icon .navbar-icon {
        font-size: 1.1rem;
    }
    header .navbar.primary .navbar-item-icon .navbar-icon-label {
        font-size: 0.7rem;
    }
    header .navbar.primary .navbar-item-icon .navbar-icon-stack {
        padding: 0.2rem 0;
    }
}

/* Thin purple line below navbar as color divider (match dev-pilc.nyulaw.net) */
header[aria-label="branding-and-main-menu"] {
    position: relative;
}

header[aria-label="branding-and-main-menu"]::after {
    content: "";
    display: block;
    height: 0.67rem; /* ~6px thin line */
    background-color: var(--nyu-violet);
    width: 100%;
}

/* Navbar item hover underline: position at bottom of item (nyulaw uses bottom: 1rem which sits too high) */
header .navbar .navbar-item:not(.navbar-logo):not(.navbar-title):not(.has-dropdown)::after,
header .navbar .navbar-link:not(.user-pill):not(.auth-user-icon)::after {
    bottom: 0;
}

/* Logo size in header */
header .navbar-item.navbar-logo img {
    height: 40px;
    width: auto;
}

/* Log out: form and button as navbar-style link (no button chrome) */
.navbar-item--logout {
    padding: 0;
}

.navbar-logout-form {
    margin: 0;
    display: flex;
    align-items: stretch;
}

/* Disable nyulaw’s animated ::after underline on the logout button so the bar doesn’t show on hover */
.navbar-link--button::after {
    display: none !important;
}

.navbar-link--button {
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
    font-size: inherit;
    color: inherit;
    padding: 0.5rem 0.75rem;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
}

/* When logout button contains icon stack, center the stack */
.navbar-item--logout .navbar-link--button .navbar-icon-stack {
    align-items: center;
}

.navbar-link--button:hover,
.navbar-link--button:focus {
    color: var(--nyu-violet);
    text-decoration: underline;
    outline: none;
}

/* Default icon sizing (used elsewhere) */
.icon {
    height: 1rem;
    width: auto;
    margin-right: 0.5rem;
}

/* Project card styling: 3px border, 10px radius */
.card.nyulaw-card,
.dashboard-panel.nyulaw-card {
    border: 3px solid #D6D6D6;
    border-radius: 10px;
}
