* { box-sizing: border-box; } :root { --primary: #1e88e5; --primary-light: #e3f2fd; --gray-light: #f8f9fa; --gray-border: #e0e0e0; --text-color: #333; --bg-color: #ffffff; } body { margin: 0; font-family: "Segoe UI", Roboto, sans-serif; display: flex; height: 100vh; background-color: var(--bg-color); color: var(--text-color); } .sidebar { width: 280px; background-color: var(--gray-light); border-right: 1px solid var(--gray-border); display: flex; flex-direction: column; padding: 0; } .sidebar-header { padding: 16px; background: white; border-bottom: 1px solid #ddd; flex-shrink: 0; z-index: 1; } .sidebar-list { flex: 1; overflow-y: auto; padding: 12px 16px; } .pid-button { display: block; width: 100%; padding: 8px 12px; margin: 4px 0; text-align: left; border: 1px solid transparent; background: #fff; border-radius: 8px; cursor: pointer; transition: all 0.2s ease; font-size: 14px; } .pid-button:hover { background-color: var(--primary-light); border-color: var(--primary); color: var(--primary); } .pid-button.selected { background-color: var(--primary); color: white; } .content { flex: 1; padding: 24px; overflow-y: auto; background-color: #fefefe; } select, input[type="text"] { width: 100%; padding: 6px; /* margin-bottom: 16px; */ border: 1px solid #ccc; border-radius: 6px; font-size: 14px; outline: none; transition: border-color 0.2s; } select:focus, input[type="text"]:focus { border-color: var(--primary); } .log-block { background: #fafafa; padding: 12px; margin-bottom: 12px; border-left: 4px solid var(--primary); font-family: monospace; white-space: pre-wrap; border-radius: 6px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04); position: relative; } .command-section { margin-top: 32px; } .command-section .log-block.soft-deleted { background-color: #ffd2d2; } .command-section h3 { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 17px; } .command-section h3 > div { display: flex; align-items: center; gap: 6px; } .next-btn { font-size: 13px; background: var(--primary); color: white; border: none; padding: 5px 10px; border-radius: 6px; cursor: pointer; transition: background 0.2s ease; } .next-btn:hover:not(:disabled) { background-color: #1565c0; } .next-btn:disabled { background-color: #ccc; cursor: not-allowed; } table { border-collapse: collapse; width: 100%; background: white; border-radius: 8px; overflow: hidden; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); margin-bottom: 20px; } table thead { background: var(--primary); color: white; } table th, table td { padding: 12px 14px; text-align: left; font-size: 14px; border-bottom: 1px solid #eee; } table tbody tr:hover { background-color: #f1f8ff; } code { background: #f4f4f4; padding: 2px 6px; border-radius: 4px; font-size: 13px; } mark { background-color: #ffdb38; padding: 0 2px; border-radius: 2px; } #selectAndVersionDiv { display: flex; justify-content: space-between; align-items: center; } #selectedPIDDiv { width: 23%; } #selectedVersionDiv { width: 53%; } .action-btn { background-color: #8d7df3; color: white; border: none; padding: 8px 14px; margin: 5px; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; transition: background-color 0.2s ease, box-shadow 0.2s ease; box-shadow: 0 2px 4px rgba(0, 123, 255, 0.2); } .action-btn:hover { background-color: #0056b3; box-shadow: 0 4px 8px rgba(0, 123, 255, 0.3); } .action-btn:active { background-color: #004a99; transform: scale(0.98); } /* Login Page */ .login-section { display: flex; align-items: center; justify-content: center; height: 100vh; width: 100vw; padding: 20px; background-image: url("../images/backgroundLogin.jpg"); background-size: cover; background-position: center; background-repeat: no-repeat; } .login-container { max-width: 400px; width: 100%; text-align: center; margin-bottom: 5rem; } .form-wrapper { background-color: rgba(255, 255, 255, 0.93); border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); padding: 30px; } .form-title { font-size: 20px; font-weight: 700; margin-bottom: 28px; } .form-group { text-align: left; margin-bottom: 20px; } .form-group label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 600; } .form-group input { width: 100%; padding: 10px; border: 1px solid var(--gray-border); border-radius: 6px; font-size: 14px; } .form-group input:focus { border-color: #1565c0; outline: none; } .primary-btn { background: var(--primary); color: white; border: none; padding: 8px 14px; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; transition: background-color 0.2s ease, box-shadow 0.2s ease; } .primary-btn:hover:not(:disabled) { background-color: #1565c0; } .primary-btn:disabled { background-color: #ccc; cursor: not-allowed; } .secondary-btn { padding: 10px 18px; font-size: 0.9rem; border-radius: 6px; cursor: pointer; transition: background 0.2s ease; border: none; background-color: #f0f0f0; color: #333; } .secondary-btn:hover { background-color: #ddd; } .secondary-btn:disabled { background-color: #ccc; cursor: not-allowed; } .danger-btn { background: #e03131; color: white; border: none; padding: 8px 14px; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; transition: background-color 0.2s ease, box-shadow 0.2s ease; } .danger-btn:hover:not(:disabled) { background-color: #c92a2a; } .danger-btn:disabled { background-color: #ccc; cursor: not-allowed; } .warning-btn { background: #f08c00; color: white; border: none; padding: 8px 14px; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; transition: background-color 0.2s ease, box-shadow 0.2s ease; } .warning-btn:hover:not(:disabled) { background-color: #e67700; } .warning-btn:disabled { background-color: #ccc; cursor: not-allowed; } .trash-btn { font-size: 22px; position: absolute; right: 2px; top: 2px; padding: 2px 10px; text-align: center; } .cancel-trash-btn { font-size: 16px; position: absolute; right: 2px; top: 2px; padding: 8px; text-align: center; } .remove-item-btn { font-size: 20px; right: 2px; top: 2px; padding: 2px 8px; text-align: center; } .text-error { color: red; margin-bottom: 10px; } /* Modal */ .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(30, 30, 30, 0.6); display: flex; justify-content: center; align-items: center; z-index: 1000; transition: opacity 0.3s ease; } .modal.hidden { display: none; } .modal-content { background: #fff; padding: 30px; border-radius: 12px; width: 100%; max-width: 50%; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); animation: fadeIn 0.3s ease-in-out; } .modal-title { font-size: 1.5rem; margin-top: 0; margin-bottom: 1rem; } .modal-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 1rem; } @keyframes fadeIn { from { opacity: 0; transform: translateY(-15px); } to { opacity: 1; transform: translateY(0); } } .user-dropdown { position: relative; display: inline-block; } .user-dropdown-toggle { background-color: white; border: none; color: black; padding: 6px 12px; font-size: 14px; border-radius: 4px; cursor: pointer; } .user-dropdown-content { display: none; position: absolute; right: 0; background-color: #fff; min-width: 160px; box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.2); z-index: 1; border-radius: 4px; overflow: hidden; } .user-dropdown-content form { margin: 0; } .user-dropdown-content button { width: 100%; padding: 10px 16px; border: none; background-color: #f8f9fa; cursor: pointer; text-align: left; font-size: 14px; } .user-dropdown-content button:hover { background-color: #e9ecef; } .user-dropdown-content .item { width: 100%; padding: 10px 16px; border: none; background-color: #f8f9fa; text-align: left; font-size: 14px; } .user-dropdown:hover .user-dropdown-content { display: block; } .toast { position: fixed; bottom: 20px; right: 20px; background-color: #323232; color: white; padding: 10px 20px; border-radius: 8px; font-size: 14px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); z-index: 9999; opacity: 0; transition: opacity 0.3s ease, bottom 0.3s ease; } .toast.show { opacity: 1; bottom: 40px; } @media only screen and (max-width: 768px) { .modal-content { max-width: 90% !important; } }