:root {
    --primary-color: #004085;
    --secondary-color: #0056b3;
    --accent-color: #ffc107;
    --bg-color: #f4f7f6;
    --text-color: #333333;
    --card-bg: #ffffff;
}

* { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; }
body { background-color: var(--bg-color); color: var(--text-color); display: flex; flex-direction: column; min-height: 100vh; overflow-x: hidden; }

/* Header & Navbar - Chống ngắt dòng tiêu đề trên mobile */

header { background: #ffffff; display: flex; justify-content: space-between; align-items: center; padding: 12px 20px; position: sticky; top: 0; z-index: 1000; box-shadow: 0 4px 12px rgba(0,0,0,0.08); width: 100%; }

.header-left { display: flex; align-items: center; gap: 12px; white-space: nowrap; overflow: hidden; }
.header-left img { height: 40px; width: auto; flex-shrink: 0; }
.header-left span { font-size: clamp(14px, 4vw, 19px); font-weight: bold; color: var(--primary-color); letter-spacing: 0.3px; text-overflow: ellipsis; overflow: hidden; }

.menu-toggle { font-size: 24px; cursor: pointer; padding: 6px 12px; background: #f1f3f5; border-radius: 6px; transition: 0.2s; color: var(--primary-color); flex-shrink: 0; }
.menu-toggle:hover { background: #e2e6ea; }

/* Dropdown Menu */
.menu-dropdown { display: none; position: absolute; right: 20px; top: 65px; background: white; width: 250px; box-shadow: 0 8px 24px rgba(0,0,0,0.15); border-radius: 8px; overflow: hidden; z-index: 1100; animation: fadeIn 0.2s ease-in-out; }
.menu-dropdown.active { display: block; }
.menu-dropdown a { display: flex; align-items: center; gap: 12px; padding: 14px 18px; text-decoration: none; color: #495057; border-bottom: 1px solid #f1f3f5; font-weight: 500; transition: all 0.2s; }
.menu-dropdown a:hover { background: #f8f9fa; color: var(--primary-color); padding-left: 22px; }
.menu-dropdown a img { width: 20px; height: 20px; object-fit: contain; }

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Main Container tự động co giãn tuyệt đối trên mobile */
.main-container { flex: 1; max-width: 950px; width: 92%; margin: 30px auto; background: var(--card-bg); padding: 25px; border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.05); }

/* Bảng dữ liệu Responsive (Chống tràn trên điện thoại bằng cuộn ngang mượt mà) */
.table-responsive { width: 100%; overflow-x: auto; margin-top: 15px; border-radius: 8px; box-shadow: 0 0 0 1px #dee2e6; }
table { width: 100%; border-collapse: collapse; white-space: nowrap; }
th, td { padding: 12px 14px; text-align: left; font-size: 14px; }
th { background-color: var(--primary-color); color: white; font-weight: 600; }
tr:nth-child(even) { background-color: #f8f9fa; }
tr:hover { background-color: #f1f3f5; }

/* Footer */
footer { background: #212529; color: #adb5bd; text-align: center; padding: 20px 15px; margin-top: auto; font-size: 13px; line-height: 1.8; }
footer .stats-bar { font-weight: 600; color: #ffffff; margin-bottom: 5px; word-break: break-word; }

/* Form & Buttons */
h2, h3 { color: var(--primary-color); margin-bottom: 15px; font-size: clamp(1.2rem, 3vw, 1.8rem); word-break: break-word; }
.form-group { margin-bottom: 16px; }
.form-group label { display: block; margin-bottom: 6px; font-weight: 600; color: #495057; font-size: 14px; }
.form-group input, .form-group textarea, .form-group select { width: 100%; padding: 10px 12px; border: 1px solid #ced4da; border-radius: 6px; font-size: 14px; transition: border-color 0.2s; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { border-color: var(--secondary-color); outline: none; box-shadow: 0 0 0 3px rgba(0,123,255,0.1); }
.form-group input[readonly], .form-group textarea[readonly] { background-color: #e9ecef; cursor: not-allowed; }

button, .btn { background: var(--primary-color); color: white; padding: 10px 20px; border: none; border-radius: 6px; cursor: pointer; text-decoration: none; display: inline-block; font-size: 14px; font-weight: 600; transition: all 0.2s; box-shadow: 0 4px 6px rgba(0,0,0,0.05); text-align: center; }
button:hover, .btn:hover { background: var(--secondary-color); transform: translateY(-1px); box-shadow: 0 6px 12px rgba(0,0,0,0.1); }

/* Mobile optimization media query */
@media (max-width: 600px) {
    .main-container { padding: 15px; width: 96%; margin: 15px auto; }
    header { padding: 10px 15px; }
}