/* With all the colors being here, you will be able to do Themes for your website.*/
/* Added in on April 24, 2026 */
/* By: Wayne Barron /cffcs.com */

#HeaderSpacer {
  height: 10px;	
}


.breadcrumb {
    text-align: center; /*Removed from body and placed here where it belongs.*/
	/*centering*/
	display: inline-block;
	box-shadow: 0 0 15px 1px rgba(0, 0, 0, 0.35);
	overflow: hidden;
	border-radius: 5px;
	/*Lets add the numbers for each link using CSS counters. flag is the name of the counter. to be defined using counter-reset in the parent element of the links*/
	counter-reset: flag; 
}

.breadcrumb a {
	text-decoration: none;
	outline: none;
	display: block;
	float: left;
	font-size: 12px;
	line-height: 36px;
	color: white;
	/*need more margin on the left of links to accomodate the numbers*/
	padding: 0 10px 0 60px;
	background: var(--breadcrumb-a);
	background: var(--breadcrumb-linear);
	position: relative;
}
/*since the first link does not have a triangle before it we can reduce the left padding to make it look consistent with other links*/
.breadcrumb a:first-child {
	padding-left: 46px;
	border-radius: 5px 0 0 5px; /*to match with the parent's radius*/
}
.breadcrumb a:first-child:before {
	left: 14px;
}
.breadcrumb a:last-child {
	border-radius: 0 5px 5px 0; /*this was to prevent glitches on hover*/
	padding-right: 20px;
}

/*hover/active styles*/
.breadcrumb a.active, .breadcrumb a:hover{
	background: var(--breadcrumb-active);
	background: var(--breadcrumb-linear);
}
.breadcrumb a.active:after, .breadcrumb a:hover:after {
	background: var(--breadcrumb-hoverBG);
	background: var(--breadcrumb-hoverBG-linear);
}

/*adding the arrows for the breadcrumbs using rotated pseudo elements*/
.breadcrumb a:after {
	content: '';
	position: absolute;
	top: 0; 
	right: -18px; /*half of square's length*/
	/*same dimension as the line-height of .breadcrumb a */
	width: 36px; 
	height: 36px;
	/*as you see the rotated square takes a larger height. which makes it tough to position it properly. So we are going to scale it down so that the diagonals become equal to the line-height of the link. We scale it to 70.7% because if square's: 
	length = 1; diagonal = (1^2 + 1^2)^0.5 = 1.414 (pythagoras theorem)
	if diagonal required = 1; length = 1/1.414 = 0.707*/
	transform: scale(0.707) rotate(45deg);
	/*we need to prevent the arrows from getting buried under the next link*/
	z-index: 1;
	/*background same as links but the gradient will be rotated to compensate with the transform applied*/
	background: var(--breadcrumb-afterBG);
	background: var(--breadcrumb-afterlinear);
	/*stylish arrow design using box shadow*/
	box-shadow: 
		2px -2px 0 2px rgba(0, 0, 0, 0.4), 
		3px -3px 0 2px rgba(255, 255, 255, 0.1);
	/*
		5px - for rounded arrows and 
		50px - to prevent hover glitches on the border created using shadows*/
	border-radius: 0 5px 0 50px;
}


/*we dont need an arrow after the last link*/
.breadcrumb a:last-child:after {
	content: none;
}
/*we will use the :before element to show numbers*/
.breadcrumb a:before {
	content: counter(flag);
	counter-increment: flag;
	/*some styles now*/
	border-radius: 100%;
	width: 20px;
	height: 20px;
	line-height: 20px;
	margin: 8px 0;
	position: absolute;
	top: 0;
	left: 30px;
	background: var(--breadcrumb-a);
	background: var(--breadcrumb-beforelinear);
	font-weight: bold;
}


.flat a, .flat a:after {
	background: var(--breadcrumb-flatBG);
	color: var(--breadcrumb-flatC);
	transition: all 0.7s;
}
.flat a:before {
	background: var(--breadcrumb-flatBGbefore);
	box-shadow: 0 0 0 1px #00c;
}
.flat a:hover, .flat a.active, 
.flat a:hover:after, .flat a.active:after{
	background: var(--breadcrumb-flatBGafter);
}


 /*=======================Sub-Category List=======================*/
.elegant-list {
  display: grid;
  /* Creates two equal columns */
  grid-template-columns: 1fr 1fr; 

  list-style: none;
  padding: 0;
}

