:root{--paper:#F7F5EC;--olive:#7D8C32;--olive-dark:#5F6B26;--olive-light:#EEF1E2;--ink:#3A3A36;--line:#D9D6C6;--white:#FFFFFF;--red:#8B2E2E;--red-bg:#F6E7E7}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.45 -apple-system,"Helvetica Neue",Arial,sans-serif}
a{color:var(--olive-dark)}
header{background:var(--olive-dark);color:#fff;padding:10px 16px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
header .brand{font-weight:700;font-size:19px;margin-right:auto}
header a{color:#fff;text-decoration:none;padding:6px 10px;border-radius:6px;font-size:16px}
header a.on,header a:hover{background:rgba(255,255,255,.18)}
header .badge{background:#fff;color:var(--olive-dark);border-radius:12px;padding:0 8px;font-weight:700;font-size:14px;margin-left:4px}
main{max-width:1320px;margin:0 auto;padding:16px}
h1{font-size:24px;margin:8px 0 12px;color:var(--olive-dark)}
h2{font-size:19px;margin:22px 0 8px;color:var(--olive-dark);border-bottom:2px solid var(--olive-light);padding-bottom:4px}
.nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:8px 0 6px}
.num{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.num .l{font-size:14px;color:#6b6b64}.num .v{font-size:26px;font-weight:700;color:var(--olive-dark)}
.num.bad .v{color:var(--red)}
.basis{font-size:14px;color:#6b6b64;margin:0 0 10px}
.card{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:8px 0}
.row{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:10px 0;border-top:1px solid var(--olive-light)}
.row:first-child{border-top:0}
.row .name{font-weight:700;flex:1 1 220px}
.row .meta{color:#6b6b64;font-size:15px;flex:1 1 200px}
.row .amt{font-weight:700;min-width:110px;text-align:right}
.row .st{font-size:14px;padding:3px 9px;border-radius:12px;background:var(--olive-light);color:var(--olive-dark);white-space:nowrap}
.row .st.bad{background:var(--red-bg);color:var(--red)}
.row .st.ok{background:#E3EFD9;color:#3D6B1F}
.btn{display:inline-block;background:var(--olive);color:#fff;border:0;border-radius:8px;padding:9px 14px;font-size:16px;font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--olive-dark)}
.btn.sec{background:#fff;color:var(--olive-dark);border:2px solid var(--olive)}
.btn.small{padding:6px 10px;font-size:15px}
.btn.danger{background:#fff;color:var(--red);border:2px solid var(--red)}
.flash{background:var(--olive-light);border-left:5px solid var(--olive);padding:10px 14px;margin:8px 0;border-radius:6px}
form.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 16px}
form.grid .full{grid-column:1/-1}
label{display:block;font-size:15px;color:#55554f;margin-bottom:3px}
input[type=text],input[type=number],input[type=date],input[type=url],input[type=password],select,textarea{width:100%;font:inherit;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}
textarea{min-height:80px}
.check{display:flex;align-items:center;gap:8px;font-size:16px;color:var(--ink);margin-top:26px}
.check input{width:22px;height:22px}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
th,td{padding:9px 10px;text-align:left;border-top:1px solid var(--olive-light);font-size:16px;vertical-align:middle;white-space:nowrap}
td.wrap,th.wrap{white-space:normal;min-width:220px}
td .tr{color:#6b6b64;font-size:14px;margin-right:4px}
th{background:var(--olive-light);color:var(--olive-dark);font-size:15px}
td.r,th.r{text-align:right}
.wrap{overflow-x:auto}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.muted{color:#6b6b64;font-size:15px}
.tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 12px}
.tools input,.tools select{width:auto}
.empty{padding:14px;color:#6b6b64}
.login{max-width:380px;margin:60px auto}
@media (max-width:640px){body{font-size:16px}.row .amt{min-width:0}main{padding:10px}h1{font-size:22px}}

.tag{display:inline-block;font-size:13px;padding:2px 8px;border-radius:10px;background:var(--olive-light);color:var(--olive-dark);border:1px solid #D6DBBE}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 16px;background:var(--olive-light);border-bottom:1px solid var(--line)}
.chip{padding:5px 12px;border-radius:14px;border:1px solid var(--olive);color:var(--olive-dark);text-decoration:none;font-size:15px;background:#fff}
.chip.on{background:var(--olive);color:#fff}
.att{border-left:5px solid var(--red);background:var(--red-bg)}
.att.mid{border-left-color:#B58A1E;background:#F9F1DC}
.att.low{border-left-color:var(--olive);background:var(--olive-light)}
.att .row{border-top:1px solid rgba(0,0,0,.06)}
.day{font-weight:700;color:var(--olive-dark);margin:12px 0 2px}
.incomplete{display:inline-block;font-size:13px;background:#F9F1DC;color:#7A5A0E;border:1px solid #E6D3A3;border-radius:10px;padding:2px 8px;margin-left:6px}
.src{font-size:13px;color:#6b6b64}
.sug{display:inline-block;margin:3px 4px 0 0;padding:3px 8px;border-radius:8px;border:1px dashed var(--olive);background:#fff;font-size:14px;cursor:pointer;color:var(--olive-dark)}
.sug.high{border-style:solid;background:#E3EFD9}
.sug.low{border-color:#B58A1E;color:#7A5A0E}
.sug small{color:#6b6b64}
.qrow{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:10px 0}
.qrow.touched{border-color:var(--olive);box-shadow:0 0 0 2px var(--olive-light)}
.qgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px 12px;margin-top:6px}
.qgrid label{font-size:13px}
.qgrid input,.qgrid select{padding:7px 8px;font-size:15px}
.sticky{position:sticky;bottom:0;background:var(--paper);padding:10px 0;border-top:2px solid var(--olive-light);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.stale{color:#7A5A0E;font-size:13px}
.split{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:6px 0}
.split div{background:var(--olive-light);border-radius:8px;padding:6px 8px;font-size:14px}
.split b{display:block;font-size:17px}
.tx{border-top:1px solid var(--olive-light);padding:10px 0}
.tx .d{font-weight:700}
details summary{cursor:pointer;color:var(--olive-dark);font-weight:700;padding:6px 0}
@media (max-width:640px){.split{grid-template-columns:repeat(2,1fr)}.qgrid{grid-template-columns:1fr 1fr}header a{padding:6px 8px;font-size:15px}.nums{grid-template-columns:1fr 1fr}}
