
/**
 * index
 */
.default-body{
	padding:1rem;
	height:auto;
	min-height:100vh;
	font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	background:#fff;
	font-size:.6rem;
}

.flex-center-body{
	display:flex;
	flex-flow:column nowrap;
	justify-content:center;
	align-items:center;
	align-content:center;
}

.container{
	max-width:60rem;
	min-width:2.45rem;
	width:100%;
	background:#fff;
	border-radius:.5rem;
	box-shadow:0 .25rem .5rem rgba(0,0,0,0.2);
	overflow:hidden;
}

.header{
	padding:1rem;
	background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color:#fff;
	text-align:center;
}

.header a:link{
	color:#fff;
	text-decoration:none;
}

.header a:visited{
	color:#fff;
	text-decoration:none;
}

.header a:hover{
	color:#fff;
	text-decoration:none;
}

.flex-space-between-header{
	display:flex;
	flex-flow:row nowrap;
	justify-content:space-between;
	align-items:center;
}

.header h1{
	margin-bottom:.5rem;
	font-size:1rem;
}

.flex-space-between-header h1{
	margin-bottom:0;
}

.header h1.h1-icon::before{
	padding:0 .5rem 0 0;
	font-family:'LussaFont-Icon';
	font-size:1rem;
}

.header h1.h1-icon.search::before{
	content:'\e70b';
}

.header h1.h1-icon.config::before{
	content:'\e62a';
}

.header p{
	font-size:.8rem;
	opacity:0.9;
}

.back-button{
	background:rgba(255, 255, 255, 0.2);
	color:#fff;
	border:.1rem solid rgba(255, 255, 255, 0.3);
	padding:.5rem 1.25rem;
	border-radius:1.25rem;
	text-decoration:none;
	font-size:.7rem;
	transition:all 0.3s ease;
}

.back-button:hover{
	background:rgba(255, 255, 255, 0.3);
	transform:translateY(-.1rem);
}

.search-section{
	padding:2rem;
	position:relative;
	width:100%;
	text-align:center;
}

.search-section[data-msg]::before{
	content:attr(data-msg);
	position:absolute;
	top:.5rem;
	left:0;
	width:100%;
	height:1rem;
	line-height:1rem;
	font-size:.7rem;
	color:#ff0;
	display:block;
	overflow:hidden;
}

.search-box{
	margin:0 auto 1.5rem;
	max-width:40rem;
}

.search-input{
	padding:.7rem .8rem;
	width:100%;
	font-size:.7rem;
	border:.15rem solid #e0e0e0;
	border-radius:2.5rem;
	outline:none;
	transition:all 0.3s ease;
}

.search-input:focus{
	border-color:#667eea;
	box-shadow:0 .25rem 1rem rgba(102, 126, 234, 0.2);
}

.search-button{
	margin-top:1rem;
	padding:.6rem 2rem;
	background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color:#fff;
	border:none;
	font-size:.8rem;
	border-radius:2.5rem;
	cursor:pointer;
	transition:transform 0.3s ease;
}

.search-button:hover{
	transform:translateY(-.1rem);
}

.dashboard{
	padding:.5rem;
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(15rem, 1fr));
	gap:.8rem;
}

.card{
	padding:.5rem;
	width:100%;
	background:#f1f1f1;
	border-radius:.5rem;
	box-shadow:0 .25rem .75rem rgba(0,0,0,0.05);
}

.card h3{
	margin-bottom:.75rem;
	color:#333;
	font-size:.8rem;
}

.stat{
	margin:.5rem 0;
	font-size:1rem;
	font-weight:bold;
	color:#667eea;
}

.controls{
	margin-top:1rem;
	display:flex;
	gap:.5rem;
}

.btn{
	padding:.5rem 1rem;
	border:none;
	border-radius:.3rem;
	cursor:pointer;
	transition:all 0.3s ease;
}

.btn-start{
	background:#4CAF50;
	color:#fff;
}

.btn-stop{
	background:#f44336;
	color:#fff;
}

.btn-config{
	background:#2196F3;
	color:#fff;
}

.btn:hover{
	opacity:0.9;
	transform:translateY(-.1rem);
}

.status-indicator{
	margin-right:.4rem;
	display:inline-block;
	width:.6rem;
	height:.6rem;
	border-radius:50%;
}

.status-running{
	background:#4CAF50;
	box-shadow:0 0 .5rem #4CAF50;
}

.status-stopped{
	background:#f44336;
}

