
:root {
    --bs-white: #ffffff;
    --bs-black: #0b0c0e; /* глубокий бархатный чёрный */

    --bs-primary: #0b0c0e;
    --bs-secondary: #1d4f91; /* холодный серо-голубой */
    --bs-success: #3d8b6d; /* мягкий изумруд */
    --bs-info: #5fa8d3; /* спокойный голубовато-бирюзовый */
    --bs-warning: #e2b659; /* тёплый янтарный, не кричащий */
    --bs-danger: #c75b61; /* приглушённый рубиновый */
    --bs-light: #f2f4f7; /* светло-серый с лёгким холодком */
    --bs-dark: #495057; /* совпадает с бархатным чёрным */

    --bs-white-rgb: 255, 255, 255;
    --bs-black-rgb: 11, 12, 14;
    --bs-primary-rgb: 29, 79, 145;
    --bs-secondary-rgb: 96, 125, 148;
    --bs-success-rgb: 61, 139, 109;
    --bs-info-rgb: 95, 168, 211;
    --bs-warning-rgb: 226, 182, 89;
    --bs-danger-rgb: 199, 91, 97;
    --bs-light-rgb: 242, 244, 247;
    --bs-dark-rgb: 11, 12, 14;
    
    
    --bs-blue: #1d4f91;
    --bs-indigo: #6610f2;
    --bs-purple: #6f42c1;
    --bs-pink: #d63384;
    --bs-red: #dc3545;
    --bs-orange: #fd7e14;
    --bs-yellow: #e2b659;
    --bs-green: #3d8b6d;
    --bs-teal: #20c997;
    --bs-cyan: #0dcaf0;
    
    --bs-gray: #6c757d;
    --bs-gray-dark: #343a40;   
    --bs-gray-100: #f8f9fa;
    --bs-gray-200: #e9ecef;
    --bs-gray-300: #dee2e6;
    --bs-gray-400: #ced4da;
    --bs-gray-500: #adb5bd;
    --bs-gray-600: #6c757d;
    --bs-gray-700: #495057;
    --bs-gray-800: #343a40;
    --bs-gray-900: #212529;

    
    
    --bs-body-color-rgb: 33, 37, 41;
    --bs-body-bg-rgb: 255, 255, 255;


    --bs-font-sans-serif: 'Montserrat', sans-serif;
    --bs-font-monospace: "Courier New", monospace;
    
    --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
    
    --bs-body-font-family: var(--bs-font-sans-serif);
    --bs-body-font-size: 1rem;
    --bs-body-font-weight: 400;
    --bs-body-line-height: 1.5;
    --bs-body-color: #212529;
}
.btn {
    --bs-btn-padding-x: 2rem;
    --bs-btn-padding-y: 1rem;
    --bs-btn-font-family: ;
    --bs-btn-font-size: 1rem;
    --bs-btn-font-weight: 500;
    --bs-btn-line-height: 1.1;
    --bs-btn-color: var(--bs-body-color);
    --bs-btn-bg: transparent;
    --bs-btn-border-width: var(--bs-border-width);
    --bs-btn-border-color: transparent;
    --bs-btn-border-radius: var(--bs-border-radius);
    --bs-btn-hover-border-color: transparent;
    --bs-btn-box-shadow: none;
    --bs-btn-disabled-opacity: 0.65;
    --bs-btn-focus-box-shadow: none;
    display: inline-block;
    padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
    font-family: var(--bs-btn-font-family);
    font-size: var(--bs-btn-font-size);
    font-weight: var(--bs-btn-font-weight);
    line-height: var(--bs-btn-line-height);
    color: var(--bs-btn-color);
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    vertical-align: middle;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
    border-radius: var(--bs-btn-border-radius);
    background-color: var(--bs-btn-bg);
    transition: color .15s 
ease-in-out, background-color .15s 
ease-in-out, border-color .15s 
ease-in-out, box-shadow .15s 
ease-in-out;
}
.btn-sm {
    --bs-btn-padding-y: 0.25rem;
    --bs-btn-padding-x: 0.5rem;
    --bs-btn-font-size: 0.875rem;
    --bs-btn-border-radius: var(--bs-border-radius-sm);
    text-transform: none;
}
.btn-primary {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-secondary);
    --bs-btn-hover-border-color: var(--bs-secondary);
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-primary);
    --bs-btn-active-border-color: #0a53be;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-secondary);
    --bs-btn-disabled-border-color: var(--bs-secondary);
}
.btn-secondary {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-secondary);
    --bs-btn-border-color: var(--bs-secondary);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-secondary);
    --bs-btn-active-border-color: var(--bs-secondary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}
