html,
body {
    width: 100vw;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
    justify-content: center;
    font-family: 'Calibri'
}

.centered,
#pageheader {
    min-width: 100px;
    width: 60%;
    text-align: left;
    margin-left: auto;
    margin-right: auto
}

#footer {
    margin-bottom: 15px;
}

#header {
    border: none;
    width: 100vw;
    /*full width across the screen*/
    /* background-color: white CHATS */
    background-color: #9ba1db
}

#header-combo {
    display: flex;
    align-items: center;
}

#header-logo {
    width: 100px;
}

#header-title {
    justify-content: left;
    padding: 30px 0px 30px 30px;
    font-family: Calibri;
    color: #00305e;
    /* color: #004280; CHATS */
    font-weight: bold;
    font-size: 28px
}

/* banner image, usually a collage of ITS images*/
#banner {
    width: 100%
}

#pageheader {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}

#pageheader-left {
    display: flex;
    justify-content: left;
    align-items: baseline;
}

.bullet {
    width: 24px;
    height: 23px
}

h1 {
    font-family: "niveau-grotesk", Helvetica, sans-serif;
    font-size: 28px;
    letter-spacing: 0px;
    word-spacing: 0px;
    /* color: #ff6d22; CHATS */
    color: #141414;
    font-weight: 700;
    text-decoration: none;
    font-style: normal;
    font-variant: normal;
    text-transform: none;
    margin-top: 15px
}

/****** CHATS
.buttonFeedback {
        background-color:#f0efea;
	border-radius:33px;
	border:1px solid #4e6096;
	display:inline-block;
	cursor:pointer;
        color:#00305e;
	font-family:Arial;
	font-size:15px;
	padding:10px 20px;
        margin: 10px;
	text-decoration:none;
}
.buttonFeedback:hover {
	background-color:#FDD6BD; 
}

******/

.buttonFeedback {
    background-color: #273a5e;
    border-radius: 33px;
    border: 1px solid #4e6096;
    display: inline-block;
    cursor: pointer;
    color: #ffffff;
    font-family: Arial;
    font-size: 15px;
    padding: 10px 20px;
    margin: 10px;
    text-decoration: none;
}

.buttonFeedback:hover {
    background-color: #476e9e;
}

.buttonFeedback:active {
    position: relative;
    top: 1px;
}

.buttonFeedback:focus-visible {
outline: 3px solid #b89ee9;                     
    box-shadow: 0 0 0 3px #000000;
}

#footer {
    font-weight: bold;
}

#pageheader-hr {
    /* border: 2px solid #445c6d; CHATS */
    border: 2px solid rgb(139, 139, 175);
    width: 60%
}

/*
#content {
    height: calc(100%-100px)
}

/*************************************************
************  table specific items  **************
************                        **************
**************************************************/

.alternate-row-color tr:nth-of-type(even) {
    /* background-color: #e9e7e1; CHATS */
    background-color: #e3e8f0;
}

.grid1 .col1 {
    width: 100%
}

.grid2 .col1 {
    width: 40%
}

.grid3 .col1 {
    width: 25%;
}

.grid3 .col2 {
    width: 40%;
}

.grid4 .col1 {
    width: 25%
}

.grid4 .col2 {
    width: 25%;
}

.grid4 .col3 {
    width: 25%;
}

.grid34 .col1 {
    width: 25%;
}

.grid34 .col2 {
    width: 25%
}

.grid34 .col3 {
    width: 50%
}

#triplesTable .col2,
#triplesTable .col3 {
    width: 25%;
}

#table-wrapper {
    /*height: 90vh;*/
    width: 100%;
    overflow: auto;
    border-bottom-style: ridge;
    border-width: thin;
}

#table-scroll {
    overflow-y: auto;
    height: 100%
}

thead {
    position: sticky;
    top: 0;
    /* background: #004280; CHATS */
    /* color:white; CHATS */
    background: #a7c0e6
}

table {
    border: .5px solid black;
    border-spacing: 0px;
    border-collapse: separate;
    width: 100%;
}

th,
td {
    border: .5px solid black;
    padding: 3px 7px;
}

/* MSI */
/** anchors inside table **/

table td a {
    color: #004280;
    text-decoration: none;
    font-weight: normal;
}

table td a:hover {
    color: #004280;
    text-decoration: underline;
    font-weight: normal;
}

/** borders on sp page images **/

td.spinstanceTable {
    border: none;
    border-spacing: 0px;
}

/* end MSI */

#opsconTable {
    border-collapse: collapse
}

.programAreaRow {
    background-color: #bddcee;
}


