:root { --pico-font-size: 100%; }
body > header.top { border-bottom: 1px solid var(--pico-muted-border-color); margin-bottom: 1rem; }
body > header.top nav { padding: 0 .5rem; }
.brand { font-weight: 700; text-decoration: none; }
.muted { color: var(--pico-muted-color); }
.small { font-size: .875rem; }
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
.cards article { margin: 0; }
.cards a.card { text-decoration: none; color: inherit; display: block; }
.cards a.card article:hover { box-shadow: 0 0 0 2px var(--pico-primary); }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.stats div { background: var(--pico-card-background-color); border-radius: var(--pico-border-radius); padding: .75rem; box-shadow: var(--pico-card-box-shadow); }
.stats b { display: block; font-size: 1.25rem; }
.badge { display: inline-block; padding: .05rem .5rem; border-radius: 1rem; font-size: .75rem; background: var(--pico-muted-border-color); }
.badge.open { background: #f9d76b; color: #000; }
.badge.done { background: #9ed8a8; color: #000; }
.badge.paid { background: #9ed8a8; color: #000; }
.badge.disputed { background: #f2a3a3; color: #000; }
.actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.actions a[role=button], .actions button { margin: 0; padding: .4rem .8rem; font-size: .9rem; }
.messages { list-style: none; padding: 0; }
.messages li { padding: .6rem 1rem; border-radius: var(--pico-border-radius); background: #e6f4ea; color: #134; margin-bottom: .5rem; list-style: none; }
.messages li.error { background: #fde7e7; color: #611; }
table td, table th { vertical-align: top; }
.table-wrap { overflow-x: auto; }
.auth-box { max-width: 460px; margin: 2rem auto; }
.right { text-align: right; }
pre.mail { white-space: pre-wrap; font-size: .85rem; }
form ul.errorlist { color: #b00; list-style: none; padding: 0; margin: 0 0 .5rem 0; font-size: .875rem; }
fieldset ul, form div > ul:not(.errorlist) { list-style: none; padding-left: 0; }
form div > ul:not(.errorlist) li { list-style: none; }
.badge.pending { background: #f9d76b; color: #000; }
.badge.rejected { background: #f2a3a3; color: #000; }
.badge.count { background: #d33; color: #fff; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.gallery figure { margin: 0; }
.gallery img { width: 100%; height: 110px; object-fit: cover; border-radius: var(--pico-border-radius); border: 1px solid var(--pico-muted-border-color); }
.gallery a.doc { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 110px; font-size: 2rem; text-decoration: none; border-radius: var(--pico-border-radius); border: 1px solid var(--pico-muted-border-color); }
.gallery a.doc span { font-size: .75rem; }
.gallery figcaption { word-break: break-all; }
.link-btn { background: none; border: none; color: #b00; padding: 0 .25rem; margin: 0; width: auto; cursor: pointer; font-size: .8rem; }
.review { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 992px) { .review { grid-template-columns: 3fr 2fr; } }
iframe.preview { width: 100%; height: 70vh; border: 1px solid var(--pico-muted-border-color); border-radius: var(--pico-border-radius); }
img.preview-img { max-width: 100%; max-height: 70vh; }