.btn-success {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-success);
    --bs-btn-border-color: var(--bs-success);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-success);
    --bs-btn-hover-border-color: var(--bs-success);
    --bs-btn-focus-shadow-rgb: 60, 153, 110;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: #146c43;
    --bs-btn-active-border-color: var(--bs-success);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-success);
    --bs-btn-disabled-border-color: var(--bs-success);
}
.btn-outline-primary {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: #0d6efd;
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: var(--bs-primary);
    --bs-btn-active-bg: transparent;
    --bs-btn-active-border-color: var(--bs-primary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-primary);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-primary);
    --bs-gradient: none;
}
.btn-outline-secondary {
    --bs-btn-color: var(--bs-secondary);
    --bs-btn-border-color: var(--bs-secondary);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-secondary);
    --bs-btn-hover-border-color: var(--bs-secondary);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: var(--bs-secondary);
    --bs-btn-active-bg: transparent;
    --bs-btn-active-border-color: var(--bs-secondary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-secondary);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-secondary);
    --bs-gradient: none;
}
.btn-outline-success {
    --bs-btn-color: var(--bs-success);
    --bs-btn-border-color: var(--bs-success);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-success);
    --bs-btn-hover-border-color: var(--bs-success);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: var(--bs-success);
    --bs-btn-active-bg: transparent;
    --bs-btn-active-border-color: var(--bs-success);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-success);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-success);
    --bs-gradient: none;
}
.btn-outline-light {
    --bs-btn-color: var(--bs-white);
    --bs-btn-border-color: var(--bs-white);
    --bs-btn-hover-color: var(--bs-success);
    --bs-btn-hover-bg: var(--bs-white);
    --bs-btn-hover-border-color: var(--bs-white);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: transparent;
    --bs-btn-active-border-color: var(--bs-white);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-white);
    --bs-gradient: none;
}
/* Основные стили */
body {
    background: var(--bs-dark);
    color: var(--bs-black);
}
.sidebar {

    min-height: calc(100vh - 80px);
}
.header {
    background: var(--bs-black);
    color: var(--bs-white);
}

/* Стили для задач */
.task-item {
    cursor: pointer;
    border-left: 3px solid transparent;
    transition: all 0.3s;
}

.task-item.unread {
    border-left-color: #0d6efd;
    background: #f8f9ff;
}

.task-item:hover {
    background: #f8f9fa;
}

.task-details {
    display: none;
    background: #f8f9fa;
    border-top: 1px solid #dee2e6;
}

.message {
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 8px;
}

.message.bg-light {
    border: 1px solid #dee2e6;
}

.message.bg-primary {
    color: white;
}
/* Dashboard Styles */
.dashboard-sidebar {
    background: #f8f9fa;
    min-height: calc(100vh - 80px);
}

.dashboard-header {
    background: white;
    border-bottom: 1px solid #dee2e6;
}

.task-item {
    cursor: pointer;
    border-left: 3px solid transparent;
}
.task-item.unread {
    border-left-color: #ffc107;
    background: #fffbf0;
}
.task-details {
    display: none;
    background: #f8f9fa;
}
.pulsating-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #dc3545;
    animation: pulse 1.5s infinite;
    display: inline-block;
}
@keyframes pulse {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(1.1); }
    100% { opacity: 1; transform: scale(1); }
}
.task-item.unread {
    border-left: 3px solid #ffc107 !important;
    background: #fffbf0;
}

/* Message styles */
.message-user {
    background: #e9ecef;
    border: 1px solid #dee2e6;
}

.message-admin {
    background: #007bff;
    color: white;
    border: 1px solid #0056b3;
}

.message-unread {
    border: 2px solid #ffc107 !important;
}

/* Navigation pills custom */
.nav-pills .nav-link.active {
    background-color: #0d6efd;
    font-weight: 500;
}

.nav-pills .nav-link {
    color: #495057;
    margin-right: 5px;
}

.nav-pills .nav-link:hover {
    background-color: #e9ecef;
}

.attachment-item {
    max-width: 300px;
}
.file-input-group .input-group {
    max-width: 400px;
}
/* Loading animation */
.loading-spinner {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    border: 2px solid transparent;
    border-top: 2px solid #0d6efd;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .dashboard-sidebar {
        min-height: auto;
        border-right: none;
        border-bottom: 1px solid #dee2e6;
    }
    
    .task-item .d-flex {
        flex-direction: column;
        align-items: flex-start !important;
    }
    
    .task-item .text-end {
        text-align: left !important;
        margin-top: 10px;
    }
}