body { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; background-color: #0c0c0c; color: #cccccc; padding: 10px; margin: 0; display: flex; flex-direction: column; align-items: center; font-size: 11px; line-height: 1.2; } h1 { color: #00ff00; font-family: inherit; margin-top: 10px; margin-bottom: 20px; text-transform: uppercase; letter-spacing: 1px; font-size: 14px; } h2 { color: #00ff00; font-size: 12px; margin-top: 30px; margin-bottom: 10px; text-transform: uppercase; width: 100%; max-width: 1200px; border-bottom: 1px solid #333; padding-bottom: 5px; } .nav { margin-bottom: 20px; font-size: 12px; color: #555; display: flex; flex-direction: column; gap: 10px; align-items: center; } .nav > div { display: flex; gap: 15px; align-items: center; } .nav a { color: #00ff00; text-decoration: none; padding: 2px 8px; border: 1px solid #333; } .nav a.active { color: #000; background-color: #00ff00; border-color: #00ff00; } .nav a:hover { color: #fff; border-color: #555; } .nav-archived a { font-size: 10px; color: #666; border-color: #222; } .nav-archived a.active { color: #ccc; background-color: #333; border-color: #555; } .nav-archived a:hover { color: #999; border-color: #444; } .description { margin-bottom: 20px; text-align: center; color: #888; max-width: 800px; } .description a { color: #00ff00; text-decoration: none; } .description a:hover { text-decoration: underline; } .table-container { background-color: transparent; border: 1px solid #333; box-shadow: none; overflow-x: auto; width: 100%; max-width: 1200px; margin-bottom: 30px; } table { border-collapse: collapse; width: 100%; table-layout: auto; } th, td { padding: 2px 8px; text-align: right; border-bottom: 1px dashed #222; white-space: nowrap; } th:first-child, td:first-child { text-align: left; } th { background-color: transparent; color: #888888; font-weight: normal; border-bottom: 1px solid #555; text-transform: lowercase; } tr:hover { background-color: #1a1a1a; } .balance-pos { color: #00ff00; } .balance-neg { color: #ff3333; } .cell-ok { color: #00ff00; } .cell-unpaid { color: #ff3333; background-color: rgba(255, 51, 51, 0.05); position: relative; } .cell-unpaid-current { color: #994444; background-color: rgba(153, 68, 68, 0.05); position: relative; } .cell-overridden { color: #ffa500 !important; } .pay-btn { display: none; position: absolute; right: 5px; top: 50%; transform: translateY(-50%); background: #ff3333; color: white; text-decoration: none; border: none; border-radius: 3px; padding: 2px 6px; font-size: 10px; cursor: pointer; font-weight: bold; } .member-row:hover .pay-btn { display: inline-block; } .cell-empty { color: #444444; } .list-container { width: 100%; max-width: 1200px; color: #888; margin-bottom: 40px; } .list-item { display: flex; justify-content: flex-start; gap: 20px; padding: 1px 0; border-bottom: 1px dashed #222; } .list-item-name { color: #ccc; min-width: 200px; } .list-item-val { color: #00ff00; } .unmatched-row { font-family: inherit; display: grid; grid-template-columns: 100px 100px 200px 1fr; gap: 15px; color: #888; padding: 2px 0; border-bottom: 1px dashed #222; } .unmatched-header { color: #555; border-bottom: 1px solid #333; margin-bottom: 5px; } .filter-container { width: 100%; max-width: 1200px; margin-bottom: 15px; display: flex; align-items: center; gap: 10px; } .filter-input { background-color: #1a1a1a; border: 1px solid #333; color: #00ff00; font-family: inherit; font-size: 11px; padding: 4px 8px; width: 250px; outline: none; } .filter-input:focus { border-color: #00ff00; } .filter-select { background-color: #1a1a1a; border: 1px solid #333; color: #00ff00; font-family: inherit; font-size: 11px; padding: 4px 8px; outline: none; } .filter-select:focus { border-color: #00ff00; } .month-hidden { display: none !important; } .filter-label { color: #888; text-transform: lowercase; } .info-icon { color: #00ff00; cursor: pointer; margin-left: 5px; font-size: 10px; opacity: 0.5; } .info-icon:hover { opacity: 1; } /* Modal Styles */ #memberModal { display: none !important; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background-color: rgba(0, 0, 0, 0.9); z-index: 9999; justify-content: center; align-items: center; } #memberModal.active { display: flex !important; } .modal-content { background-color: #0c0c0c; border: 1px solid #00ff00; width: 90%; max-width: 800px; max-height: 85vh; overflow-y: auto; padding: 20px; box-shadow: 0 0 20px rgba(0, 255, 0, 0.2); position: relative; } .modal-header { border-bottom: 1px solid #333; margin-bottom: 20px; padding-bottom: 10px; display: flex; justify-content: space-between; align-items: center; } .modal-title { color: #00ff00; font-size: 14px; text-transform: uppercase; } .close-btn { color: #ff3333; cursor: pointer; font-size: 14px; text-transform: lowercase; } .modal-section { margin-bottom: 25px; } .modal-section-title { color: #555; text-transform: uppercase; font-size: 10px; margin-bottom: 8px; border-bottom: 1px dashed #222; } .raw-toggle { color: #333; font-size: 9px; text-transform: lowercase; margin-left: 8px; text-decoration: none; letter-spacing: 0; } .raw-toggle:hover { color: #666; } .modal-table { width: 100%; border-collapse: collapse; } .modal-table th, .modal-table td { text-align: left; padding: 4px 0; border-bottom: 1px dashed #1a1a1a; } .modal-table th { color: #666; font-weight: normal; font-size: 10px; } .tx-list { list-style: none; padding: 0; margin: 0; } .tx-item { padding: 8px 0; border-bottom: 1px dashed #222; } .tx-meta { color: #555; font-size: 10px; margin-bottom: 4px; } .tx-main { display: flex; justify-content: space-between; gap: 20px; } .tx-amount { color: #00ff00; } .tx-sender { color: #ccc; } .tx-msg { color: #888; font-style: italic; } .footer { margin-top: 50px; margin-bottom: 20px; color: #333; font-size: 9px; text-align: center; width: 100%; cursor: pointer; user-select: none; } .perf-breakdown { display: none; margin-top: 5px; color: #222; } /* QR Modal styles */ #qrModal .modal-content { max-width: 400px; text-align: center; } .qr-image { background: white; padding: 10px; border-radius: 5px; margin: 20px 0; display: inline-block; } .qr-image img { display: block; width: 250px; height: 250px; } .qr-details { text-align: left; margin-top: 15px; font-size: 14px; color: #ccc; } .qr-details div { margin-bottom: 5px; } .qr-details span { color: #00ff00; font-family: monospace; }