/* NIC Code Finder: page-specific styles. Reuses the tokens from /styles.css. Typographic, not boxy. */
.nic-hero{ position: relative; overflow: hidden; padding-block: var(--space-8) var(--space-6); }
.nic-hero-inner{ max-width: 860px; margin-inline: auto; text-align: center; }
.nic-hero h1{ font-size: clamp(36px, 5.6vw, 58px); font-weight: 700; letter-spacing: -0.02em; margin-bottom: var(--space-4); }
.nic-sub{ font-size: clamp(16.5px, 2vw, 19px); color: var(--ink-500); max-width: 640px; margin: 0 auto; line-height: 1.6; }

.nic-tool{ padding-top: var(--space-6); }
.nic-wrap{ max-width: 980px; margin-inline: auto; }
.nic-sr, .sr-only{ position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.nic-banner{ border-left: 3px solid var(--orange-500); background: var(--orange-50); padding: var(--space-4) var(--space-5); border-radius: 0 var(--r-sm) var(--r-sm) 0; font-size: 15px; color: var(--ink-700); margin: 0 0 var(--space-5); }
.nic-banner[hidden]{ display: none; }
.nic-banner-warn{ border-left-color: var(--orange-700); }

/* version selector */
.nic-version{ border: 0; margin: 0 0 var(--space-5); padding: 0; min-width: 0; }
.nic-version legend{ font-family: var(--font-display); font-weight: 700; font-size: 14px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-500); padding: 0; margin-bottom: var(--space-3); }
.nic-version-opts{ display: flex; flex-wrap: wrap; gap: 10px; }
.nic-vopt{ position: relative; display: inline-flex; flex-direction: column; gap: 2px; padding: 12px 20px; border: 1.5px solid var(--line); border-radius: var(--r-md); background: var(--paper); cursor: pointer; min-width: 180px; transition: border-color var(--dur-fast, .15s) var(--ease, ease), background var(--dur-fast, .15s) var(--ease, ease); }
.nic-vopt input{ position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.nic-vopt-name{ font-family: var(--font-display); font-weight: 700; font-size: 18px; color: var(--ink-900); }
.nic-vopt-sub{ font-size: 13px; color: var(--ink-500); }
.nic-vopt:has(input:checked){ border-color: var(--orange-500); background: var(--orange-50); }
.nic-vopt:has(input:focus-visible){ outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.nic-vopt.is-off{ opacity: .65; cursor: not-allowed; }
.nic-vopt.is-off input{ cursor: not-allowed; }
.nic-version-note{ font-size: 14px; color: var(--ink-700); margin: var(--space-3) 0 0; max-width: 720px; line-height: 1.6; }
.nic-version-note[hidden]{ display: none; }

/* tabs */
.nic-tabs{ display: flex; align-items: flex-end; gap: var(--space-5); border-bottom: 1px solid var(--line); margin-bottom: var(--space-5); flex-wrap: wrap; }
.nic-tab{ appearance: none; background: none; border: 0; border-bottom: 3px solid transparent; padding: 12px 2px; margin-bottom: -1px; font: inherit; font-weight: 700; font-size: 16px; color: var(--ink-500); cursor: pointer; min-height: 44px; }
.nic-tab[aria-selected="true"]{ color: var(--ink-900); border-bottom-color: var(--orange-500); }
.nic-tab:focus-visible, .nic-btn:focus-visible, .nic-link-btn:focus-visible, .nic-node-btn:focus-visible, .nic-input:focus-visible, .nic-link:focus-visible, .nic-ws-jump:focus-visible{ outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.nic-ws-jump{ margin-left: auto; font-weight: 700; font-size: 14.5px; color: var(--orange-900); text-decoration: none; padding: 12px 0; display: inline-flex; gap: 8px; align-items: center; }
.nic-ws-jump:hover{ text-decoration: underline; }
.nic-count{ display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px; padding: 0 7px; border-radius: 999px; background: var(--orange-50); color: var(--orange-900); font-size: 13px; font-weight: 800; }

/* search form */
.nic-form{ margin-bottom: var(--space-4); }
.nic-label{ display: block; font-family: var(--font-display); font-weight: 700; font-size: clamp(18px, 2.4vw, 22px); color: var(--ink-900); margin-bottom: var(--space-3); }
.nic-field{ position: relative; display: flex; align-items: center; gap: 12px; background: var(--paper); border: 1.5px solid var(--line); border-radius: var(--r-xl, 28px); padding: 8px 8px 8px 22px; box-shadow: var(--shadow-md); transition: border-color .15s ease, box-shadow .15s ease; }
.nic-field:focus-within{ border-color: var(--orange-400); box-shadow: 0 0 0 5px var(--orange-50), var(--shadow-md); }
.nic-field > svg{ color: var(--ink-300); flex-shrink: 0; }
.nic-input{ flex: 1; min-width: 0; border: none; outline: none; background: transparent; font: inherit; font-size: clamp(16px, 2vw, 19px); color: var(--ink-900); padding: 12px 0; }
.nic-input:focus-visible{ outline: none; }
.nic-input::placeholder{ color: var(--ink-500); opacity: .75; }
.nic-input:disabled{ cursor: not-allowed; }
.nic-submit{ padding: 14px 28px; border-radius: 999px; }
.nic-help{ font-size: 13.5px; color: var(--ink-500); margin: var(--space-3) 0 0; line-height: 1.55; }
.nic-suggest{ position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 6px); margin: 0; padding: 6px; list-style: none; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--shadow-lg, 0 18px 40px rgba(20,18,15,.14)); max-height: 340px; overflow-y: auto; }
.nic-suggest[hidden]{ display: none; }
.nic-suggest li{ display: flex; gap: 12px; align-items: baseline; padding: 10px 12px; border-radius: var(--r-sm); cursor: pointer; font-size: 15px; }
.nic-suggest li[aria-selected="true"], .nic-suggest li:hover{ background: var(--orange-50); }
.nic-sg-t{ color: var(--ink-700); min-width: 0; }

.nic-code{ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; font-variant-numeric: tabular-nums; font-weight: 700; letter-spacing: 0.02em; color: var(--orange-900); flex-shrink: 0; }
.nic-mono{ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; font-weight: 600; }

/* filters */
.nic-filters{ display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-4); margin-top: var(--space-5); }
.nic-filter{ display: flex; flex-direction: column; gap: 6px; min-width: 0; flex: 1 1 240px; }
.nic-filter label{ font-size: 13px; font-weight: 700; color: var(--ink-500); letter-spacing: 0.04em; text-transform: uppercase; }
.nic-filter select{ width: 100%; min-height: 46px; padding: 10px 14px; border: 1.5px solid var(--line); border-radius: var(--r-sm); background: var(--paper); font: inherit; font-size: 15px; color: var(--ink-900); text-overflow: ellipsis; }
.nic-filter select:focus-visible{ outline: 3px solid var(--focus-ring); outline-offset: 1px; }
.nic-check{ display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; color: var(--ink-700); cursor: pointer; min-height: 44px; }
.nic-check input{ width: 18px; height: 18px; accent-color: var(--orange-600); }
.nic-link-btn{ appearance: none; background: none; border: 0; padding: 8px 2px; font: inherit; font-size: 14.5px; font-weight: 700; color: var(--orange-900); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; min-height: 40px; }
.nic-link-btn:hover{ color: var(--orange-900); }
.nic-link{ font-weight: 700; color: var(--orange-900); }