/*************************************************
**********  index.htm specific items  ************
************    not carousel        **************
**************************************************/
.button-index {
    background-color: #f0efea;
    border-radius: 16px;
    border: 1px solid #4e6096;
    display: inline-block;
    cursor: pointer;
    color: black;
    font-family: "calibri";
    font-size: 16px;
    padding: 16px 50px;
    text-decoration: none;
    width: 300px
}

.button-index:hover {
    background-color: #FDD6BD;
}

.button-index:active {
    position: relative;
    top: 1px;
}

#index-link {
    display: flex;
    justify-content: flex-start;
}

#index-link .right-index {
    justify-content: flex-end;
    margin: 2px;
    padding: 5px;
}

/*************************************************
**********  index.htm specific items  ************
************      carousel          **************
**************************************************/

:root {
    --gap: 16px;
    --card-w: 260px;
}

.carousel-container {
    display: flex;
    justify-content: center;
    padding: 2px 0;
}

.slider {
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    /* keeps it tidy */
}

/* Horizontal scroller */
.cards {
    display: flex;
    gap: var(--gap);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    padding: 16px;
    scroll-padding: 16px;
    /* snap nicely with padding */
    overscroll-behavior-x: contain;
    /* prevent rubber-band chaining */
}

/* Optional: hide scrollbar (WebKit only) */
.cards::-webkit-scrollbar {
    height: 8px;
}

.cards::-webkit-scrollbar-thumb {
    background: #c7c7c7;
    border-radius: 4px;
}

.cards::-webkit-scrollbar-track {
    background: transparent;
}

/* Cards */
.card {
    flex: 0 0 var(--card-w);
    /* multiple visible at once */
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .1);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 16px;
    scroll-snap-align: start;
    /* snap each to left edge */
    box-sizing: border-box;
    text-align: left;
    transition: transform .2s ease, box-shadow .2s ease;
}

.card:hover {
    transform: translateY(-4px);
    box-shadow: 0 6px 14px rgba(0, 0, 0, .15);
}

/* Title */
.card-top h3 {
    margin: 0;
    font-size: 1.1rem;
    color: #003366;
    border-bottom: 2px solid #e8e8e8;
    padding-bottom: 8px;
}

/* Description + Button */
.card-bottom {
    margin-top: auto;
}

.card-bottom p {
    font-size: .95rem;
    color: #444;
    margin: 12px 0;
}

.card-btn {
    display: inline-block;
    background: rgb(155, 161, 219);
    color: #00305e;
    text-decoration: none;
    font-size: .9rem;
    padding: 8px 14px;
    border-radius: 6px;
    transition: background .2s ease;
}

.card-btn:hover {
    background: #00305e;
    color: rgb(155, 161, 219)
}

/* Optional: subtle edge fades to hint scrolling */
.slider::before,
.slider::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 24px;
    pointer-events: none;
    /* don't block scroll */
}

.slider::before {
    left: 0;
    background: linear-gradient(to right, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
}

.slider::after {
    right: 0;
    background: linear-gradient(to left, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
}

/*************************************************
**********  planobj.htm specific items  **********
************      carousel          **************
**************************************************/

#mapping-img {
    width: 70%;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

figcaption {
    text-align: center;
    font-weight: bold;
}
/*************************************************
**********  search bar stuff  ***********
************                        **************
**************************************************/

.site-search {
    display: flex;
    align-items: center;
    gap: 3px;         
}

.site-search input[type="search"] {
    flex: 1 1 auto;   /* let it size nicely */
}

.site-search button {
    white-space: nowrap;
}


/*************************************************
**********  search results page stuff  ***********
************                        **************
**************************************************/

#search-page-site-search {
    position: static;

}

#search-page-search-bar {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
}

#search-page-search-bar p {
    margin: 0px 5px;
}

#results {
    list-style: none;
    padding-left: 0;
    margin: 0
}

#results li {
    background-color: #eef3f9;
    margin: 15px 0px;
    border-bottom: 1px solid #ddd;
    padding: 2px 5px;
}

#results li a {
    font-weight: bold;
}

#results p {
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    /* show up to 3 lines */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.4em;
    max-height: calc(1.4em * 3);
}

mark {
    background-color: rgb(165, 195, 255)
}

/* Suggestion chips (optional) */
.suggest-chip {
    display: inline-block;
    padding: 0.25rem 0.6rem;
    margin: 0.15rem 0.25rem 0 0;
    border: 1px solid #ddd;
    border-radius: 9999px;
    text-decoration: none;
    font-size: 0.9rem;
}

.suggest-chip:hover {
    background: #f6f6f6;
}

/*************************************************
**** conformance.content.htm specific items  *****
********                               ***********
**************************************************/

#conformance-table {
    border: hidden;
    border-collapse: collapse;
}

#conformance-table tr {
    border-bottom: 1px solid black;
    border-top: 1px solid black;
}

