:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.login-container{min-height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.login-card{background:#fff;border-radius:12px;padding:40px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:400px}.login-card h1{margin:0 0 8px;font-size:28px;color:#333;text-align:center}.login-subtitle{color:#666;text-align:center;margin-bottom:30px}.form-group label{display:block;margin-bottom:8px;color:#555;font-weight:500}.form-group input{width:100%;padding:12px;border:1px solid #e1e4e8;border-radius:6px;font-size:16px;transition:border-color .2s}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}button[type=submit]{width:100%;padding:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s,transform .2s}button[type=submit]:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.error-message{background-color:#fee;color:#c33;padding:10px;border-radius:4px;margin-bottom:16px;text-align:center;font-size:14px}.security-note{margin-top:24px;padding:12px;background-color:#f0f7ff;border-left:4px solid #0066cc;border-radius:4px;font-size:13px;color:#555}.security-note strong{color:#06c}.group-manager{padding:0}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.section-header h2{margin:0;font-size:24px;color:#333}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.create-group-form{background:#f8f9fa;border:1px solid #e1e4e8;border-radius:8px;padding:24px;margin-bottom:30px}.form-row{display:grid;gap:20px;margin-bottom:20px}.form-group{margin-bottom:20px}.form-group:last-child{margin-bottom:0}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#555}.form-group input{width:100%;padding:10px;border:1px solid #e1e4e8;border-radius:6px;font-size:14px}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.emoji-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:8px}.emoji-option{width:50px;height:50px;border:2px solid #e1e4e8;background:#fff;border-radius:8px;font-size:24px;cursor:pointer;transition:all .2s}.emoji-option:hover{border-color:#667eea;transform:scale(1.05)}.emoji-option.selected{border-color:#667eea;background:#f0f7ff}.form-actions{margin-top:20px}.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.group-card{background:#fff;border:1px solid #e1e4e8;border-radius:8px;padding:20px;text-align:center;transition:box-shadow .2s}.group-card:hover{box-shadow:0 4px 12px #0000001a}.group-emoji{font-size:48px;margin-bottom:12px}.group-card h3{margin:0 0 12px;font-size:18px;color:#333}.group-meta{color:#666;font-size:14px;margin-bottom:16px}.group-actions{display:flex;gap:8px;justify-content:center}.btn-danger{background:#dc3545;color:#fff;border:none;padding:8px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:background .2s}.btn-danger:hover{background:#c82333}.empty-state{text-align:center;padding:60px 20px;color:#666}.loading{text-align:center;padding:40px;color:#666}.error-message{background:#fee;color:#c33;padding:12px;border-radius:6px;margin-bottom:20px}.btn-secondary{background:#6c757d;color:#fff;border:none;padding:8px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#5a6268}.btn-secondary.active{background:#007bff}.group-members{margin-top:20px;padding-top:20px;border-top:1px solid #e1e4e8}.group-members h4{margin:0 0 15px;font-size:16px;color:#333}.members-list{max-height:300px;overflow-y:auto}.member-item{padding:10px;background:#f8f9fa;border-radius:4px;margin-bottom:8px}.member-uuid{font-family:monospace;font-size:12px;color:#666;word-break:break-all}.member-email{font-size:14px;color:#333;font-weight:500}.member-name{font-size:13px;color:#555;font-style:italic}.user-manager{padding:0}.user-manager-layout{display:grid;grid-template-columns:1fr 1fr;gap:30px}.left-panel,.right-panel{background:#f8f9fa;border-radius:8px;padding:20px}.left-panel h3,.right-panel h3{margin-top:0;margin-bottom:20px;color:#333;font-size:18px}.group-selector{margin-bottom:30px}.group-list{display:flex;flex-direction:column;gap:8px}.group-item{display:flex;align-items:center;padding:12px;background:#fff;border:1px solid #e1e4e8;border-radius:6px;cursor:pointer;transition:all .2s}.group-item:hover{border-color:#667eea;box-shadow:0 2px 4px #0000000d}.group-item.selected{border-color:#667eea;background:#f0f7ff}.group-item .group-emoji{font-size:24px;margin-right:12px}.group-item .group-name{flex:1;font-weight:500;color:#333}.group-item .member-count{background:#e1e4e8;color:#666;padding:2px 8px;border-radius:12px;font-size:12px}.search-section{padding-top:20px;border-top:1px solid #e1e4e8}.search-form{display:flex;gap:8px;margin-bottom:20px}.search-form input{flex:1;padding:10px;border:1px solid #e1e4e8;border-radius:6px;font-size:14px}.search-form input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.search-form button{padding:10px 20px;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.search-form button:hover:not(:disabled){background:#5a67d8}.search-form button:disabled{opacity:.5;cursor:not-allowed}.search-results{margin-top:20px}.search-results h4{margin:0 0 12px;font-size:14px;color:#666;text-transform:uppercase;letter-spacing:.5px}.user-item,.member-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#fff;border:1px solid #e1e4e8;border-radius:6px;margin-bottom:8px}.user-item .username,.member-item .username{font-weight:500;color:#333}.member-info{display:flex;flex-direction:column;gap:4px}.member-info .email{font-size:12px;color:#666}.user-info{display:flex;flex-direction:column;gap:2px}.user-info .username{font-size:14px;color:#333;font-weight:500}.user-info .full-name,.member-info .full-name{font-size:12px;color:#666;font-style:italic}.btn-add{padding:6px 12px;background:#28a745;color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:background .2s}.btn-add:hover:not(:disabled){background:#218838}.btn-add:disabled{background:#6c757d;opacity:.6;cursor:not-allowed}.btn-remove{padding:6px 12px;background:#dc3545;color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:background .2s}.btn-remove:hover{background:#c82333}.members-list{display:flex;flex-direction:column;gap:8px}.empty-state{text-align:center;color:#666;padding:20px;font-style:italic}.loading{text-align:center;color:#666;padding:20px}.bank-exchange-manager{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:20px;margin-top:20px}.bank-exchange-manager h3{margin:0 0 20px;color:#1f2937;font-size:18px}.bank-exchange-loading{text-align:center;padding:20px;color:#6b7280}.bank-reference-display{background:#fff;padding:12px;border-radius:6px;margin-bottom:20px;border:1px solid #e5e7eb}.bank-reference-display label{display:block;color:#6b7280;font-size:12px;margin-bottom:4px}.reference-code{font-family:Monaco,Courier New,monospace;font-size:16px;font-weight:700;color:#4b5563;letter-spacing:1px}.exchange-form{background:#fff;padding:20px;border-radius:6px;border:1px solid #e5e7eb}.form-group{margin-bottom:16px}.form-group label{display:block;color:#374151;font-size:14px;margin-bottom:4px;font-weight:500}.form-group input{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:4px;font-size:14px}.form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled{background:#f3f4f6;cursor:not-allowed}.calculated-usd{background:#eff6ff;padding:12px;border-radius:6px;margin-bottom:16px;border:1px solid #bfdbfe}.calculated-usd label{display:block;color:#1e40af;font-size:12px;margin-bottom:4px}.calculated-amount{font-size:20px;font-weight:700;color:#1e40af}.divider{height:1px;background:#e5e7eb;margin:24px 0}.update-button,.journal-button{padding:8px 16px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.update-button{background:#3b82f6;color:#fff}.update-button:hover:not(:disabled){background:#2563eb}.journal-button{background:#10b981;color:#fff;width:100%}.journal-button:hover:not(:disabled){background:#059669}.update-button:disabled,.journal-button:disabled{background:#9ca3af;cursor:not-allowed}.balances-section{background:#f0f9ff;padding:16px;border-radius:6px;margin-top:20px;border:1px solid #bfdbfe}.balances-section h4{margin:0 0 12px;color:#1e40af;font-size:16px}.balance-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.balance-row:last-child{margin-bottom:0}.balance-row label{color:#6b7280;font-size:14px}.balance-value{font-size:16px;font-weight:700;color:#1e40af}.last-exchange{margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.last-exchange label{color:#6b7280;font-size:12px;margin-right:8px}.last-exchange div{color:#374151;font-size:14px}.message{padding:12px;border-radius:6px;margin-bottom:16px;font-size:14px}.message.error{background:#fef2f2;color:#991b1b;border:1px solid #fee2e2}.message.success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;padding:24px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto}.modal-content h4{margin:0 0 16px;color:#1f2937;font-size:18px}.modal-body{margin-bottom:24px}.modal-body p{color:#4b5563;margin-bottom:16px;font-size:14px}.journal-details{background:#f9fafb;padding:16px;border-radius:6px;margin-bottom:16px}.journal-details .detail-row{display:flex;justify-content:space-between;margin-bottom:8px}.journal-details .detail-row:last-child{margin-bottom:0}.journal-details label{color:#6b7280;font-size:14px}.journal-details .amount{font-size:18px;font-weight:700;color:#10b981}.journal-details .user-id{font-family:Monaco,Courier New,monospace;font-size:12px;color:#6b7280}.warning{background:#fef3c7;color:#92400e;padding:12px;border-radius:6px;font-size:14px;border:1px solid #fde68a}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.confirm-button,.cancel-button{padding:8px 16px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.confirm-button{background:#10b981;color:#fff}.confirm-button:hover:not(:disabled){background:#059669}.confirm-button:disabled{background:#9ca3af;cursor:not-allowed}.cancel-button{background:#f3f4f6;color:#374151}.cancel-button:hover:not(:disabled){background:#e5e7eb}.user-lookup{padding:0}.user-lookup h2{font-size:24px;font-weight:700;margin-bottom:24px;color:#333}.users-table-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:24px;margin-bottom:24px}.users-table-section h3{font-size:18px;font-weight:600;margin-bottom:16px;color:#333}.loading-message{text-align:center;padding:20px;color:#6b7280}.users-table{width:100%;border-collapse:collapse}.users-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.users-table th{padding:12px;text-align:left;font-size:14px;font-weight:600;color:#4b5563;text-transform:uppercase;font-size:12px;letter-spacing:.5px}.users-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s}.users-table tbody tr:hover{background:#f9fafb}.users-table tbody tr.selected{background:#dbeafe}.users-table td{padding:12px;font-size:14px;color:#111827}.users-table td.bank-ref{font-family:monospace;font-size:13px;color:#6b7280}.users-table td.no-users{text-align:center;color:#9ca3af;font-style:italic;padding:24px}.select-button{padding:6px 12px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:background .2s}.select-button:hover{background:#2563eb}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:20px;padding-top:20px;border-top:1px solid #e5e7eb}.pagination-button{padding:8px 16px;background:#fff;color:#4b5563;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.pagination-button:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.page-info{font-size:14px;color:#6b7280}.search-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:24px;margin-bottom:24px}.search-form{display:flex;gap:16px}.search-input{flex:1;padding:8px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:14px}.search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.search-button{padding:8px 24px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s}.search-button:hover:not(:disabled){background:#2563eb}.search-button:disabled{opacity:.5;cursor:not-allowed}.message{margin-top:16px;padding:12px;border-radius:8px}.message.success{background:#d1fae5;color:#065f46}.message.error{background:#fee2e2;color:#991b1b}.user-details{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:24px}.details-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.details-header h3{font-size:20px;font-weight:600;color:#333;margin:0}.edit-button,.save-button,.cancel-button{padding:8px 16px;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s}.edit-button{background:#4b5563;color:#fff}.edit-button:hover{background:#374151}.save-button{background:#10b981;color:#fff;margin-right:8px}.save-button:hover:not(:disabled){background:#059669}.save-button:disabled{opacity:.5;cursor:not-allowed}.cancel-button{background:#9ca3af;color:#fff}.cancel-button:hover{background:#6b7280}.detail-row{margin-bottom:16px}.detail-label{display:block;font-size:14px;font-weight:500;color:#4b5563;margin-bottom:4px}.detail-value{color:#111827;font-size:14px}.detail-value.uuid{font-family:monospace;font-size:13px;color:#6b7280}.detail-value.empty{color:#9ca3af;font-style:italic}.detail-input{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px}.detail-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.groups-list{display:flex;flex-wrap:wrap;gap:8px}.group-badge{padding:4px 12px;background:#dbeafe;color:#1e40af;border-radius:9999px;font-size:14px}.dashboard{min-height:100vh;width:100vw;background-color:#f5f7fa}.dashboard-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px 40px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 10px #0000001a}.dashboard-header h1{margin:0;font-size:24px}.logout-btn{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;transition:background .2s}.logout-btn:hover{background:#ffffff4d}.dashboard-content{max-width:1200px;margin:0 auto;padding:40px 20px}.tabs{display:flex;gap:10px;margin-bottom:30px;border-bottom:2px solid #e1e4e8}.tab{background:none;border:none;padding:12px 24px;font-size:16px;font-weight:500;color:#666;cursor:pointer;position:relative;transition:color .2s}.tab:hover{color:#333}.tab.active{color:#667eea}.tab.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:#667eea}.tab-content{background:#fff;border-radius:8px;padding:30px;box-shadow:0 2px 8px #0000001a}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
