/*
 * Domain Checker - styles
 * Plugin Version: 10.45.0
 * Alle regler er afgrænset til .domain-checker-container (ingen globale body/* -regler).
 */

.domain-checker-container { max-width: 100%; margin: 0 0 30px; }
.domain-checker-container *, .domain-checker-container *::before, .domain-checker-container *::after { box-sizing: border-box; }

/* Formular */
.domain-checker-container .dc-form { margin-bottom: 20px; }
.domain-checker-container .dc-form > label,
.domain-checker-container .form-instruction { display: block; margin: 0 0 8px; font-weight: 500; }
.domain-checker-container .dc-input-row { display: flex; gap: 10px; align-items: stretch; }
.domain-checker-container .dc-input-row input[type="text"] { flex: 1 1 auto; margin: 0; }
.domain-checker-container input[type="text"] {
    width: 100%; padding: 10px 12px; margin: 0 0 15px; border: 1px solid #ccc; border-radius: 4px; font-size: 16px; line-height: 1.4;
}
.domain-checker-container input[type="text"]:focus { outline: 2px solid #4a6fa5; outline-offset: 1px; border-color: #4a6fa5; }
.domain-checker-container input[type="submit"] {
    background-color: #4a6fa5; color: #fff; border: none; padding: 10px 18px; border-radius: 4px; cursor: pointer; font-size: 16px; white-space: nowrap;
}
.domain-checker-container input[type="submit"]:hover { background-color: #395d8c; }
.domain-checker-container input[type="submit"]:disabled { background-color: #9db0cc; cursor: wait; }
.domain-checker-container .dc-hint { margin: 6px 0 0; font-size: 14px; color: #666; }
.dc-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Platforme */
.domain-checker-container .platforms-container { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 15px; }
.domain-checker-container .platform-column { min-width: 0; margin: 0; padding: 10px 12px; background-color: #f9f9f9; border-radius: 4px; border: 1px solid #eee; }
.domain-checker-container .platform-column legend { font-weight: bold; padding: 0 4px; }
.domain-checker-container .platform-item { display: flex; align-items: center; margin-bottom: 8px; }
.domain-checker-container .platform-item input[type="checkbox"] { margin: 0 8px 0 0; flex: 0 0 auto; }
.domain-checker-container .platform-item label { margin: 0; padding: 0; font-weight: normal; line-height: 1.3; cursor: pointer; }
.domain-checker-container .platform-note { font-size: 12px; color: #777; }

/* Spinner */
.domain-checker-container .loading-spinner {
    display: none; margin: 20px auto; width: 40px; height: 40px;
    border: 4px solid rgba(74,111,165,.3); border-radius: 50%; border-top: 4px solid #4a6fa5; animation: dc-spin 1s linear infinite;
}
.domain-checker-container .loading-spinner.visible { display: block; }
@keyframes dc-spin { to { transform: rotate(360deg); } }

/* Resultat */
.domain-checker-container .result-box {
    padding: 16px; border: 1px solid #ddd; border-left-width: 6px; background-color: #fff; margin: 10px 0 20px; border-radius: 8px; box-shadow: 0 0 10px rgba(0,0,0,.08); overflow: hidden; scroll-margin-top: 90px;
}
.domain-checker-container .dc-result-ok      { border-left-color: #2e7d32; }
.domain-checker-container .dc-result-warning { border-left-color: #ef8f00; }
.domain-checker-container .dc-result-fail    { border-left-color: #d32f2f; }

.domain-checker-container .dc-summary { margin-bottom: 14px; }
.domain-checker-container .dc-summary-head { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; margin-bottom: 10px; font-size: 17px; }
.domain-checker-container .dc-overall { font-weight: 600; margin-left: 12px; }
.domain-checker-container .dc-overall-ok      { color: #2e7d32; }
.domain-checker-container .dc-overall-warning { color: #c46f00; }
.domain-checker-container .dc-overall-fail    { color: #d32f2f; }

.domain-checker-container .dc-badges { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.domain-checker-container .dc-badge { display: flex; margin: 0; padding: 8px 10px; line-height: 1.3; margin: 0 8px 8px 0; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 6px; border: 1px solid; font-size: 14px; min-width: 0; }
.domain-checker-container .dc-badge-icon { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; color: #fff; font-weight: bold; flex: 0 0 auto; font-size: 13px; }
.domain-checker-container .dc-badge-label { font-weight: bold; margin: 0 8px; }
.domain-checker-container .dc-badge-detail { color: #555; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.domain-checker-container .dc-badge-ok      { background: #eef7ee; border-color: #bfe0c0; } .domain-checker-container .dc-badge-ok .dc-badge-icon      { background: #2e7d32; }
.domain-checker-container .dc-badge-warning { background: #fff6e5; border-color: #f5d9a8; } .domain-checker-container .dc-badge-warning .dc-badge-icon { background: #ef8f00; }
.domain-checker-container .dc-badge-fail    { background: #fdecec; border-color: #f2b8b8; } .domain-checker-container .dc-badge-fail .dc-badge-icon    { background: #d32f2f; }

.domain-checker-container .dc-section { padding: 12px 0; border-top: 1px solid #eee; }
.domain-checker-container .dc-section h3 { margin: 0 0 8px; font-size: 17px; }
.domain-checker-container .dc-section h4 { margin: 14px 0 6px; font-size: 15px; }

/* Records */
.domain-checker-container .spf-record, .domain-checker-container .dmarc-record, .domain-checker-container .dns-record, .domain-checker-container .share-url {
    display: flex; align-items: flex-start; gap: 6px; margin: 4px 0 8px;
}
.domain-checker-container .spf-record code, .domain-checker-container .dmarc-record code, .domain-checker-container .dns-record code, .domain-checker-container .share-url code {
    flex: 1 1 auto; display: block; padding: 6px 8px; background: #f4f6f9; border: 1px solid #e3e7ee; border-radius: 4px; font-size: 14px; line-height: 1.5; word-break: break-all; white-space: pre-wrap; overflow-wrap: anywhere;
}
.domain-checker-container .issue-list code, .domain-checker-container .status-ok code, .domain-checker-container .status-warning code, .domain-checker-container .status-fail code, .domain-checker-container .status-info code {
    font-size: 0.95em; background: #f4f6f9; padding: 1px 4px; border-radius: 3px;
}
.domain-checker-container .mx-line { display: inline-block; }

/* Statusmeddelelser */
.domain-checker-container .status-ok      { color: #2e7d32; font-weight: bold; margin: 6px 0; }
.domain-checker-container .status-fail    { color: #d32f2f; font-weight: bold; margin: 6px 0; }
.domain-checker-container .status-warning { color: #b96a00; font-weight: 600; margin: 6px 0; }
.domain-checker-container .status-info    { color: #444; font-weight: normal; margin: 6px 0; }
.domain-checker-container .status-warning p { margin: 0 0 8px; }
.domain-checker-container .issue-list { margin: 4px 0 8px 20px; padding: 0; }
.domain-checker-container .issue-list li { margin: 4px 0; font-weight: normal; }
.domain-checker-container .issue-list li.status-fail    { color: #b71c1c; }
.domain-checker-container .issue-list li.status-warning { color: #8a5200; }

.domain-checker-container .suggestion { padding: 10px 12px; margin-top: 10px; background: #fff8ea; border: 1px solid #f5d9a8; border-radius: 6px; font-weight: normal; color: #333; }
.domain-checker-container .suggestion-meta { display: block; font-size: 13px; color: #666; }

/* Include-træ */
.domain-checker-container .spf-tree { margin: 8px 0; font-size: 14px; }
.domain-checker-container .spf-tree summary { cursor: pointer; color: #4a6fa5; list-style: revert; display: list-item; }
.domain-checker-container .spf-tree ul { margin: 4px 0 4px 18px; padding: 0; list-style: none; }
.domain-checker-container .spf-tree li { margin: 2px 0; }
.domain-checker-container .spf-tree li::before { content: "└ "; color: #999; }
.domain-checker-container .spf-tree .tree-meta { color: #777; font-size: 13px; }
.domain-checker-container .spf-tree .tree-fail > code { color: #d32f2f; }

/* Del-link og CTA */
.domain-checker-container .dc-share { margin-top: 10px; font-size: 14px; color: #666; }
.domain-checker-container .cta-message { margin: 0 0 20px; padding: 12px 14px; border: 1px solid #f2b8b8; background-color: #fdecec; color: #333; border-radius: 6px; }
.domain-checker-container .cta-message p { margin: 0; }

/* Kopier-knap - eksplicitte værdier, så temaets knapstil ikke slår igennem */
.domain-checker-container button.copy-btn {
    -webkit-appearance: none; appearance: none; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; min-width: 0; min-height: 0; margin: 0; padding: 0; border: none; border-radius: 4px; box-shadow: none;
    background: #4a6fa5; color: #fff; line-height: 1; font-size: 0; cursor: pointer; text-transform: none; transition: none;
}
.domain-checker-container button.copy-btn:hover, .domain-checker-container button.copy-btn:focus { background: #0056b3; outline: 2px solid #9db0cc; outline-offset: 1px; }
.domain-checker-container .copy-icon { width: 18px; height: 18px; max-width: none; margin: 0; display: block; }

/* Notifikation for kopiering (uden for containeren) */
.copy-notification {
    position: fixed; bottom: 20px; right: 20px; background-color: rgba(0,0,0,.85); color: #fff; padding: 10px 15px; border-radius: 4px; z-index: 10000; max-width: 80vw; word-break: break-all; animation: dc-fade 3s ease;
}
@keyframes dc-fade { 0% { opacity: 0; transform: translateY(20px); } 15%, 85% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(20px); } }

/* Accordion i sideindholdet */
.accordion { width: 100%; max-width: 800px; margin: 20px auto; }
.accordion-item { background-color: #fff; border: 1px solid #ddd; margin-bottom: 5px; border-radius: 4px; box-shadow: 0 1px 3px rgba(0,0,0,.1); }
.accordion-header { background-color: #f7f7f7; color: #333; padding: 10px; cursor: pointer; font-weight: bold; border-radius: 4px 4px 0 0; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.accordion-header:hover, .accordion-header:focus-visible { background-color: #e7e7e7; outline: 2px solid #4a6fa5; outline-offset: -2px; }
.accordion-header::after { content: "\002B"; font-size: 20px; flex: 0 0 auto; }
.accordion-header.active::after { content: "\2212"; }
.accordion-content { display: none; padding: 10px; border-top: 1px solid #ddd; background-color: #fafafa; }
.accordion-content p { margin: 0; }

/* Responsiv */
@media (max-width: 992px) {
    .domain-checker-container .platforms-container { grid-template-columns: repeat(2, 1fr); }
    .domain-checker-container .dc-badges { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .domain-checker-container .platforms-container { grid-template-columns: 1fr; }
    .domain-checker-container .dc-input-row { flex-direction: column; }
    .domain-checker-container .dc-badges { grid-template-columns: 1fr; }
    .domain-checker-container .dc-badge-detail { white-space: normal; }
    .domain-checker-container h2 { font-size: 20px; }
}

/* 10.8.0: næste skridt, ekstra-sektion, print */
.domain-checker-container .dc-input-short { max-width: 320px; }
.domain-checker-container .dc-next-steps { background: #f4f7fb; border: 1px solid #dbe4f0; border-radius: 6px; padding: 12px 14px; margin: 4px 0 8px; }
.domain-checker-container .dc-steps { margin: 4px 0 0 20px; padding: 0; }
.domain-checker-container .dc-steps li { margin: 0 0 10px; }
.domain-checker-container .dc-steps li:last-child { margin-bottom: 0; }
.domain-checker-container .dc-extras summary { cursor: pointer; list-style: revert; display: list-item; }
.domain-checker-container .dc-extras summary h3 { display: inline; font-size: 17px; margin: 0; }
.domain-checker-container .dc-actions { margin-top: 10px; }
.domain-checker-container button.dc-print-btn {
    -webkit-appearance: none; appearance: none; background: #fff; color: #4a6fa5; border: 1px solid #4a6fa5; border-radius: 4px; padding: 8px 14px; font-size: 14px; cursor: pointer; box-shadow: none; text-transform: none; min-height: 0; line-height: 1.3;
}
.domain-checker-container button.dc-print-btn:hover { background: #4a6fa5; color: #fff; }
@media print {
    body * { visibility: hidden !important; }
    .dc-print-target, .dc-print-target * { visibility: visible !important; }
    .dc-print-target { position: absolute !important; left: 0; top: 0; width: 100% !important; box-shadow: none !important; border-left-width: 6px !important; }
    .dc-print-target .copy-btn, .dc-print-target .dc-actions, .dc-print-target .dc-share { display: none !important; }
    .dc-print-target details { display: block; }
    .dc-print-target details > *:not(summary) { display: block !important; }
    .dc-print-target .spf-tree summary::after { content: ""; }
}

/* 10.8.0: mailrapport */
.domain-checker-container .dc-report-box { margin-top: 16px; padding: 14px; background: #f4f7fb; border: 1px solid #dbe4f0; border-radius: 6px; }
.domain-checker-container .dc-report-box .dc-hint { margin: 4px 0 10px; }
.domain-checker-container .dc-report-box input[type="email"] { flex: 1 1 auto; width: 100%; padding: 10px 12px; margin: 0; border: 1px solid #ccc; border-radius: 4px; font-size: 16px; }
.domain-checker-container .dc-consent { display: flex; gap: 8px; align-items: flex-start; margin-top: 10px; font-size: 13px; font-weight: normal; color: #555; line-height: 1.4; }
.domain-checker-container .dc-consent input { margin: 3px 0 0; flex: 0 0 auto; }
.domain-checker-container .dc-report-status { margin-top: 8px; }
@media print { .dc-print-target .dc-report-box { display: none !important; } }

/* 10.24.0: branchefelt i rapportformularen */
.domain-checker-container .dc-branche-felt { display: block; margin-top: 12px; font-size: 14px; font-weight: 600; color: #333; }
.domain-checker-container .dc-branche-felt select { display: block; width: 100%; max-width: 380px; margin-top: 5px; padding: 9px 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 15px; font-weight: normal; background: #fff; }
.domain-checker-container .dc-report-box .dc-hint { margin: 5px 0 0; font-size: 13px; color: #666; }
