*{box-sizing:border-box}
body{margin:0;font:14px/1.4 Arial,sans-serif;background:#f5f5f5;color:#222}
header{display:flex;padding:1rem 1.5rem;background:white;border-bottom:1px solid #ccc}
header span{color:#1456a0}
nav a{margin-left:1rem}
main{margin:1.5rem auto;padding:0 1rem}
th[data-sort] { color: green; cursor:pointer }
.pagenav, .pagenav input { font-size:x-large; font-weight:bold; }
.pagenav span { cursor:pointer }
.form,.search{background:white;border:1px solid #ccc;padding:1rem}
.form label,.search label{display:block;margin-bottom:.8rem;font-weight:bold}
.form input,.form textarea,.form select,.search input,.search select{display:block;width:100%;margin-top:.2rem;padding:.45rem;font:inherit}
.search{display:flex;gap:1rem;align-items:end;margin-bottom:1rem}
.search label{min-width:220px;margin:0}
.no-match{text-align:center;padding:2rem;}
.messages{margin:1rem auto;padding:.5rem 1rem;background:#fff5bf;border:1px solid #d7bf57}
.table-wrap>table{min-width:100%}
.requests{border-collapse:collapse;min-width:1900px;width:100%;background:white}
.requests th,.requests td{border:1px solid #ccc;padding:.25rem;vertical-align:top}
.requests th{background:#e9e9e9;text-align:left}
.requests input,.requests select,.requests textarea{width:100%;min-width:125px;padding:.35rem;border:1px solid transparent;background:transparent;font:inherit}
.requests textarea{min-width:260px;resize:vertical}
.requests input:focus,.requests select:focus,.requests textarea:focus{border-color:#2676c9;background:white;outline:none}
.saved{background:#dff5df!important}
.failed{background:#ffdede!important;border-color:#bd0000!important}
#save-state{min-height:1.5rem;font-weight:bold}
.autocomplete{position:absolute;z-index:1000;max-height:240px;overflow:auto;background:white;border:1px solid #888;box-shadow:0 4px 14px #0003}
.autocomplete button{display:block;width:100%;padding:.45rem;border:0;background:white;text-align:left}
.autocomplete button:hover{background:#e8f1ff}
