@charset "UTF-8";
/* v34.0: use local/system fonts; no external font request. */

:root {
    --hsu-logo-blue: #1e4682;    /* Mã màu xanh Logo Đại học Hoa Sen */
    --ora-title: #346187;        /* Tiêu đề trang */
    --ora-link: #005fb2;         /* Link chuẩn Oracle */
    --ora-border: #bcd2e8;       /* Viền khung chuẩn Classic Plus */

    /* Chuẩn màu Classic Plus (PeopleSoft 9.2) theo đúng hình Oracle mẫu */
    --classic-plus-bg: #eaf1f8;      /* Nền xanh nhạt pastel dịu mắt */
    --classic-plus-border: #bcd2e8;  /* Viền xanh xám mảnh */
    --classic-plus-text: #9e4a14;    /* Chữ màu nâu cam chuẩn Tangerine/Classic Plus */

    /* Nút bấm vàng cam chuẩn Oracle */
    --ora-btn-bg-top: #fffaed;   
    --ora-btn-bg-bot: #f5dcb3;   
    --ora-btn-border: #d4a359;   
    --ora-font: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

/* ==========================================================================
   PART A: TRANG ĐĂNG NHẬP (HSU MODERN LOGIN)
   ========================================================================== */
html:has(#formLogin),
body:has(#formLogin),
body[onload*="setErrorImg"] {
    background: linear-gradient(135deg, #091e3a 0%, #1e4682 55%, #1e3a8a 100%) !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: var(--ora-font) !important;
    box-sizing: border-box !important;
}

div.formLogin_main, .formLogin_main {
    width: 780px !important;
    max-width: 95vw !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;
    float: none !important;
    position: relative !important;
    background: none !important;
}

div.formLogin_main div#formLogin,
div#formLogin,
#formLogin {
    background: #ffffff none !important;
    background-image: none !important;
    width: 100% !important;
    height: auto !important;
    border-radius: 16px !important;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.45) !important;
    padding: 36px 40px 40px 40px !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    grid-template-areas:
        "header lang"
        "mainform mainform" !important;
    gap: 24px 20px !important;
    align-items: center !important;
    border-top: 6px solid #f59e0b !important;
}

div#formLogin #hsu-modern-header {
    grid-area: header !important;
    text-align: left !important;
    padding-bottom: 16px !important;
    border-bottom: 1px solid #e2e8f0 !important;
    margin: 0 !important;
}

div#formLogin #hsu-modern-header .hsu-sub {
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: #2563eb !important;
    margin-bottom: 4px !important;
    display: block !important;
}

div#formLogin #hsu-modern-header .hsu-title {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #0f4c81 !important;
    margin: 0 !important;
    line-height: 1.25 !important;
}

div#formLogin div.infoLogin,
.infoLogin {
    grid-area: lang !important;
    position: static !important;
    padding: 0 0 16px 0 !important;
    border-bottom: 1px solid #e2e8f0 !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
}

div#formLogin .languageText {
    background: #f1f5f9 !important;
    padding: 6px 14px !important;
    border-radius: 20px !important;
    font-size: 12px !important;
    color: #64748b !important;
}

div#formLogin .languageText a {
    color: #0f4c81 !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    padding: 0 4px !important;
}

div#formLogin form#login,
#formLogin form {
    grid-area: mainform !important;
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1.1fr 0.9fr !important;
    gap: 32px !important;
    align-items: center !important;
}

div#formLogin div.user_log,
.user_log {
    grid-column: 1 !important;
    width: 100% !important;
}

div#formLogin .user_log table {
    width: 100% !important;
    border-collapse: collapse !important;
}

div#formLogin .user_log tr {
    display: flex !important;
    flex-direction: column !important;
    margin-bottom: 14px !important;
}

div#formLogin .user_log td {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    text-align: left !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #334245 !important;
    background: none !important;
}

div#formLogin .user_log td:first-child {
    margin-bottom: 6px !important;
}

div#formLogin .user_log tr:last-child td {
    color: #dc2626 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
}

img[src*="buttonLeft"],
img[src*="buttonCenter"],
img[src*="buttonRight"],
img[src*="breakLanguage"] {
    display: none !important;
}

div#formLogin .user_log input[type="text"],
div#formLogin .user_log input[type="password"] {
    width: 100% !important;
    height: 42px !important;
    padding: 8px 14px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    border: 1.5px solid #cbd5e1 !important;
    border-radius: 8px !important;
    background-color: #f8fafc !important;
    color: #0f172a !important;
    box-sizing: border-box !important;
}

div#formLogin .user_log input[type="text"]:focus,
div#formLogin .user_log input[type="password"]:focus {
    background-color: #ffffff !important;
    border-color: #2563eb !important;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18) !important;
    outline: none !important;
}

div#formLogin .user_log input[type="submit"],
div#formLogin .user_log input[type="button"],
div#formLogin .user_log button {
    width: 100% !important;
    height: 44px !important;
    margin: 6px 0 0 0 !important;
    padding: 0 16px !important;
    background: linear-gradient(135deg, #1e4682 0%, #2563eb 100%) !important;
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    border: none !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.25) !important;
}

div#formLogin form#login div.innounce_log,
div.innounce_log,
.innounce_log {
    grid-column: 2 !important;
    padding: 18px 20px !important;
    background-color: #f0f9ff !important;
    border: 1px solid #bae6fd !important;
    border-left: 4px solid #0284c7 !important;
    border-radius: 12px !important;
    box-sizing: border-box !important;
}

div.innounce_log h2#browsercheck_error,
div.innounce_log h2.psloginerror,
#browsercheck_error,
.innounce_log * {
    font-size: 13px !important;
    line-height: 1.6 !important;
    font-weight: 400 !important;
    color: #334245 !important;
    text-align: left !important;
    border: none !important;
    background: transparent !important;
}

div.innounce_log a,
#browsercheck_error a {
    color: #0284c7 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}

.trace_link {
    display: none !important;
}

/* ==========================================================================
   PART B: HEADER VÀ MENU CÂY BÊN TRÁI
   (ĐÃ XÓA BỎ HOÀN TOÀN CÁC ĐƯỜNG KẺ XANH ĐỨNG KHI CHỌN MENU)
   ========================================================================== */

/* UI 34.6: retain native header geometry and logo; no fixed height on nested rows. */
#pthdr2container, #pthdr2links, .PSHEADER {
    background-color:var(--hsu-logo-blue) !important;
    border:0 !important; box-shadow:none !important;
}
#pthdr2container { height:auto !important; min-height:0 !important; }
#pthdr2container table, #pthdr2container tbody, #pthdr2container tr {
    height:auto !important; min-height:0 !important;
    background-color:transparent !important;
}
#pthdr2container td, #pthdr2links td {
    background-color:transparent !important; box-shadow:none !important;
}
#pthdr2links { height:auto !important; padding:10px 15px !important; vertical-align:middle !important; }
#pthdr2links a, #pthdr2links span, #pthdr2container a, #pthdr2container span {
    color:#fff !important; font-size:12px !important; text-decoration:none !important;
}
#pthdr2links a:hover { text-decoration:underline !important; }

/* 4. Menu cây bên trái - Xóa sạch mọi đường kẻ xanh đứng (border-left & background-image) */
#ptnav2pglt,
#ptnav2pgltbody,
#ptnav2tree,
ul#ptnav2tree {
    background: #f8fafc none !important;
    background-color: #f8fafc !important;
    background-image: none !important;
    font-family: var(--ora-font) !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    border: none !important;
}

