:root {
    --accent: #0a5c6b;
    --accent-soft: #e6f0f2;
    --text: #1b1b1b;
    --muted: #5a5a5a;
    --rule: #d9d9d9;
    --rule-light: #ececec;
    --ok: #1d6b2f;
    --bad: #a3271b;
    --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    background: #fff;
    color: var(--text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.5;
}

.wrap { max-width: 64rem; margin: 0 auto; padding: 0 16px; }

h1, h2, h3 { line-height: 1.25; margin: 1.5em 0 0.5em; }
h1 { font-size: 1.6rem; margin-top: 1rem; }
h2 { font-size: 1.25rem; border-bottom: 1px solid var(--rule); padding-bottom: 0.2em; }
h3 { font-size: 1.05rem; }
h1:focus { outline: none; }
p, ul, ol { margin: 0.6em 0; }
a { color: var(--accent); }
code, pre, .mono { font-family: var(--mono); font-size: 0.9em; }
pre {
    overflow-x: auto;
    padding: 0.6em 0.8em;
    border: 1px solid var(--rule-light);
    background: #fafafa;
    line-height: 1.35;
}
pre.gantt { font-size: 0.8em; }
pre.wrap { white-space: pre-wrap; }
details { margin: 0.5em 0; }
summary { cursor: pointer; color: var(--accent); }
.muted { color: var(--muted); }
.small { font-size: 0.9em; }
.error { color: var(--bad); }
.ok { color: var(--ok); }
.bad { color: var(--bad); }
.notice { border-left: 3px solid var(--accent); padding: 0.4em 0.8em; background: var(--accent-soft); margin: 1em 0; }

.site-header { border-bottom: 1px solid var(--rule); }
.site-header .wrap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem 1.5rem; padding-top: 0.6rem; padding-bottom: 0.6rem; }
.brand { font-weight: 600; color: var(--text); text-decoration: none; }
.site-nav { display: flex; flex-wrap: wrap; gap: 0 1rem; }
.site-nav a { text-decoration: none; color: var(--accent); padding: 0.2rem 0; border-bottom: 2px solid transparent; }
.site-nav a.active { border-bottom-color: var(--accent); color: var(--text); }
.site-footer { margin-top: 3rem; border-top: 1px solid var(--rule); color: var(--muted); font-size: 0.9em; padding: 1rem 0 2rem; }
main { min-height: 60vh; }

table { border-collapse: collapse; margin: 0.6em 0; max-width: 100%; }
th, td { padding: 0.3em 0.7em; border-bottom: 1px solid var(--rule-light); text-align: left; vertical-align: top; }
th { border-bottom: 1px solid var(--rule); font-weight: 600; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
.table-scroll { overflow-x: auto; }
table.compact td, table.compact th { padding: 0.2em 0.5em; }

label { display: inline-block; }
.field { display: inline-flex; flex-direction: column; gap: 0.2em; margin: 0.3em 1em 0.3em 0; vertical-align: top; }
.field > span { font-size: 0.9em; color: var(--muted); }
input[type="text"], input[type="number"], select, textarea {
    font: inherit;
    padding: 0.3em 0.5em;
    border: 1px solid #b5b5b5;
    border-radius: 3px;
    background: #fff;
    color: var(--text);
}
input[type="text"]:focus, input[type="number"]:focus, select:focus, textarea:focus { outline: 2px solid var(--accent); outline-offset: 0; }
input.cell { width: 4.5em; text-align: right; }
input.cell-id { width: 4.5em; }
textarea { width: 100%; max-width: 100%; font-family: var(--mono); font-size: 0.9em; min-height: 8em; }
textarea.short { min-height: 3em; }
button, .button {
    font: inherit;
    padding: 0.4em 0.9em;
    border: 1px solid var(--accent);
    border-radius: 3px;
    background: var(--accent);
    color: #fff;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    margin: 0.3em 0.5em 0.3em 0;
}
button.secondary, .button.secondary { background: #fff; color: var(--accent); }
button.small, .button.small { padding: 0.15em 0.5em; font-size: 0.85em; margin: 0; }
button:disabled { opacity: 0.5; cursor: default; }
.actions { margin: 0.8em 0; }
.share { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin: 0.6em 0; }
.share input { flex: 1 1 18rem; min-width: 0; font-size: 0.85em; }
.row { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; align-items: flex-end; }
.cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem 2rem; }
fieldset { border: 1px solid var(--rule); padding: 0.6em 1em; margin: 1em 0; }
legend { font-weight: 600; padding: 0 0.3em; }
ul.checklist { list-style: none; padding-left: 0; }
ul.checklist li { margin: 0.3em 0; padding-left: 1.6em; text-indent: -1.6em; }
ul.checklist .mark { display: inline-block; width: 1.6em; text-indent: 0; font-weight: 600; }
ul.checklist .detail { display: block; text-indent: 0; color: var(--muted); font-size: 0.92em; }
.sheet dt { font-weight: 600; margin-top: 0.6em; }
.sheet dd { margin-left: 0; }
.loading { padding: 2rem 16px; color: var(--muted); }

#blazor-error-ui {
    display: none;
    position: fixed;
    bottom: 0; left: 0; right: 0;
    background: #fff4e5;
    border-top: 1px solid #e0a800;
    padding: 0.6rem 1.2rem;
    z-index: 1000;
}
#blazor-error-ui .dismiss { cursor: pointer; position: absolute; right: 0.75rem; top: 0.5rem; }

@media print {
    .site-header, .site-footer .noprint, .noprint, button, .button, nav, #blazor-error-ui { display: none !important; }
    html, body { color: #000; background: #fff; font-size: 11pt; }
    .wrap { max-width: none; padding: 0; }
    a { color: #000; text-decoration: none; }
    pre { border: none; background: none; padding: 0; }
    th, td { border-bottom: 1px solid #000; }
    details { display: block; }
    details > summary { list-style: none; }
    details:not([open]) > *:not(summary) { display: block; }
    .site-footer { border-top: 1px solid #000; color: #000; margin-top: 1.5rem; }
    .notice { background: none; border-left: 2px solid #000; }
    h2 { break-after: avoid; }
    table, pre { break-inside: avoid; }
}

.strip{display:flex;flex-wrap:wrap;gap:1px;margin:.3rem 0 .2rem 1.6rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8rem}
.strip .tick{display:inline-flex;flex-direction:column;align-items:center;min-width:1.6em;padding:.1em .15em;border:1px solid #d8dee1;border-radius:3px;background:#fff}
.strip .tick small{font-size:.6rem;color:#8b949e}
.strip .tick.review{background:#fde7e4;border-color:#b3261e}
