/* Placeholder for contenteditable elements */
[data-placeholder]:empty::before {
    content: attr(data-placeholder);
    color: var(--text-muted);
    pointer-events: none;
}

/* Hide elements that should be hidden when JavaScript is available */
[data-hydrate-hide] {
    display: none;
}

@media screen {
    body {
        margin: 0;
        padding: 0;
        background: var(--bg-secondary);
    }

    .stack-below-600 {
        display: flex;
        flex-direction: row;
    }

    .page-container {
        width: 100%;
        max-width: 8.5in;
        margin: 20px auto;
        padding: 0.375in;
        min-height: 0;
        background: var(--bg);
        box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
        border: 1px solid var(--border);
    }
}

@media (max-width: 600px) {
    .stack-below-600 {
        flex-direction: column;
    }
}

@media (max-width: 640px) {
    .page-container {
        padding: 12px;
    }
}

/* ── Dark mode overrides for transmittal-specific hardcoded colours ──────── */
/* Covers verify cards, table rows, path-diff, integrity cards, workflow badge */
/* and Tailwind utility classes used as attributes in template.html.           */
@media screen {
    /* Integrity verify cards */
    @media (prefers-color-scheme: dark) {
        :root:not([data-theme="light"]) .verify-card--ok    { background: #052e16; }
        :root:not([data-theme="light"]) .verify-card--fail  { background: #2d0c0c; }
        :root:not([data-theme="light"]) .verify-card--draft { background: #2d2305; }
        :root:not([data-theme="light"]) .verify-card--info  { background: #0c1a2e; }
    }
    [data-theme="dark"] .verify-card--ok    { background: #052e16; }
    [data-theme="dark"] .verify-card--fail  { background: #2d0c0c; }
    [data-theme="dark"] .verify-card--draft { background: #2d2305; }
    [data-theme="dark"] .verify-card--info  { background: #0c1a2e; }

    /* Per-row verify result rows in file table */
    @media (prefers-color-scheme: dark) {
        :root:not([data-theme="light"]) tr.verify-match td    { background: #052e16; }
        :root:not([data-theme="light"]) tr.verify-mismatch td { background: #2d0c0c; }
        :root:not([data-theme="light"]) tr.verify-missing td  { background: #2d2305; }
        :root:not([data-theme="light"]) tr.verify-new td      { background: #0c1a2e; }
    }
    [data-theme="dark"] tr.verify-match td    { background: #052e16; }
    [data-theme="dark"] tr.verify-mismatch td { background: #2d0c0c; }
    [data-theme="dark"] tr.verify-missing td  { background: #2d2305; }
    [data-theme="dark"] tr.verify-new td      { background: #0c1a2e; }

    /* Workflow warning badge */
    @media (prefers-color-scheme: dark) {
        :root:not([data-theme="light"]) .workflow-badge--warn {
            background: #2d2305;
            color: #fcd34d;
            border-color: #92400e;
        }
    }
    [data-theme="dark"] .workflow-badge--warn {
        background: #2d2305;
        color: #fcd34d;
        border-color: #92400e;
    }

    /* Path diff semantic colours (verify mismatch) */
    @media (prefers-color-scheme: dark) {
        :root:not([data-theme="light"]) .path-diff del {
            color: #fca5a5;
            background: #2d0c0c;
        }
        :root:not([data-theme="light"]) .path-diff ins {
            color: #86efac;
            background: #052e16;
            border-bottom-color: #86efac;
        }
    }
    [data-theme="dark"] .path-diff del { color: #fca5a5; background: #2d0c0c; }
    [data-theme="dark"] .path-diff ins {
        color: #86efac;
        background: #052e16;
        border-bottom-color: #86efac;
    }

    /* Note: dark-mode overrides for .bg-white / .bg-gray-* / .text-gray-*
       / .border-gray-* and .header-names used to live here as a 17-line
       block of !important rules to fight hardcoded colors in
       transmittal/css/utilities.css. The utility classes were tokenized
       (var(--bg), var(--bg-secondary), var(--text), var(--text-muted),
       var(--border)) so the cascade now does the right thing in both
       themes without per-class overrides. .table-filter-input is unused
       (no element references it; .column-filter from shared is used
       instead) and was likewise dropped. */
}
