.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; }
.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; }

/* 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; }
}