#conformance-table td {
    border: none;
}

.conformance-item {
    display: inline-block;
    color: #444;
    border: 1px solid #CCC;
    background: #DDD;
    box-shadow: 0 0 5px -1px rgba(0, 0, 0, 0.2);
    cursor: pointer;
    vertical-align: middle;
    width: 200px;
    padding: 5px;
    margin: 8px;
    text-align: center;
}

.conformance-item:active {
    color: #ff6d22;
    box-shadow: 0 0 5px -1px rgba(0, 0, 0, 0.6);
}

/*************************************************
************ how-to specific items  **************
********                               ***********
**************************************************/

.how-to-screenshot {
    width: 100%;
}

/*************************************************
*********** spinstance specific items  **************
********                               ***********
**************************************************/

#spinstance-table {
    border: 0px;
    table-layout: auto;
    width: 100%;
}

#spinstance-table-left {
    max-width: 100px;
}

#spinstance-table-center {
    text-align: center;
    max-width: 100%;
}

#spinstance-table-right {
    text-align: right;
    max-width: 100px;
}

#spinstance-img {
    width: 100%;
    height: auto;
}



/*************************************************
********** projdetail specific items  ************
********                               ***********
**************************************************/

#table4 .col1,
#table4 .col2,
#table4 .col3,
#table4 .col4 {
    width: 25%;
    display: table-cell;
}

/*************************************************
************ opscon specific items  **************
********                               ***********
**************************************************/

#opscon-table .col3 {
    width: 5%
}

#opscon-table>#functional-area {
    vertical-align: center;
}

/*************************************************
**********  navigation menu bar stuff  ***********
************                        **************
**************************************************/
#menu {
    border: none;
    width: 100vw;
    height: auto;
    text-align: center;
}

nav {
    overflow: hidden;
    background-color: #f0efea;
    width: 100%;
    height: auto;
    text-align: center;
}

#nav-ul-wrapper {
    width: 100%;
    text-align: center;
}

nav>div>ul {
    list-style: none;
    margin: 0px auto;
    padding: 0;
}

nav>div>ul>li {
    display: inline-block;
    text-align: left;
}

/* all menu links and dropdown buttons */
nav a,
.dropbutton {
    text-decoration: none;
    color: #001574;
    font-size: 16px;
    background-color: inherit;
    font-family: inherit;
    padding: 14px 12px;
    margin: 0 1px
}

/* top level links */
nav>div>ul>li>a {
    display: inline;
    position: relative;
}

/* formats the entire dropdown unit 
.has-submenu {
    overflow: hidden;
}

/* formats the links within the dropdown unit */
.has-submenu a {
    display: block;
    background-color: inherit;
    font-family: inherit
}

/* formats the dropdown buttons */
.has-submenu .dropbutton {
    border: none
}

/* highlights the navigation bar item being selected */
nav a:hover,
.has-submenu:hover .dropbutton {
    /* background-color: #FDD6BD CHATS */
    /* background-color: rgb(204, 247, 200) ORIGINAL MASSDOT */
    background-color: #e3e8f0;
}

/* formats the dropdown menu box */
.dropdown-content {
    display: none;
    position: relative;
    background-color: #f0f0ef;
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
    z-index: 1;
    padding: 14px 10px;
}

/* formats the dropdown list */
.dropdown-content li {
    float: none;
    padding: 12px 4px;
    text-decoration: none;
    display: inline;
    position: relative
}

/* sizing the links in the dropdown to fit the whole width*/
.dropdown-content li a {
    width: 90%
}

/* adds a background color to the link hovered over in the dropdown menu */
.dropdown-content a:hover {
    /* background-color: #FDD6BD; CHATS */
    /* background-color: rgb(204, 247, 200) ORIGINAL MASSDOT */
    background-color: #e3e8f0;
}

/* keeps dropdown menu visible when mousing over or focusing on dropdown button or submenu */
.has-submenu:hover .dropdown-content,
.has-submenu:focus-within .dropdown-content {
    display: block;
    position: absolute
}

.video-wrapper {
    width: 100%;
    aspect-ratio: 16 / 9;
}

.video-wrapper iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.form-row { margin: 12px 0; }
label { display: block; margin-bottom: 4px; }
input, textarea { width: 100%; max-width: 60rem; }

.skip-link {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.skip-link:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 10px;
  color: rgb(8, 19, 56);
}

.context-diagram img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}


@media screen and (max-width: 1300px) {

    .centered,
    #pageheader {
        width: 90%;
        /* Adjust width for smaller screens */
    }

}

@media only print {
    .centered {
        width: 100%;
    }

    #table-wrapper {
        display: block;
        width: auto;
        height: auto;
        overflow: visible;
    }
}