*{box-sizing:border-box}
body{margin:0;font-family:Arial,sans-serif;background:#f3f5f7;color:#000}
.container{width:94%;max-width:1500px;margin:auto;padding:16px}
h1{margin:0 0 14px;font-size:30px;font-weight:600}
h2{text-align:center;margin:0 0 18px;font-size:26px;font-weight:600}
.grid{display:grid;grid-template-columns:1.15fr .95fr;gap:20px;align-items:start}
.card{background:#fff;padding:18px;border-radius:14px;box-shadow:0 2px 15px rgba(0,0,0,.08);margin-bottom:18px}
.login-card{max-width:420px;margin:90px auto}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.topbar h1{text-align:left;margin:0}
input,select{width:100%;height:40px;padding:8px 10px;border:1px solid #ccc;border-radius:8px;font-size:14px;background:#fff}
button{height:40px;padding:8px 14px;border:none;border-radius:8px;cursor:pointer;background:#22a852;color:#fff;font-weight:bold;white-space:nowrap;font-size:14px}
.btn-dark{background:#111827}.btn-red{background:#dc143c}.btn-blue{background:#2563eb}.btn-orange{background:#ef4e2a}
.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:10px;margin-bottom:14px;align-items:center}
.exchange-grid{display:grid;grid-template-columns:1fr .8fr 1fr 1fr auto;gap:10px;margin-bottom:14px;align-items:center}
.user-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:center}
.input-with-upload{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}
.input-with-upload input[type="file"]{display:none}
.mini-upload{height:40px;min-width:78px;display:flex;align-items:center;justify-content:center;background:#2563eb;color:#fff;border-radius:8px;font-size:13px;font-weight:bold;cursor:pointer;padding:0 9px;line-height:1}
.ocr-box{background:#f8fafc;border:1px solid #dbeafe;padding:10px;border-radius:8px;margin:10px 0 15px;white-space:pre-wrap;max-height:120px;overflow:auto;font-size:12px}
table{width:100%;border-collapse:collapse;font-size:14px;background:#fff}
th,td{border:1px solid #111;padding:8px;text-align:center;vertical-align:middle}
th{background:#62cb8d;font-weight:600}
.exchange-table th{background:#ef4e2a;color:white}
td button{height:34px;padding:6px 12px;font-size:13px}
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:15px}
.box{border:1px solid #ddd;border-radius:8px;padding:12px;text-align:center;background:#fafafa;min-height:82px}
.box b{display:block;font-size:18px;margin-top:5px}
.notice{padding:10px;border-radius:8px;background:#ecfdf5;border:1px solid #86efac;margin-bottom:14px}
.error{padding:10px;border-radius:8px;background:#fef2f2;border:1px solid #fecaca;margin-bottom:14px;color:#b91c1c}
.badge{display:inline-block;padding:5px 10px;border-radius:20px;background:#e5e7eb;font-weight:bold}
.month-title{background:#e8f7ef;border-left:6px solid #22a852;padding:9px 12px;margin:14px 0 6px;font-weight:bold;border-radius:6px}
.month-total{font-size:14px;font-weight:normal;margin-left:10px;color:#111}
.empty{padding:20px;text-align:center;color:#666}
.compact-card{padding:12px 18px}
.balance-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.balance-grid{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:9999}
.modal-box{width:420px;max-width:92vw;background:#fff;border-radius:14px;padding:22px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.modal-box h3{margin:0 0 8px;font-size:22px}
.modal-box p{margin:0 0 14px;color:#333}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
@media(max-width:1000px){
.container{width:100%;padding:10px}
.grid,.form-grid,.exchange-grid,.summary,.user-grid,.balance-grid{grid-template-columns:1fr}
.topbar{display:block}
.topbar div{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}
table{font-size:12px}
th,td{padding:6px}
h1{font-size:24px}
h2{font-size:22px}
.input-with-upload{display:block}
.mini-upload{margin-top:6px}
}