* { box-sizing: border-box; }
body { margin: 0; background: #eef1f2; color: #1f2a30; font: 16px/1.5 "Segoe UI", system-ui, -apple-system, Roboto, sans-serif; }
.sheet { max-width: 760px; margin: 20px auto; background: #fff; border-radius: 8px; padding: 26px; }
header { border-bottom: 3px solid #17515f; padding-bottom: 10px; margin-bottom: 18px; }
header .logo { display: block; width: 260px; max-width: 70%; height: auto; margin-bottom: 6px; }
header strong { display: block; font-size: 20px; color: #17515f; }
header span { color: #5d6b73; font-size: 14px; }
h1 { font-size: 24px; margin: 0; }
h2 { font-size: 18px; margin: 0 0 12px; }
.sub { color: #5d6b73; margin-top: 4px; }
table { width: 100%; border-collapse: collapse; margin-top: 14px; }
th { text-align: left; font-size: 13px; color: #5d6b73; border-bottom: 1px solid #dde3e6; padding: 6px; }
td { vertical-align: top; padding: 9px 6px; border-bottom: 1px solid #eef1f2; }
.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.desc { color: #5d6b73; font-size: 14px; }
.totals { display: grid; grid-template-columns: 1fr auto; gap: 3px 22px; max-width: 320px; margin: 14px 0 0 auto; font-variant-numeric: tabular-nums; }
.totals dt, .totals dd { margin: 0; }
.totals dd { text-align: right; }
.paid-list { max-width: 440px; }
.grand { font-weight: 700; font-size: 19px; }
.proofs-title { margin-top: 22px; }
.proof { display: block; max-width: 100%; max-height: 640px; margin: 10px auto; border: 1px solid #dde3e6; border-radius: 6px; }
.proof-link { font-weight: 600; color: #17515f; }
.narrow { max-width: 430px; }
.deposit { background: #fbf0d9; color: #6d4700; padding: 9px 12px; border-radius: 6px; margin-top: 16px; }
.sign { border: 1px solid #dde3e6; border-radius: 8px; padding: 16px; margin-top: 20px; }
.sign label { display: block; font-weight: 600; margin-bottom: 12px; }
.sign input:not([type=checkbox]) { display: block; width: 100%; font: inherit; padding: 9px; margin-top: 4px; border: 1px solid #b9c4c9; border-radius: 6px; }
.sign .check { font-weight: 400; }
button { font: inherit; font-weight: 600; background: #17515f; color: #fff; border: 1px solid #17515f; padding: 10px 18px; border-radius: 6px; cursor: pointer; }
button.plain { background: #fff; color: #17515f; }
.ok { background: #e3f3ea; color: #175c3a; padding: 9px 12px; border-radius: 6px; margin-top: 16px; }
.error { background: #fbe6e6; color: #a82f2f; padding: 9px 12px; border-radius: 6px; }
.noprint { margin-top: 18px; }
.pay { text-align: right; }
.sheet { position: relative; overflow: hidden; }
.paid-mark { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-28deg); font-size: clamp(90px, 24vw, 190px); font-weight: 800; letter-spacing: .08em; line-height: 1; color: rgba(31, 122, 77, .14); pointer-events: none; user-select: none; }
@media (max-width: 560px) { .sheet { margin: 0; border-radius: 0; padding: 16px; } }
@media print { body { background: #fff; } .sheet { margin: 0; padding: 0; overflow: visible; } .noprint, .sign { display: none; } .paid-mark { position: fixed; font-size: 190px; } }
