/* Mobile first: base styles target a phone; wider screens are handled in media queries. */
:root {
    --color-primary: #1f4e79;
    --color-bg: #f4f6f9;
    --color-surface: #ffffff;
    --color-text: #1c2430;
    --color-muted: #5b6676;
    --color-ok: #1e7b45;
    --color-ko: #b42318;
    --radius: 12px;
    --gutter: 16px;
    color-scheme: light;
}

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

body {
    margin: 0;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    background: var(--color-bg);
    color: var(--color-text);
}

.app-header {
    display: flex;
    flex-direction: column;
    padding: calc(12px + env(safe-area-inset-top)) var(--gutter) 12px;
    background: var(--color-primary);
    color: #fff;
}
.app-brand { font-size: 1.4rem; font-weight: 700; letter-spacing: .04em; }
.app-brand-sub { font-size: .85rem; opacity: .85; }

.app-main {
    padding: var(--gutter);
    padding-bottom: calc(var(--gutter) + env(safe-area-inset-bottom));
    max-width: 720px;
    margin: 0 auto;
}

.card {
    background: var(--color-surface);
    border-radius: var(--radius);
    padding: var(--gutter);
    margin-bottom: var(--gutter);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
}
.card h1, .card h2 { margin-top: 0; }
h1 { font-size: 1.4rem; }
h2 { font-size: 1.1rem; }

.checks { margin: 0; }
.checks dt { color: var(--color-muted); font-size: .85rem; margin-top: 10px; }
.checks dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.checks .ok { color: var(--color-ok); }
.checks .ko { color: var(--color-ko); }
