body{font-family:Arial,Helvetica,sans-serif;margin:0;background:#f4f6f8;color:#0f172a}
a{text-decoration:none;color:#0b3764}
.container{max-width:1280px;margin:18px auto;padding:0 16px}
.card{background:#fff;border:1px solid #d9e2ec;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.topbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.btn,button{border:0;border-radius:9px;padding:9px 13px;font-weight:700;cursor:pointer;background:#0b3764;color:#fff}
.btn.sec{background:#e5e7eb;color:#111827}
.btn.red{background:#fee2e2;color:#b91c1c}
.btn.green{background:#dcfce7;color:#166534}
input,select,textarea{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;padding:9px;margin:5px 0 12px;background:#fff}
textarea{min-height:110px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
table{border-collapse:collapse;width:100%;background:#fff}
th{background:#0b3764;color:#ffdf5d;text-align:left;font-size:12px;letter-spacing:.04em;text-transform:uppercase;padding:10px}
td{padding:10px;border-bottom:1px solid #e5e7eb;vertical-align:top}
tr.link-row{cursor:pointer}
tr.link-row:hover{filter:brightness(.98)}
.linha-vencido{background:#fecaca;animation:piscar 1.15s infinite}
.linha-hoje{background:#fecaca}
.linha-amanha{background:#fef3c7}
.linha-normal:nth-child(even){background:#fafafa}
@keyframes piscar{0%,100%{background:#fecaca}50%{background:#fff1f2}}
.badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700}
.badge.pendente{background:#e5e7eb}
.badge.cumprido{background:#bbf7d0;color:#166534}
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-box{background:#fff;border:1px solid #d9e2ec;border-radius:14px;padding:26px;width:360px;box-shadow:0 8px 24px rgba(15,23,42,.08)}
.erro{background:#fee2e2;color:#991b1b;padding:10px;border-radius:8px;margin-bottom:10px}
.small{font-size:12px;color:#64748b}
.actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:800px){.grid,.grid-3{grid-template-columns:1fr}}
