--iplc-warning: #FF9800;
--iplc-danger: #f44336;
--iplc-dark: #212121;
--iplc-light: #F5F5F5;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background-color: #f8f9fa;
overflow-x: hidden;
}
/* Sidebar */
.sidebar {
position: fixed;
top: 0;
left: 0;
height: 100vh;
width: 280px;
background-color: #1a1a1a;
color: #fff;
z-index: 1000;
transition: transform 0.3s ease;
overflow-y: auto;
}
.sidebar-header {
padding: 1.5rem;
background-color: rgba(0, 71, 171, 0.1);
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
display: flex;
align-items: center;
gap: 1rem;
}
.sidebar-header img {
height: 40px;
width: auto;
}
.sidebar-header h2 {
font-size: 1.25rem;
margin: 0;
font-weight: 600;
}
.sidebar-nav {
padding: 1.5rem 0;
}
.nav-item {
margin-bottom: 0.25rem;
}
.nav-link {
display: flex;
align-items: center;
padding: 0.75rem 1.5rem;
color: rgba(255, 255, 255, 0.8);
text-decoration: none;
transition: all 0.3s ease;
border-left: 3px solid transparent;
gap: 0.75rem;
}
.nav-link:hover {
background-color: rgba(255, 255, 255, 0.05);
color: #fff;
}
.nav-link.active {
background-color: rgba(0, 71, 171, 0.2);
color: var(--iplc-accent);
border-left-color: var(--iplc-accent);
}
.nav-link i {
width: 20px;
text-align: center;
}
/* Main Content */
.main-content {
margin-left: 280px;
min-height: 100vh;
background-color: #f8f9fa;
}
.top-bar {
background-color: #fff;
padding: 1rem 2rem;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
display: flex;
justify-content: space-between;
align-items: center;
}
.content-area {
padding: 2rem;
}
/* Cards */
.dashboard-card {
background: #fff;
border-radius: 8px;
padding: 1.5rem;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
margin-bottom: 1.5rem;
transition: transform 0.3s ease;
}
.dashboard-card:hover {
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.stat-card {
text-align: center;
padding: 2rem 1rem;
}
.stat-card .stat-icon {
font-size: 3rem;
color: var(--iplc-primary);
margin-bottom: 1rem;
}
.stat-card .stat-value {
font-size: 2rem;
font-weight: 700;
color: var(--iplc-dark);
margin-bottom: 0.5rem;
}
.stat-card .stat-label {
color: #666;
font-size: 0.875rem;
text-transform: uppercase;
letter-spacing: 0.5px;
}
/* Charts */
.chart-container {
position: relative;
height: 300px;
margin-top: 1rem;
}
/* Tables */
.data-table {
background: #fff;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.data-table table {
width: 100%;
margin: 0;
}
.data-table th {
background-color: var(--iplc-primary);
color: #fff;
font-weight: 600;
text-transform: uppercase;
font-size: 0.875rem;
letter-spacing: 0.5px;
padding: 1rem;
}
/* Buttons */
.btn-primary {
background-color: var(--iplc-primary);
border-color: var(--iplc-primary);
padding: 0.75rem 1.5rem;
font-weight: 600;
transition: all 0.3s ease;
}
.btn-primary:hover {
background-color: #003380;
border-color: #003380;
transform: translateY(-1px);
}
/* Action Buttons */
.action-buttons {
display: flex;
gap: 1rem;
margin-bottom: 2rem;
}
.action-btn {
flex: 1;
padding: 1.5rem;
background: #fff;
border-radius: 8px;
text-align: center;
text-decoration: none;
color: var(--iplc-dark);
transition: all 0.3s ease;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.action-btn:hover {
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0,0,0,0.15);
text-decoration: none;
color: var(--iplc-primary);
}
.action-btn i {
font-size: 2.5rem;
color: var(--iplc-primary);
margin-bottom: 1rem;
display: block;
}
.action-btn h5 {
margin-bottom: 0.5rem;
font-weight: 600;
}
.action-btn p {
margin: 0;
color: #666;
font-size: 0.875rem;
}
/* Mobile Responsive */
.mobile-menu-toggle {
display: none;
position: fixed;
top: 1rem;
left: 1rem;
z-index: 1001;
background: var(--iplc-primary);
color: #fff;
border: none;
padding: 0.5rem;
border-radius: 4px;
}
@media (max-width: 768px) {
.sidebar {
transform: translateX(-100%);
}
.sidebar.active {
transform: translateX(0);
}
.main-content {
margin-left: 0;
}
.mobile-menu-toggle {
display: block;
}
.action-buttons {
flex-direction: column;
}
}
/* Loading Spinner */
.loading-spinner {
display: inline-block;
width: 20px;
height: 20px;
border: 2px solid rgba(255,255,255,.3);
border-radius: 50%;
border-top-color: #fff;
animation: spin 1s ease-in-out infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
/* Empty State */
.empty-state {
text-align: center;
padding: 3rem;
color: #999;
}
.empty-state i {
font-size: 4rem;
margin-bottom: 1rem;
opacity: 0.5;
}
/* AI Chat Styles */
.ai-chat-container {
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
margin-bottom: 2rem;
overflow: hidden;
transition: all 0.3s ease;
}
.ai-chat-header {
background: linear-gradient(135deg, var(--iplc-primary) 0%, var(--iplc-secondary) 100%);
color: #fff;
padding: 1rem 1.5rem;
display: flex;
align-items: center;
justify-content: space-between;
}
.ai-chat-header h5 {
margin: 0;
font-weight: 600;
display: flex;
align-items: center;
gap: 0.75rem;
}
.ai-chat-header .chat-status {
width: 8px;
height: 8px;
background: #4CAF50;
border-radius: 50%;
animation: pulse 2s infinite;
}
@keyframes pulse {
0% { opacity: 1; }
50% { opacity: 0.5; }
100% { opacity: 1; }
}
.ai-chat-body {
height: 400px;
overflow-y: auto;
padding: 1.5rem;
background: #f8f9fa;
display: flex;
flex-direction: column;
gap: 1rem;
}
.chat-message {
display: flex;
gap: 0.75rem;
animation: fadeIn 0.3s ease;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.chat-message.user {
flex-direction: row-reverse;
}
.chat-message-avatar {
width: 36px;
height: 36px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.chat-message.assistant .chat-message-avatar {
background: var(--iplc-primary);
color: #fff;
}
.chat-message.user .chat-message-avatar {
background: #e9ecef;
color: #495057;
}
.chat-message-content {
max-width: 70%;
padding: 0.75rem 1rem;
border-radius: 1rem;
position: relative;
}
.chat-message.assistant .chat-message-content {
background: #fff;
border: 1px solid #e9ecef;
border-bottom-left-radius: 0.25rem;
}
.chat-message.user .chat-message-content {
background: var(--iplc-primary);
color: #fff;
border-bottom-right-radius: 0.25rem;
}
.chat-message-time {
font-size: 0.75rem;
color: #6c757d;
margin-top: 0.25rem;
}
.chat-message.user .chat-message-time {
text-align: right;
color: rgba(255, 255, 255, 0.7);
}
.ai-chat-input {
padding: 1rem 1.5rem;
background: #fff;
border-top: 1px solid #e9ecef;
}
.chat-input-group {
display: flex;
gap: 0.75rem;
align-items: center;
}
.chat-input-field {
flex: 1;
border: 1px solid #e9ecef;
border-radius: 2rem;
padding: 0.75rem 1.25rem;
font-size: 0.95rem;
transition: all 0.3s ease;
}
.chat-input-field:focus {
outline: none;
border-color: var(--iplc-primary);
box-shadow: 0 0 0 3px rgba(0, 71, 171, 0.1);
}
.chat-send-btn {
background: var(--iplc-primary);
color: #fff;
border: none;
border-radius: 50%;
width: 44px;
height: 44px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s ease;
}
.chat-send-btn:hover {
background: #003380;
transform: scale(1.05);
}
.chat-send-btn:disabled {
background: #6c757d;
cursor: not-allowed;
transform: scale(1);
}
.chat-typing-indicator {
display: flex;
gap: 0.25rem;
padding: 0.75rem 1rem;
background: #fff;
border: 1px solid #e9ecef;
border-radius: 1rem;
border-bottom-left-radius: 0.25rem;
width: fit-content;
}
.typing-dot {
width: 8px;
height: 8px;
background: #6c757d;
border-radius: 50%;
animation: typing 1.4s infinite;
}
.typing-dot:nth-child(2) {
animation-delay: 0.2s;
}
.typing-dot:nth-child(3) {
animation-delay: 0.4s;
}
@keyframes typing {
0%, 60%, 100% {
transform: translateY(0);
opacity: 0.7;
}
30% {
transform: translateY(-10px);
opacity: 1;
}
}
.chat-welcome {
text-align: center;
padding: 3rem;
color: #6c757d;
}
.chat-welcome i {
font-size: 3rem;
color: var(--iplc-primary);
margin-bottom: 1rem;
}
.chat-welcome h6 {
color: #495057;
margin-bottom: 0.5rem;
}
.chat-suggestions {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
justify-content: center;
margin-top: 1rem;
}
.suggestion-chip {
background: #e9ecef;
border: 1px solid #dee2e6;
border-radius: 1rem;
padding: 0.5rem 1rem;
font-size: 0.875rem;
cursor: pointer;
transition: all 0.3s ease;
}
.suggestion-chip:hover {
background: var(--iplc-primary);
color: #fff;
border-color: var(--iplc-primary);
transform: translateY(-1px);
}
/* Recent Activity List */
.activity-list {
list-style: none;
padding: 0;
margin: 0;
}
.activity-item {
padding: 1rem;
border-bottom: 1px solid #eee;
display: flex;
align-items: center;
gap: 1rem;
}
.activity-item:last-child {
border-bottom: none;
}
.activity-icon {
width: 40px;
height: 40px;
background: var(--iplc-light);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: var(--iplc-primary);
}
.activity-details {
flex: 1;
}
.activity-title {
font-weight: 600;
margin-bottom: 0.25rem;
}
.activity-time {
font-size: 0.875rem;
color: #999;
}
Overview
Welcome to IPLC ArticEval
Welcome to IPLC AI Assistant
I can help you with questions about IPLC Standard Operating Procedures, forms, and evaluations.
Standard evaluation procedures
Creating new forms
IPLC best practices
Analyzing results
Form Builder
Create and customize evaluation forms for your practice.
Create New Form
Saved Forms
| Form Name |
Type |
Created |
Actions |
|
No saved forms yet
|
Form Submissions
| Client |
Form |
Date |
Status |
Actions |
|
No submissions yet
|
Generated Reports
| Report Name |
Client |
Date |
Actions |
|
No reports generated yet
|