* { box-sizing: border-box; }
body { font-family: system-ui, sans-serif; margin: 0; color: #222; background: #f6f7f9; }
main { margin: 2rem auto; padding: 0 1rem; width: fit-content; min-width: min(1200px, calc(100% - 2rem)); max-width: calc(100% - 2rem); }
.topnav { background: #1f3a5f; padding: .75rem 1.5rem; display: flex; gap: 1.25rem; }
.topnav a { color: #fff; text-decoration: none; }
.topnav a:hover { text-decoration: underline; }
h1 { margin-top: 0; }
h2 { margin-top: 2rem; }
a { color: #1f3a5f; }
table { border-collapse: collapse; width: 100%; background: #fff; }
th, td { border: 1px solid #d0d4da; padding: .5rem .75rem; text-align: left; vertical-align: top; }
th { background: #eef1f5; }
form.inline { display: inline; }
form.stack { display: flex; flex-direction: column; gap: .75rem; max-width: 600px; background: #fff; padding: 1rem; border: 1px solid #d0d4da; }
form.stack label { display: flex; flex-direction: column; font-size: .9rem; }
input[type=text], input[type=number], textarea, select { padding: .4rem; border: 1px solid #c0c4ca; font: inherit; }
textarea { min-height: 4rem; }
button, .btn { background: #1f3a5f; color: #fff; border: 0; padding: .5rem 1rem; cursor: pointer; text-decoration: none; display: inline-block; font: inherit; }
button.danger { background: #a32020; }
.actions { display: flex; gap: .5rem; }
.muted { color: #666; font-size: .9rem; }
.breadcrumb { margin-bottom: 1rem; font-size: .9rem; color: #666; }
.breadcrumb a { color: #1f3a5f; }
.period-group { display: block; width: fit-content; min-width: 100%; margin-bottom: 1rem; }
.period-heading { margin: 2rem 0 0; padding: .4rem .75rem; background: #1f3a5f; color: #fff; border-radius: 3px 3px 0 0; }
.matrix td { min-width: 180px; }
.matrix .warn { color: #a32020; font-weight: bold; }
.matrix .dropcell.over { background: #e8f0ff; outline: 2px dashed #1f3a5f; outline-offset: -2px; }
.ld { border-bottom: 1px dashed #ccc; padding: .25rem 0; cursor: grab; }
.ld.dragging { opacity: .4; }
.ld:active { cursor: grabbing; }
.ld:last-child { border-bottom: 0; }
.ld .meta { color: #666; font-size: .8rem; }
.require-list { font-size: .85rem; color: #444; }
