/*
 * Workload by DexignLab: presentation adapter for PM Tool.
 * Adapted from the supplied Html/scss layout, forms, ui, tables and homepage
 * sources. See application/TEMPLATE_INTEGRATION.md for the component map.
 * Keep the existing Bootstrap/PM Tool behavior; do not load demo resets/scripts.
 */
:root {
    --primary: #00a15d; --primary-hover: #006e40; --primary-dark: #006e40;
    --rgba-primary-1: rgba(0,161,93,.1); --rgba-primary-2: rgba(0,161,93,.2);
    --app-font: 'Poppins', sans-serif;
    --app-accent: #00a15d; --app-accent-hover: #006e40; --app-accent-deep: #007342;
    --app-accent-soft: #e6f5ee; --app-accent-border: #aadbc6; --app-accent-2: #ff5e4b;
    --app-bg: #f8f8f8; --app-surface: #fff; --app-surface-2: #f7f9f8;
    --app-text: #202628; --app-text-2: #393f42; --app-text-muted: #656f75; --app-text-faint: #707b80;
    --app-border: #e9edeb; --app-border-strong: #c7d0cc;
    --app-radius-sm: .6rem; --app-radius: 1rem; --app-radius-lg: 1.25rem;
    --app-shadow-sm: 0 5px 5px rgba(82,63,105,.045);
    --app-shadow: 0 5px 20px rgba(82,63,105,.06); --app-shadow-lg: 0 10px 32px rgba(82,63,105,.1);
    --app-ring: 0 0 0 3px rgba(0,161,93,.15);
    --app-header-h: 80px; --app-sidebar-w: 260px; --app-sidebar-w-collapsed: 76px;
    --bs-primary: #00a15d; --bs-primary-rgb: 0,161,93;
    --bs-link-color-rgb: 0,115,66; --bs-link-hover-color-rgb: 0,85,48;
    --bs-body-font-family: 'Poppins', sans-serif; --bs-body-color: #393f42;
}
body.pm-workload { background: var(--app-bg); color: var(--app-text); font-family: var(--app-font); font-size: .875rem; line-height: 1.6; }
body.pm-workload h1, body.pm-workload h2, body.pm-workload h3, body.pm-workload h4, body.pm-workload h5, body.pm-workload h6 { color: var(--app-text); letter-spacing: -.025em; }
body.pm-workload ::selection { background: var(--primary); color: #fff; }
body.pm-workload :focus-visible { outline-color: var(--app-accent-deep) !important; }
body.pm-workload .text-primary { color: var(--app-accent-deep) !important; }
body.pm-workload .app-content { padding: 1.75rem 2rem; }
body.pm-workload .app-page-header { margin-bottom: 1.6rem; }
body.pm-workload .app-page-title { font-size: 1.7rem; font-weight: 600; }
body.pm-workload .app-page-eyebrow { color: var(--app-accent-deep); letter-spacing: .08em; font-size: .66rem; }
body.pm-workload .app-page-subtitle { font-size: .82rem; color: var(--app-text-muted); max-width: 64rem; }
body.pm-workload .app-page-actions { flex-shrink: 0; }

/* White, fixed navigation and compact header from Workload's light layout. */
body.pm-workload .app-navbar { background: #fff; border-bottom: 1px solid var(--app-border); }
body.pm-workload .app-navbar > .container-fluid { gap: .9rem; padding: 0 1.5rem; }
body.pm-workload .navbar-brand { order: 1; width: 218px; flex-shrink: 0; margin: 0; gap: .7rem; }
body.pm-workload .app-navbar .js-sidebar-toggle, body.pm-workload .app-navbar [aria-label="Open menu"] { order: 2; border: 0; color: #747f85; background: transparent; font-size: 1.6rem; }
body.pm-workload .global-search { order: 3; max-width: 560px; min-width: 100px; }
body.pm-workload .workload-header-actions { order: 4; }
@media (max-width: 575.98px) {
    body.pm-workload .workload-header-actions { gap: .25rem !important; }
}
body.pm-workload .app-brand-mark { background: transparent; border: 0; box-shadow: none; border-radius: 50%; width: 42px; height: 42px; }
.workload-brand-image { width: 100%; height: 100%; display: block; }
body.pm-workload .app-brand-text strong { font-family: 'Nunito', sans-serif; font-size: 1.5rem; font-weight: 800; letter-spacing: -.03em; }
body.pm-workload .app-brand-text span { font-size: .61rem; letter-spacing: 0; color: var(--app-text-muted); text-transform: none; }
body.pm-workload .app-icon-btn { border-color: transparent; background: #f6f8f7; border-radius: 50%; color: #66756d; width: 40px; height: 40px; box-shadow: none; }
body.pm-workload .app-icon-btn:hover { background: var(--app-accent-soft); color: var(--app-accent-deep); }
body.pm-workload .app-avatar { border-radius: 50%; background: #e5f4ed; color: #007342; box-shadow: none; }
body.pm-workload .app-user-toggle { border: 0; background: transparent; }
body.pm-workload .app-user-toggle strong { font-weight: 600; font-size: .82rem; }
body.pm-workload .global-search .input-group { border: 1px solid transparent; border-radius: 2rem; background: #f8f8f8; box-shadow: none; }
body.pm-workload .global-search .form-control, body.pm-workload .global-search .input-group-text { background: transparent; height: 44px; min-height: 44px; border-radius: 2rem; font-size: .78rem; }
body.pm-workload .global-search .input-group:focus-within { background: #fff; outline-color: var(--app-accent-deep); }
body.pm-workload .app-sidebar { --bs-offcanvas-bg: #fff; --bs-offcanvas-color: #393f42; }
body.pm-workload .app-sidebar-inner { background: #fff; border-right: 1px solid var(--app-border); padding: 1.1rem 1rem .9rem; gap: 1rem; }
body.pm-workload .app-sidebar .offcanvas-header { background: #fff; border-color: var(--app-border); }
body.pm-workload .app-sidebar .offcanvas-title { color: var(--app-text); }
body.pm-workload .app-sidebar .offcanvas-header .btn-close { filter: none; }
body.pm-workload .app-sidebar .nav-link { color: #677580; padding: .6rem .85rem; border-radius: 2rem; font-size: .82rem; gap: .65rem; font-weight: 400; }
body.pm-workload .app-sidebar .nav-link .app-nav-icon { color: #83928b; font-size: 1.3rem; width: 1.6rem; height: 1.6rem; }
body.pm-workload .app-sidebar .nav-link:hover, body.pm-workload .app-sidebar .nav-link.active { background: var(--app-accent-soft); color: var(--app-accent-deep); }
body.pm-workload .app-sidebar .nav-link.active { font-weight: 600; }
body.pm-workload .app-sidebar .nav-link:hover .app-nav-icon, body.pm-workload .app-sidebar .nav-link.active .app-nav-icon { color: var(--app-accent-deep); }
body.pm-workload .app-sidebar-label { color: #738078; font-size: .59rem; letter-spacing: .1em; padding-left: .9rem; }
body.pm-workload .app-sidebar-quick { background: var(--app-accent-deep); border-color: var(--app-accent-deep); border-radius: 2rem; justify-content: center; padding: .8rem; color: #fff; }
body.pm-workload .app-sidebar-quick:hover, body.pm-workload .app-sidebar-quick:focus { background: var(--primary-hover); border-color: var(--primary-hover); }
body.pm-workload .app-sidebar-project { background: #f7faf8; border-color: var(--app-border); border-radius: .8rem; }
body.pm-workload .app-sidebar-project .app-sidebar-project-kicker { color: var(--app-accent-deep); }
body.pm-workload .app-sidebar-project .app-sidebar-project-name { color: var(--app-text); }
body.pm-workload .app-sidebar .app-sidebar-subnav .nav-link { border-radius: .6rem; font-size: .76rem; }
body.pm-workload .app-sidebar-user { border-color: var(--app-border); padding-top: 1rem; }
body.pm-workload .app-sidebar-user-text strong { color: var(--app-text); }
body.pm-workload .app-sidebar-user-text span { color: var(--app-text-muted); }
body.pm-workload .app-sidebar-user .app-avatar { background: var(--app-accent-soft); color: var(--app-accent-deep); }
body.pm-workload .app-sidebar-user .app-icon-btn { background: transparent; color: var(--app-text-muted); }
/* Workload's overlay scrollbar; native scrolling remains available if JS fails. */
body.pm-workload .app-sidebar-nav { position: relative; scrollbar-color: #dae2f3 transparent; }
body.pm-workload .app-sidebar-nav::-webkit-scrollbar-thumb { background: #dae2f3; }
body.pm-workload .app-sidebar-nav.ps { scrollbar-width: none; }
body.pm-workload .app-sidebar-nav.ps::-webkit-scrollbar { display: none; }
body.pm-workload .app-sidebar-nav > .ps__rail-y { background: transparent; }
body.pm-workload .app-sidebar-nav > .ps__rail-y:hover,
body.pm-workload .app-sidebar-nav > .ps__rail-y:focus,
body.pm-workload .app-sidebar-nav > .ps__rail-y.ps--clicking { background: transparent; opacity: .9; }
body.pm-workload .app-sidebar-nav > .ps__rail-y > .ps__thumb-y { background: #dae2f3; width: .25rem; border-radius: 6px; }
body.pm-workload .app-sidebar-nav:focus-within > .ps__rail-y { opacity: .9; }
@media (prefers-reduced-motion: reduce) {
    body.pm-workload .app-sidebar-nav > .ps__rail-y,
    body.pm-workload .app-sidebar-nav .ps__thumb-y { transition: none; }
}
@media (forced-colors: active) {
    body.pm-workload .app-sidebar-nav .ps__thumb-y { background: ButtonText; forced-color-adjust: none; }
}
body.pm-workload .app-sidebar :focus-visible { outline-color: var(--app-accent-deep) !important; }
.workload-footer { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; padding: 1rem .25rem 0; border-top: 1px solid var(--app-border); color: var(--app-text-muted); font-size: .72rem; }

/* Rounded cards and restrained component styling from Workload's UI sources. */
body.pm-workload .card { border: 1px solid transparent !important; border-radius: 1rem; box-shadow: var(--app-shadow-sm) !important; background: #fff; }
body.pm-workload .card .card { border-color: var(--app-border) !important; box-shadow: none !important; }
body.pm-workload .card-header { padding: 1.2rem 1.35rem; background: #fff; border-color: var(--app-border); border-radius: 1rem 1rem 0 0; }
body.pm-workload .card-body { padding: 1.35rem; }
body.pm-workload .card-footer { background: #fff; border-color: var(--app-border); padding: 1rem 1.35rem; border-radius: 0 0 1rem 1rem; }
body.pm-workload .card-title { font-size: 1.05rem; font-weight: 600; }
body.pm-workload .btn { border-radius: .75rem; font-weight: 500; font-size: .82rem; padding: .65rem 1rem; box-shadow: none; transition: background-color .15s, border-color .15s, color .15s; }
body.pm-workload .btn-sm { padding: .4rem .7rem; font-size: .74rem; border-radius: .6rem; }
body.pm-workload .btn-lg { padding: .8rem 1.5rem; font-size: .95rem; }
body.pm-workload .btn-primary { --bs-btn-bg: #00834c; --bs-btn-border-color: #00834c; --bs-btn-disabled-bg: #00834c; --bs-btn-disabled-border-color: #00834c; background: #00834c; border: 1px solid #00834c; color: #fff; }
body.pm-workload .btn-primary:hover, body.pm-workload .btn-primary:active, body.pm-workload .btn-primary:focus { background: var(--primary-hover); border-color: var(--primary-hover); color: #fff; transform: none; }
body.pm-workload .btn-primary:disabled, body.pm-workload .btn-primary.disabled { background: #00834c; border-color: #00834c; }
body.pm-workload .btn-outline-primary { background: transparent; border-color: var(--primary); color: var(--app-accent-deep); }
body.pm-workload .btn-outline-primary:hover, body.pm-workload .btn-outline-primary:focus { background: var(--app-accent-soft); border-color: var(--app-accent-deep); color: var(--app-accent-deep); }
body.pm-workload .btn-success { background: #297f00; border-color: #297f00; }
body.pm-workload .btn-danger { background: #cf3030; border-color: #cf3030; }
body.pm-workload .btn-warning { background: #ffe69d; border-color: #ffe69d; color: #634909; }
body.pm-workload .btn-light, body.pm-workload .btn-outline-secondary { background: #fff; color: var(--app-text-2); border-color: var(--app-border-strong); }
body.pm-workload .btn-light:hover, body.pm-workload .btn-outline-secondary:hover { background: #f0f4f2; }
body.pm-workload .btn-link { color: var(--app-accent-deep); }
body.pm-workload .app-quick-note-btn { background: var(--app-accent-soft); color: var(--app-accent-deep); border-color: transparent; border-radius: 2rem; }
body.pm-workload .badge { font-weight: 500; letter-spacing: 0; }
body.pm-workload .badge.text-bg-primary { background: var(--app-accent-soft) !important; color: var(--app-accent-deep) !important; }
body.pm-workload .badge.text-bg-light { background: #f3f6f4 !important; }
body.pm-workload .nav-tabs { background: #fff; border-bottom: 1px solid var(--app-border); border-radius: .8rem; padding: .35rem; gap: .3rem; }
body.pm-workload .nav-tabs .nav-link { border-radius: 2rem; font-size: .8rem; padding: .6rem .9rem; border: 0; }
body.pm-workload .nav-tabs .nav-link.active { background: var(--app-accent-soft); color: var(--app-accent-deep); box-shadow: none; }
body.pm-workload .nav-pills .nav-link.active { background: var(--app-accent-deep); }
body.pm-workload .dropdown-menu { border: 1px solid var(--app-border); border-radius: .8rem; box-shadow: var(--app-shadow-lg); }
body.pm-workload .dropdown-item { border-radius: .4rem; font-size: .8rem; }
body.pm-workload .dropdown-item:hover, body.pm-workload .dropdown-item:focus { background: var(--app-accent-soft); color: var(--app-accent-deep); }
body.pm-workload .dropdown-item.active { background: var(--app-accent-deep); color: #fff; }
body.pm-workload .modal-content { border: 0; border-radius: 1.25rem; box-shadow: 0 18px 60px #172b2330; }
body.pm-workload .modal-header { background: #fff; border-color: var(--app-border); padding: 1.25rem 1.5rem; border-radius: 1.25rem 1.25rem 0 0; }
body.pm-workload .modal-title { font-size: 1.1rem; font-weight: 600; }
body.pm-workload .modal-body { padding: 1.5rem; }
body.pm-workload .modal-footer { background: #fff; border-color: var(--app-border); padding: 1rem 1.5rem; border-radius: 0 0 1.25rem 1.25rem; }
body.pm-workload .offcanvas { border-color: var(--app-border) !important; }
body.pm-workload .accordion-button { font-size: .86rem; }
body.pm-workload .accordion-button:not(.collapsed) { background: var(--app-accent-soft); color: var(--app-accent-deep); }
body.pm-workload .page-link { color: var(--app-accent-deep); border-color: var(--app-border); }
body.pm-workload .page-item.active .page-link { background: var(--app-accent-deep); color: #fff; border-color: var(--app-accent-deep); }
body.pm-workload .alert-primary { --bs-alert-color: #006e40; --bs-alert-bg: #e6f5ee; --bs-alert-border-color: #aadbc6; }
body.pm-workload .progress { background: #e8f3ed; border-radius: 1rem; }
body.pm-workload .progress-bar { background: var(--primary); }

/* Native controls retain validation, labels, keyboard focus and input-group joins. */
body.pm-workload .form-control, body.pm-workload .form-select { background-color: #fff; border-color: #ccd5d0; border-radius: .75rem; min-height: 44px; padding: .6rem .85rem; color: var(--app-text-2); font-size: .84rem; box-shadow: none !important; }
body.pm-workload .form-select { padding-right: 2.4rem; }
body.pm-workload .form-select:focus { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23007342' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='m3 6 5 5 5-5'/%3e%3c/svg%3e"); }
body.pm-workload .form-select[multiple], body.pm-workload .form-select[size]:not([size="1"]) { background-image: none; }
body.pm-workload .form-control-sm, body.pm-workload .form-select-sm { min-height: 36px; padding: .4rem .7rem; font-size: .78rem; border-radius: .6rem; }
body.pm-workload .form-select-sm { padding-right: 2rem; }
body.pm-workload .form-control:focus, body.pm-workload .form-select:focus, body.pm-workload .form-check-input:focus { border-color: var(--app-accent-deep); outline: 2px solid var(--app-accent-deep) !important; outline-offset: -2px; }
body.pm-workload .form-control:disabled, body.pm-workload .form-control[readonly], body.pm-workload .form-select:disabled { background-color: #f0f3f1; color: var(--app-text-muted); }
body.pm-workload .form-control::placeholder { color: #738178; }
body.pm-workload .form-check-input:checked { background-color: var(--app-accent-deep); border-color: var(--app-accent-deep); }
body.pm-workload .form-check-input:checked[type="checkbox"] { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.4' d='m5 10.5 3.5 3.5L15 7'/%3e%3c/svg%3e"); }
body.pm-workload .form-check-input:checked[type="radio"] { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); }
body.pm-workload .form-switch .form-check-input:checked { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); }
body.pm-workload .form-control:hover:not(:focus):not(:disabled):not([readonly]), body.pm-workload .form-select:hover:not(:focus):not(:disabled) { border-color: #94b6a2; }
body.pm-workload .form-label { color: var(--app-text-2); font-size: .8rem; font-weight: 500; }
body.pm-workload .form-text { font-size: .74rem; color: var(--app-text-muted); }
body.pm-workload .input-group { border-radius: .75rem; }
body.pm-workload .input-group-text { border-color: #ccd5d0; background: #f5f8f6; color: #64766b; border-radius: .75rem; }
body.pm-workload .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
body.pm-workload .input-group > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
body.pm-workload .global-search .form-control:focus { outline: none !important; }
body.pm-workload .form-control.is-invalid, body.pm-workload .form-select.is-invalid, body.pm-workload .was-validated .form-control:invalid, body.pm-workload .was-validated .form-select:invalid { border-color: #dc3545; outline-color: #dc3545 !important; }
body.pm-workload .form-control.is-valid, body.pm-workload .form-select.is-valid, body.pm-workload .was-validated .form-control:valid, body.pm-workload .was-validated .form-select:valid { border-color: #198754; outline-color: #198754 !important; }
body.pm-workload input[type="file"].form-control::file-selector-button { background: var(--app-accent-soft); border-color: var(--app-accent-border); color: var(--app-accent-deep); border-radius: .5rem; }
body.pm-workload .ql-toolbar.ql-snow { border-color: #ccd5d0; border-radius: .75rem .75rem 0 0; background: #f7faf8; }
body.pm-workload .ql-container.ql-snow { border-color: #ccd5d0; border-radius: 0 0 .75rem .75rem; font-family: var(--app-font); }
body.pm-workload .ql-editor { font-size: .875rem; }
body.pm-workload .ql-editor:focus-visible { outline-offset: -2px; }

/* Workload table rhythm, without replacing sorting/filtering controls. */
body.pm-workload .table { --bs-table-color: #393f42; --bs-table-hover-bg: #f1f7f3; --bs-table-striped-bg: #f8faf9; --bs-table-border-color: #e9edeb; font-size: .8rem; }
body.pm-workload .table thead th { background: #f7f9f8; color: #616d65; font-size: .72rem; letter-spacing: 0; text-transform: none; font-weight: 600; padding: 1rem; border-color: var(--app-border); }
body.pm-workload .table td, body.pm-workload .table tbody th { padding: .85rem 1rem; vertical-align: middle; }
body.pm-workload .table.table-sm td, body.pm-workload .table.table-sm th { padding: .6rem .75rem; }
body.pm-workload .table-responsive { border-radius: .7rem; }
body.pm-workload .table .btn-sm { font-size: .72rem; padding: .3rem .5rem; }

/* Dashboard: real metrics in Workload's card/green feature-banner composition. */
body.pm-workload .dash-hero { background: linear-gradient(100deg, #00834c, #006e40); border-radius: 1.25rem; color: #fff; padding: 0; overflow: hidden; box-shadow: var(--app-shadow-sm); }
body.pm-workload .dash-hero::before { content: ''; display: block; position: absolute; inset: 0; width: auto; height: auto; border-radius: 0; background: url('../template/workload/ellipse.png') left center / auto 100% no-repeat, url('../template/workload/ellipse2.png') right center / auto 150% no-repeat; opacity: .65; pointer-events: none; }
body.pm-workload .dash-hero-inner { position: relative; padding: 1.75rem 2rem; gap: 1.5rem; }
body.pm-workload .dash-hero-date { color: #d7f5e6; font-weight: 400; letter-spacing: .04em; font-size: .7rem; }
body.pm-workload .dash-hero-title { color: #fff; font-size: 1.8rem; font-weight: 600; letter-spacing: -.035em; }
body.pm-workload .dash-hero-sub, body.pm-workload .dash-hero-sub strong { color: #f4fff8; font-size: .79rem; }
body.pm-workload .dash-hero .text-warning { color: #ffed9e !important; }
body.pm-workload .dash-hero .btn { border-radius: 2rem; white-space: nowrap; }
body.pm-workload .dash-hero .btn-warning { background: #fff; border-color: #fff; color: #006e40; }
body.pm-workload .dash-hero .btn-light, body.pm-workload .dash-hero .btn-outline-light { background: transparent; border-color: #a6d5bd; color: #fff; }
body.pm-workload .dash-hero .btn:hover { background: #e6f5ee; color: #006e40; }
body.pm-workload .dash-kpi { border: 0; border-radius: 1rem; padding: 1.4rem; box-shadow: var(--app-shadow-sm); gap: 1rem; }
body.pm-workload .dash-kpi:hover { transform: none; box-shadow: var(--app-shadow); }
body.pm-workload .dash-kpi-icon { width: 3.25rem; height: 3.25rem; border-radius: 50%; font-size: 1.5rem; }
body.pm-workload .dash-kpi-value { font-size: 2rem; color: var(--app-text); font-weight: 600; }
body.pm-workload .dash-kpi-label { font-size: .78rem; color: var(--app-text-2); font-weight: 500; }
body.pm-workload .dash-kpi-hint { font-size: .7rem; color: var(--app-text-muted); }
body.pm-workload .dash-kpi-progress { background: #e6f5ee; }
body.pm-workload .dash-kpi-progress span { background: var(--primary); }
body.pm-workload .dash-panel-icon { border-radius: 50%; }
body.pm-workload .dash-panel-empty { color: var(--app-text-muted); font-size: .79rem; padding: 1.8rem 1rem; }
body.pm-workload .dash-note { border: 1px solid transparent; border-radius: .8rem; padding: 1rem 1.1rem; box-shadow: var(--app-shadow-sm); }
body.pm-workload .dash-note:hover { border-color: var(--app-accent-border); transform: none; }
body.pm-workload .dash-legend { border-color: var(--app-border); color: var(--app-text-2); font-size: .72rem; }
body.pm-workload .dash-legend--empty { opacity: 1; }

/* Project workspace, pipeline, calendar and reporting share the same surfaces. */
body.pm-workload .project-hero { border: 0; border-radius: 1rem; box-shadow: var(--app-shadow-sm); padding: 1.5rem; }
body.pm-workload .project-hero::before { background: var(--primary); width: 4px; }
body.pm-workload .project-hero-mark { background: var(--app-accent-soft); border-color: var(--app-accent-border); color: var(--app-accent-deep); border-radius: 50%; }
body.pm-workload .project-hero-title { font-size: 1.65rem; font-weight: 600; }
body.pm-workload .project-hero-meta { color: var(--app-text-muted); }
body.pm-workload .product-card, body.pm-workload .app-product-card { border-radius: 1rem; }
body.pm-workload .product-card--primary { border-left: 4px solid var(--primary) !important; }
body.pm-workload .product-card:hover, body.pm-workload .app-product-card:hover { transform: none; border-color: var(--app-accent-border) !important; }
body.pm-workload .product-card-icon { background: var(--app-accent-soft); color: var(--app-accent-deep); border-color: var(--app-accent-border); border-radius: 1rem; }
body.pm-workload .pipeline-overview, body.pm-workload .pipeline-stages .kanban-column { border: 0; border-radius: 1rem; box-shadow: var(--app-shadow-sm); }
body.pm-workload .pipeline-stage-content { border-radius: 0 1rem 1rem 0; background: #f4f8f6; }
body.pm-workload .pipeline-stage-nav a { border-radius: 2rem; background: #fff; }
body.pm-workload .pipeline-stages .kanban-card { border: 1px solid var(--app-border) !important; border-radius: .8rem !important; }
body.pm-workload .kanban-stage-select { color: var(--app-text-2); }
body.pm-workload .planning-calendar { border-color: var(--app-border); border-radius: 1rem; background: var(--app-border); }
body.pm-workload .calendar-weekday { background: #f5f8f6; color: var(--app-text-muted); }
body.pm-workload .calendar-today .calendar-date time { background: var(--app-accent-deep); }
body.pm-workload .calendar-event { background: var(--app-accent-soft); border-color: var(--primary); color: var(--app-accent-deep); }
body.pm-workload .calendar-event-late { background: #fff0ef; border-color: #cf3030; color: #a12929; }
body.pm-workload .report-summary > div { border: 0; border-radius: 1rem; box-shadow: var(--app-shadow-sm); }
body.pm-workload .delivery-progress { accent-color: var(--primary); }
body.pm-workload .delivery-progress::-webkit-progress-value { background: var(--primary); }
body.pm-workload .delivery-progress::-webkit-progress-bar { background: #e6f5ee; }

/* Nested workspaces: controls stay inside their node rather than clipping. */
body.pm-workload .tree-node-row { border-color: var(--app-border); border-radius: .8rem; }
body.pm-workload .tree-node-header .tree-open, body.pm-workload .tree-node-rollup-text { white-space: normal; overflow-wrap: anywhere; }
body.pm-workload .tree-node-leading { min-width: 0; max-width: 100%; }
body.pm-workload .tree-node-leading .tree-open { white-space: normal; overflow-wrap: anywhere; }
body.pm-workload .tree-node-tags, body.pm-workload .tree-quick-controls { min-width: 0; max-width: 100%; }
body.pm-workload .tree-quick-controls { flex-wrap: wrap; width: 100%; }
body.pm-workload .tree-quick-controls .form-select { flex: 1 1 110px; min-width: 0; max-width: 100%; }
body.pm-workload .tree-nested { border-color: #d8e8df; }
body.pm-workload .tree-detail-offcanvas .offcanvas-header { background: #f5faf7; border-bottom: 1px solid var(--app-border); }
body.pm-workload .tree-detail-offcanvas .offcanvas-title { font-weight: 600; font-size: 1.05rem; }
body.pm-workload .tree-detail-offcanvas .offcanvas-body { padding: 1.25rem; }
body.pm-workload .tree-search-bulk-bar .input-group > .form-control:has(+ .d-none:last-child) { border-top-right-radius: .75rem; border-bottom-right-radius: .75rem; }
@media (max-width: 991.98px) {
    body.pm-workload .tree-node-actions.btn-group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; min-width: 0; width: 100%; margin-left: 0; }
    body.pm-workload .tree-node-actions.btn-group > .btn { min-width: 0; margin: 0; border-radius: .6rem; padding: .45rem .5rem; font-size: .72rem; white-space: normal; overflow-wrap: anywhere; }
}
@media (max-width: 767.98px) {
    body.pm-workload .tree-nested { margin-left: .5rem; padding-left: .5rem; }
    body.pm-workload .tree-node-row { padding: .7rem; gap: .5rem; }
    body.pm-workload .tree-node-body { flex-basis: 100%; }
    body.pm-workload .tree-node-row .tree-node-actions { justify-content: stretch; }
}

/* Workload's centered authentication card, with PM Tool's live login form. */
body.pm-workload.auth-page { background: #eaf6f0; }
body.pm-workload .login-page { min-height: 100vh; padding: 2rem 1rem; }
body.pm-workload .login-shell { display: block; max-width: 510px; border: 0; border-radius: 1.25rem; background: #fff; box-shadow: 0 0 35px rgba(154,161,171,.15); }
body.pm-workload .login-form-panel { display: block; padding: 2.5rem; border-radius: 1.25rem; background: #fff; }
body.pm-workload .login-form-inner { max-width: none; }
body.pm-workload .login-mobile-brand { display: flex; justify-content: center; gap: .8rem; margin-bottom: 2rem; font-family: 'Nunito', sans-serif; font-size: 1.7rem; font-weight: 800; }
body.pm-workload .login-form-inner h1 { text-align: center; font-size: 1.35rem; font-weight: 600; }
body.pm-workload .login-form-inner .lead { text-align: center; font-size: .82rem; color: var(--app-text-muted); margin-bottom: 1.75rem; }
body.pm-workload .login-form-inner .form-control { border-radius: .8rem; padding-left: 2.65rem; font-size: .875rem; }
body.pm-workload .login-form-inner #password { padding-right: 2.8rem; }
body.pm-workload .login-form-inner .btn-primary { border-radius: .8rem; font-size: .9rem; }
body.pm-workload .login-tip { background: #f5faf7; border: 1px solid #dfede5; color: var(--app-accent-deep); border-radius: .8rem; }
body.pm-workload .login-tip kbd { color: var(--app-accent-deep); border-color: var(--app-accent-border); }

@media (min-width: 768px) {
    html.sidebar-collapsed body.pm-workload .navbar-brand { width: 42px; }
    html.sidebar-collapsed body.pm-workload .app-brand-text { display: none !important; }
    html.sidebar-collapsed body.pm-workload .app-sidebar-inner { padding-left: .65rem; padding-right: .65rem; }
}
@media (max-width: 1199.98px) {
    body.pm-workload .dash-hero-inner { flex-wrap: wrap; }
    body.pm-workload .app-content { padding: 1.5rem; }
    body.pm-workload .app-navbar > .container-fluid { gap: .6rem; padding: 0 1rem; }
    body.pm-workload .navbar-brand { width: 228px; }
    body.pm-workload .app-page-header { flex-wrap: wrap; }
    body.pm-workload .dash-kpi { padding: 1.1rem; }
}
@media (max-width: 991.98px) {
    body.pm-workload .pipeline-stage-content { border-radius: 0 0 1rem 1rem; }
    body.pm-workload .app-page-actions { max-width: 100%; }
}
@media (max-width: 767.98px) {
    :root { --app-header-h: 64px; }
    body.pm-workload .app-navbar > .container-fluid { gap: .5rem; padding: 0 .75rem; }
    body.pm-workload .navbar-brand { width: auto; margin-right: auto; }
    body.pm-workload .app-navbar [aria-label="Open menu"] { order: 0; }
    body.pm-workload .app-brand-mark { width: 35px; height: 35px; }
    body.pm-workload .app-content { padding: 1.15rem .85rem; }
    body.pm-workload .app-page-title { font-size: 1.4rem; }
    body.pm-workload .app-page-subtitle { font-size: .78rem; }
    body.pm-workload .app-sidebar-inner { padding: 1rem; }
    body.pm-workload .dash-hero-inner { padding: 1.35rem; }
    body.pm-workload .dash-hero-title { font-size: 1.5rem; }
    body.pm-workload .dash-hero-actions { flex-wrap: wrap; gap: .5rem; }
    body.pm-workload .dash-hero .btn { padding: .5rem .8rem; font-size: .73rem; }
    body.pm-workload .dash-kpi { padding: 1rem .85rem; gap: .45rem .6rem; grid-template-columns: 2.15rem 1fr; }
    body.pm-workload .dash-kpi-icon { width: 2.15rem; height: 2.15rem; font-size: 1.2rem; }
    body.pm-workload .dash-kpi-value { font-size: 1.65rem; }
    body.pm-workload .dash-kpi-label { font-size: .72rem; }
    body.pm-workload .dash-kpi-hint { font-size: .67rem; }
    body.pm-workload .card-body { padding: 1rem; }
    body.pm-workload .card-header { padding: 1rem; }
    body.pm-workload .modal-header, body.pm-workload .modal-body, body.pm-workload .modal-footer { padding: 1rem; }
    body.pm-workload .project-hero { padding: 1.1rem; }
    body.pm-workload .project-hero-title { font-size: 1.35rem; }
    body.pm-workload .login-form-panel { padding: 2rem 1.4rem; }
}
@media (prefers-reduced-motion: reduce) {
    body.pm-workload *, body.pm-workload *::before, body.pm-workload *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
