@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700;800&display=swap";*,:before,:after{box-sizing:border-box}:root{--bg:#f8efe5;--card-bg:#fff;--primary:#000;--accent:#ce2525;--yellow:#ffd043;--orange:#ff934c;--green:#2d8b2d;--text:#000;--text-secondary:#666;--border:#e5e5e5;--radius:8px;--radius-sm:4px;--sidebar-w:200px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:IBM Plex Sans,sans-serif;font-size:14px}#root{flex-direction:column;min-height:100vh;display:flex}.admin-topbar{background:var(--primary);color:#fff;flex-shrink:0;justify-content:space-between;align-items:center;height:52px;padding:0 24px;display:flex}.admin-topbar-title{letter-spacing:.02em;font-size:15px;font-weight:700}.admin-topbar-cash{color:#fffc;margin-left:auto;font-size:13px}.admin-topbar-cash strong{color:#ffd043;font-weight:700}.admin-topbar-logout{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #ffffff4d;padding:4px 12px;font-size:12px;font-weight:600}.admin-topbar-logout:hover{background:#ffffff1a}.admin-body{flex:1;display:flex;overflow:hidden}.admin-sidebar{width:var(--sidebar-w);background:var(--card-bg);border-right:1px solid var(--border);flex-shrink:0;padding:16px 0}.admin-sidebar nav{flex-direction:column;gap:2px;display:flex}.admin-sidebar button{text-align:left;width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:0;padding:10px 20px;font-family:IBM Plex Sans,sans-serif;font-size:14px;font-weight:500;display:block}.admin-sidebar button:hover{background:var(--bg);color:var(--text)}.admin-sidebar button.active{background:var(--bg);color:var(--text);border-left:3px solid var(--accent);font-weight:700}.admin-content{flex:1;padding:24px;overflow-y:auto}.login-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);width:340px;padding:40px}.login-box h1{margin:0 0 4px;font-size:22px;font-weight:800}.login-box p{color:var(--text-secondary);margin:0 0 24px;font-size:13px}.login-box input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;margin-bottom:12px;padding:10px 12px;font-family:IBM Plex Sans,sans-serif;font-size:15px}.login-box input:focus{border-color:var(--primary);outline:none}.login-error{color:var(--accent);margin-bottom:8px;font-size:12px}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:8px 16px;font-family:IBM Plex Sans,sans-serif;font-size:13px;font-weight:600}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{opacity:.85}.btn-danger{background:var(--accent);color:#fff}.btn-danger:hover{opacity:.85}.btn-secondary{background:var(--card-bg);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg)}.btn-sm{padding:4px 10px;font-size:12px}.btn-full{width:100%;padding:12px;font-size:15px}.page-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header h2{margin:0;font-size:20px;font-weight:800}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.filter-bar select,.filter-bar input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);padding:6px 10px;font-family:IBM Plex Sans,sans-serif;font-size:13px}.filter-count{color:var(--text-secondary);margin-left:auto;font-size:12px}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:1px solid var(--border);background:var(--bg);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:700}.data-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:9px 12px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#faf7f3}.data-table .actions{gap:6px;display:flex}.tag{border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.tag-cash{color:#2d8b2d;background:#e8f5e9}.tag-transfer{color:#1565c0;background:#e3f2fd}.modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--card-bg);border-radius:var(--radius);width:560px;max-width:95vw;max-height:90vh;padding:28px;overflow-y:auto}.modal h3{margin:0 0 20px;font-size:17px;font-weight:800}.modal-footer{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-group{flex-direction:column;gap:4px;display:flex}.form-group.full{grid-column:1/-1}.form-group label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);font-size:11px;font-weight:700}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font-family:IBM Plex Sans,sans-serif;font-size:13px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);outline:none}.form-group textarea{resize:vertical;min-height:60px}.member-checks{flex-wrap:wrap;gap:8px;display:flex}.member-check{cursor:pointer;align-items:center;gap:5px;font-size:13px;display:flex}.settings-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);max-width:480px;margin-bottom:16px;padding:24px}.settings-card h3{margin:0 0 16px;font-size:15px;font-weight:700}.confirm-overlay{z-index:200;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-box{background:var(--card-bg);border-radius:var(--radius);text-align:center;width:360px;padding:24px}.confirm-box p{margin:0 0 20px;font-size:14px}.confirm-box .actions{justify-content:center;gap:8px;display:flex}.toggle-switch{width:36px;height:20px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{background:var(--border);cursor:pointer;border-radius:20px;transition:all .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:all .2s;position:absolute;bottom:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background:var(--green)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}.loading{color:var(--text-secondary);text-align:center;padding:40px}.empty{color:var(--text-secondary);text-align:center;padding:40px;font-size:13px}.receipts-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.receipts-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 16px;font-family:IBM Plex Sans,sans-serif;font-size:13px;font-weight:600}.receipts-tab:hover{color:var(--text)}.receipts-tab.active{color:var(--text);border-bottom-color:var(--accent)}.receipts-retention-note{border-radius:var(--radius);color:#8a6d00;background:#fff7e6;border:1px solid #f5d889;margin-bottom:12px;padding:10px 14px;font-size:12px}.tag-warning{color:var(--accent);background:#ffe8e8}.tag-neutral{background:var(--bg);color:var(--text-secondary)}.receipt-thumb-btn{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex-shrink:0;margin:0;padding:0;display:inline-flex;overflow:hidden}.receipt-thumb-btn img{object-fit:cover;width:100%;height:100%;display:block}.receipt-lightbox{z-index:1000;cursor:zoom-out;background:#000000e6;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.receipt-lightbox-img{object-fit:contain;cursor:default;max-width:100%;max-height:100%}.receipt-lightbox-close{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:28px;line-height:1;display:flex;position:absolute;top:16px;right:16px}