.footer{
	padding:1rem;
	margin:.5rem 0 0 0;
	text-align:center;
	color:#666;
	border-top:.05rem solid #eee;
}

/**
 * config
 */
.config-container{
	padding:1rem;
}

.form-group{
	width:100%;
	margin-bottom:.5rem;
}

.form-group label{
	margin-bottom:.4rem;
	display:block;
	font-weight:600;
	color:#333;
	font-size:.8rem;
}

.form-control{
	width:100%;
	padding:.6rem .75rem;
	font-size:.6rem;
	border:.1rem solid #e0e0e0;
	border-radius:.4rem;
	transition:all 0.3s ease;
	font-family:inherit;
}

.form-control:focus{
	outline:none;
	border-color:#667eea;
	box-shadow:0 0 0 .15rem rgba(102, 126, 234, 0.1);
}

.form-control.select{
	background:#fff;
	cursor:pointer;
}

.form-control:invalid {
	border-color:#dc3545;
}

.form-control:valid {
	border-color:#28a745;
}

.checkbox-group{
	display:flex;
	flex-flow:row nowrap;
	justify-content:flex-start;
	align-items:center;
	gap:.5rem;
}

.checkbox-group input{
	margin:0;
}

.checkbox-group input[type="checkbox"]{
	width:.9rem;
	height:.9rem;
	cursor:pointer;
}

.checkbox-group label{
	margin:0;
	margin-bottom:0;
	cursor:pointer;
}

.form-row{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:1rem;
}

.form-section{
	margin-bottom:1rem;
	padding:1rem;
	background:#f1f1f1;
	border-radius:.5rem;
	text-align:left;
}

.form-section h2 {
	color:#667eea;
	margin-bottom:1rem;
	padding-bottom:.5rem;
	border-bottom:.1rem solid #e0e0e0;
}

.file-types-container{
	margin-top:.5rem;
	display:flex;
	flex-flow:row wrap;
	justify-content:flex-start;
	align-items:center;
	gap:.5rem;
}

.file-type-tag {
	margin:0;
	background:#ddd;
	padding:.25rem .5rem;
	border-radius:.3rem;
	display:flex;
	flex-flow:row nowrap;
	justify-content:center;
	align-items:center;
	gap:.25rem;
}

.file-type-tag .remove{
	color:#666;
	cursor:pointer;
}

.file-type-tag .remove:hover{
	color:#dc3545;
}

.help-text {
	margin-top:.25rem;
	display:block;
	color:#666;
}

.alert {
	padding:.5rem;
	margin-bottom:.5rem;
	border-radius:.3rem;
	display:none;
}

.alert-success {
	background:#d4edda;
	color:#155724;
	border:.025rem solid #c3e6cb;
}

.alert-error{
	background:#f8d7da;
	color:#721c24;
	border:.025rem solid #f5c6cb;
}

.buttons{
	margin-top:1rem;
	padding-top:1rem;
	display:flex;
	flex-flow:row nowrap;
	gap:.5rem;
	justify-content:center;
	align-items:center;
	border-top:.025rem solid #e0e0e0;
}

.buttons>.btn{
	margin:0;
}

.btn-primary{
	background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color:#fff;
}

.btn-secondary{
	background:#6c757d;
	color:#fff;
}

/**
 * search
 */
.with-search{
	margin:0 auto;
}

.stats-bar{
	padding:.75rem;
	display:flex;
	flex-flow:row nowrap;
	justify-content:space-between;
	align-items:center;
	gap:.5rem;
	color:#666;
}

.result-total{
	margin:0;
}

.total-span{
	font-weight:bold;
}

.result-current-num-between{
	margin:0;
}

.results-container{
	padding:.75rem;
	background:#fff;
	border-radius:0 0 .3rem .3rem;
	text-align:left;
}

.result-item{
	margin:.25rem auto;
	padding:.5rem;
	transition:all 0.3s ease;
}

.result-item:hover{
	background:#f3f3f3;
}

.result-item:hover .result-snippet{
	color:#282828;
}

.result-title{
	margin-bottom:.5rem;
	font-size:.9rem;
    white-space: normal;
    word-wrap: break-word;
}

.result-title a{
	color:#1a0dab;
	text-decoration:none;
	font-weight:600;
}

.result-title a:hover{
	text-decoration:underline;
}

.result-url{
	margin-bottom:.5rem;
	color:#006621;
	word-break:break-all;
	font-size:.7rem;
}

.result-snippet{
	margin-bottom:.5rem;
	color:#545454;
	line-height:1.6;
	font-size:.7rem;
}