/* Keep native navigation icons; remove only borders and shadows. */
#ptnav2pgltbody *, #ptnav2tree * {
    border-left:0 !important; border-right:0 !important; box-shadow:none !important;
}

/* v34.0: retain original navigation toggle and icons. */
#ptnav2tree li.ptnav2closed > ul,
#ptnav2tree ul.ptnav2closed {
    display: none !important;
}

/* Khi mở thư mục con: chỉ thụt lề vào trong, KHÔNG hiển thị đường kẻ xanh đứng */
#ptnav2tree li.ptnav2open > ul {
    display: block !important;
    padding-left: 12px !important;
    margin: 0 !important;
    background-color: #f1f5f9 !important;
    border: none !important;
    border-left: none !important;
}

#ptnav2tree li {
    list-style: none !important;
    border: none !important;
    border-bottom: 1px solid #e2e8f0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

#ptnav2tree li a {
    display: block !important;
    align-items: baseline !important;
    padding: 8px 10px !important;
    color: #1e293b !important;
    font-family: var(--ora-font) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
    border: none !important;
}

/* v34.0: keep native expand/collapse symbols; no duplicate pseudo-icons. */
#ptnav2tree li a:hover {
    background-color: #e0f2fe !important;
    color: #0369a1 !important;
    border: none !important;
}

/* Mục đang được chọn: tô nền xanh nhạt, xóa bỏ vạch xanh đậm bên trái của PeopleSoft */
#ptnav2tree li.ptnav2selected,
#ptnav2tree .ptnav2selected {
    background-color: #bce3ff !important;
    border-left: none !important;
}

#ptnav2tree li.ptnav2selected > a,
#ptnav2tree a.ptnav2selected {
    background-color: #bce3ff !important;
    color: #0f172a !important;
    font-weight: 700 !important;
    border: none !important;
    border-left: none !important;
}

/* ==========================================================================
   PART C: NAVIGATION COLLECTIONS (EOPP & PTPP SVG ICONS)
   ========================================================================== */
.EOPP_SCPAGEBORDER, .EOPP_SCBREADCRUMBSECTION,
table:has(td.EOPP_SCPAGEBORDER) td {
    background: #ffffff none !important;
    border-color: #f1f5f9 !important;
}

.eopp_scbreadcrumbs, .EOPP_SCBREADCRUMBS {
    background: #ffffff none !important;
    color: #64748b !important;
    font-family: var(--ora-font) !important;
    font-size: 12px !important;
    padding: 6px 10px !important;
}

.eopp_scbgbanner, .EOPP_SCBGBANNER, .ptpp_scheader {
    background: #f2f4f7 none !important;
    border-top: 1px solid #e2e8f0 !important;
    border-bottom: 1px solid #cbd5e1 !important;
    padding: 8px 12px !important;
}

.eopp_scpagetitle, .EOPP_SCPAGETITLE {
    font-family: var(--ora-font) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #17365d !important;
}

/* 1. Icon thư mục lớn (Folder Icon) */
img[src*="PTPP_FN_LARGE_FOLDER_ICN"],
img[src*="EOPP_FOLDER_ICN"],
img[src*="EOPP_SC_FOLDER"],
img[src*="EOPP_SC_FLDR"],
img[src*="EOPP_FOLDER"],
img[src*="FOLDER_LARGE"],
td[class*="scbox"] > img[src*="FOLDER"],
td[class*="SCBOX"] > img[src*="FOLDER"],
td.eopp_scbox img[src*="folder"],
td.eopp_scbox img[src*="FOLDER"],
td:has(> a.eopp_scchildtitle) > img[src*="folder"],
td:has(> a.eopp_scchildtitle) > img[src*="FOLDER"] {
    display: inline-block !important;
    box-sizing: border-box !important;
    width: 38px !important;
    height: 38px !important;
    padding-left: 38px !important;
    overflow: hidden !important;
    background-color: #fffbeb !important;
    border: 1px solid #fde68a !important;
    border-radius: 10px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f59e0b' stroke='%23d97706' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 22px 22px !important;
    vertical-align: middle !important;
    box-shadow: 0 2px 4px rgba(245, 158, 11, 0.12) !important;
}

/* 2. Icon tài liệu/nội dung lớn (Content/Page Icon) */
img[src*="PTPP_FN_LARGE_CONTENT_ICN"],
img[src*="EOPP_CONTENT_ICN"],
img[src*="EOPP_SC_CONTENT"],
img[src*="EOPP_SC_PAGE"],
img[src*="EOPP_CONTENT"],
img[src*="CONTENT_LARGE"],
td[class*="scbox"] > img[src*="CONTENT"],
td[class*="SCBOX"] > img[src*="CONTENT"],
td.eopp_scbox img[src*="content"],
td.eopp_scbox img[src*="CONTENT"],
td:has(> a.eopp_scchildtitle) > img[src*="content"],
td:has(> a.eopp_scchildtitle) > img[src*="CONTENT"] {
    display: inline-block !important;
    box-sizing: border-box !important;
    width: 38px !important;
    height: 38px !important;
    padding-left: 38px !important;
    overflow: hidden !important;
    background-color: #eff6ff !important;
    border: 1px solid #bfdbfe !important;
    border-radius: 10px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230284c7' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='3' y1='9' x2='21' y2='9'/%3E%3Cline x1='9' y1='21' x2='9' y2='9'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 22px 22px !important;
    vertical-align: middle !important;
    box-shadow: 0 2px 4px rgba(2, 132, 199, 0.12) !important;
}

/* 3. Card danh mục bo góc */
td.eopp_scbox, td.EOPP_SCBOX,
td.eopp_scfolder, td.EOPP_SCFOLDER,
td[class*="scbox"], td[class*="SCBOX"] {
    background: #ffffff none !important;
    background-color: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 14px 12px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

/* ==========================================================================
   PART D: GIAO DIỆN TÁC NGHIỆP, GROUPBOX & THANH CÔNG CỤ
   ========================================================================== */
body.PSPAGE, #ptifrmtgtframe {
    background-color: #ffffff !important;
}

body.PSPAGE, body.PSPAGE input, body.PSPAGE select, body.PSPAGE textarea {
    font-family: Arial, "Segoe UI", sans-serif !important;
    -webkit-font-smoothing: antialiased !important;
}

.PAPAGETITLE, h1.PAPAGETITLE, span.PAPAGETITLE,
.PSSRCHTITLE, .SSSPAGETITLE, .PSQRYTITLE {
    font-family: "Segoe UI", Arial, sans-serif !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    color: var(--ora-title) !important;
}

/* 1. Thanh công cụ góc phải (New Window, Personalize, Ngôn ngữ) */
table.PSTABPAGE,
#PSTAB table,
div[id*="PAGEBAR"],
#win0divPAGEBAR,
table:has(a[href*="NewWindow"]),
tr:has(a[href*="NewWindow"]),
td:has(a[href*="NewWindow"]) {
    overflow: visible !important;
    height: auto !important;
    min-height: 32px !important;
}

td:has(a[href*="NewWindow"]),
td:has(select[name*="DataLanguage"]),
td.PSTEXT:has(a[href*="NewWindow"]) {
    vertical-align: middle !important;
    padding-top: 5px !important;
    padding-bottom: 3px !important;
    overflow: visible !important;
}

select[name*="DataLanguage"],
select[id*="DataLanguage"] {
    vertical-align: middle !important;
    margin: 0 4px !important;
    height: 22px !important;
}