/* Elegant logic: If the last item is also an "odd" item, make it span 2 columns */
.list-item:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.list-item {
  background-color: var(--list-bg);
  border: 1px solid var(--item-border); /* Changed to full border for 'card' look */
  padding: 20px;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.list-item:hover {
  background-color: var(--list-bg-hover); /* Very subtle tint */
}

.item-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
}

.item-title {
  font-weight: 700;
  color: var(--title-color);
  font-size: 1.1rem;
}

.item-count {
  font-size: 0.85rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 6px;
  background-color: var(--count-bg);
  color: var(--accent-color);
}

.item-desc {
  color: var(--desc-color);
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0;
}

li.list-item a.SubCatLinks:hover {
  cursor: pointer; /* Ensures the cursor changes to a pointer everywhere in the li */
}
li.list-item  {
  position: relative; /* Establish a positioning context for the absolute pseudo-element */
  /* other styling for li */
}

li.list-item a.SubCatLinks {
  position: static; /* Ensure the link itself behaves normally */
  /* other styling for a */
}

li.list-item a.SubCatLinks::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

@media (max-width: 600px) {
  .elegant-list {
    grid-template-columns: 1fr;
  }
  /* Ensure the last item behaves normally in a single column */
  .list-item:last-child:nth-child(odd) {
    grid-column: auto;
  }
}
 /*=======================Sub-Category List=======================*/
 
 
 
 /*==================Categories/Subs====================*/
 .wrap{
width:85%;
margin:25px auto;
}

.CatSubtitle{
padding:18px;
background:#fbfbfb;
border-radius:14px;
margin-bottom:20px;
}

.kb-grid{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:16px;
}

.CatSubTagLinks{
background:var(--panel);
border-radius:14px;
overflow:hidden;
border:1px solid rgba(0,0,0,.05);
transition:.25s;
box-shadow:0 1px 3px rgba(0,0,0,.03);
padding: 10px;
}

.TagLinks:hover{
transform:translateY(-1px);
box-shadow:0 8px 18px rgba(0,0,0,.06);
}

.TagLinks a{
display:block;
padding:20px;
text-decoration:none;
color:#666;
}

.card{
    display:grid;
    grid-template-columns:minmax(145px, 185px) 1fr;
    column-gap:24px;
    align-items:center;
    min-height:110px;
}

.left{
flex:0 0 160px;
}

.kb-title{
font-size:20px;
font-weight:600;
margin-bottom:8px;
}

.kb-count{
font-size:13px;
opacity:.7;
display:inline-block;
padding:5px 10px;
border-radius:30px;
background:rgba(0,0,0,.01);
}

.right{
    justify-self:end;
    max-width:360px;
    text-align:right;
    font-size:13px;
    line-height:1.6;
    color:var(--soft);
}

.kb-grid>.TagLinks:last-child:nth-child(odd){
grid-column:span 2;
}

@media(max-width:1050px){

    .card{
        grid-template-columns:1fr;
        row-gap:12px;
        align-items:start;
    }

    .right{
        justify-self:start;
        max-width:none;
        text-align:left;
    }

}

@media(max-width:850px){

.kb-grid{
grid-template-columns:1fr;
}

.kb-grid>.TagLinks:last-child:nth-child(odd){
grid-column:auto;
}

.card{
flex-direction:column;
align-items:flex-start;
}

.right{
text-align:left;
}

.wrap{
width:95%;
}

}
 /*==================Categories/Subs====================*/
 
 /* =========================================================
   CFF Coding Source - Database Paging Rows
   ========================================================= */

:root{
    --header-bg:#f8f8f8;
    --panel-bg:#fcfcfc;
    --panel-bg-alt:#ffffff;
    --text-main:#555;
    --text-soft:#777;
    --link-color:#666;
    --border-soft:rgba(0,0,0,.055);
    --shadow-soft:0 1px 4px rgba(0,0,0,.035);
    --shadow-hover:0 8px 18px rgba(0,0,0,.065);
}

*{
    box-sizing:border-box;
}

.cff-page-wrap{
    width:85%;
    margin:26px auto;
}

.cff-list-header{
    background:#fbfbfb;
    border:1px solid var(--border-soft);
    border-radius:16px;
    padding:18px 20px;
    margin-bottom:16px;
    box-shadow:var(--shadow-soft);
}

.cff-list-header h1{
    margin:0;
    font-size:24px;
    font-weight:600;
    color:#555;
}

.cff-list-tools{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin:16px 0;
    padding:12px 14px;
    background:#fcfcfc;
    border:1px solid var(--border-soft);
    border-radius:14px;
}

