:root{--navy:#12365d;--blue:#1475e8;--sky:#edf7ff;--line:#d7e5f3;--text:#16375d;--muted:#6e86a4;--gold:#d68c00;--green:#16835b;--red:#d84646}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#f5f9fd;color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.loading{padding:60px;text-align:center;color:var(--muted)}.landing{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 5% 5%,#d9f8fa 0 15%,transparent 15%),radial-gradient(circle at 94% 93%,#fff2c9 0 14%,transparent 14%)}.landing-card{width:min(870px,92vw);background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px 70px 52px;text-align:center}.brand-logo{width:120px;height:120px;object-fit:contain}.landing h1,.page-title{font-size:34px;margin:12px 0 5px}.subtitle{color:var(--muted);margin:0 0 30px}.roles{display:grid;grid-template-columns:1fr 1fr;gap:24px;text-align:left}.role{border:1px solid var(--line);border-radius:18px;padding:26px;background:#fff}.role.active{border:2px solid var(--blue);background:#f7fbff}.role h2{margin:8px 0}.icon{color:var(--blue);font-size:27px}.field{display:grid;gap:7px;margin:11px 0;font-weight:650}.field input,.field select,.field textarea,.score{border:1px solid #bfd5eb;border-radius:9px;padding:11px;background:#fff;color:var(--text);width:100%}.btn{padding:12px 18px;border-radius:9px;background:var(--blue);color:#fff;font-weight:700}.btn.secondary{background:#e9f2fb;color:var(--text)}.btn.gold{background:#fff;border:1px solid #e8a400;color:#ad7000}.btn.danger{background:var(--red)}.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.side{background:#064574;color:#eaf6ff;padding:20px 14px;display:flex;flex-direction:column}.side .brand{display:grid;place-items:center;background:#fff;border-radius:17px;padding:8px;margin:0 10px 22px}.side .brand img{width:132px;height:115px;object-fit:contain}.nav{display:grid;gap:8px}.nav button{padding:14px;text-align:left;background:transparent;color:#d9edff;border-radius:10px;font-weight:700}.nav button.on{background:#087fd1;color:#fff}.side .logout{margin-top:auto;border-top:1px solid #4c7da1;padding-top:16px}.main{padding:28px 32px;max-width:1450px;width:100%;margin:auto}.top{display:flex;justify-content:space-between;gap:16px;align-items:center}.filters{display:flex;gap:10px;flex-wrap:wrap}.filters select{padding:10px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--text)}.tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin:20px 0}.tabs button{padding:12px 2px;background:transparent;color:var(--muted);font-weight:700}.tabs button.on{color:var(--blue);border-bottom:3px solid var(--blue)}.stats{display:grid;grid-template-columns:repeat(3,200px) 1fr;gap:18px}.stat,.panel,.hero{background:#fff;border:1px solid var(--line);border-radius:14px}.stat{padding:20px}.stat b{display:block;font-size:34px}.stat span{color:var(--muted);font-weight:700}.star{padding:22px;background:#fffdf7;border-color:#f0c65d}.star strong{display:block;color:#916108;font-size:18px;margin-bottom:9px}.star .medal{font-size:30px;margin-right:10px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;margin-top:18px}.panel-title{padding:17px 21px;font-weight:800;font-size:19px;border-bottom:1px solid var(--line)}table{width:100%;border-collapse:collapse;background:#fff}th{background:#eef7ff;text-align:left;font-size:14px;padding:13px 12px}td{padding:16px 12px;border-top:1px solid var(--line);vertical-align:middle}.badge{display:inline-block;padding:7px 11px;border-radius:30px;font-weight:750;font-size:13px}.badge.blue{color:var(--blue);background:#e7f1ff}.badge.green{color:var(--green);background:#e1f6ec}.badge.gold{color:#a86b00;background:#fff5d6}.badge.red{color:var(--red);background:#fde6e6}.chart{padding:20px}.chart svg{width:100%;height:180px}.form-header{padding:18px;background:#eafaff;border:1px solid #ccecf2;border-radius:13px;display:grid;grid-template-columns:1fr 1fr 180px;gap:18px;align-items:end;margin:20px 0}.evaluation th:nth-child(2){width:27%}.evaluation th:last-child{width:38%}.evaluation td:nth-child(3),.evaluation td:nth-child(4),.evaluation td:nth-child(5){text-align:center}.score{max-width:100px;text-align:center;font-weight:750}.guidance{color:var(--muted);line-height:1.45;font-size:14px}.footerbar{display:flex;align-items:center;justify-content:space-between;background:#eaf7ff;border-radius:12px;padding:16px 18px;margin-top:18px}.total{background:#fff7df;border:1px solid #f3d68d;border-radius:10px;padding:11px 22px;text-align:center;color:#a36900}.total b{display:block;font-size:24px}.notice{color:#2870a9}.hidden{display:none!important}.toast{position:fixed;right:22px;bottom:22px;background:#183e66;color:#fff;padding:14px 20px;border-radius:10px;box-shadow:0 6px 25px #001b3b44}.drawer{position:fixed;inset:0;display:flex;justify-content:flex-end;background:#00152c45;z-index:3}.drawer-content{width:min(480px,100%);overflow:auto;background:#fff;padding:24px;box-shadow:-10px 0 30px #00152c22}.drawer-head{display:flex;justify-content:space-between;align-items:center}.drawer-head button{background:transparent;font-size:28px;color:var(--muted)}.type-switch{display:flex;gap:10px}.type-switch button{flex:1;padding:12px;border:1px solid var(--line);border-radius:9px;font-weight:800;background:#fff}.type-switch .reward{color:var(--gold);border-color:#f0b336}.type-switch .violation{color:var(--red);border-color:#f3b4b4}.record-actions{display:flex;gap:8px}.print-sheet{max-width:850px;margin:20px auto;background:#fff;padding:50px;border:1px solid var(--line)}.print-sheet h2{text-align:center}.preview-grid{display:grid;gap:20px;margin-top:30px}.preview-grid p{line-height:1.6;border-bottom:1px solid #d9e3ec;padding-bottom:12px}.empty{padding:35px;text-align:center;color:var(--muted)}@media(max-width:950px){.shell{display:block}.side{position:sticky;top:0;z-index:2;display:flex;flex-direction:row;align-items:center;overflow:auto;padding:8px}.side .brand{margin:0;padding:2px}.side .brand img{width:68px;height:48px}.nav{display:flex}.nav button{white-space:nowrap;padding:10px}.side .logout{margin:0 0 0 auto;border:0;padding:0}.main{padding:18px}.top,.footerbar{align-items:flex-start;flex-direction:column}.stats,.layout{grid-template-columns:1fr}.form-header{grid-template-columns:1fr}.evaluation{display:block;overflow-x:auto}.landing-card{padding:25px}.roles{grid-template-columns:1fr}}@media print{.side,.top,.tabs,.btn,.footerbar{display:none!important}.main{padding:0}.print-sheet{border:0;margin:0;max-width:none}.shell{display:block}}
.guidance{text-align:left!important}.field input,.field select,.field textarea{font-weight:400!important;color:#111!important}.side .logout button{width:100%;padding:11px 14px;border-radius:9px;background:#fff;color:#12365d;font-weight:750;text-align:left}.drawer{align-items:center;justify-content:center;padding:24px}.drawer-content{width:min(760px,100%);max-height:calc(100vh - 48px);border-radius:16px;box-shadow:0 16px 48px #00152c44}.modal-note{background:#f1f8ff;border-radius:8px;padding:12px;color:#426985}

/* Màn hình tự đánh giá: giữ vùng đầu trang gọn và dồn phần cuộn vào bảng. */
.side .logout{position:fixed;left:14px;bottom:18px;width:232px;margin:0;border:0;padding:0;z-index:4}
.self-evaluation-page{height:100vh;overflow:hidden;padding-top:18px;padding-bottom:18px;display:flex;flex-direction:column}
.self-evaluation-page>.top{min-height:68px;flex:0 0 68px;align-items:center}
.self-evaluation-page .page-title{font-size:30px;margin:0 0 2px}
.self-evaluation-page .subtitle{margin:0}
.self-evaluation-page .form-header{margin:10px 0;padding:12px 20px;min-height:68px;flex:0 0 auto}
.self-evaluation-page #selfForm{min-height:0;display:flex;flex:1;flex-direction:column}
.self-evaluation-page .eval-scroll{min-height:0;flex:1;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff}
.self-evaluation-page .evaluation thead th{position:sticky;top:0;z-index:2;box-shadow:0 1px 0 var(--line)}
.self-evaluation-page .footerbar{flex:0 0 auto;margin-top:10px;padding:10px 16px}
.self-score-header{margin-left:auto;padding:8px 18px;border-radius:13px;background:#edf8ff}
.self-score-header .total{padding:7px 18px;font-size:12px}
.self-score-header .total b{font-size:25px}
.self-evaluation-page .footerbar>.total{display:none}
@media(max-width:950px){.side .logout{position:static;width:auto;margin-left:auto}.self-evaluation-page{height:auto;min-height:100vh;overflow:visible}.self-evaluation-page>.top{min-height:0;flex-basis:auto}.self-score-header{margin:8px 0 0}.self-evaluation-page .eval-scroll{overflow:auto;max-height:55vh}.self-evaluation-page .form-header{min-height:0}}

/* Pop-up đánh giá và bảng thành tích. */
.drawer-content{overflow:hidden}
.drawer-content:has(#assessForm){display:flex;flex-direction:column}
.drawer-content:has(#assessForm) #assessForm{overflow:auto;min-height:0;padding-right:4px}
.drawer-content:has(#assessForm) .eval-scroll{overflow:visible;border:0}
.drawer-content:has(#assessForm) input[type=number]{appearance:textfield;-moz-appearance:textfield}
.drawer-content:has(#assessForm) input[type=number]::-webkit-inner-spin-button,.drawer-content:has(#assessForm) input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.record-actions{align-items:center;justify-content:flex-end}
.record-action{width:116px;min-width:116px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.record-edit{width:42px;min-width:42px;height:48px;border:0;border-radius:9px;background:#e9f2fb;color:var(--text);font-size:17px;font-weight:800}

/* Giữ nguyên PNG logo gốc; chỉ mở rộng vùng hiển thị theo đúng tỷ lệ ảnh. */
.side{background:#3d4a5c}
.nav button{color:#edf2f7}
.nav button.on{background:#607080;color:#fff}
.side .brand{margin:0 4px 26px;padding:10px;background:#fff;border-radius:18px}
.side .brand img{width:210px;height:155px;object-fit:contain;display:block}
.side .logout{border-top-color:#667587}
.side .logout button{color:#344354}
@media(max-width:950px){.side .brand img{width:100px;height:64px}.side .brand{margin:0;padding:4px}}

/* Trình bày logo trực tiếp trên sidebar, giữ nguyên PNG gốc. */
.shell{grid-template-columns:280px 1fr}
.side{padding:14px 13px}
.side .brand{height:214px;margin:0 0 16px;padding:0;background:transparent;border-radius:0}
.side .brand img{width:254px;height:214px;max-width:100%;object-fit:contain}
.side .logout{width:254px;left:13px}
@media(max-width:950px){.shell{display:block}.side .brand{height:auto;margin:0;padding:0}.side .brand img{width:100px;height:64px}.side .logout{width:auto;left:auto}}

/* Nền sáng: ưu tiên làm nổi logo vàng - xanh ngọc. */
body{background:#faf8f4}
.side{background:#e5f2f5;color:#183b57;border-right:1px solid #c9e1e6}
.nav button{color:#25435d}
.nav button:hover{background:#d4e9ed;color:#123b5a}
.nav button.on{background:#fff;color:#124c66;box-shadow:0 2px 8px #3974851a}
.side .logout{border-top-color:#c8dfe5}
.side .logout button{background:#fff;color:#21435d;box-shadow:0 1px 4px #39748518}
.main{background:#faf8f4}
.stat,.panel,.hero{background:#fffdfa}
.star{background:#fffaf0}

/* Đảo cấu trúc nền: sidebar trắng ngà, nội dung xanh băng nhạt. */
body{background:#edf7fa}
.side{background:#fffaf0;color:#26445c;border-right:1px solid #eadfca}
.nav button{color:#36526a}
.nav button:hover{background:#f2eadb;color:#173e5d}
.nav button.on{background:#e5f2f5;color:#124c66;box-shadow:none}
.side .logout{border-top-color:#eadfca}
.side .logout button{background:#3d596f;color:#fff;box-shadow:none}
.main{background:#edf7fa}
.stat,.panel,.hero{background:#fff}
.star{background:#fffcf5}

/* Nội dung trắng trơn, các thành phần phân tầng bằng viền nhẹ. */
body{background:#fff}
.main{background:#fff}
.self-evaluation-page{background:#fff}
.form-header{background:#f4fbfd}
.footerbar{background:#f5fbfc}

/* Nhân viên chỉ có một màn hình nên không hiển thị sidebar điều hướng. */
.shell:has(.self-evaluation-page){display:block}
.shell:has(.self-evaluation-page) .side{display:contents}
.shell:has(.self-evaluation-page) .side .brand,.shell:has(.self-evaluation-page) .side .nav{display:none}
.shell:has(.self-evaluation-page) .main{max-width:none;width:100%;padding:24px 46px}
.shell:has(.self-evaluation-page) .side .logout{position:fixed;left:auto;right:24px;bottom:22px;width:172px;border:0;z-index:6}
.shell:has(.self-evaluation-page) .side .logout button{background:#254d68;color:#fff;text-align:center;border-radius:10px}
@media(max-width:950px){.shell:has(.self-evaluation-page) .main{padding:18px}.shell:has(.self-evaluation-page) .side .logout{right:18px;bottom:18px;width:auto}.shell:has(.self-evaluation-page) .side .logout button{padding:10px 15px}}

/* Nhận xét và đăng xuất ở màn nhân viên gọn, không kéo ngang toàn trang. */
.self-evaluation-page #selfForm>label.field{width:min(680px,100%);align-self:flex-start;margin:14px 0 0}
.self-evaluation-page #selfForm>label.field textarea{min-height:72px;resize:vertical}
.shell:has(.self-evaluation-page) .side .logout{right:30px;bottom:24px;width:164px;padding:0;border-radius:10px;background:#254d68;box-shadow:0 5px 16px #17364b22}
.shell:has(.self-evaluation-page) .side .logout button{width:164px;min-height:46px;padding:10px 14px}

/* Tăng phân vùng ở trang tự đánh giá. */
.self-evaluation-page .form-header{background:#e9f6fb;border-color:#b9deea}
.self-evaluation-page .evaluation thead th{background:#d9ecf6;color:#123c63;border-bottom:1px solid #b7d7e7}
.self-evaluation-page #selfForm>label.field{width:min(1120px,100%)}
.shell:has(.self-evaluation-page) .side .logout{bottom:72px}
@media(max-width:950px){.shell:has(.self-evaluation-page) .side .logout{bottom:64px}.self-evaluation-page #selfForm>label.field{width:100%}}

/* Trạng thái đã gửi đã thể hiện trong khung thông tin phía trên. */
.self-evaluation-page>.notice{display:none}

/* Nhãn và nội dung nhận xét nằm trên cùng một hàng. */
.self-evaluation-page #selfForm>label.field{display:flex;align-items:center;gap:14px;white-space:nowrap}
.self-evaluation-page #selfForm>label.field textarea{flex:1;min-width:0}
@media(max-width:950px){.self-evaluation-page #selfForm>label.field{align-items:flex-start;flex-direction:column;gap:7px;white-space:normal}.self-evaluation-page #selfForm>label.field textarea{width:100%}}

/* Ô điểm gọn và tiêu đề cột thẳng với dữ liệu. */
.self-evaluation-page .selfScore{appearance:textfield;-moz-appearance:textfield}
.self-evaluation-page .selfScore::-webkit-inner-spin-button,.self-evaluation-page .selfScore::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.self-evaluation-page .evaluation thead th:nth-child(3),.self-evaluation-page .evaluation thead th:nth-child(4),.self-evaluation-page .evaluation thead th:nth-child(5){text-align:center}

/* Đồng bộ Admin với giao diện Nhân viên. */
body,.main{background:#fff}
th{background:#d9ecf6;color:#123c63;border-bottom:1px solid #b7d7e7}
.side{background:#243a50;color:#eef6fb;border-right-color:#1c3043}
.nav button{color:#eaf3f8}
.nav button:hover{background:#35536c;color:#fff}
.nav button.on{background:#4b6b83;color:#fff}
.side .logout{border-top-color:#496176}
.side .logout button{background:#fff;color:#25455e}

/* Sidebar navy đậm hơn để logo nổi rõ. */
.side{background:#172d43;border-right-color:#102338}
.nav button:hover{background:#2d4b64}
.nav button.on{background:#40627c}
.side .logout{border-top-color:#35516a}

/* Navy gần đen cho độ tương phản logo cao nhất. */
.side{background:#101b28;border-right-color:#09121c}
.nav button:hover{background:#263b4e}
.nav button.on{background:#34536b}
.side .logout{border-top-color:#2b4052}

/* Tông than theo mẫu tham chiếu. */
.side{background:#191919;border-right-color:#111111}
.nav button:hover{background:#303030}
.nav button.on{background:#454545}
.side .logout{border-top-color:#3a3a3a}

/* Thành tích / Vi phạm: bám đầu trang và ưu tiên thông tin nhận diện. */
.main:not(.self-evaluation-page){margin:0 auto}
.records-table{table-layout:fixed}
.records-table th:nth-child(1),.records-table td:nth-child(1){width:106px}
.records-table th:nth-child(2),.records-table td:nth-child(2){width:300px}
.records-table th:nth-child(3),.records-table td:nth-child(3){width:130px}
.records-table th:nth-child(5),.records-table td:nth-child(5){width:190px}
.records-table th:nth-child(6),.records-table td:nth-child(6){width:170px}
.records-table th:last-child,.records-table td:last-child{width:180px}
.record-period{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--text)}
.record-period select{padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text)}

/* Cột thao tác gọn, ưu tiên diện tích cho nội dung ghi nhận. */
.records-table th:last-child,.records-table td:last-child{width:142px}
.record-actions{gap:6px}
.record-action{width:88px;min-width:88px;min-height:42px;padding:8px;font-size:14px;font-weight:500}
.record-edit{width:36px;min-width:36px;height:42px;padding:0;font-size:15px;font-weight:600}
.record-delete{width:36px;min-width:36px;height:42px;padding:0;font-size:18px;font-weight:700;color:#c93c3c;background:#fde9e9}

/* Khung bảng bo góc kín và bộ lọc / sắp xếp ghi nhận. */
.records-panel{overflow:hidden}
.records-table{border-radius:14px}
.record-sort{display:inline-grid;place-items:center;width:25px;height:25px;margin-left:5px;padding:0;border:1px solid #9cc8dc;border-radius:6px;background:#fff;color:#174d70;font-size:16px;font-weight:800;line-height:1;vertical-align:middle}

/* Bo góc khép kín cho mọi khung chứa bảng. */
.panel{overflow:hidden}
.panel>table{border-radius:inherit}

/* Thẻ nhân viên xuất sắc: tên và điểm được tách rõ hai phía. */
.main:not(.self-evaluation-page) .star{flex-direction:row;align-items:center;justify-content:space-between;padding:12px 26px}
.star-copy{display:flex;flex-direction:column;gap:5px}
.star-copy strong{margin:0}
.star-copy b{font-size:20px;color:#123c63}
.star-score{color:#ef2532;font-family:"Segoe Print","Bradley Hand","Comic Sans MS",cursive;font-size:44px;font-weight:800;line-height:1;letter-spacing:.02em;white-space:nowrap}
.star-score span{font-size:30px}

/* Pop-up chấm đánh giá: rộng, thấp gọn; nội dung dài cuộn bên trong. */
.drawer-content:has(#assessForm){width:min(1020px,calc(100vw - 48px))!important;max-height:78vh}
.drawer-content:has(#assessForm) .guidance{color:#1b1b1b;font-size:13px;line-height:1.4}
.drawer-content:has(#assessForm) .evaluation td:nth-child(2) b{font-size:15px;line-height:1.32}

/* Bảng Đánh giá gọn theo chiều dọc. */
.report-table td{padding:10px 12px}
.report-table .assess{min-height:36px;padding:8px 14px;font-size:14px;line-height:1.2}

/* Ma trận Tổng quan: tháng mới tự xuất hiện theo dữ liệu kỳ đánh giá. */
.overview-matrix table{table-layout:fixed}
.overview-matrix th:first-child,.overview-matrix td:first-child{width:42%;text-align:left}
.overview-matrix th:not(:first-child),.overview-matrix td:not(:first-child){width:112px;text-align:center}
.overview-matrix td{padding:12px}

/* Bộ icon nét mảnh, đồng nhất cho menu. */
.nav button{display:flex;align-items:center;gap:11px}
.nav-icon{width:18px;height:18px;flex:0 0 18px;display:inline-block;background:currentColor;opacity:.96}
.icon-home{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 10.7 12 3l9 7.7v9.8a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 3 20.5zM9 22v-7h6v7z'/%3E%3C/svg%3E") center/contain no-repeat}
.icon-chart{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 20h16v2H2V2h2zm3-3H5v-6h2zm5 0h-2V5h2zm5 0h-2V9h2z'/%3E%3C/svg%3E") center/contain no-repeat}
.icon-users{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M8 12a4 4 0 1 1 0-8 4 4 0 0 1 0 8m0 2c4.4 0 8 2 8 4.5V21H0v-2.5C0 16 3.6 14 8 14m9-1a3 3 0 1 0 0-6v2a1 1 0 1 1 0 2zm1 3c2.8.2 5 1.6 5 3.5V21h-5z'/%3E%3C/svg%3E") center/contain no-repeat}
.icon-award{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6 2h12v8a6 6 0 0 1-4 5.65V22l-2-1.2L10 22v-6.35A6 6 0 0 1 6 10zm2 2v6a4 4 0 0 0 8 0V4zM2 5h2v5a8 8 0 0 0 3 6.25v2.47A10 10 0 0 1 2 10zm18 0h2v5a10 10 0 0 1-5 8.72v-2.47A8 8 0 0 0 20 10z'/%3E%3C/svg%3E") center/contain no-repeat}
.icon-check{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='m9 16.2-3.5-3.5L4 14.2l5 5L20 8l-1.5-1.5z'/%3E%3C/svg%3E") center/contain no-repeat}

/* Bảng Tổng quan / Đánh giá không cần Mã NV; các cột điểm được căn tuyệt đối. */
.report-table{table-layout:fixed}
.report-table th:nth-child(1),.report-table td:nth-child(1){width:29%}
.report-table th:nth-child(2),.report-table td:nth-child(2){width:28%}
.report-table th:nth-child(3),.report-table td:nth-child(3),.report-table th:nth-child(4),.report-table td:nth-child(4){width:130px;text-align:center}
.report-table th:nth-child(5),.report-table td:nth-child(5){width:160px;text-align:center}
.report-table th:last-child,.report-table td:last-child{text-align:center}

/* Giảm khoảng trống đầu trang Admin và căn giữa các số liệu tổng quan. */
.main:not(.self-evaluation-page){padding-top:14px}
.main:not(.self-evaluation-page) .page-title{margin:0 0 3px}
.main:not(.self-evaluation-page) .subtitle{margin-bottom:16px}
.main:not(.self-evaluation-page) .stats{gap:14px}
.main:not(.self-evaluation-page) .stat{display:flex;min-height:126px;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.main:not(.self-evaluation-page) .star{padding:16px 22px}
.main:not(.self-evaluation-page) .panel[style]{margin-top:14px!important}

/* Hàng số liệu gọn hơn; thẻ nhân viên xuất sắc có điểm nhấn rõ. */
.main:not(.self-evaluation-page) .stat{min-height:88px;padding:10px}
.main:not(.self-evaluation-page) .star{min-height:88px;padding:10px 22px;display:flex;flex-direction:column;justify-content:center;background:#fff1c7;border:1px solid #efc75b}

/* Tổng quan: chọn tháng cạnh tiêu đề, không lặp tiêu đề bảng. */
.overview-heading{display:flex;align-items:center;gap:16px}
.overview-heading .page-title{margin:0!important}
.overview-heading select{padding:7px 10px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:#fff}
.main:not(.self-evaluation-page) .overview-heading+.subtitle{margin:4px 0 14px;font-size:16px;font-weight:800;color:#4e7697;letter-spacing:.02em}
.main:not(.self-evaluation-page) .star{border:0;border-radius:14px}

/* Tổng quan: ba khung chính theo thứ tự quản lý cần theo dõi. */
.overview-top{margin-bottom:14px}
.overview-top .overview-heading{gap:14px}
.overview-top .page-title{font-size:34px}
.overview-stats{grid-template-columns:220px 220px minmax(360px,1fr)}
.overview-stats .stat{min-height:112px}
.overview-stats .star{min-height:112px;padding:14px 28px;flex-direction:row;align-items:center;justify-content:space-between}
.overview-stats .star-copy strong{font-size:18px}
.overview-stats .star-copy b{font-size:21px}
@media(max-width:950px){.overview-stats{grid-template-columns:1fr}.overview-stats .star{min-height:100px}}

/* Phân quyền: hai thẻ cấu hình tương ứng hai tài khoản hệ thống. */
.access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:16px}
.access-body{padding:18px 20px}.access-body p{min-height:42px;margin:0 0 14px;line-height:1.45;color:var(--muted)}
.access-body small{font-weight:400;color:var(--muted)}.access-actions{display:flex;justify-content:flex-end;margin-top:16px}
@media(max-width:950px){.access-grid{grid-template-columns:1fr}}

/* Hành động mật khẩu trong quản lý nhân sự. */
.employee-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.employee-password{display:inline-block;min-width:76px;padding:5px 8px;border-radius:6px;background:#f1f7fb;color:#174d70;font-weight:700;letter-spacing:.04em;text-align:center}
.self-evaluation-page #changeOwnPassword{margin-left:0}
@media(max-width:950px){.employee-actions{width:100%}}

/* Bảng Nhân sự gọn theo chiều dọc. */
.panel:has(.employee-password) td{padding:8px 12px}
.panel:has(.employee-password) .btn.secondary{min-height:36px;padding:8px 14px}
.panel:has(.employee-password) .badge{padding:6px 10px}

/* Chọn quyền cho Admin là nhân viên. */
.permission-panel{max-width:760px}.permission-note{color:var(--muted);line-height:1.5}
.permission-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.permission-list label{display:flex;gap:9px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:9px;background:#f8fbfd;font-weight:600}.permission-list input{width:auto}
@media(max-width:700px){.permission-list{grid-template-columns:1fr}}

/* Hai hành động đối xứng trong cùng thanh cuối trang. */
.self-evaluation-page .footerbar>.logout{position:static!important;width:164px!important;margin-left:auto!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.self-evaluation-page .footerbar>.logout button{width:164px!important;min-height:46px;background:#254d68!important;color:#fff!important;text-align:center!important;border-radius:10px!important;box-shadow:none!important}

/* Danh sách phân quyền linh hoạt. */
.permission-panel-wide{max-width:1040px}.permission-table td{padding:12px 16px}.permission-table .badge{margin:2px 4px 2px 0}.permission-actions{display:flex;gap:8px;align-items:center}.permission-actions .btn{min-height:34px;padding:6px 12px}.permission-actions .more{width:34px;height:34px;border:0;border-radius:8px;background:#fff0f0;color:#c53b3b;font-size:18px}.permission-panel-wide .permission-list{margin:14px 0}
.permission-matrix{margin:16px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.permission-matrix-head,.permission-menu-row{display:grid;grid-template-columns:230px 1fr;gap:16px;padding:12px 16px}.permission-matrix-head{background:#d9edf8;color:#12365d}.permission-menu-row{border-top:1px solid var(--line);align-items:center}.permission-menu-row>div{display:flex;flex-wrap:wrap;gap:10px 18px}.permission-menu-row label{display:flex;align-items:center;gap:7px;font-weight:600}.permission-menu-row input{width:auto}@media(max-width:700px){.permission-matrix-head{display:none}.permission-menu-row{grid-template-columns:1fr;gap:8px}}

/* Đăng nhập: hai nhóm người dùng phân biệt rõ ràng. */
.roles .role{padding:28px;text-align:left}.roles .role h2{text-align:center;margin:0 0 8px}.roles .role>.subtitle{text-align:center;min-height:24px;margin:0 0 22px;white-space:nowrap}.roles .role-employee{background:#f3fbf7;border-color:#bfe5d3}.roles .role-manager{background:#f2f8ff;border:2px solid #7db5f1}.roles .role-manager .btn{background:#155fae}.roles .role-employee .btn{background:#13835e}@media(max-width:700px){.roles .role>.subtitle{white-space:normal}}
.login-method{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 0 14px}.login-method button{padding:8px;border:1px solid #a6d8c2;border-radius:8px;background:#fff;color:#2c6f58;font-weight:700}.login-method button.on{background:#13835e;border-color:#13835e;color:#fff}
.role-manager .login-method button{border-color:#a9cbed;color:#225f9d}.role-manager .login-method button.on{background:#155fae;border-color:#155fae}.login-method.compact{margin-top:-2px}

/* Bảng Thành tích / Vi phạm: cột thao tác không bị chèn hoặc tràn. */
.records-table th:nth-child(1),.records-table td:nth-child(1){width:108px;text-align:left}
.records-table th:nth-child(2),.records-table td:nth-child(2){width:285px;text-align:left}
.records-table th:nth-child(3),.records-table td:nth-child(3){width:140px;text-align:center}
.records-table th:nth-child(5),.records-table td:nth-child(5){width:170px;text-align:left}
.records-table th:nth-child(6),.records-table td:nth-child(6){width:160px;text-align:center;white-space:nowrap}
.records-table th:last-child,.records-table td:last-child{width:200px;text-align:center}
.records-table .record-actions{justify-content:center;gap:7px;white-space:nowrap}
.records-table .record-action{width:100px;min-width:100px;background:#e9f2fb;color:var(--text);font-weight:700}

/* Hành động Nhân sự dùng cùng hệ màu, kích thước và căn giữa. */
.panel:has(.employee-password) th:last-child,.panel:has(.employee-password) td:last-child{width:150px;text-align:center;white-space:nowrap}
.panel:has(.employee-password) td:last-child .editEmployee{vertical-align:middle}
.employee-delete{display:inline-grid;place-items:center;width:36px;height:36px;margin-left:8px;padding:0;vertical-align:middle;border:0;border-radius:8px;background:#fde9e9;color:#c93c3c;font-size:18px;font-weight:700}
.employee-delete:hover,.record-delete:hover{background:#f9d4d4}
