/* 4got — gruvbox theme with dark/light toggle */

:root{
	/* background */
	--1d2021: #1d2021;
	--282828: #282828;
	--3c3836: #3c3836;
	--504945: #504945;

	/* font */
	--928374: #928374;
	--a89984: #a89984;
	--bdae93: #bdae93;
	--8ec07c: #8ec07c;
	--ebdbb2: #ebdbb2;

	/* semantic aliases (dark defaults) */
	--bg: #1d2021;
	--bg0: #282828;
	--bg1: #3c3836;
	--bg2: #504945;
	--bg3: #665c54;
	--fg: #ebdbb2;
	--fg0: #ebdbb2;
	--fg1: #d5c4a1;
	--fg2: #a89984;
	--fg3: #928374;
	--blue: #83a598;

	/* code highlighter */
	--comment: #9e8e73;
	--default: #d4be98;
	--keyword: #d8a657;
	--string: #7daea7;

	/* color codes */
	--green: #b8bb26;
	--yellow: #d8a657;
	--red: #fb4934;
}

/* --- Light gruvbox theme --- */
body.light{
	--1d2021: #fbf1c7;
	--282828: #ebdbb2;
	--3c3836: #d5c4a1;
	--504945: #bdae93;
	--928374: #928374;
	--a89984: #504945;
	--bdae93: #3c3836;
	--8ec07c: #427b58;
	--ebdbb2: #282828;
	--bg: #fbf1c7;
	--bg0: #ebdbb2;
	--bg1: #d5c4a1;
	--bg2: #bdae93;
	--bg3: #a89984;
	--fg: #282828;
	--fg0: #282828;
	--fg1: #3c3836;
	--fg2: #504945;
	--fg3: #665c54;
	--blue: #076678;
	--comment: #928374;
	--default: #3c3836;
	--keyword: #b57614;
	--string: #427b58;
	--green: #79740e;
	--yellow: #b57614;
	--red: #cc241d;
}

@media (prefers-color-scheme: light){
	body:not(.dark){
		--1d2021: #fbf1c7;
		--282828: #ebdbb2;
		--3c3836: #d5c4a1;
		--504945: #bdae93;
		--928374: #928374;
		--a89984: #504945;
		--bdae93: #3c3836;
		--8ec07c: #427b58;
		--ebdbb2: #282828;
		--bg: #fbf1c7;
		--bg0: #ebdbb2;
		--bg1: #d5c4a1;
		--bg2: #bdae93;
		--bg3: #a89984;
		--fg: #282828;
		--fg0: #282828;
		--fg1: #3c3836;
		--fg2: #504945;
		--fg3: #665c54;
		--blue: #076678;
		--comment: #928374;
		--default: #3c3836;
		--keyword: #b57614;
		--string: #427b58;
		--green: #79740e;
		--yellow: #b57614;
		--red: #cc241d;
	}
}

