:root {
    color-scheme:light;
    font:15px/1.5 system-ui,sans-serif;
    color:#142b29;
    background:#f3f7f6;
}
* {
    box-sizing:border-box;
}
body {
    margin:0;
}
.shell {
    display:flex;
    min-height:100vh;
}
aside {
    width:245px;
    flex:none;
    background:#103a35;
    color:white;
    padding:22px 15px;
}
.brand {
    font-size:25px;
    font-weight:750;
    color:white;
    text-decoration:none;
    padding:0 12px;
}
nav {
    display:grid;
    gap:4px;
    margin-top:18px;
}
aside nav a {
    padding:8px 12px;
    border-radius:7px;
    color:#e4f5ef;
    text-decoration:none;
}
aside nav a:hover,aside nav a[aria-current] {
    background:#24625a;
}
main {
    width:100%;
    min-width:0;
    padding:24px;
    max-width:1600px;
    margin:0 auto;
}
.top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:20px;
}
.top form,.inline {
    display:flex;
    gap:8px;
    align-items:center;
    flex-wrap:wrap;
}
h1 {
    font-size:26px;
    margin:0;
}
h2 {
    font-size:19px;
    margin-top:0;
}
a {
    color:#136152;
}
.card,.notice {
    background:white;
    border:1px solid #d8e4df;
    border-radius:10px;
    padding:16px;
    margin-bottom:16px;
}
.grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:14px;
}
.grid .card {
    margin:0;
}
.notice.good {
    background:#e2f7ea;
}
.notice.error,.alert-danger {
    background:#ffe7e5;
    color:#812821;
}
.alert-warning {
    background:#fff2ce;
}
.alert {
    padding:12px;
    border-radius:7px;
    margin:10px 0;
}
.table-responsive,.scroll {
    overflow:auto;
}
table {
    border-collapse:collapse;
    width:100%;
    background:#fff;
}
th,td {
    padding:9px 11px;
    border-bottom:1px solid #e1ebe7;
    text-align:left;
    vertical-align:top;
}
th {
    background:#e9f3ef;
    white-space:nowrap;
}
form.stack {
    display:grid;
    gap:12px;
    max-width:620px;
}
label {
    display:grid;
    gap:4px;
}
label.check {
    display:flex;
    align-items:center;
    gap:8px;
}
input,select,button,.btn {
    font:inherit;
    padding:7px 10px;
    border:1px solid #9eb9af;
    border-radius:6px;
    max-width:100%;
}
button,.btn {
    background:#146455;
    color:white;
    cursor:pointer;
    text-decoration:none;
    display:inline-block;
}
.secondary,.btn-outline-secondary,.btn-outline-primary {
    background:white;
    color:#1b5b50;
}
.danger {
    background:#9b342b;
}
button:disabled {
    opacity:.5;
    cursor:default;
}
.pagination {
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:14px;
}
.muted,.text-muted {
    color:#4b625b;
}
.small,small {
    font-size:.88rem;
}
.badge {
    display:inline-block;
    background:#e0f3ea;
    color:#145144;
    padding:4px 8px;
    border-radius:6px;
}
.card-header {
    font-weight:700;
    margin-bottom:12px;
}
.card-body {
    margin-top:8px;
}
.mb-2,.mb-3,.mb-4 {
    margin-bottom:12px;
}
.gap-2,.g-3 {
    gap:8px;
}
.d-flex {
    display:flex;
}
.justify-content-between {
    justify-content:space-between;
}
.align-items-center {
    align-items:center;
}
.flex-wrap {
    flex-wrap:wrap;
}
.fw-bold {
    font-weight:700;
}
.row {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}
.row>div {
    flex:1 1 230px;
}
.form-control {
    width:100%;
}
img.thumb {
    max-width:140px;
    max-height:95px;
    object-fit:cover;
}
details {
    max-width:420px;
    overflow-wrap:anywhere;
}
pre {
    white-space:pre-wrap;
    max-width:500px;
}
.login {
    max-width:430px;
    margin:30px auto;
}
[hidden] {
    display:none!important;
}
@media(max-width:760px){.shell {
    display:block;
}
aside {
    width:100%;
}
aside nav {
    display:flex;
    flex-wrap:wrap;
}
main {
    padding:14px;
}
.top {
    flex-wrap:wrap;
}}
