.lnss { background:#FAEEDA; border:1px solid #e6d6b9; border-radius:10px; padding:20px 22px; margin:24px 0; font-family:'Plus Jakarta Sans', sans-serif; }
.lnss__title { margin:0 0 4px 0; font-size:1.3rem; font-weight:800; color:#854F0B; }
.lnss__sub { margin:0 0 14px 0; font-size:.9rem; color:#6b5634; }
.lnss__form { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; }
.lnss__field { display:flex; flex-direction:column; flex:1 1 220px; min-width:0; }
.lnss__field--state { flex:0 1 180px; }
.lnss__label { font-size:.82rem; font-weight:600; color:#6b5634; margin-bottom:4px; }
.lnss__input, .lnss__select { padding:10px 12px; border:1px solid #c9b48b; border-radius:6px; font-size:1rem; background:#fff; font-family:inherit; }
.lnss__submit { padding:11px 18px; border:none; border-radius:6px; background:#BA7517; color:#fff; font-weight:700; cursor:pointer; font-size:1rem; font-family:inherit; }
.lnss__submit:hover { background:#854F0B; }
.lnss__submit[disabled] { opacity:.6; cursor:not-allowed; }
.lnss__result { margin-top:14px; }
.lnss__result:empty { display:none; }
/* Slow-state info notice */
.lnss__notice { background:#fff7e6; border:1px solid #e6cd9b; border-radius:6px; padding:9px 12px; margin-bottom:10px; color:#6b4f1a; font-size:.88rem; line-height:1.4; display:flex; align-items:flex-start; gap:8px; }
.lnss__notice[hidden] { display:none !important; }
.lnss__notice-icon { flex-shrink:0; margin-top:1px; }
/* Result rendering: big banner + details card + CTA callout */
.lnss-result { background:#fff; border-radius:8px; padding:16px 18px; }
.lnss-result__banner { display:flex; align-items:center; gap:12px; margin-bottom:6px; }
.lnss-result__icon { flex-shrink:0; width:32px; height:32px; }
.lnss-result__headline { font-size:1.6rem; font-weight:800; line-height:1.1; margin:0; }
.lnss-result--available .lnss-result__headline { color:#1f7a45; }
.lnss-result--taken .lnss-result__headline { color:#b3261e; }

/* 1.3.0: the other records the register returned. Deliberately quieter than the
   headline Company Details block -- this is context, not the verdict. The type
   column carries real meaning in several states: Louisiana distinguishes a live
   entity from a Trade Name and a Previous Name, and telling those apart is the
   difference between "someone owns this" and "someone used to". */
.lnss-result__matches { margin:14px 0 4px; border-top:1px solid #e6e6e6; padding-top:12px; }
.lnss-result__matches-hdr { font-weight:700; font-size:.88rem; margin-bottom:8px; color:#333; }
/* Summary styling for the collapsed matches list. The default triangle is
   replaced with our own so it reads as a control at the same weight as the
   rest of the card; list-style:none is needed for Safari, ::-webkit-details-
   marker for older WebKit. */
.lnss-result__matches > summary { cursor:pointer; list-style:none; display:flex; align-items:center; gap:8px; margin-bottom:0; }
.lnss-result__matches > summary::-webkit-details-marker { display:none; }
.lnss-result__matches > summary::after { content:'\25BE '; font-size:.8em; color:#7a6234; transition:transform .15s; }
.lnss-result__matches[open] > summary::after { transform:rotate(180deg); }
.lnss-result__matches > summary:focus-visible { outline:2px solid #BA7517; outline-offset:2px; }
.lnss-result__matches-body { margin-top:10px; }
.lnss-match { padding:8px 0; border-bottom:1px solid #f0f0f0; }
.lnss-match:last-child { border-bottom:0; }
.lnss-match__name { font-weight:600; font-size:.92rem; color:#1a1a1a; word-break:break-word; }
.lnss-match__meta { font-size:.82rem; color:#5f6368; margin-top:2px; }
.lnss-match__flag { display:inline-block; font-size:.72rem; font-weight:700; text-transform:uppercase;
                    letter-spacing:.03em; padding:1px 6px; border-radius:3px; margin-left:6px;
                    background:#eef2f7; color:#44586f; vertical-align:middle; }
.lnss-result__matches-note { font-size:.8rem; color:#777; margin-top:8px; }
.lnss-result__sub { color:#555; font-size:.95rem; margin:0 0 12px 0; line-height:1.4; }
/* Caveat under an AVAILABLE result. The backend returns similar_match and
   similar_match_count whenever it found names that do not normalise-equal
   the query; before 1.2.2 the widget dropped both and rendered a bare
   "Available!" beside a paid filing link. Muted, not alarming: the name IS
   available, the reader just deserves to know what else is on the register. */
.lnss-result__caveat { background:#fff7e6; border:1px solid #e6cd9b; border-radius:6px; padding:9px 12px; margin:0 0 12px 0; color:#6b4f1a; font-size:.87rem; line-height:1.45; }
.lnss-result__caveat strong { font-weight:700; }
.lnss-result__details { background:#f7f3ea; border-radius:6px; padding:10px 14px; margin-top:10px; }
.lnss-result__details-hdr { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:#7a6234; margin-bottom:8px; }
.lnss-result__row { display:flex; justify-content:space-between; gap:12px; padding:5px 0; border-top:1px solid #e6d6b9; font-size:.93rem; }
.lnss-result__row:first-of-type { border-top:none; }
.lnss-result__row-label { color:#6b5634; }
.lnss-result__row-val { color:#222; font-weight:600; text-align:right; }
.lnss-result__cta-box { background:#e9f6ee; border:1px solid #c8e6d3; border-radius:8px; padding:14px 16px; margin-top:14px; display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.lnss-result__cta-text { color:#1f5d36; font-weight:600; font-size:.95rem; }
.lnss-result__cta { display:inline-flex; align-items:center; gap:6px; padding:11px 22px; background:#185FA5; color:#fff !important; font-weight:700; text-decoration:none; border-radius:6px; font-size:1rem; transition:background .15s; }
.lnss-result__cta:hover { background:#0f4374; color:#fff !important; }
.lnss-result__cta-arrow { font-size:1.05rem; }
.lnss-result__try-again { background:transparent; border:1px solid #BA7517; color:#854F0B; padding:9px 18px; border-radius:6px; font-weight:700; cursor:pointer; font-family:inherit; font-size:.95rem; margin-top:12px; }
.lnss-result__try-again:hover { background:#FAEEDA; }
.lnss-result__more { font-size:.85rem; color:#777; margin-top:8px; }
.lnss-result__err { color:#a33; font-weight:600; padding:14px 16px; }
/* 1.2.5: the error message now sits inside a normal result card with a
   retry and the Start Filing box, so it drops its own padding. */
.lnss-result--error .lnss-result__err { padding:0; margin:0 0 2px 0; }
.lnss-result--error .lnss-result__retry { margin-top:10px; }
.lnss-result__err-sub { color:#555; font-size:.95rem; line-height:1.45; margin:6px 0 0 0; }
.lnss-result--error .lnss-result__cta-box { margin-top:10px; }
/* Name ideas under a TAKEN result (1.2.3). Each one runs a normal lookup
   when clicked; nothing is checked in advance. */
.lnss-result__ideas { margin-top:14px; }
.lnss-result__ideas-hdr { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:#7a6234; margin-bottom:8px; }
.lnss-result__ideas-list { display:flex; flex-wrap:wrap; gap:8px; }
.lnss-result__idea { background:#fff; border:1px solid #c9b48b; color:#5a4214; padding:7px 13px; border-radius:999px; font-weight:600; font-size:.9rem; cursor:pointer; font-family:inherit; line-height:1.2; }
.lnss-result__idea:hover { background:#FAEEDA; border-color:#BA7517; }
.lnss-result__idea:focus-visible { outline:2px solid #BA7517; outline-offset:2px; }
/* A chip we have confirmed against the register. Green AND a tick: colour
   alone would not survive a colourblind reader, and these are the only
   chips left on screen once checking succeeds. */
.lnss-result__idea.is-free { border-color:#1f7a45; color:#17623a; background:#f2fbf5; }
/* The escape needs its terminating space: '\2713' unterminated has been read
   as octal \271 plus a literal '3' on the way into this file, which shipped a
   superscript one next to a three. The trailing space inside the quotes ends
   the hex escape and is not rendered. */
.lnss-result__idea.is-free::before { content:'\2713 '; margin-right:6px; font-weight:700; color:#1f7a45; }
.lnss-result__idea.is-free:hover { background:#e4f6ea; }
/* D&B report offer on a TAKEN result. Deliberately quieter than the green
   Start Filing box: it sits below the naming affordances and serves the
   researcher, so it reads as a further option rather than the main action. */
.lnss-result__dnb { margin-top:12px; padding-top:12px; border-top:1px solid #e6d6b9; display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; }
/* The &trade; glyph sits near the baseline in this stack, so "Report™" read
   as "ReportTM" on the rendered page. An explicit <sup> is the only way to
   control where it lands. */
.lnss-tm { font-size:.62em; line-height:0; vertical-align:super; letter-spacing:.03em; }
.lnss-result__dnb-text { flex:1 1 300px; min-width:0; color:#5a4214; font-size:.9rem; line-height:1.45; }
.lnss-result__dnb-cta { flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; padding:11px 20px; background:#fff; border:1px solid #BA7517; color:#854F0B !important; font-weight:700; text-decoration:none; border-radius:6px; font-size:.95rem; }
.lnss-result__dnb-cta:hover { background:#FAEEDA; color:#6b3f08 !important; }
.lnss-result__dnb-cta:focus-visible { outline:2px solid #BA7517; outline-offset:2px; }

/* Loading state: progress bar + spinner + cycling status text */
.lnss-loading { background:#fff; border-radius:8px; padding:14px 16px; border-left:4px solid #BA7517; }
.lnss-loading__bar { height:5px; background:#f0e2c8; border-radius:3px; overflow:hidden; margin-bottom:10px; }
.lnss-loading__fill { height:100%; width:0; background:linear-gradient(90deg, #BA7517, #d89339); border-radius:3px; transition:width 6s cubic-bezier(0.15, 0.85, 0.3, 1); }
.lnss-loading--done .lnss-loading__fill { transition:width 0.25s ease-out; width:100% !important; }
.lnss-loading__msg { display:flex; align-items:center; gap:10px; color:#6b5634; font-size:.95rem; line-height:1.4; }
.lnss-loading__spinner { width:14px; height:14px; border:2px solid #e6d6b9; border-top-color:#BA7517; border-radius:50%; animation:lnss-spin 0.8s linear infinite; flex-shrink:0; }
.lnss-loading__text { transition:opacity 0.25s; }
.lnss-loading__text.is-fading { opacity:0; }
@keyframes lnss-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .lnss-loading__spinner { animation: none; }
  .lnss-loading__fill { transition: none; }
}
