/**
 * mod_domaincheck styles. Colours chosen to meet WCAG AAA (7:1)
 * against the white card background. Brand teal is a darkened version
 * of the SoftForge cyan #69deff, brought down to ~25% lightness for
 * legibility on white.
 */

.mod-domaincheck {
    --mdc-text: #0d1f2d;
    --mdc-text-muted: #2c3e50;
    --mdc-accent: #075b71;
    --mdc-accent-hover: #054252;
    --mdc-border: #c4c4cf;
    --mdc-bg: #ffffff;
    --mdc-bg-alt: #f5f7fa;
    --mdc-bg-row-alt: #f9fbfc;
    --mdc-bg-available: #ebf9f0;
    --mdc-ok: #0a6e2e;
    --mdc-err: #a40e26;
    --mdc-warn: #8a4b00;
    --mdc-shadow: 0 1px 2px rgba(13, 31, 45, 0.06), 0 4px 16px rgba(13, 31, 45, 0.08);

    color: var(--mdc-text);
    background: var(--mdc-bg);
    font-family: inherit;
    line-height: 1.5;
    padding: 1.5rem;
    border: 1px solid var(--mdc-border);
    border-radius: 8px;
    box-shadow: var(--mdc-shadow);
    box-sizing: border-box;
}

.mod-domaincheck *,
.mod-domaincheck *::before,
.mod-domaincheck *::after {
    box-sizing: border-box;
}

@media (max-width: 480px) {
    .mod-domaincheck {
        padding: 1rem;
    }
}

.mod-domaincheck__form {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.mod-domaincheck__label,
.mod-domaincheck__custom-label {
    font-weight: 600;
    color: var(--mdc-text);
    font-size: 0.95rem;
}

.mod-domaincheck__input-row {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.mod-domaincheck__input,
.mod-domaincheck__custom {
    flex: 1 1 14rem;
    min-width: 0;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--mdc-border);
    border-radius: 6px;
    font: inherit;
    color: var(--mdc-text);
    background: var(--mdc-bg);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.mod-domaincheck__input:focus,
.mod-domaincheck__custom:focus {
    outline: none;
    border-color: var(--mdc-accent);
    box-shadow: 0 0 0 3px rgba(7, 91, 113, 0.18);
}

.mod-domaincheck__submit {
    padding: 0.65rem 1.5rem;
    border: 1px solid var(--mdc-accent);
    border-radius: 6px;
    background: var(--mdc-accent);
    color: #ffffff;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.mod-domaincheck__submit:hover,
.mod-domaincheck__submit:focus {
    background: var(--mdc-accent-hover);
    border-color: var(--mdc-accent-hover);
    outline: none;
}

.mod-domaincheck__submit:focus-visible {
    box-shadow: 0 0 0 3px rgba(7, 91, 113, 0.28);
}

.mod-domaincheck__submit:disabled {
    opacity: 1;
    background: #5d6470;
    border-color: #5d6470;
    cursor: not-allowed;
}

.mod-domaincheck__spinner {
    display: none;
    width: 1rem;
    height: 1rem;
    border: 2px solid rgba(255, 255, 255, 0.45);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: mod-domaincheck-spin 0.7s linear infinite;
}

.mod-domaincheck.is-busy .mod-domaincheck__spinner {
    display: inline-block;
}

@keyframes mod-domaincheck-spin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .mod-domaincheck__spinner {
        animation: none;
    }
}

.mod-domaincheck__tlds {
    border: 1px solid var(--mdc-border);
    border-radius: 6px;
    padding: 0.85rem 1rem;
    margin: 0;
    background: var(--mdc-bg-alt);
}

.mod-domaincheck__tlds legend {
    padding: 0 0.4rem;
    font-weight: 600;
    color: var(--mdc-text);
    font-size: 0.95rem;
}

.mod-domaincheck__tld-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
    gap: 0.4rem 1rem;
    margin-bottom: 0.5rem;
}

.mod-domaincheck__tld-item {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 500;
    cursor: pointer;
    color: var(--mdc-text);
}

.mod-domaincheck__tld-item input[type="checkbox"] {
    accent-color: var(--mdc-accent);
}

.mod-domaincheck__custom-label {
    margin-top: 0.5rem;
    display: block;
}

.mod-domaincheck__custom {
    margin-top: 0.35rem;
    width: 100%;
}

.mod-domaincheck__status {
    margin: 1rem 0 0.25rem;
    min-height: 1.5em;
    font-weight: 500;
    color: var(--mdc-text-muted);
}

.mod-domaincheck__status.is-ok {
    color: var(--mdc-ok);
}

.mod-domaincheck__status.is-error {
    color: var(--mdc-err);
}

.mod-domaincheck__status.is-pending {
    color: var(--mdc-accent);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.mod-domaincheck__status.is-pending::before {
    content: "";
    width: 0.85rem;
    height: 0.85rem;
    border: 2px solid rgba(7, 91, 113, 0.25);
    border-top-color: var(--mdc-accent);
    border-radius: 50%;
    animation: mod-domaincheck-spin 0.7s linear infinite;
    flex-shrink: 0;
}

@media (prefers-reduced-motion: reduce) {
    .mod-domaincheck__status.is-pending::before {
        animation: none;
    }
}

.mod-domaincheck.is-busy .mod-domaincheck__form {
    opacity: 0.85;
}

.mod-domaincheck__results-wrap {
    margin-top: 0.5rem;
    overflow-x: auto;
}

.mod-domaincheck__results {
    width: 100%;
    border-collapse: collapse;
    margin-top: 0.5rem;
    border: 1px solid var(--mdc-border);
    border-radius: 6px;
    overflow: hidden;
}

.mod-domaincheck__results-caption {
    text-align: left;
    padding: 0.5rem 0;
    font-weight: 600;
    color: var(--mdc-text);
    caption-side: top;
}

.mod-domaincheck__results th,
.mod-domaincheck__results td {
    padding: 0.7rem 0.85rem;
    text-align: left;
    border-bottom: 1px solid var(--mdc-border);
    color: var(--mdc-text);
    vertical-align: middle;
}

.mod-domaincheck__results tbody tr:last-child th,
.mod-domaincheck__results tbody tr:last-child td {
    border-bottom: 0;
}

.mod-domaincheck__results tbody tr:nth-child(even) td {
    background: var(--mdc-bg-row-alt);
}

.mod-domaincheck__results tbody tr.is-available td {
    background: var(--mdc-bg-available);
}

.mod-domaincheck__results th {
    background: var(--mdc-bg-alt);
    font-weight: 700;
    border-bottom: 1px solid var(--mdc-border);
}

.mod-domaincheck__domain {
    font-weight: 600;
    color: var(--mdc-text);
    word-break: break-all;
}

.mod-domaincheck__placeholder {
    color: var(--mdc-text-muted);
    font-style: italic;
}

.mod-domaincheck__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    font-size: 0.85em;
    font-weight: 600;
    border: 1px solid currentColor;
    background: var(--mdc-bg);
    white-space: nowrap;
}

.mod-domaincheck__badge::before {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}

.mod-domaincheck__badge--available {
    color: var(--mdc-ok);
}

.mod-domaincheck__badge--registered {
    color: var(--mdc-err);
}

.mod-domaincheck__badge--throttled,
.mod-domaincheck__badge--unknown {
    color: var(--mdc-warn);
}
