diff --git a/public/style.css b/public/style.css index 24185c8..92bef0d 100644 --- a/public/style.css +++ b/public/style.css @@ -2352,737 +2352,3 @@ small { .nav-btn.profile:hover { box-shadow: 0 6px 20px rgba(46, 204, 113, 0.4); } .nav-btn.admin:hover { box-shadow: 0 6px 20px rgba(231, 76, 60, 0.4); } /* doc */ -/* doc.css */ -:root { - --primary-color: #3498db; - --secondary-color: #2c3e50; - --success-color: #27ae60; - --warning-color: #f39c12; - --danger-color: #e74c3c; - --light-color: #ecf0f1; - --dark-color: #34495e; - --text-color: #333; - --border-color: #ddd; - --sidebar-width: 250px; - --header-height: 70px; -} - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - min-height: 100vh; - color: var(--text-color); -} - -.doc-container { - max-width: 1400px; - margin: 20px auto; - background: white; - border-radius: 15px; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); - overflow: hidden; -} - -/* Header */ -header { - background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); - color: white; - padding: 15px 25px; - border-bottom: 3px solid rgba(255, 255, 255, 0.1); -} - -.header-top { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 15px; - flex-wrap: wrap; - gap: 15px; -} - -.header-top h1 { - font-size: 24px; - font-weight: 600; - display: flex; - align-items: center; - gap: 10px; -} - -.user-info { - display: flex; - align-items: center; - gap: 15px; -} - -.user-info span { - background: rgba(255, 255, 255, 0.1); - padding: 8px 15px; - border-radius: 20px; - font-size: 14px; - backdrop-filter: blur(10px); -} - -/* Navigation */ -.doc-nav { - display: flex; - gap: 10px; - flex-wrap: wrap; - padding-top: 10px; - border-top: 1px solid rgba(255, 255, 255, 0.1); -} - -.nav-btn { - background: rgba(255, 255, 255, 0.1); - color: white; - border: 1px solid rgba(255, 255, 255, 0.2); - padding: 10px 20px; - border-radius: 8px; - cursor: pointer; - font-size: 14px; - font-weight: 500; - transition: all 0.3s ease; - display: flex; - align-items: center; - gap: 8px; - backdrop-filter: blur(10px); -} - -.nav-btn:hover { - background: rgba(255, 255, 255, 0.2); - transform: translateY(-2px); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); -} - -.nav-btn.active { - background: white; - color: var(--primary-color); - font-weight: 600; -} - -.btn-logout { - background: rgba(231, 76, 60, 0.2); - color: white; - border: 1px solid rgba(231, 76, 60, 0.3); - padding: 10px 20px; - border-radius: 8px; - cursor: pointer; - font-size: 14px; - font-weight: 500; - transition: all 0.3s ease; - display: flex; - align-items: center; - gap: 8px; - backdrop-filter: blur(10px); - margin-left: auto; -} - -.btn-logout:hover { - background: rgba(231, 76, 60, 0.3); - transform: translateY(-2px); -} - -.btn-back { - background: rgba(255, 255, 255, 0.1); - color: white; - border: 1px solid rgba(255, 255, 255, 0.2); - padding: 8px 15px; - border-radius: 8px; - cursor: pointer; - font-size: 14px; - transition: all 0.3s ease; - display: flex; - align-items: center; - gap: 5px; -} - -.btn-back:hover { - background: rgba(255, 255, 255, 0.2); - transform: translateX(-3px); -} - -/* Main content */ -main { - padding: 25px; - min-height: 500px; -} - -.document-section { - display: none; - animation: fadeIn 0.5s ease; -} - -.document-section.active { - display: block; -} - -@keyframes fadeIn { - from { opacity: 0; transform: translateY(10px); } - to { opacity: 1; transform: translateY(0); } -} - -h2 { - color: var(--secondary-color); - margin-bottom: 20px; - font-size: 22px; - display: flex; - align-items: center; - gap: 10px; - padding-bottom: 10px; - border-bottom: 2px solid var(--light-color); -} - -/* Forms */ -form { - background: var(--light-color); - padding: 25px; - border-radius: 12px; - margin-top: 20px; -} - -.form-row { - display: flex; - gap: 20px; - margin-bottom: 20px; - flex-wrap: wrap; -} - -.form-group { - flex: 1; - min-width: 200px; -} - -.form-group label { - display: block; - margin-bottom: 8px; - font-weight: 600; - color: var(--dark-color); - font-size: 14px; - display: flex; - align-items: center; - gap: 8px; -} - -.form-group input[type="text"], -.form-group input[type="number"], -.form-group input[type="date"], -.form-group input[type="datetime-local"], -.form-group select, -.form-group textarea { - width: 100%; - padding: 12px 15px; - border: 2px solid #ddd; - border-radius: 8px; - font-size: 14px; - transition: all 0.3s ease; - background: white; -} - -.form-group input:focus, -.form-group select:focus, -.form-group textarea:focus { - outline: none; - border-color: var(--primary-color); - box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.2); -} - -.form-group textarea { - resize: vertical; - min-height: 100px; -} - -/* File upload */ -.file-upload { - position: relative; - margin-top: 10px; -} - -.file-upload input[type="file"] { - display: none; -} - -.file-upload-label { - display: inline-block; - background: var(--primary-color); - color: white; - padding: 12px 25px; - border-radius: 8px; - cursor: pointer; - transition: all 0.3s ease; - font-weight: 500; - display: flex; - align-items: center; - gap: 10px; - width: fit-content; -} - -.file-upload-label:hover { - background: #2980b9; - transform: translateY(-2px); - box-shadow: 0 5px 15px rgba(52, 152, 219, 0.3); -} - -#file-list { - margin-top: 15px; -} - -.file-item { - background: white; - padding: 12px 15px; - border-radius: 8px; - margin-bottom: 10px; - border-left: 4px solid var(--primary-color); - display: flex; - justify-content: space-between; - align-items: center; - box-shadow: 0 2px 5px rgba(0,0,0,0.1); -} - -.file-item-info { - display: flex; - align-items: center; - gap: 10px; -} - -.file-item-actions button { - background: none; - border: none; - color: var(--danger-color); - cursor: pointer; - font-size: 16px; - transition: color 0.3s ease; -} - -.file-item-actions button:hover { - color: #c0392b; -} - -.form-info { - background: rgba(52, 152, 219, 0.1); - padding: 15px; - border-radius: 8px; - margin: 20px 0; - border-left: 4px solid var(--primary-color); -} - -.form-info p { - margin: 5px 0; - color: var(--dark-color); - font-size: 14px; - display: flex; - align-items: flex-start; - gap: 8px; -} - -.btn-primary { - background: linear-gradient(135deg, var(--primary-color), #2980b9); - color: white; - border: none; - padding: 14px 30px; - border-radius: 8px; - cursor: pointer; - font-size: 16px; - font-weight: 600; - transition: all 0.3s ease; - display: flex; - align-items: center; - gap: 10px; - margin-top: 20px; -} - -.btn-primary:hover { - transform: translateY(-3px); - box-shadow: 0 7px 20px rgba(52, 152, 219, 0.3); -} - -.btn-secondary { - background: var(--light-color); - color: var(--dark-color); - border: 1px solid var(--border-color); - padding: 14px 30px; - border-radius: 8px; - cursor: pointer; - font-size: 16px; - font-weight: 600; - transition: all 0.3s ease; - display: flex; - align-items: center; - gap: 10px; -} - -.btn-secondary:hover { - background: #e0e0e0; -} - -/* Section header */ -.section-header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 20px; - flex-wrap: wrap; - gap: 15px; -} - -.document-filters { - display: flex; - gap: 15px; - flex-wrap: wrap; -} - -.filter-group { - display: flex; - align-items: center; - gap: 10px; -} - -.filter-group label { - font-weight: 600; - color: var(--dark-color); - font-size: 14px; - display: flex; - align-items: center; - gap: 5px; -} - -.filter-group input[type="text"], -.filter-group select { - padding: 8px 12px; - border: 2px solid #ddd; - border-radius: 6px; - font-size: 14px; - min-width: 200px; -} - -/* Documents list */ -.documents-list { - display: grid; - gap: 15px; - margin-top: 20px; -} - -.document-card { - background: white; - border-radius: 12px; - padding: 20px; - border-left: 4px solid var(--primary-color); - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); - transition: all 0.3s ease; - position: relative; - overflow: hidden; -} - -.document-card:hover { - transform: translateY(-3px); - box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12); -} - -.document-card-header { - display: flex; - justify-content: space-between; - align-items: flex-start; - margin-bottom: 15px; -} - -.document-title { - font-size: 18px; - font-weight: 600; - color: var(--secondary-color); - margin-bottom: 5px; - display: flex; - align-items: center; - gap: 10px; -} - -.document-meta { - display: flex; - flex-wrap: wrap; - gap: 15px; - margin-bottom: 15px; - font-size: 13px; - color: #666; -} - -.document-meta span { - display: flex; - align-items: center; - gap: 5px; -} - -.document-description { - color: var(--text-color); - margin-bottom: 15px; - line-height: 1.5; -} - -.document-files { - margin: 15px 0; -} - -.document-files h4 { - margin-bottom: 10px; - color: var(--dark-color); - font-size: 14px; - display: flex; - align-items: center; - gap: 8px; -} - -.file-tags { - display: flex; - flex-wrap: wrap; - gap: 8px; -} - -.file-tag { - background: var(--light-color); - padding: 5px 10px; - border-radius: 15px; - font-size: 12px; - color: var(--dark-color); - display: flex; - align-items: center; - gap: 5px; - cursor: pointer; - transition: all 0.3s ease; -} - -.file-tag:hover { - background: var(--primary-color); - color: white; -} - -.document-actions { - display: flex; - gap: 10px; - margin-top: 15px; -} - -.btn-small { - padding: 8px 15px; - border-radius: 6px; - font-size: 13px; - font-weight: 500; - border: none; - cursor: pointer; - transition: all 0.3s ease; - display: flex; - align-items: center; - gap: 5px; -} - -.btn-approve { - background: linear-gradient(135deg, var(--success-color), #219653); - color: white; -} - -.btn-refuse { - background: linear-gradient(135deg, var(--danger-color), #c0392b); - color: white; -} - -.btn-cancel { - background: linear-gradient(135deg, #95a5a6, #7f8c8d); - color: white; -} - -.btn-download { - background: linear-gradient(135deg, var(--primary-color), #2980b9); - color: white; -} - -.btn-small:hover { - transform: translateY(-2px); - box-shadow: 0 4px 10px rgba(0,0,0,0.1); -} - -.document-status { - position: absolute; - top: 20px; - right: 20px; - padding: 5px 12px; - border-radius: 15px; - font-size: 12px; - font-weight: 600; - text-transform: uppercase; -} - -.status-created { background: #3498db; color: white; } -.status-assigned { background: #f39c12; color: white; } -.status-in_progress { background: #3498db; color: white; } -.status-pre_approved { background: #9b59b6; color: white; } -.status-approved { background: #27ae60; color: white; } -.status-refused { background: #e74c3c; color: white; } -.status-cancelled { background: #95a5a6; color: white; } -.status-overdue { background: #c0392b; color: white; } - -.loading { - text-align: center; - padding: 40px; - color: #666; - font-size: 16px; -} - -.loading i { - margin-right: 10px; - color: var(--primary-color); -} - -/* Modal */ -.modal { - display: none; - position: fixed; - z-index: 1000; - left: 0; - top: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.5); - backdrop-filter: blur(5px); - animation: fadeIn 0.3s ease; -} - -.modal-content { - background-color: white; - margin: 5% auto; - padding: 30px; - border-radius: 15px; - width: 90%; - max-width: 500px; - box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3); - animation: slideIn 0.3s ease; -} - -@keyframes slideIn { - from { transform: translateY(-50px); opacity: 0; } - to { transform: translateY(0); opacity: 1; } -} - -.modal-content h3 { - color: var(--secondary-color); - margin-bottom: 20px; - font-size: 20px; - display: flex; - align-items: center; - gap: 10px; -} - -.modal-content .close { - float: right; - font-size: 28px; - font-weight: bold; - color: #aaa; - cursor: pointer; - transition: color 0.3s ease; -} - -.modal-content .close:hover { - color: var(--text-color); -} - -.modal-buttons { - display: flex; - gap: 15px; - margin-top: 25px; -} - -.modal-buttons button { - flex: 1; -} - -/* Responsive */ -@media (max-width: 768px) { - .doc-container { - margin: 10px; - border-radius: 10px; - } - - main { - padding: 15px; - } - - .header-top { - flex-direction: column; - align-items: flex-start; - } - - .user-info { - width: 100%; - justify-content: space-between; - } - - .form-row { - flex-direction: column; - } - - .form-group { - min-width: 100%; - } - - .doc-nav { - justify-content: center; - } - - .section-header { - flex-direction: column; - align-items: flex-start; - } - - .document-filters { - width: 100%; - } - - .filter-group { - flex-direction: column; - align-items: flex-start; - width: 100%; - } - - .filter-group input[type="text"], - .filter-group select { - min-width: 100%; - } - - .document-card-header { - flex-direction: column; - gap: 10px; - } - - .document-status { - position: static; - margin-bottom: 10px; - width: fit-content; - } - - .modal-content { - margin: 20% auto; - width: 95%; - padding: 20px; - } -} - -@media (max-width: 480px) { - .nav-btn, .btn-logout, .btn-back { - padding: 8px 12px; - font-size: 13px; - } - - .header-top h1 { - font-size: 20px; - } - - .document-actions { - flex-wrap: wrap; - } - - .btn-small { - flex: 1; - justify-content: center; - min-width: 120px; - } -} \ No newline at end of file