/*
 * Domovita - free compliance tools (Section 8 / Form 3A + Information Sheet tracker)
 * Shared bundle for views: section8, infosheet. v1.0.0 (2026-06-02)
 *
 * Explicit high-contrast colours throughout (white cards, dark text) to avoid
 * the shared dark-on-dark body-text issue documented in project notes.
 */

.dv-cmp {
    --dv-cmp-ink: #1a2238;
    --dv-cmp-muted: #4a5568;
    --dv-cmp-line: #d9dee8;
    --dv-cmp-navy: #14224a;
    --dv-cmp-accent: #1f6feb;
    --dv-cmp-warn-bg: #fff7e6;
    --dv-cmp-warn-line: #e0a800;
    --dv-cmp-ok: #1e7e34;
    --dv-cmp-bad: #b02a37;
    color: var(--dv-cmp-ink);
    background: #f4f6fb;
    padding-bottom: 3rem;
}

.dv-cmp .domovita-container {
    max-width: 980px;
    margin: 0 auto;
    padding: 0 1rem;
}

/* Hero */
.dv-cmp-hero {
    background: var(--dv-cmp-navy);
    color: #fff;
    padding: 2.5rem 0;
    margin-bottom: 1.75rem;
}
.dv-cmp-hero .domovita-container { padding-top: 0; padding-bottom: 0; }
.dv-cmp-eyebrow {
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .78rem;
    font-weight: 700;
    color: #9fc0ff;
    margin: 0 0 .4rem;
}
.dv-cmp-hero-title { font-size: 2rem; line-height: 1.2; margin: 0 0 .6rem; color: #fff; }
.dv-cmp-hero-lead { font-size: 1.05rem; color: #e6ecfa; margin: 0; max-width: 70ch; }

/* Disclaimer / note */
.dv-cmp-disclaimer {
    background: var(--dv-cmp-warn-bg);
    border: 1px solid var(--dv-cmp-warn-line);
    border-radius: 8px;
    padding: 1rem 1.25rem;
    margin: 0 0 1.5rem;
    color: #5b4a13;
}
.dv-cmp-disclaimer-title { font-size: 1rem; margin: 0 0 .4rem; color: #5b4a13; }
.dv-cmp-disclaimer p { margin: 0; }

/* Cards */
.dv-cmp-card {
    background: #fff;
    border: 1px solid var(--dv-cmp-line);
    border-radius: 10px;
    padding: 1.5rem;
    margin: 0 0 1.5rem;
    box-shadow: 0 1px 2px rgba(20, 34, 74, .04);
}
.dv-cmp-card-title { font-size: 1.2rem; margin: 0 0 .9rem; color: var(--dv-cmp-navy); }

/* Steps + form */
.dv-cmp-step { margin: 0 0 2rem; }
.dv-cmp-step-title { font-size: 1.25rem; color: var(--dv-cmp-navy); margin: 0 0 .35rem; }
.dv-cmp-step-hint, .dv-cmp-group-note { color: var(--dv-cmp-muted); margin: 0 0 1rem; }
.dv-cmp-group-title { font-size: 1.05rem; margin: 1.25rem 0 .25rem; color: var(--dv-cmp-ink); }

.dv-cmp-grounds { display: grid; gap: .75rem; }
@media (min-width: 720px) { .dv-cmp-grounds { grid-template-columns: 1fr 1fr; } }

.dv-cmp-ground {
    display: flex;
    gap: .65rem;
    background: #fff;
    border: 1px solid var(--dv-cmp-line);
    border-radius: 8px;
    padding: .85rem 1rem;
    cursor: pointer;
    transition: border-color .12s, box-shadow .12s;
}
.dv-cmp-ground:hover { border-color: var(--dv-cmp-accent); }
.dv-cmp-ground:has(input:checked) {
    border-color: var(--dv-cmp-accent);
    box-shadow: 0 0 0 1px var(--dv-cmp-accent) inset;
    background: #f3f8ff;
}
.dv-cmp-ground input { margin-top: .25rem; flex: 0 0 auto; }
.dv-cmp-ground-body { display: flex; flex-direction: column; gap: .3rem; }
.dv-cmp-ground-head { display: flex; flex-wrap: wrap; gap: .35rem .6rem; align-items: baseline; }
.dv-cmp-ground-head strong { color: var(--dv-cmp-ink); }
.dv-cmp-ground-notice {
    font-size: .78rem;
    font-weight: 700;
    color: #1659c4;
    background: #eaf2ff;
    border-radius: 4px;
    padding: .1rem .45rem;
}
.dv-cmp-ground-desc { font-size: .9rem; color: var(--dv-cmp-muted); line-height: 1.45; }
.dv-cmp-ground-badges { display: flex; gap: .35rem; flex-wrap: wrap; }
.dv-cmp-badge {
    font-size: .72rem;
    font-weight: 700;
    color: #7a4d00;
    background: #fff0d6;
    border-radius: 4px;
    padding: .08rem .4rem;
}
.dv-cmp-fulllist { margin-top: 1rem; font-size: .9rem; }

/* Fields */
.dv-cmp-fields { display: grid; gap: 1rem; }
@media (min-width: 720px) { .dv-cmp-fields { grid-template-columns: 1fr 1fr; } }
.dv-cmp-field { display: flex; flex-direction: column; gap: .3rem; }
.dv-cmp-field--full { grid-column: 1 / -1; }
.dv-cmp-field label { font-weight: 600; color: var(--dv-cmp-ink); }
.dv-cmp-req { color: var(--dv-cmp-bad); }
.dv-cmp-input {
    border: 1px solid var(--dv-cmp-line);
    border-radius: 6px;
    padding: .6rem .7rem;
    font-size: 1rem;
    color: var(--dv-cmp-ink);
    background: #fff;
}
.dv-cmp-input:focus { outline: 2px solid var(--dv-cmp-accent); outline-offset: 1px; }
.dv-cmp-field-hint { font-size: .82rem; color: var(--dv-cmp-muted); }

/* Acknowledgement */
.dv-cmp-ack {
    display: flex;
    gap: .6rem;
    align-items: flex-start;
    background: #f3f8ff;
    border: 1px solid #cfe0ff;
    border-radius: 8px;
    padding: .9rem 1rem;
    cursor: pointer;
}
.dv-cmp-ack--inline { background: transparent; border: 0; padding: 0; }
.dv-cmp-ack input { margin-top: .2rem; }

/* Actions / buttons */
.dv-cmp-actions { margin-top: 1.5rem; display: flex; gap: .75rem; flex-wrap: wrap; }
.dv-cmp-actions--result { margin-top: 1rem; }
.dv-cmp .dv-btn {
    display: inline-block;
    border-radius: 6px;
    padding: .7rem 1.4rem;
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    border: 1px solid transparent;
    cursor: pointer;
}
.dv-cmp .dv-btn--primary { background: var(--dv-cmp-accent); color: #fff; }
.dv-cmp .dv-btn--primary:hover { background: #1659c4; }
.dv-cmp .dv-btn--secondary { background: var(--dv-cmp-navy); color: #fff; }
.dv-cmp .dv-btn--ghost { background: #fff; color: var(--dv-cmp-navy); border-color: var(--dv-cmp-navy); }

/* Banners */
.dv-cmp-banner { border-radius: 8px; padding: .9rem 1.1rem; margin: 0 0 1.25rem; }
.dv-cmp-banner--info { background: #eaf2ff; border: 1px solid #cfe0ff; color: #173a7a; }
.dv-cmp-token { display: block; margin-top: .4rem; font-size: .82rem; word-break: break-all; color: #173a7a; }

/* Summary grid */
.dv-cmp-summary-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 720px) { .dv-cmp-summary-grid { grid-template-columns: repeat(4, 1fr); } }
.dv-cmp-summary-item {
    background: #f7f9fd;
    border: 1px solid var(--dv-cmp-line);
    border-radius: 8px;
    padding: .9rem 1rem;
    display: flex;
    flex-direction: column;
    gap: .3rem;
}
.dv-cmp-summary-item--hero { background: #eaf2ff; border-color: #cfe0ff; }
.dv-cmp-summary-k { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--dv-cmp-muted); }
.dv-cmp-summary-v { font-size: 1.15rem; font-weight: 700; color: var(--dv-cmp-ink); }
.dv-cmp-v--warn { color: var(--dv-cmp-bad); }

/* Tables */
.dv-cmp-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.dv-cmp-table th, .dv-cmp-table td {
    text-align: left;
    padding: .6rem .7rem;
    border-bottom: 1px solid var(--dv-cmp-line);
    vertical-align: top;
    color: var(--dv-cmp-ink);
}
.dv-cmp-table th { color: var(--dv-cmp-navy); font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; }
.dv-cmp-note { display: block; font-size: .8rem; color: var(--dv-cmp-muted); margin-top: .2rem; }

/* Warnings */
.dv-cmp-warn-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.dv-cmp-warn {
    background: var(--dv-cmp-warn-bg);
    border-left: 4px solid var(--dv-cmp-warn-line);
    border-radius: 0 6px 6px 0;
    padding: .7rem .9rem;
    color: #5b4a13;
}

/* Status badges */
.dv-cmp-status { font-size: .8rem; font-weight: 700; border-radius: 4px; padding: .12rem .5rem; white-space: nowrap; }
.dv-cmp-status--delivered { background: #e3f5e9; color: var(--dv-cmp-ok); }
.dv-cmp-status--overdue { background: #fde7e9; color: var(--dv-cmp-bad); }
.dv-cmp-status--outstanding { background: #fff0d6; color: #7a4d00; }

/* Links + checklists */
.dv-cmp-links, .dv-cmp-checklist { margin: .5rem 0 0; padding-left: 1.2rem; }
.dv-cmp-links li, .dv-cmp-checklist li { margin: .35rem 0; }
.dv-cmp a { color: #1659c4 !important; }

.dv-cmp-two { display: grid; gap: 1.25rem; }
@media (min-width: 720px) { .dv-cmp-two { grid-template-columns: 1fr 1fr; } }
.dv-cmp-two h3 { color: var(--dv-cmp-navy); margin: 0 0 .4rem; }

.dv-cmp-empty { color: var(--dv-cmp-muted); font-style: italic; }
.dv-cmp-reviewed { text-align: center; color: var(--dv-cmp-muted); font-size: .85rem; margin: 1.5rem 0 0; }
.dv-cmp-result-head { padding: 1.5rem 0 .5rem; }
.dv-cmp-result-title { font-size: 1.8rem; color: var(--dv-cmp-navy); margin: 0; }

/* Intro explainer (landing keyword copy) */
.dv-cmp-intro { margin: 1.25rem 0; }
.dv-cmp-intro p { margin: 0; color: var(--dv-cmp-ink); line-height: 1.6; }

/* FAQ block */
.dv-cmp-faq-item { padding: .9rem 0; border-top: 1px solid var(--dv-cmp-line); }
.dv-cmp-faq-item:first-of-type { border-top: 0; padding-top: .25rem; }
.dv-cmp-faq-q { font-size: 1.02rem; font-weight: 700; color: var(--dv-cmp-navy); margin: 0 0 .35rem; }
.dv-cmp-faq-a { margin: 0; color: var(--dv-cmp-muted); line-height: 1.6; }

/* Print: drop chrome, keep the record */
@media print {
    .dv-cmp { background: #fff; }
    .dv-cmp-hero { background: #fff; color: #000; padding: 0 0 1rem; }
    .dv-cmp-hero-title, .dv-cmp-eyebrow, .dv-cmp-hero-lead { color: #000; }
    .dv-cmp-actions, .dv-cmp-addrecord, .dv-cmp-create, form { display: none !important; }
    .dv-cmp-card { box-shadow: none; border-color: #999; }
}
