@import url("/fonts/filament/filament/inter/index.css");
/* Shared Offerno tokens and components, also used by the original landing. */
.jp-app {
    --jp-ink: #202329;
    --jp-muted: #72767d;
    --jp-accent: #5956d9;
    --jp-lime: #dcf5a5;
    --jp-paper: #fafbf8;
    background: var(--jp-paper);
    color: var(--jp-ink);
    font-family: "Inter Variable",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    -webkit-font-smoothing: antialiased;
}
.jp-shell {
    width: min(1180px,calc(100% - 80px));
    margin-inline: auto;
}
.jp-app a:focus-visible,.jp-app button:focus-visible {
    outline: 3px solid var(--jp-accent);
    outline-offset: 5px;
    border-radius: 5px;
}
.jp-skip-link {
    position: fixed;
    top: -80px;
    left: 16px;
    z-index: 1100;
    background: #fff;
    padding: 12px 20px;
    color: var(--jp-ink);
}
.jp-skip-link:focus {
    top: 12px;
}
.jp-nav {
    border-bottom: 1px solid #e6e8e1;
}
.jp-nav-inner {
    min-height: 94px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}
.jp-brand {
    display: inline-flex;
    align-items: center;
    font-size: 27px;
    font-weight: 750;
    letter-spacing: -1.2px;
    flex-shrink: 0;
}
.jp-brand-mark {
    display: grid;
    place-items: center;
    width: 37px;
    height: 37px;
    border-radius: 11px;
    background: var(--jp-ink);
    color: var(--jp-lime);
    margin-right: 10px;
    font-size: 27px;
    font-weight: 500;
}
.jp-brand-dot {
    color: var(--jp-accent);
}
.jp-nav-menu.collapse {
    display: flex;
    align-items: center;
    gap: 34px;
    font-size: 14px;
    font-weight: 550;
    flex: 1;
    justify-content: flex-end;
}
.jp-nav-menu>a:hover {
    color: var(--jp-accent);
}
.jp-nav-account {
    border-left: 1px solid #dfe2db;
    padding-left: 34px;
    margin-left: 16px;
}
.jp-account-link {
    display: inline-flex;
    align-items: center;
    gap: 18px;
    color: var(--jp-ink);
    background: transparent;
    border: 0;
    padding: 8px 0;
    font-size: 14px;
    font-weight: 600;
}
.jp-menu-toggle {
    display: none;
    background: none;
    border: 1px solid #dfe2db;
    border-radius: 8px;
    padding: 4px 10px;
    font-size: 24px;
}
.jp-eyebrow {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 10px;
    line-height: 1.5;
    font-weight: 700;
    letter-spacing: 1.6px;
}
.jp-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 19px;
    min-height: 52px;
    padding: 14px 20px;
    border-radius: 9px;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 600;
    border: 1px solid transparent;
    transition: background-color .18s,transform .18s;
}
.jp-button:hover {
    transform: translateY(-2px);
}
.jp-app .jp-button-primary {
    background: var(--jp-accent);
    color: #fff;
    box-shadow: 0 4px 10px #5956d91a;
}
.jp-app .jp-button-primary:hover {
    background: #4945c1;
    color: #fff;
}
.jp-app .jp-button-secondary {
    border-color: #dcdfd7;
    background: transparent;
}
.jp-app .jp-button-secondary:hover {
    background: #f0f1eb;
}
.jp-muted-eyebrow {
    color: #878c80;
    font-size: 9px;
}
.jp-text-link {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    font-size: 12px;
    font-weight: 600;
}
.jp-text-link:hover {
    color: var(--jp-accent);
}
.jp-app {
    --bs-primary: #5956d9;
    --bs-primary-rgb: 89,86,217;
    --bs-link-color: #5956d9;
    --bs-link-hover-color: #4643b6;
    --jp-line: #e2e6dc;
    --jp-soft: #eff1e9;
    --jp-radius: 16px;
}
.jp-app a {
    text-underline-offset: 4px;
}
.jp-app .jp-nav a {
    color: inherit;
    text-decoration: none;
}
.jp-app .jp-nav-menu>a[aria-current="page"] {
    color: var(--jp-accent);
}
.jp-app .jp-nav-menu>a[aria-current="page"]::after {
    content: "";
    display: block;
    height: 2px;
    background: var(--jp-accent);
    margin-top: 5px;
    border-radius: 3px;
}
.jp-nav-menu.collapse {
    display: flex;
}
.jp-nav-account {
    flex-shrink: 0;
}
.jp-page {
    padding-top: 44px;
    padding-bottom: 64px;
    min-height: 55vh;
}
.jp-page h1 {
    font-size: clamp(32px,3.5vw,49px);
    letter-spacing: -1.8px;
    line-height: 1.13;
    font-weight: 600;
    margin: 15px 0 18px;
    overflow-wrap: anywhere;
}
.jp-page h2 {
    font-weight: 600;
    letter-spacing: -.8px;
}
.jp-page h3 {
    font-weight: 600;
    letter-spacing: -.4px;
}
.jp-page-title {
    max-width: 850px;
    margin-bottom: 34px;
}
.jp-page-title>p {
    color: #6e7568;
    max-width: 650px;
    font-size: 15px;
    line-height: 1.8;
}
.jp-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    color: #737c69;
    font-size: 12px;
    margin-bottom: 30px;
}
.jp-breadcrumb a {
    color: inherit;
    text-decoration: none;
}
.jp-breadcrumb a:hover {
    color: var(--jp-accent);
}
.jp-breadcrumb>span:last-child {
    color: #939b89;
}
.jp-panel {
    padding: 28px;
    border: 1px solid var(--jp-line);
    border-radius: var(--jp-radius);
    background: #fff;
    min-width: 0;
}
.jp-panel-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}
.jp-panel-heading h2,.jp-panel-heading h3 {
    margin: 0;
    font-size: 20px;
}
.jp-page .jp-button {
    text-decoration: none;
}
.jp-button-quiet {
    background: #fff;
    border-color: var(--jp-line);
    color: var(--jp-ink);
}
.jp-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 10px;
    border: 1px solid #e3e6db;
    border-radius: 6px;
    color: #6f7962;
    background: #f5f7f0;
    font-size: 11px;
    line-height: 1.4;
    text-decoration: none;
}
.jp-badge-purple {
    background: #f1f0fc;
    color: #625dc4;
    border-color: #e5e2f7;
}
.jp-field {
    display: flex;
    flex-direction: column;
    gap: 9px;
    min-width: 0;
}
.jp-field>label {
    font-size: 12px;
    font-weight: 550;
    color: #5f6856;
}
.jp-app .form-control,.jp-app .form-select {
    min-height: 46px;
    border: 1px solid #dce2d3;
    border-radius: 8px;
    background-color: #fff;
    color: #353b2e;
    font-size: 13px;
    box-shadow: none;
}
.jp-app .form-control:focus,.jp-app .form-select:focus {
    border-color: var(--jp-accent);
    box-shadow: 0 0 0 3px #5956d91a;
}
.jp-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.jp-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 9px 13px;
    border: 1px solid var(--jp-line);
    background: #fff;
    color: #66705b;
    border-radius: 7px;
    text-decoration: none;
    font-size: 12px;
}
.jp-chip:hover {
    border-color: #b4b0e2;
    color: var(--jp-accent);
}
.jp-chip.active,.jp-chip[aria-current="true"] {
    background: #eeedfb;
    border-color: #bfbbea;
    color: #4e48b4;
}
.jp-filters {
    display: grid;
    grid-template-columns: 1fr 1.25fr auto;
    align-items: end;
    gap: 16px;
}
.jp-grade-filter {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid #edf0e7;
}
.jp-filter-caption {
    color: #7a836d;
    font-size: 11px;
    margin-bottom: 11px;
}
.jp-filter-status {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
    font-size: 12px;
    color: #737d66;
}
.jp-filter-status a {
    color: var(--jp-accent);
    text-decoration: none;
}
.jp-filter-status .jp-badge {
    gap: 12px;
}
.jp-result-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin: 30px 0 16px;
}
.jp-result-heading h2 {
    margin: 0;
    font-size: 20px;
}
.jp-result-heading>span {
    color: #78816e;
    font-size: 12px;
}
.jp-catalog-list {
    border: 1px solid var(--jp-line);
    border-radius: var(--jp-radius);
    overflow: hidden;
    background: #fff;
}
.jp-catalog-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding: 23px 27px;
    color: var(--jp-ink);
    text-decoration: none;
}
.jp-catalog-item+.jp-catalog-item {
    border-top: 1px solid #eaeee3;
}
.jp-catalog-item:hover {
    background: #f7f8f3;
}
.jp-catalog-item h2,.jp-catalog-item h3 {
    font-size: 17px;
    font-weight: 550;
    letter-spacing: -.4px;
    line-height: 1.5;
    margin: 11px 0 0;
}
.jp-catalog-item>i {
    color: #8a947d;
    font-size: 20px;
}
.jp-catalog-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    align-items: center;
    color: #748067;
    font-size: 11px;
}
.jp-access-panel {
    display: flex;
    align-items: center;
    gap: 22px;
    background: #eff2e8;
    border: 1px solid #dce3d0;
    border-radius: var(--jp-radius);
    padding: 25px 28px;
    margin-top: 30px;
}
.jp-access-panel>i {
    font-size: 27px;
    color: #839168;
}
.jp-access-panel h2 {
    font-size: 18px;
    margin-bottom: 8px;
}
.jp-access-panel p {
    margin: 0;
    color: #6d785e;
    font-size: 13px;
    line-height: 1.7;
}
.jp-access-panel .jp-button {
    margin-left: auto;
    flex-shrink: 0;
}
.jp-pagination {
    margin-top: 28px;
}
.jp-pagination nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 15px;
}
.jp-pagination .pagination {
    gap: 5px;
    margin: 0;
    flex-wrap: wrap;
}
.jp-app .page-link {
    background: #fff;
    border: 1px solid var(--jp-line);
    border-radius: 7px!important;
    color: #6e7860;
    padding: 8px 13px;
    box-shadow: none;
    font-size: 13px;
}
.jp-app .page-item.active .page-link {
    background: var(--jp-accent);
    border-color: var(--jp-accent);
    color: #fff;
}
.jp-pagination p {
    color: #808972;
    font-size: 12px;
    margin: 0;
}
.jp-empty {
    padding: 55px 25px;
    text-align: center;
    border: 1px dashed #d6deca;
    border-radius: 14px;
    color: #6c785d;
    background: #f5f7f0;
}
.jp-empty>i {
    font-size: 34px;
}
.jp-empty h2,.jp-empty h3 {
    font-size: 23px;
    color: #38432e;
    margin: 18px 0 12px;
}
.jp-empty p {
    max-width: 460px;
    margin: 0 auto 23px;
    font-size: 14px;
    line-height: 1.8;
}
.jp-reading-layout {
    display: grid;
    grid-template-columns: minmax(0,1fr) 270px;
    gap: 30px;
    align-items: start;
}
.jp-reading-main {
    min-width: 0;
}
.jp-reading-aside {
    position: sticky;
    top: 24px;
    display: flex;
    flex-direction: column;
    gap: 19px;
    min-width: 0;
}
.jp-reading-aside .jp-panel {
    padding: 24px;
}
.jp-reading-aside h2 {
    font-size: 15px;
    margin: 0 0 18px;
}
.jp-aside-links {
    display: flex;
    flex-direction: column;
}
.jp-aside-links a {
    color: #4c5840;
    text-decoration: none;
    font-size: 13px;
    line-height: 1.7;
    padding: 14px 0;
    border-top: 1px solid #e9ede1;
}
.jp-aside-links a:hover {
    color: var(--jp-accent);
}
.jp-aside-note {
    font-size: 12px;
    color: #7c856f;
    line-height: 1.8;
}
.jp-answer-heading {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    border-bottom: 1px solid #e8ecdf;
    padding-bottom: 22px;
    margin-bottom: 27px;
}
.jp-answer-heading h2 {
    font-size: 21px;
    margin: 0;
}
.jp-answer-heading span {
    color: #838d75;
    font-size: 11px;
}
.jp-prose {
    color: #3e4737;
    font-size: 16px;
    line-height: 1.9;
    overflow-wrap: anywhere;
}
.jp-prose>:first-child {
    margin-top: 0;
}
.jp-prose p {
    margin-bottom: 1.2em;
}
.jp-prose h1,.jp-prose h2,.jp-prose h3,.jp-prose h4,.jp-prose h5 {
    color: #242e1e;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -.5px;
    margin: 1.8em 0 .8em;
}
.jp-prose h1,.jp-prose h2 {
    font-size: 27px;
}
.jp-prose h3 {
    font-size: 23px;
}
.jp-prose ul,.jp-prose ol {
    padding-left: 1.5em;
    margin-bottom: 1.4em;
}
.jp-prose li {
    margin: .5em 0;
}
.jp-prose li>p {
    margin-bottom: .5em;
}
.jp-prose strong {
    font-weight: 650;
}
.jp-prose code {
    color: #6257a7;
    background: #f0eef9;
    border-radius: 4px;
    padding: 2px 5px;
    font-size: .86em;
}
.jp-prose pre {
    background: #242a34!important;
    color: #dce8c7;
    border: 1px solid #343b45!important;
    border-radius: 11px!important;
    padding: 22px!important;
    line-height: 1.8;
    margin: 24px 0;
    overflow: auto;
    max-width: 100%;
    font-size: 12px;
}
.jp-prose pre code {
    color: inherit;
    background: none;
    padding: 0;
    display: block;
    white-space: pre;
}
.jp-prose table {
    display: block;
    overflow-x: auto;
    width: 100%;
    border-collapse: collapse;
    margin: 24px 0;
    font-size: 13px;
}
.jp-prose th,.jp-prose td {
    border: 1px solid #dfe5d6;
    padding: 13px 15px;
    min-width: 125px;
    vertical-align: top;
}
.jp-prose th {
    background: #f1f4eb;
    font-weight: 600;
}
.jp-prose td p,.jp-prose th p {
    margin: 0;
}
.jp-prose blockquote {
    border-left: 3px solid #b5c991;
    background: #f3f6ec;
    padding: 18px 24px;
    margin: 22px 0;
    color: #59664a;
}
.jp-prose img,.jp-prose video,.jp-prose iframe {
    max-width: 100%;
    height: auto;
    border-radius: 10px;
}
.jp-prose a {
    overflow-wrap: anywhere;
}
.jp-question-pager {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 24px;
}
.jp-question-pager a {
    text-decoration: none;
    color: #333e2a;
    display: block;
    padding: 23px;
    border: 1px solid var(--jp-line);
    border-radius: 12px;
    background: #fff;
    min-width: 0;
}
.jp-question-pager span {
    font-size: 10px;
    color: #7a856b;
    display: block;
    margin-bottom: 10px;
}
.jp-question-pager strong {
    display: block;
    font-size: 13px;
    font-weight: 550;
    line-height: 1.6;
}
.jp-question-pager .jp-next-question {
    text-align: right;
}
.jp-reading-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-top: 24px;
}
.jp-reading-footer>span {
    font-size: 11px;
    color: #849075;
}
.jp-footer {
    margin: 25px auto 0;
    border-top: 1px solid var(--jp-line);
    padding: 35px 0 22px;
}
.jp-footer a {
    color: #647153;
    text-decoration: none;
}
.jp-footer-main {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 30px;
    align-items: start;
}
.jp-footer-main .jp-brand {
    font-size: 24px;
    color: var(--jp-ink);
}
.jp-footer-main p {
    margin: 13px 0 0;
    font-size: 12px;
    line-height: 1.8;
    color: #7b866d;
}
.jp-footer-main nav {
    display: flex;
    flex-direction: column;
    gap: 15px;
    font-size: 12px;
    padding-top: 7px;
}
.jp-footer-bottom {
    border-top: 1px solid #e8ecdf;
    padding-top: 20px;
    margin-top: 30px;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: #7e8970;
    font-size: 10px;
}
.jp-footer-bottom>div {
    display: flex;
    flex-wrap: wrap;
    gap: 22px;
}
.jp-app .modal-content {
    border: 1px solid var(--jp-line);
    border-radius: 15px;
}
.jp-app .btn-primary {
    --bs-btn-bg: #5956d9;
    --bs-btn-border-color: #5956d9;
    --bs-btn-hover-bg: #4845bb;
    --bs-btn-hover-border-color: #4845bb;
    --bs-btn-active-bg: #4845bb;
    --bs-btn-active-border-color: #4845bb;
}
.jp-app .btn-outline-primary {
    --bs-btn-color: #5956d9;
    --bs-btn-border-color: #c8c4ee;
    --bs-btn-hover-bg: #5956d9;
    --bs-btn-hover-border-color: #5956d9;
    --bs-btn-active-bg: #5956d9;
    --bs-btn-active-border-color: #5956d9;
}
@media(max-width:1100px) {
    .jp-shell {
        width: calc(100% - 56px);
    }
    .jp-reading-layout {
        grid-template-columns: minmax(0,1fr) 235px;
        gap: 22px;
    }
    .jp-filters {
        grid-template-columns: 1fr 1fr;
    }
    .jp-filters>.jp-button {
        justify-self: start;
    }
}
@media(max-width:850px) {
    .jp-nav-inner {
        min-height: 80px;
        gap: 25px;
    }
    .jp-nav-menu.collapse {
        gap: 24px;
    }
    .jp-nav-account {
        padding-left: 24px;
        margin-left: 0;
    }
    .jp-reading-layout {
        grid-template-columns: minmax(0,1fr);
    }
    .jp-reading-aside {
        position: static;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .jp-access-panel {
        flex-wrap: wrap;
    }
    .jp-access-panel .jp-button {
        margin-left: 0;
    }
}
@media(max-width:650px) {
    .jp-shell {
        width: calc(100% - 40px);
    }
    .jp-nav-inner {
        min-height: 74px;
        flex-wrap: wrap;
        gap: 0;
    }
    .jp-brand {
        font-size: 25px;
    }
    .jp-brand-mark {
        width: 33px;
        height: 33px;
        border-radius: 9px;
        font-size: 25px;
    }
    .jp-menu-toggle {
        display: block;
    }
    .jp-nav-menu.collapse:not(.show) {
        display: none;
    }
    .jp-nav-menu.collapse.show,.jp-nav-menu.collapsing {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        width: 100%;
        flex-basis: 100%;
        font-size: 15px;
        padding: 15px 0 20px;
    }
    .jp-nav-menu>a {
        padding: 12px 0;
        border-bottom: 1px solid #e6e9e0;
    }
    .jp-nav-menu>a[aria-current="page"]::after {
        display: none;
    }
    .jp-nav-account {
        padding: 10px 0 0;
        border-left: 0;
    }
    .jp-account-link {
        font-size: 14px;
    }
    .jp-page {
        padding-top: 28px;
        padding-bottom: 42px;
    }
    .jp-page h1 {
        font-size: 34px;
        letter-spacing: -1.3px;
    }
    .jp-page-title>p {
        font-size: 13px;
    }
    .jp-breadcrumb {
        font-size: 11px;
        margin-bottom: 25px;
    }
    .jp-panel {
        padding: 21px;
        border-radius: 12px;
    }
    .jp-filters {
        grid-template-columns: 1fr;
    }
    .jp-filters>.jp-button {
        width: 100%;
    }
    .jp-chip {
        padding: 9px 11px;
        font-size: 11px;
    }
    .jp-catalog-item {
        padding: 21px;
        gap: 15px;
    }
    .jp-catalog-item h2,.jp-catalog-item h3 {
        font-size: 16px;
    }
    .jp-result-heading {
        align-items: flex-start;
        gap: 12px;
    }
    .jp-result-heading h2 {
        font-size: 18px;
    }
    .jp-result-heading>span {
        font-size: 10px;
        text-align: right;
    }
    .jp-access-panel {
        padding: 22px;
    }
    .jp-access-panel>i {
        display: none;
    }
    .jp-access-panel .jp-button {
        width: 100%;
    }
    .jp-reading-aside {
        grid-template-columns: 1fr;
    }
    .jp-prose {
        font-size: 15px;
        line-height: 1.85;
    }
    .jp-prose pre {
        padding: 17px!important;
        font-size: 11px;
    }
    .jp-prose h2 {
        font-size: 24px;
    }
    .jp-question-pager {
        gap: 10px;
    }
    .jp-question-pager a {
        padding: 18px;
    }
    .jp-question-pager strong {
        font-size: 12px;
    }
    .jp-reading-footer>span {
        display: none;
    }
    .jp-footer-main {
        grid-template-columns: 1fr 1fr;
        gap: 25px;
    }
    .jp-footer-main>div {
        grid-column: 1/-1;
    }
    .jp-footer-main nav {
        font-size: 12px;
    }
    .jp-footer-bottom {
        flex-direction: column;
        gap: 14px;
    }
    .jp-footer-bottom>div {
        gap: 13px;
    }
    .jp-badge {
        font-size: 10px;
    }
}
@media(prefers-reduced-motion:reduce) {
    .jp-app * {
        scroll-behavior: auto!important;
        animation: none!important;
        transition: none!important;
    }
}
/* Salary statistics: the data contract and calculations live in the existing controller. */
.jp-salary-filters {
    display: grid;
    grid-template-columns: 1.15fr .85fr 1fr;
    gap: 24px;
    align-items: center;
}
.jp-updated {
    justify-self: end;
    display: flex;
    flex-direction: column;
    gap: 9px;
    text-align: right;
}
.jp-updated>span {
    color: #839075;
    font-size: 11px;
}
.jp-updated strong {
    font-size: 12px;
    color: #5e6c4e;
    font-weight: 500;
}
.jp-salary-layout {
    display: grid;
    grid-template-columns: 230px minmax(0,1fr);
    gap: 22px;
    align-items: start;
    margin-top: 25px;
}
.jp-salary-level-panel {
    padding: 22px 15px;
}
.jp-salary-level-panel>.jp-filter-caption {
    padding-left: 10px;
    font-size: 9px;
    letter-spacing: 1px;
}
.jp-levels-list {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.jp-level-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid transparent;
    background: transparent;
    border-radius: 8px;
    padding: 12px 14px;
    color: #687657;
    text-align: left;
    font-size: 13px;
}
.jp-level-button>span:last-child {
    font-size: 11px;
    color: #7f8d6f;
}
.jp-level-button:hover {
    background: #f5f7f0;
}
.jp-level-button.active {
    background: #efedfb;
    color: #5956c8;
    border-color: #e2def7;
}
.jp-salary-overview .jp-panel-heading h2 {
    font-size: 21px;
    margin-top: 13px;
}
.jp-median-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 22px;
    padding: 14px 0 30px;
}
.jp-median {
    font-size: clamp(39px,4.6vw,64px);
    line-height: 1.1;
    letter-spacing: -2.5px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.jp-salary-context {
    font-size: 11px;
    color: #7b886b;
    margin-top: 12px;
}
.jp-sample-pill {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-left: 1px solid #e1e7d8;
    padding-left: 27px;
}
.jp-sample-pill>span:first-child {
    font-size: 29px;
    font-weight: 550;
    color: #505e42;
}
.jp-sample-pill>span:last-child {
    color: #7c886e;
    font-size: 11px;
}
.jp-salary-range {
    border-top: 1px solid #e9ede2;
    padding-top: 23px;
}
.jp-range-labels {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}
.jp-range-labels>div {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.jp-range-labels>div:last-child {
    text-align: right;
}
.jp-range-labels>div:nth-child(2) {
    text-align: center;
}
.jp-range-labels span {
    font-size: 10px;
    color: #869276;
}
.jp-range-labels strong {
    font-size: 13px;
    font-weight: 500;
}
.jp-salary-overview .range-wrap {
    height: 13px;
    position: relative;
    margin: 21px 3px 17px;
}
.jp-salary-overview .range-track {
    position: absolute;
    inset: 0;
    background: #eef1e8;
    border-radius: 20px;
}
.jp-salary-overview .range-fill {
    position: absolute;
    top: 0;
    bottom: 0;
    background: #d7d3f4;
    border-radius: 20px;
}
.jp-salary-overview .range-handle {
    position: absolute;
    width: 4px;
    top: -4px;
    bottom: -4px;
    background: var(--jp-accent);
    border-radius: 5px;
    transform: translateX(-50%);
}
.jp-range-caption {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
    font-size: 10px;
    color: #849173;
}
.jp-range-caption strong {
    font-weight: 500;
}
.jp-chart-heading {
    margin-top: 32px;
    margin-bottom: 17px;
    font-size: 12px;
    font-weight: 550;
    color: #617050;
}
.jp-chart-wrap {
    position: relative;
    height: 190px;
}
.jp-methodology {
    margin: 25px 0;
    padding: 20px 25px;
    background: #f0f3e9;
    border: 1px solid #dfe6d4;
    border-radius: 12px;
    color: #60714e;
}
.jp-methodology summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    font-size: 13px;
    cursor: pointer;
    list-style: none;
}
.jp-methodology summary::-webkit-details-marker {
    display: none;
}
.jp-methodology[open] summary i {
    transform: rotate(45deg);
}
.jp-methodology>div {
    padding-top: 20px;
    font-size: 12px;
    line-height: 1.85;
    max-width: 860px;
}
.jp-methodology p:last-child {
    margin-bottom: 0;
}
.jp-vacancy-table-wrap {
    overflow-x: auto;
}
.jp-vacancy-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.jp-vacancy-table th {
    font-size: 10px;
    font-weight: 500;
    color: #859376;
    padding: 13px 16px;
    border-bottom: 1px solid #e4eadb;
    text-transform: uppercase;
    letter-spacing: .6px;
}
.jp-vacancy-table td {
    padding: 21px 16px;
    border-bottom: 1px solid #e9eee1;
    color: #5b6b4b;
    vertical-align: top;
}
.jp-vacancy-table td:first-child {
    width: 45%;
    color: #26361c;
    font-weight: 500;
}
.jp-vacancy-table td:nth-child(2) {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.jp-vacancy-table td:last-child,.jp-vacancy-table th:last-child {
    text-align: right;
}
.jp-vacancy-table a {
    color: #5956d9;
    text-decoration: none;
    white-space: nowrap;
}
.jp-vacancy-table td.jp-vacancy-empty {
    font-weight: 400;
    text-align: center;
    padding: 40px 15px;
    color: #7b896b;
}
@media(max-width:850px) {
    .jp-salary-filters {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }
    .jp-updated {
        grid-column: 1/-1;
        justify-self: start;
        text-align: left;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 12px;
    }
    .jp-salary-layout {
        grid-template-columns: 1fr;
    }
    .jp-levels-list {
        flex-direction: row;
        flex-wrap: wrap;
    }
    .jp-salary-level-panel {
        padding: 18px;
    }
    .jp-salary-level-panel>.jp-filter-caption {
        padding-left: 0;
    }
    .jp-level-button {
        padding: 8px 12px;
        gap: 12px;
        font-size: 12px;
    }
}
@media(max-width:650px) {
    .jp-salary-filters {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .jp-salary-overview .jp-panel-heading {
        align-items: flex-start;
    }
    .jp-salary-overview .jp-panel-heading h2 {
        font-size: 18px;
    }
    .jp-salary-overview .jp-text-link {
        font-size: 10px;
        gap: 7px;
    }
    .jp-median {
        font-size: 44px;
        letter-spacing: -2px;
    }
    .jp-median-row {
        align-items: flex-start;
    }
    .jp-sample-pill {
        padding-left: 16px;
        gap: 5px;
    }
    .jp-sample-pill>span:first-child {
        font-size: 22px;
    }
    .jp-sample-pill>span:last-child {
        font-size: 9px;
    }
    .jp-range-labels strong {
        font-size: 11px;
    }
    .jp-range-caption>span:last-child {
        display: none;
    }
    .jp-methodology {
        padding: 19px 21px;
    }
    .jp-vacancies-section .jp-panel-heading {
        flex-direction: column;
        align-items: stretch;
    }
    .jp-vacancy-table-wrap {
        overflow: visible;
    }
    .jp-vacancy-table,.jp-vacancy-table tbody {
        display: block;
    }
    .jp-vacancy-table thead {
        display: none;
    }
    .jp-vacancy-table tr {
        display: block;
        padding: 19px 0;
        border-top: 1px solid #e4eadb;
    }
    .jp-vacancy-table td {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 15px;
        padding: 7px 0;
        border: 0;
        font-size: 12px;
    }
    .jp-vacancy-table td:first-child {
        width: auto;
        display: block;
        font-size: 15px;
        line-height: 1.6;
        padding: 0 0 12px;
    }
    .jp-vacancy-table td:not(:first-child)::before {
        content: attr(data-label);
        color: #829171;
        font-size: 11px;
        flex-shrink: 0;
    }
    .jp-vacancy-table td:last-child {
        text-align: left;
    }
    .jp-vacancy-table td.jp-vacancy-empty {
        display: block;
        padding: 15px 0;
        font-size: 13px;
    }
    .jp-vacancy-table td.jp-vacancy-empty::before {
        display: none;
    }
}
/* Editorial surfaces reuse the same reading and navigation components as questions. */
.jp-blog-categories {
    margin-bottom: 30px;
}
.jp-blog-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 24px;
}
.jp-blog-card {
    border: 1px solid var(--jp-line);
    border-radius: 15px;
    overflow: hidden;
    background: #fff;
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.jp-blog-cover {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 1.65;
    background: #edf2e5;
    color: #a2b38a;
    overflow: hidden;
    text-decoration: none;
}
.jp-blog-cover>i {
    font-size: 54px;
    transform: rotate(-6deg);
}
.jp-blog-cover img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s;
}
.jp-blog-card:hover .jp-blog-cover img {
    transform: scale(1.025);
}
.jp-blog-time {
    position: absolute;
    bottom: 15px;
    right: 15px;
    padding: 5px 9px;
    color: #5e6d4d;
    background: #fffffff0;
    border-radius: 5px;
    font-size: 10px;
    display: flex;
    gap: 6px;
    align-items: center;
}
.jp-blog-card-content {
    padding: 25px;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.jp-blog-category {
    font-size: 10px;
    color: #7f8d6d;
    margin-bottom: 15px;
}
.jp-blog-card h2 {
    font-size: 19px;
    font-weight: 550;
    line-height: 1.5;
    letter-spacing: -.6px;
    margin: 0 0 14px;
}
.jp-blog-card h2>a {
    color: var(--jp-ink);
    text-decoration: none;
}
.jp-blog-card h2>a:hover {
    color: var(--jp-accent);
}
.jp-blog-card-content>p {
    color: #7a876b;
    font-size: 12px;
    line-height: 1.85;
    margin: 0 0 24px;
}
.jp-blog-card-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-top: auto;
    color: #7c8c6a;
    font-size: 10px;
}
.jp-blog-card-bottom>a {
    display: grid;
    place-items: center;
    background: #f1f4eb;
    color: #647650;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    font-size: 15px;
}
.jp-blog-empty {
    grid-column: 1/-1;
}
.jp-article-heading {
    max-width: 960px;
    margin-bottom: 34px;
}
.jp-article-heading h1 {
    font-size: clamp(31px,3.25vw,46px);
    line-height: 1.22;
}
.jp-article-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    color: #7a8969;
    font-size: 12px;
}
.jp-article-meta>span {
    display: flex;
    align-items: center;
    gap: 8px;
}
.jp-article-content {
    padding: 32px;
}
.jp-article-image {
    width: 100%;
    max-height: 450px;
    object-fit: cover;
    border-radius: 10px;
    margin-bottom: 32px;
}
.jp-related-articles {
    margin-top: 38px;
}
.jp-related-articles>h2 {
    font-size: 23px;
    margin-bottom: 20px;
}
.jp-learning-cta {
    background: #f0f4e7;
}
.jp-learning-cta>i {
    display: block;
    font-size: 29px;
    color: #839d65;
    margin-bottom: 18px;
}
.jp-copy-toast {
    position: fixed;
    bottom: 25px;
    left: 50%;
    transform: translateX(-50%);
    max-width: calc(100% - 40px);
    width: max-content;
    border-radius: 9px;
    padding: 14px 20px;
    background: #293123;
    color: #fff;
    font-size: 12px;
    box-shadow: 0 8px 25px #26321b20;
    z-index: 1100;
}
@media(max-width:1000px) {
    .jp-blog-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}
@media(max-width:650px) {
    .jp-blog-grid {
        grid-template-columns: 1fr;
        gap: 21px;
    }
    .jp-blog-card-content {
        padding: 23px;
    }
    .jp-blog-card h2 {
        font-size: 19px;
    }
    .jp-blog-card-content>p {
        font-size: 13px;
    }
    .jp-article-heading h1 {
        font-size: 32px;
        letter-spacing: -1px;
    }
    .jp-article-meta {
        gap: 13px;
        font-size: 11px;
    }
    .jp-article-content {
        padding: 22px;
    }
    .jp-article-image {
        margin-bottom: 23px;
    }
    .jp-blog-cover {
        aspect-ratio: 1.8;
    }
}
/* Private workspace: visual integration only; forms, routes and actions are unchanged. */
.jp-dashboard-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 28px 0 24px;
}
.jp-dashboard-grid {
    display: grid;
    grid-template-columns: 220px minmax(0,1fr);
    gap: 32px;
    align-items: start;
    padding-bottom: 45px;
}
.jp-dashboard-sidebar {
    position: sticky;
    top: 24px;
}
.jp-account-sidebar {
    border: 1px solid var(--jp-line);
    border-radius: 14px;
    padding: 21px 15px;
    background: #fff;
}
.jp-sidebar-caption {
    color: #849274;
    font-size: 9px;
    letter-spacing: 1px;
    display: block;
}
.jp-sidebar-links {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 20px 0 25px;
}
.jp-sidebar-links>a {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: #687958;
    font-size: 12px;
    padding: 12px;
    border: 1px solid transparent;
    border-radius: 7px;
}
.jp-sidebar-links>a i {
    font-size: 16px;
}
.jp-sidebar-links>a.active {
    color: #5956c8;
    background: #efedfb;
    border-color: #e5e1f8;
}
.jp-sidebar-links>a:hover {
    background: #f4f6ef;
}
.jp-sidebar-limit {
    background: #f3f6ed;
    border: 1px solid #e5ebdb;
    border-radius: 8px;
    padding: 16px 12px;
    margin-bottom: 19px;
}
.jp-sidebar-limit>strong {
    display: block;
    font-size: 21px;
    margin-top: 12px;
    color: #53653f;
    font-weight: 550;
}
.jp-sidebar-limit>strong>span:last-child {
    font-size: 12px;
    font-weight: 400;
}
.jp-sidebar-limit>p {
    color: #8c8770;
    font-size: 9px;
    margin: 8px 0 0;
}
.jp-sidebar-user {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 9px;
    padding: 0;
    border: 0;
    background: none;
    color: #475737;
    text-align: left;
    font-size: 12px;
}
.jp-sidebar-user>span:nth-child(2) {
    overflow-wrap: anywhere;
}
.jp-user-avatar {
    width: 29px;
    height: 29px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    background: #eaf0df;
    color: #71855a;
    border-radius: 8px;
}
.jp-sidebar-account .dropdown-menu {
    border: 1px solid var(--jp-line);
    border-radius: 9px;
    font-size: 12px;
}
.jp-dashboard-content {
    min-width: 0;
}
.jp-dashboard-content .card {
    border: 1px solid var(--jp-line)!important;
    border-radius: 14px!important;
    background: #fff;
    box-shadow: none!important;
}
.jp-dashboard-content .list-group-item {
    border: 1px solid var(--jp-line);
    padding: 21px;
    box-shadow: none!important;
}
.jp-dashboard-content .shadow,.jp-dashboard-content .shadow-sm {
    box-shadow: none!important;
}
.jp-dashboard-content h1 {
    font-size: 34px;
    font-weight: 600;
    letter-spacing: -1px;
    margin-bottom: 25px;
    overflow-wrap: anywhere;
}
.jp-dashboard-content h3 {
    font-size: 20px;
    font-weight: 550;
    letter-spacing: -.4px;
}
.jp-dashboard-content .btn {
    font-size: 12px;
    border-radius: 8px;
    padding: 10px 14px;
}
.jp-dashboard-content .badge {
    white-space: normal;
}
.jp-dashboard-content .text-primary {
    color: var(--jp-accent)!important;
}
.jp-dashboard-content .bg-light {
    background: #f1f4ea!important;
}
.jp-dashboard-content .text-muted {
    color: #78866a!important;
}
.jp-dashboard-content .form-label {
    font-size: 13px;
    font-weight: 500;
    color: #5e6f4e;
}
.jp-dashboard-content .form-check-label {
    font-size: 13px;
}
.jp-dashboard-content .table-responsive {
    max-width: 100%;
}
.jp-availability-note {
    display: flex;
    gap: 13px;
    padding: 19px 22px;
    border: 1px solid #e5e1cd;
    border-radius: 11px;
    background: #f6f4ea;
    color: #786c49;
    margin-bottom: 30px;
}
.jp-availability-note>i {
    font-size: 19px;
    margin-top: 1px;
}
.jp-availability-note strong {
    font-weight: 600;
    font-size: 13px;
}
.jp-availability-note p {
    font-size: 11px;
    line-height: 1.85;
    margin: 6px 0 8px;
}
.jp-availability-note a {
    color: #706641;
    font-size: 11px;
    text-decoration: none;
    margin-right: 18px;
}
.jp-dashboard .jp-page-title h1 {
    font-size: 36px;
}
.jp-dashboard .jp-page-title>p {
    font-size: 13px;
}
.jp-dashboard-metric {
    padding: 22px;
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.jp-dashboard-metric>span {
    font-size: 11px;
    color: #738462;
}
.jp-dashboard-metric>strong {
    font-size: 32px;
    font-weight: 500;
}
.jp-dashboard-metric>small {
    color: #8a967c;
    font-size: 10px;
}
.jp-dashboard-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
    justify-content: flex-end;
}
.jp-dashboard .jp-chip:disabled {
    color: #8c957f;
    background: #f3f5ee;
    cursor: not-allowed;
}
.jp-help-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.jp-help-list summary {
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    color: #435634;
}
.jp-help-list .jp-prose {
    font-size: 14px;
    padding-top: 20px;
}
.jp-help-list .jp-prose p:last-child {
    margin-bottom: 0;
}
@media(max-width:991px) {
    .jp-dashboard-grid {
        display: block;
    }
    .jp-dashboard-toolbar {
        padding-top: 22px;
    }
    .jp-dashboard .offcanvas {
        background: var(--jp-paper);
        max-width: 90%;
    }
    .jp-dashboard .offcanvas .jp-account-sidebar {
        min-height: 70vh;
    }
    .jp-dashboard-content h1 {
        font-size: 31px;
    }
    .jp-dashboard-content .jp-page-title h1 {
        font-size: 32px;
    }
}
@media(max-width:650px) {
    .jp-dashboard-grid {
        padding-bottom: 30px;
    }
    .jp-dashboard-content .card.p-4 {
        padding: 21px!important;
    }
    .jp-availability-note {
        padding: 17px;
        gap: 10px;
    }
    .jp-availability-note p {
        font-size: 11px;
    }
    .jp-dashboard-content .btn {
        font-size: 11px;
        padding: 9px 11px;
    }
    .jp-dashboard-content h3 {
        font-size: 18px;
    }
    .jp-dashboard-content .row {
        --bs-gutter-x: 1rem;
    }
    .jp-dashboard-content .card-body {
        padding: 20px;
    }
    .jp-dashboard-metric {
        padding: 18px;
    }
    .jp-dashboard .jp-panel-heading {
        align-items: flex-start;
        flex-direction: column;
    }
    .jp-help-list summary {
        font-size: 14px;
    }
}
.jp-app {
    --bs-link-color-rgb: 89,86,217;
    --bs-link-hover-color-rgb: 70,67,182;
}
.jp-app a.jp-text-link {
    color: var(--jp-ink);
    text-decoration: none;
}
.jp-app a.jp-text-link:hover {
    color: var(--jp-accent);
}
.jp-app .jp-button-secondary,.jp-app .jp-button-quiet {
    color: var(--jp-ink);
}
.jp-app .jp-button {
    text-decoration: none;
}

