:root{
	--bg: #fff;
	--fg: #000000;
	--muted: #1b1a1a;
	--card: #f8fafc;
	--card-border: #000000; 
	--card-header-bg: rgba(11,18,32,0.03);
	--card-header-border: rgb(0, 0, 0);
	--footer-border: rgba(0,0,0,0.06);
	--accent: #34d399;
	--button-bg: rgb(238,25,38,1);
	--error: rgb(238,25,38,1);
}
[data-theme="dark"]{
	--bg: #000000;
	--fg: #e6eef6;
	--muted: #f0f0f0;
	--card: #000000;

	--card-header-bg: #333333;
	--card-header-border: rgba(255,255,255,0.08);
	--card-border: var(--card-header-bg);
	--footer-border: rgba(255,255,255,0.06);
	--accent: #34d399;
	--button-bg: rgb(238,25,38,1);
	--error: rgb(238,25,38,1);
}

:root{
	--nav-height: 76px;
	--nav-bg: rgba(255,255,255,0.85);
	--nav-border: rgba(0,0,0,0.06);
	--nav-shadow: 0 6px 18px rgba(11,18,32,0.04);
	
}
[data-theme="dark"]{
		.email-obf{ text-decoration: none; color: inherit; cursor: text; }
		.email-obf:focus{ outline: 3px solid rgba(77,144,254,0.12); outline-offset: 2px; }
	--nav-bg: rgba(0,0,0,0.6);
	--nav-border: rgba(255,255,255,0.06);
	--nav-shadow: 0 6px 18px rgba(255,255,255,0.03);
	
}

html,body{height:100%}
body { font-family: "Lato", sans-serif; padding-top: var(--nav-height); margin:0; background:var(--bg); color:var(--fg); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; transition: background-color .28s ease, color .28s ease; }
.brand { font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; font-weight:700; font-size:2.25rem; letter-spacing:0.25rem; text-transform:uppercase; padding:0.5rem 0; }
.brand{color:var(--fg)}

.navbar{
	background: var(--nav-bg);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border-bottom: 1px solid var(--nav-border);
	box-shadow: var(--nav-shadow);
	z-index: 1050; 
	color: var(--fg);
}
.navbar, .container, .form-control, .btn, .card, .brand, .card-text, .text-muted, .simpleLink, .card .card-header {
	transition: background-color .28s ease, color .28s ease, border-color .28s ease, box-shadow .28s ease;
}

.brand-img, .footer-brand-img {
	transition: filter .28s ease, opacity .28s ease;
	will-change: filter, opacity;
}

.form-control{
	background: rgba(11,18,32,0.03); 
	color: var(--fg);
	border: 1px solid rgba(11,18,32,0.12);
	transition: background-color .28s ease, border-color .28s ease, box-shadow .28s ease, color .28s ease;
	backdrop-filter: blur(.2px);
}
[data-theme="dark"] .form-control{
	background: rgba(255,255,255,0.03);
	border: 1px solid rgba(255,255,255,0.12);
	color: var(--fg);
}

.form-control::placeholder{ color: var(--muted); opacity: 0.9; }
[data-theme="dark"] .form-control::placeholder{ color: var(--muted); opacity: 0.8; }

.form-control:focus{
	outline: none;
	border-color: rgba(11,18,32,0.22);
	box-shadow: 0 0 0 0.12rem rgba(11,18,32,0.06);
}
[data-theme="dark"] .form-control:focus{
	border-color: rgba(255,255,255,0.24);
	box-shadow: 0 0 0 0.12rem rgba(255,255,255,0.06);
}

.form-check-input{
	-webkit-accent-color: var(--accent);
	accent-color: var(--accent);
}

.form-check-input:checked{
	background-color: var(--accent) !important;
	border-color: var(--accent) !important;
	color: #fff;
}