.result-meta{
	display:flex;
	flex-flow:row nowrap;
	justify-content:flex-start;
	align-items:center;
	gap:.5rem;
	color:#70757a;
	font-size:.6rem;
}

.result-weight{
	margin-top:.5rem;
	font-size:.6rem;
	color:#666;
}

.result-weight .weight-score{
	font-size:.7rem;
	color:#1a0dab;
}

.file-type{
	margin:0;
	padding:.15rem .3rem;
	background:#0e78e2;
	color:#fff;
	border-radius:.15rem;
	font-size:.6rem;
}

.file-modified{
	margin:0;
}

.file-indexed{
	margin:0;
}

.no-results{
	padding:1.5rem 1rem;
	text-align:center;
	color:#666;
}

.no-results-icon{
	margin-bottom:.5rem;
	font-size:1.3rem;
}

.pagination{
	margin:1rem auto 0 auto;
	padding:.8rem 0 0 0;
	display:flex;
	flex-flow:row nowrap;
	justify-content:flex-end;
	align-items:center;
	gap:.5rem;
	border-top:.025rem solid #e0e0e0;
}

.pagination>a{
	margin:0;
	display:block;
	width:auto;
	height:auto;
	flex-shrink:0;
}

.pagination-button{
	margin:0;
	padding:.3rem .6rem;
	border:.1rem solid #e0e0e0;
	background:#fff;
	color:#667eea;
	border-radius:.3rem;
	cursor:pointer;
	flex-shrink:0;
	transition:all 0.3s ease;
}

.pagination-button:hover:not(:disabled){
	background:#667eea;
	color:#fff;
	border-color:#667eea;
}

.pagination-button:disabled{
	opacity:.5;
	cursor:not-allowed;
}

.pagination-info{
	margin:0;
	color:#666;
}

.search-tips{
	margin-top:1rem;
	padding:.5rem;
	background:#e8f4fd;
	border-radius:.3rem;
	text-align:left;
}

.search-tips h3{
	margin-bottom:.5rem;
	color:#1a73e8;
}

.search-tips ul{
	padding-left:1rem;
	
}

.search-tips li{
	margin-bottom:.3rem;
	list-style:none outside;
	color:#5f6368;
}

.search-tips li:before{
	content:'•';
	color:#1a73e8;
	font-weight:bold;
	display:inline-block;
	width:1rem;
	margin-left:-1rem;
}

.highlight{
	padding:0 .25rem;
	background:rgba(255, 215, 0, .5);
	color:#000;
}

.nav-buttons{
	margin-top:1rem;
	display:flex;
	flex-flow:row nowrap;
	justify-content:flex-start;
	align-items:center;
	gap:.5rem;
}

.nav-button{
	padding:.5rem 1rem;
	border:none;
	border-radius:.3rem;
	text-decoration:none;
	color:#fff;
	font-weight:600;
	transition:all 0.3s ease;
}

.nav-button-home{
	background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.nav-button-config{
	background:#6c757d;
}

.nav-button:hover{
	transform:translateY(-.1rem);
	box-shadow:0 .25rem .5rem rgba(0,0,0,0.1);
}

.result-actions{
	margin-top:.5rem;
	display:flex;
	flex-flow:row nowrap;
	justify-content:flex-end;
	align-items:center;
	gap:.5rem;
	font-size:.7rem;
}

.result-actions>a{
	margin:0;
}

.action-button{
	margin:0;
	padding:.25rem .6rem;
	border:.025rem solid #e0e0e0;
	background:#fff;
	border-radius:.2rem;
	cursor:pointer;
	color:#666;
	transition:all 0.2s ease;
}

.action-button:hover{
	background:#f8f9fa;
	border-color:#667eea;
	color:#667eea;
}

.notice{
	padding:.5rem 0 0 0;
}

@keyframes slideIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes slideOut {
	from {
		opacity: 1;
	}
	to {
		opacity: 0;
	}
}

/**
 * media
 */
@media (max-width:480px){
	.default-body{
		padding:.6rem;
	}

	.with-search{
		flex-flow:column nowrap;
		gap:.8rem;
	}

	.search-section{
		padding:1rem;
	}

	.config-container{
		padding:.6rem;
	}
	
	.form-row{
		grid-template-columns:1fr;
	}

	.stats-bar {
		flex-direction:column;
		gap:.5rem;
		text-align:center;
	}

	.pagination{
		flex-wrap:wrap;
	}
}