.ris-activity-page { padding: 12px; @media (max-width: 599px) { padding-bottom: 120px; } } .circuits-header { margin-bottom: 12px; .section-title { margin: 0; font-size: 16px; font-weight: 600; opacity: 0.8; } } .circuits-tabs { display: grid; gap: 10px; margin-bottom: 16px; @media (min-width: 768px) { grid-template-columns: repeat(2, 1fr); } @media (min-width: 1024px) { grid-template-columns: repeat(3, 1fr); } } .circuit-tab { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 2px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 12px; cursor: pointer; transition: all 0.2s; &:hover { background: rgba(255, 255, 255, 0.08); border-color: rgba(102, 126, 234, 0.3); } &.active { background: linear-gradient( 135deg, rgba(102, 126, 234, 0.25), rgba(118, 75, 162, 0.25) ); border-color: rgba(102, 126, 234, 0.6); box-shadow: 0 4px 12px rgba(102, 126, 234, 0.2); } .circuit-tab-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; .circuit-tab-name { font-size: 14px; font-weight: 600; } .circuit-badge { font-size: 10px; } } .circuit-tab-balance { font-size: 24px; font-weight: 700; .currency { font-size: 12px; opacity: 0.7; font-weight: 400; } } } .statistics-section { background: $gradient-primary; margin-bottom: 16px; color: white; font-weight: bold; .stats-title { font-size: 14px; font-weight: 600; opacity: 0.8; margin: 0 0 10px 0; } } .wallet-transactions { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; @media (min-width: 600px) { grid-template-columns: repeat(4, 1fr); } } .transaction-stat { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 12px; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; .q-icon { opacity: 0.7; } .stat-number { font-size: 22px; font-weight: 700; line-height: 1; } .stat-label { font-size: 11px; opacity: 0.7; text-transform: uppercase; } &.total { .q-icon, .stat-number { color: #71afd0; } } &.members { .q-icon, .stat-number { color: #b8a1cf; } } &.sent { .q-icon, .stat-number { color: #f87171; } } &.received { .q-icon, .stat-number { color: #34d399; } } } .quick-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; .action-btn { height: 60px; display: flex; flex-direction: column; gap: 6px; font-weight: 600; .q-icon { margin: 0; } span { font-size: 13px; } } } .explore-btn { width: 100%; margin-bottom: 16px; padding: 8px; display: flex; gap: 6px; @media (min-width: 600px) { margin-bottom: 8px; } } .activity-feed { .date-group { margin-bottom: 16px; } .date-header { font-size: 12px; font-weight: 600; text-transform: uppercase; opacity: 0.6; margin-bottom: 8px; padding-left: 4px; } } .activity-card { display: flex; gap: 12px; background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 12px; margin-bottom: 8px; cursor: pointer; transition: all 0.2s; &:hover { transform: translateX(4px); background: rgba(255, 255, 255, 0.08); } .activity-content { flex: 1; min-width: 0; .activity-title { font-size: 14px; margin-bottom: 4px; strong { font-weight: 600; } } .activity-meta { display: flex; gap: 6px; font-size: 12px; opacity: 0.6; margin-bottom: 4px; } .activity-description { font-size: 13px; opacity: 0.8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } } .activity-amount { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; .amount-value { font-size: 18px; font-weight: 700; } .amount-currency { font-size: 11px; opacity: 0.6; } &.sent { .amount-value { color: #f87171; } } &.received { .amount-value { color: #34d399; } } } } .empty-state { text-align: center; padding: 60px 20px; opacity: 0.6; p { margin: 16px 0; font-size: 16px; } } .loading-indicator { text-align: center; padding: 20px; } // Dialog styles .send-dialog, .receive-dialog, .confirm-dialog { min-width: 90vw; max-width: 500px; @media (min-width: 600px) { min-width: 500px; } } .dialog-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; display: flex; justify-content: space-between; align-items: center; .dialog-title { display: flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 600; } } .contacts-section { margin-bottom: 16px; .section-title { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; text-transform: uppercase; opacity: 0.6; margin-bottom: 8px; } } .contacts-scrollable { max-height: 300px; overflow-y: auto; } .contact-item { display: flex; align-items: center; gap: 12px; padding: 12px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 12px; margin-bottom: 8px; cursor: pointer; transition: all 0.2s; &:hover { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.15); } &.recent { background: rgba(102, 126, 234, 0.15); border-color: rgba(102, 126, 234, 0.3); } .contact-info { flex: 1; min-width: 0; .contact-name { font-weight: 500; margin-bottom: 2px; } .contact-username { font-size: 12px; opacity: 0.7; } .contact-email { font-size: 11px; opacity: 0.5; } } } .no-results { text-align: center; padding: 40px 20px; opacity: 0.5; p { margin-top: 12px; } } .receive-info { display: flex; gap: 12px; align-items: flex-start; padding: 12px; background: rgba(33, 150, 243, 0.1); border: 1px solid rgba(33, 150, 243, 0.2); border-radius: 8px; margin-bottom: 16px; font-size: 13px; p { margin: 0; } } .confirm-details { background: rgba(255, 255, 255, 0.03); border-radius: 12px; padding: 16px; margin-bottom: 16px; .confirm-row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.05); &:last-child { border-bottom: none; } .confirm-label { opacity: 0.7; font-size: 14px; } .confirm-value { font-weight: 600; } } } .input-currency { opacity: 0.7; font-weight: 600; } .confirm-result { display: flex; justify-content: space-between; align-items: center; padding: 16px; background: rgba(102, 126, 234, 0.15); border-radius: 12px; .result-label { font-size: 14px; opacity: 0.8; } .result-value { font-size: 24px; font-weight: 700; color: #34d399; &.negative { color: #f87171; } &.positive { color: #34d399; } } } .receive-note { display: flex; gap: 8px; align-items: center; margin-top: 12px; padding: 12px; background: rgba(255, 193, 7, 0.1); border: 1px solid rgba(255, 193, 7, 0.2); border-radius: 8px; font-size: 12px; opacity: 0.8; } // Azioni RIS .ris-actions-section { margin-bottom: $s-lg; } .ris-actions-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: $s-md; } .ris-action-btn { padding: $s-lg; font-size: 1rem; font-weight: 700; transition: all 0.3s ease; min-height: 60px; &:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2); } &.send-btn { background: $gradient-blue; color: white; } &.receive-btn { background: linear-gradient(135deg, #10b981 0%, #059669 100%); color: white; } } .quick-actions-section { margin-bottom: $s-lg; @media (max-width: 599px) { position: fixed; bottom: 0; left: 0; right: 0; margin-bottom: 54px; padding: 12px 16px; padding-bottom: calc(12px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); border-top: 1px solid rgba(0, 0, 0, 0.1); z-index: 1000; } } .quick-actions-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: $s-sm; } .quick-action-btn { display: flex; flex-direction: column; align-items: center; line-height: 110%; gap: 6px; padding: $s-sm $s-sm; background: rgba(103, 126, 234, 0.1); backdrop-filter: blur(10px); border: 1px solid rgba(103, 126, 234, 0.3); border-radius: 12px; color: #667eea; transition: all 0.2s; min-height: 80px; @media (max-width: 599px) { min-height: 60px; padding: 4px 2px; } &:hover { background: rgba(103, 126, 234, 0.2); transform: translateY(-2px); } &:active { transform: scale(0.98); } .q-icon { color: #667eea; } span { font-size: 12px; font-weight: 600; text-align: center; color: #667eea; @media (max-width: 599px) { font-size: 11px; } } &.active { background: rgba(103, 126, 234, 0.25); border-color: rgba(103, 126, 234, 0.5); .q-icon, span { color: #5a67d8; font-weight: 700; } } } .tab-content { animation: fadeIn 0.3s ease; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .section-header { padding: 0 0px; margin-bottom: 16px; } .stats-card { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 16px; padding: 20px; margin: 0 0px 16px; .stats-card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; h3 { font-size: 18px; font-weight: 600; margin: 0; } } .stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; @media (max-width: 599px) { grid-template-columns: 1fr; } } .stat-item { display: flex; gap: 12px; align-items: center; padding: 12px; background: rgba(255, 255, 255, 0.05); border-radius: 12px; .stat-content { flex: 1; .stat-label { font-size: 12px; opacity: 0.7; margin-bottom: 4px; } .stat-value { font-size: 16px; font-weight: 600; } } } } .circuit-card { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 16px; padding: 20px; margin: 0 0px 16px; .circuit-card-header { margin-bottom: 16px; .circuit-card-title { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; h3 { font-size: 20px; font-weight: 600; margin: 0; } } .circuit-card-balance { font-size: 28px; font-weight: 700; color: #667eea; .currency { font-size: 16px; opacity: 0.7; } } } .circuit-card-body { margin-bottom: 16px; } .circuit-info-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.05); &:last-child { border-bottom: none; } .info-label { flex: 1; font-size: 14px; opacity: 0.8; } .info-value { font-size: 14px; font-weight: 600; } } .circuit-card-actions { display: flex; gap: 8px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, 0.1); } } // ========== WALLET CARD (da Riso_Home_Modern) ========== .wallet-card { background: $gradient-primary; border-radius: $r-md; padding: $s-md; color: white; box-shadow: 0 6px 20px rgba(102, 126, 234, 0.3); .wallet-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: $s-lg; } .wallet-balances { margin-bottom: $s-lg; .balance-primary { display: flex; flex-direction: column; gap: 4px; margin-bottom: $s-md; .balance-label { font-size: 0.95rem; opacity: 0.9; } .balance-value { font-size: 2.8rem; font-weight: 800; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); letter-spacing: -0.5px; } .balance-hint { font-size: 0.8rem; opacity: 0.75; font-style: italic; } } .balance-secondary { display: flex; align-items: baseline; gap: $s-sm; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(5px); padding: $s-sm $s-md; border-radius: $r-sm; .balance-label-small { font-size: 1rem; opacity: 0.9; } .balance-value-small { font-size: 1.3rem; font-weight: 700; } } } .wallet-limits { display: grid; grid-template-columns: repeat(2, 1fr); gap: $s-sm; margin-bottom: $s-lg; .limit-item { display: flex; flex-direction: column; align-items: center; gap: 4px; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(5px); padding: $s-sm; border-radius: $r-sm; border: 2px solid rgba(255, 255, 255, 0.2); &.negative { border-color: rgba(239, 68, 68, 0.4); } &.positive { border-color: rgba(16, 185, 129, 0.4); } .q-icon { opacity: 0.8; } .limit-label { font-size: 0.9rem; opacity: 0.85; text-align: center; } .limit-value { font-size: 1.1rem; font-weight: 700; } } } .wallet-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: $s-md; margin-bottom: $s-lg; .stat-item { display: flex; align-items: center; gap: $s-sm; background: rgba(255, 255, 255, 0.15); backdrop-filter: blur(10px); padding: $s-md; border-radius: $r-md; .q-icon { background: rgba(255, 255, 255, 0.3); border-radius: 50%; padding: $s-xs; } .stat-content { display: flex; flex-direction: column; gap: 2px; .stat-value { font-size: 1.3rem; font-weight: 700; } .stat-label { font-size: 0.8rem; opacity: 0.9; } } } } .wallet-detail-btn { width: 100%; background: rgba(255, 255, 255, 0.2); backdrop-filter: blur(10px); color: white; font-weight: 600; &:hover { background: rgba(255, 255, 255, 0.3); } } } // ========== RECENT TRANSACTIONS (da Riso_Home_Modern) ========== .recent-transactions { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(5px); border-radius: $r-md; padding: $s-md; margin-bottom: $s-lg; .transactions-title { margin: 0 0 $s-md 0; font-size: 0.95rem; font-weight: 700; opacity: 0.95; } .transaction-list { display: flex; flex-direction: column; gap: $s-sm; } .transaction-item { display: flex; align-items: center; gap: $s-sm; background: rgba(255, 255, 255, 0.1); padding: $s-sm; border-radius: $r-sm; cursor: pointer; transition: all 0.3s ease; &:hover { background: rgba(255, 255, 255, 0.2); transform: translateX(4px); } .transaction-content { flex: 1; display: flex; flex-direction: column; gap: 2px; .transaction-desc { font-size: 1rem; font-weight: 600; } .transaction-time { font-size: 0.9rem; opacity: 0.8; } } .transaction-amount { font-size: 0.95rem; font-weight: 700; &.positive { color: #d1fae5; } &.negative { color: #fecaca; } &.community { color: #a78bfa; } } } } // Transazioni Header .transactions-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: $s-md; .transactions-title { margin: 0; font-size: 0.95rem; font-weight: 700; opacity: 0.95; } } // Transazioni community con 2 avatar .transaction-users { display: flex; align-items: center; gap: 4px; } // Overview saldi circuiti .circuits-balance-overview { display: grid; grid-template-columns: repeat(2, 1fr); gap: $s-sm; margin-bottom: $s-lg; .circuit-balance-mini { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(5px); border-radius: $r-sm; padding: 8px; border: 1px solid rgba(255, 255, 255, 0.2); .circuit-name { display: block; font-size: 0.9rem; font-weight: bold; opacity: 0.9; margin-bottom: 4px; font-weight: 600; } .balance-mini-row { display: flex; flex-direction: column; gap: 2px; font-size: 0.8rem; strong { font-weight: 700; } } } } // Dual buttons toggle .dual-btns { border-radius: 12px; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); }