.navbar { padding: 0.75rem 1rem; min-height: 72px; }
.btn-danger{background:var(--button-bg);border:0;color:#fff}
.text-muted{color:var(--muted)!important; font-weight: 300;}
.alert-success{color:var(--accent);background:linear-gradient(90deg,rgba(52,211,153,0.06),rgba(14,165,163,0.02));border:0}


.theme-switch { display:inline-block; position:relative; width:50px; height:28px; }
.theme-switch .theme-checkbox { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; z-index:2; cursor:pointer; }
.theme-switch .switch-track { display:block; width:100%; height:100%; background: rgba(11,18,32,0.06); border-radius:999px; transition: background .18s ease; }
.theme-switch .switch-knob { position:absolute; left:3px; top:3px; width:22px; height:22px; border-radius:50%; background:var(--card); display:flex; align-items:center; justify-content:center; transition: transform .18s ease, background .18s ease; box-shadow: 0 1px 2px rgba(0,0,0,0.06); }

.theme-switch i.fa-solid { font-size:16px; line-height:1; color:var(--muted); }
.theme-switch .icon-moon { display:none; }
.theme-switch .icon-sun { display:inline; }

.theme-switch .theme-checkbox:checked + .switch-track { background: #2f2f33; }
.theme-switch .theme-checkbox:checked + .switch-track .switch-knob { transform: translateX(22px); background: #2f2f33; }
.theme-switch .theme-checkbox:checked + .switch-track .icon-sun { display:none; }
.theme-switch .theme-checkbox:checked + .switch-track .icon-moon { display:inline; color: #fff; }

.navbar .container-fluid { padding-right: 4rem; position: relative; }
.navbar form.d-flex { position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%); }
.navbar-brand.brand { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 60vw; color:var(--fg)}


.brand-img{height:40px; max-width:60vw; display:inline-block; object-fit:contain}
.footer-brand-img{height:22px}

.brand-img, .footer-brand-img { filter: none; }
[data-theme="dark"] .brand-img, [data-theme="dark"] .footer-brand-img {
	filter: invert(1) !important;
}
				
main.container{
	
	display:flex;
	align-items:flex-start;
	justify-content:flex-start;
	min-height: auto;
	padding-top:2rem;
	padding-bottom:2rem;
}

.post-article{
	max-width: 900px; 
	margin: 0 auto;   
	padding-left: 1.25rem; 
	padding-right: 1.25rem;
}

@media (min-width: 992px){
	.post-article{
		padding-left: 2.5rem;
		padding-right: 2.5rem;
	}
}

@media (max-width: 576px){
	.post-article{
		padding-left: 0.75rem;
		padding-right: 0.75rem;
	}
}


body.frontpage{
	height: calc(var(--vh, 1vh) * 100);
	display:flex;
	flex-direction:column;
}
body.frontpage main.container{
	flex:1 0 auto;
	display:flex;
	align-items:center;
	justify-content:center;
	padding-top:0.5rem;
	padding-bottom:0.5rem;
}
body:not(.frontpage){
	display:flex;
	flex-direction:column;
	min-height:100vh;
}
body:not(.frontpage) main.container{
	flex:1 0 auto;
}
body.frontpage .site-footer{flex-shrink:0}

@media (max-height:560px){
	main.container{ min-height: auto; padding-top:1rem; padding-bottom:1rem; }
}

@media (max-width: 576px){
	.navbar .container-fluid{ padding-right: 1rem; }
	.navbar-brand.brand{
		position: static !important;
		left: 0 !important;
		transform: none !important;
		margin-left: 0.25rem;
		max-width: 70%;
		text-align: left;
		font-size:30px;
	}

	.navbar form.d-flex{ right: 0.5rem; }
}

.img-link{
	display: inline-block;

	height:5vh !important;

	object-fit: cover; 
	transition: filter .4s ease, opacity .4s ease, color .4s ease;
}

[data-theme="dark"] .img-link{
	filter: invert(1) sepia(0) saturate(1) hue-rotate(0deg) brightness(1) contrast(1);
}

body.frontpage a > .img-link,
body.frontpage a img.img-link {
	transition: filter .4s ease, opacity .4s ease, color .4s ease;}

body.frontpage a:hover > .img-link,
body.frontpage a:focus > .img-link {
	filter: invert(18%) sepia(95%) saturate(5000%) hue-rotate(-10deg) brightness(95%) contrast(100%) !important;
	mix-blend-mode: normal;
	opacity: 1;
	transition: filter .4s ease, opacity .4s ease;
}

.simpleLink,
.simpleLink:visited {
	color: var(--fg);
}

.simpleLink:hover,
.simpleLink:focus {
	color: var(--fg);
}

.card {
	background: var(--card);
	color: var(--fg);
	border: 1px solid var(--card-border);
	border-radius: 0.5rem; 
	overflow: hidden;
}

.card .card-body {
	background: transparent;
	color: inherit;
}
.card .card-text {
	color: var(--muted);
	font-weight: 300;
}
.card .card-header {
	background: var(--card-header-bg);
	color: var(--fg);
	border-bottom: 1px solid var(--card-header-border);
	font-weight: 800;
	transition: background-color .28s ease, color .28s ease, border-color .28s ease;
}

.site-footer{
	background: var(--card);
	color: var(--fg);
	border-top: 1px solid var(--footer-border);
	box-shadow: none;
	position: relative;
	margin-top: auto;
	z-index: 100;
	padding: 1rem 0.75rem;
	transition: background-color .28s ease, color .28s ease, box-shadow .28s ease;
}
.site-footer .footer-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1rem;}
.site-footer .brand { font-size:1rem; font-weight:700; }
.site-footer .social-links{display:flex;gap:.5rem;align-items:center}
.site-footer .social-links a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:transparent;border:1px solid var(--card-header-border);color:var(--fg);text-decoration:none;transition:background-color .18s ease,color .18s ease,border-color .18s ease}
.site-footer .social-links a:hover{background:var(--card-header-bg)}
.site-footer .social-links i{font-size:18px;line-height:1;color:currentColor}

@media (max-width: 576px){
	.site-footer .footer-inner{flex-direction:column;align-items:stretch;gap:.5rem;padding:0.5rem 1rem}
	.site-footer .footer-top{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;text-align:center}
	.site-footer .footer-top .brand{font-size:1rem}
	.site-footer .footer-top .text-muted.small{margin:0;font-size:.9rem;color:var(--muted)}
	.site-footer .social-links{justify-content:center;width:100%;order:2;margin-top:0.25rem}
}

.pagination {
	gap: 0.5rem;
	padding: 0;
	margin-top: 1.5rem;
	margin-bottom: 0;
}
.pagination .page-link {
	color: var(--fg);
	background: transparent;
	border: 1px solid var(--card-header-border);
	border-radius: 0.375rem;
	padding: .45rem .75rem;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.pagination .page-link:hover {
	background: rgba(11,18,32,0.04);
}
.pagination .page-item.active .page-link {
	background: var(--button-bg);
	border-color: var(--button-bg);
	color: #fff;
}
.pagination .page-item.disabled .page-link {
	color: var(--muted);
	pointer-events: none;
	opacity: 0.7;
	background: transparent;
}

[data-theme="dark"] .pagination .page-link:hover {
	background: rgba(255,255,255,0.04);
}
[data-theme="dark"] .pagination .page-link {
	border: 1px solid var(--card-header-border);
}
[data-theme="dark"] .pagination .page-item.active .page-link {
	background: var(--button-bg);
	border-color: var(--button-bg);
	color: #fff;
}

.posts-wrap{
	display:flex;
	flex-direction:column;
	min-height: 0;
}

body.frontpage .posts-wrap{
    min-height: 320px;
}
.posts-grid{ flex: 1 0 auto; }
.pagination-wrapper{ flex-shrink:0; }

.post-card{
	border-radius: 0.5rem;
	padding: 0;
	margin-bottom: 0.9rem;
	transition: transform .14s ease, box-shadow .14s ease, background-color .18s ease;
}
.post-card:hover{
	transform: translateY(-3px);
	box-shadow: 0 8px 26px rgba(11,18,32,0.06);
}
.post-card .post-card-body{ display:flex; flex-direction:column; padding:0.8rem; }
.post-card-main{ flex:1 1 auto; min-width:0; }
.post-card-title{ margin:0 0 0.35rem 0; font-size:1.05rem; font-weight:700; line-height:1.2; }
.post-card-meta{ display:flex; align-items:center; gap:0.5rem; margin-left:0.75rem; }
.post-card-summary{ color:var(--muted); font-weight:300; margin:0; font-size:0.94rem; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; text-overflow:ellipsis; line-clamp: 3; }
.post-card-date{ font-size:0.83rem; color:var(--muted); margin-bottom:0.25rem; }
.post-card .btn-read{ margin-left:auto; }

@media (min-width: 768px){
	.post-card .post-card-body{ flex-direction:row; align-items:flex-start; gap:1rem; }
	.post-card-main{ padding-right:0.25rem; }
	.post-card-meta{ flex:0 0 auto; align-items:flex-end; margin-left:0; }
	.post-card .btn-read{ margin:0 0 0 0; }
}

@media (max-width: 576px){
	.post-card .post-card-body{ padding:0.6rem; }
	.post-card-title{ font-size:1rem; }
		.post-card-summary{ -webkit-line-clamp:2; font-size:0.92rem; line-clamp: 2; }
}

.post-card > .card-link{
	display:block;
	color:inherit;
	text-decoration:none;
}
.post-card > .card-link:focus{ outline: 3px solid rgba(52,211,153,0.18); outline-offset:3px; border-radius:0.5rem; }
.post-card > .card-link .card-body{ padding:0.8rem; }
.post-card > .card-link:hover .post-card-title{ text-decoration:underline; }

.badge.text-decoration-none, .badge.text-decoration-none:visited {
	text-decoration: none !important;
}
.badge.text-decoration-none:hover,
.badge.text-decoration-none:focus,
.badge.text-decoration-none:active {
	text-decoration: none !important;
}

@media (min-width: 768px){
	.posts-grid.half-width .col{ display:flex; justify-content:center; }
	.posts-grid.half-width .post-card{ width:48%; max-width:720px; }
	.post-card > .card-link{ display:block; }
}


.modal-content{
	background: var(--card) !important;
	color: var(--fg) !important;
	border: 1px solid var(--card-border) !important;
	transition: background-color .28s ease, color .28s ease, border-color .28s ease;
}
.modal-header{
	background: var(--card-header-bg);
	border-bottom: 1px solid var(--card-header-border);
	color: var(--fg);
}
.modal-footer{
	background: transparent;
	border-top: 1px solid var(--card-header-border);
}
.modal-body{ color: var(--fg); }

.modal-backdrop.show{ background-color: rgba(0,0,0,0.4); }
[data-theme="dark"] .modal-backdrop.show{ background-color: rgba(0,0,0,0.6); }

.modal .btn-close{ filter:none; opacity:0.9 }

