.contract-upload-modal{max-width:500px}.upload-instructions{background:#e7f3ff;border-radius:8px;margin-bottom:24px;padding:16px}.upload-instructions p{color:#333;margin:0 0 12px;font-weight:600}.upload-instructions ul{color:#666;margin:0;padding-right:20px;font-size:14px}.upload-instructions li{margin-bottom:8px}.file-upload-area{margin-bottom:16px}.file-input{display:none}.file-label{cursor:pointer;background:#f8f9fa;border:2px dashed #007bff;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;transition:all .3s;display:flex}.file-label:hover{background:#e7f3ff;border-color:#0056b3}.file-label i{color:#007bff;margin-bottom:12px;font-size:48px}.file-label span{color:#666;font-weight:600}.file-info{margin-bottom:16px}.file-details{background:#f8f9fa;border-radius:8px;align-items:center;gap:12px;padding:12px;display:flex}.file-details i{color:#007bff;font-size:24px}.file-details>div{flex:1}.file-name{color:#333;margin-bottom:4px;font-weight:600}.file-size{color:#666;font-size:12px}.btn-remove-file{color:#fff;cursor:pointer;background:#dc3545;border:none;border-radius:4px;padding:8px;transition:background .3s}.btn-remove-file:hover{background:#c82333}.error-message{color:#721c24;background:#f8d7da;border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:12px;display:flex}.success-message{color:#155724;background:#d4edda;border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:12px;display:flex}.modal-footer{justify-content:flex-end;gap:12px;display:flex}.btn-cancel{color:#fff;cursor:pointer;background:#6c757d;border:none;border-radius:8px;padding:10px 20px;font-weight:600;transition:background .3s}.btn-cancel:hover:not(:disabled){background:#5a6268}.btn-cancel:disabled{opacity:.6;cursor:not-allowed}.btn-upload{color:#fff;cursor:pointer;background:#007bff;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-weight:600;transition:background .3s;display:flex}.btn-upload:hover:not(:disabled){background:#0056b3}.btn-upload:disabled{opacity:.6;cursor:not-allowed}
.appeal-modal{max-width:600px;max-height:90vh;overflow-y:auto}.appeal-instructions{background:#fff3cd;border-radius:8px;margin-bottom:24px;padding:16px}.appeal-instructions p{color:#333;margin:0 0 12px;font-weight:600}.appeal-instructions ul{color:#666;margin:0;padding-right:20px;font-size:14px}.appeal-instructions li{margin-bottom:8px}.appeal-text-area{margin-bottom:24px}.appeal-text-area label{color:#333;margin-bottom:8px;font-weight:600;display:block}.appeal-text-area textarea{resize:vertical;border:1px solid #ddd;border-radius:8px;width:100%;min-height:120px;padding:12px;font-family:inherit;font-size:14px}.appeal-text-area textarea:focus{border-color:#007bff;outline:none}.char-count{text-align:left;color:#666;margin-top:4px;font-size:12px}.attachments-section{margin-bottom:24px}.attachments-section>label{color:#333;margin-bottom:8px;font-weight:600;display:block}.file-input{display:none}.file-label{cursor:pointer;background:#f8f9fa;border:1px solid #ddd;border-radius:8px;align-items:center;gap:8px;padding:10px 16px;transition:all .3s;display:inline-flex}.file-label:hover{background:#e9ecef;border-color:#007bff}.file-label i{color:#007bff}.attachments-list{flex-direction:column;gap:8px;margin-top:12px;display:flex}.attachment-item{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;justify-content:space-between;align-items:center;padding:10px;display:flex}.attachment-info{flex:1;align-items:center;gap:12px;display:flex}.attachment-info i{color:#007bff;font-size:20px}.attachment-name{color:#333;margin-bottom:4px;font-weight:600}.attachment-size{color:#666;font-size:12px}.btn-remove-attachment{color:#fff;cursor:pointer;background:#dc3545;border:none;border-radius:4px;padding:6px 10px;transition:background .3s}.btn-remove-attachment:hover{background:#c82333}.error-message{color:#721c24;background:#f8d7da;border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:12px;display:flex}.success-message{color:#155724;background:#d4edda;border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:12px;display:flex}.modal-footer{justify-content:flex-end;gap:12px;display:flex}.btn-cancel{color:#fff;cursor:pointer;background:#6c757d;border:none;border-radius:8px;padding:10px 20px;font-weight:600;transition:background .3s}.btn-cancel:hover:not(:disabled){background:#5a6268}.btn-cancel:disabled{opacity:.6;cursor:not-allowed}.btn-submit{color:#fff;cursor:pointer;background:#28a745;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-weight:600;transition:background .3s;display:flex}.btn-submit:hover:not(:disabled){background:#218838}.btn-submit:disabled{opacity:.6;cursor:not-allowed}
.violation-modal{max-width:600px;max-height:90vh;overflow-y:auto}.violation-info{background:#f8f9fa;border-radius:8px;margin-bottom:24px;padding:16px}.violation-header{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.red-mark-badge{color:#fff;background:#dc3545;border-radius:20px;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:600;display:inline-flex}.blacklist-badge{color:#fff;background:#000;border-radius:20px;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:600;display:inline-flex}.violation-details{flex-direction:column;gap:12px;display:flex}.detail-item{border-bottom:1px solid #e0e0e0;justify-content:space-between;padding:8px 0;display:flex}.detail-item:last-child{border-bottom:none}.detail-item .label{color:#666;font-weight:600}.detail-item .value{color:#333}.monitored-projects{background:#f8f9fa;border-radius:8px;margin-bottom:24px;padding:16px}.monitored-info-card{color:#555;background:#fff;border-radius:6px;align-items:flex-start;gap:8px;margin-top:12px;padding:10px 12px;font-size:13px;display:flex}.monitored-info-card i{color:#17a2b8;margin-top:2px}.monitored-info-card p{margin:0}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-header h4{color:#333;margin:0;font-size:18px}.progress-info{color:#007bff;font-weight:600}.progress-bar{background:#e0e0e0;border-radius:12px;width:100%;height:24px;margin-bottom:16px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#28a745,#20c997);height:100%;transition:width .3s}.btn-upload-contract{color:#fff;cursor:pointer;background:#007bff;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;font-weight:600;transition:background .3s;display:flex}.btn-upload-contract:hover{background:#0056b3}.contracts-list{flex-direction:column;gap:12px;margin-top:16px;display:flex}.contract-item{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:12px}.contract-info{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.status-badge{border-radius:12px;padding:4px 12px;font-size:12px;font-weight:600}.status-pending{color:#000;background:#ffc107}.status-approved{color:#fff;background:#28a745}.status-rejected{color:#fff;background:#dc3545}.contract-date{color:#666;font-size:12px}.rejection-reason{color:#856404;background:#fff3cd;border-left:3px solid #ffc107;border-radius:4px;align-items:center;gap:8px;padding:8px;font-size:13px;display:flex}.appeal-section{background:#f8f9fa;border-radius:8px;margin-top:24px;padding:16px}.btn-appeal{color:#fff;cursor:pointer;background:#28a745;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-weight:600;transition:background .3s;display:inline-flex}.btn-appeal:hover{background:#218838}.appeal-info{color:#666;background:#fff;border-radius:4px;margin-top:12px;padding:8px;font-size:14px}.no-violation{text-align:center;color:#28a745;padding:40px 20px}.no-violation i{margin-bottom:16px;font-size:48px}.loading{text-align:center;color:#666;padding:40px 20px}.error-message{color:#721c24;text-align:center;background:#f8d7da;border-radius:8px;padding:16px}