.cff-result-count,
.cff-page-size{
    font-size:13px;
    color:#777;
}

.cff-result-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.cff-result-row{
    margin:0;
    padding:0;
    background:var(--panel-bg);
    border:1px solid var(--border-soft);
    border-radius:15px;
    overflow:hidden;
    box-shadow:var(--shadow-soft);
    transition:transform .22s ease, box-shadow .22s ease, background-color .22s ease;
}

.cff-result-row:nth-child(even){
    background:var(--panel-bg-alt);
}

.cff-result-row:hover{
    transform:translateY(-1px);
    box-shadow:var(--shadow-hover);
}

.cff-result-row a,
.cff-result-row a:link,
.cff-result-row a:visited{
    min-height:92px;
    display:grid;
    grid-template-columns:52px 1fr 90px;
    gap:16px;
    align-items:center;
    padding:16px 18px;
    color:var(--link-color);
    text-decoration:none;
}

.cff-result-number{
    width:38px;
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(0,0,0,.035);
    border:1px solid rgba(0,0,0,.035);
    color:#777;
    font-size:13px;
    font-weight:600;
}

.cff-result-main h3{
    margin:0 0 6px 0;
    font-size:18px;
    line-height:1.3;
    font-weight:600;
    color:#555;
}

.cff-result-main p{
    margin:0;
    color:#777;
    font-size:13px;
    line-height:1.55;
}

.cff-result-action{
    justify-self:end;
    font-size:13px;
    color:#777;
    white-space:nowrap;
}

.cff-arrow{
    margin-left:6px;
    opacity:.55;
}

.cff-empty{
    padding:18px 20px;
    background:#fcfcfc;
    border:1px solid var(--border-soft);
    border-radius:14px;
    color:#777;
}

.cff-pager{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    margin:22px 0 8px 0;
    flex-wrap:wrap;
}

.cff-pager a,
.cff-pager span{
    min-width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 11px;
    border-radius:12px;
    background:#fcfcfc;
    border:1px solid var(--border-soft);
    color:#666;
    text-decoration:none;
    font-size:13px;
}

.cff-pager .is-current{
    background:#f2f2f2;
    font-weight:700;
}

.cff-pager .is-disabled{
    opacity:.45;
    pointer-events:none;
}



.wrap{
border: 1px double var(--border-soft); position: relative; padding: 20px; margin-top: 10px; border-radius: 5px; box-shadow: 1px 1px 1px #888;
}
.h1{
position: absolute; top: -0.7em; left: 15px; background: #fff; padding: 0 5px; font-size: 15pt; color: var(--fontColor); 
}


@media(max-width:850px){

    .cff-page-wrap{
        width:95%;
    }

    .cff-list-tools{
        align-items:flex-start;
        flex-direction:column;
    }

    .cff-result-row a,
    .cff-result-row a:link,
    .cff-result-row a:visited{
        grid-template-columns:42px 1fr;
        gap:12px;
    }

    .cff-result-action{
        grid-column:2;
        justify-self:start;
        margin-top:2px;
    }

}

@media(max-width:560px){

    .cff-result-row a,
    .cff-result-row a:link,
    .cff-result-row a:visited{
        grid-template-columns:1fr;
    }

    .cff-result-number{
        display:none;
    }

    .cff-result-action{
        grid-column:auto;
    }

}
        /* The parent wrapper container */
        .divwrap {
            border: 1px double #000;
            position: relative;
            padding: 10px;
            margin: 10px 0 0 0;
            width: 100%; /* Changed from 99% to 100% for perfect fit */
            box-sizing: border-box;
        }

        /* The label positioned on the border */
        .divwrap > span {
            position: absolute;
            top: -0.7em;
            left: 15px;
            background: #fff;
            padding: 0 5px;
            font-weight: bold;
        }
		
.cff-img-modal {
    display:none;
    position:fixed;
    z-index:99999;
    left:0;
    top:0;
    width:100%;
    height:100%;
    overflow:auto;
    background:rgba(0,0,0,.86);
    text-align:center;
    padding:35px 15px;
    box-sizing:border-box;
}

.cff-img-modal-box {
    display:inline-block;
    max-width:95%;
    text-align:left;
}

.cff-img-modal-img {
    display:block;
    max-width:100%;
    max-height:78vh;
    margin:0 auto;
    border-radius:6px;
    box-shadow:0 0 22px rgba(0,0,0,.65);
}

.cff-img-modal-caption-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:8px;
    padding:2px 2px;
    background:#f5f5f5;
    color:#121212;
    border-radius:5px;
    box-sizing:border-box;
    height: 50px;
}

