/*
 * catalog/static/catalog/css/name_check.css
 * Hover/focus effects externalised from templates/catalog/services/name_check_chat_enabled.html
 * (CSP migration — onmouseover/onmouseout/onfocus/onblur replaced with :hover/:focus classes).
 */

/* Chat input textarea. The resting border colour was declared inline via the `border`
   shorthand (specificity trap) — moved here so the :focus rule can override it. */
.chat-input-textarea-name-check {
    border: 2px solid #e5e7eb;
}
.chat-input-textarea-name-check:focus {
    border-color: #311b92;
}

/* Chat send button. The resting background was declared inline (specificity trap) — moved
   here so the :hover rule can override it. */
.nc-send-btn {
    background: #FFB300;
    transform: translateY(0);
}
.nc-send-btn:hover {
    background-color: #ffc233;
    transform: translateY(-1px);
}

/* Simple lift buttons/links — transform only, no resting-value collision. */
.nc-lift-sm {
    transform: translateY(0);
}
.nc-lift-sm:hover {
    transform: translateY(-2px);
}

/* Guidance library links — lift + shadow, no resting-value collision. */
.nc-lift-sm-bs {
    transform: translateY(0);
    box-shadow: none;
}
.nc-lift-sm-bs:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 14px rgba(49, 27, 146, 0.3);
}

/* Outline button whose hover only tints the (unset) background. */
.nc-lift-bg {
    background: transparent;
}
.nc-lift-bg:hover {
    background: rgba(49, 27, 146, 0.08);
}

/* Package cards. The resting box-shadow was declared inline (specificity trap) — moved
   here so the :hover rule can override it. */
.nc-card-lift {
    transform: translateY(0);
    box-shadow: 0 8px 32px rgba(49, 27, 146, 0.2);
}
.nc-card-lift:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(49, 27, 146, 0.3);
}

/* "Complete the Setup Form" links. */
.nc-btn-glow-70:hover {
    box-shadow: 0 4px 20px rgba(76, 81, 191, 0.7);
}

/* Name check progress: what the assistant is doing, shown in the reply bubble until the
   answer starts arriving. */
.nc-stage {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: #4b5563;
}
.nc-spinner {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    border: 2px solid #d1c4e9;
    border-top-color: #311b92;
    border-radius: 50%;
    animation: nc-spin 0.8s linear infinite;
}
@keyframes nc-spin {
    to {
        transform: rotate(360deg);
    }
}
@media (prefers-reduced-motion: reduce) {
    .nc-spinner {
        animation: none;
    }
}

/* The finished answer arrives as HTML paragraphs and lists: space them as paragraphs,
   rather than keeping every line break the plain streamed text needed. */
.chatbox-name-check .chat .nc-bubble.nc-formatted {
    white-space: normal;
}
.nc-bubble.nc-formatted p,
.nc-bubble.nc-formatted ul,
.nc-bubble.nc-formatted ol {
    margin: 0 0 0.6rem;
}
.nc-bubble.nc-formatted ul,
.nc-bubble.nc-formatted ol {
    padding-left: 1.25rem;
}
.nc-bubble.nc-formatted ul {
    list-style: disc;
}
.nc-bubble.nc-formatted ol {
    list-style: decimal;
}
.nc-bubble.nc-formatted > :last-child {
    margin-bottom: 0;
}

/* Locked while a check is running, so a second name can't collide with the first. */
.chat-input-textarea-name-check:disabled,
.nc-send-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* The Contractor package's details: included services and package limitations as separate tables,
   side by side on a wide screen and stacked on a phone (ticket 93c10dd0). */
.nc-package-detail-tables {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    align-items: start;
}
@media (min-width: 768px) {
    .nc-package-detail-tables {
        grid-template-columns: 1fr 1fr;
    }
}
