.hero{position:relative;width:100%;min-height:360px;overflow:hidden;background:#0B1114;display:flex;align-items:center}.hero-photo{position:absolute;inset:0;background:url('../img/hero.jpg') 68% 22%/cover no-repeat}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,14,17,.97) 0%,rgba(8,14,17,.88) 32%,rgba(8,14,17,.40) 60%,rgba(8,14,17,.05) 80%)}.hero-content{position:relative;z-index:2;padding:46px 7vw;max-width:600px}.hero-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-soft);margin:0 0 16px}.hero-script{font-family:'Alex Brush',cursive;color:#F7F3EA;font-size:clamp(48px,9.5vw,78px);line-height:.92;font-weight:400;margin:0;text-shadow:0 2px 20px rgba(0,0,0,.4)}.hero-pelo{font-size:.4em;vertical-align:.6em;margin:0 6px;opacity:.85}.hero-rule{display:flex;align-items:center;gap:14px;margin-top:18px;font-family:'Montserrat',sans-serif;font-weight:400;font-size:13.5px;letter-spacing:.32em;text-transform:uppercase;color:#EDE6D6}.hero-rule span{height:1px;width:30px;background:rgba(237,230,214,.45);display:block}.wrap{max-width:840px;margin:0 auto;padding:34px 20px 80px}.public-intro{text-align:center;max-width:720px;margin:0 auto 32px}.public-intro h2{font-family:'Fraunces',serif;font-size:clamp(27px,4vw,34px);font-weight:600;line-height:1.18;margin:0 0 10px;color:var(--ink)}.public-intro p{font-size:17px;line-height:1.65;color:var(--ink-soft);margin:0 auto;max-width:650px}.notice{display:none;margin:0 0 18px;padding:12px 15px;border-radius:11px;background:var(--warning-bg);color:var(--warning);font-size:13px;line-height:1.45}.notice.show{display:block}.error-notice{background:var(--negative-bg);color:var(--negative)}.passbook{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 2px rgba(28,43,51,.04)}.passbook-head{display:flex;justify-content:space-between;align-items:baseline;padding:16px 20px 12px;border-bottom:1px dashed var(--border)}.passbook-head span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.summary-grid{display:grid;grid-template-columns:1fr 1fr 1fr}.summary-cell{padding:20px 16px;text-align:center;border-right:1px dashed var(--border)}.summary-cell:last-child{border-right:0;background:var(--primary)}.summary-cell:last-child .s-label{color:rgba(255,255,255,.72)}.summary-cell:last-child .s-val{color:#fff}.s-label{font-size:12px;color:var(--ink-soft);margin-bottom:6px}.s-val{font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:clamp(17px,3.6vw,22px)}.s-val.positive{color:var(--positive)}.s-val.negative{color:var(--negative)}.tabs{display:flex;gap:4px;margin:26px 0 16px;border-bottom:1px solid var(--border)}.tab-btn{appearance:none;background:none;border:0;font-weight:700;font-size:14.5px;color:var(--ink-faint);padding:10px 4px;margin-right:22px;border-bottom:2px solid transparent}.tab-btn.active{color:var(--primary);border-bottom-color:var(--accent)}.tab-btn:hover{color:var(--ink)}.panel{display:none}.panel.active{display:block}.panel-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panel-total{font-size:13px;color:var(--ink-soft)}.panel-total b{color:var(--ink);font-family:'IBM Plex Mono',monospace}.ledger{display:flex;flex-direction:column;gap:10px}.row{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;transition:.15s ease}.row:hover{box-shadow:0 2px 10px rgba(28,43,51,.06);border-color:var(--ink-faint)}.row-left{flex:1;min-width:0}.row-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:6px}.row-date{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-faint)}.row-desc{font-size:15.5px;font-weight:600;line-height:1.45}.row-note{font-size:13px;color:var(--ink-soft);margin-top:3px;line-height:1.45}.row-right{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex-shrink:0}.row-amount{font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:16px;white-space:nowrap}.row-amount.expense{color:var(--negative)}.row-amount.income{color:var(--positive)}.stamp{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--positive);font-family:'IBM Plex Mono',monospace}.empty{text-align:center;padding:46px 20px;color:var(--ink-faint);font-size:14px;background:var(--card);border:1px dashed var(--border);border-radius:12px}footer{margin-top:44px;text-align:center;padding-top:24px;border-top:1px solid var(--border)}footer .ft-title{font-size:14px;font-weight:700;margin-bottom:7px}footer .ft-line{font-size:13px;color:var(--ink-soft);margin:5px 0}footer a{color:var(--primary);font-weight:700;text-decoration:none}footer a:hover{text-decoration:underline}.ft-qr{display:flex;flex-direction:column;align-items:center;gap:8px;margin:20px auto 4px}.ft-qr img{width:130px;height:130px;display:block}.ft-qr span{font-size:11.5px;color:var(--ink-faint)}.pix-box{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:8px}.pix-key{font-family:'IBM Plex Mono',monospace;font-size:12px;background:#fff;border:1px solid var(--border);padding:8px 11px;border-radius:9px}.admin-entry{display:inline-block;margin:22px auto 0;color:var(--ink-faint);font-size:11px;text-decoration:none}.admin-entry:hover{color:var(--ink-soft);text-decoration:underline}.viewer-body{text-align:center}.viewer-body img{max-width:100%;max-height:68vh;border-radius:9px}.viewer-body iframe{width:100%;height:68vh;border:0;border-radius:9px;background:#eee}@media(max-width:560px){.hero{min-height:300px}.hero-photo{background-position:62% 20%}.hero-content{padding:34px 6vw;max-width:100%}.wrap{padding-top:28px}.public-intro h2{font-size:27px}.public-intro p{font-size:15.5px}.summary-grid{grid-template-columns:1fr}.summary-cell{border-right:0;border-bottom:1px dashed var(--border)}.summary-cell:last-child{border-bottom:0}.passbook-head{align-items:flex-start;gap:8px;flex-direction:column}.row{flex-direction:column}.row-right{flex-direction:row;align-items:center;justify-content:space-between;width:100%;margin-top:8px}}
