h1:focus {
    outline: none;
}

/* NavLink renders a child anchor outside the parent's CSS-isolation scope. */
.hero-actions a { display: inline-flex; align-items: center; gap: .6rem; min-height: 2.9rem; padding: .65rem .9rem; border: 1px solid rgba(255, 255, 255, .6); border-radius: 6px; color: #fff; font-size: .84rem; font-weight: 800; text-decoration: none; }
.hero-actions a.primary-action { border-color: #efb64f; color: #16342f; background: #efb64f; }
.solution-grid a.solution-item { display: grid; grid-template-columns: 2.8rem minmax(0, 1fr) auto; align-items: start; gap: .8rem; min-width: 0; padding: 1.2rem; border-right: 1px solid #d6e1de; border-bottom: 1px solid #d6e1de; color: #18342f; text-decoration: none; }
.solution-grid a.solution-item:nth-child(2n) { border-right: 0; }
.solution-grid a.solution-item:hover { background: #f1f7f5; }
.closing-band a { display: inline-flex; align-items: center; gap: .5rem; padding: .65rem .85rem; border: 1px solid #173c36; border-radius: 6px; color: #173c36; font-size: .82rem; font-weight: 800; text-decoration: none; }
.closing-band a:first-child { color: #fff; background: #173c36; }
.login-context a { display: inline-flex; align-items: center; gap: .4rem; margin-top: .4rem; color: #fff; font-size: .8rem; font-weight: 700; text-decoration: none; }
.tour-module-card footer a { display: inline-flex; align-items: center; gap: .35rem; color: #126257; font-size: .75rem; font-weight: 800; text-decoration: none; }
.tour-breadcrumb a { color: #126257; text-decoration: none; }
.workflow-list > a { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; align-items: center; gap: .9rem; padding: 1rem .3rem; border-bottom: 1px solid #ccd9d5; color: #183b35; text-decoration: none; }
.workflow-list > a:hover { padding-inline: .8rem; background: #eaf2ef; }
.guide-head a.trial-action { display: inline-flex; align-items: center; gap: .5rem; min-width: max-content; padding: .65rem .8rem; border-radius: 6px; color: #fff; background: #126257; font-size: .78rem; font-weight: 800; text-decoration: none; }
.related-guides a { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding: .8rem; border: 1px solid #d1ddda; border-radius: 6px; color: #183b35; background: #fff; text-decoration: none; }
.guide-pager a { display: flex; align-items: center; gap: .7rem; padding: 1rem; border: 1px solid #d0dcd8; border-radius: 7px; color: #183b35; background: #fff; text-decoration: none; }
.guide-pager a.next { justify-content: flex-end; text-align: right; }
.landing-hero { background-image: url('/product-media/management-dashboard-desktop.png?v=20260808-1') !important; }
.login-context { background-image: linear-gradient(rgba(9, 45, 40, .9), rgba(14, 73, 63, .92)), url('/product-media/management-dashboard-desktop.png?v=20260808-1') !important; }

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* Entry/edit workspaces always use one field per row on the left. */
.entry-shell .form-panel .form-grid,
.entry-workspace .form-panel .form-grid,
.tab-workspace .form-panel .form-grid {
    grid-template-columns: minmax(0, 1fr) !important;
}

.entry-shell .form-panel .full-span,
.entry-workspace .form-panel .full-span,
.tab-workspace .form-panel .full-span {
    grid-column: 1 !important;
}

.records-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.records-toolbar .grid-filter {
    flex: 0 1 260px;
    min-width: 0;
}

.entries-control {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #596986;
    font-size: 0.8rem;
    white-space: nowrap;
}

.entries-control select {
    width: auto;
    height: 2.15rem;
    padding: 0 1.9rem 0 0.55rem;
}

.grid-detail {
    margin: 0;
    padding: 0.7rem 0.8rem;
    border: 1px solid rgba(47, 95, 214, 0.18);
    border-radius: 8px;
    background: #f5f8ff;
    color: #526486;
    font-size: 0.82rem;
}

.grid-detail strong {
    color: #203b72;
}

.grid-actions {
    display: inline-flex;
    gap: 0.35rem;
    white-space: nowrap;
}

.grid-actions button {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: 6px;
    font-size: 0.75rem;
}

.grid-actions .delete-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.standalone-workspace {
    display: grid;
    grid-template-columns: minmax(340px, 420px) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.standalone-workspace > .panel {
    min-width: 0;
}

.standalone-workspace .basic-entry {
    width: auto;
    margin: 0;
}

.standalone-workspace .records-panel {
    display: grid;
    gap: 0.75rem;
}

.standalone-workspace .records-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
}

.standalone-workspace .records-head h3 {
    margin: 0;
}

.standalone-workspace .table-wrap {
    overflow-x: auto;
}

.standalone-workspace table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.standalone-workspace th,
.standalone-workspace td {
    padding: 0.7rem;
    border-bottom: 1px solid rgba(35, 58, 96, 0.1);
    text-align: left;
    vertical-align: top;
}

.standalone-workspace th {
    color: #536487;
    background: #f8f9fe;
    font-size: 0.72rem;
    text-transform: uppercase;
}

.standalone-workspace .secondary,
.standalone-workspace .danger {
    border: 1px solid rgba(35, 58, 96, 0.2);
    border-radius: 6px;
    padding: 0.4rem 0.65rem;
    background: #f4f7ff;
    color: #294b9b;
    cursor: pointer;
    font-weight: 700;
}

.standalone-workspace .danger {
    border-color: rgba(184, 50, 50, 0.25);
    background: #fff3f3;
    color: #a92f2f;
}

@media (max-width: 1050px) {
    .standalone-workspace {
        grid-template-columns: 1fr;
    }
}

.grid-pager {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    color: #6a7894;
    font-size: 0.78rem;
}

.grid-pager-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.grid-pager button {
    border: 1px solid rgba(35, 58, 96, 0.16);
    border-radius: 6px;
    padding: 0.38rem 0.65rem;
    background: #fff;
    color: #40567f;
}

.grid-pager button:disabled {
    opacity: 0.45;
}

.grid-page-number {
    min-width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: #6447df;
    color: #fff;
    font-weight: 700;
}

.detail-drawer-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1100;
    background: rgba(19, 31, 55, 0.28);
}

.detail-drawer {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1110;
    width: min(420px, 92vw);
    height: 100vh;
    overflow-y: auto;
    padding: 1.1rem;
    background: #fff;
    box-shadow: -18px 0 45px rgba(25, 42, 74, 0.2);
}

.detail-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding-bottom: 0.8rem;
    border-bottom: 1px solid rgba(35, 58, 96, 0.12);
}

.detail-drawer-head h3 {
    margin: 0;
}

.detail-drawer-close {
    width: 2.1rem;
    height: 2.1rem;
    border: 0;
    border-radius: 50%;
    background: #eef2fa;
    color: #334a76;
}

.detail-drawer-list {
    display: grid;
    gap: 0;
    margin: 0.8rem 0 0;
}

.detail-drawer-field {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.2rem;
    padding: 0.7rem 0;
    border-bottom: 1px solid rgba(35, 58, 96, 0.09);
}

.detail-drawer-field span {
    color: #74819a;
    font-size: 0.72rem;
    text-transform: uppercase;
}

.detail-drawer-field strong {
    color: #20365f;
    font-size: 0.9rem;
    overflow-wrap: anywhere;
}

.finance-page { color: #20353b; }
.finance-module-tabs { display: flex; gap: .35rem; overflow-x: auto; padding: .35rem; margin: .75rem 0 1.15rem; border: 1px solid #d8dee3; background: #f7f9f8; }
.finance-module-tab { flex: 0 0 auto; padding: .48rem .72rem; color: #385158; font-size: .78rem; font-weight: 700; text-decoration: none; border-radius: 4px; }
.finance-module-tab:hover { color: #385158; background: #e7efed; }
.finance-module-tab.active { color: #fff; background: #16716d; }
.finance-head { display: flex; justify-content: space-between; gap: 1rem; align-items: end; padding: .25rem 0 .7rem; border-bottom: 1px solid #d8dee3; }
.finance-head span { color: #16716d; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.finance-head h1 { margin: .2rem 0; font-family: Georgia, serif; font-size: clamp(1.75rem, 3vw, 2.45rem); }
.finance-head p { margin: 0; color: #637379; }
.finance-state { padding: 2rem; border: 1px solid #d8dee3; background: #f7f9f8; text-align: center; }
.finance-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
.finance-metrics article { min-width: 0; padding: 1rem; border: 1px solid #d8dee3; border-top: 3px solid #16716d; background: #fff; }
.finance-metrics span, .finance-metrics small { display: block; color: #6b7a80; font-size: .73rem; }
.finance-metrics strong { display: block; margin: .35rem 0; font-size: 1.25rem; overflow-wrap: anywhere; }
.finance-workspaces { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-top: 1rem; }
.finance-workspaces > a { display: grid; grid-template-columns: auto 1fr; gap: .75rem; padding: 1rem; border: 1px solid #d8dee3; color: #20353b; background: #fff; text-decoration: none; }
.finance-workspaces > a:hover { border-color: #16716d; box-shadow: 0 8px 20px rgba(32, 53, 59, .08); }
.finance-workspaces i { color: #16716d; font-size: 1.35rem; }
.finance-workspaces strong, .finance-workspaces small { display: block; }
.finance-workspaces small { margin-top: .25rem; color: #6b7a80; }
.finance-link-groups { display: grid; gap: .85rem; margin-top: 1rem; }
.finance-link-group { border: 1px solid #d8dee3; background: #fff; }
.finance-link-group > header { display: flex; gap: .8rem; align-items: center; padding: .9rem 1rem; border-bottom: 1px solid #cbd8d7; border-left: 4px solid #16716d; background: #eaf3f1; }
.finance-link-group > header > i { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border: 1px solid #9fc6c2; border-radius: 4px; color: #0d5e5a; background: #fff; font-size: 1.25rem; }
.finance-link-group h2 { margin: 0; color: #173c3a; font-size: 1.1rem; font-weight: 800; }
.finance-link-group p { margin: .2rem 0 0; color: #506b69; font-size: .78rem; font-weight: 600; }
.finance-link-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.finance-link-grid > a { display: flex; gap: .55rem; align-items: center; min-width: 0; min-height: 3.4rem; padding: .65rem .75rem; border-right: 1px solid #e4e8ea; color: #294249; font-size: .78rem; font-weight: 700; text-decoration: none; }
.finance-link-grid > a:hover { color: #0d5e5a; background: #edf6f4; }
.finance-link-grid > a i { flex: 0 0 auto; color: #16716d; font-size: 1rem; }
.finance-link-grid > a span { min-width: 0; overflow-wrap: anywhere; }
.finance-metrics-compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.finance-form, .finance-filters, .finance-decision { padding: 1rem; border: 1px solid #d8dee3; background: #fff; }
.finance-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.finance-form-grid label, .finance-filters label, .finance-decision label { display: grid; gap: .3rem; color: #4c6067; font-size: .78rem; font-weight: 700; }
.finance-form-grid .wide { grid-column: 1 / -1; }
.finance-form input, .finance-form select, .finance-form textarea, .finance-filters input, .finance-filters select, .finance-decision textarea { width: 100%; min-height: 2.55rem; padding: .55rem .65rem; border: 1px solid #bfcbd0; border-radius: 4px; background: #fff; }
.finance-form textarea, .finance-decision textarea { min-height: 6rem; resize: vertical; }
.finance-actions { display: flex; align-items: center; gap: .6rem; margin-top: 1rem; }
.finance-actions button, .finance-actions a, .finance-filters button, .finance-table button, .finance-decision > button { padding: .55rem .75rem; border: 1px solid #16716d; border-radius: 4px; color: #fff; background: #16716d; font-weight: 700; text-decoration: none; }
.finance-actions .secondary, .finance-decision .secondary { color: #385158; background: #fff; border-color: #bfcbd0; }
.finance-message { margin-top: .75rem; padding: .75rem; border-left: 4px solid #27815f; background: #eef8f2; }
.finance-message.error { border-color: #b84343; background: #fff1f1; }
.finance-filters { display: grid; grid-template-columns: minmax(200px, 1fr) 180px 180px auto; gap: .65rem; align-items: end; margin-bottom: .75rem; }
.finance-table-wrap { overflow-x: auto; border: 1px solid #d8dee3; background: #fff; }
.finance-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: .82rem; }
.finance-table th, .finance-table td { padding: .72rem; border-bottom: 1px solid #e4e8ea; text-align: left; vertical-align: top; }
.finance-table th { color: #52646b; background: #f3f6f5; font-size: .7rem; text-transform: uppercase; }
.finance-table td small { color: #718087; }
.finance-table button { width: 2rem; height: 2rem; padding: 0; margin: 0 .15rem; }
.finance-table button.reject { border-color: #a84040; background: #a84040; }
.finance-table button.return { border-color: #9b6a18; background: #9b6a18; }
.finance-decision { margin-top: .8rem; }
.finance-decision h2 { margin-top: 0; font-size: 1.1rem; }
.finance-status { display: inline-block; padding: .25rem .45rem; border-radius: 3px; background: #eef1f2; font-weight: 700; }
.finance-status.approved { color: #176a49; background: #e8f6ee; }
.finance-status.rejected { color: #9a3434; background: #fceaea; }
.finance-status.returned { color: #835b17; background: #fff3d9; }
.finance-status.submitted { color: #285f88; background: #e8f2f9; }
.finance-status.calculated { color: #5b4a8a; background: #f0ecfa; }
.payroll-layout { display: grid; grid-template-columns: minmax(280px, .7fr) minmax(560px, 1.3fr); gap: .85rem; align-items: start; }
.payroll-layout h2 { margin: 0 0 .85rem; font-size: 1.05rem; }
.payroll-period-bar { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(220px, .7fr) auto; gap: 1.25rem; align-items: center; padding: 1rem 1.15rem; border: 1px solid #cbdad8; border-left: 4px solid #16716d; background: #fff; }
.payroll-period-bar > div > span, .payroll-period-bar small { display: block; color: #687980; font-size: .72rem; }
.payroll-period-bar > div > strong { display: block; margin: .2rem 0; color: #183c3d; font-size: 1.15rem; }
.payroll-period-progress { display: grid; gap: .35rem; }
.payroll-period-progress span { color: #52676d; font-size: .77rem; }
.payroll-period-progress progress { width: 100%; height: .45rem; border: 0; accent-color: #16716d; }
.payroll-primary-action { display: inline-flex; gap: .45rem; align-items: center; min-height: 2.5rem; padding: .55rem .85rem; border-radius: 4px; color: #fff !important; background: #16716d; font-size: .8rem; font-weight: 800; text-decoration: none; }
.payroll-metrics { margin-top: .8rem; }
.payroll-metrics article.needs-attention { border-top-color: #c37a20; background: #fffaf2; }
.payroll-metrics article.is-clear { border-top-color: #25865e; }
.payroll-dashboard-grid { display: grid; grid-template-columns: minmax(300px, 1.05fr) minmax(300px, .95fr) minmax(300px, 1fr); gap: .8rem; margin-top: .8rem; align-items: stretch; }
.payroll-dashboard-panel { min-width: 0; border: 1px solid #d8dee3; background: #fff; }
.payroll-dashboard-panel > header { display: flex; justify-content: space-between; align-items: center; gap: .75rem; min-height: 4rem; padding: .75rem 1rem; border-bottom: 1px solid #e1e6e8; }
.payroll-dashboard-panel > header span { color: #16716d; font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.payroll-dashboard-panel > header h2 { margin: .15rem 0 0; color: #20353b; font-size: 1rem; }
.payroll-dashboard-panel > header > strong { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; color: #fff; background: #b85f35; font-size: .85rem; }
.payroll-dashboard-panel > header a { color: #16716d; font-size: .75rem; font-weight: 700; text-decoration: none; }
.payroll-action-list { display: grid; }
.payroll-action-list a { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; gap: .65rem; align-items: center; padding: .75rem 1rem; border-bottom: 1px solid #edf0f1; color: #294248; text-decoration: none; }
.payroll-action-list a:last-child { border-bottom: 0; }
.payroll-action-list a > i:first-child { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 4px; color: #a24f28; background: #fff0e7; }
.payroll-action-list span, .payroll-campus-list span { min-width: 0; }
.payroll-action-list strong, .payroll-action-list small, .payroll-campus-list strong, .payroll-campus-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.payroll-action-list strong, .payroll-campus-list strong { font-size: .78rem; }
.payroll-action-list small, .payroll-campus-list small { margin-top: .18rem; color: #718087; font-size: .67rem; }
.payroll-pipeline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 1.15rem .7rem; }
.payroll-pipeline div { position: relative; display: grid; justify-items: center; gap: .3rem; text-align: center; }
.payroll-pipeline div:not(:last-child)::after { position: absolute; top: 1rem; left: calc(50% + 1.15rem); width: calc(100% - 2.3rem); height: 1px; background: #d7dfe1; content: ""; }
.payroll-pipeline div > span { z-index: 1; display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; color: #53666c; background: #edf1f2; }
.payroll-pipeline div > span.submitted { color: #966111; background: #fff1d4; }
.payroll-pipeline div > span.approved { color: #176a49; background: #e3f4eb; }
.payroll-pipeline div > strong { font-size: 1.05rem; }
.payroll-pipeline div > small { color: #65767c; font-size: .65rem; }
.payroll-health-row { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #e5e9ea; }
.payroll-health-row span { padding: .75rem 1rem; color: #687980; font-size: .68rem; }
.payroll-health-row span + span { border-left: 1px solid #e5e9ea; }
.payroll-health-row strong { display: block; margin-top: .2rem; color: #263f45; font-size: .82rem; }
.payroll-campus-list { display: grid; }
.payroll-campus-list button { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .65rem; align-items: center; width: 100%; padding: .72rem 1rem; border: 0; border-bottom: 1px solid #edf0f1; color: #294248; background: #fff; text-align: left; cursor: pointer; }
.payroll-campus-list button:last-child { border-bottom: 0; }
.payroll-empty-state { display: grid; justify-items: center; gap: .3rem; padding: 1.45rem 1rem; color: #66787d; text-align: center; }
.payroll-empty-state > i { color: #278264; font-size: 1.4rem; }
.payroll-empty-state strong { color: #294248; font-size: .82rem; }
.payroll-empty-state small { font-size: .7rem; }
.payroll-recent-panel { margin-top: .8rem; }
.payroll-recent-panel .finance-table-wrap { border: 0; }
.payroll-check { display: flex !important; grid-auto-flow: column; justify-content: start; align-items: center; }
.payroll-check input { width: 1rem; min-height: 1rem; }
.payroll-run-form { margin-bottom: .85rem; }
.payroll-row-actions { white-space: nowrap; }
.payroll-drawer-backdrop { position: fixed; inset: 0; z-index: 1040; background: rgba(19, 39, 42, .42); animation: payroll-fade-in .18s ease-out; }
.payroll-detail { position: fixed; inset: 0 0 0 auto; z-index: 1050; display: grid; grid-template-rows: auto auto minmax(0, 1fr); width: min(760px, 92vw); height: 100%; border-left: 1px solid #bfcbd0; background: #f7f9f8; box-shadow: -16px 0 40px rgba(24, 51, 55, .22); animation: payroll-slide-in .2s ease-out; }
.payroll-detail > header { display: flex; justify-content: space-between; align-items: start; gap: 1rem; padding: 1rem 1.15rem; border-bottom: 1px solid #d8dee3; background: #edf6f4; }
.payroll-detail > header span { color: #16716d; font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.payroll-detail h2 { margin: .2rem 0; font-size: 1.2rem; }
.payroll-detail > header small { color: #65757b; }
.payroll-detail > header button { display: grid; flex: 0 0 auto; width: 2.25rem; height: 2.25rem; place-items: center; border: 1px solid #bfcbd0; border-radius: 4px; color: #385158; background: #fff; cursor: pointer; }
.payroll-detail-totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid #d8dee3; background: #fff; }
.payroll-detail-totals span { min-width: 0; padding: .85rem 1rem; border-right: 1px solid #e4e8ea; color: #65757b; font-size: .75rem; }
.payroll-detail-totals span:last-child { border-right: 0; }
.payroll-detail-totals strong { display: block; margin-top: .25rem; color: #20353b; font-size: 1rem; overflow-wrap: anywhere; }
.payroll-detail-body { min-height: 0; overflow: auto; padding: 1rem; }
.payroll-detail-body .finance-table-wrap { border-color: #cbd6d9; }
.payroll-detail-body .finance-table { min-width: 700px; }
.payroll-exception { color: #a23c3c !important; font-weight: 700; }
.payroll-valid { color: #176a49; font-weight: 700; }
.payroll-load-error { display: grid; gap: .35rem; border-left: 4px solid #b84343; color: #7d2f2f; background: #fff1f1; text-align: left; }
.operations-purchase-link { display: inline-flex; flex: 0 0 auto; gap: .45rem; align-items: center; min-height: 2.5rem; padding: .55rem .8rem; border: 1px solid #16716d; border-radius: 4px; color: #fff; background: #16716d; font-size: .78rem; font-weight: 800; text-decoration: none; }
.operations-metrics { margin-top: .85rem; }
.operations-metrics article.needs-attention { border-top-color: #bd6d22; background: #fff9f1; }
.operations-metrics article.is-clear { border-top-color: #27815f; }
.operations-daily-brief { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-top: .85rem; padding: .85rem 1rem; border: 1px solid #bdd2cf; border-left: 4px solid #16716d; background: #edf6f4; }
.operations-daily-brief span { color: #16716d; font-size: .67rem; font-weight: 800; text-transform: uppercase; }
.operations-daily-brief h2 { margin: .12rem 0; font-size: 1rem; }
.operations-daily-brief p { margin: 0; color: #5e7176; font-size: .76rem; }
.operations-daily-brief > a { display: inline-flex; flex: 0 0 auto; gap: .4rem; align-items: center; padding: .55rem .75rem; border-radius: 4px; color: #fff; background: #16716d; font-size: .76rem; font-weight: 800; text-decoration: none; }
.operations-dashboard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; margin-top: .85rem; }
.operations-dashboard-secondary { align-items: start; }
.operations-panel { min-width: 0; border: 1px solid #d8dee3; background: #fff; }
.operations-panel > header { display: flex; justify-content: space-between; gap: .75rem; align-items: center; padding: .8rem 1rem; border-bottom: 1px solid #e1e6e8; }
.operations-panel > header span { color: #16716d; font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.operations-panel > header h2, .operations-form h2 { margin: .15rem 0 0; font-size: 1rem; }
.operations-panel > header > strong { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; color: #fff; background: #b85f35; font-size: .8rem; }
.operations-panel > header > a { color: #16716d; font-size: .72rem; font-weight: 800; text-decoration: none; }
.operations-priority-list { display: grid; }
.operations-priority-list > a { display: grid; grid-template-columns: 2.15rem minmax(0, 1fr) auto; gap: .7rem; align-items: center; padding: .72rem 1rem; border-bottom: 1px solid #edf0f1; color: #294248; text-decoration: none; }
.operations-priority-list > a:last-child { border-bottom: 0; }
.operations-priority-list > a > span:first-child { display: grid; width: 2.15rem; height: 2.15rem; place-items: center; border-radius: 4px; color: #54676c; background: #edf1f2; }
.operations-priority-list > a > span.urgent { color: #9e3d31; background: #fbe9e7; }
.operations-priority-list > a > span.warning { color: #966111; background: #fff1d4; }
.operations-priority-list > a > span.info { color: #285f88; background: #e8f2f9; }
.operations-priority-list > a > span.clear { color: #176a49; background: #e8f6ee; }
.operations-priority-list strong, .operations-priority-list small { display: block; }
.operations-priority-list small { margin-top: .12rem; color: #718087; font-size: .68rem; }
.operations-action-list { display: grid; }
.operations-action-list a { display: grid; grid-template-columns: 2.1rem minmax(0, 1fr) auto; gap: .7rem; align-items: center; padding: .8rem 1rem; border-bottom: 1px solid #edf0f1; color: #294248; text-decoration: none; }
.operations-action-list a:last-child { border-bottom: 0; }
.operations-action-list a > i:first-child { display: grid; width: 2.1rem; height: 2.1rem; place-items: center; border-radius: 4px; color: #0d6662; background: #e8f4f2; }
.operations-action-list strong, .operations-action-list small { display: block; }
.operations-action-list small { margin-top: .15rem; color: #718087; font-size: .7rem; }
.operations-flow { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.operations-flow li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .7rem; align-items: center; padding: .8rem 1rem; border-bottom: 1px solid #edf0f1; }
.operations-flow li:last-child { border-bottom: 0; }
.operations-flow i { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid #b8d3d0; border-radius: 50%; color: #16716d; }
.operations-flow strong, .operations-flow small { display: block; }
.operations-flow small { margin-top: .15rem; color: #718087; font-size: .7rem; }
.operations-activity-list { display: grid; }
.operations-activity-list > div { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; gap: .7rem; align-items: center; padding: .7rem 1rem; border-bottom: 1px solid #edf0f1; }
.operations-activity-list > div:last-child { border-bottom: 0; }
.operations-activity-list > div > i { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 4px; color: #16716d; background: #e8f4f2; }
.operations-activity-list > div > span { min-width: 0; }
.operations-activity-list > div > span:last-child { text-align: right; }
.operations-activity-list strong, .operations-activity-list small { display: block; }
.operations-activity-list strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.operations-activity-list small { margin-top: .12rem; color: #718087; font-size: .66rem; }
.operations-activity-list .finance-status { display: inline-block; margin-top: .2rem; padding: .18rem .35rem; }
.operations-empty { display: flex; gap: .75rem; align-items: center; padding: 1.25rem 1rem; color: #718087; }
.operations-empty > i { color: #16716d; font-size: 1.3rem; }
.operations-empty strong, .operations-empty small { display: block; }
.operations-empty strong { color: #294248; font-size: .78rem; }
.operations-empty small { margin-top: .15rem; font-size: .68rem; }
.operations-tender-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.operations-tender-list > div { padding: .85rem 1rem; border-right: 1px solid #edf0f1; border-bottom: 1px solid #edf0f1; }
.operations-tender-list span, .operations-tender-list strong, .operations-tender-list small { display: block; }
.operations-tender-list span { color: #52676d; font-size: .7rem; font-weight: 700; }
.operations-tender-list span i { margin-right: .25rem; color: #16716d; }
.operations-tender-list strong { margin-top: .35rem; font-size: .82rem; }
.operations-tender-list small { color: #718087; font-size: .68rem; }
.operations-tender-panel footer { display: flex; justify-content: space-between; padding: .75rem 1rem; color: #52676d; font-size: .74rem; }
.operations-tender-panel footer strong { color: #20353b; }
.operations-form { margin-bottom: .85rem; }
.operations-form h2 { margin-bottom: .85rem; }
.operations-stock-warning { display: flex; grid-column: 1 / -1; gap: .5rem; align-items: center; min-height: 2.5rem; padding: .6rem .75rem; border-left: 4px solid; font-size: .76rem; font-weight: 700; }
.operations-stock-warning.available { border-color: #27815f; color: #176a49; background: #eef8f2; }
.operations-stock-warning.shortage { border-color: #c43f3f; color: #922f2f; background: #fff0f0; }
.operations-stock-warning i { flex: 0 0 auto; font-size: 1rem; }
.operations-stock-detail { margin-top: .85rem; border: 1px solid #d8dee3; background: #fff; }
.operations-stock-detail > header { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .8rem 1rem; border-bottom: 1px solid #dfe5e7; }
.operations-stock-detail > header span { color: #16716d; font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.operations-stock-detail > header h2 { margin: .15rem 0 0; font-size: 1rem; }
.operations-stock-detail > header > strong { color: #52676d; font-size: .75rem; }
.operations-stock-filters { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(190px, .45fr) minmax(170px, .4fr); gap: .65rem; padding: .75rem 1rem; border-bottom: 1px solid #dfe5e7; background: #f7f9f8; }
.operations-stock-filters label { display: grid; gap: .25rem; color: #53676d; font-size: .7rem; font-weight: 800; }
.operations-stock-filters input, .operations-stock-filters select { width: 100%; min-height: 2.35rem; padding: .45rem .6rem; border: 1px solid #becbd0; border-radius: 4px; color: #243b41; background: #fff; }
.operations-stock-table { min-width: 1100px; }
.operations-stock-table thead button { display: inline-flex; gap: .25rem; align-items: center; width: auto; height: auto; margin: 0; padding: 0; border: 0; border-radius: 0; color: #52646b; background: transparent; font: inherit; text-align: left; text-transform: uppercase; cursor: pointer; }
.operations-stock-table tbody tr.operations-low-stock { background: #fff2f2; }
.operations-stock-table tbody tr.operations-low-stock td:first-child { border-left: 4px solid #c43f3f; }
.operations-stock-table tbody tr.operations-low-stock strong { color: #9a3030; }
.operations-stock-status { display: inline-block; padding: .25rem .45rem; border-radius: 3px; font-size: .7rem; font-weight: 800; white-space: nowrap; }
.operations-stock-status.low { color: #9a3030; background: #fbdede; }
.operations-stock-status.available { color: #176a49; background: #e8f6ee; }
.operations-orders-table { margin-bottom: 2rem; }
.operations-row-actions { min-width: 8.75rem; white-space: nowrap; }
.purchase-order-print, .sale-invoice-print { display: none; }
.operations-stock-workspace { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(360px, 1.2fr); gap: .85rem; }
.operations-stock-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.operations-stock-summary span { padding: 1.2rem 1rem; color: #617379; font-size: .75rem; }
.operations-stock-summary span + span { border-left: 1px solid #e2e7e8; }
.operations-stock-summary strong { display: block; margin-bottom: .25rem; color: #20353b; font-size: 1.3rem; }
.operations-stock-summary .needs-attention strong { color: #a75a1b; }
.operations-stock-summary .is-clear strong { color: #22734f; }
.operations-replenish { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1rem; border-left: 4px solid #16716d; }
.operations-replenish > i { color: #16716d; font-size: 1.8rem; }
.operations-replenish h2 { margin: 0; font-size: 1rem; }
.operations-replenish p { margin: .25rem 0 0; color: #697a80; font-size: .75rem; }
.operations-replenish a { padding: .55rem .75rem; border-radius: 4px; color: #fff; background: #16716d; font-size: .76rem; font-weight: 800; text-decoration: none; }
@keyframes payroll-slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes payroll-fade-in { from { opacity: 0; } to { opacity: 1; } }
.finance-timeline { display: grid; gap: .65rem; padding-left: 1.4rem; }
.finance-timeline li { padding-left: .3rem; }
.finance-timeline span, .finance-timeline small { display: block; color: #66777d; }

@media (max-width: 1180px) { .finance-link-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 980px) { .finance-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } .finance-workspaces { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1120px) { .payroll-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .payroll-campus-panel { grid-column: 1 / -1; } }
@media (max-width: 980px) { .payroll-layout { grid-template-columns: 1fr; } .payroll-period-bar { grid-template-columns: 1fr 1fr; } .payroll-period-bar .payroll-primary-action { grid-column: 1 / -1; justify-self: start; } }
@media (max-width: 680px) { .finance-metrics, .finance-metrics-compact, .finance-workspaces, .finance-form-grid, .finance-filters { grid-template-columns: 1fr; } .finance-link-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .finance-form-grid .wide { grid-column: auto; } .finance-head h1 { font-size: 1.75rem; } }
@media (max-width: 680px) { .payroll-period-bar, .payroll-dashboard-grid { grid-template-columns: 1fr; } .payroll-campus-panel { grid-column: auto; } .payroll-detail { width: 100%; } .payroll-detail-totals span { padding: .7rem; } }
@media (max-width: 900px) { .operations-product-grid, .operations-stock-filters { grid-template-columns: 1fr 1fr; } .operations-stock-filters label:first-child { grid-column: 1 / -1; } }
@media (max-width: 780px) { .operations-dashboard-grid, .operations-stock-workspace { grid-template-columns: 1fr; } .operations-daily-brief { align-items: start; flex-direction: column; } .operations-replenish { grid-template-columns: auto minmax(0, 1fr); } .operations-replenish a { grid-column: 1 / -1; justify-self: start; } .operations-purchase-link { align-self: start; } }
@media (max-width: 600px) { .operations-product-grid, .operations-stock-filters { grid-template-columns: 1fr; } .operations-stock-filters label:first-child { grid-column: auto; } }
@media (max-width: 420px) { .finance-link-grid { grid-template-columns: 1fr; } }
@media print {
    body:has(.purchase-order-print) * { visibility: hidden; }
    body:has(.purchase-order-print) .purchase-order-print, body:has(.purchase-order-print) .purchase-order-print * { visibility: visible; }
    .purchase-order-print { position: absolute; inset: 0; display: block; width: 100%; padding: 1.5cm; color: #172b31; background: #fff; font-family: Georgia, "Times New Roman", serif; }
    .purchase-order-print > header { display: flex; justify-content: space-between; align-items: start; padding-bottom: 1rem; border-bottom: 3px solid #16716d; }
    .purchase-order-print > header span, .purchase-order-print-parties span, .purchase-order-print-notes span { display: block; color: #52676d; font-family: sans-serif; font-size: 9pt; font-weight: 700; text-transform: uppercase; }
    .purchase-order-print h1 { margin: .2rem 0 0; font-size: 24pt; }
    .purchase-order-print > header > strong { padding: .35rem .55rem; border: 1px solid #27815f; color: #176a49; font-family: sans-serif; font-size: 10pt; text-transform: uppercase; }
    .purchase-order-print-parties { display: grid; grid-template-columns: 1fr 1fr auto; gap: 1.5rem; padding: 1.1rem 0; }
    .purchase-order-print-parties strong, .purchase-order-print-parties small { display: block; margin-top: .25rem; }
    .purchase-order-print table { width: 100%; margin-top: .75rem; border-collapse: collapse; }
    .purchase-order-print th, .purchase-order-print td { padding: .7rem; border: 1px solid #aab8bc; text-align: left; }
    .purchase-order-print thead th { color: #fff; background: #285b59; font-family: sans-serif; font-size: 9pt; }
    .purchase-order-print tfoot th { font-size: 12pt; }
    .purchase-order-print tfoot th:first-child { text-align: right; }
    .purchase-order-print-notes { margin-top: 1rem; padding: .8rem; border: 1px solid #cbd5d8; }
    .purchase-order-print-notes p { margin: .35rem 0 0; }
    .purchase-order-print > footer { display: flex; justify-content: space-between; margin-top: 2.5rem; padding-top: .75rem; border-top: 1px solid #aab8bc; font-family: sans-serif; font-size: 9pt; }
    body:has(.sale-invoice-print) * { visibility: hidden; }
    body:has(.sale-invoice-print) .sale-invoice-print, body:has(.sale-invoice-print) .sale-invoice-print * { visibility: visible; }
    .sale-invoice-print { position: absolute; inset: 0; display: block; width: 100%; padding: 1.5cm; color: #172b31; background: #fff; font-family: Georgia, "Times New Roman", serif; }
    .sale-invoice-print > header { display: flex; justify-content: space-between; align-items: start; padding-bottom: 1rem; border-bottom: 3px solid #16716d; }
    .sale-invoice-print > header span, .sale-invoice-print-meta span { display: block; color: #52676d; font-family: sans-serif; font-size: 9pt; font-weight: 700; text-transform: uppercase; }
    .sale-invoice-print h1 { margin: .2rem 0 0; font-size: 24pt; }
    .sale-invoice-print > header > strong { padding: .35rem .55rem; border: 1px solid #27815f; color: #176a49; font-family: sans-serif; font-size: 10pt; text-transform: uppercase; }
    .sale-invoice-print-meta { display: grid; grid-template-columns: 1fr 1fr auto; gap: 1.5rem; padding: 1.1rem 0; }
    .sale-invoice-print-meta strong, .sale-invoice-print-meta small { display: block; margin-top: .25rem; }
    .sale-invoice-print table { width: 100%; margin-top: .75rem; border-collapse: collapse; }
    .sale-invoice-print th, .sale-invoice-print td { padding: .7rem; border: 1px solid #aab8bc; text-align: left; }
    .sale-invoice-print thead th { color: #fff; background: #285b59; font-family: sans-serif; font-size: 9pt; }
    .sale-invoice-print tfoot th { font-size: 11pt; }
    .sale-invoice-print tfoot th:first-child { text-align: right; }
    .sale-invoice-print > footer { display: flex; justify-content: space-between; margin-top: 2.5rem; padding-top: .75rem; border-top: 1px solid #aab8bc; font-family: sans-serif; font-size: 9pt; }
}