|
|
|
* { |
|
margin: 0; |
|
padding: 0; |
|
box-sizing: border-box; |
|
} |
|
|
|
body { |
|
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; |
|
line-height: 1.6; |
|
color: #333; |
|
background: linear-gradient(135deg, #e0ecce 0%, #c8e6c9 100%); |
|
min-height: 100vh; |
|
} |
|
|
|
.container { |
|
max-width: 1200px; |
|
margin: 0 auto; |
|
padding: 0 20px; |
|
} |
|
|
|
|
|
.header { |
|
background: rgba(255, 255, 255, 0.95); |
|
backdrop-filter: blur(10px); |
|
border-radius: 0 0 20px 20px; |
|
margin-bottom: 30px; |
|
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); |
|
} |
|
|
|
.header-content { |
|
padding: 40px 20px; |
|
text-align: center; |
|
} |
|
|
|
.title { |
|
font-size: 2.5rem; |
|
font-weight: 700; |
|
color: #2d3748; |
|
margin-bottom: 10px; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
gap: 15px; |
|
} |
|
|
|
.title i { |
|
color: #689f38; |
|
} |
|
|
|
.subtitle { |
|
font-size: 1.1rem; |
|
color: #718096; |
|
font-weight: 400; |
|
} |
|
|
|
|
|
.main-content { |
|
background: rgba(255, 255, 255, 0.95); |
|
backdrop-filter: blur(10px); |
|
border-radius: 20px; |
|
padding: 30px; |
|
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); |
|
margin-bottom: 30px; |
|
} |
|
|
|
|
|
.search-section { |
|
margin-bottom: 30px; |
|
display: flex; |
|
gap: 20px; |
|
flex-wrap: wrap; |
|
justify-content: center; |
|
} |
|
|
|
.search-container { |
|
max-width: 600px; |
|
margin: 0 auto; |
|
flex: 1; |
|
min-width: 300px; |
|
} |
|
|
|
.search-box { |
|
position: relative; |
|
display: flex; |
|
align-items: center; |
|
background: white; |
|
border-radius: 50px; |
|
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); |
|
overflow: hidden; |
|
transition: all 0.3s ease; |
|
} |
|
|
|
.search-box:focus-within { |
|
box-shadow: 0 6px 25px rgba(104, 159, 56, 0.3); |
|
transform: translateY(-2px); |
|
} |
|
|
|
.remove-search-box:focus-within { |
|
box-shadow: 0 6px 25px rgba(220, 53, 69, 0.3); |
|
} |
|
|
|
.remove-search-box .search-icon { |
|
color: #dc3545; |
|
} |
|
|
|
.add-keyword-btn { |
|
position: absolute; |
|
right: 50px; |
|
background: #dc3545; |
|
border: none; |
|
color: white; |
|
cursor: pointer; |
|
padding: 8px; |
|
border-radius: 50%; |
|
transition: all 0.2s ease; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
width: 32px; |
|
height: 32px; |
|
z-index: 2; |
|
} |
|
|
|
.add-keyword-btn:hover { |
|
background: #c82333; |
|
transform: scale(1.1); |
|
} |
|
|
|
.search-add-btn { |
|
background: #689f38; |
|
} |
|
|
|
.search-add-btn:hover { |
|
background: #558b2f; |
|
} |
|
|
|
.search-keywords-container { |
|
margin-top: 10px; |
|
display: flex; |
|
flex-wrap: wrap; |
|
gap: 8px; |
|
min-height: 20px; |
|
} |
|
|
|
.search-keyword-tag { |
|
display: inline-flex; |
|
align-items: center; |
|
gap: 6px; |
|
padding: 6px 12px; |
|
background: #689f38; |
|
color: white; |
|
border-radius: 20px; |
|
font-size: 12px; |
|
font-weight: 500; |
|
cursor: pointer; |
|
transition: all 0.2s ease; |
|
animation: fadeIn 0.3s ease; |
|
} |
|
|
|
.search-keyword-tag:hover { |
|
background: #558b2f; |
|
transform: translateY(-1px); |
|
} |
|
|
|
.search-keyword-tag .remove-keyword { |
|
background: none; |
|
border: none; |
|
color: white; |
|
cursor: pointer; |
|
font-size: 10px; |
|
padding: 0; |
|
width: 16px; |
|
height: 16px; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
border-radius: 50%; |
|
transition: background-color 0.2s ease; |
|
} |
|
|
|
.search-keyword-tag .remove-keyword:hover { |
|
background: rgba(255, 255, 255, 0.2); |
|
} |
|
|
|
.remove-keywords-container { |
|
margin-top: 10px; |
|
display: flex; |
|
flex-wrap: wrap; |
|
gap: 8px; |
|
min-height: 20px; |
|
} |
|
|
|
.remove-keyword-tag { |
|
display: inline-flex; |
|
align-items: center; |
|
gap: 6px; |
|
padding: 6px 12px; |
|
background: #dc3545; |
|
color: white; |
|
border-radius: 20px; |
|
font-size: 12px; |
|
font-weight: 500; |
|
cursor: pointer; |
|
transition: all 0.2s ease; |
|
animation: fadeIn 0.3s ease; |
|
} |
|
|
|
.remove-keyword-tag:hover { |
|
background: #c82333; |
|
transform: translateY(-1px); |
|
} |
|
|
|
.remove-keyword-tag .remove-keyword { |
|
background: none; |
|
border: none; |
|
color: white; |
|
cursor: pointer; |
|
font-size: 10px; |
|
padding: 0; |
|
width: 16px; |
|
height: 16px; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
border-radius: 50%; |
|
transition: background-color 0.2s ease; |
|
} |
|
|
|
.remove-keyword-tag .remove-keyword:hover { |
|
background: rgba(255, 255, 255, 0.2); |
|
} |
|
|
|
@keyframes fadeIn { |
|
from { |
|
opacity: 0; |
|
transform: translateY(-10px); |
|
} |
|
to { |
|
opacity: 1; |
|
transform: translateY(0); |
|
} |
|
} |
|
|
|
.search-icon { |
|
position: absolute; |
|
left: 20px; |
|
color: #a0aec0; |
|
font-size: 1.1rem; |
|
z-index: 1; |
|
} |
|
|
|
.search-input { |
|
flex: 1; |
|
padding: 18px 50px 18px 50px; |
|
border: none; |
|
outline: none; |
|
font-size: 1rem; |
|
background: transparent; |
|
} |
|
|
|
.search-input::placeholder { |
|
color: #a0aec0; |
|
} |
|
|
|
.clear-btn { |
|
position: absolute; |
|
right: 15px; |
|
background: none; |
|
border: none; |
|
color: #a0aec0; |
|
cursor: pointer; |
|
padding: 5px; |
|
border-radius: 50%; |
|
transition: all 0.2s ease; |
|
display: none; |
|
z-index: 3; |
|
} |
|
|
|
.clear-btn:hover { |
|
background: #f7fafc; |
|
color: #4a5568; |
|
} |
|
|
|
.clear-btn.visible { |
|
display: block; |
|
} |
|
|
|
.search-field-select { |
|
padding: 8px 12px; |
|
border: none; |
|
outline: none; |
|
background: #f7fafc; |
|
color: #2d3748; |
|
font-size: 0.9rem; |
|
border-radius: 6px; |
|
margin-right: 10px; |
|
cursor: pointer; |
|
transition: all 0.3s ease; |
|
} |
|
|
|
.search-field-select:hover { |
|
background: #edf2f7; |
|
} |
|
|
|
.search-field-select:focus { |
|
background: #e2e8f0; |
|
box-shadow: 0 0 0 2px rgba(104, 159, 56, 0.2); |
|
} |
|
|
|
.search-stats { |
|
text-align: center; |
|
margin-bottom: 15px; |
|
color: #718096; |
|
font-size: 0.9rem; |
|
min-height: 20px; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
} |
|
|
|
|
|
.filters-section { |
|
margin-bottom: 25px; |
|
display: flex !important; |
|
gap: 15px !important; |
|
flex-wrap: wrap !important; |
|
flex-direction: column !important; |
|
width: 100% !important; |
|
align-items: stretch !important; |
|
} |
|
|
|
.year-filter { |
|
display: flex; |
|
align-items: center; |
|
gap: 15px; |
|
flex-wrap: wrap; |
|
background: rgba(224, 236, 206, 0.8) !important; |
|
border-radius: 12px !important; |
|
padding: 15px !important; |
|
border: 2px solid #689f38 !important; |
|
width: 100% !important; |
|
margin: 0 !important; |
|
} |
|
|
|
.filter-label { |
|
font-weight: 600; |
|
color: #2d3748; |
|
font-size: 1rem; |
|
display: flex; |
|
align-items: center; |
|
gap: 8px; |
|
flex-wrap: wrap; |
|
} |
|
|
|
.filter-label i { |
|
color: #689f38; |
|
} |
|
|
|
.year-input-container { |
|
flex: 1; |
|
min-width: 200px; |
|
max-width: 400px; |
|
display: flex; |
|
gap: 15px; |
|
align-items: center; |
|
} |
|
|
|
.year-input-group { |
|
display: flex; |
|
flex-direction: column; |
|
gap: 5px; |
|
} |
|
|
|
.year-input-group label { |
|
font-size: 0.8rem; |
|
color: #718096; |
|
font-weight: 500; |
|
} |
|
|
|
.year-input { |
|
width: 80px; |
|
padding: 8px 12px; |
|
border: 1px solid #e2e8f0; |
|
border-radius: 6px; |
|
font-size: 0.9rem; |
|
color: #2d3748; |
|
background: white; |
|
outline: none; |
|
transition: all 0.3s ease; |
|
} |
|
|
|
.year-input:focus { |
|
border-color: #689f38; |
|
box-shadow: 0 0 0 2px rgba(104, 159, 56, 0.2); |
|
} |
|
|
|
.year-input::-webkit-inner-spin-button, |
|
.year-input::-webkit-outer-spin-button { |
|
opacity: 1; |
|
} |
|
|
|
.dual-slider { |
|
position: relative; |
|
margin-bottom: 8px; |
|
} |
|
|
|
.year-slider { |
|
width: 100%; |
|
height: 6px; |
|
border-radius: 3px; |
|
background: transparent; |
|
outline: none; |
|
-webkit-appearance: none; |
|
appearance: none; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
pointer-events: none; |
|
} |
|
|
|
.year-slider-min { |
|
z-index: 2; |
|
pointer-events: auto; |
|
} |
|
|
|
.year-slider-max { |
|
z-index: 1; |
|
pointer-events: auto; |
|
} |
|
|
|
.dual-slider::before { |
|
content: ''; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
height: 6px; |
|
background: #e2e8f0; |
|
border-radius: 3px; |
|
z-index: 0; |
|
} |
|
|
|
.dual-slider::after { |
|
content: ''; |
|
position: absolute; |
|
top: 0; |
|
left: var(--track-left, 0%); |
|
width: var(--track-width, 100%); |
|
height: 6px; |
|
background: #689f38; |
|
border-radius: 3px; |
|
z-index: 0; |
|
transition: all 0.3s ease; |
|
} |
|
|
|
.year-slider::-webkit-slider-thumb { |
|
-webkit-appearance: none; |
|
appearance: none; |
|
width: 20px; |
|
height: 20px; |
|
border-radius: 50%; |
|
background: #689f38; |
|
cursor: pointer; |
|
box-shadow: 0 2px 6px rgba(104, 159, 56, 0.3); |
|
transition: all 0.3s ease; |
|
} |
|
|
|
.year-slider::-webkit-slider-thumb:hover { |
|
transform: scale(1.1); |
|
box-shadow: 0 4px 12px rgba(104, 159, 56, 0.4); |
|
} |
|
|
|
.year-slider::-moz-range-thumb { |
|
width: 20px; |
|
height: 20px; |
|
border-radius: 50%; |
|
background: #689f38; |
|
cursor: pointer; |
|
border: none; |
|
box-shadow: 0 2px 6px rgba(104, 159, 56, 0.3); |
|
transition: all 0.3s ease; |
|
} |
|
|
|
.year-slider::-moz-range-thumb:hover { |
|
transform: scale(1.1); |
|
box-shadow: 0 4px 12px rgba(104, 159, 56, 0.4); |
|
} |
|
|
|
.year-labels { |
|
display: flex; |
|
justify-content: space-between; |
|
font-size: 0.8rem; |
|
color: #718096; |
|
font-weight: 500; |
|
} |
|
|
|
.clear-year-btn { |
|
display: flex; |
|
align-items: center; |
|
gap: 6px; |
|
padding: 8px 16px; |
|
background: #d32f2f; |
|
border: none; |
|
border-radius: 6px; |
|
color: white; |
|
font-weight: 500; |
|
cursor: pointer; |
|
transition: all 0.3s ease; |
|
font-size: 14px; |
|
margin-left: auto; |
|
} |
|
|
|
.clear-year-btn:hover { |
|
background-color: #b71c1c; |
|
transform: translateY(-1px); |
|
} |
|
|
|
|
|
.conference-filter { |
|
margin-top: 0 !important; |
|
padding: 15px !important; |
|
background: rgba(224, 236, 206, 0.6) !important; |
|
border-radius: 12px !important; |
|
border: 2px solid #8bc34a !important; |
|
width: 100% !important; |
|
position: relative !important; |
|
} |
|
|
|
.conference-select-container { |
|
margin-top: 20px; |
|
position: relative; |
|
} |
|
|
|
.conference-hint { |
|
font-size: 0.9rem; |
|
color: #718096; |
|
margin-left: 8px; |
|
font-weight: normal; |
|
} |
|
|
|
.conference-select { |
|
width: 100%; |
|
min-height: 120px; |
|
padding: 12px; |
|
border: 2px solid #e2e8f0; |
|
border-radius: 8px; |
|
background: white; |
|
font-size: 14px; |
|
line-height: 1.5; |
|
resize: vertical; |
|
transition: all 0.3s ease; |
|
cursor: pointer; |
|
} |
|
|
|
|
|
|
|
.conference-select:focus { |
|
outline: none; |
|
border-color: #689f38; |
|
box-shadow: 0 0 0 3px rgba(104, 159, 56, 0.1); |
|
} |
|
|
|
.conference-select option { |
|
padding: 8px 12px; |
|
margin: 2px 0; |
|
border-radius: 4px; |
|
cursor: pointer; |
|
transition: background-color 0.2s ease; |
|
} |
|
|
|
.conference-select option:hover { |
|
background-color: #f7fafc; |
|
} |
|
|
|
.conference-select option:checked { |
|
background-color: #689f38; |
|
color: white; |
|
} |
|
|
|
.selected-conferences { |
|
margin-top: 8px; |
|
display: flex; |
|
flex-wrap: wrap; |
|
gap: 6px; |
|
min-height: 16px; |
|
} |
|
|
|
.conference-tag { |
|
display: inline-flex; |
|
align-items: center; |
|
gap: 6px; |
|
padding: 4px 8px; |
|
background: #689f38; |
|
color: white; |
|
border-radius: 16px; |
|
font-size: 12px; |
|
font-weight: 500; |
|
cursor: pointer; |
|
transition: all 0.2s ease; |
|
} |
|
|
|
.conference-tag:hover { |
|
background: #558b2f; |
|
transform: translateY(-1px); |
|
} |
|
|
|
.conference-tag .remove-tag { |
|
background: none; |
|
border: none; |
|
color: white; |
|
cursor: pointer; |
|
font-size: 10px; |
|
padding: 0; |
|
width: 16px; |
|
height: 16px; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
border-radius: 50%; |
|
transition: background-color 0.2s ease; |
|
} |
|
|
|
.conference-tag .remove-tag:hover { |
|
background: rgba(255, 255, 255, 0.2); |
|
} |
|
|
|
.clear-conference-btn { |
|
position: absolute !important; |
|
top: 20px !important; |
|
right: 15px !important; |
|
padding: 8px 16px !important; |
|
background: #d32f2f; |
|
color: white; |
|
border: none; |
|
border-radius: 6px; |
|
font-size: 14px; |
|
font-weight: 500; |
|
cursor: pointer; |
|
transition: all 0.3s ease; |
|
display: flex; |
|
align-items: center; |
|
gap: 6px; |
|
} |
|
|
|
.clear-conference-btn:hover { |
|
background-color: #b71c1c; |
|
transform: translateY(-1px); |
|
} |
|
|
|
|
|
.abstract-filter { |
|
margin-top: 0 !important; |
|
padding: 15px !important; |
|
background: rgba(224, 236, 206, 0.4) !important; |
|
border-radius: 12px !important; |
|
border: 2px solid #4caf50 !important; |
|
width: 100% !important; |
|
position: relative !important; |
|
} |
|
|
|
|
|
.starred-filter { |
|
margin: 0 !important; |
|
padding: 15px !important; |
|
background: rgba(255, 193, 7, 0.2) !important; |
|
border-radius: 12px !important; |
|
border: 2px solid #ffc107 !important; |
|
width: 100% !important; |
|
position: relative !important; |
|
} |
|
|
|
.starred-filter-container { |
|
margin-top: 10px; |
|
display: flex; |
|
flex-direction: column; |
|
gap: 8px; |
|
} |
|
|
|
.abstract-filter-container { |
|
margin-top: 10px; |
|
display: flex; |
|
flex-direction: column; |
|
gap: 8px; |
|
} |
|
|
|
.checkbox-label { |
|
display: flex; |
|
align-items: center; |
|
gap: 12px; |
|
cursor: pointer; |
|
font-weight: 500; |
|
color: #2d3748; |
|
font-size: 1rem; |
|
position: relative; |
|
padding: 4px 0; |
|
flex-wrap: wrap; |
|
} |
|
|
|
.checkbox-label input[type="checkbox"] { |
|
position: absolute; |
|
opacity: 0; |
|
cursor: pointer; |
|
height: 0; |
|
width: 0; |
|
} |
|
|
|
.checkmark { |
|
height: 20px; |
|
width: 20px; |
|
background-color: white; |
|
border: 2px solid #e2e8f0; |
|
border-radius: 4px; |
|
position: relative; |
|
transition: all 0.3s ease; |
|
flex-shrink: 0; |
|
} |
|
|
|
.checkbox-label:hover input ~ .checkmark { |
|
border-color: #689f38; |
|
background-color: #f7fafc; |
|
} |
|
|
|
.checkbox-label input:checked ~ .checkmark { |
|
background-color: #689f38; |
|
border-color: #689f38; |
|
} |
|
|
|
.checkmark:after { |
|
content: ""; |
|
position: absolute; |
|
display: none; |
|
left: 6px; |
|
top: 2px; |
|
width: 5px; |
|
height: 10px; |
|
border: solid white; |
|
border-width: 0 2px 2px 0; |
|
transform: rotate(45deg); |
|
} |
|
|
|
.checkbox-label input:checked ~ .checkmark:after { |
|
display: block; |
|
} |
|
|
|
.filter-info { |
|
font-size: 0.9rem; |
|
color: #718096; |
|
margin-left: 8px; |
|
font-weight: normal; |
|
} |
|
|
|
.filter-option { |
|
margin-bottom: 0px; |
|
} |
|
|
|
.filter-option:last-child { |
|
margin-bottom: 0; |
|
} |
|
|
|
|
|
|
|
|
|
.pagination-section { |
|
margin-bottom: 30px; |
|
display: flex; |
|
justify-content: space-between; |
|
align-items: center; |
|
flex-wrap: wrap; |
|
gap: 20px; |
|
} |
|
|
|
.pagination-info { |
|
font-weight: 500; |
|
color: #4a5568; |
|
font-size: 0.95rem; |
|
} |
|
|
|
.pagination-controls { |
|
display: flex; |
|
align-items: center; |
|
gap: 10px; |
|
} |
|
|
|
.pagination-btn { |
|
display: flex; |
|
align-items: center; |
|
gap: 8px; |
|
padding: 10px 16px; |
|
background: white; |
|
border: 2px solid #e2e8f0; |
|
border-radius: 25px; |
|
color: #4a5568; |
|
font-weight: 500; |
|
cursor: pointer; |
|
transition: all 0.3s ease; |
|
font-size: 0.9rem; |
|
} |
|
|
|
.pagination-btn:hover:not(:disabled) { |
|
border-color: #689f38; |
|
color: #689f38; |
|
transform: translateY(-1px); |
|
} |
|
|
|
.pagination-btn:disabled { |
|
opacity: 0.5; |
|
cursor: not-allowed; |
|
} |
|
|
|
.page-numbers { |
|
display: flex; |
|
align-items: center; |
|
gap: 5px; |
|
} |
|
|
|
.page-number { |
|
width: 40px; |
|
height: 40px; |
|
border: 2px solid #e2e8f0; |
|
background: white; |
|
border-radius: 50%; |
|
color: #4a5568; |
|
font-weight: 500; |
|
cursor: pointer; |
|
transition: all 0.3s ease; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
} |
|
|
|
.page-number:hover { |
|
border-color: #689f38; |
|
color: #689f38; |
|
} |
|
|
|
.page-number.active { |
|
background: #689f38; |
|
border-color: #689f38; |
|
color: white; |
|
box-shadow: 0 2px 10px rgba(104, 159, 56, 0.3); |
|
} |
|
|
|
.page-ellipsis { |
|
color: #a0aec0; |
|
font-weight: 500; |
|
padding: 0 5px; |
|
} |
|
|
|
|
|
.page-input-container { |
|
display: flex; |
|
align-items: center; |
|
gap: 8px; |
|
margin: 0 10px; |
|
} |
|
|
|
.page-input-label { |
|
font-size: 0.9rem; |
|
color: #4a5568; |
|
font-weight: 500; |
|
white-space: nowrap; |
|
} |
|
|
|
.page-input { |
|
width: 60px; |
|
padding: 8px 10px; |
|
border: 2px solid #e2e8f0; |
|
border-radius: 6px; |
|
font-size: 0.9rem; |
|
color: #2d3748; |
|
background: white; |
|
outline: none; |
|
transition: all 0.3s ease; |
|
text-align: center; |
|
} |
|
|
|
.page-input:focus { |
|
border-color: #689f38; |
|
box-shadow: 0 0 0 2px rgba(104, 159, 56, 0.2); |
|
} |
|
|
|
.page-input::-webkit-inner-spin-button, |
|
.page-input::-webkit-outer-spin-button { |
|
opacity: 1; |
|
} |
|
|
|
.page-go-btn { |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
padding: 8px 12px; |
|
background: #689f38; |
|
border: none; |
|
border-radius: 6px; |
|
color: white; |
|
font-size: 0.9rem; |
|
cursor: pointer; |
|
transition: all 0.3s ease; |
|
min-width: 36px; |
|
height: 36px; |
|
} |
|
|
|
.page-go-btn:hover { |
|
background: #558b2f; |
|
transform: translateY(-1px); |
|
} |
|
|
|
.page-go-btn:disabled { |
|
background: #a0aec0; |
|
cursor: not-allowed; |
|
transform: none; |
|
} |
|
|
|
|
|
.papers-container { |
|
position: relative; |
|
} |
|
|
|
.papers-list { |
|
display: grid; |
|
gap: 20px; |
|
} |
|
|
|
|
|
.paper-card { |
|
background: white; |
|
border-radius: 15px; |
|
padding: 25px; |
|
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); |
|
transition: all 0.3s ease; |
|
cursor: pointer; |
|
border: 2px solid transparent; |
|
} |
|
|
|
.paper-card:hover { |
|
transform: translateY(-5px); |
|
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); |
|
border-color: #689f38; |
|
} |
|
|
|
.paper-header { |
|
display: flex; |
|
justify-content: space-between; |
|
align-items: flex-start; |
|
gap: 15px; |
|
margin-bottom: 15px; |
|
} |
|
|
|
.paper-title { |
|
font-size: 1.3rem; |
|
font-weight: 600; |
|
color: #2d3748; |
|
margin-bottom: 10px; |
|
flex: 1; |
|
line-height: 1.4; |
|
} |
|
|
|
.star-button { |
|
background: none; |
|
border: none; |
|
color: #cbd5e0; |
|
font-size: 1.2rem; |
|
cursor: pointer; |
|
padding: 8px; |
|
border-radius: 50%; |
|
transition: all 0.3s ease; |
|
flex-shrink: 0; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
min-width: 40px; |
|
min-height: 40px; |
|
} |
|
|
|
.star-button:hover { |
|
background: rgba(104, 159, 56, 0.1); |
|
color: #689f38; |
|
transform: scale(1.1); |
|
} |
|
|
|
.star-button.starred { |
|
color: #f6ad55; |
|
} |
|
|
|
.star-button.starred:hover { |
|
background: rgba(246, 173, 85, 0.1); |
|
color: #ed8936; |
|
} |
|
|
|
.find-paper-btn { |
|
background: none; |
|
border: none; |
|
color: #4a90e2; |
|
font-size: 1.2rem; |
|
cursor: pointer; |
|
padding: 8px; |
|
border-radius: 50%; |
|
transition: all 0.3s ease; |
|
flex-shrink: 0; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
min-width: 40px; |
|
min-height: 40px; |
|
} |
|
|
|
.find-paper-btn:hover { |
|
background: rgba(74, 144, 226, 0.1); |
|
color: #357abd; |
|
transform: scale(1.1); |
|
} |
|
|
|
.paper-authors { |
|
color: #718096; |
|
font-weight: 500; |
|
margin-bottom: 15px; |
|
font-style: italic; |
|
} |
|
|
|
.paper-abstract { |
|
color: #4a5568; |
|
font-size: 0.95rem; |
|
line-height: 1.6; |
|
margin-bottom: 15px; |
|
display: -webkit-box; |
|
-webkit-line-clamp: 3; |
|
-webkit-box-orient: vertical; |
|
overflow: hidden; |
|
} |
|
|
|
.paper-meta { |
|
display: flex; |
|
justify-content: space-between; |
|
align-items: center; |
|
font-size: 0.85rem; |
|
color: #a0aec0; |
|
} |
|
|
|
.paper-year { |
|
background: #f7fafc; |
|
padding: 4px 12px; |
|
border-radius: 15px; |
|
font-weight: 500; |
|
} |
|
|
|
.paper-conference { |
|
background: #689f38; |
|
color: white; |
|
padding: 4px 12px; |
|
border-radius: 15px; |
|
font-weight: 500; |
|
font-size: 0.8rem; |
|
} |
|
|
|
.paper-no-abstract-badge { |
|
background: #ff9800; |
|
color: white; |
|
padding: 4px 8px; |
|
border-radius: 12px; |
|
font-weight: 500; |
|
font-size: 0.7rem; |
|
} |
|
|
|
.paper-card.no-abstract { |
|
border-left: 4px solid #ff9800; |
|
background: rgba(255, 152, 0, 0.05); |
|
} |
|
|
|
.paper-card.no-abstract .paper-abstract { |
|
color: #ff9800; |
|
|
|
} |
|
|
|
.paper-card.no-author { |
|
border-right: 4px solid #e91e63; |
|
background: rgba(233, 30, 99, 0.05); |
|
} |
|
|
|
.paper-card.no-author .paper-authors { |
|
color: #e91e63; |
|
font-style: italic; |
|
} |
|
|
|
|
|
|
|
.loading { |
|
text-align: center; |
|
padding: 60px 20px; |
|
color: #718096; |
|
} |
|
|
|
.spinner { |
|
width: 40px; |
|
height: 40px; |
|
border: 4px solid #e2e8f0; |
|
border-top: 4px solid #689f38; |
|
border-radius: 50%; |
|
animation: spin 1s linear infinite; |
|
margin: 0 auto 20px; |
|
} |
|
|
|
@keyframes spin { |
|
0% { transform: rotate(0deg); } |
|
100% { transform: rotate(360deg); } |
|
} |
|
|
|
|
|
.no-results { |
|
text-align: center; |
|
padding: 60px 20px; |
|
color: #718096; |
|
} |
|
|
|
.no-results i { |
|
font-size: 3rem; |
|
color: #a0aec0; |
|
margin-bottom: 20px; |
|
} |
|
|
|
.no-results h3 { |
|
font-size: 1.5rem; |
|
margin-bottom: 10px; |
|
color: #4a5568; |
|
} |
|
|
|
|
|
.modal { |
|
display: none; |
|
position: fixed; |
|
z-index: 1000; |
|
left: 0; |
|
top: 0; |
|
width: 100%; |
|
height: 100%; |
|
background-color: rgba(0, 0, 0, 0.5); |
|
backdrop-filter: blur(5px); |
|
} |
|
|
|
.modal-content { |
|
background-color: white; |
|
margin: 5% auto; |
|
padding: 0; |
|
border-radius: 20px; |
|
width: 90%; |
|
max-width: 800px; |
|
max-height: 80vh; |
|
overflow-y: auto; |
|
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3); |
|
animation: modalSlideIn 0.3s ease; |
|
} |
|
|
|
@keyframes modalSlideIn { |
|
from { |
|
opacity: 0; |
|
transform: translateY(-50px); |
|
} |
|
to { |
|
opacity: 1; |
|
transform: translateY(0); |
|
} |
|
} |
|
|
|
.modal-header { |
|
display: flex; |
|
justify-content: space-between; |
|
align-items: flex-start; |
|
padding: 25px 30px 20px 30px; |
|
border-bottom: 2px solid #e2e8f0; |
|
background: #f8fafc; |
|
border-radius: 20px 20px 0 0; |
|
} |
|
|
|
.modal-title-container { |
|
display: flex; |
|
align-items: flex-start; |
|
gap: 15px; |
|
flex: 1; |
|
margin-right: 15px; |
|
justify-content: space-between; |
|
} |
|
|
|
.modal-header h2 { |
|
font-size: 1.8rem; |
|
font-weight: 600; |
|
color: #2d3748; |
|
margin: 0; |
|
line-height: 1.3; |
|
flex: 1; |
|
} |
|
|
|
.close-btn { |
|
background: none; |
|
border: none; |
|
font-size: 1.5rem; |
|
color: #718096; |
|
cursor: pointer; |
|
padding: 8px; |
|
border-radius: 50%; |
|
transition: all 0.3s ease; |
|
flex-shrink: 0; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
min-width: 40px; |
|
min-height: 40px; |
|
} |
|
|
|
.close-btn:hover { |
|
background: rgba(220, 53, 69, 0.1); |
|
color: #dc3545; |
|
transform: scale(1.1); |
|
} |
|
|
|
.modal-body { |
|
padding: 30px; |
|
max-height: calc(80vh - 120px); |
|
overflow-y: auto; |
|
} |
|
|
|
.paper-details { |
|
display: flex; |
|
flex-direction: column; |
|
gap: 25px; |
|
} |
|
|
|
.detail-section h3 { |
|
font-size: 1.1rem; |
|
color: #2d3748; |
|
margin-bottom: 10px; |
|
display: flex; |
|
align-items: center; |
|
gap: 10px; |
|
} |
|
|
|
.detail-section h3 i { |
|
color: #689f38; |
|
width: 20px; |
|
} |
|
|
|
.detail-section p { |
|
color: #4a5568; |
|
line-height: 1.6; |
|
} |
|
|
|
|
|
.notification { |
|
position: fixed; |
|
top: 20px; |
|
right: 20px; |
|
background: #689f38; |
|
color: white; |
|
padding: 15px 20px; |
|
border-radius: 10px; |
|
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); |
|
z-index: 1001; |
|
max-width: 400px; |
|
animation: slideInRight 0.3s ease; |
|
} |
|
|
|
.notification-content { |
|
display: flex; |
|
align-items: center; |
|
gap: 10px; |
|
} |
|
|
|
.notification-content i { |
|
font-size: 1.2rem; |
|
} |
|
|
|
.notification-close { |
|
background: none; |
|
border: none; |
|
color: white; |
|
cursor: pointer; |
|
padding: 5px; |
|
border-radius: 50%; |
|
transition: background 0.2s ease; |
|
margin-left: auto; |
|
} |
|
|
|
.notification-close:hover { |
|
background: rgba(255, 255, 255, 0.2); |
|
} |
|
|
|
@keyframes slideInRight { |
|
from { |
|
transform: translateX(100%); |
|
opacity: 0; |
|
} |
|
to { |
|
transform: translateX(0); |
|
opacity: 1; |
|
} |
|
} |
|
|
|
|
|
.export-section { |
|
margin-bottom: 20px; |
|
padding: 15px; |
|
background: linear-gradient(135deg, #f1f8e9 0%, #e8f5e8 100%); |
|
border-radius: 12px; |
|
border: 1px solid #c8e6c9; |
|
} |
|
|
|
.export-container { |
|
display: flex; |
|
align-items: center; |
|
justify-content: space-between; |
|
gap: 15px; |
|
} |
|
|
|
.export-title { |
|
font-size: 1.1rem; |
|
font-weight: 600; |
|
color: #2d3748; |
|
display: flex; |
|
align-items: center; |
|
gap: 8px; |
|
white-space: nowrap; |
|
} |
|
|
|
.export-title i { |
|
color: #689f38; |
|
} |
|
|
|
.export-buttons { |
|
display: flex; |
|
gap: 10px; |
|
justify-content: flex-end; |
|
flex-wrap: nowrap; |
|
flex: 1; |
|
} |
|
|
|
.export-btn { |
|
padding: 8px 16px; |
|
border: none; |
|
border-radius: 20px; |
|
font-size: 0.9rem; |
|
font-weight: 500; |
|
cursor: pointer; |
|
transition: all 0.3s ease; |
|
display: flex; |
|
align-items: center; |
|
gap: 6px; |
|
text-decoration: none; |
|
color: white; |
|
} |
|
|
|
.save-btn { |
|
background: linear-gradient(135deg, #4caf50 0%, #66bb6a 100%); |
|
box-shadow: 0 3px 10px rgba(76, 175, 80, 0.3); |
|
} |
|
|
|
.save-btn:hover { |
|
transform: translateY(-1px); |
|
box-shadow: 0 4px 15px rgba(76, 175, 80, 0.4); |
|
} |
|
|
|
.load-btn { |
|
background: linear-gradient(135deg, #8bc34a 0%, #9ccc65 100%); |
|
box-shadow: 0 3px 10px rgba(139, 195, 74, 0.3); |
|
} |
|
|
|
.load-btn:hover { |
|
transform: translateY(-1px); |
|
box-shadow: 0 4px 15px rgba(139, 195, 74, 0.4); |
|
} |
|
|
|
.export-bib-btn { |
|
background: linear-gradient(135deg, #689f38 0%, #7cb342 100%); |
|
box-shadow: 0 3px 10px rgba(104, 159, 56, 0.3); |
|
} |
|
|
|
.export-bib-btn:hover { |
|
background: #689f38; |
|
transform: translateY(-2px); |
|
} |
|
|
|
.export-starred-btn { |
|
background: linear-gradient(135deg, #f6ad55 0%, #ed8936 100%); |
|
color: white; |
|
} |
|
|
|
.export-starred-btn:hover { |
|
background: linear-gradient(135deg, #ed8936 0%, #dd6b20 100%); |
|
transform: translateY(-2px); |
|
} |
|
|
|
.export-info { |
|
margin-top: 20px; |
|
padding: 15px; |
|
background: rgba(104, 159, 56, 0.1); |
|
border-radius: 10px; |
|
border: 1px solid rgba(104, 159, 56, 0.3); |
|
} |
|
|
|
.export-info i { |
|
color: #689f38; |
|
margin-right: 4px; |
|
} |
|
|
|
|
|
.notification-success { |
|
border-left-color: #28a745; |
|
} |
|
|
|
.notification-error { |
|
border-left-color: #dc3545; |
|
} |
|
|
|
.notification-warning { |
|
border-left-color: #ffc107; |
|
} |
|
|
|
.notification-info { |
|
border-left-color: #17a2b8; |
|
} |
|
|
|
.notification-success .notification-content i { |
|
color: #28a745; |
|
} |
|
|
|
.notification-error .notification-content i { |
|
color: #dc3545; |
|
} |
|
|
|
.notification-warning .notification-content i { |
|
color: #ffc107; |
|
} |
|
|
|
.notification-info .notification-content i { |
|
color: #17a2b8; |
|
} |
|
|
|
|
|
.footer { |
|
text-align: center; |
|
padding: 20px; |
|
color: rgba(255, 255, 255, 0.8); |
|
font-size: 0.9rem; |
|
} |
|
|
|
|
|
@media (max-width: 768px) { |
|
.container { |
|
padding: 0 15px; |
|
} |
|
|
|
.header-content { |
|
padding: 30px 15px; |
|
} |
|
|
|
.title { |
|
font-size: 2rem; |
|
flex-direction: column; |
|
gap: 10px; |
|
} |
|
|
|
.main-content { |
|
padding: 20px; |
|
border-radius: 15px; |
|
} |
|
|
|
.search-section { |
|
flex-direction: column; |
|
gap: 15px; |
|
} |
|
|
|
.search-container { |
|
min-width: auto; |
|
max-width: none; |
|
} |
|
|
|
.search-stats { |
|
margin-bottom: 12px; |
|
font-size: 0.85rem; |
|
min-height: 18px; |
|
} |
|
|
|
.search-input { |
|
padding: 15px 45px 15px 45px; |
|
font-size: 0.95rem; |
|
} |
|
|
|
.add-keyword-btn { |
|
right: 45px; |
|
width: 28px; |
|
height: 28px; |
|
padding: 6px; |
|
z-index: 2; |
|
} |
|
|
|
.clear-btn { |
|
z-index: 3; |
|
} |
|
|
|
.search-keywords-container { |
|
margin-top: 8px; |
|
gap: 6px; |
|
} |
|
|
|
.search-keyword-tag { |
|
padding: 4px 10px; |
|
font-size: 11px; |
|
} |
|
|
|
.remove-keywords-container { |
|
margin-top: 8px; |
|
gap: 6px; |
|
} |
|
|
|
.remove-keyword-tag { |
|
padding: 4px 10px; |
|
font-size: 11px; |
|
} |
|
|
|
.search-field-select { |
|
font-size: 0.85rem; |
|
padding: 7px 10px; |
|
margin-right: 8px; |
|
} |
|
|
|
.filters-section { |
|
gap: 15px; |
|
} |
|
|
|
.year-filter { |
|
flex-direction: column; |
|
align-items: stretch; |
|
gap: 15px; |
|
} |
|
|
|
.year-input-container { |
|
min-width: auto; |
|
max-width: none; |
|
flex-direction: column; |
|
gap: 10px; |
|
} |
|
|
|
.year-input-group { |
|
flex-direction: row; |
|
align-items: center; |
|
gap: 10px; |
|
} |
|
|
|
.year-input { |
|
width: 70px; |
|
} |
|
|
|
.conference-filter { |
|
margin-top: 0; |
|
padding: 15px; |
|
} |
|
|
|
.conference-select { |
|
min-height: 100px; |
|
font-size: 13px; |
|
} |
|
|
|
.conference-hint { |
|
font-size: 0.85rem; |
|
} |
|
|
|
.abstract-filter { |
|
padding: 15px; |
|
} |
|
|
|
.starred-filter { |
|
padding: 15px; |
|
} |
|
|
|
.checkbox-label { |
|
font-size: 0.9rem; |
|
} |
|
|
|
.filter-info { |
|
font-size: 0.85rem; |
|
margin-left: 8px; |
|
} |
|
|
|
.export-section { |
|
padding: 12px; |
|
margin-bottom: 15px; |
|
} |
|
|
|
.export-container { |
|
flex-direction: column; |
|
align-items: stretch; |
|
gap: 10px; |
|
} |
|
|
|
.export-title { |
|
font-size: 1rem; |
|
justify-content: center; |
|
} |
|
|
|
.export-buttons { |
|
flex-direction: column; |
|
align-items: center; |
|
gap: 8px; |
|
justify-content: center; |
|
} |
|
|
|
.export-btn { |
|
width: 100%; |
|
max-width: 200px; |
|
justify-content: center; |
|
padding: 10px 14px; |
|
} |
|
|
|
.pagination-section { |
|
flex-direction: column; |
|
align-items: center; |
|
text-align: center; |
|
} |
|
|
|
.pagination-controls { |
|
flex-wrap: wrap; |
|
justify-content: center; |
|
} |
|
|
|
.page-input-container { |
|
margin: 10px 0; |
|
justify-content: center; |
|
} |
|
|
|
.page-input { |
|
width: 50px; |
|
padding: 6px 8px; |
|
font-size: 0.85rem; |
|
} |
|
|
|
.page-go-btn { |
|
padding: 6px 10px; |
|
font-size: 0.85rem; |
|
min-width: 32px; |
|
height: 32px; |
|
} |
|
|
|
.paper-card { |
|
padding: 20px; |
|
margin-bottom: 20px; |
|
} |
|
|
|
.paper-header { |
|
flex-direction: column; |
|
align-items: flex-start; |
|
gap: 10px; |
|
} |
|
|
|
.paper-title { |
|
font-size: 1.1rem; |
|
margin-bottom: 8px; |
|
} |
|
|
|
.star-button { |
|
align-self: flex-end; |
|
font-size: 1rem; |
|
min-width: 35px; |
|
min-height: 35px; |
|
} |
|
|
|
.find-paper-btn { |
|
font-size: 1rem; |
|
min-width: 35px; |
|
min-height: 35px; |
|
} |
|
|
|
.modal-content { |
|
margin: 10px; |
|
max-height: 90vh; |
|
} |
|
|
|
.modal-header { |
|
flex-direction: column; |
|
align-items: flex-start; |
|
gap: 15px; |
|
padding: 20px; |
|
} |
|
|
|
.modal-title-container { |
|
flex-direction: row; |
|
align-items: flex-start; |
|
gap: 10px; |
|
width: 100%; |
|
margin-right: 0; |
|
} |
|
|
|
.modal-body { |
|
padding: 20px; |
|
max-height: calc(90vh - 140px); |
|
} |
|
|
|
.modal-header h2 { |
|
font-size: 1.4rem; |
|
} |
|
} |
|
|
|
@media (max-width: 480px) { |
|
.title { |
|
font-size: 1.8rem; |
|
} |
|
|
|
.subtitle { |
|
font-size: 1rem; |
|
} |
|
|
|
.search-section { |
|
gap: 10px; |
|
} |
|
|
|
.search-stats { |
|
margin-bottom: 10px; |
|
font-size: 0.8rem; |
|
min-height: 16px; |
|
} |
|
|
|
.search-input { |
|
padding: 12px 40px 12px 40px; |
|
font-size: 0.9rem; |
|
} |
|
|
|
.search-field-select { |
|
font-size: 0.8rem; |
|
padding: 6px 8px; |
|
margin-right: 6px; |
|
} |
|
|
|
.year-filter { |
|
gap: 10px; |
|
} |
|
|
|
.filter-label { |
|
font-size: 0.9rem; |
|
flex-wrap: wrap; |
|
gap: 4px; |
|
} |
|
|
|
.clear-year-btn { |
|
align-self: center; |
|
} |
|
|
|
.conference-filter { |
|
padding: 10px; |
|
} |
|
|
|
.conference-select { |
|
min-height: 80px; |
|
font-size: 12px; |
|
} |
|
|
|
.conference-hint { |
|
font-size: 0.8rem; |
|
} |
|
|
|
.clear-conference-btn { |
|
align-self: center; |
|
} |
|
|
|
.abstract-filter { |
|
padding: 10px; |
|
} |
|
|
|
.starred-filter { |
|
padding: 10px; |
|
} |
|
|
|
.checkbox-label { |
|
font-size: 0.85rem; |
|
} |
|
|
|
.filter-info { |
|
font-size: 0.8rem; |
|
margin-left: 6px; |
|
} |
|
|
|
.export-section { |
|
padding: 10px; |
|
margin-bottom: 12px; |
|
} |
|
|
|
.export-container { |
|
gap: 8px; |
|
} |
|
|
|
.export-title { |
|
font-size: 0.9rem; |
|
justify-content: center; |
|
} |
|
|
|
.export-btn { |
|
padding: 12px 16px; |
|
font-size: 0.9rem; |
|
margin-bottom: 10px; |
|
width: 100%; |
|
} |
|
|
|
.paper-card { |
|
padding: 15px; |
|
} |
|
|
|
.paper-meta { |
|
flex-direction: column; |
|
align-items: flex-start; |
|
gap: 10px; |
|
} |
|
|
|
.paper-no-abstract-badge { |
|
font-size: 0.65rem; |
|
padding: 3px 6px; |
|
} |
|
|
|
.modal-header { |
|
padding: 15px; |
|
} |
|
|
|
.modal-title-container { |
|
gap: 8px; |
|
} |
|
|
|
.modal-header h2 { |
|
font-size: 1.2rem; |
|
} |
|
|
|
.modal-body { |
|
padding: 15px; |
|
} |
|
|
|
.find-paper-btn { |
|
font-size: 0.9rem; |
|
min-width: 32px; |
|
min-height: 32px; |
|
} |
|
} |