body { font-family: system-ui, sans-serif; margin: 0; color: #1a1a1a; }
header { background: #2c3e50; color: #fff; padding: .7rem 1rem; display: flex; justify-content: space-between; }
.wrap { padding: 1rem; }
.filters { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; }
input, select, button { padding: .4rem .6rem; font-size: .95rem; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #ddd; padding: .45rem .6rem; text-align: left; font-size: .9rem; }
th { background: #f4f4f4; cursor: pointer; user-select: none; }
tr:hover { background: #fafafa; }
.login-box { max-width: 320px; margin: 4rem auto; display: flex; flex-direction: column; gap: .6rem; }
.err { color: #c0392b; }
.hint-overdue { background:#fde8e8; border:1px solid #f5b5b5; color:#a11; padding:.5rem .7rem; border-radius:6px; }
.frm-row { display:flex; gap:.6rem; align-items:center; margin:.35rem 0; }
.frm-row > span { width:170px; flex:0 0 170px; font-weight:600; font-size:.85rem; }
.frm-row input, .frm-row select, .frm-row textarea { flex:1; padding:.35rem; }
.frm-wide { align-items:flex-start; }
.abst-set { margin:.7rem 0; display:flex; gap:.8rem; flex-wrap:wrap; align-items:flex-end; }
.abst { display:flex; flex-direction:column; font-size:.8rem; }
.abst input { width:90px; padding:.3rem; }
.frm-actions { margin-top:.8rem; display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; }
.frm-actions button { padding:.45rem .8rem; cursor:pointer; }
button.danger { background:#c0392b; color:#fff; border:none; border-radius:4px; }
ul.hist { list-style:none; padding:0; font-size:.85rem; }
ul.hist li { padding:.25rem 0; border-bottom:1px solid #eee; }
ul.hist .ts { color:#666; }
table.resizable { table-layout: fixed; }
table.resizable th { position: relative; overflow: hidden; }
th .col-resizer { position:absolute; top:0; right:0; width:6px; height:100%;
  cursor:col-resize; user-select:none; }
.badge-overdue { display:inline-block; margin-left:.3rem; padding:0 .4rem;
  background:#c0392b; color:#fff; border-radius:8px; font-size:.7rem; }
td { overflow:hidden; text-overflow:ellipsis; }
