MuhafizAi / admin.css
abdullahtarar's picture
Upload 19 files
e9a6464 verified
/* Reset and base styles */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Arial', sans-serif;
}
body {
background-color: #f5f5f5;
min-height: 100vh;
display: flex;
}
.hidden {
display: none !important;
}
/* Login Screen Styles */
.login-container {
width: 100%;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background-color: #f5f5f5;
}
.login-box {
background-color: white;
border-radius: 10px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
padding: 40px;
width: 400px;
max-width: 90%;
text-align: center;
}
.login-box .logo-container {
width: 80px;
height: 80px;
margin: 0 auto 20px;
}
.login-box .logo {
width: 100%;
height: 100%;
object-fit: contain;
}
.login-box h2 {
font-size: 24px;
margin-bottom: 30px;
color: #333;
}
.input-group {
position: relative;
margin-bottom: 20px;
}
.input-group i {
position: absolute;
left: 15px;
top: 50%;
transform: translateY(-50%);
color: #888;
}
.input-group input {
width: 100%;
padding: 15px 15px 15px 45px;
border: 1px solid #ddd;
border-radius: 5px;
font-size: 16px;
outline: none;
transition: border-color 0.3s;
}
.input-group input:focus {
border-color: #4285f4;
}
.login-btn {
width: 100%;
padding: 15px;
background-color: #4285f4;
color: white;
border: none;
border-radius: 5px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s;
}
.login-btn:hover {
background-color: #3367d6;
}
.error-message {
color: #d32f2f;
margin-top: 15px;
font-size: 14px;
}
/* Admin Panel Styles */
.admin-container {
display: flex;
width: 100%;
height: 100vh;
}
/* Sidebar Styles */
.admin-sidebar {
width: 250px;
background-color: #2c3e50;
color: white;
height: 100vh;
overflow-y: auto;
}
.admin-logo {
padding: 20px;
display: flex;
align-items: center;
gap: 10px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.admin-logo .logo {
width: 40px;
height: 40px;
object-fit: contain;
}
.admin-logo h2 {
font-size: 18px;
font-weight: 500;
}
.admin-menu {
list-style-type: none;
padding: 20px 0;
}
.admin-menu li {
padding: 12px 20px;
cursor: pointer;
transition: background-color 0.3s;
display: flex;
align-items: center;
gap: 10px;
}
.admin-menu li:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.admin-menu li.active {
background-color: rgba(255, 255, 255, 0.2);
border-left: 4px solid #4285f4;
}
.admin-menu li i {
width: 20px;
text-align: center;
}
/* Content Area Styles */
.admin-content {
flex-grow: 1;
padding: 20px;
overflow-y: auto;
height: 100vh;
}
.admin-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
padding-bottom: 15px;
border-bottom: 1px solid #e0e0e0;
}
.admin-header h2 {
font-size: 24px;
color: #333;
}
.save-btn {
padding: 10px 20px;
background-color: #4285f4;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
display: flex;
align-items: center;
gap: 8px;
transition: background-color 0.3s;
}
.save-btn:hover {
background-color: #3367d6;
}
.secondary-btn {
padding: 8px 15px;
background-color: #f1f3f4;
color: #333;
border: 1px solid #ddd;
border-radius: 5px;
cursor: pointer;
display: flex;
align-items: center;
gap: 5px;
transition: background-color 0.3s;
}
.secondary-btn:hover {
background-color: #e8eaed;
}
/* Tab Content Styles */
.tab-content {
display: none;
}
.tab-content.active {
display: block;
}
.settings-card {
background-color: white;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
padding: 25px;
margin-bottom: 25px;
}
.settings-card h3 {
font-size: 18px;
margin-bottom: 15px;
color: #333;
}
.settings-card p {
color: #666;
margin-bottom: 20px;
font-size: 14px;
}
.form-group {
margin-bottom: 20px;
}
.form-group:last-child {
margin-bottom: 0;
}
.form-group label {
display: block;
margin-bottom: 8px;
font-weight: 500;
color: #333;
}
.form-group input[type="text"],
.form-group input[type="password"],
.form-group select,
.form-group textarea {
width: 100%;
padding: 12px 15px;
border: 1px solid #ddd;
border-radius: 5px;
font-size: 14px;
outline: none;
transition: border-color 0.3s;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
border-color: #4285f4;
}
.input-with-action {
position: relative;
display: flex;
}
.input-with-action input {
flex-grow: 1;
padding-right: 40px;
}
.toggle-btn {
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
color: #888;
cursor: pointer;
}
.help-text {
font-size: 12px;
color: #888;
margin-top: 5px;
}
/* Range slider styles */
input[type="range"] {
width: 100%;
height: 5px;
-webkit-appearance: none;
background: #ddd;
outline: none;
border-radius: 5px;
}
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 18px;
height: 18px;
border-radius: 50%;
background: #4285f4;
cursor: pointer;
border: 2px solid white;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}
.slider-description {
display: flex;
justify-content: space-between;
margin-top: 8px;
font-size: 12px;
color: #888;
}
/* Checkbox styles */
.checkbox-group {
display: flex;
align-items: center;
gap: 10px;
}
.checkbox-group input[type="checkbox"] {
width: 18px;
height: 18px;
cursor: pointer;
}
/* Radio button styles */
.tone-options {
display: flex;
flex-wrap: wrap;
gap: 15px;
margin-top: 5px;
}
.tone-option {
display: flex;
align-items: center;
gap: 8px;
}
.tone-option input[type="radio"] {
width: 16px;
height: 16px;
cursor: pointer;
}
/* Model description */
.model-description {
background-color: #f9f9f9;
padding: 15px;
border-radius: 5px;
border-left: 4px solid #4285f4;
}
/* Preview container */
.preview-container {
background-color: #f9f9f9;
border-radius: 8px;
padding: 20px;
margin-top: 15px;
}
.preview-message {
background-color: white;
border-radius: 8px;
padding: 15px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}
.preview-question {
font-weight: bold;
margin-bottom: 10px;
color: #333;
}
.preview-response {
color: #444;
line-height: 1.5;
}
/* Analytics styles */
.analytics-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 20px;
margin-bottom: 30px;
}
.analytics-card {
background-color: #f9f9f9;
border-radius: 8px;
padding: 20px;
text-align: center;
}
.analytics-card h4 {
font-size: 14px;
margin-bottom: 10px;
color: #666;
}
.analytics-number {
font-size: 24px;
font-weight: bold;
color: #333;
}
.chart-container {
background-color: #f9f9f9;
border-radius: 8px;
padding: 20px;
}
.chart-container h4 {
font-size: 16px;
margin-bottom: 15px;
color: #333;
}
.placeholder-chart {
height: 200px;
display: flex;
flex-direction: column;
}
.chart-bars {
display: flex;
justify-content: space-between;
align-items: flex-end;
height: 180px;
padding: 0 10px;
}
.chart-bar {
width: 30px;
background-color: #4285f4;
border-radius: 5px 5px 0 0;
}
.chart-labels {
display: flex;
justify-content: space-between;
margin-top: 10px;
padding: 0 10px;
}
.chart-labels span {
font-size: 12px;
color: #888;
}
.common-questions {
list-style-type: none;
}
.common-questions li {
padding: 10px 0;
border-bottom: 1px solid #eee;
display: flex;
align-items: center;
gap: 15px;
}
.common-questions li:last-child {
border-bottom: none;
}
.question-count {
background-color: #4285f4;
color: white;
width: 30px;
height: 30px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
font-weight: bold;
}
/* Responsive design */
@media (max-width: 1200px) {
.analytics-grid {
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}
}
@media (max-width: 992px) {
.admin-sidebar {
width: 200px;
}
.settings-card {
padding: 20px;
}
}
@media (max-width: 768px) {
.admin-container {
flex-direction: column;
}
.admin-sidebar {
width: 100%;
height: auto;
position: sticky;
top: 0;
z-index: 100;
}
.admin-menu {
display: flex;
padding: 10px;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.admin-menu li {
padding: 10px 15px;
white-space: nowrap;
border-left: none !important;
}
.admin-logo {
justify-content: center;
padding: 10px;
}
.admin-content {
padding: 15px;
height: calc(100vh - 120px);
}
.analytics-grid {
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
gap: 15px;
}
.login-box {
width: 90%;
max-width: 350px;
padding: 30px;
}
}
@media (max-width: 576px) {
.admin-header {
flex-direction: column;
gap: 10px;
align-items: flex-start;
}
.admin-actions {
width: 100%;
display: flex;
justify-content: flex-end;
}
.settings-card {
padding: 15px;
}
.analytics-grid {
grid-template-columns: 1fr 1fr;
}
.tone-options {
flex-direction: column;
gap: 10px;
}
.form-group input[type="text"],
.form-group input[type="password"],
.form-group select,
.form-group textarea {
font-size: 16px; /* Prevent zoom on mobile */
}
}
/* Dark mode support */
@media (prefers-color-scheme: dark) {
body {
background-color: #1a1a1a;
color: #ffffff;
}
.login-box,
.settings-card,
.admin-content {
background-color: #2d2d2d;
color: #ffffff;
}
.input-group input,
.form-group input[type="text"],
.form-group input[type="password"],
.form-group select,
.form-group textarea {
background-color: #3d3d3d;
color: #ffffff;
border-color: #4d4d4d;
}
.admin-sidebar {
background-color: #2d2d2d;
}
.preview-container {
background-color: #3d3d3d;
}
.preview-message {
background-color: #4d4d4d;
color: #ffffff;
}
}
/* Touch device optimizations */
@media (hover: none) {
.admin-menu li:hover {
background-color: transparent;
}
.admin-menu li:active {
background-color: rgba(255, 255, 255, 0.1);
}
}
/* Accessibility improvements */
:focus {
outline: 2px solid #4285f4;
outline-offset: 2px;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
/* Notification styles */
.notification {
position: fixed;
top: 20px;
right: 20px;
padding: 15px 20px;
border-radius: 5px;
background-color: white;
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
z-index: 1000;
transition: transform 0.3s, opacity 0.3s;
transform: translateY(0);
opacity: 1;
}
.notification-info {
border-left: 4px solid #4285f4;
}
.notification-success {
border-left: 4px solid #0f9d58;
}
.notification-warning {
border-left: 4px solid #f4b400;
}
.notification-error {
border-left: 4px solid #db4437;
}
.notification-hide {
transform: translateY(-20px);
opacity: 0;
}