:root{font-family:Arial,sans-serif;color:#20382b;background:#f4f7f3}*{box-sizing:border-box}body{margin:0;padding:24px}.login-body{display:grid;place-items:center;min-height:100vh}.login-card{width:min(420px,100%);padding:32px;border:1px solid #dce5dc;border-radius:14px;background:white;box-shadow:0 12px 36px #1a3b2514}.brand{font-size:19px;font-weight:900;color:#286344;margin-bottom:26px}.eyebrow{font-size:11px;font-weight:bold;letter-spacing:.08em}h1{font-size:28px;margin:0}p{color:#617566}form{display:grid;gap:15px;margin-top:25px}label{display:grid;gap:6px;font-size:12px;font-weight:bold}input,select,button{min-height:42px;border-radius:8px;padding:0 12px;font:inherit;border:1px solid #d6e1d6;width:100%}button{background:#286344;color:white;cursor:pointer;font-weight:bold}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #86b59b;outline-offset:2px}.error{color:#a53333}.error:empty{display:none}.note{font-size:12px;line-height:1.6}.workspace{max-width:860px;margin:32px auto;background:white;padding:28px;border-radius:14px}table{border-collapse:collapse;width:100%;margin:24px 0}th,td{text-align:left;border-bottom:1px solid #dce5dc;padding:12px}.workspace form{max-width:150px}@media(max-width:480px){body{padding:12px}.login-card,.workspace{padding:22px}td,th{padding:9px}}
.workspace #expense-form{max-width:560px}textarea{font:inherit;min-height:90px;width:100%;padding:10px;border:1px solid #d6e1d6;border-radius:8px}.draft{border:1px solid #dce5dc;padding:16px;border-radius:8px;margin:12px 0;overflow-wrap:anywhere}.draft button{max-width:180px}button:disabled{opacity:.5;cursor:not-allowed}#history{white-space:pre-line;overflow-wrap:anywhere}h2{font-size:20px;margin-top:28px}[hidden]{display:none!important}

.filters,.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:20px 0}.summary article{padding:14px;background:#f4f7f3;border-radius:8px;overflow-wrap:anywhere}.summary strong{display:block;margin-top:8px}.filters>*{min-width:0}.filters button{align-self:end}#message{overflow-wrap:anywhere}#expense-form>*{min-width:0}
