*{box-sizing:border-box}body{color:#1d2a2f;background:#f4f6f7;margin:0;font-family:Arial,Helvetica,sans-serif;line-height:1.5}.app-container{max-width:1000px;margin:0 auto;padding:40px 24px}.app-header{margin-bottom:28px}.app-header h1{margin:0;font-size:clamp(28px,5vw,38px)}.eyebrow{color:#ec7000;letter-spacing:.08em;margin:0 0 4px;font-weight:700}.subtitle,.hint,.file-name,.empty-state{color:#536168}.card{background:#fff;border-radius:12px;margin-bottom:20px;padding:28px;box-shadow:0 3px 14px #14242c14}.card h2{margin-top:0}.is-hidden{display:none}.file-input{cursor:pointer;display:inline-block}.file-input span{color:#fff;background:#ec7000;border-radius:6px;padding:10px 16px;font-weight:700;display:inline-block}.file-input input{opacity:0;width:1px;height:1px;position:absolute}.file-input:focus-within span{outline-offset:3px;outline:3px solid #003d4c}.message{color:#9e3d00;min-height:1.5em;margin:12px 0 0}.date-fields{flex-wrap:wrap;gap:16px;display:flex}.date-fields label{gap:5px;font-weight:700;display:grid}.date-fields input{font:inherit;border:1px solid #9aa6ab;border-radius:6px;padding:8px}.warning-box{background:#fff7dc;border-left:4px solid #d69600;margin:20px 0;padding:14px}.warning-box ul{margin:8px 0;padding-left:20px}.warning-box code{white-space:normal;overflow-wrap:anywhere}.totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0;display:grid}.totals article{background:#f1f5f6;border-radius:8px;padding:16px}.totals span{color:#536168;display:block}.totals strong{margin-top:5px;font-size:22px;display:block}.incoming{color:#087443}.outgoing{color:#b33524}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:620px}th,td{text-align:left;border-bottom:1px solid #dce3e5;padding:12px 8px}th{color:#536168;font-size:14px}.amount{text-align:right;white-space:nowrap;font-weight:700}.duplicate-badge{color:#735500;white-space:nowrap;background:#fff1ce;border-radius:4px;padding:2px 5px;font-size:12px;font-weight:700}@media (width<=600px){.app-container{padding:24px 16px}.card{padding:20px}.totals{grid-template-columns:1fr}}
