:root {
  --sh-green: #1b5e20;
  --sh-green-light: #e8f5e9;
}
html { font-size: 17px; }
body { -webkit-tap-highlight-color: transparent; }
.bg-sh { background-color: var(--sh-green); }
.btn-sh { background-color: var(--sh-green); color: #fff; }
.btn-sh:hover, .btn-sh:focus { background-color: #144617; color: #fff; }

/* Tablet-friendly tap targets */
.btn, .form-control, .form-select { min-height: 44px; }
.btn-lg { min-height: 56px; font-size: 1.15rem; }
.list-group-item-action { padding: .9rem 1rem; }

/* Rendered Markdown document */
.doc { max-width: 60rem; line-height: 1.55; }
.doc h1 { font-size: 1.6rem; }
.doc > h1:first-child { display: none; } /* page header already shows ref + title */
.doc h2 { font-size: 1.3rem; margin-top: 1.6rem; border-bottom: 1px solid #dee2e6; padding-bottom: .25rem; }
.doc h3 { font-size: 1.1rem; margin-top: 1.2rem; }
.doc table { width: 100%; border-collapse: collapse; margin: .75rem 0; font-size: .92rem; display: block; overflow-x: auto; }
.doc th, .doc td { border: 1px solid #ccc; padding: .35rem .5rem; vertical-align: top; }
.doc th { background: #f1f3f5; }
.doc code { background: #f1f3f5; padding: 0 .25rem; border-radius: 3px; font-size: .9em; }
.doc blockquote { border-left: 4px solid var(--sh-green); padding-left: 1rem; color: #495057; }
.doc p:has(> code:only-child) { }

/* Highlight [CONFIRM] markers */
.doc .confirm { background: #fff3cd; border-bottom: 2px solid #ffc107; }

/* Diff */
.diff { font-family: ui-monospace, Consolas, monospace; font-size: .85rem; white-space: pre-wrap; word-break: break-word; }
.diff .add { background: #d1e7dd; }
.diff .del { background: #f8d7da; text-decoration: line-through; }
.diff .gap { color: #999; text-align: center; }

/* Checklist run */
.cl-item { border-bottom: 1px solid #e9ecef; padding: .75rem 0; }
.cl-item .btn-group .btn { min-width: 4.2rem; }
.cl-item.critical .cl-text::before { content: "!"; display: inline-block; background: #dc3545; color: #fff; font-weight: bold; border-radius: 50%; width: 1.4rem; height: 1.4rem; text-align: center; line-height: 1.4rem; margin-right: .4rem; }
.cl-section { background: var(--sh-green-light); font-weight: 600; padding: .4rem .6rem; margin-top: 1rem; border-radius: .25rem; }

.ack-bar { position: sticky; bottom: 0; background: #fff; border-top: 1px solid #dee2e6; padding: .75rem 0; }

.badge-type-RA { background: #c62828; }
.badge-type-SSW { background: #1565c0; }
.badge-type-CL { background: #2e7d32; }
.badge-type-HS { background: #6a1b9a; }

.table-sm td, .table-sm th { vertical-align: middle; }
@media (max-width: 575px) { html { font-size: 16px; } }