.nic-popular{ display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin-top: var(--space-5); }
.nic-popular[hidden]{ display: none; }
.nic-popular-label{ font-size: 13px; font-weight: 700; color: var(--ink-500); letter-spacing: 0.04em; text-transform: uppercase; }
.nic-chips{ display: flex; flex-wrap: wrap; gap: 8px; }
.nic-chip{ cursor: pointer; font: inherit; min-height: 40px; }

/* results */
.nic-status{ margin-top: var(--space-5); font-weight: 700; color: var(--ink-900); font-size: 15.5px; min-height: 1.5em; }
.nic-messages{ margin-top: var(--space-3); display: grid; gap: 8px; }
.nic-note{ margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--ink-700); padding-left: 12px; border-left: 3px solid var(--line); }
.nic-note-amber{ border-left-color: var(--orange-500); background: var(--orange-50); padding: 10px 14px; border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.nic-results{ list-style: none; margin: var(--space-4) 0 0; padding: 0; }
.nic-result{ padding: var(--space-5) 0; border-top: 1px solid var(--line); animation: nic-in .35s var(--ease, ease); }
.nic-result:last-child{ border-bottom: 1px solid var(--line); }
@keyframes nic-in{ from{ opacity: 0; transform: translateY(6px); } to{ opacity: 1; transform: none; } }
.nic-r-head{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 6px; }
.nic-r-head .nic-code{ font-size: clamp(22px, 3vw, 28px); }
.nic-badge{ font-size: 12px; font-weight: 800; letter-spacing: 0.04em; padding: 3px 10px; border-radius: 999px; background: var(--ink-100); color: var(--ink-700); }
.nic-level{ font-size: 13px; font-weight: 700; color: var(--ink-500); }
.nic-title{ font-family: var(--font-body); font-size: clamp(16.5px, 2vw, 19px); font-weight: 700; line-height: 1.45; color: var(--ink-900); margin: 0 0 6px; }
.nic-title mark{ background: rgba(255,122,0,.18); color: inherit; border-radius: 3px; padding: 0 2px; }
.nic-path{ font-size: 13.5px; color: var(--ink-500); margin: 0 0 4px; line-height: 1.5; }
.nic-why{ font-size: 13.5px; color: var(--ink-700); margin: 0 0 4px; font-style: italic; }
.nic-actions{ display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.nic-btn{ appearance: none; border: 1.5px solid var(--line); background: var(--paper); color: var(--ink-900); border-radius: 999px; padding: 8px 16px; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; min-height: 40px; transition: border-color .15s ease, background .15s ease; }
.nic-btn:hover{ border-color: var(--orange-400); }
.nic-btn.is-on{ background: var(--orange-50); border-color: var(--orange-500); color: var(--orange-900); }
.nic-btn.is-done{ border-color: #15803D; color: #15803D; }
.nic-details{ margin-top: var(--space-4); padding: var(--space-4) var(--space-5); background: var(--paper-alt); border-left: 3px solid var(--orange-400); border-radius: 0 var(--r-sm) var(--r-sm) 0; font-size: 14.5px; color: var(--ink-700); }
.nic-details[hidden]{ display: none; }
.nic-details h4{ font-size: 12.5px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-500); margin: var(--space-4) 0 var(--space-2); }
.nic-hier{ width: 100%; border-collapse: collapse; font-size: 14px; }
.nic-hier th, .nic-hier td{ text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.nic-hier thead th{ font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-500); }
.nic-hier tbody th{ font-weight: 700; color: var(--ink-900); white-space: nowrap; }
.nic-list{ margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.nic-rel{ font-weight: 700; margin: 0 0 6px; }
.nic-rel.is-warn{ color: var(--orange-900); }
.nic-partial-head{ list-style: none; padding: var(--space-5) 0 var(--space-2); font-size: 13px; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink-500); border-top: 1px solid var(--line); }
.nic-more-wrap{ margin-top: var(--space-5); text-align: center; }
.nic-more-wrap [hidden]{ display: none; }
.nic-empty{ margin-top: var(--space-5); padding: var(--space-5) 0; border-top: 1px solid var(--line); }
.nic-empty[hidden]{ display: none; }
.nic-empty h3{ font-size: 20px; margin: 0 0 var(--space-2); }
.nic-empty p{ color: var(--ink-700); max-width: 640px; line-height: 1.6; margin: 0 0 var(--space-3); }
.nic-empty-acts{ display: flex; flex-wrap: wrap; gap: 6px 22px; align-items: center; }
.nic-fine{ margin-top: var(--space-6); font-size: 13.5px; color: var(--ink-500); }

/* browse */
.nic-tree{ list-style: none; margin: var(--space-4) 0 0; padding: 0; }
.nic-tree-sub{ margin: 0 0 0 18px; padding-left: 14px; border-left: 1px solid var(--line); }
.nic-tree-sub[hidden]{ display: none; }
.nic-node-row{ display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); }
.nic-node-btn{ flex: 1; display: flex; align-items: center; gap: 12px; appearance: none; background: none; border: 0; padding: 12px 6px; text-align: left; font: inherit; font-size: 15px; color: var(--ink-900); cursor: pointer; min-height: 48px; min-width: 0; }
.nic-node-btn:hover{ background: var(--paper-alt); }
.nic-chev{ width: 9px; height: 9px; border-right: 2px solid var(--ink-500); border-bottom: 2px solid var(--ink-500); transform: rotate(-45deg); transition: transform .15s ease; flex-shrink: 0; }
.nic-node-btn[aria-expanded="true"] .nic-chev{ transform: rotate(45deg); }
.nic-node-title{ font-weight: 600; min-width: 0; }
.nic-node-count{ margin-left: auto; font-size: 12.5px; color: var(--ink-500); white-space: nowrap; padding-left: 8px; }
.nic-node-leaf{ flex: 1; display: flex; gap: 12px; align-items: baseline; padding: 12px 6px 12px 28px; font-size: 15px; min-width: 0; }
.nic-node-acts{ display: inline-flex; gap: 6px; flex-shrink: 0; padding-right: 4px; }
.nic-node-acts .nic-btn{ padding: 5px 12px; min-height: 36px; font-size: 13px; }

/* workspace */
.nic-ws{ scroll-margin-top: 80px; }
.nic-privacy{ font-size: 14.5px; color: var(--ink-700); max-width: 760px; line-height: 1.6; border-left: 3px solid var(--orange-500); padding-left: 14px; margin: var(--space-4) 0 0; }
.nic-ws-grid{ display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-7); margin-top: var(--space-6); align-items: start; }
.nic-ws-label{ display: block; font-weight: 700; font-size: 14.5px; color: var(--ink-900); margin-bottom: 8px; }
.nic-ws textarea, .nic-ws input[type=text]{ width: 100%; border: 1.5px solid var(--line); border-radius: var(--r-sm); background: var(--paper); font: inherit; font-size: 15px; padding: 12px 14px; color: var(--ink-900); resize: vertical; }
.nic-ws textarea:focus-visible, .nic-ws input[type=text]:focus-visible{ outline: 3px solid var(--focus-ring); outline-offset: 1px; }
.nic-warn{ margin: 8px 0 0; font-size: 13.5px; color: var(--orange-900); background: var(--orange-50); padding: 8px 12px; border-radius: var(--r-sm); }
.nic-warn[hidden]{ display: none; }
.nic-ws-h{ font-size: 18px; margin: var(--space-6) 0 var(--space-3); display: flex; align-items: center; gap: 10px; }
.nic-shortlist{ list-style: none; margin: var(--space-3) 0 0; padding: 0; }
.nic-sl{ padding: var(--space-4) 0; border-top: 1px solid var(--line); }
.nic-sl:last-child{ border-bottom: 1px solid var(--line); }
.nic-sl-main{ display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; }
.nic-sl-title{ flex-basis: 100%; font-weight: 600; font-size: 15px; color: var(--ink-900); line-height: 1.45; }
.nic-sl-ctl{ display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin-top: 10px; }
.nic-role{ min-height: 40px; padding: 6px 10px; border: 1.5px solid var(--line); border-radius: var(--r-sm); background: var(--paper); font: inherit; font-size: 14px; }
.nic-role:focus-visible{ outline: 3px solid var(--focus-ring); outline-offset: 1px; }
.nic-cmp{ min-height: 40px; font-size: 14px; }
.nic-ws-actions{ display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: var(--space-4); }
.nic-ws-actions .nic-help{ margin: 0; }
.nic-compare{ margin-top: var(--space-5); outline: none; }
.nic-compare[hidden]{ display: none; }
.nic-compare h4{ margin: 0 0 var(--space-3); font-size: 16px; }
.nic-cmp-table td, .nic-cmp-table th{ min-width: 140px; }
.nic-review{ border: 1.5px solid var(--line); border-radius: var(--r-md); padding: var(--space-4) var(--space-5); margin: var(--space-5) 0 0; min-width: 0; }
.nic-review legend{ padding: 0 8px; font-weight: 700; font-size: 14px; }
.nic-review-state{ margin: 0 0 var(--space-3); font-weight: 800; color: var(--orange-900); }
.nic-review-state.is-ok{ color: #15803D; }
.nic-review-row{ display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; }
.nic-review-row label:first-child{ font-size: 14px; font-weight: 700; }
.nic-review-row input[type=text]{ width: 110px; }
.nic-summary{ white-space: pre-wrap; word-break: break-word; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12.5px; line-height: 1.6; background: var(--paper); border: 1.5px solid var(--line); border-radius: var(--r-sm); padding: var(--space-4); max-height: 420px; overflow: auto; margin: 0; color: var(--ink-900); }
.nic-summary:focus-visible{ outline: 3px solid var(--focus-ring); outline-offset: 1px; }
.nic-print-area{ display: none; }
.nic-data-status{ margin-top: var(--space-5); }

@media (max-width: 860px){
  .nic-ws-grid{ grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
}
@media (max-width: 640px){
  .nic-field{ flex-wrap: wrap; padding: 12px 14px 14px 18px; border-radius: var(--r-lg); }
  .nic-field > svg{ display: none; }
  .nic-input{ flex-basis: 100%; padding: 8px 0 10px; }
  .nic-submit{ width: 100%; }
  .nic-vopt{ flex: 1 1 calc(50% - 10px); min-width: 0; padding: 10px 14px; }
  .nic-vopt-name{ font-size: 16px; }
  .nic-btn, .nic-link-btn{ min-height: 44px; }
  .nic-ws-jump{ margin-left: 0; width: 100%; padding-top: 0; }
  .nic-node-leaf{ flex-wrap: wrap; padding-left: 22px; }
  .nic-node-row{ flex-wrap: wrap; }
  .nic-node-acts{ width: 100%; padding: 0 0 10px 22px; }
  .nic-node-count{ display: none; }
}
@media (prefers-reduced-motion: reduce){
  .nic-result{ animation: none; }
  .nic-chev{ transition: none; }
}
@media print{
  body.nic-printing *{ visibility: hidden !important; }
  body.nic-printing .nic-print-area, body.nic-printing .nic-print-area *{ visibility: visible !important; }
  body.nic-printing .nic-print-area{ display: block !important; position: absolute; left: 0; top: 0; width: 100%; padding: 0; }
  body.nic-printing .nic-print-area h1{ font-size: 20px; margin: 0 0 12px; }
  body.nic-printing .nic-print-area pre{ white-space: pre-wrap; font-size: 11pt; line-height: 1.5; font-family: ui-monospace, Menlo, Consolas, monospace; }
}
.nic-notes{ display: grid; gap: var(--space-2); margin-top: var(--space-4); }
.nic-notes > h4:first-child{ text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--ink-900); margin: 0; }
.nic-notes p{ margin: 0; }
.nic-gap{ color: var(--ink-900); background: var(--paper-alt); border-left: 3px solid var(--orange-600); padding: var(--space-3) var(--space-4); border-radius: 0 var(--r-sm) var(--r-sm) 0; font-weight: 600; }
.nic-gap[hidden]{ display: none; }
.nic-warn{ font-size: 14px; line-height: 1.55; color: var(--ink-900); margin: var(--space-2) 0 0; padding-left: var(--space-3); border-left: 3px solid var(--orange-600); max-width: 720px; }
.nic-warn-sl{ display: block; flex-basis: 100%; }