.jp-archive-note {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 17px 21px;
    margin-bottom: 25px;
    border: 1px solid #e0e5d6;
    border-radius: 10px;
    background: #f1f4eb;
    color: #6c795c;
    font-size: 12px;
    line-height: 1.8;
}
.jp-archive-note p { margin: 0; }
.jp-archive-note i { margin-top: 1px; }

.jp-search-titlebar { flex-wrap: wrap; gap: 18px; }
.jp-search-titlebar > h1 { flex: 1 1 240px; min-width: 0; }
.jp-search-titlebar > div { flex-shrink: 0; }
/* The Offerno lockup is a self-contained outlined SVG, independent of installed fonts. */
.offerno-wordmark {
    display: block;
    width: 160px;
    height: auto;
}
.jp-footer .offerno-wordmark {
    width: 138px;
}
@media (max-width: 650px) {
    .offerno-wordmark { width: 145px; }
    .jp-footer .offerno-wordmark { width: 133px; }
}

.jp-nav-actions { display: flex; align-items: center; flex-shrink: 0; gap: 12px; }
.jp-account-label-short { display: none; }
@media(max-width:850px) {
    .jp-account-label-full { display: none; }
    .jp-account-label-short { display: inline; }
}
@media(max-width:650px) {
    .jp-nav-actions { margin-left: auto; }
    .jp-nav-menu { order: 3; }
    .jp-nav-actions .jp-nav-account { padding: 0; margin: 0; border: 0; }
    .jp-nav-actions .jp-account-link { gap: 8px; min-height: 44px; }
    .jp-nav-actions .jp-menu-toggle { width: 44px; height: 44px; padding: 0; }
}
