mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 09:31:09 -05:00
332 lines
5.1 KiB
CSS
332 lines
5.1 KiB
CSS
/* Approval Panel Styles */
|
|
|
|
.approval-panel {
|
|
background: #fff;
|
|
border: 1px solid #e5e7eb;
|
|
border-radius: 0.5rem;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.approval-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 1rem;
|
|
border-bottom: 1px solid #e5e7eb;
|
|
background: #f9fafb;
|
|
}
|
|
|
|
.approval-title {
|
|
font-size: 1.125rem;
|
|
font-weight: 600;
|
|
color: #111827;
|
|
margin: 0;
|
|
}
|
|
|
|
.approval-status {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
padding: 0.25rem 0.75rem;
|
|
border-radius: 9999px;
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* Status Colors */
|
|
.status-draft {
|
|
background-color: #f3f4f6;
|
|
color: #6b7280;
|
|
}
|
|
|
|
.status-pending {
|
|
background-color: #fef3c7;
|
|
color: #92400e;
|
|
}
|
|
|
|
.status-approved {
|
|
background-color: #dcfce7;
|
|
color: #166534;
|
|
}
|
|
|
|
.status-rejected {
|
|
background-color: #fee2e2;
|
|
color: #991b1b;
|
|
}
|
|
|
|
.status-applied {
|
|
background-color: #dbeafe;
|
|
color: #1e40af;
|
|
}
|
|
|
|
.status-failed {
|
|
background-color: #fee2e2;
|
|
color: #991b1b;
|
|
}
|
|
|
|
.status-reverted {
|
|
background-color: #f3f4f6;
|
|
color: #6b7280;
|
|
}
|
|
|
|
/* Stages */
|
|
.approval-stages {
|
|
padding: 1rem;
|
|
}
|
|
|
|
.approval-stage {
|
|
border: 1px solid #e5e7eb;
|
|
border-radius: 0.375rem;
|
|
margin-bottom: 1rem;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.approval-stage:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.stage-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 0.75rem 1rem;
|
|
background: #f9fafb;
|
|
border-bottom: 1px solid #e5e7eb;
|
|
}
|
|
|
|
.stage-name {
|
|
font-weight: 500;
|
|
color: #374151;
|
|
}
|
|
|
|
.stage-status {
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.stage-status.pending {
|
|
color: #92400e;
|
|
}
|
|
|
|
.stage-status.approved {
|
|
color: #166534;
|
|
}
|
|
|
|
.stage-status.rejected {
|
|
color: #991b1b;
|
|
}
|
|
|
|
.stage-details {
|
|
padding: 1rem;
|
|
}
|
|
|
|
.required-roles {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.5rem;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.role-badge {
|
|
background: #f3f4f6;
|
|
color: #4b5563;
|
|
padding: 0.25rem 0.5rem;
|
|
border-radius: 0.25rem;
|
|
font-size: 0.75rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* Approvers */
|
|
.approvers-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.approver {
|
|
padding: 0.75rem;
|
|
background: #f9fafb;
|
|
border-radius: 0.375rem;
|
|
}
|
|
|
|
.approver-info {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.approver-name {
|
|
font-weight: 500;
|
|
color: #374151;
|
|
}
|
|
|
|
.approval-date {
|
|
font-size: 0.75rem;
|
|
color: #6b7280;
|
|
}
|
|
|
|
.approver-decision {
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.approver-decision.approved {
|
|
color: #166534;
|
|
}
|
|
|
|
.approver-decision.rejected {
|
|
color: #991b1b;
|
|
}
|
|
|
|
.approver-comment {
|
|
font-size: 0.875rem;
|
|
color: #4b5563;
|
|
padding: 0.5rem;
|
|
background: #fff;
|
|
border-radius: 0.25rem;
|
|
}
|
|
|
|
/* Approval Actions */
|
|
.approval-actions {
|
|
padding: 1rem;
|
|
border-top: 1px solid #e5e7eb;
|
|
background: #f9fafb;
|
|
}
|
|
|
|
.approval-comment {
|
|
width: 100%;
|
|
min-height: 5rem;
|
|
padding: 0.75rem;
|
|
margin-bottom: 1rem;
|
|
border: 1px solid #d1d5db;
|
|
border-radius: 0.375rem;
|
|
resize: vertical;
|
|
font-size: 0.875rem;
|
|
}
|
|
|
|
.approval-comment:focus {
|
|
outline: none;
|
|
border-color: #3b82f6;
|
|
ring: 2px solid rgba(59, 130, 246, 0.5);
|
|
}
|
|
|
|
.action-buttons {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.approve-button,
|
|
.reject-button {
|
|
padding: 0.5rem 1rem;
|
|
border-radius: 0.375rem;
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
}
|
|
|
|
.approve-button {
|
|
background-color: #059669;
|
|
color: white;
|
|
}
|
|
|
|
.approve-button:hover {
|
|
background-color: #047857;
|
|
}
|
|
|
|
.reject-button {
|
|
background-color: #dc2626;
|
|
color: white;
|
|
}
|
|
|
|
.reject-button:hover {
|
|
background-color: #b91c1c;
|
|
}
|
|
|
|
/* History */
|
|
.approval-history {
|
|
padding: 1rem;
|
|
border-top: 1px solid #e5e7eb;
|
|
}
|
|
|
|
.approval-history-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.history-entry {
|
|
padding: 0.75rem;
|
|
background: #f9fafb;
|
|
border-radius: 0.375rem;
|
|
}
|
|
|
|
.entry-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.entry-user {
|
|
font-weight: 500;
|
|
color: #374151;
|
|
}
|
|
|
|
.entry-date {
|
|
font-size: 0.75rem;
|
|
color: #6b7280;
|
|
}
|
|
|
|
.entry-action {
|
|
font-size: 0.875rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.entry-action.submit {
|
|
color: #6b7280;
|
|
}
|
|
|
|
.entry-action.approve {
|
|
color: #166534;
|
|
}
|
|
|
|
.entry-action.reject {
|
|
color: #991b1b;
|
|
}
|
|
|
|
.entry-action.revert {
|
|
color: #4b5563;
|
|
}
|
|
|
|
.entry-comment {
|
|
font-size: 0.875rem;
|
|
color: #4b5563;
|
|
padding: 0.5rem;
|
|
background: #fff;
|
|
border-radius: 0.25rem;
|
|
}
|
|
|
|
/* Responsive Design */
|
|
@media (max-width: 640px) {
|
|
.approval-header {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.action-buttons {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.approve-button,
|
|
.reject-button {
|
|
width: 100%;
|
|
}
|
|
|
|
.approver-info {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
}
|
|
} |