a[href*="NewWindow"],
a[href*="PersonalizePage"],
a[id*="NewWindow"] {
    display: inline-flex !important;
    align-items: center !important;
    vertical-align: middle !important;
    line-height: normal !important;
    padding: 2px 4px !important;
    text-decoration: none !important;
}

a[href*="NewWindow"] img,
a[href*="PersonalizePage"] img {
    vertical-align: middle !important;
    margin-right: 4px !important;
}

/* 2. Tab bar và đường viền đáy */
#PSTAB table, table.PSTABPAGE {
    border-collapse: separate !important;
    border-spacing: 2px 0 !important;
    border-bottom: 1px solid #cbd5e1 !important;
    margin-bottom: 10px !important;
}

#PSTAB td.PSACTIVETAB, td.PSACTIVETAB, a.PSACTIVETAB {
    background: linear-gradient(to bottom, #d6e6f5 0%, #ffffff 100%) !important;
    color: #1d2d3e !important;
    font-weight: 700 !important;
    font-size: 11.5px !important;
    padding: 4px 12px !important;
    border-top: 2px solid #5a87b8 !important;
    border-left: 1px solid #9cb2c9 !important;
    border-right: 1px solid #9cb2c9 !important;
    border-bottom: 1px solid #ffffff !important;
    border-radius: 3px 3px 0 0 !important;
    text-decoration: none !important;
}