.cff-img-modal-caption {
    flex:1;
    font-size:14px;
    line-height:1.4;
    word-break:break-word;
    color:var(--title-color) !important;
}

.cff-img-modal-close {
    flex:0 0 auto;
    border:1px solid #999;
    background:#ffffff;
    color:#222;
    padding:6px 12px;
    border-radius:4px;
    cursor:pointer;
    font-size:13px;
}

.cff-img-modal-close:hover {
    background:#e9e9e9;
}


.cff-article-card {
    background: #ffffff;
    border: 1px solid #d9e2ec;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}


.Tags{
list-style-type:none; width: 75%; margin-left: auto; margin-right: auto;
}

.cff-author-article-stats {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin:10px 0 14px 0;
    padding:8px 10px;
    border:1px solid var(--border-color, #d6d6d6);
    background:var(--panel-bg, #f8f8f8);
    color:var(--text-color, #222);
    border-radius:6px;
    font-size:13px;
    line-height:1.3;
}

.cff-author-badge {
    padding:4px 8px;
    border-radius:4px;
    background:var(--title-color, #333);
    color:var(--title-text-color, #fff);
    font-weight:bold;
    font-size:12px;
    letter-spacing:.2px;
}

.cff-stat-item {
    display:inline-flex;
    align-items:center;
    gap:5px;
}

.cff-stat-label {
    color:var(--muted-text-color, #666);
    font-weight:bold;
}

.cff-stat-value {
    color:var(--title-color, #111);
    font-weight:bold;
}

.cff-stat-divider {
    width:1px;
    height:18px;
    background:var(--border-color, #ccc);
}

@media(max-width:600px) {
    .cff-author-article-stats {
        align-items:flex-start;
        flex-direction:column;
    }

    .cff-stat-divider {
        display:none;
    }
}


.cff-entry-meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:15px;

    margin:10px 0 20px 0;
    padding:10px 15px;

    border:1px solid #d6dce8;
    border-radius:6px;

    background:#fafbfd;

    font-size:.9rem;
}

.cff-meta-item{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
}

.cff-meta-label{
    font-weight:bold;
    color:#555;
}

.cff-meta-value{
    color:#222;
}

.cff-meta-divider{
    width:1px;
    height:18px;
    background:#d6dce8;
}


/* Main Article Header */
.article-header{
    position:relative;

    margin:30px 0;
    padding:30px;

    border:1px solid #d6dce8;
    border-radius:8px;

    background:
    linear-gradient(
        180deg,
        #ffffff 0%,
        #f8fbff 100%
    );

    overflow:hidden;
}

/* Top accent line */
.article-header:before{
    content:"";
    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:3px;

    background:
    linear-gradient(
        90deg,
        #4a90e2 0%,
        #7db7ff 50%,
        #d6e8ff 100%
    );
}

/* Small category text */
.article-category{
    display:inline-block;

    margin-bottom:14px;
    padding:5px 10px;

    border:1px solid #d6dce8;
    border-radius:20px;

    background:#fff;

    font-size:.8rem;
    font-weight:600;
    letter-spacing:.5px;
    text-transform:uppercase;

    color:#4a90e2;
}

/* Main title */
.CodeTitles{
    margin:0;
    font-size:1.8rem;
    font-weight:800;
    line-height:1.15;
    letter-spacing:-1.5px;
    color: var(--fontColor);
}

/* Subtle divider */
.title-divider{
    width:90px;
    height:2px;

    margin:22px 0;

    background:
    linear-gradient(
        90deg,
        #4a90e2 0%,
        rgba(74,144,226,.1) 100%
    );

    border-radius:2px;
}

/* Description */
.article-description{
    max-width:850px;

    font-size:1.05rem;
    line-height:1.9;

    color:#555;
}

/* Hover */
.article-header:hover{
    box-shadow:
        0 6px 24px rgba(74,144,226,.08);
}

.article-header:hover .title-divider{
    box-shadow:
        0 0 12px rgba(74,144,226,.35);
}



        /* The parent wrapper container */
        .divwrap {
            border: 1px double var(--border);
            position: relative;
            padding: 10px;
            margin: 10px 0 0 0;
            width: 100%; /* Changed from 99% to 100% for perfect fit */
            box-sizing: border-box;
        }

        /* The label positioned on the border */
        .divwrap > span {
            position: absolute;
            top: -0.7em;
            left: 15px;
            background: #fff;
            padding: 0 5px;
            font-weight: bold;
        }




/*================================*/
