/* Content management (/manage/). Builds on monitor/site.css. */
body.cms { background: var(--soft); }
.cms-main { padding: 1rem 16px 3rem; max-width: 1400px; margin: 0 auto; }
.top form.inline { display: inline-flex; gap: .4rem; align-items: center; margin: 0; }
.top .who { opacity: .85; font-size: .85rem; }
button.link { background: none; border: 0; color: #fff; padding: 0; text-decoration: underline; }
button.ghost, a.button.ghost { background: #fff; color: var(--green); border: 1px solid var(--line); }
button.danger { background: #a12; }
a.button { display: inline-block; background: var(--green); color: #fff; border-radius: var(--radius); padding: .45rem .9rem; text-decoration: none; }
.danger-link { color: #a12; }
.card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1.2rem; }
.card.narrow { max-width: 560px; margin: 2rem auto; }
.card label, .editform label, .decide label { display: grid; gap: .2rem; font-size: .85rem; color: var(--muted); margin: .5rem 0; }
input[type=text], input[type=search], input[type=email], input[type=password], input[type=number], input[type=date], input[type=url], select, textarea {
  font: inherit; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: .4rem .5rem; width: 100%; min-width: 0; }
textarea { resize: vertical; }
.errors { color: #a12; background: #fff1f0; border-radius: var(--radius); padding: .4rem .6rem; }
.err { color: #a12; }
.has-error input, .has-error select, .has-error textarea { border-color: #d77; }
.warn { color: #8a5a00; } p.warn { background: #fff8e1; border-radius: var(--radius); padding: .4rem .6rem; }
.ok { color: var(--green); background: #e8f6ec; border-radius: var(--radius); padding: .4rem .6rem; }
.req { color: #a12; }
.crumbs { margin: 0 0 .5rem; }
.headrow { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }

/* List */
.statusbar { display: flex; gap: .4rem; flex-wrap: wrap; margin-bottom: .8rem; }
.statusbar a { background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: .2rem .8rem; text-decoration: none; color: var(--ink); font-size: .9rem; }
.statusbar a.on { background: var(--green); color: #fff; border-color: var(--green); }
.search { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .5rem .8rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: .8rem; }
.search label { display: grid; gap: .15rem; font-size: .8rem; color: var(--muted); }
.search .q { grid-column: 1 / -1; }
.search .checks { grid-column: 1 / -1; display: flex; gap: 1.2rem; align-items: center; flex-wrap: wrap; font-size: .9rem; }
.switch { display: flex !important; grid-auto-flow: column; align-items: center; gap: .4rem; color: var(--ink) !important; }
.switch input { width: auto; }
.count { margin: .8rem 0 .3rem; }
.tablewrap { overflow-x: auto; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
table.records { width: 100%; border-collapse: collapse; font-size: .92rem; }
table.records th { text-align: left; font-size: .78rem; color: var(--muted); font-weight: 600; padding: .5rem .6rem; border-bottom: 1px solid var(--line); }
table.records td { padding: .5rem .6rem; border-bottom: 1px solid var(--line); vertical-align: top; }
table.records a { text-decoration: none; } table.records a:hover b { text-decoration: underline; }
tr.inactive { opacity: .55; }
.pager { display: flex; justify-content: space-between; margin: .8rem 0; }
.status { display: inline-block; font-size: .75rem; padding: .05rem .5rem; border-radius: 999px; background: #eee; }
.status.pending { background: #fff1c2; } .status.approved { background: #dcf3df; } .status.rejected { background: #ffe0dc; } .status.archived { background: #e4e4e4; }

/* Edit */
.editgrid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 1000px) { .editgrid:not(.single) { grid-template-columns: minmax(0, 1fr) 320px; } .sidecard { position: sticky; top: 1rem; align-self: start; } }
.editform h1 { margin-top: 0; }
.block { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: .6rem 1rem 1rem; margin: 0 0 1rem; min-width: 0; }
.block legend { font-weight: 700; padding: 0 .3rem; }
.grid2, .grid3, .grid4, .grid5, .subgrid { display: grid; gap: 0 .8rem; grid-template-columns: 1fr; }
@media (min-width: 640px) {
  .grid2 { grid-template-columns: repeat(2, 1fr); } .grid3 { grid-template-columns: repeat(3, 1fr); }
  .grid4 { grid-template-columns: repeat(4, 1fr); } .grid5 { grid-template-columns: repeat(5, 1fr); }
  .subgrid { grid-template-columns: repeat(4, 1fr); }
}
.subform { border-top: 1px dashed var(--line); padding-top: .4rem; margin-top: .4rem; }
.subform label.del { align-self: end; color: #a12 !important; }
.finder { display: flex; gap: .6rem; align-items: end; flex-wrap: wrap; }
.finder .grow { flex: 1 1 320px; }
.finder button { margin: .5rem 0; }
.locmap { position: relative; height: 280px; border-radius: var(--radius); border: 1px solid var(--line); margin-top: .6rem; }
.savebar { position: sticky; bottom: 0; background: rgba(244,247,246,.95); padding: .6rem 0; border-top: 1px solid var(--line); }
.sidecard { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: .8rem 1rem; }
.decide .buttons { display: flex; flex-wrap: wrap; gap: .4rem; }
.meta { display: grid; grid-template-columns: auto 1fr; gap: .2rem .6rem; font-size: .85rem; margin: 1rem 0; }
.meta dt { color: var(--muted); }
.meta dd { margin: 0; }
.history { padding-left: 1.1rem; font-size: .82rem; } .history li { margin: .3rem 0; }
.roles dt { font-weight: 700; margin-top: .4rem; } .roles dd { margin: 0 0 .2rem; color: var(--muted); }
.editgrid.single { max-width: 1000px; }
/* ER-7: overall tolls and their parts */
.editform [hidden] { display: none !important; }
.relation { background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: var(--radius); padding: .5rem 1rem; margin: 0 0 1rem; }
.relation p { margin: .3rem 0; }
button.small { font-size: .85rem; padding: .25rem .7rem; }
.small-h { font-size: .9rem; margin: 1rem 0 .4rem; }
table.parts { font-size: .85rem; }
table.parts tfoot th { text-align: right; font-weight: 600; color: var(--muted); }
table.parts tfoot td, table.parts tfoot th { padding: .3rem .6rem; border-bottom: 0; }
table.parts tr.remainder th, table.parts tr.remainder td { color: var(--ink); font-weight: 700; border-top: 1px solid var(--line); }
.picker { margin-top: .3rem; }
.picklist { list-style: none; margin: 0 0 .5rem; padding: 0; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; max-height: 260px; overflow-y: auto; }
.picklist li { border-bottom: 1px solid var(--line); } .picklist li:last-child { border-bottom: 0; }
.picklist li.muted { padding: .4rem .6rem; }
.picklist button { display: block; width: 100%; text-align: left; background: #fff; color: var(--ink); border: 0; border-radius: 0; padding: .4rem .6rem; }
.picklist button:hover, .picklist button:focus { background: var(--soft); }
button.link-dark { background: none; border: 0; padding: 0; color: #a12; text-decoration: underline; font-size: .85rem; }
