:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17211b;background:#f4f7f2;line-height:1.45;--green:#237a52;--green-dark:#17563a;--border:#dfe8df;--muted:#6b776f}*{box-sizing:border-box}body{margin:0}.app-shell{max-width:1400px;margin:auto;padding:32px 24px 22px}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}.eyebrow{margin:0 0 5px;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800;color:var(--green)}h1,h2,p{margin-top:0}h1{margin-bottom:8px;font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.05em;line-height:1.05}.subtitle{color:var(--muted);margin-bottom:0}.toolbar{display:flex;gap:10px;flex-wrap:wrap}.button{border:0;border-radius:10px;padding:11px 16px;font-weight:700;cursor:pointer}.button.primary{background:var(--green);color:#fff;width:100%;margin-top:8px}.button.primary:hover{background:var(--green-dark)}.button.secondary{background:#fff;border:1px solid var(--border);color:var(--green-dark)}.button.secondary:hover{background:#edf4ed}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.summary-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 20px;box-shadow:0 2px 12px #2e49350a}.summary-card span{display:block;color:var(--muted);font-size:.85rem;margin-bottom:10px}.summary-card strong{font-size:1.65rem;letter-spacing:-.03em}.summary-card.income strong{color:#18764d}.summary-card.expense strong{color:#bf5a48}.summary-card.balance{background:#173c2b;color:#fff;border-color:#173c2b}.summary-card.balance span{color:#b8d3c1}.dashboard{margin-bottom:22px}.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.dashboard-tile{border:1px solid var(--border);border-radius:12px;background:#fbfdfb;color:#17211b;text-align:left;padding:16px;cursor:pointer;transition:transform .15s,box-shadow .15s}.dashboard-tile:hover{transform:translateY(-2px);box-shadow:0 5px 16px #2e49351a}.dashboard-tile span,.dashboard-tile small{display:block;color:var(--muted)}.dashboard-tile span{font-size:.78rem;font-weight:700}.dashboard-tile strong{display:block;font-size:1.45rem;margin:8px 0 5px;color:var(--green-dark)}.dashboard-tile small{font-size:.75rem}.dashboard-tile.warning strong{color:#a4493c}.sort-button{border:0;background:none;color:var(--muted);font:inherit;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;padding:0;cursor:pointer}.sort-button:hover{color:var(--green)}.lotto-share-notice{margin:12px 0;color:var(--muted);font-size:.9rem;font-weight:700}.lotto-warning{margin:14px 0;padding:12px 14px;border:1px solid #e1bb45;border-radius:9px;background:#fff4c2;color:#604900;font-weight:700}.lotto-warning.hidden{display:none}.lotto-number{display:inline-block;padding:1px 3px;border-radius:4px}.lotto-number.hit{background:#ffe36a;color:#433600;font-weight:800}.lotto-forms{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0}.compact-form{border-top:1px solid var(--border);padding-top:14px}.compact-form h3{font-size:.95rem;margin:0 0 12px}.compact-form label{margin-bottom:9px}.official-link{display:inline-block;margin-top:14px;color:var(--green);font-weight:700}.details-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:22px;margin-bottom:22px}.view-controls{display:flex;gap:8px}.view-controls label{margin:0;font-size:.72rem}.view-controls select{padding:7px 8px;font-size:.82rem}.info-note{color:var(--muted);font-size:.8rem}.member-panel{min-width:0}.expense-panel,.lotto-panel{min-width:0}.lotto-values{display:grid;grid-template-columns:1fr 1fr;gap:14px}.lotto-values div{border-bottom:1px solid var(--border);padding-bottom:8px}.lotto-values span{display:block;color:var(--muted);font-size:.75rem}.lotto-values strong{font-size:1.1rem}.details-grid .table-wrap table{min-width:0}.details-grid th,.details-grid td{padding:10px 7px}.details-grid .empty-state{padding:20px 5px}.content-grid{display:grid;grid-template-columns:minmax(280px,390px) 1fr;gap:22px;align-items:start}.panel{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 2px 12px #2e49350a;padding:22px}
.year-overview{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:22px}.year-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 20px}.year-card.current{border-color:#a7d2b5;background:#f0f8f1}.year-card h2{margin:0 0 14px;font-size:1.05rem}.year-values{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.year-values span{display:block;color:var(--muted);font-size:.75rem;margin-bottom:4px}.year-values strong{font-size:1rem}.year-values .positive{color:#18764d}.year-values .negative{color:#bf5a48}.source-note{display:block;color:var(--muted);font-size:.72rem;margin:-8px 0 12px}.excel-status{color:var(--muted);font-size:.8rem;margin:-10px 2px 22px}.excel-status.error{color:#a4493c}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px}h2{font-size:1.2rem;margin-bottom:0}.form-row{display:grid;gap:12px}.two-col{grid-template-columns:1fr 1fr}label{display:grid;gap:6px;color:#4f5d53;font-size:.82rem;font-weight:700;margin-bottom:13px}input,select,textarea{font:inherit;color:#17211b;border:1px solid #d4dfd5;border-radius:8px;background:#fbfdfb;padding:10px 11px;width:100%;font-weight:400}input:focus,select:focus,textarea:focus{outline:3px solid #cce6d4;border-color:var(--green)}textarea{resize:vertical}.search{margin:0;min-width:180px}.search input{padding:8px 10px}.text-button,.danger-button{border:0;background:none;color:var(--green);cursor:pointer;font-weight:700;padding:4px}.hidden{display:none}.lotto-booking-details{border:1px solid #cfe3d2;border-radius:10px;background:#f4faf5;padding:12px 14px;margin:2px 0 13px}.lotto-booking-details legend,.member-booking-details legend{padding:0 6px;color:var(--green-dark);font-size:.82rem;font-weight:800}.lotto-booking-details small{color:var(--muted);font-weight:400}.member-booking-details{border:1px solid #cfe3d2;border-radius:10px;background:#f4faf5;padding:12px 14px;margin:2px 0 13px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:650px}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid #edf1ed;font-size:.9rem}th{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em}td.number,th.number{text-align:right}.amount-income{color:#18764d;font-weight:800}.amount-expense{color:#bf5a48;font-weight:800}.type-badge{border-radius:99px;padding:4px 8px;font-size:.74rem;font-weight:800}.type-badge.income{background:#e4f4e9;color:#18764d}.type-badge.expense{background:#fceae5;color:#a4493c}.booking-member{color:var(--green-dark);font-weight:700}.row-actions{white-space:nowrap;text-align:right}.row-actions button{border:0;background:none;color:var(--green);cursor:pointer;font-weight:700;margin-left:8px}.row-actions .delete{color:#a4493c}.empty-state{text-align:center;color:var(--muted);padding:42px 10px}.empty-state.hidden{display:none}footer{display:flex;justify-content:space-between;color:var(--muted);font-size:.8rem;padding:16px 4px}.danger-button{color:#a4493c}.payment-history-title{margin:24px 0 8px;font-size:1.05rem}.dashboard-tile{min-height:138px;padding:20px}.dashboard-tile span{font-size:.92rem}.dashboard-tile strong{font-size:1.65rem}.dashboard-tile small{font-size:.86rem}.button{min-height:52px;font-size:1rem}.text-button,.danger-button{min-height:44px;font-size:.95rem}input,select,textarea{min-height:50px;font-size:1rem}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:4px solid #f0b429;outline-offset:3px}.optional-label{color:var(--muted);font-size:.78rem;font-weight:400}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:850px){.hero{align-items:flex-start;flex-direction:column}.summary-grid{grid-template-columns:repeat(2,1fr)}.year-values{grid-template-columns:repeat(2,1fr)}.details-grid{grid-template-columns:1fr}.content-grid{grid-template-columns:1fr}}@media(max-width:500px){.app-shell{padding:22px 14px}.summary-card{padding:14px}.summary-card strong{font-size:1.25rem}.year-overview{grid-template-columns:1fr}.view-controls{flex-direction:column}.lotto-forms{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}footer{gap:10px;align-items:flex-end;flex-direction:column}}
 .page-nav{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin:0 0 22px;overflow-x:auto;padding-bottom:4px}.nav-tile{min-height:52px;border:1px solid var(--border);background:#fff;color:var(--green-dark);border-radius:12px;padding:10px 12px;font:inherit;font-weight:800;cursor:pointer;white-space:nowrap}.nav-tile.active,.nav-tile:hover{background:var(--green);border-color:var(--green);color:#fff}.app-page[hidden]{display:none!important}.details-grid,.content-grid{display:block}.app-page{max-width:950px;margin:0 auto 22px}.nudge-box{margin-top:24px;padding:18px;border:2px solid #cfe3d2;border-radius:12px;background:#f4faf5}.nudge-box h3{margin:0 0 7px}.nudge-box p{color:var(--muted)}.nudge-box .button{max-width:430px}@media(max-width:850px){.app-shell{padding:18px 14px 28px}.hero{margin-bottom:18px}.hero h1{font-size:2rem}.toolbar{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.toolbar .button{padding:9px 7px;font-size:.82rem}.page-nav{grid-template-columns:repeat(3,1fr);overflow:visible}.nav-tile{white-space:normal;min-height:58px;font-size:.9rem}.summary-grid{grid-template-columns:repeat(2,1fr)}.summary-card{padding:15px}.summary-card strong{font-size:1.35rem}.year-overview{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:repeat(2,1fr)}.dashboard-tile{min-height:126px;padding:16px}.dashboard-tile strong{font-size:1.35rem}.panel{padding:16px;border-radius:12px}.panel-heading{flex-direction:column}.view-controls{width:100%;display:grid;grid-template-columns:1fr 1fr}.view-controls label{font-size:.85rem}.details-grid,.content-grid{display:block}.app-page{margin-bottom:16px}table{min-width:560px}th,td{padding:11px 9px;font-size:.88rem}.nudge-box{padding:16px}.nudge-box .button{min-height:58px;font-size:1.05rem}}@media(max-width:420px){.toolbar{grid-template-columns:1fr}.page-nav{grid-template-columns:repeat(2,1fr)}.summary-card strong{font-size:1.18rem}.dashboard-grid{grid-template-columns:1fr}.view-controls{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}.app-shell{padding-inline:10px}.panel{padding:14px}} @media print{body{background:#fff}.app-shell{padding:0;max-width:none}.toolbar,.page-nav,.entry-panel,footer,.row-actions,th:last-child{display:none}.hero{margin-bottom:18px}.panel,.summary-card{box-shadow:none}.content-grid{display:block}.list-panel{border:0;padding:0}.summary-grid{grid-template-columns:repeat(4,1fr)}}.tile-secondary-value{font-size:1.65rem!important;margin:0 0 5px!important;line-height:1.15}.member-dashboard{max-width:1100px}.member-finance-grid{grid-template-columns:repeat(3,1fr);margin-top:22px}@media(max-width:850px){.member-finance-grid{grid-template-columns:repeat(2,1fr)}.tile-secondary-value{font-size:1.35rem!important}}@media(max-width:420px){.member-finance-grid{grid-template-columns:1fr}.tile-secondary-value{font-size:1.25rem!important}}
.view-controls label[hidden],.toolbar[hidden]{display:none}.auth-page{min-height:100vh;display:grid;place-items:center;padding:16px}.auth-card{width:100%;max-width:420px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 2px 12px #2e49350a;padding:28px 24px}.auth-card h1{font-size:2rem;margin-bottom:20px}.auth-message{color:#a4493c;font-weight:700;min-height:1.2em;margin:0 0 4px}.user-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.9rem}.user-bar strong{color:var(--green-dark)}.member-until{display:block;color:var(--muted);font-size:.78rem;font-weight:400}.inactive-row td{color:var(--muted)}
@media(min-width:851px){.page-nav{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.nav-tile{padding:10px 6px;white-space:normal}}
body[data-loading] .page-nav,body[data-loading] .toolbar,body[data-loading] #dashboard,body[data-loading] .summary-grid,body[data-loading] .year-overview{visibility:hidden}