/* 3. Xóa bỏ các thẻ <hr> gây trùng đường kẻ (An toàn cho trang Reported Time) */
.PSHORIZONTALRULE,
table.PSLEVEL1SCROLLAREABODYWBO hr,
table.PSLEVEL2SCROLLAREABODYWBO hr,
table.PSLEVEL3SCROLLAREABODYWBO hr,
table.PSGROUPBOXWBO hr,
fieldset.PSGROUPBOXWBO hr,
table[class*="TAB"] hr,
table.PSTABPAGE hr,
td.PSHORIZONTALRULE,
tr.PSHORIZONTALRULE {
    display: none !important;
    height: 0 !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 4. Thanh điều hướng Grid */
.PSLEVEL1GRIDNAVIGATIONBAR,
.PSLEVEL2GRIDNAVIGATIONBAR,
.PSLEVEL3GRIDNAVIGATIONBAR,
td.PSLEVEL1GRIDNAVIGATIONBAR,
td.PSLEVEL2GRIDNAVIGATIONBAR,
td.PSLEVEL3GRIDNAVIGATIONBAR,
td[class*="NAVIGATIONBAR"],
.PSLEVEL1SCROLLAREANAVBAR,
td.PSLEVEL1SCROLLAREANAVBAR {
    background: var(--classic-plus-bg) none !important;
    background-color: var(--classic-plus-bg) !important;
    text-align: right !important;
    font-size: 11px !important;
    color: #475569 !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
    padding: 3px 8px !important;
    height: 26px !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 1px solid var(--classic-plus-border) !important;
    box-sizing: border-box !important;
}

.PSLEVEL1GRIDNAVIGATIONBAR a,
.PSLEVEL2GRIDNAVIGATIONBAR a,
.PSLEVEL3GRIDNAVIGATIONBAR a {
    color: #005fb2 !important;
    font-weight: 500 !important;
    font-size: 11px !important;
    text-decoration: none !important;
    padding: 0 3px !important;
}

/* 5. Triệt tiêu border-top của hàng nội dung kế tiếp */
tr:has(> td[class*="NAVIGATIONBAR"]) + tr td,
tr:has(> td[class*="NAVIGATIONBAR"]) + tr table,
table.PSLEVEL1SCROLLAREABODYWBO > tbody > tr > td:not([class*="NAVIGATIONBAR"]):not([class*="HEADER"]),
table.PSLEVEL2SCROLLAREABODYWBO > tbody > tr > td:not([class*="NAVIGATIONBAR"]):not([class*="HEADER"]) {
    border-top: none !important;
}

/* 6. Khung tiêu chí tìm kiếm */
table.PSSRCHHEADER td.PSSRCHHEADERLEFT,
table.PSSRCHHEADER td.PSSRCHHEADERRIGHT,
td.PSSRCHHEADERLEFT,
td.PSSRCHHEADERRIGHT,
img[src*="PSSRCH_L"],
img[src*="PSSRCH_R"],
img[src*="PSSRCH_COLLAPSE"],
img[src*="PSSRCH_EXPAND"],
img[src*="PSSRCH_"] {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

table.PSSRCHHEADER {
    background: var(--classic-plus-bg) !important;
    border: 1px solid var(--classic-plus-border) !important;
    border-collapse: collapse !important;
    margin-top: 10px !important;
    margin-bottom: 8px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

table.PSSRCHHEADER td,
table.PSSRCHHEADER td.PSSRCHHEADERCENTER,
td.PSSRCHHEADERCENTER,
td.PSSRCHSUBTITLE,
.PSSRCHSUBTITLE {
    background: var(--classic-plus-bg) none !important;
    background-color: var(--classic-plus-bg) !important;
    color: var(--classic-plus-text) !important;
    font-family: var(--ora-font) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    height: 26px !important;
    line-height: 26px !important;
    padding: 0 10px !important;
    vertical-align: middle !important;
    border: none !important;
    box-sizing: border-box !important;
}

/* 7. GroupBox & Grid */
table.PSGROUPBOXWBO,
fieldset.PSGROUPBOXWBO,
table.PSLEVEL1SCROLLAREABODYWBO,
table.PSLEVEL2SCROLLAREABODYWBO,
table.PSLEVEL3SCROLLAREABODYWBO,
table.PSLEVEL1GRIDWBO,
table.PSLEVEL2GRIDWBO,
table.PSLEVEL3GRIDWBO,
table.SSSGROUPBOXWBO,
table.SSSGROUPBOX {
    border: 1px solid var(--classic-plus-border) !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    background-color: #ffffff !important;
    box-sizing: border-box !important;
}

.PSGROUPBOXLABEL, 
td.PSGROUPBOXLABEL,
legend.PSGROUPBOXLABEL,
fieldset.PSGROUPBOXWBO legend,
.PSLEVEL1SCROLLAREAHEADER,
.PSLEVEL2SCROLLAREAHEADER,
.PSLEVEL3SCROLLAREAHEADER,
td.PSLEVEL1SCROLLAREAHEADER,
td.PSLEVEL2SCROLLAREAHEADER,
td.PSLEVEL3SCROLLAREAHEADER,
.PSLEVEL1GRIDLABEL,
.PSLEVEL2GRIDLABEL,
.PSLEVEL3GRIDLABEL,
td.PSLEVEL1GRIDLABEL,
td.PSLEVEL2GRIDLABEL,
td.PSLEVEL3GRIDLABEL,
.SSSGROUPBOXLABEL,
.SSSTEXTGROUPBOX,
td[background*="PSSRCH"],
td[background*="PSHEADER_"] {
    background: var(--classic-plus-bg) none !important;
    background-color: var(--classic-plus-bg) !important;
    background-image: none !important;
    color: var(--classic-plus-text) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    padding: 4px 10px !important;
    height: 26px !important;
    line-height: 18px !important;
    vertical-align: middle !important;
    border: none !important;
    border-bottom: 1px solid var(--classic-plus-border) !important;
    box-sizing: border-box !important;
}

/* Xóa vệt thanh dọc màu xanh xám bên góc phải của thanh tiêu đề GroupBox */
td.PSGROUPBOXLABEL + td,
tr:has(> td.PSGROUPBOXLABEL) > td,
td.PSGROUPBOXLABEL img {
    background: var(--classic-plus-bg) none !important;
    background-image: none !important;
    border-bottom: 1px solid var(--classic-plus-border) !important;
}

/* ==========================================================================
   PART E: TRIỆT TIÊU 100% BÓNG MỜ XANH BÊN DƯỚI BUTTON (RUN, LƯU, THÊM...)
   ========================================================================== */

/* v34.3: reset decorative wrappers only; never erase clickable controls. */
span.PSPUSHBUTTON:has(> input), a.PSPUSHBUTTON:has(> input),
span.PSPUSHBUTTONTB:has(> input), a.PSPUSHBUTTONTB:has(> input) {
    background: none !important; border: 0 !important; box-shadow: none !important;
    padding: 0 !important; display: inline-block !important;
}
td.PSPUSHBUTTONLEFT, td.PSPUSHBUTTONRIGHT { display:none !important; }
.hsu-ui-control, input.PSPUSHBUTTON, input.PSPUSHBUTTONTB,
input.PSSRCHBUTTON, button.PSPUSHBUTTON,
a.PSPUSHBUTTON:not(:has(input)), a.PSPUSHBUTTONTB:not(:has(input)) {
    background: #eaf1f8 !important; background-image:none !important;
    color: #173b62 !important; border: 1px solid #829bb4 !important;
    border-radius: 6px !important; padding: 6px 14px !important;
    margin: 4px 6px 4px 0 !important; min-height: 32px !important;
    height: auto !important; width:auto !important;
    font: 600 13px/1.4 Arial, sans-serif !important;
    display:inline-block !important; vertical-align:middle !important;
    text-align:center !important; text-decoration:none !important;
    box-shadow:none !important; cursor:pointer !important;
}
.hsu-ui-control.hsu-ui-search {
    background:#1e4682 !important; color:#fff !important; border-color:#1e4682 !important;
}
.hsu-ui-control.hsu-ui-clear {
    background:#fff !important; color:#8c2d1b !important; border-color:#b86851 !important;
}
.hsu-ui-control:hover { filter:brightness(.94) !important; }
.hsu-ui-control:focus-visible {
    outline:3px solid #69a8ed !important; outline-offset:2px !important;
}
.hsu-ui-control:disabled, .hsu-ui-control[aria-disabled="true"],
.hsu-ui-control.PSPUSHBUTTONDISABLED {
    background:#edf0f4 !important; color:#667385 !important;
    border-color:#bbc5d0 !important; cursor:default !important; filter:none !important;
}
.hsu-ui-control > span { background:transparent !important; color:inherit !important; }
/* Native form semantics, widths and handlers are preserved. */
html.hsu-modern3424 input.PSEDITBOX:not([type="checkbox"]):not([type="radio"]),
html.hsu-modern3424 input.PSEDITBOXPS,
html.hsu-modern3424 select.PSDROPDOWNLIST,
html.hsu-modern3424 select.PSDROPDOWNLIST_DISPONLY,
html.hsu-modern3424 .hsu-ui-field {
    box-sizing:border-box !important; min-height:30px !important;
    border:1px solid #99aec3 !important; border-radius:4px !important;
    background:#fff !important; color:#172b42 !important;
    padding:4px 6px !important; font:13px/1.4 Arial,sans-serif !important;
}
html.hsu-modern3424 .hsu-ui-field:focus {
    outline:2px solid #86b7ee !important; outline-offset:1px !important;
}
html.hsu-modern3424 .hsu-ui-field:disabled,
html.hsu-modern3424 .hsu-ui-field[readonly] {
    background:#f0f3f6 !important; color:#526171 !important;
}
td.PSACTIVETAB, a.PSACTIVETAB, .PSSRCHTABACTIVE {
    background:#1e4682 !important; color:#fff !important;
    border:1px solid #1e4682 !important; padding:6px 12px !important;
}
td.PSINACTIVETAB, a.PSINACTIVETAB, .PSSRCHTAB {
    background:#edf2f7 !important; color:#173b62 !important;
    border:1px solid #aebed0 !important; padding:6px 12px !important;
}
/* ==========================================================================
   PART F: TỐI ƯU HÓA RESPONSIVE CHO MOBILE & TABLET
   ========================================================================== */
@media screen and (max-width: 768px) {
    html:has(#formLogin),
    body:has(#formLogin),
    body[onload*="setErrorImg"] {
        padding: 12px !important;
        align-items: flex-start !important;
    }

    div.formLogin_main, .formLogin_main {
        width: 100% !important;
        max-width: 100% !important;
        margin: 10px auto !important;
    }

    div.formLogin_main div#formLogin,
    div#formLogin,
    #formLogin {
        padding: 24px 20px !important;
        border-radius: 12px !important;
        grid-template-columns: 1fr !important;
        grid-template-areas:
            "lang"
            "header"
            "mainform" !important;
        gap: 12px !important;
    }

    div#formLogin div.infoLogin,
    .infoLogin {
        justify-content: flex-end !important;
        padding-bottom: 8px !important;
        border-bottom: none !important;
    }

    div#formLogin #hsu-modern-header .hsu-title {
        font-size: 18px !important;
    }

    div#formLogin form#login,
    #formLogin form {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    div#formLogin div.user_log,
    .user_log,
    div#formLogin form#login div.innounce_log,
    div.innounce_log,
    .innounce_log {
        grid-column: 1 !important;
    }

    div#formLogin .user_log input[type="text"],
    div#formLogin .user_log input[type="password"] {
        font-size: 16px !important;
    }

    #ptifrmtarget,
    #ptifrmtgtframe,
    div.PSPAGECONTAINER,
    body.PSPAGE {
        overflow-x: auto !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }
}
/* v34.0: preserve login DOM and responsive announcement layout. */
#formLogin .innounce_log { float:none !important; position:static !important; width:100% !important; }
#formLogin img[src*="LOGIN"] { display:none !important; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline:2px solid #2563eb !important; outline-offset:2px !important;
}

/* PIA template positioning overrides, v34.1 */
#formLogin .user_log, #formLogin .innounce_log { position:static !important; top:auto !important; left:auto !important; float:none !important; min-height:0 !important; height:auto !important; }
#formLogin .buttonLoginLeft, #formLogin .buttonLoginRight { display:none !important; }
#formLogin .buttonLoginCenter { background:none !important; float:none !important; width:100% !important; height:auto !important; }

/* UI 34.4: remove only the native decorative shells around actual buttons. */
html.hsu-modern3424 .hsu-button-shell {
    background:transparent !important; background-image:none !important;
    border:0 !important; box-shadow:none !important; text-shadow:none !important;
    filter:none !important; padding:0 !important;
    height:auto !important; min-height:0 !important;
}
html.hsu-modern3424 .hsu-button-shell::before,
html.hsu-modern3424 .hsu-button-shell::after { content:none !important; display:none !important; }
html.hsu-modern3424 .hsu-ui-control,
html.hsu-modern3424 input[id="#ICSearch"],
html.hsu-modern3424 input[id="#ICClear"] {
    box-shadow:none !important; -webkit-box-shadow:none !important;
    text-shadow:none !important; filter:none !important;
    -webkit-appearance:none !important; appearance:none !important;
}
html.hsu-modern3424 .hsu-ui-control.hsu-ui-search {
    background:#1e4682 !important; border-color:#1e4682 !important; color:#fff !important;
}
html.hsu-modern3424 .hsu-ui-control.hsu-ui-clear {
    background:#c5530b !important; border-color:#a84307 !important; color:#fff !important;
}
html.hsu-modern3424 .hsu-ui-control.hsu-ui-search:hover { background:#173766 !important; }
html.hsu-modern3424 .hsu-ui-control.hsu-ui-clear:hover { background:#a84307 !important; }
html.hsu-modern3424 .hsu-ui-control:disabled,
html.hsu-modern3424 .hsu-ui-control[aria-disabled="true"],
html.hsu-modern3424 .hsu-ui-control.PSPUSHBUTTONDISABLED {
    background:#edf0f4 !important; color:#667385 !important; border-color:#bbc5d0 !important;
}
html.hsu-modern3424 table.hsu-search-heading {
    background:#eaf1f8 !important; background-image:none !important;
    border:0 !important; border-bottom:1px solid #bcd2e8 !important;
    border-collapse:collapse !important;
}
html.hsu-modern3424 table.hsu-search-heading td {
    background:#eaf1f8 !important; background-image:none !important;
    box-shadow:none !important; border:0 !important; text-shadow:none !important;
}
html.hsu-modern3424 table.hsu-search-heading span {
    background:transparent !important; background-image:none !important;
    color:#173b62 !important; text-shadow:none !important;
}
html.hsu-modern3424 table.hsu-search-heading .hsu-search-cap {
    display:none !important; width:0 !important; padding:0 !important;
}
/* Result headings retain link behavior and do not look like action buttons. */
html.hsu-modern3424 td.PSSRCHRESULTSHDR a,
html.hsu-modern3424 td[class*="GRIDCOLUMNHDR"] a {
    background:transparent !important; border:0 !important; border-radius:0 !important;
    padding:0 !important; margin:0 !important; min-height:0 !important;
    box-shadow:none !important; display:inline !important;
}

/* UI 34.6: folder affordance only when the DOM identifies a branch. */
html.hsu-modern3424 .hsu-nav-branch {
    position:relative !important; padding-left:26px !important;
    background-image:none !important;
}
html.hsu-modern3424 .hsu-nav-branch::before {
    content:"" !important; position:absolute !important; left:10px !important;
    top:50% !important; width:0 !important; height:0 !important;
    border-top:5px solid transparent !important; border-bottom:5px solid transparent !important;
    border-left:6px solid #47617d !important; border-right:0 !important;
    transform:translateY(-50%); pointer-events:none;
}
html.hsu-modern3424 .hsu-nav-branch.hsu-nav-open::before {
    border-top:6px solid #47617d !important; border-bottom:0 !important;
    border-left:5px solid transparent !important; border-right:5px solid transparent !important;
}
/* All business action buttons requested in orange; login remains separate. */
html.hsu-modern3424 .hsu-ui-control,
html.hsu-modern3424 .hsu-ui-control.hsu-ui-search,
html.hsu-modern3424 .hsu-ui-control.hsu-ui-clear {
    background:#c5530b !important; background-image:none !important;
    border:1px solid #a84307 !important; color:#fff !important;
    box-shadow:none !important; text-shadow:none !important;
}
html.hsu-modern3424 .hsu-ui-control:hover { background:#a84307 !important; }
html.hsu-modern3424 .hsu-ui-control:focus-visible { outline:3px solid #f4b87e !important; outline-offset:2px !important; }
html.hsu-modern3424 .hsu-ui-control:disabled,
html.hsu-modern3424 .hsu-ui-control[aria-disabled="true"],
html.hsu-modern3424 .hsu-ui-control.PSPUSHBUTTONDISABLED {
    background:#edf0f4 !important; color:#667385 !important; border-color:#bbc5d0 !important;
}
/* Native message positioning, overlay and handlers remain under PeopleSoft. */
.hsu-message-dialog {
    box-sizing:border-box !important; background:#fff !important;
    border:2px solid #c5530b !important; border-radius:8px !important;
    padding:12px !important; color:#172b42 !important;
    box-shadow:0 8px 28px rgba(15,35,60,.2) !important;
}
.hsu-message-dialog #ptpopupmsgtitle,
.hsu-message-dialog .PSMODALTITLE,
.hsu-message-dialog .PSPOPUPTITLE {
    background:#fff4e9 !important; color:#803500 !important;
    border-bottom:1px solid #e8b78e !important;
}
#ptpopupmsgbtn input[type="button"], #ptpopupmsgbtn input[type="submit"],
#ptpopupmsgbtn button, .hsu-message-dialog .hsu-ui-control {
    background:#c5530b !important; color:#fff !important;
    border:1px solid #a84307 !important; border-radius:6px !important;
    padding:6px 16px !important; min-height:32px !important;
    box-shadow:none !important; text-shadow:none !important;
}
#ptpopupmsgbtn input:disabled, #ptpopupmsgbtn button:disabled {
    background:#edf0f4 !important; color:#667385 !important; border-color:#bbc5d0 !important;
}

/* UI 34.7: compact Classic presentation based on the supplied reference image. */
html.hsu-modern3424 {
    --classic-plus-bg:#f1f4f6;
    --classic-plus-border:#cbd2d9;
    --classic-plus-text:#9e4a14;
}
html.hsu-modern3424 table.PSGROUPBOXWBO,
html.hsu-modern3424 fieldset.PSGROUPBOXWBO,
html.hsu-modern3424 table[class*="GRIDWBO"],
html.hsu-modern3424 table[class*="SCROLLAREABODYWBO"] {
    border:1px solid #cbd2d9 !important; border-radius:0 !important;
    border-collapse:collapse !important; border-spacing:0 !important;
    margin-top:4px !important; margin-bottom:8px !important;
    box-shadow:none !important;
}
html.hsu-modern3424 .PSGROUPBOXLABEL,
html.hsu-modern3424 [class*="SCROLLAREAHEADER"],
html.hsu-modern3424 .PSLEVEL1GRIDLABEL,
html.hsu-modern3424 .PSLEVEL2GRIDLABEL,
html.hsu-modern3424 .PSLEVEL3GRIDLABEL,
html.hsu-modern3424 .SSSGROUPBOXLABEL {
    background:#f1f4f6 !important; background-image:none !important;
    color:#9e4a14 !important; font:600 13px/18px Arial,sans-serif !important;
    height:auto !important; min-height:0 !important;
    padding:4px 8px !important; margin:0 !important;
    border:0 !important; box-shadow:none !important;
}
html.hsu-modern3424 tr.hsu-section-header {
    background:#f1f4f6 !important; height:auto !important;
    border:0 !important; border-bottom:1px solid #cbd2d9 !important;
}
html.hsu-modern3424 tr.hsu-section-header > td {
    background:#f1f4f6 !important; background-image:none !important;
    height:auto !important; padding:3px 8px !important;
    border:0 !important; vertical-align:middle !important;
    box-shadow:none !important;
}
html.hsu-modern3424 tr.hsu-section-header table,
html.hsu-modern3424 tr.hsu-section-header td,
html.hsu-modern3424 tr.hsu-section-header hr,
html.hsu-modern3424 tr.hsu-section-header .PSHORIZONTALRULE {
    border:0 !important; box-shadow:none !important;
}
html.hsu-modern3424 tr.hsu-section-header hr,
html.hsu-modern3424 tr.hsu-section-header .PSHORIZONTALRULE,
html.hsu-modern3424 .hsu-section-separator,
html.hsu-modern3424 .hsu-section-cap {
    display:none !important; height:0 !important; min-height:0 !important;
    padding:0 !important; margin:0 !important; border:0 !important;
}
html.hsu-modern3424 tr.hsu-section-header [class*="NAVIGATIONBAR"],
html.hsu-modern3424 tr.hsu-section-header [class*="SCROLLAREANAVBAR"] {
    text-align:right !important; background:#f1f4f6 !important;
    border:0 !important; padding:2px 4px !important;
    height:auto !important; font:12px/18px Arial,sans-serif !important;
}
html.hsu-modern3424 td[class*="GRIDCOLUMNHDR"],
html.hsu-modern3424 th[class*="GRIDCOLUMNHDR"],
html.hsu-modern3424 td.PSSRCHRESULTSHDR {
    background:#f7f8f9 !important; color:#346187 !important;
    padding:4px 6px !important; height:auto !important;
    border:1px solid #d8dde2 !important;
    font:600 12px/17px Arial,sans-serif !important;
}
html.hsu-modern3424 td[class*="GRIDCOLUMNHDR"] a,
html.hsu-modern3424 td.PSSRCHRESULTSHDR a {
    color:#346187 !important; font-weight:600 !important;
}
html.hsu-modern3424 .hsu-ui-field {
    min-height:26px !important; padding:3px 5px !important;
    border-radius:3px !important; font-size:13px !important; line-height:18px !important;
}
html.hsu-modern3424 .hsu-ui-control {
    min-height:28px !important; padding:4px 12px !important;
    margin:3px 5px 3px 0 !important; border-radius:4px !important;
    font-size:12px !important; line-height:18px !important;
}
html.hsu-modern3424 table.hsu-search-heading {
    margin-top:4px !important; margin-bottom:4px !important;
    border-bottom:1px solid #cbd2d9 !important;
}
html.hsu-modern3424 table.hsu-search-heading td,
html.hsu-modern3424 table.hsu-search-heading span {
    background:#f1f4f6 !important; color:#9e4a14 !important;
    font-size:13px !important; line-height:18px !important;
    height:auto !important; padding:3px 6px !important;
}

/* UI 34.24: use only the confirmed native DIV toggle, aligned to the label. */
html.hsu-modern3424 #ptnav2tree li.hsu-native-folder,
html.hsu-modern3424 #ptnav2pgltbody li.hsu-native-folder { position:relative !important; }
html.hsu-modern3424 li.hsu-native-folder > a[id^="fldra_"] {
    display:block !important; padding-left:28px !important;
    margin-left:0 !important; background-image:none !important;
}
html.hsu-modern3424 li.hsu-native-folder > a[id^="fldra_"]::before,
html.hsu-modern3424 li.hsu-native-folder > a[id^="fldra_"]::after { content:none !important; display:none !important; }
html.hsu-modern3424 li.hsu-native-folder > div.ptnav2toggle {
    position:absolute !important; top:var(--hsu-nav-toggle-top,18px) !important;
    left:8px !important; width:14px !important; height:14px !important;
    padding:0 !important; margin:0 !important; border:0 !important;
    background:transparent !important; background-image:none !important;
    transform:translateY(-50%) !important; font-size:0 !important;
    box-shadow:none !important; cursor:pointer !important; z-index:1;
}
html.hsu-modern3424 li.hsu-native-folder > div.ptnav2toggle::before {
    content:"" !important; display:block !important;
    position:absolute !important; top:2px !important; left:3px !important;
    width:0 !important; height:0 !important;
    border-top:5px solid transparent !important; border-bottom:5px solid transparent !important;
    border-left:6px solid #47617d !important; border-right:0 !important;
}
html.hsu-modern3424 li.hsu-native-folder.ptnav2open > div.ptnav2toggle::before {
    top:4px !important; left:1px !important;
    border-top:6px solid #47617d !important; border-bottom:0 !important;
    border-left:5px solid transparent !important; border-right:5px solid transparent !important;
}
/* Compact title rows: about 22px, without double padding on nested labels. */
html.hsu-modern3424 tr.hsu-section-header,
html.hsu-modern3424 tr.hsu-section-header table,
html.hsu-modern3424 tr.hsu-section-header tr,
html.hsu-modern3424 tr.hsu-section-header td {
    height:auto !important; min-height:0 !important;
    line-height:18px !important; background-image:none !important;
}
html.hsu-modern3424 tr.hsu-section-header > td { padding:2px 6px !important; }
html.hsu-modern3424 tr.hsu-section-header .PSGROUPBOXLABEL,
html.hsu-modern3424 tr.hsu-section-header [class*="GRIDLABEL"],
html.hsu-modern3424 tr.hsu-section-header [class*="SCROLLAREAHEADER"] {
    padding:0 !important; margin:0 !important; font-size:12px !important; line-height:18px !important;
}
html.hsu-modern3424 .hsu-header-decoration { display:none !important; }

/* UI 34.24: ID-scoped rules override the earlier ID-scoped menu defaults.
   Native folder LI background is the old triangle; retain one DIV toggle. */
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li.hsu-native-folder {
    position:relative !important;
    background-image:none !important;
    list-style:none !important;
}
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li.hsu-native-folder > a[id^="fldra_"] {
    display:block !important;
    box-sizing:border-box !important;
    padding:8px 10px 8px 28px !important;
    margin:0 !important;
    text-indent:0 !important;
    background-image:none !important;
}
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li.hsu-native-folder > div.ptnav2toggle {
    background:none !important;
    float:none !important;
}
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li.hsu-native-folder::before,
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li.hsu-native-folder::after {
    content:none !important; display:none !important;
}

/* UI 34.24 — compact Windows PIA; leaf dash belongs to its own label box. */
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li.hsu-native-leaf {
    background-image:none !important; list-style:none !important;
}
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li.hsu-native-leaf::before,
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li.hsu-native-leaf::after {
    content:none !important; display:none !important;
}
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li.hsu-native-leaf > div.ptnav2toggle {
    display:none !important;
}
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li > a.hsu-leaf-label {
    position:relative !important; display:block !important;
    background-image:none !important; text-indent:0 !important;
    padding:3px 6px 3px 20px !important; margin:0 !important;
    min-height:0 !important; line-height:16px !important; font-size:12px !important;
}
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li > a.hsu-leaf-label::before {
    content:"" !important; display:block !important; position:absolute !important;
    left:7px !important; top:50% !important; transform:translateY(-50%) !important;
    width:7px !important; height:1px !important; background:#718096 !important;
    border:0 !important; margin:0 !important; padding:0 !important;
}
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li > a.hsu-leaf-label::after {
    content:none !important; display:none !important;
}
html.hsu-modern3424 :is(#ptnav2tree, #ptnav2pgltbody) li.hsu-native-folder > a[id^="fldra_"] {
    padding:3px 6px 3px 26px !important;
    font-size:12px !important; line-height:16px !important;
}
/* Exclude login controls. Preserve field width, multiline text areas and native icons. */
html.hsu-modern3424 body:not(:has(#formLogin)) :is(input.PSEDITBOX,input.PSEDITBOXPS,input.hsu-ui-field):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
html.hsu-modern3424 body:not(:has(#formLogin)) :is(select.PSDROPDOWNLIST,select.hsu-ui-field) {
    box-sizing:border-box !important; min-height:22px !important; height:22px !important;
    padding:1px 4px !important; font-size:12px !important; line-height:18px !important;
    border-radius:3px !important;
}
html.hsu-modern3424 body:not(:has(#formLogin)) textarea.hsu-ui-field {
    min-height:44px !important; padding:2px 4px !important; font-size:12px !important;
}
html.hsu-modern3424 body:not(:has(#formLogin)) :is(.hsu-ui-control,input.PSPUSHBUTTON,input.PSPUSHBUTTONTB,input.PSSRCHBUTTON,button.PSPUSHBUTTON,a.PSPUSHBUTTON,a.PSPUSHBUTTONTB):not(:has(input)) {
    box-sizing:border-box !important; min-height:24px !important; height:auto !important;
    padding:2px 9px !important; margin:1px 4px 1px 0 !important;
    font-size:12px !important; line-height:18px !important; border-radius:3px !important;
}
html.hsu-modern3424 :is(td,th)[class*="GRIDCOLUMNHDR"],
html.hsu-modern3424 td.PSSRCHRESULTSHDR {
    padding:2px 4px !important; font-size:12px !important; line-height:15px !important;
}
html.hsu-modern3424 td:is(.PSLEVEL1GRIDROW,.PSLEVEL1GRIDROWALT,.PSLEVEL2GRIDROW,.PSLEVEL2GRIDROWALT,.PSLEVEL3GRIDROW,.PSLEVEL3GRIDROWALT) {
    padding:1px 4px !important; font-size:12px !important; line-height:16px !important;
}
html.hsu-modern3424 :is(.PSLEVEL1GRIDNAVIGATIONBAR,.PSLEVEL2GRIDNAVIGATIONBAR,.PSLEVEL3GRIDNAVIGATIONBAR) {
    min-height:0 !important; padding:2px 4px !important; line-height:16px !important;
}
html.hsu-modern3424 tr.hsu-section-header > td {
    padding:1px 5px !important; line-height:16px !important;
}

/* 34.24: all single-line business fields, including fields outside FORM. */
html.hsu-modern3424 body.hsu-compact-controls input.hsu-compact-field,
html.hsu-modern3424 body.hsu-compact-controls select.hsu-compact-field:not([multiple]):not([size]),
html.hsu-modern3424 body.hsu-compact-controls select.hsu-compact-field[size="1"]:not([multiple]) {
    box-sizing:border-box !important;
    height:22px !important; min-height:22px !important; max-height:22px !important;
    padding:1px 4px !important; font:12px/18px Arial,sans-serif !important;
    border-radius:3px !important; vertical-align:middle !important;
}
html.hsu-modern3424 body.hsu-compact-controls textarea.hsu-compact-field {
    box-sizing:border-box !important; min-height:44px !important;
    padding:2px 4px !important; font:12px/16px Arial,sans-serif !important;
}
/* List boxes retain their native number of visible rows. */
html.hsu-modern3424 body.hsu-compact-controls select.hsu-compact-field:is([multiple],[size]):not([size="1"]) {
    height:auto !important; min-height:44px !important; max-height:none !important;
}

/* 34.24 compact vertical spacing for business pages, preserving existing colors. */
html.hsu-modern3424 #pthdr2links {
    padding-top:2px !important; padding-bottom:2px !important;
}
/* Limit toolbar adjustments to the actual page bar cells, not every ancestor table. */
html.hsu-modern3424 td:has(> a[href*="NewWindow"]),
html.hsu-modern3424 td:has(> select[name*="DataLanguage"]) {
    padding-top:1px !important; padding-bottom:1px !important;
    min-height:0 !important;
}
/* Reduce per-row spacing without setting a fixed row height; wrapped text stays visible. */
html.hsu-modern3424 table[class*="GRID"] .hsu-ui-control,
html.hsu-modern3424 table[class*="SCROLLAREA"] .hsu-ui-control {
    min-height:22px !important; padding:1px 6px !important;
    margin:0 !important; line-height:18px !important;
}
html.hsu-modern3424 table[class*="GRID"] td[class*="GRIDCOLUMNHDR"],
html.hsu-modern3424 table[class*="GRID"] th[class*="GRIDCOLUMNHDR"] {
    padding:1px 3px !important; line-height:15px !important;
}

/* 34.24: fill native header wrapper; preserve layout. */
html #ptifrmhdr:has(#pthdr2container) {
    background-color: var(--hsu-logo-blue, #1e4682) !important;
}

/* 34.24: grid column headers use white; preserve link color and sort action. */
html.hsu-modern3424 :is(td,th)[class*="GRIDCOLUMNHDR"],
html.hsu-modern3424 :is(td,th).PSSRCHRESULTSHDR {
    background: #fff none !important;
}
html.hsu-modern3424 :is(td,th)[class*="GRIDCOLUMNHDR"] :is(a,span),
html.hsu-modern3424 :is(td,th).PSSRCHRESULTSHDR :is(a,span) {
    background: transparent none !important;
}

/* 34.24: pagination contrast only; no geometry or event changes. */
html.hsu-modern3424 :is([class*="GRIDNAVIGATIONBAR"], [class*="SCROLLAREANAVBAR"]),
html.hsu-modern3424 :is([class*="GRIDNAVIGATIONBAR"], [class*="SCROLLAREANAVBAR"]) :is(td,span),
html.hsu-modern3424 :is(.PSGRIDCOUNTER,.PSGRIDTEXT,.PSGRIDCOUNTERDISABLED) {
    color:#334155 !important;
    -webkit-text-fill-color:#334155 !important;
    text-shadow:none !important;
    opacity:1 !important;
}
html.hsu-modern3424 :is([class*="GRIDNAVIGATIONBAR"], [class*="SCROLLAREANAVBAR"]) a {
    color:#00549e !important;
    -webkit-text-fill-color:#00549e !important;
    opacity:1 !important;
}
html.hsu-modern3424 :is([class*="GRIDNAVIGATIONBAR"], [class*="SCROLLAREANAVBAR"]) :is([class*="DISABLED"],[aria-disabled="true"]),
html.hsu-modern3424 :is(.PSGRIDCOUNTER,.PSGRIDCOUNTERDISABLED) {
    color:#475569 !important;
    -webkit-text-fill-color:#475569 !important;
    opacity:1 !important;
}
html.hsu-modern3424 :is([class*="GRIDNAVIGATIONBAR"], [class*="SCROLLAREANAVBAR"]) img {
    opacity:1 !important;
    filter:contrast(1.6) !important;
}

/* 34.24: Self Service left/right group boxes observed in Personal Data Summary.
   Visual rules only: native widths, row heights, handlers and toggles remain. */
html.hsu-modern3424 :is(table.SSSGROUPBOXLEFTNBO,table.SSSGROUPBOXRIGHTNBO) {
    background:#ffffff !important;
    background-image:none !important;
    border-color:var(--classic-plus-border) !important;
    font-family:var(--ora-font) !important;
}
html.hsu-modern3424 :is(.SSSGROUPBOXLEFTLABEL,.SSSGROUPBOXRIGHTLABEL) {
    background:var(--classic-plus-bg) none !important;
    color:var(--classic-plus-text) !important;
    border-color:var(--classic-plus-border) !important;
    font-family:var(--ora-font) !important;
    font-weight:600 !important;
    letter-spacing:normal !important;
    text-shadow:none !important;
}
html.hsu-modern3424 :is(.SSSGROUPBOXLEFTLABEL,.SSSGROUPBOXRIGHTLABEL) :is(div,span,a,font) {
    background:transparent !important;
    color:var(--classic-plus-text) !important;
    font-family:var(--ora-font) !important;
    letter-spacing:normal !important;
    text-shadow:none !important;
}
html.hsu-modern3424 :is(table.SSSGROUPBOXLEFTNBO,table.SSSGROUPBOXRIGHTNBO) td:not(.SSSGROUPBOXLEFTLABEL):not(.SSSGROUPBOXRIGHTLABEL) {
    background-color:#ffffff !important;
    border-color:var(--classic-plus-border) !important;
    color:#334155 !important;
    font-family:var(--ora-font) !important;
}
html.hsu-modern3424 :is(table.SSSGROUPBOXLEFTNBO,table.SSSGROUPBOXRIGHTNBO) td:not(.SSSGROUPBOXLEFTLABEL):not(.SSSGROUPBOXRIGHTLABEL) :is(div,span,font) {
    font-family:var(--ora-font) !important;
}
html.hsu-modern3424 :is(table.SSSGROUPBOXLEFTNBO,table.SSSGROUPBOXRIGHTNBO) td:not(.SSSGROUPBOXLEFTLABEL):not(.SSSGROUPBOXRIGHTLABEL) a,
html.hsu-modern3424 :is(table.SSSGROUPBOXLEFTNBO,table.SSSGROUPBOXRIGHTNBO) td:not(.SSSGROUPBOXLEFTLABEL):not(.SSSGROUPBOXRIGHTLABEL) a :is(span,font) {
    color:var(--ora-link) !important;
    font-family:var(--ora-font) !important;
}
html.hsu-modern3424 .SSSPAGETITLE {
    font-family:var(--ora-font) !important;
    color:var(--ora-title) !important;
    letter-spacing:normal !important;
    text-shadow:none !important;
}

/* 34.24 attendance: stable CSS-only styling for AJAX replacements. */
html.hsu-modern3424:is(.hsu-attendance-static,.hsu-search-static) input:not([type]),
html.hsu-modern3424:is(.hsu-attendance-static,.hsu-search-static) input:is([type="text"],[type="search"],[type="number"],[type="email"],[type="tel"]),
html.hsu-modern3424:is(.hsu-attendance-static,.hsu-search-static) select:not([multiple]):not([size]),
html.hsu-modern3424:is(.hsu-attendance-static,.hsu-search-static) select[size="1"]:not([multiple]) {
    box-sizing:border-box !important;
    height:22px !important; min-height:22px !important; max-height:22px !important;
    padding:1px 4px !important; font:12px/18px Arial,sans-serif !important;
    border:1px solid #99aec3 !important; border-radius:3px !important;
    background:#fff !important; color:#172b42 !important;
    vertical-align:middle !important;
}
html.hsu-modern3424:is(.hsu-attendance-static,.hsu-search-static) :is(input[type="button"],input[type="submit"],button,a.PSPUSHBUTTON,a.PSPUSHBUTTONTB):not(:has(input)) {
    background:#c45108 !important; color:#fff !important;
    border:1px solid #a84307 !important; border-radius:4px !important;
    min-height:24px !important; padding:2px 8px !important; margin:0 !important;
    font:600 12px/18px Arial,sans-serif !important;
}
html.hsu-modern3424:is(.hsu-attendance-static,.hsu-search-static) :is(input[type="button"],input[type="submit"],button):disabled {
    background:#edf0f4 !important; color:#667385 !important; border-color:#bbc5d0 !important;
}
html.hsu-modern3424:is(.hsu-attendance-static,.hsu-search-static) :is(.PSGROUPBOXLABEL,[class*="GRIDLABEL"],[class*="SCROLLAREAHEADER"]) {
    background:var(--classic-plus-bg) none !important;
    color:var(--classic-plus-text) !important;
}

/* 34.24: search native controls have stable style without JS decoration. */
html.hsu-modern3424.hsu-search-static :is(input.PSSRCHBUTTON,input.PSPUSHBUTTON,input.PSPUSHBUTTONTB,button.PSSRCHBUTTON,a.PSSRCHBUTTON):not(:has(input)) {
    background:#c45108 !important; color:#fff !important;
    border:1px solid #a84307 !important; border-radius:4px !important;
    min-height:24px !important; padding:2px 8px !important; margin:0 !important;
    font:600 12px/18px Arial,sans-serif !important;
}
html.hsu-modern3424.hsu-search-static :is(span,div):has(> input:is([id="#ICSearch"],[id="#ICClear"],[id="#ICSearchAll"])) {
    background:transparent none !important;
    border:0 !important; box-shadow:none !important;
    padding:0 !important;
}
html.hsu-modern3424.hsu-search-static :is(input,select):disabled,
html.hsu-modern3424.hsu-search-static :is(input,select)[readonly] {
    background:#f0f3f6 !important; color:#526171 !important;
}

/* 34.24: remove native button skins without AJAX-time DOM decoration.
   Only wrapper elements containing real native button controls are matched.
   Actual INPUT/BUTTON styles, table cells and row backgrounds are preserved. */
html.hsu-modern3424 :is(span,a):has(> :is(input.PSPUSHBUTTON,input.PSPUSHBUTTONTB,input.PSSRCHBUTTON,button.PSPUSHBUTTON)),
html.hsu-modern3424 span:has(> span > :is(input.PSPUSHBUTTON,input.PSPUSHBUTTONTB,input.PSSRCHBUTTON,button.PSPUSHBUTTON)),
html.hsu-modern3424 span[class*="PSPUSHBUTTON"]:has(:is(input[type="button"],input[type="submit"],button)) {
    background:transparent none !important;
    background-image:none !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    text-shadow:none !important;
    filter:none !important;
    padding:0 !important;
    margin:0 !important;
    min-height:0 !important;
    height:auto !important;
}
html.hsu-modern3424 :is(span,a):has(> :is(input.PSPUSHBUTTON,input.PSPUSHBUTTONTB,input.PSSRCHBUTTON,button.PSPUSHBUTTON))::before,
html.hsu-modern3424 :is(span,a):has(> :is(input.PSPUSHBUTTON,input.PSPUSHBUTTONTB,input.PSSRCHBUTTON,button.PSPUSHBUTTON))::after,
html.hsu-modern3424 span[class*="PSPUSHBUTTON"]:has(:is(input[type="button"],input[type="submit"],button))::before,
html.hsu-modern3424 span[class*="PSPUSHBUTTON"]:has(:is(input[type="button"],input[type="submit"],button))::after {
    content:none !important;
    display:none !important;
}

/* 34.24: observed A#Left > SPAN > INPUT native left-cap background. */
html.hsu-modern3424 a:has(> span > :is(input.PSPUSHBUTTON,input.PSPUSHBUTTONTB,input.PSSRCHBUTTON,button.PSPUSHBUTTON)),
html.hsu-modern3424 a:is([id="Left"],[id="Right"]):has(:is(input[type="button"],input[type="submit"],button)) {
    background:transparent none !important;
    background-image:none !important;
    border:0 !important; border-radius:0 !important;
    box-shadow:none !important; text-shadow:none !important; filter:none !important;
    padding:0 !important; margin:0 !important; min-height:0 !important; height:auto !important;
}
html.hsu-modern3424 a:has(> span > :is(input.PSPUSHBUTTON,input.PSPUSHBUTTONTB,input.PSSRCHBUTTON,button.PSPUSHBUTTON))::before,
html.hsu-modern3424 a:has(> span > :is(input.PSPUSHBUTTON,input.PSPUSHBUTTONTB,input.PSSRCHBUTTON,button.PSPUSHBUTTON))::after {
    content:none !important; display:none !important;
}
