|
|
:root { |
|
|
|
|
|
--primary-color: #6B7280; |
|
|
--success-color: #10B981; |
|
|
--warning-color: #F59E0B; |
|
|
--danger-color: #EF4444; |
|
|
--white: #FFFFFF; |
|
|
|
|
|
|
|
|
--gray-50: #F9FAFB; |
|
|
--gray-100: #F3F4F6; |
|
|
--gray-200: #E5E7EB; |
|
|
--gray-300: #D1D5DB; |
|
|
--gray-400: #6B7280; |
|
|
--gray-500: #4B5563; |
|
|
--gray-600: #374151; |
|
|
--gray-700: #1F2937; |
|
|
--gray-800: #111827; |
|
|
--gray-900: #000000; |
|
|
|
|
|
|
|
|
--bg-primary: #FFFFFF; |
|
|
--bg-secondary: #F9FAFB; |
|
|
--bg-card: #FFFFFF; |
|
|
--text-primary: #111827; |
|
|
--text-secondary: #374151; |
|
|
--text-muted: #6B7280; |
|
|
--border-color: #E5E7EB; |
|
|
--shadow-color: rgba(0, 0, 0, 0.1); |
|
|
|
|
|
|
|
|
--glass-bg: rgba(255,255,255,0.2); |
|
|
--glass-border: rgba(255,255,255,0.3); |
|
|
--glass-hover-bg: rgba(255,255,255,0.3); |
|
|
--glass-shadow: 0 4px 8px rgba(0,0,0,0.2); |
|
|
} |
|
|
|
|
|
|
|
|
html, body { |
|
|
margin: 0; |
|
|
padding: 0; |
|
|
} |
|
|
|
|
|
body { |
|
|
background: |
|
|
radial-gradient(circle at 20% 80%, rgba(135, 206, 235, 0.1) 0%, transparent 50%), |
|
|
radial-gradient(circle at 80% 20%, rgba(152, 251, 152, 0.1) 0%, transparent 50%), |
|
|
radial-gradient(circle at 40% 40%, rgba(255, 218, 185, 0.1) 0%, transparent 50%), |
|
|
linear-gradient(135deg, #fef7f0 0%, #f0f4f8 100%); |
|
|
min-height: 100vh; |
|
|
font-family: 'Inter', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; |
|
|
color: var(--text-primary); |
|
|
position: relative; |
|
|
overflow-x: hidden; |
|
|
} |
|
|
|
|
|
.container-fluid { |
|
|
background: transparent; |
|
|
border-radius: 24px; |
|
|
margin: 0 20px 20px 0; |
|
|
padding: 0; |
|
|
position: relative; |
|
|
overflow: hidden; |
|
|
} |
|
|
|
|
|
|
|
|
.container-fluid.min-vh-100 { |
|
|
min-height: 100vh; |
|
|
margin: 0; |
|
|
border-radius: 0; |
|
|
} |
|
|
|
|
|
|
|
|
header { |
|
|
background: var(--gray-400); |
|
|
color: #FFFFFF; |
|
|
border-radius: 16px; |
|
|
margin: 0 0 1.5rem 0; |
|
|
padding: 1.5rem 2rem; |
|
|
position: relative; |
|
|
overflow: hidden; |
|
|
} |
|
|
|
|
|
header h1, |
|
|
header .display-4, |
|
|
header .text-primary { |
|
|
color: #F3F4F6 !important; |
|
|
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); |
|
|
margin: 0; |
|
|
font-weight: 700; |
|
|
letter-spacing: -0.025em; |
|
|
font-size: 2.2rem; |
|
|
position: relative; |
|
|
z-index: 1; |
|
|
} |
|
|
|
|
|
|
|
|
header button, |
|
|
header .btn, |
|
|
header [class*="toggle"], |
|
|
header [class*="theme"], |
|
|
header [id*="toggle"], |
|
|
header [id*="theme"], |
|
|
.fa-moon, |
|
|
.fa-sun, |
|
|
[class*="dark-mode"], |
|
|
[class*="theme-toggle"] { |
|
|
display: none; |
|
|
visibility: hidden; |
|
|
} |
|
|
|
|
|
header p, |
|
|
header .lead { |
|
|
display: none; |
|
|
} |
|
|
|
|
|
|
|
|
.card { |
|
|
border: 1px solid var(--border-color); |
|
|
border-radius: 20px; |
|
|
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); |
|
|
background: var(--bg-card); |
|
|
box-shadow: 0 8px 32px var(--shadow-color), 0 2px 8px rgba(0, 0, 0, 0.04); |
|
|
position: relative; |
|
|
overflow: hidden; |
|
|
margin-bottom: 2rem; |
|
|
} |
|
|
|
|
|
.card::before { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
top: 0; |
|
|
left: -100%; |
|
|
width: 100%; |
|
|
height: 100%; |
|
|
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent); |
|
|
transition: left 0.6s ease; |
|
|
} |
|
|
|
|
|
.card:hover { |
|
|
transform: translateY(-2px) scale(1.01); |
|
|
box-shadow: 0 8px 25px rgba(168, 200, 236, 0.15), 0 4px 16px rgba(0, 0, 0, 0.05); |
|
|
} |
|
|
|
|
|
.card:hover::before { |
|
|
left: 100%; |
|
|
} |
|
|
|
|
|
.card-header { |
|
|
border-radius: 20px 20px 0 0 !important; |
|
|
border: none; |
|
|
padding: 1.5rem; |
|
|
background: var(--gray-400); |
|
|
border-bottom: 1px solid rgba(0, 0, 0, 0.1); |
|
|
color: #FFFFFF; |
|
|
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); |
|
|
font-weight: 600; |
|
|
} |
|
|
|
|
|
.card-body { |
|
|
padding: 1.5rem; |
|
|
} |
|
|
|
|
|
|
|
|
.form-control { |
|
|
border-radius: 8px; |
|
|
border: 1px solid var(--gray-300); |
|
|
padding: 0.75rem 1rem; |
|
|
font-size: 0.9rem; |
|
|
transition: all 0.2s ease; |
|
|
background: var(--white); |
|
|
color: var(--gray-900); |
|
|
position: relative; |
|
|
box-shadow: 0 2px 8px rgba(168, 200, 236, 0.05); |
|
|
min-height: 45px; |
|
|
width: 100%; |
|
|
} |
|
|
|
|
|
|
|
|
#feedbackForm { |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
gap: 0.75rem; |
|
|
} |
|
|
|
|
|
#feedbackForm .d-grid { |
|
|
margin-bottom: 0.5rem; |
|
|
} |
|
|
|
|
|
.form-control:focus { |
|
|
border-color: var(--primary-color); |
|
|
box-shadow: 0 0 0 2px rgba(168, 200, 236, 0.1), 0 2px 8px rgba(168, 200, 236, 0.1); |
|
|
background: var(--white); |
|
|
outline: none; |
|
|
transform: none; |
|
|
} |
|
|
|
|
|
.form-control:focus + .form-label, |
|
|
.form-control:not(:placeholder-shown) + .form-label { |
|
|
transform: translateY(-8px) scale(0.85); |
|
|
color: var(--primary-color); |
|
|
} |
|
|
|
|
|
.form-label { |
|
|
color: var(--gray-900) !important; |
|
|
font-size: 1rem; |
|
|
font-weight: 600; |
|
|
margin-bottom: 0.5rem; |
|
|
} |
|
|
|
|
|
.form-text { |
|
|
color: var(--gray-700) !important; |
|
|
font-size: 0.875rem; |
|
|
margin-top: 0.25rem !important; |
|
|
margin-bottom: 0 !important; |
|
|
} |
|
|
|
|
|
|
|
|
.btn { |
|
|
border-radius: 12px; |
|
|
padding: 0.875rem 1.75rem; |
|
|
font-weight: 600; |
|
|
text-transform: none; |
|
|
letter-spacing: 0; |
|
|
transition: all 0.3s ease; |
|
|
border: 1px solid transparent; |
|
|
font-size: 1rem; |
|
|
} |
|
|
|
|
|
.btn-primary { |
|
|
background: var(--gray-400); |
|
|
border: 1px solid var(--gray-400); |
|
|
color: var(--white); |
|
|
font-weight: 600; |
|
|
box-shadow: 0 4px 12px rgba(107, 114, 128, 0.3); |
|
|
position: relative; |
|
|
overflow: hidden; |
|
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
|
|
} |
|
|
|
|
|
.btn-primary::before, |
|
|
.btn.btn-primary::before { |
|
|
content: ''; |
|
|
position: absolute; |
|
|
top: 0; |
|
|
left: -100%; |
|
|
width: 100%; |
|
|
height: 100%; |
|
|
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent); |
|
|
transition: left 0.5s ease; |
|
|
} |
|
|
|
|
|
.btn-primary:hover, |
|
|
.btn-primary:focus, |
|
|
.btn-primary:active, |
|
|
.btn-primary:not(:disabled):not(.disabled):active, |
|
|
.btn-primary:not(:disabled):not(.disabled).active, |
|
|
.show > .btn-primary.dropdown-toggle { |
|
|
background: var(--gray-500) !important; |
|
|
border-color: var(--gray-500) !important; |
|
|
color: var(--white) !important; |
|
|
box-shadow: 0 0 0 3px rgba(75, 85, 99, 0.25) !important; |
|
|
} |
|
|
|
|
|
|
|
|
#analyzeBtn:hover, |
|
|
#analyzeBtn:focus, |
|
|
#analyzeBtn:active { |
|
|
background: var(--gray-500) !important; |
|
|
border-color: var(--gray-500) !important; |
|
|
color: var(--white) !important; |
|
|
} |
|
|
|
|
|
.btn-outline-secondary { |
|
|
border-color: var(--gray-500); |
|
|
color: var(--gray-700); |
|
|
font-weight: 600; |
|
|
transition: all 0.3s ease; |
|
|
} |
|
|
|
|
|
.btn-outline-secondary:hover { |
|
|
border-color: var(--gray-600); |
|
|
color: var(--white); |
|
|
background: var(--gray-500); |
|
|
transform: translateY(-2px); |
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); |
|
|
} |
|
|
|
|
|
.btn-outline-info { |
|
|
border-color: var(--gray-500); |
|
|
color: var(--gray-700); |
|
|
font-weight: 600; |
|
|
transition: all 0.3s ease; |
|
|
} |
|
|
|
|
|
.btn-outline-info:hover { |
|
|
background: var(--gray-500); |
|
|
border-color: var(--gray-500); |
|
|
color: var(--white); |
|
|
transform: translateY(-2px); |
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#sentimentIcon i, |
|
|
#topicIcon i { |
|
|
transition: transform 0.3s ease; |
|
|
} |
|
|
|
|
|
#sentimentIcon:hover i, |
|
|
#topicIcon:hover i { |
|
|
transform: scale(1.1); |
|
|
} |
|
|
|
|
|
|
|
|
.sentiment-positive { color: var(--success-color) !important; font-weight: 600; } |
|
|
.sentiment-neutral { color: var(--warning-color) !important; font-weight: 600; } |
|
|
.sentiment-negative { color: var(--danger-color) !important; font-weight: 600; } |
|
|
|
|
|
|
|
|
.topic-lecturer { color: var(--gray-800) !important; font-weight: 600; } |
|
|
.topic-training_program { color: var(--gray-700) !important; font-weight: 600; } |
|
|
.topic-facility { color: var(--gray-600) !important; font-weight: 600; } |
|
|
.topic-others { color: var(--gray-500) !important; font-weight: 600; } |
|
|
|
|
|
|
|
|
.card-header { |
|
|
background: var(--gray-400); |
|
|
color: #F3F4F6; |
|
|
border-bottom: 1px solid var(--gray-300); |
|
|
} |
|
|
|
|
|
.card-header.bg-primary { |
|
|
background: var(--gray-400) !important; |
|
|
color: #F3F4F6 !important; |
|
|
} |
|
|
|
|
|
.card-header h1, |
|
|
.card-header h2, |
|
|
.card-header h3, |
|
|
.card-header h4, |
|
|
.card-header h5, |
|
|
.card-header h6, |
|
|
.card-header .card-title { |
|
|
color: #F3F4F6 !important; |
|
|
} |
|
|
|
|
|
|
|
|
.d-flex.gap-2 { |
|
|
gap: 0.5rem; |
|
|
margin-top: 0.75rem; |
|
|
} |
|
|
|
|
|
.d-flex.gap-2 .btn { |
|
|
padding: 0.5rem 1rem; |
|
|
font-size: 0.9rem; |
|
|
} |
|
|
|
|
|
|
|
|
header .btn-outline-light { |
|
|
border-color: rgba(255, 255, 255, 0.5); |
|
|
color: #FFFFFF; |
|
|
font-weight: 600; |
|
|
transition: all 0.3s ease; |
|
|
} |
|
|
|
|
|
header .btn-outline-light:hover { |
|
|
background-color: rgba(255, 255, 255, 0.1); |
|
|
border-color: #FFFFFF; |
|
|
color: #FFFFFF; |
|
|
transform: translateY(-2px); |
|
|
} |
|
|
|
|
|
header .btn-light { |
|
|
background-color: rgba(255, 255, 255, 0.9); |
|
|
color: var(--gray-700); |
|
|
font-weight: 600; |
|
|
transition: all 0.3s ease; |
|
|
} |
|
|
|
|
|
header .btn-light:hover { |
|
|
background-color: #FFFFFF; |
|
|
color: var(--gray-800); |
|
|
transform: translateY(-2px); |
|
|
} |
|
|
|
|
|
|
|
|
.dropdown-menu { |
|
|
border-radius: 12px; |
|
|
border: 1px solid var(--gray-200); |
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); |
|
|
margin-top: 0.5rem; |
|
|
} |
|
|
|
|
|
.dropdown-item { |
|
|
padding: 0.75rem 1rem; |
|
|
font-weight: 500; |
|
|
transition: all 0.2s ease; |
|
|
} |
|
|
|
|
|
.dropdown-item:hover { |
|
|
background-color: var(--gray-100); |
|
|
color: var(--gray-800); |
|
|
} |
|
|
|
|
|
|
|
|
.spinner-border { |
|
|
width: 3rem; |
|
|
height: 3rem; |
|
|
} |
|
|
|
|
|
.alert { |
|
|
border-radius: 4px; |
|
|
border: 1px solid var(--gray-200); |
|
|
padding: 0.5rem 0.75rem; |
|
|
background: var(--white); |
|
|
transition: opacity 0.5s ease-out, transform 0.5s ease-out; |
|
|
font-size: 0.875rem; |
|
|
margin-bottom: 0.5rem; |
|
|
max-width: 100%; |
|
|
line-height: 1.4; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: space-between; |
|
|
min-height: 2.5rem; |
|
|
} |
|
|
|
|
|
.alert.fade-out { |
|
|
opacity: 0; |
|
|
transform: translateY(-10px); |
|
|
} |
|
|
|
|
|
|
|
|
.alert .btn-close { |
|
|
padding: 0; |
|
|
margin: 0; |
|
|
width: 1rem; |
|
|
height: 1rem; |
|
|
font-size: 0.75rem; |
|
|
line-height: 1; |
|
|
position: relative; |
|
|
top: 0; |
|
|
right: 0; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
border: none; |
|
|
background: transparent; |
|
|
opacity: 0.5; |
|
|
transition: opacity 0.15s ease-in-out; |
|
|
} |
|
|
|
|
|
.alert .btn-close:hover { |
|
|
opacity: 1; |
|
|
} |
|
|
|
|
|
.alert .btn-close::before { |
|
|
content: "×"; |
|
|
font-size: 1.2rem; |
|
|
font-weight: bold; |
|
|
line-height: 1; |
|
|
} |
|
|
|
|
|
.alert i { |
|
|
margin-right: 0.5rem; |
|
|
font-size: 0.875rem; |
|
|
display: inline-flex; |
|
|
align-items: center; |
|
|
flex-shrink: 0; |
|
|
} |
|
|
|
|
|
.alert .alert-content { |
|
|
flex: 1; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
} |
|
|
|
|
|
|
|
|
.alert-success { |
|
|
background-color: rgba(16, 185, 129, 0.1); |
|
|
border-color: rgba(16, 185, 129, 0.2); |
|
|
color: #065f46; |
|
|
} |
|
|
|
|
|
.alert-info { |
|
|
background-color: rgba(107, 114, 128, 0.1); |
|
|
border-color: rgba(107, 114, 128, 0.2); |
|
|
color: #374151; |
|
|
} |
|
|
|
|
|
.alert-warning { |
|
|
background-color: rgba(245, 158, 11, 0.1); |
|
|
border-color: rgba(245, 158, 11, 0.2); |
|
|
color: #92400e; |
|
|
} |
|
|
|
|
|
.alert-danger { |
|
|
background-color: rgba(239, 68, 68, 0.1); |
|
|
border-color: rgba(239, 68, 68, 0.2); |
|
|
color: #991b1b; |
|
|
} |
|
|
|
|
|
|
|
|
.row.justify-content-center.mb-2 { |
|
|
margin-top: 0.5rem; |
|
|
} |
|
|
|
|
|
|
|
|
.alert + .alert { |
|
|
margin-top: 0.25rem; |
|
|
} |
|
|
|
|
|
blockquote { |
|
|
border-left: 4px solid var(--primary-color); |
|
|
padding-left: 1.5rem; |
|
|
font-style: italic; |
|
|
color: var(--gray-900); |
|
|
background: var(--gray-50); |
|
|
border-radius: 0 8px 8px 0; |
|
|
margin: 0; |
|
|
} |
|
|
|
|
|
footer { |
|
|
background: var(--gray-50); |
|
|
border-radius: 0 0 16px 16px; |
|
|
margin: 0; |
|
|
border-top: 1px solid var(--gray-200); |
|
|
color: var(--gray-800); |
|
|
} |
|
|
|
|
|
|
|
|
.bg-primary { |
|
|
background: var(--gray-400); |
|
|
} |
|
|
|
|
|
.text-primary { |
|
|
color: #F3F4F6 !important; |
|
|
} |
|
|
|
|
|
.spinner-border.text-primary { |
|
|
color: #F3F4F6 !important; |
|
|
} |
|
|
|
|
|
.border-primary { |
|
|
border-color: var(--primary-color); |
|
|
} |
|
|
|
|
|
|
|
|
.btn-primary, |
|
|
.card-header.bg-primary, |
|
|
.alert-primary { |
|
|
background: var(--gray-400); |
|
|
border-color: var(--gray-400); |
|
|
color: #F3F4F6; |
|
|
} |
|
|
|
|
|
|
|
|
.btn-primary, |
|
|
.btn-primary:link, |
|
|
.btn-primary:visited, |
|
|
.btn-primary:hover, |
|
|
.btn-primary:focus, |
|
|
.btn-primary:active, |
|
|
.btn-primary:not(:disabled):not(.disabled):active, |
|
|
.btn-primary:not(:disabled):not(.disabled).active { |
|
|
background: var(--gray-400) !important; |
|
|
border-color: var(--gray-400) !important; |
|
|
color: #F3F4F6 !important; |
|
|
} |
|
|
|
|
|
.btn-primary:hover, |
|
|
.btn-primary:focus, |
|
|
.btn-primary:active { |
|
|
background: var(--gray-500) !important; |
|
|
border-color: var(--gray-500) !important; |
|
|
} |
|
|
|
|
|
|
|
|
.text-primary, |
|
|
h1.text-primary, |
|
|
h2.text-primary, |
|
|
h3.text-primary, |
|
|
h4.text-primary, |
|
|
h5.text-primary, |
|
|
h6.text-primary, |
|
|
.display-4.text-primary, |
|
|
.fw-bold.text-primary { |
|
|
color: #F3F4F6 !important; |
|
|
} |
|
|
|
|
|
|
|
|
.text-primary i, |
|
|
.text-primary .fas, |
|
|
.text-primary .fa { |
|
|
color: #F3F4F6 !important; |
|
|
} |
|
|
|
|
|
|
|
|
.badge { |
|
|
display: inline-block !important; |
|
|
padding: 0.375rem 0.75rem !important; |
|
|
font-size: 0.875rem !important; |
|
|
font-weight: 500 !important; |
|
|
line-height: 1 !important; |
|
|
text-align: center !important; |
|
|
white-space: nowrap !important; |
|
|
vertical-align: baseline !important; |
|
|
border-radius: 0.375rem !important; |
|
|
} |
|
|
|
|
|
.badge.bg-light { |
|
|
background-color: #f8f9fa !important; |
|
|
color: #212529 !important; |
|
|
} |
|
|
|
|
|
.badge.bg-secondary { |
|
|
background-color: #6c757d !important; |
|
|
color: #fff !important; |
|
|
} |
|
|
|
|
|
.badge.bg-dark { |
|
|
background-color: #212529 !important; |
|
|
color: #fff !important; |
|
|
} |
|
|
|
|
|
|
|
|
#csvResultsTable td { |
|
|
vertical-align: middle !important; |
|
|
text-align: center !important; |
|
|
} |
|
|
|
|
|
#csvResultsTable td:nth-child(2) { |
|
|
text-align: left !important; |
|
|
} |
|
|
|
|
|
#csvResultsTable td:nth-child(3) { |
|
|
text-align: left !important; |
|
|
} |
|
|
|
|
|
#csvResultsTable td:nth-child(4) { |
|
|
text-align: left !important; |
|
|
} |
|
|
|
|
|
#csvResultsTable td:last-child { |
|
|
text-align: left !important; |
|
|
} |
|
|
|
|
|
|
|
|
#feedbackCount { |
|
|
font-weight: 700 !important; |
|
|
font-size: 1rem !important; |
|
|
vertical-align: middle !important; |
|
|
display: inline-flex !important; |
|
|
align-items: center !important; |
|
|
justify-content: center !important; |
|
|
min-width: 2.5rem !important; |
|
|
height: 1.75rem !important; |
|
|
line-height: 1 !important; |
|
|
margin-left: 0.5rem !important; |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes fadeIn { |
|
|
from { |
|
|
opacity: 0; |
|
|
transform: translateY(30px) scale(0.95); |
|
|
} |
|
|
to { |
|
|
opacity: 1; |
|
|
transform: translateY(0) scale(1); |
|
|
} |
|
|
} |
|
|
|
|
|
@keyframes slideInUp { |
|
|
from { |
|
|
opacity: 0; |
|
|
transform: translateY(50px) rotateX(10deg); |
|
|
} |
|
|
to { |
|
|
opacity: 1; |
|
|
transform: translateY(0) rotateX(0deg); |
|
|
} |
|
|
} |
|
|
|
|
|
@keyframes pulse { |
|
|
0%, 100% { transform: scale(1); } |
|
|
50% { transform: scale(1.1); } |
|
|
} |
|
|
|
|
|
@keyframes bounce { |
|
|
0%, 100% { transform: translateY(0); } |
|
|
50% { transform: translateY(-10px); } |
|
|
} |
|
|
|
|
|
.fade-in { |
|
|
animation: fadeIn 0.8s cubic-bezier(0.4, 0, 0.2, 1); |
|
|
} |
|
|
|
|
|
#results .card { |
|
|
animation: slideInUp 0.6s cubic-bezier(0.4, 0, 0.2, 1); |
|
|
} |
|
|
|
|
|
#sentimentIcon i { |
|
|
animation: pulse 2s ease-in-out infinite; |
|
|
} |
|
|
|
|
|
#topicIcon i { |
|
|
animation: bounce 1.5s ease-in-out infinite; |
|
|
} |
|
|
|
|
|
|
|
|
::-webkit-scrollbar { |
|
|
width: 8px; |
|
|
} |
|
|
|
|
|
::-webkit-scrollbar-track { |
|
|
background: var(--gray-100); |
|
|
border-radius: 10px; |
|
|
} |
|
|
|
|
|
::-webkit-scrollbar-thumb { |
|
|
background: rgba(135, 206, 235, 0.6); |
|
|
border-radius: 10px; |
|
|
border: 1px solid rgba(255, 255, 255, 0.3); |
|
|
} |
|
|
|
|
|
::-webkit-scrollbar-thumb:hover { |
|
|
background: rgba(135, 206, 235, 0.8); |
|
|
} |
|
|
|
|
|
|
|
|
.pagination { |
|
|
margin: 0; |
|
|
padding: 0; |
|
|
display: flex; |
|
|
list-style: none; |
|
|
border-radius: 8px; |
|
|
overflow: hidden; |
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); |
|
|
border: 1px solid var(--gray-200); |
|
|
} |
|
|
|
|
|
.pagination .page-item { |
|
|
margin: 0; |
|
|
border-right: 1px solid var(--gray-200); |
|
|
} |
|
|
|
|
|
.pagination .page-item:last-child { |
|
|
border-right: none; |
|
|
} |
|
|
|
|
|
.pagination .page-item:first-child .page-link { |
|
|
border-top-left-radius: 8px; |
|
|
border-bottom-left-radius: 8px; |
|
|
} |
|
|
|
|
|
.pagination .page-item:last-child .page-link { |
|
|
border-top-right-radius: 8px; |
|
|
border-bottom-right-radius: 8px; |
|
|
} |
|
|
|
|
|
.pagination .page-link { |
|
|
display: block; |
|
|
padding: 0.5rem 0.75rem; |
|
|
text-decoration: none; |
|
|
color: var(--gray-700); |
|
|
background-color: var(--white); |
|
|
border: none; |
|
|
font-weight: 500; |
|
|
font-size: 0.9rem; |
|
|
transition: all 0.2s ease; |
|
|
min-width: 40px; |
|
|
text-align: center; |
|
|
} |
|
|
|
|
|
.pagination .page-link:hover { |
|
|
color: var(--white); |
|
|
background-color: var(--gray-500); |
|
|
text-decoration: none; |
|
|
} |
|
|
|
|
|
.pagination .page-item.active .page-link { |
|
|
color: var(--white); |
|
|
background-color: var(--gray-400); |
|
|
font-weight: 600; |
|
|
} |
|
|
|
|
|
.pagination .page-item.active .page-link:hover { |
|
|
background-color: var(--gray-500); |
|
|
} |
|
|
|
|
|
.pagination .page-item.disabled .page-link { |
|
|
color: var(--gray-400); |
|
|
background-color: var(--gray-100); |
|
|
cursor: not-allowed; |
|
|
} |
|
|
|
|
|
.pagination .page-item.disabled .page-link:hover { |
|
|
color: var(--gray-400); |
|
|
background-color: var(--gray-100); |
|
|
} |
|
|
|
|
|
|
|
|
a[href*="login"]:hover, |
|
|
a[href*="register"]:hover { |
|
|
color: var(--gray-300); |
|
|
text-decoration: underline; |
|
|
transform: translateY(-1px); |
|
|
transition: all 0.3s ease; |
|
|
} |
|
|
|
|
|
|
|
|
@media (max-width: 768px) { |
|
|
.container-fluid { |
|
|
margin: 0 10px 10px 0; |
|
|
} |
|
|
|
|
|
header { |
|
|
border-radius: 12px; |
|
|
padding: 1rem; |
|
|
margin: 0 0 1rem 0; |
|
|
} |
|
|
|
|
|
header h1 { |
|
|
font-size: 1.8rem; |
|
|
} |
|
|
|
|
|
.card-body { |
|
|
padding: 1.25rem; |
|
|
} |
|
|
|
|
|
.btn { |
|
|
padding: 0.75rem 1.5rem; |
|
|
font-size: 0.95rem; |
|
|
} |
|
|
|
|
|
.card-header { |
|
|
border-radius: 12px 12px 0 0; |
|
|
padding: 1rem; |
|
|
} |
|
|
|
|
|
.form-control { |
|
|
padding: 0.875rem 1rem; |
|
|
min-height: 100px; |
|
|
} |
|
|
|
|
|
.d-flex.gap-2 .btn { |
|
|
padding: 0.4rem 0.8rem; |
|
|
font-size: 0.85rem; |
|
|
} |
|
|
|
|
|
.pagination .page-link { |
|
|
padding: 0.4rem 0.6rem; |
|
|
font-size: 0.85rem; |
|
|
min-width: 35px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.btn-glass { |
|
|
background-color: var(--glass-bg); |
|
|
border: 1px solid var(--glass-border); |
|
|
color: #fff; |
|
|
padding: 8px; |
|
|
border-radius: 6px; |
|
|
text-decoration: none; |
|
|
font-weight: 600; |
|
|
display: inline-flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
font-size: 13px; |
|
|
gap: 6px; |
|
|
backdrop-filter: blur(10px); |
|
|
transition: all 0.3s ease; |
|
|
} |
|
|
|
|
|
.btn-glass:hover { |
|
|
background-color: var(--glass-hover-bg); |
|
|
transform: translateY(-2px); |
|
|
box-shadow: var(--glass-shadow); |
|
|
color: #fff; |
|
|
} |
|
|
|
|
|
|
|
|
a.text-secondary.fw-bold:hover { |
|
|
color: #3B82F6 !important; |
|
|
transition: color 0.3s ease; |
|
|
} |
|
|
|
|
|
.btn-glass:active { |
|
|
transform: translateY(0); |
|
|
box-shadow: none; |
|
|
} |
|
|
|
|
|
.custom-alert-left { |
|
|
justify-content: flex-start !important; |
|
|
text-align: left !important; |
|
|
width: 100% !important; |
|
|
margin-left: 0 !important; |
|
|
} |
|
|
|
|
|
.custom-alert-left i { |
|
|
margin-left: 0 !important; |
|
|
} |
|
|
|
|
|
|
|
|
.multiple-topics-container { |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
gap: 1rem; |
|
|
} |
|
|
|
|
|
.topic-sentiment-item { |
|
|
background: var(--gray-100); |
|
|
border-radius: 12px; |
|
|
padding: 1rem; |
|
|
border-left: 4px solid var(--gray-400); |
|
|
transition: all 0.3s ease; |
|
|
} |
|
|
|
|
|
.topic-sentiment-item:hover { |
|
|
background: var(--gray-200); |
|
|
transform: translateX(4px); |
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); |
|
|
} |
|
|
|
|
|
.topic-sentiment-item .fw-semibold { |
|
|
color: var(--text-primary); |
|
|
font-size: 1.05rem; |
|
|
} |
|
|
|
|
|
|