:root { --nbs-ink: #0b1e32; --nbs-muted: #526172; --nbs-line: #d7e0e8; --nbs-cyan: #13d8d1; --nbs-surface: #f5f8fa; --nbs-white: #fff; --nbs-blue: #0757ce; }
.nbs-page { background: var(--nbs-surface); color: var(--nbs-ink); }
.nbs-hero { background: linear-gradient(125deg, #071627, #123b50); color: #fff; padding: 5.5rem 0 4.5rem; }
.nbs-hero__grid { display: grid; gap: 2.5rem; align-items: end; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .7fr); }
.nbs-hero h1 { max-width: 850px; margin: .5rem 0 1rem; font-size: clamp(2.35rem, 5vw, 4.65rem); line-height: .98; }
.nbs-hero p { max-width: 700px; font-size: 1.1rem; line-height: 1.65; color: #dce8ef; }
.nbs-hero__note { border-left: 2px solid var(--nbs-cyan); padding: .2rem 0 .2rem 1.1rem; font-size: .92rem; line-height: 1.55; color: #c8d9e4; }
.nbs-main { padding: 3.5rem 0 5rem; }
.nbs-panel { border: 1px solid var(--nbs-line); border-radius: 1rem; background: var(--nbs-white); box-shadow: 0 15px 40px rgb(19 44 65 / 8%); padding: clamp(1.25rem, 3vw, 2.5rem); }
.nbs-panel h2 { margin: 0; font-size: clamp(1.65rem, 3vw, 2.35rem); }
.nbs-panel__intro { max-width: 760px; color: var(--nbs-muted); line-height: 1.6; }
.nbs-type-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; margin: 2rem 0; }
.nbs-type { display: block; cursor: pointer; }
.nbs-type input { position: absolute; opacity: 0; }
.nbs-type span { display: block; min-height: 84px; border: 1px solid var(--nbs-line); border-radius: .75rem; padding: 1rem; font-weight: 700; line-height: 1.25; transition: .18s ease; }
.nbs-type input:checked + span { border-color: #0c7e88; background: #e9fbfb; box-shadow: inset 0 0 0 1px #0c7e88; color: #075961; }
.nbs-type input:focus-visible + span { outline: 3px solid #0b1e32; outline-offset: 3px; }
.nbs-field label { display: block; margin-bottom: .55rem; font-weight: 700; }
.nbs-field__row { display: flex; gap: .8rem; }
.nbs-field input { min-width: 0; flex: 1; min-height: 3.2rem; border: 1px solid #aab9c6; border-radius: .55rem; padding: .75rem 1rem; color: var(--nbs-ink); font: inherit; }
.nbs-field input:focus { outline: 3px solid rgb(19 216 209 / 35%); border-color: #0c7e88; }
.nbs-submit { min-height: 3.2rem; border: 0; border-radius: .55rem; background: #0b1e32; color: #fff; cursor: pointer; font: inherit; font-weight: 800; padding: .7rem 1.15rem; white-space: nowrap; }
.nbs-submit:hover { background: #123b50; }
.nbs-submit:disabled { cursor: wait; opacity: .7; }
.nbs-help { margin: .65rem 0 0; color: var(--nbs-muted); font-size: .9rem; }
.nbs-feedback { margin-top: 1.1rem; border-radius: .55rem; padding: .85rem 1rem; line-height: 1.45; }
.nbs-feedback[data-kind="error"] { background: #fff0f0; border: 1px solid #efb8b8; color: #8d1d1d; }
.nbs-results { margin-top: 2rem; }
.nbs-results__summary { color: var(--nbs-muted); margin: .45rem 0 1.15rem; }
.nbs-table-scroll { overflow-x: auto; border: 1px solid var(--nbs-line); border-radius: .75rem; background: #fff; }
.nbs-table-scroll:focus-visible { outline: 3px solid rgb(19 216 209 / 45%); outline-offset: 3px; }
.nbs-results-table { width: 100%; min-width: 940px; border-collapse: collapse; font-size: .9rem; }
.nbs-results-table caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.nbs-results-table th { background: #f7f9fb; color: #344456; font-size: .74rem; font-weight: 800; letter-spacing: .02em; text-align: left; white-space: nowrap; }
.nbs-results-table th, .nbs-results-table td { border-bottom: 1px solid var(--nbs-line); padding: .85rem .9rem; vertical-align: top; }
.nbs-results-table th:not(:last-child), .nbs-results-table td:not(:last-child) { border-right: 1px solid var(--nbs-line); }
.nbs-results-table tbody tr:last-child td { border-bottom: 0; }
.nbs-results-table tbody tr:hover { background: #fbfdfe; }
.nbs-table__code { color: #162f49; font-variant-numeric: tabular-nums; font-weight: 700; white-space: nowrap; }
.nbs-table__description { min-width: 240px; line-height: 1.45; }
.nbs-code { display: inline-flex; align-items: center; border: 1px solid #cbd6e0; border-radius: .38rem; background: #fff; color: #18344e; font-size: .78rem; font-weight: 700; line-height: 1; padding: .38rem .48rem; white-space: nowrap; }
.nbs-classification-cell, .nbs-cnae-cell { display: flex; flex-wrap: wrap; align-items: flex-start; gap: .35rem; min-width: 112px; }
.nbs-classification-button { cursor: pointer; font: inherit; }
.nbs-classification-button:hover { border-color: #0b7790; background: #eefbfc; }
.nbs-classification-button:focus-visible, .nbs-cnae-more:focus-visible, .nbs-modal-close:focus-visible { outline: 3px solid rgb(7 87 206 / 35%); outline-offset: 2px; }
.nbs-cnae-chip { background: #f9fbfd; }
.nbs-cnae-more { border: 0; background: transparent; color: var(--nbs-blue); cursor: pointer; font: inherit; font-size: .82rem; font-weight: 800; padding: .25rem; }
.nbs-cnae-more:hover { text-decoration: underline; }
.nbs-cnae-expanded { width: 100%; margin: .3rem 0 0; padding-left: 1rem; color: #42556a; font-size: .8rem; line-height: 1.45; }
.nbs-cnae-expanded li + li { margin-top: .25rem; }
.nbs-classification-modal { width: min(560px, calc(100vw - 2rem)); border: 0; border-radius: 1rem; box-shadow: 0 24px 64px rgb(7 26 43 / 35%); color: var(--nbs-ink); padding: 0; }
.nbs-classification-modal::backdrop { background: rgb(4 19 33 / 68%); }
.nbs-classification-modal__content { margin: 0; padding: clamp(1.25rem, 4vw, 2rem); }
.nbs-classification-modal__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.nbs-classification-modal__header .eyebrow { margin: 0 0 .35rem; color: #0b7790; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.nbs-classification-modal__header h2 { margin: 0; font-size: clamp(1.45rem, 4vw, 2rem); }
.nbs-modal-close { border: 1px solid #b7c6d2; border-radius: .45rem; background: #fff; color: #18344e; cursor: pointer; font: inherit; font-weight: 700; padding: .5rem .7rem; }
.nbs-modal-close:hover { background: #f0f6f8; }
.nbs-classification-modal__code { display: inline-flex; margin: 1.25rem 0 .7rem; border: 1px solid #9dcad4; border-radius: .4rem; background: #ecfbfc; color: #075961; font-size: .94rem; font-weight: 800; padding: .4rem .55rem; }
.nbs-classification-modal__description { margin: 0; color: #31475d; font-size: 1rem; line-height: 1.55; }
.nbs-reduction-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1.4rem 0 0; }
.nbs-reduction-grid > div { border: 1px solid #cfe0e6; border-radius: .7rem; background: #f7fbfc; padding: .85rem 1rem; }
.nbs-reduction-grid dt { color: var(--nbs-muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.nbs-reduction-grid dd { margin: .25rem 0 0; color: #075961; font-size: 1.45rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.nbs-disclaimer { margin-top: 1.5rem; color: var(--nbs-muted); font-size: .85rem; line-height: 1.55; }
.nbs-footer { background: #071627; color: #c8d9e4; padding: 1.5rem 0; font-size: .9rem; }
.nbs-footer__inner { display: flex; justify-content: space-between; gap: 1rem; }
@media (max-width: 720px) { .nbs-hero { padding: 4rem 0 3.25rem; } .nbs-hero__grid, .nbs-type-grid, .nbs-reduction-grid { grid-template-columns: 1fr; } .nbs-field__row { flex-direction: column; } .nbs-footer__inner { flex-direction: column; } }
