/* 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; }