|
|
|
|
/* Card styling */
|
|
|
|
|
.card {
|
|
|
|
|
border-radius: 0.5rem;
|
|
|
|
|
border: none;
|
|
|
|
|
box-shadow: 0 2px 6px rgba(0,0,0,0.08);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Scrollable table wrapper */
|
|
|
|
|
.scrollable-table {
|
|
|
|
|
max-height: 450px; /* adjustable */
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
border-radius: 0.5rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Table styles */
|
|
|
|
|
.permission-table {
|
|
|
|
|
min-width: 100%;
|
|
|
|
|
border-radius: 0.5rem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.permission-table thead th {
|
|
|
|
|
background-color: #f3f4f6;
|
|
|
|
|
color: #1f2937;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
border-bottom: 2px solid #e5e7eb;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.permission-table tbody tr:hover {
|
|
|
|
|
background-color: #eef2ff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.permission-table td:last-child {
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Expand / collapse icon */
|
|
|
|
|
.expand-icon {
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
color: #3b82f6;
|
|
|
|
|
transition: transform 0.2s;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.expand-icon:hover {
|
|
|
|
|
transform: scale(1.2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Recursive permission cells */
|
|
|
|
|
.permission-cell {
|
|
|
|
|
position: relative;
|
|
|
|
|
padding-left: calc(var(--level) * 22px + 14px);
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
background-color: rgba(59, 130, 246, calc(var(--level) * 0.08));
|
|
|
|
|
color: #111827;
|
|
|
|
|
font-size: calc(14px - var(--level) * 0.5px);
|
|
|
|
|
transition: background-color 0.2s;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.permission-cell::before {
|
|
|
|
|
content: '';
|
|
|
|
|
position: absolute;
|
|
|
|
|
left: calc(var(--level) * 22px);
|
|
|
|
|
top: 0;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
width: 2px;
|
|
|
|
|
background-color: #9ca3af;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Scrollable ng-select dropdown */
|
|
|
|
|
::ng-deep ng-dropdown-panel {
|
|
|
|
|
max-height: 250px;
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
|
|
|
|
|
border-radius: 0.5rem;
|
|
|
|
|
z-index: 1055;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Button styling */
|
|
|
|
|
.btn-primary {
|
|
|
|
|
background-color: #3b82f6;
|
|
|
|
|
border-color: #3b82f6;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
transition: background-color 0.2s;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.btn-primary:hover {
|
|
|
|
|
background-color: #2563eb;
|
|
|
|
|
border-color: #2563eb;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Responsive adjustments */
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
.col-md-6 {
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
.permission-table td,
|
|
|
|
|
.permission-table th {
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
}
|
|
|
|
|
}
|