button.danger{color:#a32626;border-color:#e3bcbc;background:#fff7f7}
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.chart-grid article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}
.chart-grid canvas{width:100%;max-width:100%}
.filter-date{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:700}
.filter-date input{min-width:145px}
.report-filters{align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px}
#report-range-summary{color:var(--muted);font-size:12px;margin-left:auto}
.duplicate-yes{font-weight:800}
.login-page{display:block;background:linear-gradient(135deg,#123d30,#2f6b56);min-height:100vh}
.login-shell{display:grid;place-items:center;min-height:100vh;padding:24px;max-width:none}
.login-card{width:min(430px,100%);background:#fff;border-radius:18px;padding:38px;box-shadow:0 25px 80px #071b1480}
.login-brand{color:var(--green);margin-bottom:24px}.login-form{display:grid;gap:16px;margin:24px 0}.login-form label{display:grid;gap:7px;font-weight:700}.login-form button{margin-top:5px}.login-error{background:#f9dddd;color:#8d2929;padding:11px;border-radius:8px;margin-top:16px}
@media(max-width:900px){.chart-grid{grid-template-columns:1fr}}