/* High contrast theme */
body.high-contrast{
	--1d2021: #000;
	--282828: #000;
	--3c3836: #111;
	--504945: #222;
	--928374: #ccc;
	--a89984: #fff;
	--bdae93: #fff;
	--8ec07c: #0f0;
	--ebdbb2: #fff;
	--bg: #000;
	--bg0: #000;
	--bg1: #111;
	--bg2: #222;
	--bg3: #333;
	--fg: #fff;
	--fg0: #fff;
	--fg1: #fff;
	--fg2: #ccc;
	--fg3: #aaa;
	--blue: #0af;
	--green: #0f0;
	--yellow: #ff0;
	--red: #f00;
	--comment: #aaa;
	--default: #fff;
	--keyword: #ff0;
	--string: #0af;
}
body.high-contrast a{ color:#0af; }
body.high-contrast b, body.high-contrast mark{ background:#ff0; color:#000; }

/* Theme toggle button */
.theme-toggle{
	cursor:pointer;
	background:none;
	border:none;
	color:var(--bdae93);
	font-size:14px;
	padding:0;
	line-height:30px;
	text-decoration:none;
	vertical-align:middle;
	display:inline-flex;
	align-items:center;
}
.theme-toggle svg{
	display:block;
	width:14px;
	height:14px;
	position:relative;
	top:-1px;
}
.theme-toggle:hover{
	color:var(--ebdbb2);
}

audio{
	max-width:100%;
	display:block;
}

.left audio{
	margin-top:7px;
}

body,html{
	padding:0;
	margin:0;
}

body{
	background:var(--1d2021);
	color:var(--a89984);
	font-size:16px;
	box-sizing:border-box;
	font-family:sans-serif;
	margin:15px 7% 45px;
	overflow-wrap:anywhere;
	word-wrap:break-word;
	line-height:22px;
	max-width:2000px;
	position:relative;
}

a{color:var(--bdae93);text-decoration:none}
a:hover{text-decoration:underline}
a:visited{color:var(--928374)}

.navigation{
	text-align:right;
	font-size:14px;
	line-height:30px;
	margin-bottom:8px;
}

.navigation a{
	color:var(--bdae93);
	text-decoration:none;
}

.navigation a:hover{
	text-decoration:underline;
}

.navigation a:not(:last-child)::after{
	content:"|";
	padding:0 7px;
	display:inline-block;
	color:var(--504945);
}

h1,h2,h3,h4,h5,h6{
	padding:0;
	margin:0 0 7px 0;
	line-height:initial;
	color:var(--bdae93);
}

h3,h4,h5,h6{
	margin-bottom:14px;
}

/*
	Web styles
*/

#overflow{
	overflow:hidden;
}

/* Searchbox */
.searchbox{
	width:40%;
	height:36px;
	border:1px solid var(--bg2, #504945);
	background:var(--bg0, #282828);
	border-radius:2px;
	margin-bottom:10px;
	position:relative;
}

.searchbox .wrapper{
	overflow:hidden;
}
.searchbox{
	position:relative;
	overflow:visible !important;
}

.searchbox input[type="text"]{
	width:100%;
	padding-left:10px;
}

.searchbox input[type="text"]::placeholder{
	color:var(--928374);
}

.searchbox input[type="submit"]{
	float:right;
	cursor:pointer;
	padding:0 10px;
}

.searchbox input[type="submit"]:hover{
	text-decoration:underline;
}

.img-search-btn{
	all:unset;
	float:right;
	cursor:pointer;
	height:36px;
	line-height:36px;
	padding:0 8px;
	color:var(--928374);
	display:flex;
	align-items:center;
}
.img-search-btn:hover{
	color:var(--bdae93);
}
.img-search-btn svg{
	display:block;
}

.searchbox input{
	all:unset;
	line-height:36px;
	box-sizing:border-box;
	height:36px;
	color:var(--bdae93);
}

.searchbox:focus-within{
	border:1px solid var(--928374);
}

/* Tabs */
.tabs, .filters{
	overflow:hidden;
	overflow-x:auto;
	white-space:nowrap;
	scrollbar-width:thin;
	scrollbar-color:var(--bg2) transparent;
}
.tabs::-webkit-scrollbar, .filters::-webkit-scrollbar{height:4px}
.tabs::-webkit-scrollbar-thumb, .filters::-webkit-scrollbar-thumb{background:var(--bg2);border-radius:2px}

.tabs{
	padding-bottom:10px;
}

.tabs .tab{
	text-decoration:none;
	color:var(--bdae93);
	padding:4px 10px;
	display:inline-block;
}

.tabs .tab:hover{
	text-decoration:underline;
}

.tabs .tab.selected{
	border-bottom:2px solid var(--bdae93);
}

/* Filters */
.filters{
	margin-bottom:7px;
}

.filters .filter{
	display:inline-block;
	margin-right:7px;
	vertical-align:bottom;
}

.filters .filter .title{
	font-size:13px;
	margin:0 4px;
}

.filters .filter input,
.filters .filter select{
	all:unset;
	user-select:none;
	display:block;
	border:1px solid var(--504945);
	border-radius:2px;
	font-size:14px;
	padding:0 4px;
	width:127px;
	height:24px;
}

.timetaken{
	font-size:14px;
	font-weight:bold;
	margin-bottom:10px;
}


/*
	HOME
*/
.home{
	min-height:100vh;
	margin:0 auto;
	display:table;
	text-align:center;
}

.home .logo{
	max-width:400px;
	height:100px;
	margin:0 auto 17px auto;
}

.home img{
	line-height:100px;
	font-size:60px;
	text-align:center;
	font-family:Times;
	width:100%;
	height:100%;
	background:var(--282828);
	display:block;
	object-fit:contain;
}

.home #center{
	display:table-cell;
	vertical-align:middle;
	width:500px;
}

.home .searchbox{
	width:100%;
	text-align:left;
	margin-bottom:20px;
}

.home a{
	color:inherit;
}

.home .subtext{
	margin-top:17px;
	line-height:16px;
	font-size:12px;
}
.beta-banner{
	margin-top:14px;
	font-size:12px;
	line-height:16px;
	text-align:center;
}


/*
	WEB
*/

/* Captcha — uses 4get's input:checked + label pattern */
.captcha-wrapper{
	position:relative;
	display:inline-block;
	line-height:0;
	max-width:400px;
	margin:17px auto 0;
	border:1px solid var(--928374);
	overflow:hidden;
	background:var(--282828);
}

.captcha-header{
	text-align:center;
	color:var(--fg0, #ebdbb2);
	font-size:28px;
	font-weight:bold;
	margin-bottom:10px;
}
.captcha-header span{
	font-size:13px;
	font-weight:normal;
	color:var(--fg2, #a89984);
}
.captcha-btn-row{
	text-align:center;
	margin-top:12px;
}
.captcha-wrapper img{
	display:block;
	width:400px;
	height:427px;
	user-select:none;
}
.captcha-grid{
	position:absolute;
	top:27px;
	left:0;
	width:400px;
	height:400px;
	display:grid;
	grid-template-columns:repeat(4,1fr);
	grid-template-rows:repeat(4,1fr);
}
.captcha-cell{
	cursor:pointer;
	position:relative;
}
.captcha-cell input[type="checkbox"]{
	display:none;
}
.captcha-cell .captcha-check{
	display:none;
}
.captcha-cell:hover{
	background:rgba(255,255,255,0.15);
}
.captcha-cell input:checked ~ .captcha-check{
	display:block;
	position:absolute;
	inset:0;
	background:rgba(0,0,0,0.4);
}
.captcha-cell input:checked ~ .captcha-check::after{
	content:"";
	position:absolute;
	left:36%;
	top:22%;
	width:22%;
	height:38%;
	transform:rotate(45deg);
	border-right:5px solid #ebdbb2;
	border-bottom:5px solid #ebdbb2;
	box-sizing:border-box;
}

.captcha-submit{
	float:right;
	margin:12px 0 4px;
	background:var(--3c3836);
	color:var(--bdae93);
	border:1px solid var(--504945);
	border-radius:2px;
	padding:7px 17px;
	font-size:14px;
	cursor:pointer;
	font-family:sans-serif;
}

.captcha-submit:hover{
	background:var(--504945);
	border-color:var(--928374);
}

.web .left{
	width:40%;
	float:left;
}

/* infobox */
.infobox{
	border:1px dashed var(--bg3, #665c54);
	padding:10px;
	margin-bottom:8px;
	overflow:hidden;
}

.infobox .code{
	white-space:initial;
}

.infobox ul{
	padding-left:27px;
	margin-bottom:0;
}

.infobox a{
	color:var(--bdae93);
}

.infobox a:hover{
	text-decoration:underline;
}

/* text-result */
.web .text-result{
	margin-bottom:30px;
	line-height:1.3;
}
.web .text-result .site-name,.web .text-result .url,.web .text-result .title,.web .text-result .description{
	margin:0;padding:0;
}

.web .description{
	white-space:pre-line;
}

.web .type{
	border:1px solid var(--928374);
	background:var(--282828);
	padding:0 4px;
	border-radius:2px;
	font-size:14px;
	line-height:16px;
	float:left;
	margin:2px 7px 0 0;
}

.web .site-name{
	font-size:14px;
	color:var(--fg1, #d5c4a1);
	margin-bottom:0;
}

.web .url{
	position:relative;
}

.web .url .part{
	font-size:12px;
	text-decoration:none;
	color:var(--fg3, #928374);
}

.web .part:hover{
	text-decoration:underline;
}

.url-seg{
	color:var(--fg2, #d5c4a1);
	text-decoration:none;
	font-size:12px;
}
.url-seg:hover{
	text-decoration:underline;
}
.url-sep{
	color:var(--bg3, #665c54);
	font-size:12px;
}
.url-seg.lp-flash{
	background:var(--bg2, #504945);
	border-radius:2px;
	transition:background 0.3s;
}
.url-seg-bookmarked{
	color:var(--yellow, #e5c07b);
	font-weight:bold;
}

.web .hover{
	display:block;
	text-decoration:none;
	color:var(--a89984);
	overflow:hidden;
	clear:left;
	padding-top:2px;
}

.web .text-result .title{
	font-size:18px;
	color:var(--bdae93);
	margin-bottom:2px;
}

.web .text-result a:visited .title{
	color:var(--928374) !important;
}

.web .text-result .hover:hover .title{
	text-decoration:underline;
}

.web .text-result .author{
	font-style:italic;
}

/* engine badges (4got-specific) */
.web .text-result .engine-badge{
	display:inline;
	font-size:10px;
	color:var(--bg3, #665c54);
	background:none;
	border:none;
	padding:0;
	margin-top:5px;
}

/* tracker tags (per-result privacy indicators) */
.tracker-tag{
	font-size:10px;
	color:var(--red);
	opacity:0.7;
	margin-left:4px;
}
.privacy-grade{
	font-size:9px;
	font-weight:bold;
	margin-left:4px;
	opacity:0.7;
}
.tracker-status{
	font-size:10px;
	color:var(--red);
	opacity:0.5;
	margin-left:4px;
	font-style:italic;
}
.tracker-badges{
	display:inline;
	vertical-align:baseline;
	margin-left:6px;
}

/* ToS;DR grades (service quality indicator, always shown) */
.tosdr-grade{ font-size:10px; margin-left:4px; text-decoration:none; opacity:0.7; }
.tosdr-A, .tosdr-B{ color: var(--green); }
.tosdr-C{ color: var(--yellow); }
.tosdr-D, .tosdr-E{ color: var(--red); }

.privacy-combined{ font-size:10px; margin-left:4px; opacity:0.7; }
.privacy-combined .tosdr-grade{ margin-left:0; }
.privacy-combined .tracker-tag{ margin-left:0; }
.privacy-sep{ opacity:0.5; }

/* Archive link dropdown per result */
.archive-dropdown{ display:inline; position:relative; margin-left:6px; }
.archive-dropdown summary{ cursor:pointer; color:var(--bg3); font-size:12px; list-style:none; display:inline; padding:0 4px; }
.archive-dropdown summary::-webkit-details-marker{ display:none; }
.archive-dropdown summary:hover{ color:var(--fg2); }
.archive-links{ position:absolute; top:100%; left:0; background:var(--bg0); border:1px solid var(--bg3); border-radius:3px; padding:4px 0; z-index:10; white-space:nowrap; }
.archive-links a{ display:block; padding:2px 10px; color:var(--fg2); font-size:12px; text-decoration:none; }
.archive-links a:hover{ background:var(--bg2); }
.archive-links a.archive-available{ font-weight:bold; color:var(--fg); }
.archive-links a.archive-available::before{ content:''; display:inline-block; width:6px; height:6px; border-radius:50%; background:#8ec07c; margin-right:5px; vertical-align:middle; }
.archive-links a.archive-unavailable{ opacity:0.45; }
.archive-dropdown summary.has-archive{ color:var(--fg3); }
.archive-dropdown summary{ font-size:10px; }
.btn-request-archive{ display:block; padding:2px 10px; font-size:12px; color:var(--yellow,#d8a657); background:none; border:none; cursor:pointer; text-align:left; width:100%; }
.btn-request-archive:hover{ background:var(--bg2); }
.bookmark-count{ font-size:10px; margin-left:2px; color:var(--fg3,#928374); }

/* thumbnails */
.thumb-wrap{
	position:relative;
	float:right;
	width:160px;
	height:90px;
	background:var(--282828);
	border:1px solid var(--504945);
	margin-left:7px;
}

.duration{
	position:absolute;
	right:0;
	bottom:0;
	padding:1px 2px;
	line-height:14px;
	background:var(--3c3836);
	font-size:12px;
	border-left:1px solid var(--504945);
	border-top:1px solid var(--504945);
	font-family:monospace;
}

.web .text-result:hover .thumb-wrap .duration{
	display:none;
}

.thumb-wrap .thumb{
	display:block;
	object-fit:contain;
	width:100%;
	height:100%;
}

.thumb-wrap.portrait{
	width:50px;
}

.thumb-wrap.square{
	width:90px;
}

/* Pagination (4got-specific) */
.pagination{
	display:flex;
	justify-content:space-between;
	align-items:center;
	margin-bottom:30px;
}

.pagination a{
	display:inline-block;
	padding:10px 17px;
	border:1px solid var(--504945);
	border-radius:2px;
	text-decoration:none;
	color:var(--bdae93);
}

.pagination a:hover{
	text-decoration:underline;
}

.pagination .prev{
	order:0;
}

.pagination .next{
	order:2;
}

.pagination .page-num{
	order:1;
	text-align:center;
	flex:1;
	color:var(--928374);
	font-size:14px;
}

/*
	Tables
*/
table{
	width:100%;
	text-align:left;
	border-collapse:collapse;
}

table td{
	width:50%;
	padding:0;
	vertical-align:top;
}

table tr td:first-child{
	padding-right:7px;
}

table a{
	display:block;
	text-decoration:none;
	color:var(--a89984);
	padding:0 10px 0 0;
}

table tr a:last-child{
	padding-right:0;
}

/* Related */
.related{
	margin-bottom:20px;
}

.related a{
	padding-bottom:10px;
	color:var(--bdae93);
}

.related a:hover{
	text-decoration:underline;
}

/*
	Answers
*/
.web .answer{
	max-height:600px;
	overflow:hidden;
	padding-bottom:17px;
	position:relative;
}

.web .answer::after{
	content:"";
	position:absolute;
	bottom:0;
	width:100%;
	height:17px;
	background:linear-gradient(transparent, var(--1d2021));
	pointer-events:none;
}

.web .answer-title{
	text-decoration:none;
	color:var(--a89984);
}

.web .answer-title a:hover{
	text-decoration:underline;
}

/*
	Code tags
*/
.code{
	white-space:pre;
	font-family:monospace;
	background:var(--3c3836);
	color:var(--bdae93);
	padding:7px;
	margin:4px 0 13px 0;
	overflow-x:auto;
	border-radius:2px;
	border:1px solid var(--504945);
}

.code-inline{
	display:inline;
	font-family:monospace;
	background:var(--282828);
	color:var(--bdae93);
	border:1px solid var(--928374);
	padding:0 4px;
	border-radius:2px;
}

.quote{
	font-style:italic;
	margin:10px 0 13px;
	padding-left:10px;
	border-left:1px solid #504945;
}


/*
	Images tab
*/

#images{
	overflow:hidden;
	margin-bottom:10px;
}

#images .infobox{
	width:40%;
	box-sizing:border-box;
}

#images .image-wrapper{
	line-height:15px;
	width:20%;
	float:left;
}

#images .image{
	margin:0 auto;
	width:250px;
	max-width:100%;
	padding:7px 7px 30px 7px;
	box-sizing:border-box;
	font-size:14px;
}

#images a{
	color:inherit;
	text-decoration:none;
	display:block;
}

#images a:hover .title{
	text-decoration:underline;
}

#images .thumb{
	display:block;
	height:180px;
	margin-bottom:10px;
	position:relative;
}

#images .duration{
	display:block;
	border:1px solid #504945;
}

#images .image:hover .duration{
	display:none;
}

#images img{
	width:100%;
	height:100%;
	object-fit:contain;
}

#images .image .title{
	white-space:nowrap;
	overflow:hidden;
	margin-bottom:7px;
	font-weight:bold;
}

#images .image .description{
	overflow:hidden;
	height:45px;
}

#images .image .dims{
	font-size:12px;
	color:var(--928374);
}


/*
	Videos (4got uses text-result style for videos)
*/
.video-result{
	margin-bottom:30px;
	overflow:hidden;
}

.video-result .thumb-wrap{
	position:relative;
	float:left;
	width:200px;
	height:112px;
	background:var(--282828);
	border:1px solid var(--504945);
	margin-right:10px;
}

.video-result .thumb-wrap img{
	display:block;
	object-fit:contain;
	width:100%;
	height:100%;
}

.video-result .duration{
	position:absolute;
	right:0;
	bottom:0;
	padding:1px 2px;
	line-height:14px;
	background:var(--3c3836);
	font-size:12px;
	border-left:1px solid var(--504945);
	border-top:1px solid var(--504945);
	font-family:monospace;
}

.video-result .title{
	font-size:18px;
	color:var(--bdae93);
	text-decoration:none;
	display:block;
	margin-bottom:4px;
}

.video-result .title:hover{
	text-decoration:underline;
}

.video-result .engine-badge{
	display:inline;
	font-size:10px;
	color:var(--bg3, #665c54);
	background:none;
	border:none;
	padding:0;
}


/*
	News
*/
.news-result{
	margin-bottom:30px;
}

.news-result .title{
	font-size:18px;
	color:var(--bdae93);
	text-decoration:none;
	display:block;
	margin-bottom:4px;
}

.news-result .title:hover{
	text-decoration:underline;
}

.news-result .meta{
	font-size:13px;
	color:var(--928374);
	margin-bottom:4px;
}

.news-result .source{
	color:var(--8ec07c);
}

.news-result .description{
	color:var(--a89984);
}


/*
	Music
*/
.music-result{
	margin-bottom:30px;
}

.music-result .title{
	font-size:18px;
	color:var(--bdae93);
	text-decoration:none;
	display:block;
	margin-bottom:4px;
}

.music-result .title:hover{
	text-decoration:underline;
}

.music-result .meta{
	font-size:13px;
	color:var(--928374);
	margin-bottom:7px;
}

.music-result audio{
	margin-top:7px;
}
.music-title-row{
	display:flex;
	align-items:center;
	gap:6px;
}
.music-title-row .title{
	margin-bottom:0;
}
.music-preview-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:24px;
	height:24px;
	padding:0 6px;
	background:var(--504945, #504945);
	color:var(--bdae93, #bdae93);
	border:1px solid var(--665c54, #665c54);
	border-radius:3px;
	cursor:pointer;
	font-size:11px;
	line-height:1;
	white-space:nowrap;
	flex-shrink:0;
}
.music-preview-btn:hover{
	background:var(--665c54, #665c54);
}
.music-audio{
	margin-top:5px;
}
.music-audio audio{
	display:block;
	width:100%;
	max-width:320px;
	height:32px;
	margin-top:0;
}
.music-embed{
	margin-top:6px;
}
.music-embed iframe{
	border-radius:4px;
	max-width:100%;
}


/*
	Settings page
*/
.setting-hint{
	color:var(--fg3, #928374);
	font-size:12px;
	margin:3px 0;
}
.cookie-display{
	font-size:11px;
	color:var(--fg3, #928374);
	margin-bottom:8px;
}
.cookie-display code{
	background:var(--bg1, #3c3836);
	padding:4px 8px;
	border-radius:2px;
	font-size:11px;
	display:inline-block;
	min-width:17ch;
	outline:none;
	cursor:text;
}
.cookie-display code:focus{
	border:1px solid var(--bg3, #665c54);
}
.engine-config{
	margin-top:12px;
	margin-bottom:0;
	border:1px solid var(--bg3, #665c54);
	border-radius:3px;
	padding:0;
}
.engine-config[open]{
	padding:0 12px 12px;
}
.engine-config+.engine-config{
	margin-top:8px;
}
.engine-config summary{
	padding:8px 12px;
	cursor:pointer;
	color:var(--fg1, #d5c4a1);
	font-size:13px;
}
.engine-config[open] summary{
	border-bottom:1px solid var(--bg3, #665c54);
}
.engine-config-inner{
	padding:8px 12px 12px;
}
.engine-config-inner .setting{
	margin-bottom:8px;
}
.engine-config-inner .setting:last-child{
	margin-bottom:0;
}
.engine-config .engine-list{
	padding:8px 12px;
	columns:2;
}
.engine-toggle .engine-id{
	color:var(--fg3, #928374);
	font-size:10px;
}
.web .settings{
	margin-top:0;
	border:1px dashed var(--bg3, #665c54);
	padding:7px 10px 10px;
}

.web .setting{
	margin-bottom:12px;
}

.web .setting .title{
	font-size:13px;
	color:var(--fg2, #a89984);
	margin-bottom:2px;
}

.web .setting select,
.web .setting input[type="text"],
.web .setting input[type="number"]{
	background:var(--bg0, #282828);
	color:var(--fg0, #ebdbb2);
	border:1px solid var(--bg3, #665c54);
	border-radius:3px;
	padding:5px 8px;
	font-size:13px;
	font-family:sans-serif;
}

.web .setting select{
	cursor:pointer;
}

.web .setting select:focus,
.web .setting input[type="text"]:focus,
.web .setting input[type="number"]:focus{
	border-color:var(--fg3, #928374);
	outline:none;
}

.web .settings h2{
	font-size:16px;
	margin-top:15px;
	margin-bottom:8px;
}

.web .settings-submit{
	margin:12px 0;
	text-align:right;
}

.web .settings-submit input{
	background:var(--bg1, #3c3836);
	color:var(--fg1, #d5c4a1);
	border:1px solid var(--bg3, #665c54);
	border-radius:3px;
	padding:8px 20px;
	font-size:14px;
	cursor:pointer;
	font-family:sans-serif;
}

.web .settings-submit input:hover{
	background:var(--bg2, #504945);
	border-color:var(--fg3, #928374);
}

.web .settings-submit a{
	margin-right:17px;
	color:var(--fg1, #d5c4a1);
}

/* Engine checkboxes (4got-specific) */
.engines-hint{
	font-size:13px;
	color:var(--928374);
	margin-top:0;
}

.engine-grid{
	display:flex;
	flex-wrap:wrap;
	gap:4px 14px;
	margin-top:4px;
}

.engine-toggle{
	display:inline-flex;
	align-items:center;
	font-size:14px;
	margin-bottom:3px;
	color:var(--a89984);
	cursor:pointer;
	min-width:130px;
}

.engine-toggle input[type="checkbox"]{
	margin-right:7px;
	appearance:none;
	-webkit-appearance:none;
	width:16px;
	height:16px;
	min-width:16px;
	background:var(--282828);
	border:1px solid var(--504945);
	border-radius:2px;
	vertical-align:middle;
	cursor:pointer;
	position:relative;
}

.engine-toggle input[type="checkbox"]:checked{
	background:var(--504945);
	border-color:var(--928374);
}

.engine-toggle input[type="checkbox"]:checked::after{
	content:"";
	position:absolute;
	left:4px;
	top:1px;
	width:5px;
	height:9px;
	border:solid var(--ebdbb2);
	border-width:0 2px 2px 0;
	transform:rotate(45deg);
}

.engine-weight{
	width:28px;
	margin-left:4px;
	padding:2px 4px;
	font-size:13px;
	background:var(--282828);
	color:var(--ebdbb2);
	border:1px solid var(--504945);
	border-radius:2px;
}

input[type="number"]{
	-moz-appearance:textfield;
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button{
	-webkit-appearance:none;
	margin:0;
}


/*
	About page
*/
.about a{
	color:var(--bdae93);
}

.about h1, .about h2{
	margin-top:17px;
}

.about table{
	margin-top:17px;
	margin-bottom:17px;
	border:1px dashed var(--504945);
	background:var(--1d2021);
}

.about table a{
	display:inline;
}

.about table td{
	padding:4px 7px;
	vertical-align:middle;
}

.about table tr td:first-child{
	width:30%;
	min-width:150px;
}

.about table tr:nth-child(odd){
	background:var(--282828);
}


/*
	POW (uses home-page centered layout)
*/
.home .pow-box{
	text-align:center;
}

.home .pow-box h2{
	color:var(--bdae93);
	margin-bottom:17px;
}

.home .pow-box .pow-status{
	font-family:monospace;
	color:var(--928374);
	margin:17px 0;
}

.home .pow-box .pow-alt{
	margin-top:17px;
	font-size:14px;
}

.home .pow-box .pow-alt a{
	color:var(--bdae93);
	text-decoration:underline;
}

.home .pow-box .pow-bypass-info{
	margin-top:10px;
	font-size:12px;
	color:var(--928374);
}

@keyframes spin{
	to{ transform:rotate(360deg); }
}

.spinner{
	display:inline-block;
	width:16px;
	height:16px;
	border:2px solid var(--bg3, #665c54);
	border-top-color:var(--fg2, #bdae93);
	border-radius:50%;
	animation:spin .8s linear infinite;
	vertical-align:middle;
	margin-right:7px;
}


/*
	ERROR PAGES (home-page centered layout)
*/
.home .error-box h1{
	font-size:60px;
	color:var(--504945);
	margin-bottom:7px;
}

.home .error-box p{
	margin-bottom:17px;
	color:var(--a89984);
}

.home .error-box a{
	color:var(--bdae93);
}


/*
	ADMIN / LOG
*/
.oracle-box{
	background:var(--bg1, #3c3836);
	border:1px solid var(--bg3, #665c54);
	border-radius:4px;
	padding:12px 16px;
	margin-bottom:12px;
}
.oracle-type{
	font-size:11px;
	color:var(--fg3, #928374);
	text-transform:uppercase;
	margin-bottom:4px;
}
.oracle-answer{
	font-size:22px;
	color:var(--fg0, #ebdbb2);
	font-weight:bold;
}
.oracle-rich{
	font-size:inherit;
	font-weight:normal;
}
.research-box{
	border-color:var(--yellow, #d8a657);
}
.research-box.deep-research{
	border-color:#83a598;
	border-width:2px;
}
.research-box .research-stream{
	font-size:14px;
	line-height:1.5;
	max-height:400px;
	overflow-y:auto;
}
.research-eta{
	font-size:11px;
	color:var(--fg3, #928374);
	font-weight:normal;
}
.oracle-copy{
	background:none;
	border:none;
	color:var(--fg3, #928374);
	cursor:pointer;
	font-size:12px;
	padding:0;
	margin-left:auto;
}
.oracle-copy:hover{
	color:var(--fg0, #ebdbb2);
}
.oracle-expand{
	display:inline;
}
.oracle-expand summary{
	display:inline;
	cursor:pointer;
	color:var(--fg3, #928374);
}
.oracle-expand summary:hover{
	color:var(--fg1, #d5c4a1);
}
.oracle-detail{
	font-size:12px;
	color:var(--fg2, #a89984);
	margin-top:4px;
	display:flex;
	align-items:baseline;
}
.spelling-suggestion{
	font-size:13px;
	color:var(--fg2, #a89984);
	margin-bottom:4px;
}
.spelling-suggestion a{
	color:var(--fg0, #ebdbb2);
}
.history-table{
	width:100%;
	border-collapse:collapse;
	font-size:13px;
}
.history-table th,.history-table td{
	padding:6px 10px;
	text-align:left;
	border-bottom:1px solid var(--bg3, #665c54);
	white-space:nowrap;
	width:1px;
}
.history-table th:nth-child(2),.history-table td:nth-child(2){
	width:auto;
	white-space:normal;
}
.history-table th{
	color:var(--fg1, #d5c4a1);
	font-size:12px;
	text-transform:uppercase;
}
.history-table td a{
	color:var(--fg1, #d5c4a1);
}
.history-badge{
	display:inline-block;
	padding:1px 6px;
	border-radius:3px;
	font-size:10px;
	font-weight:bold;
	text-transform:uppercase;
	letter-spacing:0.5px;
}
.badge-local{
	background:var(--blue, #83a598);
	color:var(--bg0, #282828);
}
.badge-server{
	background:var(--green, #b8bb26);
	color:var(--bg0, #282828);
}
.badge-both{
	background:var(--purple, #d3869b);
	color:var(--bg0, #282828);
}
.history-migration{
	margin-bottom:1em;
}
.btn-history-action{
	padding:6px 14px;
	font-size:13px;
	cursor:pointer;
	background:var(--bg2, #504945);
	color:var(--fg1, #d5c4a1);
	border:1px solid var(--bg3, #665c54);
	border-radius:3px;
}
.btn-history-action:hover{
	background:var(--bg3, #665c54);
}
.btn-history-action:disabled{
	opacity:0.5;
	cursor:not-allowed;
}
.instance-stats{
	display:flex;
	gap:20px;
	flex-wrap:wrap;
	margin:15px 0;
	font-size:14px;
	color:var(--fg2, #a89984);
}
.instance-stats b{
	color:var(--fg0, #ebdbb2);
}
.admin-log-page{
	margin-top:40px;
}

.admin-log{
	overflow-x:auto;
}

.admin-log h1{
	margin-top:17px;
	margin-bottom:17px;
}

.log-table{
	width:100%;
	text-align:left;
	border-collapse:collapse;
	font-size:13px;
	font-family:monospace;
}

.log-table th,
.log-table td{
	padding:6px 10px;
	border-bottom:1px solid var(--504945);
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
	width:auto;
}

.log-table th{
	color:var(--bdae93);
	background:var(--3c3836);
	font-size:12px;
	text-transform:uppercase;
	letter-spacing:0.5px;
	border-bottom:2px solid var(--504945);
}

.log-table tbody tr:nth-child(odd){
	background:var(--282828);
}

.log-table tbody tr:nth-child(even){
	background:var(--1d2021);
}

.log-table tbody tr:hover td{
	background:var(--3c3836);
}

.log-table td a{
	color:var(--bdae93);
	text-decoration:none;
	display:inline;
	padding:0;
}

.log-table td a:hover{
	text-decoration:underline;
}

.log-table .col-time{
	width:140px;
	color:var(--928374);
}

.log-table .col-query{
	width:auto;
}

.log-table .col-engines{
	width:35%;
	color:var(--928374);
	font-size:12px;
}

.log-table .col-elapsed{
	width:70px;
	text-align:right;
}

.log-table .col-results{
	width:60px;
	text-align:right;
}


/*
	CHANGELOG
*/
.changelog-page h1{
	margin-top:17px;
	margin-bottom:17px;
}

.changelog-entry{
	margin-bottom:17px;
	padding-bottom:17px;
	border-bottom:1px dashed var(--504945);
}

.changelog-entry h3{
	color:var(--bdae93);
	margin-bottom:4px;
}

.changelog-entry p{
	margin:0 0 4px;
}

.changelog-time{
	font-size:12px;
	color:var(--928374);
}


/*
	ENGINE STATS (public log page)
*/
.engine-stats{
	margin-bottom:27px;
}

.engine-stats th{
	white-space:nowrap;
}

.engine-stats .col-engine{
	width:auto;
	color:var(--bdae93);
	font-weight:bold;
}

.engine-stats .stat-zero{
	color:var(--504945);
}

.engine-status{
	display:inline-block;
	padding:1px 6px;
	border-radius:2px;
	font-size:11px;
	text-transform:uppercase;
	letter-spacing:0.5px;
	font-weight:bold;
}

.status-active{
	color:var(--1d2021);
	background:var(--green);
}

.status-suspended{
	color:var(--1d2021);
	background:var(--red);
}

.status-idle{
	color:var(--a89984);
	background:var(--3c3836);
	border:1px solid var(--504945);
}

.stats-empty{
	color:var(--928374);
	font-style:italic;
}

.changelog-page h2{
	margin-top:17px;
	margin-bottom:10px;
}

.changelog-page .engine-stats{
	margin-top:10px;
}


/*
	Engine timeline chart
*/
.engine-timeline{
	margin-top:30px;
	padding:10px 0;
	max-width:700px;
	margin-left:auto;
	margin-right:auto;
}

.tl-row{
	display:flex;
	align-items:center;
	margin-bottom:1px;
	font-size:11px;
	height:14px;
}

.tl-name{
	width:110px;
	flex-shrink:0;
	text-align:right;
	padding-right:7px;
	color:var(--fg3, #928374);
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}

.tl-track{
	flex:1;
	height:14px;
	position:relative;
}

.tl-dot{
	position:absolute;
	top:4px;
	width:5px;
	height:5px;
	border-radius:50%;
	background:var(--green, #8ec07c);
}

.tl-dot.tl-err{
	background:var(--red, #fb4934);
}

.tl-ms{
	width:50px;
	flex-shrink:0;
	text-align:left;
	padding-left:5px;
	color:var(--fg3, #928374);
	font-size:10px;
}

.tl-cutoff{
	text-align:center;
	font-size:11px;
	color:var(--red, #fb4934);
	margin-top:5px;
	border-top:1px dashed var(--red, #fb4934);
	padding-top:3px;
}

.timeline-cutoff{
	position:absolute;
	top:0;
	bottom:0;
	border-left:2px dashed var(--red);
	font-size:10px;
	color:var(--red);
}

.timeline-cutoff span{
	position:absolute;
	top:-14px;
	left:4px;
	white-space:nowrap;
}


/*
	Responsive image
*/
@media only screen and (max-width: 1454px){ #images .image-wrapper{ width:25%; } }
@media only screen and (max-width: 1161px){ #images .image-wrapper{ width:33.3333%; } }
@media only screen and (max-width: 750px){ #images .image-wrapper{ width:50%; } }
@media only screen and (max-width: 450px){ #images .image-wrapper{ width:100%; } }


/*
	Responsive design
*/
@media only screen and (max-width: 1550px){

	.web .left,
	.searchbox,
	#images .infobox{
		width:60%;
	}
}

@media only screen and (max-width: 1000px){
	form{
		padding-top:0;
	}

	.navigation{
		left:0;
		right:unset;
		line-height:22px;
	}

	.web .left,
	.searchbox{
		width:100%;
	}


	table a{
		padding:0;
	}

	.web.has-answer .left::before{
		display:block;
		content:"Results";
		font-size:24px;
		font-weight:bold;
		margin-bottom:17px;
		color:var(--bdae93);
	}

	.web .answer{
		max-height:200px;
	}

	#images .infobox{
		width:100%;
	}
}

.must-skipped{
	color:var(--red, #fb4934);
	font-size:12px;
	font-style:italic;
	margin-bottom:7px;
}

/* --- Admin panel --- */
.admin-panel{max-width:800px;margin:20px auto;padding:0 15px;overflow-x:auto}
.admin-panel h2{color:var(--fg0, #ebdbb2);margin:25px 0 10px;border-bottom:1px solid var(--bg2, #504945);padding-bottom:5px}
.admin-hint{color:var(--fg2, #a89984);font-size:13px;margin-bottom:15px}
.admin-form{background:var(--bg1, #3c3836);border-radius:6px;padding:15px;margin-bottom:20px}
.admin-form label{display:block;color:var(--fg1, #d5c4a1);font-size:13px;margin-bottom:8px}
.admin-form input[type="text"],
.admin-form input[type="password"]{width:100%;padding:6px 10px;background:var(--bg0, #282828);color:var(--fg0, #ebdbb2);border:1px solid var(--bg3, #665c54);border-radius:3px;font-size:14px;box-sizing:border-box;margin-top:3px}
.admin-form fieldset{border:1px solid var(--bg3, #665c54);border-radius:4px;padding:10px;margin:10px 0}
.admin-form fieldset legend{color:var(--fg2, #a89984);font-size:12px;padding:0 5px}
.admin-form .cb{display:block;color:var(--fg1, #d5c4a1);font-size:13px;margin:4px 0;cursor:pointer}
.admin-form .cb input{margin-right:6px}
.btn-primary{background:var(--blue, #83a598);color:var(--bg0, #282828);border:none;padding:8px 18px;border-radius:4px;cursor:pointer;font-size:13px;font-weight:bold;margin-top:10px}
.btn-primary:hover{opacity:.85}
.btn-sm{padding:3px 8px;font-size:11px;border:none;border-radius:3px;cursor:pointer}
.btn-danger{background:var(--red, #fb4934);color:var(--bg0, #282828)}
.btn-danger:hover{opacity:.85}
.admin-table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:25px;white-space:nowrap}
.admin-table th{text-align:left;color:var(--fg2, #a89984);border-bottom:1px solid var(--bg3, #665c54);padding:6px 8px;font-size:11px;text-transform:uppercase}
.admin-table th,.admin-table td{display:table-cell !important;padding:6px 8px;border-bottom:1px solid var(--bg1, #3c3836);color:var(--fg1, #d5c4a1)}
.admin-table code{background:var(--bg1, #3c3836);padding:1px 4px;border-radius:2px;font-size:12px}
.perm-badge{display:inline-block;background:var(--bg2, #504945);color:var(--fg1, #d5c4a1);padding:1px 6px;border-radius:3px;font-size:11px}
.perm-badge.revoked{background:var(--red, #fb4934);color:var(--bg0, #282828)}
.admin-msg{padding:10px 15px;border-radius:4px;margin-bottom:15px;font-size:13px}
.admin-msg.info{background:var(--bg2, #504945);color:var(--green, #b8bb26)}
.admin-msg.error{background:var(--bg2, #504945);color:var(--red, #fb4934)}
.admin-msg.key-reveal{background:var(--bg1, #3c3836);color:var(--yellow, #fabd2f);word-break:break-all}
.admin-msg.key-reveal code{font-size:14px;background:none}


/*
	Uptime bar + Search heatmap (AI-generated: Claude Opus 4.6)
*/
.uptime-heatmap-row{
	display:flex;
	gap:30px;
	flex-wrap:wrap;
	margin:15px 0;
}
.uptime-section,.heatmap-section{
	flex:1;
	min-width:200px;
}
.uptime-header{
	display:flex;
	justify-content:space-between;
	align-items:baseline;
	margin-bottom:4px;
}
.uptime-title,.heatmap-title{
	font-size:12px;
	color:var(--fg2, #a89984);
	text-transform:uppercase;
	letter-spacing:0.5px;
	font-weight:bold;
	margin-bottom:4px;
}
.uptime-current{
	font-size:11px;
	color:var(--fg3, #928374);
}
.uptime-day{
	width:10px;
	height:10px;
	border-radius:1px;
	flex-shrink:0;
}
.uptime-up{
	background:var(--green, #b8bb26);
}
.uptime-nodata{
	background:var(--3c3836, #3c3836);
}
.uptime-labels{
	display:flex;
	justify-content:space-between;
	font-size:10px;
	color:var(--504945);
	margin-top:2px;
}
.search-heatmap{
	display:grid;
	grid-template-rows:repeat(7, 10px);
	grid-auto-flow:column;
	gap:2px;
}
.heatmap-cell{
	width:10px;
	height:10px;
	border-radius:1px;
}
.heatmap-empty{
	background:transparent;
}
.heatmap-level-0{
	background:var(--3c3836, #3c3836);
}
.heatmap-level-1{
	background:#4c5c25;
}
.heatmap-level-2{
	background:#6d8a1e;
}
.heatmap-level-3{
	background:#8ea616;
}
.heatmap-level-4{
	background:var(--green, #b8bb26);
}

/* inline tab-completion hint */
.wrapper{position:relative}
.search-hint{
	position:absolute;
	top:0;
	left:0;
	right:0;
	height:100%;
	pointer-events:none;
	overflow:hidden;
	white-space:pre;
	line-height:36px;
	box-sizing:border-box;
	padding-left:10px;
	color:var(--fg3, #928374);
	opacity:0.4;
	font-size:inherit;
	font-family:inherit;
}

/* autocomplete dropdown */
.searchbox{position:relative}
.ac-box{
	display:none;
	position:absolute;
	top:100%;
	left:0;
	right:0;
	z-index:100;
	background:var(--bg, #282828);
	border:1px solid var(--bg3, #665c54);
	border-top:none;
	max-height:300px;
	overflow-y:auto;
}
.ac-item{
	padding:6px 12px;
	cursor:pointer;
	font-size:14px;
	color:var(--fg, #ebdbb2);
}
.ac-item:hover,.ac-item.ac-active{
	background:var(--bg1, #3c3836);
}
.ac-desc{
	color:var(--fg3, #928374);
	font-size:12px;
	margin-left:6px;
}

/* image viewer overlay */
.iv-overlay{
	display:none;
	position:fixed;
	top:0;left:0;right:0;bottom:0;
	z-index:9999;
	background:rgba(0,0,0,0.92);
	align-items:center;
	justify-content:center;
	flex-direction:column;
}
.iv-close{
	position:absolute;
	top:15px;right:20px;
	font-size:30px;
	color:var(--fg, #ebdbb2);
	cursor:pointer;
	z-index:10000;
}
.iv-img{
	max-width:90vw;
	max-height:80vh;
	object-fit:contain;
}
.iv-info{
	margin-top:10px;
	text-align:center;
	color:var(--fg2, #d5c4a1);
	font-size:13px;
}
.iv-source{
	color:var(--blue, #83a598);
	margin-right:15px;
}
.iv-dims{
	color:var(--fg3, #bdae93);
}

/* AI research output styles */
.research-quote{
	font-family:monospace;
	font-size:11px;
	color:var(--fg3, #928374);
	background:var(--bg, #282828);
	border-left:2px solid var(--bg3, #665c54);
	padding:4px 8px;
	margin:4px 0;
	white-space:pre-wrap;
	max-height:80px;
	overflow-y:auto;
}
.research-quote.tall{
	max-height:400px;
}
.research-quote pre{
	margin:0;
	font-size:11px;
	color:var(--fg3, #928374);
}
.research-quote.result{
	border-left-color:var(--green, #8ec07c);
	color:var(--fg2, #d5c4a1);
}
.research-final{
	margin-top:8px;
	padding-top:8px;
	border-top:1px solid var(--bg3, #665c54);
}

/* AI research debug mode */
.research-debug{
	font-family:monospace;
	font-size:11px;
	color:var(--fg3, #928374);
	padding:2px 0;
	border-left:2px solid var(--bg3, #665c54);
	padding-left:8px;
	margin:2px 0;
}
.research-debug.tool-call{
	color:var(--yellow, #d8a657);
}
.research-debug.tool-result{
	color:var(--fg3, #928374);
	white-space:pre-wrap;
	max-height:100px;
	overflow-y:auto;
}


/*
	Keyboard navigation
*/
.text-result.kb-focus,
.image-wrapper.kb-focus,
.video-result.kb-focus,
.news-result.kb-focus,
.music-result.kb-focus{
	outline:2px solid var(--yellow, #d8a657);
	outline-offset:2px;
}

/* Keyboard help overlay */
.kb-help-overlay{
	display:none;
	position:fixed;
	inset:0;
	z-index:10000;
	background:rgba(0,0,0,0.8);
	align-items:center;
	justify-content:center;
}
.kb-help-overlay.visible{
	display:flex;
}
.kb-help-box{
	background:var(--282828);
	border:1px solid var(--504945);
	border-radius:4px;
	padding:20px 30px;
	max-width:360px;
	color:var(--ebdbb2);
	font-size:14px;
	line-height:1.8;
}
.kb-help-box h3{
	margin-bottom:10px;
	color:var(--bdae93);
}
.kb-help-box kbd{
	display:inline-block;
	background:var(--3c3836);
	border:1px solid var(--504945);
	border-radius:3px;
	padding:1px 6px;
	font-family:monospace;
	font-size:13px;
	min-width:1.4em;
	text-align:center;
}


/*
	Infinite scroll loading indicator
*/
.infinite-scroll-loading{
	text-align:center;
	padding:20px;
	color:var(--928374);
	font-size:14px;
}
.infinite-scroll-end{
	text-align:center;
	padding:10px;
	color:var(--504945);
	font-size:13px;
	margin-bottom:30px;
}


/* --- Domain clustering --- */
.domain-cluster{
	margin-top:-18px;
	margin-bottom:8px;
}
.domain-cluster summary{
	font-size:11px;
	color:var(--bg3, #665c54);
	cursor:pointer;
	padding:0;
	list-style:none;
	user-select:none;
	font-style:italic;
}
.domain-cluster summary::-webkit-details-marker{
	display:none;
}
.domain-cluster summary:hover{
	color:var(--fg2, #a89984);
}
.domain-cluster .cluster-item{
	margin-left:20px;
	font-size:0.92em;
}
.result-score{
	font-size:10px;
	color:var(--fg3, #928374);
	float:right;
}

/* Social: like + bookmark + friction buttons */
.result-social{
	display:inline-flex;
	gap:6px;
	margin-left:8px;
	vertical-align:middle;
}
.result-social button{
	background:none;
	border:none;
	cursor:pointer;
	font-size:11px;
	color:var(--bg3, #665c54);
	padding:2px 3px;
	border-radius:3px;
	opacity:0.5;
	filter:grayscale(100%);
	transition:color 0.15s, opacity 0.15s, filter 0.15s;
}
.result-social button:hover{
	opacity:0.8;
	filter:grayscale(50%);
}
.btn-like.liked{
	color:#e06c75;
	opacity:0.85;
	filter:grayscale(0%);
}
.btn-like.liked svg path{
	fill:currentColor;
}
.btn-bookmark.bookmarked{
	color:#e5c07b;
	opacity:0.85;
	filter:grayscale(0%);
}
.btn-bookmark.bookmarked svg path{
	fill:currentColor;
}
.like-count, .friction-count, .bookmark-count{ font-size:10px; margin-left:2px; }
.like-count:empty, .friction-count:empty, .bookmark-count:empty{ display:none; }
.btn-friction.active{
	color:var(--red);
	opacity:0.85;
	filter:grayscale(0%);
}
.friction-count{
	font-size:11px;
	margin-left:2px;
}
.bookmarked-result{
	border-left:3px solid var(--accent, #e5c07b);
	padding-left:8px;
}
@keyframes social-flash-anim{
	0%{opacity:1;filter:grayscale(0%)}
	100%{opacity:0.5;filter:grayscale(100%)}
}
.social-flash{
	animation:social-flash-anim 0.3s ease-out;
}
@keyframes social-denied-anim{
	0%,100%{transform:translateX(0)}
	20%,60%{transform:translateX(-2px)}
	40%,80%{transform:translateX(2px)}
}
.social-denied{
	animation:social-denied-anim 0.4s ease-in-out;
}

/* Engine playground form */
#engine-form fieldset{
	margin-bottom:1em;
	border:1px solid var(--bg2, #504945);
	padding:12px;
	border-radius:4px;
}
#engine-form label{
	display:block;
	margin-bottom:8px;
}
#engine-form input[type="text"]{
	width:80%;
	padding:4px 8px;
	background:var(--bg1, #3c3836);
	color:var(--fg1, #ebdbb2);
	border:1px solid var(--bg3, #665c54);
	border-radius:3px;
}
#engine-form select{
	padding:4px 8px;
	background:var(--bg1, #3c3836);
	color:var(--fg1, #ebdbb2);
	border:1px solid var(--bg3, #665c54);
	border-radius:3px;
}
#test-btn{
	margin-top:8px;
	padding:6px 16px;
	background:var(--bg2, #504945);
	color:var(--fg1, #ebdbb2);
	border:1px solid var(--bg3, #665c54);
	border-radius:3px;
	cursor:pointer;
}
#test-btn:hover{
	background:var(--bg3, #665c54);
}
#test-results{
	margin-top:12px;
}
.infobox.error{
	border-color:#e06c75;
	color:#e06c75;
}


/*
	RTL (right-to-left) overrides
*/
[dir="rtl"] .navigation{ text-align:left; }
[dir="rtl"] .searchbox input[type="text"]{ padding-left:0; padding-right:10px; }
[dir="rtl"] .searchbox input[type="submit"]{ float:left; }
[dir="rtl"] .img-search-btn{ float:left; }
[dir="rtl"] .tabs .tab{ direction:rtl; }
[dir="rtl"] .result-social{ float:left; }
[dir="rtl"] .result-score{ float:left; }
[dir="rtl"] .web .type{ float:right; margin:2px 0 0 7px; }
[dir="rtl"] .thumb-wrap{ float:left; margin-left:0; margin-right:7px; }
[dir="rtl"] .video-result .thumb-wrap{ float:right; margin-right:0; margin-left:10px; }
[dir="rtl"] .domain-cluster .cluster-item{ margin-left:0; margin-right:20px; }
[dir="rtl"] .bookmarked-result{ border-left:none; padding-left:0; border-right:3px solid var(--accent, #e5c07b); padding-right:8px; }

/* Related searches */
.related-searches{ margin-top:20px; }
.related-searches h3{ font-size:13px; color:var(--fg3); margin-bottom:8px; }
.related-grid{ display:flex; flex-wrap:wrap; gap:6px; }
.related-grid a{ font-size:13px; color:var(--blue); padding:4px 10px; border:1px solid var(--bg3); border-radius:3px; text-decoration:none; }
.related-grid a:hover{ background:var(--bg2); }

/* Bookmark folder picker dropdown */
.bm-folder-picker{ position:absolute; z-index:100; background:var(--bg1, #282828); border:1px solid var(--bg3, #665c54); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,0.3); min-width:160px; padding:4px 0; font-size:13px; }
.bm-folder-picker .bm-fp-item{ display:block; width:100%; padding:6px 12px; text-align:left; cursor:pointer; color:var(--fg, #ebdbb2); background:none; border:none; font:inherit; }
.bm-folder-picker .bm-fp-item:hover{ background:var(--bg2, #3c3836); }
.bm-folder-picker .bm-fp-divider{ border-top:1px solid var(--bg3, #665c54); margin:4px 0; }
.bm-folder-picker .bm-fp-input{ display:flex; padding:4px 8px; gap:4px; }
.bm-folder-picker .bm-fp-input input[type="text"]{ flex:1; padding:4px 6px; font-size:12px; border:1px solid var(--bg3); border-radius:3px; background:var(--bg0, #1d2021); color:var(--fg); }
.bm-folder-picker .bm-fp-input button{ padding:4px 8px; font-size:12px; cursor:pointer; border:1px solid var(--bg3); border-radius:3px; background:var(--bg2); color:var(--fg); }

/* Bookmarks page */
.bm-folder{ margin-bottom:2em; }
.bm-folder-title{ font-size:16px; margin-bottom:8px; color:var(--fg); }
.bm-count{ color:var(--fg3, #928374); font-weight:normal; font-size:14px; }
.bm-share-toggle{ display:block; font-size:13px; color:var(--fg3); margin-bottom:6px; cursor:pointer; }
.bm-share-toggle input{ margin-right:4px; }
.bm-share-link{ font-size:12px; color:var(--fg3); margin-bottom:8px; }
.bm-share-link a{ color:var(--blue, #83a598); }
.bm-list{ display:flex; flex-direction:column; gap:8px; }
.bm-item{ display:flex; flex-direction:column; gap:2px; padding:8px 0; border-bottom:1px solid var(--bg2, #3c3836); }
.bm-title{ color:var(--blue, #83a598); font-size:14px; text-decoration:none; word-break:break-all; }
.bm-title:hover{ text-decoration:underline; }
.bm-url{ font-size:11px; color:var(--fg3, #928374); word-break:break-all; }
.bm-date{ font-size:11px; color:var(--fg3, #928374); }
.bm-empty{ font-size:13px; color:var(--fg3); font-style:italic; }

/* HN discussion badges and expansion panel */
.btn-discussions{
	background:none;
	border:none;
	cursor:pointer;
	font-size:11px;
	color:var(--bg3, #665c54);
	padding:2px 4px;
	border-radius:3px;
	opacity:0.3;
	filter:grayscale(100%);
	transition:color 0.15s, opacity 0.15s, filter 0.15s;
}
.btn-discussions:hover{ opacity:0.5; }
.btn-discussions.active{
	color:var(--blue, #83a598);
	opacity:0.6;
	filter:grayscale(0%);
}
.discussions-count{ font-size:11px; margin-left:2px; }
.discussions-panel{
	margin-top:4px;
	padding:6px 10px;
	background:var(--bg0, #282828);
	border:1px solid var(--bg2, #504945);
	border-radius:3px;
	font-size:12px;
}
.discussions-row{
	display:flex;
	align-items:baseline;
	gap:8px;
	padding:2px 0;
}
.discussions-link{
	color:var(--blue, #83a598);
	text-decoration:none;
	flex:1;
	min-width:0;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}
.discussions-link:hover{ text-decoration:underline; }
.discussions-meta{
	color:var(--fg3, #928374);
	font-size:11px;
	white-space:nowrap;
	flex-shrink:0;
}

/* Screen-reader-only: visually hidden but accessible to assistive tech */
.sr-only, .skip-link{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link:focus{
	position:fixed;
	top:0;
	left:0;
	background:var(--bg0, #282828);
	color:var(--fg, #ebdbb2);
	padding:8px 16px;
	z-index:10000;
	width:auto;
	height:auto;
	overflow:visible;
	clip:auto;
	margin:0;
	white-space:normal;
	text-decoration:underline;
	font-size:14px;
}

/* Ranking info tooltip */
.ranking-info{
	background:none;
	border:none;
	cursor:help;
	font-size:11px;
	color:var(--bg3, #665c54);
	padding:2px 4px;
	opacity:0.3;
	transition:color 0.15s, opacity 0.15s;
}
.ranking-info:hover{
	opacity:0.6;
	color:var(--fg2, #a89984);
}

/* Result diff: blue star for new results */
.result-new-star{
	display:inline;
	font-size:10px;
	color:#5b8fbd;
	opacity:0.7;
	margin-right:4px;
}

/* Image strip on web results */
.image-strip{
	margin:8px 0 12px;
	position:relative;
}
.image-strip-scroll{
	display:flex;
	gap:6px;
	overflow-x:auto;
	scrollbar-width:thin;
	padding-bottom:4px;
}
.image-strip-item{
	flex:0 0 auto;
}
.image-strip-item img{
	height:80px;
	width:auto;
	border-radius:3px;
	object-fit:cover;
	display:block;
}
.image-strip-more{
	display:inline-block;
	font-size:11px;
	margin-top:4px;
	color:var(--blue,#83a598);
}

/* Focus indicators for keyboard navigation */
:focus-visible{ outline: 2px solid var(--blue, #83a598); outline-offset: 2px; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible{ outline: 2px solid var(--blue, #83a598); outline-offset: 2px; }

/* Tracker tag dropdown (click to expand multi-tracker categories) */
.tracker-dropdown{
	position:absolute;
	top:1.5em;
	left:0;
	background:var(--bg0, #282828);
	border:1px solid var(--bg3, #665c54);
	border-radius:3px;
	padding:4px 0;
	z-index:100;
	white-space:nowrap;
	margin-top:2px;
}
.tracker-dropdown a{
	display:block;
	padding:2px 10px;
	color:var(--fg2, #a89984);
	font-size:10px;
	text-decoration:none;
}
.tracker-dropdown a:hover{
	background:var(--bg2, #504945);
}
.tracker-tag-multi{
	position:relative;
}

/* Dictionary oracle tabs */
.dict-tabs{ position:relative; }
.dict-tabs input[type="radio"]{ display:none; }
.dict-tabs label{ display:inline-block; padding:2px 8px; font-size:11px; cursor:pointer; color:var(--fg3); border-bottom:2px solid transparent; margin-right:4px; }
.dict-tabs input[type="radio"]:checked + label{ color:var(--fg0); border-bottom-color:var(--fg0); }
.dict-tab-content{ display:none; margin-top:6px; }
.dict-tabs input[type="radio"]:nth-of-type(1):checked ~ .dict-tab-content[data-tab="0"]{ display:block; }
.dict-tabs input[type="radio"]:nth-of-type(2):checked ~ .dict-tab-content[data-tab="1"]{ display:block; }
.dict-tabs input[type="radio"]:nth-of-type(3):checked ~ .dict-tab-content[data-tab="2"]{ display:block; }

/*
	ENGINE HEALTH DASHBOARD (/admin/health)
*/
.health-summary{
	margin-bottom:14px;
	display:flex;
	gap:8px;
	align-items:center;
	flex-wrap:wrap;
}
.health-total{
	color:var(--fg3);
	font-size:12px;
	margin-left:8px;
}
.health-table{
	width:100%;
	border-collapse:collapse;
	font-size:13px;
}
.health-table th{
	text-align:left;
	padding:6px 10px;
	border-bottom:2px solid var(--bg2);
	color:var(--fg2);
	font-size:11px;
	text-transform:uppercase;
	letter-spacing:0.5px;
}
.health-table td{
	padding:5px 10px;
	border-bottom:1px solid var(--bg1);
	vertical-align:middle;
}
.health-table tbody tr:hover td{
	background:var(--bg1);
}
.health-table .col-engine{
	color:var(--bdae93);
	font-weight:bold;
}
.health-table .col-cats{
	color:var(--fg3);
	font-size:11px;
}
.health-err-detail{
	color:var(--fg3);
	font-size:11px;
	margin-left:4px;
}
.status-ok{
	color:var(--1d2021);
	background:var(--green);
}
.status-degraded{
	color:var(--1d2021);
	background:var(--yellow);
}
.status-down{
	color:var(--1d2021);
	background:var(--red);
}
.health-legend{
	margin-top:18px;
	color:var(--fg3);
	font-size:11px;
}
.health-legend .engine-status{
	vertical-align:middle;
}

/* --- Lens (visual search) --- */
.lens-dropzone{
	border:2px dashed var(--504945);
	border-radius:4px;
	padding:48px 24px;
	text-align:center;
	cursor:pointer;
	color:var(--928374);
	transition:border-color 0.2s, background 0.2s;
	max-width:640px;
}
.lens-dropzone:hover,
.lens-dragover{
	border-color:var(--bdae93);
	background:var(--3c3836);
}
.lens-dropzone svg{
	display:block;
	margin:0 auto 12px;
	opacity:0.5;
}
.lens-dropzone p{
	margin:4px 0;
}
.lens-dropzone-hint{
	font-size:12px;
	opacity:0.6;
}
.lens-canvas-container{
	position:relative;
	display:inline-block;
	line-height:0;
}
.lens-canvas-container canvas{
	display:block;
	max-width:100%;
	border:1px solid var(--504945);
	border-radius:2px;
}
#lens-overlays{
	position:absolute;
	top:0;
	left:0;
	pointer-events:none;
}
.lens-bbox{
	position:absolute;
	border:2px solid rgba(131,165,152,0.6);
	background:rgba(131,165,152,0.1);
	cursor:pointer;
	pointer-events:auto;
	transition:background 0.15s, border-color 0.15s;
}
.lens-bbox:hover{
	background:rgba(131,165,152,0.25);
	border-color:rgba(131,165,152,0.9);
}
.lens-action-menu{
	position:absolute;
	z-index:1000;
	background:var(--282828);
	border:1px solid var(--504945);
	border-radius:2px;
	box-shadow:0 2px 8px rgba(0,0,0,0.3);
	min-width:160px;
}
.lens-action-menu button{
	display:block;
	width:100%;
	text-align:left;
	background:none;
	border:none;
	color:var(--bdae93);
	padding:8px 12px;
	cursor:pointer;
	font-size:13px;
}
.lens-action-menu button:hover{
	background:var(--3c3836);
}
.lens-text-panel{
	max-width:640px;
	background:var(--282828);
	border:1px solid var(--504945);
	border-radius:2px;
	padding:12px;
}
.lens-text-panel h3{
	margin-bottom:8px;
}
#lens-text-content{
	white-space:pre-wrap;
	color:var(--a89984);
	font-family:monospace;
	font-size:13px;
	max-height:400px;
	overflow-y:auto;
}
.lens-labels{
	max-width:640px;
}
.lens-qr-item{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
	padding:6px 0;
	border-bottom:1px solid var(--3c3836);
	color:var(--a89984);
	font-size:13px;
	word-break:break-all;
}
.lens-qr-actions{
	display:flex;
	gap:6px;
	flex-shrink:0;
}
.lens-action-btn{
	background:var(--3c3836);
	border:1px solid var(--504945);
	color:var(--bdae93);
	padding:3px 10px;
	cursor:pointer;
	border-radius:2px;
	font-size:12px;
	text-decoration:none;
}
.lens-action-btn:hover{
	background:var(--504945);
}
.lens-url-row{
	display:flex;
	align-items:center;
	max-width:640px;
}
.lens-mode-toolbar{
	display:flex;
	gap:4px;
	margin-bottom:8px;
}
.lens-mode-btn{
	background:var(--3c3836);
	border:1px solid var(--504945);
	color:var(--928374);
	padding:4px 14px;
	cursor:pointer;
	border-radius:2px;
	font-size:12px;
}
.lens-mode-btn.active{
	background:var(--504945);
	color:var(--ebdbb2);
	border-color:var(--bdae93);
}
.lens-selection{
	position:absolute;
	border:2px solid rgba(69,133,136,0.8);
	background:rgba(69,133,136,0.2);
	pointer-events:none;
	z-index:10;
}
.lens-region-menu{
	position:absolute;
	z-index:20;
	display:flex;
	gap:4px;
	background:var(--282828);
	border:1px solid var(--504945);
	border-radius:2px;
	padding:6px;
	box-shadow:0 2px 8px rgba(0,0,0,0.3);
}
.lens-region-menu button{
	background:var(--3c3836);
	border:1px solid var(--504945);
	color:var(--bdae93);
	padding:4px 10px;
	cursor:pointer;
	border-radius:2px;
	font-size:12px;
	white-space:nowrap;
}
.lens-region-menu button:hover{
	background:var(--504945);
}
.lens-label{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;background:var(--3c3836);border:1px solid var(--504945);color:var(--928374);text-decoration:none}
.lens-label.med,.lens-label.high{cursor:pointer}
.lens-label.med{background:var(--504945);color:var(--bdae93)}
.lens-label.high{background:rgba(184,187,38,0.15);border-color:rgba(184,187,38,0.4);color:var(--b8bb26)}
