input[type='checkbox'][readonly],
label.form-check-label,
label:has(input[type='checkbox'][readonly]) {
  pointer-events: none;
}

.thin-scroll::-webkit-scrollbar {
  width: 10px;
}
.thin-scroll::-webkit-scrollbar-track {
  background: #f1f1f1;
}
.thin-scroll::-webkit-scrollbar-thumb {
  background: #888;
}
.thin-scroll::-webkit-scrollbar-thumb:hover {
  background: #555;
}

/* ---- Fee Proposal Agent PoC additions ---------------------------------- */
/* Drafted sections arrive as markdown; this styles them like the prototype's step 4. */
.md { color: #1f2937; line-height: 1.6; }
.md > *:first-child { margin-top: 0; }
.md p { margin-top: 0.75rem; }
.md h1, .md h2 { margin-top: 1.25rem; font-size: 1.25rem; font-weight: 700; color: #1e3a8a; }
.md h3 { margin-top: 1rem; font-size: 1.125rem; font-weight: 600; color: #1d4ed8; }
.md h4, .md h5 { margin-top: 0.75rem; font-weight: 600; color: #1e3a8a; }
.md ul { margin-top: 0.25rem; padding-inline-start: 1.25rem; list-style: disc outside; }
.md ol { margin-top: 0.25rem; padding-inline-start: 1.25rem; list-style: decimal outside; }
.md li { margin-top: 0.25rem; }
.md li > ul { list-style: "- " outside; padding-inline-start: 0.75rem; }
.md table { margin-top: 1rem; width: 100%; font-size: 0.875rem; border-collapse: collapse; }
.md thead { background: #1d4ed8; color: #fff; }
.md th { padding: 0.5rem; text-align: left; }
.md td { padding: 0.5rem; border-bottom: 1px solid #3b82f6; vertical-align: top; }
/* fee tables like the prototype's step 4: fee column right-aligned, stage rows light blue, total grey */
.md th.num, .md td.num { text-align: right; white-space: nowrap; }
.md tr.stage td { background: #dbeafe; color: #1d4ed8; font-weight: 600; }
.md tr.total td { background: #f1f5f9; font-weight: 600; }
.md hr { margin-block: 1.25rem; border-color: #cbd5e1; }
.md strong { font-weight: 600; }
.md .table-wrap { overflow-x: auto; }
mark.ph-fee { background: #fef3c7; color: #92400e; padding: 0 0.25rem; border-radius: 0.25rem; }
mark.ph-confirm { background: #e0e7ff; color: #3730a3; padding: 0 0.25rem; border-radius: 0.25rem; }
.spin { animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .spin { animation: none; } }

/* The header wrapper must not take part in the body's flex layout (justify-between would push
   short pages to the bottom of the window). */
#app-header { display: contents; }
/* Leaflet panes use z-index 400+; keep them inside their map so they never cover the fixed
   header, menus or modals. */
.leaflet-container { position: relative; z-index: 0; }
