/* ========================================================================================== */
/* resets and overrides */

:root {
    --bs-body-color: #000000;
    --light-green: #B1DBC0;
    --bbs-green: #1A743B;
}

html { font-size: 1rem; }

img { max-width: 100%; }

.breadcrumb { padding: 0; margin-bottom: 0; font-size: .95rem; background-color: transparent; }
.breadcrumb-item, .breadcrumb-item a, .breadcrumb-item.active { color: #000000; }
/*
 svg sprites such as the following do not work in CSS: background-image: url("/_content/CyberPublisher.Web/lib/bootstrap-icons/bootstrap-icons.svg#chevron-right")
 so I am including the svg file in the images directory until I figure out a better way to accomplish this
.breadcrumb-item + .breadcrumb-item:before { display: inline-block; content: ""; margin-right: .5em; background-size: .8em; background-size: contain; background-repeat: no-repeat; background-position: center bottom 40%; background-image: url("/_content/CyberPublisher.Web/lib/bootstrap-icons/icons/chevron-right.svg"); }
*/

.nav-tabs .nav-item + .nav-item .nav-link { margin-left: 2px; }
.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus { background-color: #f9f9f9; }

/* this following property is in lieu of the ability to set the rows attribute in the forms module, 1em is equivalent to the current font size and effectively 3 rows */
.mb-3 textarea { min-height: 3em; }

.table > :not(:first-child) { border-top: none; }
.table > tbody > tr:hover { --bs-table-accent-bg: #f5f5f5; }

.btn-primary { color: #000000; background-color: var(--light-green); border-color: var(--bbs-green); }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .btn-primary:active:focus, .btn-primary.active:focus, .btn-primary:disabled, .btn-primary.disabled { color: #ffffff; background-color: var(--bbs-green); border-color: var(--bbs-green); }
.content-header  .btn-primary { color: #ffffff; background-color: var(--bbs-green); border-color: var(--bbs-green); }
.content-header  .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .btn-primary:active:focus, .btn-primary.active:focus { color: #000000; background-color: var(--light-green); border-color: var(--bbs-green); }

a { text-decoration: none; color: var(--bbs-green); }
a:hover { text-decoration: underline; }
a.btn { text-decoration: none; }

.nav-link { color: var(--bbs-green); }
.nav-link:hover, .nav-link:focus { color: var(--bbs-green); }
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { color: #495057; background-color: #fff; }

.page-link { color: var(--bbs-green); background-color: #fff; border: 1px solid #e5e5e5; }
.page-link:hover, .page-link:focus { text-decoration: none; color: #ca783a; background-color: #f5f5f5; border-color: #e5e5e5; }
.page-item.active .page-link { color: #fff; background-color: var(--bbs-green); border-color: var(--bbs-green); }

h1 { margin-bottom: 1rem; font-size: 1.4rem; font-weight: 600; }
h2, h3, h4, h5, h6 { font-size: 1.2rem; font-weight: 600; }
/* address outline created when using FocusOnNavigate with Blazor */
h1:focus { outline: none; }

/* ========================================================================================== */
/* Bootstrap icons */

.bi { display: inline-block; width: 1.2rem; height: 1.2rem; vertical-align: text-bottom; }


/* ========================================================================================== */
/* components */

/*.nav-tabs.nav-tabs-portlets { margin-bottom: 1rem; }*/
.nav-tabs.nav-tabs-portlets .nav-link { color: #000000; background: none; border: none; border-bottom-color: #E5E5E5; }
.nav-tabs.nav-tabs-portlets .nav-link:hover { border-bottom: solid 3px #E5E5E5; }
.nav-tabs.nav-tabs-portlets .nav-link.active,
.nav-tabs.nav-tabs-portlets .nav-link.active:hover,
.nav-tabs.nav-tabs-portlets .nav-link.active:focus { border: none; background: none; border-bottom: solid 3px var(--bbs-green); }

.link-button { display: inline-block; position: relative; padding: 0; background-color: transparent; border: 0; color: var(--bbs-green); text-decoration: none; font: inherit; cursor: pointer; }
.link-button:hover { text-decoration: underline; }
.link-button:focus { outline: none; }

.link-toolbar { display: flex; padding: 1rem 0; }
.link-toolbar a:before { content: "|"; display: inline-block; margin: 0 5px; }
.link-toolbar a:first-child:before { content: none; }
.link-toolbar a svg { margin-right: 3px; }

.link-toolbar .form-switch { margin-left: 12px; }
.link-toolbar .form-switch:before { content: "|"; display: inline-block; position: absolute; left: -7px; color: var(--bbs-green); }

.link-button-toggle { @include caret(up); }
.link-button-toggle.collapsed { @include caret(down); }

.alert ul { margin-bottom: 0; }
.validation-summary-valid { display: none; }

dl.field-list { display: grid; grid-template-columns: auto minmax(0, 1fr); }
dl.field-list dt { grid-column: 1; margin: 0; font-weight: 600; }
dl.field-list dd { grid-column: 2; margin: 0; padding-left: 2rem; }

.icon-button { padding: 0; margin: 0; border: none; background-color: transparent; color: var(--bbs-green); }
.icon-button:hover { color: #000000; }

.tile { border: solid 1px #dee2e6; padding: .5rem 1rem; border-radius: .375rem; }


/* ========================================================================================== */
/* wraps and header */

html { height: 100%; }
body { height: 100%; }

.page-wrap { display: flex; min-height: 100%; }
.sidebar-wrap { background: #f5f5f5; white-space: nowrap; }
.content-wrap { flex-grow: 1; }

.content-header { min-height: 76px; color: #000000; background: var(--light-green); }
.content-header-title { font-weight: 600; font-size: 1.5rem; }

.content-breadcrumbs { padding: 0.5rem 1.25rem; background-color: #F7F7F7; }
.content { padding: 1.5rem 1.25rem; }
@media screen and (min-width: 992px) {
    .content-breadcrumbs { padding: 0.5rem 2rem; }
    .content { padding: 1.5rem 2rem; }
}


/* ========================================================================================== */
/* sidebar */

.sidebar-wrap i { margin-right: 1rem; }
.sidebar-wrap .bi { margin-right: 1rem; }

.sidebar-header { min-height: 76px; padding: .8rem 2rem; margin: 0 0 1.5rem; background: var(--light-green); }
.sidebar-logo { max-height: 50px;}

/* side nav top level menu */
.sidebar-nav ul { position: relative; list-style: none; padding: 0; margin: 0; }
.sidebar-nav li { position: relative; }
.sidebar-nav li a, 
.sidebar-nav li > span { position: relative; display: block; color: #000000; margin: 0 1rem; padding: 1rem; border-radius: 4px; }

.sidebar-nav li a:hover, 
.sidebar-nav > ul > li > span:hover { text-decoration: none; color: #ffffff; background: var(--bbs-green); }

.sidebar-nav li.current-page > a,
.sidebar-nav li.current-page > span { font-weight: 700; }
.sidebar-nav li .nav-toggle { display: flex; align-items: center; }
/* .sidebar-nav li .nav-toggle-icon { position: absolute; right: 15px; top: 50%; transform: translateY(-50%); margin: 0; } */
.sidebar-nav li .nav-toggle-icon { margin-left: auto; margin-right: 0; width: 1rem; height: 1rem; }
.sidebar-nav li .nav-toggle-text { margin-right: 2rem; }
.sidebar-nav > ul > li > span { cursor: pointer; }

/* side nav sub menus */
.sidebar-nav > ul > li > ul { margin: 0; padding: 0; background: #f9f9f9; border-radius: 4px; border-top: solid 1px #e5e5e5; border-bottom: solid 1px #e5e5e5; }
/*.sidebar-nav ul ul li a, 
.sidebar-nav ul ul li span { margin: 0 1rem; padding: 1rem 1rem; }
.sidebar-nav ul ul ul { padding: 0; }*/

/*.sidebar-nav ul ul li a:hover, 
.sidebar-nav ul ul > li > span:hover { background: #f5f5f5; }*/


/* ========================================================================================== */
/* tables */

.table { 

    --bs-table-accent-bg: transparent;
    --bs-table-striped-color: #000000;
    --bs-table-striped-bg: #f9f9f9;
    --bs-table-active-color: #000000;
    --bs-table-active-bg: rgba(0, 0, 0, .1);
    --bs-table-hover-color: #000000;
    --bs-table-hover-bg: rgba(0, 0, 0, .075);
}

.table th, .table td { color: #000000; padding: .75rem; border-color: #f5f5f5; }

.table-sortable th a { @include caret(up); &::after { color: transparent; } }
.table-sortable th a:hover::after { color: var(--bbs-green); }
.table-sortable th a.sort-asc:after { color: var(--bbs-green); }
.table-sortable th a.sort-asc:hover { @include caret(down); }
.table-sortable th a.sort-desc { @include caret(down); &::after { color: var(--bbs-green); } }
.table-sortable th a.sort-desc:hover { @include caret(up); }


/* ========================================================================================== */
/* Blazor */

.valid.modified:not([type=checkbox]) { outline: 1px solid #26b050; }
.invalid { outline: 1px solid #e50000; }
.validation-message { color: #e50000; }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

.blazor-error-boundary::after { content: "An error has occurred." }