Files
no-copy-frontend/src/app/styles/payment-container.scss
T

337 lines
5.9 KiB
SCSS
Raw Normal View History

2025-12-01 17:36:20 +07:00
.payment-container {
max-width: 1200px;
margin: 0 auto;
padding: 15px;
.page-title {
font-size: 1.8rem;
margin-bottom: 8px;
}
.usage-stats,
.tokens-stats {
background: white;
border-radius: 16px;
padding: 25px;
margin-bottom: 25px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
h3 {
margin-bottom: 16px;
color: #1e293b;
font-size: 1.15rem;
}
}
.stats-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
gap: 16px;
.stat-card {
background: #f8fafc;
border-radius: 14px;
padding: 16px;
text-align: center;
border: 1px solid #e2e8f0;
}
.stat-value {
font-size: 1.6rem;
font-weight: 700;
color: #1e293b;
margin-bottom: 4px;
}
.stat-label {
color: #64748b;
font-size: 0.85rem;
}
.progress-bar {
width: 100%;
height: 6px;
background: #e2e8f0;
border-radius: 3px;
overflow: hidden;
margin-top: 8px;
}
.progress-fill {
height: 100%;
background: linear-gradient(90deg, #10b981, #059669);
transition: width 1s ease;
}
}
.tokens-stats {
.tokens-comparison {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin-bottom: 25px;
}
.month-stats {
background: #f8fafc;
border-radius: 14px;
padding: 16px;
text-align: center;
&.current {
background: linear-gradient(135deg, #e0e7ff, #c7d2fe);
border: 2px solid #6366f1;
.spent-amount {
background: linear-gradient(135deg, #6366f1, #8b5cf6);
-webkit-text-fill-color: transparent;
background-clip: text;
}
}
.spent-amount {
font-size: 2.2rem;
font-weight: 800;
margin-bottom: 6px;
color: #64748b;
}
.month-title {
font-size: 1rem;
font-weight: 600;
color: #1e293b;
margin-bottom: 12px;
}
.spent-label {
margin-bottom: 8px;
}
.spent-label,
.protected-label {
color: #64748b;
font-size: 0.85rem;
}
}
}
.payment-tabs {
display: flex;
gap: 8px;
margin-bottom: 25px;
background: white;
border-radius: 16px;
padding: 6px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
.payment-tab {
flex: 1;
text-align: center;
padding: 12px 16px;
border-radius: 12px;
cursor: pointer;
transition: all .3s;
font-weight: 600;
font-size: 0.9rem;
border: none;
background: transparent;
color: #64748b;
&.active {
background: linear-gradient(135deg, #6366f1, #8b5cf6);
color: white;
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(99, 102, 241, 0.3);
&:hover {
background: linear-gradient(135deg, #6366f1, #8b5cf6);
}
}
&:hover {
background: linear-gradient(135deg, #d7d8e9, #aa90e9);
}
}
}
.tab-content {
.billing-toggle {
text-align: center;
margin-bottom: 30px;
&>div {
display: inline-block;
background: white;
border-radius: 16px;
padding: 5px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}
.billing-btn {
padding: 10px 25px;
border: none;
border-radius: 12px;
font-weight: 600;
cursor: pointer;
transition: 0.3s;
background: transparent;
color: rgb(100, 116, 139);
position: relative;
font-size: 0.9rem;
&.active {
background: linear-gradient(135deg, rgb(99, 102, 241), rgb(139, 92, 246));
color: #fff;
}
span {
position: absolute;
top: -6px;
right: -6px;
background: #f59e0b;
color: white;
font-size: 9px;
padding: 2px 5px;
border-radius: 6px;
font-weight: 700;
}
}
}
.subscription-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 20px;
margin-bottom: 25px;
}
.plan-card {
background: white;
border-radius: 20px;
padding: 25px;
position: relative;
border: 2px solid #e2e8f0;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
cursor: pointer;
overflow: visible;
.plan-header {
text-align: center;
margin-bottom: 20px;
position: relative;
}
.plan-icon {
font-size: 2.5rem;
margin-bottom: 8px;
filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
}
.plan-name {
font-size: 1.2rem;
font-weight: 700;
color: #1e293b;
margin-bottom: 6px;
}
.plan-price {
font-size: 2rem;
font-weight: 800;
background: linear-gradient(135deg, #6366f1, #8b5cf6);
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 4px;
}
.plan-period {
color: #64748b;
font-size: 0.85rem;
}
.plan-tokens {
background: linear-gradient(135deg, #e3f2fd, #bbdefb);
color: #1976d2;
padding: 6px 14px;
border-radius: 16px;
font-size: 0.85rem;
font-weight: 600;
margin: 12px auto;
display: inline-block;
}
.plan-features {
list-style: none;
margin-bottom: 20px;
}
.plan-feature {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 0;
font-size: 0.9rem;
color: #374151;
}
.feature-icon {
width: 18px;
height: 18px;
border-radius: 50%;
background: #10b981;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 11px;
flex-shrink: 0;
&.not {
background: #ef4444;
}
}
}
}
.secure-payments-wrapper {
background: white;
border-radius: 16px;
padding: 20px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
h3 {
margin-bottom: 16px;
color: #1e293b;
display: flex;
align-items: center;
gap: 8px;
font-size: 1.1rem;
}
.secure-payments-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
gap: 16px;
text-align: center;
}
.secure-payments-card {
padding: 12px;
.secure-payments-card-header {
font-size: 1.8rem;
margin-bottom: 8px;
}
h4 {
color: #1e293b;
margin-bottom: 6px;
font-size: 0.95rem;
}
p {
color: #64748b;
font-size: 0.85rem;
}
}
}
}