/* Interstate admin UI: deliberately plain. */
* { box-sizing: border-box; }
body { margin: 0; font: 14px/1.45 system-ui, -apple-system, "Segoe UI", sans-serif; color: #1d2430; background: #f6f7f9; }
header { display: flex; gap: 1.5rem; align-items: center; padding: .6rem 1.5rem; background: #1d2430; color: #fff; }
header a { color: #dfe6f0; text-decoration: none; }
header a:hover { color: #fff; }
header nav { display: flex; gap: 1rem; flex: 1; }
.brand { font-weight: 700; letter-spacing: .02em; }
.who { display: flex; gap: .75rem; align-items: center; }
main { max-width: 1200px; margin: 0 auto; padding: 1rem 1.5rem 3rem; }
h1 { font-size: 1.4rem; }
h2 { font-size: 1.1rem; margin-top: 2rem; }
table { width: 100%; border-collapse: collapse; background: #fff; }
th, td { text-align: left; padding: .4rem .6rem; border-bottom: 1px solid #e3e6eb; vertical-align: top; }
th { background: #eef1f5; font-weight: 600; }
form.narrow { max-width: 32rem; display: flex; flex-direction: column; gap: .7rem; }
form.row, div.row { display: flex; gap: .7rem; align-items: end; flex-wrap: wrap; margin: .7rem 0; }
form.inline { display: inline-flex; gap: .4rem; align-items: center; margin: 0; }
label { display: flex; flex-direction: column; gap: .2rem; font-weight: 500; }
label.check { flex-direction: row; align-items: center; gap: .4rem; font-weight: 400; }
fieldset { border: 1px solid #d5dae1; padding: .5rem .8rem; }
small { color: #5b6574; font-weight: 400; }
input, select, button { font: inherit; padding: .35rem .5rem; border: 1px solid #c3cad4; border-radius: 4px; background: #fff; }
button, a.button { background: #2453a6; color: #fff; border-color: #2453a6; cursor: pointer; text-decoration: none; padding: .35rem .8rem; border-radius: 4px; display: inline-block; }
button.danger { background: #a62424; border-color: #a62424; }
button.link { background: none; border: none; color: #dfe6f0; padding: 0; }
code.key { font-size: 1rem; background: #fff; padding: .2rem .4rem; border: 1px solid #d5dae1; word-break: break-all; }
pre { background: #fff; border: 1px solid #e3e6eb; padding: .8rem; overflow: auto; max-height: 40rem; }
dl { display: grid; grid-template-columns: max-content 1fr; gap: .3rem 1rem; }
dt { font-weight: 600; }
dd { margin: 0; }
.flash { background: #e6f4ea; border: 1px solid #b7dfc3; padding: .5rem .8rem; }
.error { color: #8a1c1c; }
p.error { background: #fbeaea; border: 1px solid #efc2c2; padding: .5rem .8rem; }
.warn { color: #8a5a00; font-weight: 600; }
.st { padding: .05rem .4rem; border-radius: 3px; background: #e3e6eb; white-space: nowrap; }
.st.succeeded, .st.ok { background: #e6f4ea; }
.st.running { background: #e5edfb; }
.st.partial, .st.interrupted, .st.failed_transient, .st.needs_reauth, .st.unavailable { background: #fff2d6; }
.st.failed_permanent, .st.error, .st.disabled { background: #fbeaea; }
ol.setup li { margin: .35rem 0; }
.scroll { overflow-x: auto; }
.scroll td { white-space: nowrap; }
ol li { margin: .3rem 0; }
button.copy { padding: .15rem .35rem; line-height: 0; vertical-align: middle; background: transparent; color: inherit; border: 1px solid #c5cad3; }
button.copy:hover { background: #eef1f5; }
button.copy.copied { background: #e6f4ea; border-color: #8cc79c; }
.qr { margin: .6rem 0; }
.qr svg { display: block; background: #fff; }
table.report td.num, table.report th:not(:first-child) { text-align: right; white-space: nowrap; }
table.report tr.total td { font-weight: 600; border-top: 1px solid #9aa4b2; }
