*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f3f5f8;color:#1d2433}
header{background:#1f4e78;color:#fff;padding:12px 16px;display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center}
header nav{display:flex;flex-wrap:wrap;gap:4px 16px}header a{color:#dbe8f5;text-decoration:none}header a:hover{color:#fff}
main{max-width:1100px;margin:0 auto;padding:16px}
.card{background:#fff;border-radius:10px;padding:16px;margin-bottom:16px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.narrow{max-width:380px;margin:40px auto;display:flex;flex-direction:column;gap:12px}
h2{margin:0 0 12px;font-size:18px}h3{font-size:15px;margin:18px 0 8px}.small{font-size:13px;font-weight:normal;margin-left:8px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}
.stat{background:#fff;border-radius:10px;padding:14px 16px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.stat span{display:block;color:#5b6577;font-size:13px}.stat b{font-size:22px}.stat.main{background:#1f4e78;color:#fff}.stat.main span{color:#cfe0f1}.stat.main b{font-size:26px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;align-items:end}.wide{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#5b6577}
input,select{font:inherit;padding:9px 10px;border:1px solid #c9d1dc;border-radius:7px;background:#fff;color:#1d2433;width:100%}
button{font:inherit;padding:9px 16px;border:0;border-radius:7px;background:#1f4e78;color:#fff;cursor:pointer}
button.secondary{background:#e6ecf3;color:#1f4e78}button.danger{background:#fbe9e9;color:#b42318}
.inline{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;align-items:center}.inline form{margin:0}.inline input{flex:1}.uname{flex:1}
.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:8px;border-bottom:1px solid #edf0f4;text-align:left;white-space:nowrap}
th{font-size:12px;color:#5b6577;text-transform:uppercase}.r{text-align:right}tr.total td{font-weight:bold;border-top:2px solid #c9d1dc}
.in{color:#137333}.out{color:#b42318}.tag{font-size:11px;font-weight:bold;padding:2px 7px;border-radius:10px}.tag.in{background:#e6f4ea}.tag.out{background:#fbe9e9}
.flash{background:#fff7d6;border:1px solid #f0d77b;padding:10px 14px;border-radius:8px;margin-bottom:16px}.error{color:#b42318}.muted{color:#5b6577}.sums{color:#5b6577}
.tag.transfer{background:#e8eefb;color:#1f4e78}td.transfer{color:#1f4e78}
.entry .only-transfer{display:none}.entry[data-type=transfer] .only-transfer{display:flex}.entry[data-type=transfer] .no-transfer{display:none}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.split>.card{margin:0}
.entry .only-out,.entry .only-out-inline,.entry .only-in-inline{display:none}.entry[data-type=out] .only-out{display:flex}.entry[data-type=out] .only-out-inline,.entry[data-type=in] .only-in-inline{display:inline}
.stat small{display:block;margin-top:4px;color:#cfe0f1;font-size:12px}
.calc{border:1px solid #c9d1dc;border-radius:8px;padding:8px 12px}.calc summary{cursor:pointer;font-weight:600;color:#1f4e78}
.report-title{font-size:20px;margin:0 0 12px}tr.group td{background:#f3f5f8;font-weight:bold;color:#1f4e78}
@media print{header,.no-print,.flash{display:none!important}body{background:#fff}main{max-width:none;padding:0}.card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}.scroll{overflow:visible}th,td{white-space:normal;padding:4px 6px;font-size:12px}}
header .logout{margin:0}header .logout button{background:none;padding:0;color:#dbe8f5;font:inherit}header .logout button:hover{color:#fff}
.qr{width:220px;height:220px;margin:10px 0;background:#fff}.qr svg{width:100%;height:100%}.secret{font-size:15px;letter-spacing:1px}
.steps li{margin-bottom:10px}.codes{background:#fff7d6;border:1px solid #f0d77b;border-radius:8px;padding:12px 16px;margin-bottom:16px}
.codes ul{columns:2;list-style:none;padding:0}.codes code{font-size:16px}
@media print{.codes{border:0}}
.sheet{border-collapse:collapse;width:100%;max-width:520px;margin-top:10px;font-variant-numeric:tabular-nums}
.sheet th,.sheet td{border:1px solid #d0d7de;padding:0 10px;height:34px;white-space:nowrap}
.sheet thead th{background:#eef1f4;color:#3b4553;font-size:12px;text-transform:none;font-weight:600}
.sheet .rn{background:#eef1f4;color:#7a8594;font-size:12px;text-align:center;width:34px;padding:0}
.sheet td.cnt{padding:0;width:110px}.sheet td.cnt input{border:0;border-radius:0;height:33px;text-align:right;padding:0 10px;background:transparent}
.sheet td.cnt input:focus{outline:2px solid #1a7f37;outline-offset:-2px;background:#fff}
.sheet tr.coin td:not(.rn){background:#fafbfc}.sheet tr.has td.line{font-weight:600;color:#1d2433}.sheet td.line{color:#7a8594}
.sheet tfoot td{background:#e2efda;font-weight:700;border-top:2px solid #1f4e78}.sheet tfoot .grand{font-size:17px}
.sheet input::-webkit-outer-spin-button,.sheet input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.sheet input[type=number]{-moz-appearance:textfield}
