:root { --ncm-ink: #0b1e32; --ncm-muted: #526172; --ncm-line: #d7e0e8; --ncm-cyan: #13d8d1; --ncm-surface: #f5f8fa; --ncm-white: #fff; }
.ncm-page { background: var(--ncm-surface); color: var(--ncm-ink); }
.ncm-hero { background: linear-gradient(125deg, #071627, #123b50); color: #fff; padding: 5.5rem 0 4.5rem; }
.ncm-hero__grid { display: grid; gap: 2.5rem; align-items: end; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .7fr); }
.ncm-hero h1 { max-width: 850px; margin: .5rem 0 1rem; font-size: clamp(2.35rem, 5vw, 4.65rem); line-height: .98; }
.ncm-hero p { max-width: 700px; font-size: 1.1rem; line-height: 1.65; color: #dce8ef; }
.ncm-hero__note { border-left: 2px solid var(--ncm-cyan); padding: .2rem 0 .2rem 1.1rem; font-size: .92rem; line-height: 1.55; color: #c8d9e4; }
.ncm-main { padding: 3.5rem 0 5rem; }
.ncm-panel { border: 1px solid var(--ncm-line); border-radius: 1rem; background: var(--ncm-white); box-shadow: 0 15px 40px rgb(19 44 65 / 8%); padding: clamp(1.25rem, 3vw, 2.5rem); }
.ncm-panel h2 { margin: 0; font-size: clamp(1.65rem, 3vw, 2.35rem); }
.ncm-panel__intro { max-width: 760px; color: var(--ncm-muted); line-height: 1.6; }
.ncm-type-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; margin: 2rem 0; }
.ncm-type { display: block; cursor: pointer; }
.ncm-type input { position: absolute; opacity: 0; }
.ncm-type span { display: block; min-height: 74px; border: 1px solid var(--ncm-line); border-radius: .75rem; padding: 1rem; font-weight: 700; line-height: 1.25; transition: .18s ease; }
.ncm-type input:checked + span { border-color: #0c7e88; background: #e9fbfb; box-shadow: inset 0 0 0 1px #0c7e88; color: #075961; }
.ncm-type input:focus-visible + span { outline: 3px solid #0b1e32; outline-offset: 3px; }
.ncm-field label { display: block; margin-bottom: .55rem; font-weight: 700; }
.ncm-field__row { display: flex; gap: .8rem; }
.ncm-field input { min-width: 0; flex: 1; min-height: 3.2rem; border: 1px solid #aab9c6; border-radius: .55rem; padding: .75rem 1rem; color: var(--ncm-ink); font: inherit; }
.ncm-field input:focus { outline: 3px solid rgb(19 216 209 / 35%); border-color: #0c7e88; }
.ncm-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; }
.ncm-submit:hover { background: #123b50; }
.ncm-submit:disabled { cursor: wait; opacity: .7; }
.ncm-help { margin: .65rem 0 0; color: var(--ncm-muted); font-size: .9rem; }
.ncm-feedback { margin-top: 1.1rem; border-radius: .55rem; padding: .85rem 1rem; line-height: 1.45; }
.ncm-feedback[data-kind="error"] { background: #fff0f0; border: 1px solid #efb8b8; color: #8d1d1d; }
.ncm-results { margin-top: 2rem; }
.ncm-results__summary { color: var(--ncm-muted); margin: .45rem 0 1.15rem; }
.ncm-table-scroll { overflow-x: auto; border: 1px solid var(--ncm-line); border-radius: .75rem; background: #fff; }
.ncm-table-scroll:focus-visible { outline: 3px solid rgb(19 216 209 / 45%); outline-offset: 3px; }
.ncm-results-table { width: 100%; min-width: 1180px; border-collapse: collapse; font-size: .88rem; }
.ncm-results-table caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.ncm-results-table th { background: #f7f9fb; color: #344456; font-size: .74rem; font-weight: 800; letter-spacing: .02em; text-align: left; white-space: nowrap; }
.ncm-results-table th, .ncm-results-table td { border-bottom: 1px solid var(--ncm-line); padding: .85rem .9rem; vertical-align: top; }
.ncm-results-table th:not(:last-child), .ncm-results-table td:not(:last-child) { border-right: 1px solid var(--ncm-line); }
.ncm-results-table tbody tr:last-child td { border-bottom: 0; }
.ncm-results-table tbody tr:hover { background: #fbfdfe; }
.ncm-table__code { color: #162f49; font-variant-numeric: tabular-nums; font-weight: 700; white-space: nowrap; }
.ncm-table__description { min-width: 250px; line-height: 1.45; }
.ncm-table__reduction { color: #075961; font-size: .8rem; font-weight: 800; line-height: 1.5; min-width: 140px; }
.ncm-table__status { font-weight: 700; white-space: nowrap; }
.ncm-hierarchy { display: grid; gap: .35rem; margin: 0; min-width: 300px; padding-left: 1.1rem; color: #45596c; line-height: 1.4; }
.ncm-hierarchy__leaf { color: #0b1e32; }
.ncm-hierarchy strong { color: inherit; font-variant-numeric: tabular-nums; }
.ncm-disclaimer { margin-top: 1.5rem; color: var(--ncm-muted); font-size: .85rem; line-height: 1.55; }
.ncm-footer { background: #071627; color: #c8d9e4; padding: 1.5rem 0; font-size: .9rem; }
.ncm-footer__inner { display: flex; justify-content: space-between; gap: 1rem; }
@media (max-width: 720px) { .ncm-hero { padding: 4rem 0 3.25rem; } .ncm-hero__grid, .ncm-type-grid { grid-template-columns: 1fr; } .ncm-field__row { flex-direction: column; } .ncm-footer__inner { flex-direction: column; } }
