diff --git a/css/main.css b/css/main.css index bc2ec5a..f83b479 100644 --- a/css/main.css +++ b/css/main.css @@ -17,29 +17,29 @@ body { body { --accent-color: #256eff; --text-color: 20, 20, 20; - --background-color: 240, 240, 240; - --foreground-color: 250, 250, 250; + --foreground-color: 252, 253, 255; + --background-color: 241, 243, 248; --danger-color: rgb(255, 75, 75); --green: #1cad59; + --yellow: rgb(220, 165, 0); scrollbar-width: thin; scrollbar-gutter: stable; color: rgba(var(--text-color), 1); background-color: rgba(var(--background-color), 1); transition: background-color 0.3s; + position: relative; display: flex; flex-direction: column; - align-items: center; - justify-content: center; - overflow: hidden; } body[data-theme=dark] { - --accent-color: #86afff; + --accent-color: #90b8f8; --text-color: 220, 220, 220; - --background-color: 10, 10, 10; - --foreground-color: 24, 24, 24; + --foreground-color: 27, 28, 29; + --background-color: 21, 22, 22; --danger-color: rgb(255, 106, 106); --green: #00e676; + --yellow: rgb(255, 213, 5); } body[data-theme=dark] sm-popup::part(popup) { background-color: rgba(var(--foreground-color), 1); @@ -64,6 +64,13 @@ a { a:focus-visible { box-shadow: 0 0 0 0.1rem rgba(var(--text-color), 1) inset; } +a.button { + padding: 0.4rem 0.6rem; + border-radius: 0.3rem; + font-size: 0.9rem; + font-weight: 500; + color: inherit; +} button { -webkit-user-select: none; @@ -95,23 +102,21 @@ button:not(:disabled) { .button { background-color: rgba(var(--text-color), 0.06); } - -.button--primary, -.button--danger { +.button--primary, .button--danger { color: rgba(var(--background-color), 1); } -.button--primary .icon, -.button--danger .icon { +.button--primary .icon, .button--danger .icon { fill: rgba(var(--background-color), 1); } - .button--primary { background-color: var(--accent-color); } - .button--danger { background-color: var(--danger-color); } +.button--small { + padding: 0.4rem 0.6rem; +} .cta { text-transform: uppercase; @@ -177,7 +182,7 @@ sm-textarea button .icon { } sm-button { - --padding: 0.6rem 0.8rem; + --padding: 0.8rem; } sm-button[variant=primary] .icon { fill: rgba(var(--background-color), 1); @@ -199,6 +204,10 @@ sm-form { --gap: 1rem; } +sm-select { + --padding: 0.8rem; +} + strip-select { --gap: 0; background-color: rgba(var(--text-color), 0.06); @@ -239,27 +248,6 @@ ul { grid-column: 1/-1; } -.h1 { - font-size: 1.5rem; -} - -.h2 { - font-size: 1.2rem; -} - -h3 { - font-size: 1.2rem; - line-height: 1.3; -} - -.h4 { - font-size: 0.9rem; -} - -.h5 { - font-size: 0.75rem; -} - .uppercase { text-transform: uppercase; } @@ -338,7 +326,7 @@ h3 { } .justify-start { - justify-content: start; + justify-items: start; } .justify-center { @@ -458,6 +446,36 @@ h3 { fill: var(--accent-color); } +.page { + height: 100%; +} +.page__header { + display: flex; + justify-content: space-between; + margin-bottom: 1.5rem; +} +.page__header .grid { + margin-top: auto; +} +.page__header h1 { + margin-top: auto; + font-size: 2rem; +} +.page__header .illustration { + height: 8rem; + width: auto; +} + +.page-layout { + display: grid; + gap: 1.5rem 0; + grid-template-columns: 1.5rem minmax(0, 1fr) 1.5rem; + align-content: flex-start; +} +.page-layout > * { + grid-column: 2/3; +} + #confirmation_popup, #prompt_popup { flex-direction: column; @@ -492,7 +510,6 @@ h3 { width: 100%; padding: 0 1.5rem; align-items: center; - grid-auto-flow: column; } .popup__header__close { @@ -501,24 +518,88 @@ h3 { cursor: pointer; } +.flo-icon { + margin-right: 0.3rem; + height: 1.5rem; + width: 1.5rem; +} + +#secondary_pages { + display: flex; + flex-direction: column; + width: 100%; +} +#secondary_pages header { + padding: 1.5rem; +} +#secondary_pages .inner-page { + height: 100%; +} + +#landing > section { + justify-content: center; + justify-items: center; + align-items: center; + text-align: center; + padding: 8vw 0; +} +#landing h1 { + font-size: clamp(2rem, 5vw, 5rem); +} + +#sign_in, +#sign_up { + justify-items: center; + align-content: center; +} +#sign_in section, +#sign_up section { + margin-top: -8rem; + width: min(24rem, 100%); +} +#sign_in sm-form, +#sign_up sm-form { + margin: 2rem 0; +} + +#sign_up .h2 { + margin-bottom: 0.5rem; +} +#sign_up .card { + margin: 1.5rem 0; +} +#sign_up h5 { + font-weight: 500; + color: rgba(var(--text-color), 0.8); +} + +#flo_id_warning { + padding-bottom: 1.5rem; + border-bottom: thin solid rgba(var(--text-color), 0.3); +} +#flo_id_warning .icon { + height: 4rem; + width: 4rem; + padding: 1rem; + background-color: #ffc107; + border-radius: 3rem; + fill: rgba(0, 0, 0, 0.8); + margin-bottom: 1.5rem; +} + #main_header { - padding: 1rem 1.5rem; + padding: 1.5rem; } #main_card { - display: flex; - flex-direction: column; + display: grid; + grid-template-columns: minmax(0, 1fr); + grid-template-rows: auto 1fr; height: 100%; width: 100%; - background-color: rgba(var(--foreground-color), 1); transition: background-color 0.3s; } -#pages_container { - flex: 1; - overflow-y: auto; -} - #main_navbar { display: flex; background: rgba(var(--text-color), 0.03); @@ -545,15 +626,15 @@ h3 { justify-content: center; padding: 0.5rem 0.3rem; color: var(--text-color); - font-size: 0.7rem; + font-size: 0.8rem; border-radius: 0.3rem; } .nav-item .icon { - transition: transform 0.2s; + transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); } .nav-item__title { margin-top: 0.3rem; - transition: opacity 0.2s, transform 0.2s; + transition: opacity 0.2s, transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); } .nav-item--active { color: var(--accent-color); @@ -575,6 +656,30 @@ h3 { border-radius: 1rem 1rem 0 0; z-index: 1; } +.nav-item .badge { + display: flex; + align-items: center; + justify-content: center; + content: attr(data-notifications); + position: absolute; + top: 0; + right: 0; + font-size: 0.8rem; + padding: 0.3rem; + background: var(--accent-color); + color: rgba(var(--background-color), 1); + aspect-ratio: 1/1; + font-weight: 700; + border-radius: 0.3rem; + margin: 0.3rem; +} + +.inner-page { + padding: 0 1.5rem; + flex: 1; + overflow-y: auto; + align-content: start; +} .password-field label { display: flex; @@ -598,58 +703,230 @@ h3 { z-index: 1; } -.clip { - -webkit-clip-path: circle(0); - clip-path: circle(0); +#home { + padding: 0; + position: relative; +} + +#user, +#cashier { + position: relative; + gap: 2rem; + height: 100%; + padding: 0 1.5rem; + overflow-y: auto; + padding-bottom: 5rem; + align-content: flex-start; +} + +#quick_actions_container { + display: grid; + gap: 0.5rem; + grid-template-columns: repeat(auto-fill, minmax(6rem, 1fr)); } .primary-action { display: flex; - padding: 0.8rem 1rem; + flex-direction: column; + align-items: center; + padding: 0.8rem; gap: 0.5rem; white-space: normal; font-size: 0.8rem; border-radius: 0.5rem; - background-color: transparent; - border: thin solid rgba(var(--text-color), 0.3); + font-weight: 400; + background-color: rgba(var(--text-color), 0.03); + text-align: center; } .primary-action .icon { fill: var(--accent-color); } -.primary-action:not(:last-of-type) { - margin-right: 0.5rem; + +#rupee_balance span:first-of-type { + font-size: 2rem; +} +#rupee_balance span:last-of-type { + font-size: 1rem; } -.page { - position: relative; - display: flex; - flex-direction: column; - overflow-y: auto; - align-content: flex-start; - padding: 1.5rem; -} - -#wallet_section { +.wallet-action { background-color: rgba(var(--text-color), 0.03); - border-radius: 0.5rem; - padding: 1.5rem; + flex: 1; +} +.wallet-action:nth-of-type(2) { + margin-left: 0.5rem; +} +.wallet-action .icon { + margin-right: 0.5rem; + fill: var(--accent-color); } -#transactions_list { - flex-direction: column; +#saved_ids_list { + display: grid; + grid-template-columns: minmax(0, 1fr); + margin-top: 1rem; +} + +.saved-id { + grid-template-columns: auto 1fr; + gap: 0 0.8rem; + border-radius: 0.3rem; + padding: 0.8rem 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.saved-id.highlight { + box-shadow: 0 0 0.1rem 0.1rem var(--accent-color) inset; +} +.saved-id .edit-saved { + grid-area: 1/1/3/2; + padding: 0.3rem; + position: relative; +} +.saved-id .edit-saved .icon { + position: absolute; + height: 1.2rem; + width: 1.2rem; + right: 0; + bottom: 0; + border-radius: 0.5rem; + padding: 0.2rem; + background-color: rgba(var(--background-color), 1); +} +.saved-id__initials { + display: flex; + align-items: center; + justify-content: center; + height: 2.4rem; + width: 2.4rem; + font-size: 1.2rem; + text-transform: uppercase; + color: rgba(var(--background-color), 1); + font-weight: 700; + line-height: 1; + background-color: var(--accent-color); + justify-self: flex-start; + border-radius: 2rem; +} +.saved-id__title { + align-self: flex-end; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-weight: 500; +} +.saved-id__flo-id { + font-size: 0.8rem; +} + +.card { + background-color: rgba(var(--foreground-color), 1); + border-radius: 0.5rem; + padding: 1rem; +} + +#contact { + display: grid; + grid-template-rows: auto 1fr auto; + padding: 0; + height: 100%; +} +#contact > * { + padding: 1rem 1.5rem; +} +#contact > :first-child { + padding-top: 0; +} +#contact > :last-child { + padding: 0.5rem 1.5rem; + background-color: rgba(var(--text-color), 0.03); +} +#contact > :last-child button { + padding: 0.8rem 2rem; + border-radius: 1rem; + color: var(--accent-color); + background-color: rgba(var(--foreground-color), 1); +} + +#contact__transactions { + position: relative; + display: grid; + gap: 0.5rem; + overflow-y: auto; + flex: 1; + padding: 0 max(1rem, 8vw) 1rem max(1rem, 8vw); + align-content: flex-start; +} +#contact__transactions sm-spinner { + position: absolute; + justify-self: center; + align-self: center; +} + +.transaction-message { + background-color: rgba(var(--text-color), 0.06); + padding: 1rem; + border-radius: 0.5rem; + justify-self: flex-start; + border-radius: 0 1rem 1rem 1rem; + gap: 0.5rem; +} +.transaction-message.received { + background-color: var(--accent-color); + color: rgba(var(--background-color), 1); +} +.transaction-message.received + .transaction-message.received { + border-radius: 1rem; +} +.transaction-message.sent { + margin-left: auto; + justify-self: flex-end; + border-radius: 1rem 1rem 0 1rem; + text-align: right; +} +.transaction-message__amount { + font-size: 1.2rem; +} +.transaction-message__time { + opacity: 0.8; + font-size: 0.8rem; +} + +#wallet_history_wrapper { + margin-top: 1.5rem; + padding-bottom: 3rem; +} + +#payments_history { + display: grid; + gap: 2rem; padding-bottom: 4rem; } .transaction { grid-template-columns: auto 1fr auto; gap: 0.5rem 1rem; - padding: 0.8rem; align-items: center; - background-color: rgba(var(--text-color), 0.03); - border-radius: 0.3rem; } -.transaction:not(:last-of-type) { - margin-bottom: 0.5rem; +.transaction.sent .icon { + fill: rgba(var(--text-color), 0.8); +} +.transaction.sent .transaction__amount { + color: rgba(var(--text-color), 0.8); +} +.transaction.sent .transaction__amount::before { + content: "- "; +} +.transaction.received .icon { + fill: var(--green); +} +.transaction.received .transaction__amount { + color: var(--green); +} +.transaction.received .transaction__amount::before { + content: "+ "; } .transaction__icon { display: flex; @@ -659,15 +936,10 @@ h3 { width: 2.5rem; height: 2.5rem; background-color: rgba(var(--text-color), 0.03); - border-radius: 0.5rem; -} -.transaction__icon .icon { - fill: var(--accent-color); + border-radius: 2rem; } .transaction__receiver { - font-size: 0.9rem; font-weight: 500; - color: rgba(var(--text-color), 0.8); } .transaction__time { font-size: 0.8rem; @@ -678,12 +950,6 @@ h3 { font-weight: 700; grid-area: 1/3/3/4; } -.transaction__amount.sent::before { - content: "-"; -} -.transaction__amount.received::before { - content: "+"; -} .fab { position: absolute; @@ -699,46 +965,33 @@ h3 { background-color: rgba(var(--foreground-color), 1); } -#transaction_result { - display: grid; - gap: 0.5rem; - height: max(40vh, 24rem); - align-items: center; - justify-content: center; - text-align: center; - align-content: center; +#add_address_button { + border-radius: 0.5rem; + color: rgba(var(--background-color), 1); + background-color: var(--accent-color); } -#transaction_result.success .icon--failed { - display: none; +#add_address_button .icon { + fill: rgba(var(--background-color), 1); } -#transaction_result.failed .icon--success { - display: none; -} -#transaction_result h3 { - text-align: center; - width: 100%; -} -#transaction_result .icon { + +.user-action-result__icon { justify-self: center; height: 4rem; width: 4rem; border-radius: 5rem; - margin-bottom: 1rem; + margin-bottom: 2rem; -webkit-animation: popup 1s; animation: popup 1s; } -#transaction_result .icon--success { +.user-action-result__icon.success { fill: rgba(var(--background-color), 1); padding: 1rem; background-color: #0bbe56; } -#transaction_result .icon--failed { +.user-action-result__icon.failed { background-color: rgba(var(--text-color), 0.03); fill: var(--danger-color); } -#transaction_result sm-copy { - font-size: 0.8rem; -} @-webkit-keyframes popup { 0% { @@ -780,65 +1033,195 @@ h3 { } } .cashier-request, -.wallet-request, .payment-request { display: flex; gap: 1rem; align-items: center; padding: 0.8rem; border-radius: 0.3rem; - background-color: rgba(var(--text-color), 0.06); + background-color: rgba(var(--foreground-color), 1); } .cashier-request:not(:last-of-type), -.wallet-request:not(:last-of-type), .payment-request:not(:last-of-type) { - margin-bottom: 1rem; + margin-bottom: 0.5rem; } .cashier-request__time, -.wallet-request__time, .payment-request__time { font-size: 0.8rem; } +#payment_request_history { + padding-bottom: 3rem; +} + .payment-request { display: grid; + gap: 0.5rem 1rem; grid-template-columns: 1fr auto; + color: rgba(var(--text-color), 1); +} +.payment-request__requestor { + font-weight: 500; } .payment-request__amount { font-weight: 700; text-align: right; } +.payment-request__status { + display: flex; + align-items: center; + font-size: 0.8rem; + text-transform: capitalize; +} +.payment-request__status .icon { + height: 1rem; + width: 1rem; + margin-left: 0.3rem; +} +.payment-request .icon.paid { + fill: var(--green); +} +.payment-request .icon.declined { + fill: var(--danger-color); +} +.payment-request .button { + background-color: transparent; + padding: 0.6rem 0.8rem; + color: var(--accent-color); + background-color: rgba(var(--foreground-color), 1); +} +.wallet-request { + display: grid; + gap: 0.5rem 1rem; + padding: 0.5rem 0; + border-radius: 0.5rem; + grid-template-columns: auto 1fr; +} +.wallet-request:not(.rejected, .pending).withdrawn .wallet-request__amount::before { + content: "- "; +} +.wallet-request:not(.rejected, .pending).added .wallet-request__amount { + color: var(--green); +} +.wallet-request:not(.rejected, .pending).added .wallet-request__amount::before { + content: "+ "; +} +.wallet-request .icon.pending { + fill: var(--yellow); +} +.wallet-request .icon.failed { + fill: var(--danger-color); +} +.wallet-request__icon { + display: flex; + align-items: center; + justify-content: center; + grid-area: 1/1/3/2; + width: 2.5rem; + height: 2.5rem; + border-radius: 2rem; + background-color: rgba(var(--text-color), 0.06); +} +.wallet-request__icon .icon { + fill: var(--accent-color); +} +.wallet-request__details { + font-weight: 500; +} +.wallet-request__details, .wallet-request__amount { + color: rgba(var(--text-color), 1); +} +.wallet-request__amount { + font-weight: 700; +} +.wallet-request__time, .wallet-request__status { + font-size: 0.8rem; + color: rgba(var(--text-color), 0.8); +} +.wallet-request__status { + text-transform: capitalize; + text-align: right; +} +.wallet-request__status .icon { + margin-left: 0.3rem; +} + +#transaction__remark, +#transaction__note { + line-height: 1.6; + justify-self: flex-start; + background-color: rgba(var(--text-color), 0.06); + border-radius: 0.5rem; + padding: 0.8rem; +} + +#transaction__note .icon { + fill: var(--danger-color); + margin-right: 0.5rem; +} + +#saved_upi_ids_list { + display: grid; + gap: 0.5rem; + width: min(24rem, 100%); +} + +.saved-upi { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0.4rem 0.4rem 0.4rem 1rem; + border-radius: 0.5rem; + background-color: rgba(var(--foreground-color), 1); +} + +@media screen and (max-width: 40rem) { + #main_navbar.hide-away { + bottom: 0; + left: 0; + right: 0; + } +} @media screen and (min-width: 40rem) { sm-popup { --width: 24rem; } + .page-layout { + grid-template-columns: 1fr 90vw 1fr; + } + .popup__header { grid-column: 1/-1; padding: 1rem 1.5rem 0 1.5rem; } + body { + align-items: center; + justify-content: center; + } + #main_card { - display: grid; - grid-template-columns: auto 1fr; - grid-template-rows: auto 1fr; - grid-template-areas: "nav header" "nav main"; + height: calc(100vh - 3rem); + width: calc(100vw - 3rem); + grid-template-areas: "header" "."; position: relative; border-radius: 0.5rem; overflow: hidden; + background-color: rgba(var(--background-color), 1); box-shadow: 0 0.1rem 0.2rem rgba(0, 0, 0, 0.05), 0 1rem 3rem rgba(0, 0, 0, 0.2); - background-color: rgba(var(--foreground-color), 0.9); + } + #main_card:not(.nav-hidden) { + grid-template-columns: auto 1fr; + grid-template-rows: auto 1fr; + grid-template-areas: "nav header" "nav ."; } #main_header { grid-area: header; } - #pages_container { - grid-area: main; - } - #main_navbar { grid-area: nav; border-top: none; @@ -865,16 +1248,19 @@ h3 { bottom: auto; } - #user { - grid-template-columns: 1fr 20rem; - align-content: flex-start; - align-items: flex-start; + .card { + padding: 1.5rem; + } + + #saved_ids_list { + gap: 1rem; + grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); } } @media screen and (min-width: 56rem) { #main_card { - height: 80vh; width: 56rem; + height: min(90vh, 48rem); } } @media (any-hover: hover) { @@ -898,10 +1284,12 @@ h3 { background-color: rgba(var(--text-color), 0.06); } - .button:not([disabled]) { + button:not([disabled]), +.button:not([disabled]) { transition: background-color 0.3s, filter 0.3s; } - .button:not([disabled]):hover { + button:not([disabled]):hover, +.button:not([disabled]):hover { filter: contrast(2); } } diff --git a/css/main.min.css b/css/main.min.css index f425764..dbae1f3 100644 --- a/css/main.min.css +++ b/css/main.min.css @@ -1 +1 @@ -*{padding:0;margin:0;box-sizing:border-box;font-family:"Roboto",sans-serif}:root{font-size:clamp(1rem,1.2vmax,1.2rem)}html,body{height:100%}body{--accent-color: #256eff;--text-color: 20, 20, 20;--background-color: 240, 240, 240;--foreground-color: 250, 250, 250;--danger-color: rgb(255, 75, 75);--green: #1cad59;scrollbar-width:thin;scrollbar-gutter:stable;color:rgba(var(--text-color), 1);background-color:rgba(var(--background-color), 1);transition:background-color .3s;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}body[data-theme=dark]{--accent-color: #86afff;--text-color: 220, 220, 220;--background-color: 10, 10, 10;--foreground-color: 24, 24, 24;--danger-color: rgb(255, 106, 106);--green: #00e676}body[data-theme=dark] sm-popup::part(popup){background-color:rgba(var(--foreground-color), 1)}p,strong{font-size:.9rem;max-width:65ch;line-height:1.7;color:rgba(var(--text-color), 0.9)}p:not(:last-of-type),strong:not(:last-of-type){margin-bottom:1.5rem}a{text-decoration:none;color:var(--accent-color)}a:focus-visible{box-shadow:0 0 0 .1rem rgba(var(--text-color), 1) inset}button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:inline-flex;border:none;background-color:transparent;overflow:hidden;color:inherit;-webkit-tap-highlight-color:transparent;align-items:center;font-size:.9rem;font-weight:500;white-space:nowrap;padding:.8rem;border-radius:.3rem;justify-content:center}button:focus-visible{outline:var(--accent-color) solid medium}button:not(:disabled){cursor:pointer}.button{background-color:rgba(var(--text-color), 0.06)}.button--primary,.button--danger{color:rgba(var(--background-color), 1)}.button--primary .icon,.button--danger .icon{fill:rgba(var(--background-color), 1)}.button--primary{background-color:var(--accent-color)}.button--danger{background-color:var(--danger-color)}.cta{text-transform:uppercase;font-size:.8rem;font-weight:700;letter-spacing:.05em;padding:1rem}.icon-only{padding:.5rem;border-radius:.3rem}button:disabled{opacity:.5}a:-webkit-any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}a:-moz-any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}a:any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}details{padding:1rem 0}details summary{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;align-items:center;justify-content:space-between;color:var(--accent-color)}details[open] summary{margin-bottom:1rem}details[open]>summary .down-arrow{transform:rotate(180deg)}sm-input,sm-textarea{font-size:.9rem;--border-radius: 0.3rem;--background-color: rgba(var(--foreground-color), 1)}sm-input button .icon,sm-textarea button .icon{fill:var(--accent-color)}sm-button{--padding: 0.6rem 0.8rem}sm-button[variant=primary] .icon{fill:rgba(var(--background-color), 1)}sm-button[disabled] .icon{fill:rgba(var(--text-color), 0.6)}sm-button.danger{--background: var(--danger-color);color:rgba(var(--background-color), 1)}sm-spinner{--size: 1rem;--stroke-width: 0.1rem}sm-form{--gap: 1rem}strip-select{--gap: 0;background-color:rgba(var(--text-color), 0.06);border-radius:.3rem;padding:.3rem}strip-option{font-size:.8rem;--border-radius: 0.2rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ul{list-style:none}.overflow-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.breakable{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.full-bleed{grid-column:1/-1}.h1{font-size:1.5rem}.h2{font-size:1.2rem}h3{font-size:1.2rem;line-height:1.3}.h4{font-size:.9rem}.h5{font-size:.75rem}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.sticky{position:-webkit-sticky;position:sticky}.top-0{top:0}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.grid{display:grid}.flow-column{grid-auto-flow:column}.gap-0-5{gap:.5rem}.gap-1{gap:1rem}.gap-1-5{gap:1.5rem}.gap-2{gap:2rem}.gap-3{gap:3rem}.text-align-right{text-align:right}.align-start{align-content:flex-start}.align-center{align-items:center}.align-end{align-items:flex-end}.text-center{text-align:center}.justify-start{justify-content:start}.justify-center{justify-content:center}.justify-right{margin-left:auto}.align-self-center{align-self:center}.justify-self-center{justify-self:center}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.direction-column{flex-direction:column}.space-between{justify-content:space-between}.w-100{width:100%}.h-100{height:100%}.ripple{height:8rem;width:8rem;position:absolute;border-radius:50%;transform:scale(0);background:radial-gradient(circle, rgba(var(--text-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%);pointer-events:none}.button--primary .ripple,.button--danger .ripple{background:radial-gradient(circle, rgba(var(--background-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%)}.interact{position:relative;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent}.empty-state{display:grid;width:100%;padding:1.5rem 0}.observe-empty-state:empty{display:none}.observe-empty-state:not(:empty)+.empty-state{display:none}.bullet-point{display:flex;align-items:center;justify-content:center;margin:0 .8ch}.bullet-point::after{content:"";height:.4ch;width:.4ch;border-radius:.5em;background-color:var(--accent-color)}.icon{width:1.2rem;height:1.2rem;fill:rgba(var(--text-color), 0.8);flex-shrink:0}.margin-right-0-5{margin-right:.5rem}.margin-left-0-5{margin-left:.5rem}.icon-button{padding:.6rem;border-radius:.8rem;background-color:rgba(var(--text-color), 0.1);height:-webkit-max-content;height:-moz-max-content;height:max-content}.icon-button .icon{fill:var(--accent-color)}#confirmation_popup,#prompt_popup{flex-direction:column}#confirmation_popup h4,#prompt_popup h4{font-weight:500;margin-bottom:.5rem}#confirmation_popup sm-button,#prompt_popup sm-button{margin:0}#confirmation_popup .flex,#prompt_popup .flex{padding:0;margin-top:1rem}#confirmation_popup .flex sm-button:first-of-type,#prompt_popup .flex sm-button:first-of-type{margin-right:.6rem;margin-left:auto}#prompt_message{margin-bottom:1.5rem}.popup__header{display:grid;gap:.5rem;width:100%;padding:0 1.5rem;align-items:center;grid-auto-flow:column}.popup__header__close{padding:.5rem;margin-left:-0.5rem;cursor:pointer}#main_header{padding:1rem 1.5rem}#main_card{display:flex;flex-direction:column;height:100%;width:100%;background-color:rgba(var(--foreground-color), 1);transition:background-color .3s}#pages_container{flex:1;overflow-y:auto}#main_navbar{display:flex;background:rgba(var(--text-color), 0.03)}#main_navbar.hide-away{position:absolute}#main_navbar ul{display:flex;height:100%;width:100%}#main_navbar ul li{width:100%}.nav-item{position:relative;display:flex;flex:1;width:100%;flex-direction:column;align-items:center;justify-content:center;padding:.5rem .3rem;color:var(--text-color);font-size:.7rem;border-radius:.3rem}.nav-item .icon{transition:transform .2s}.nav-item__title{margin-top:.3rem;transition:opacity .2s,transform .2s}.nav-item--active{color:var(--accent-color)}.nav-item--active .icon{fill:var(--accent-color);transform:translateY(50%)}.nav-item--active .nav-item__title{transform:translateY(100%);opacity:0}.nav-item__indicator{position:absolute;bottom:0;width:2rem;height:.3rem;background:var(--accent-color);border-radius:1rem 1rem 0 0;z-index:1}.password-field label{display:flex}.password-field label input:checked~.visible{display:none}.password-field label input:not(:checked)~.invisible{display:none}.multi-state-button{display:grid;text-align:center;align-items:center}.multi-state-button>*{grid-area:1/1/2/2}.multi-state-button button{z-index:1}.clip{-webkit-clip-path:circle(0);clip-path:circle(0)}.primary-action{display:flex;padding:.8rem 1rem;gap:.5rem;white-space:normal;font-size:.8rem;border-radius:.5rem;background-color:transparent;border:thin solid rgba(var(--text-color), 0.3)}.primary-action .icon{fill:var(--accent-color)}.primary-action:not(:last-of-type){margin-right:.5rem}.page{position:relative;display:flex;flex-direction:column;overflow-y:auto;align-content:flex-start;padding:1.5rem}#wallet_section{background-color:rgba(var(--text-color), 0.03);border-radius:.5rem;padding:1.5rem}#transactions_list{flex-direction:column;padding-bottom:4rem}.transaction{grid-template-columns:auto 1fr auto;gap:.5rem 1rem;padding:.8rem;align-items:center;background-color:rgba(var(--text-color), 0.03);border-radius:.3rem}.transaction:not(:last-of-type){margin-bottom:.5rem}.transaction__icon{display:flex;align-items:center;justify-content:center;grid-area:1/1/3/2;width:2.5rem;height:2.5rem;background-color:rgba(var(--text-color), 0.03);border-radius:.5rem}.transaction__icon .icon{fill:var(--accent-color)}.transaction__receiver{font-size:.9rem;font-weight:500;color:rgba(var(--text-color), 0.8)}.transaction__time{font-size:.8rem;color:rgba(var(--text-color), 0.8)}.transaction__amount{font-size:1rem;font-weight:700;grid-area:1/3/3/4}.transaction__amount.sent::before{content:"-"}.transaction__amount.received::before{content:"+"}.fab{position:absolute;right:0;bottom:0;margin:1.5rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.2);z-index:2}#scroll_to_top{border-radius:3rem;background-color:rgba(var(--foreground-color), 1)}#transaction_result{display:grid;gap:.5rem;height:max(40vh,24rem);align-items:center;justify-content:center;text-align:center;align-content:center}#transaction_result.success .icon--failed{display:none}#transaction_result.failed .icon--success{display:none}#transaction_result h3{text-align:center;width:100%}#transaction_result .icon{justify-self:center;height:4rem;width:4rem;border-radius:5rem;margin-bottom:1rem;-webkit-animation:popup 1s;animation:popup 1s}#transaction_result .icon--success{fill:rgba(var(--background-color), 1);padding:1rem;background-color:#0bbe56}#transaction_result .icon--failed{background-color:rgba(var(--text-color), 0.03);fill:var(--danger-color)}#transaction_result sm-copy{font-size:.8rem}@-webkit-keyframes popup{0%{opacity:0;transform:scale(0.2) translateY(600%)}10%{transform:scale(0.2) translateY(5rem);opacity:1}40%{transform:scale(0.2) translateY(0)}80%{transform:scale(1.1) translateY(0)}100%{transform:scale(1) translateY(0)}}@keyframes popup{0%{opacity:0;transform:scale(0.2) translateY(600%)}10%{transform:scale(0.2) translateY(5rem);opacity:1}40%{transform:scale(0.2) translateY(0)}80%{transform:scale(1.1) translateY(0)}100%{transform:scale(1) translateY(0)}}.cashier-request,.wallet-request,.payment-request{display:flex;gap:1rem;align-items:center;padding:.8rem;border-radius:.3rem;background-color:rgba(var(--text-color), 0.06)}.cashier-request:not(:last-of-type),.wallet-request:not(:last-of-type),.payment-request:not(:last-of-type){margin-bottom:1rem}.cashier-request__time,.wallet-request__time,.payment-request__time{font-size:.8rem}.payment-request{display:grid;grid-template-columns:1fr auto}.payment-request__amount{font-weight:700;text-align:right}@media screen and (min-width: 40rem){sm-popup{--width: 24rem}.popup__header{grid-column:1/-1;padding:1rem 1.5rem 0 1.5rem}#main_card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;grid-template-areas:"nav header" "nav main";position:relative;border-radius:.5rem;overflow:hidden;box-shadow:0 .1rem .2rem rgba(0,0,0,.05),0 1rem 3rem rgba(0,0,0,.2);background-color:rgba(var(--foreground-color), 0.9)}#main_header{grid-area:header}#pages_container{grid-area:main}#main_navbar{grid-area:nav;border-top:none;flex-direction:column;height:100%}#main_navbar ul{flex-direction:column;gap:.5rem;padding:.3rem}#main_navbar ul li:last-of-type{margin-top:auto}.nav-item{aspect-ratio:1/1}.nav-item__indicator{width:.25rem;height:50%;left:0;border-radius:0 1rem 1rem 0;bottom:auto}#user{grid-template-columns:1fr 20rem;align-content:flex-start;align-items:flex-start}}@media screen and (min-width: 56rem){#main_card{height:80vh;width:56rem}}@media(any-hover: hover){::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background:rgba(var(--text-color), 0.3);border-radius:1rem}::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-color), 0.5)}.interact:not([disabled]){transition:background-color .3s}.interact:not([disabled]):hover{background-color:rgba(var(--text-color), 0.06)}.button:not([disabled]){transition:background-color .3s,filter .3s}.button:not([disabled]):hover{filter:contrast(2)}}@supports(overflow: overlay){body{overflow:overlay}}.hide{display:none !important} \ No newline at end of file +*{padding:0;margin:0;box-sizing:border-box;font-family:"Roboto",sans-serif}:root{font-size:clamp(1rem,1.2vmax,1.2rem)}html,body{height:100%}body{--accent-color: #256eff;--text-color: 20, 20, 20;--foreground-color: 252, 253, 255;--background-color: 241, 243, 248;--danger-color: rgb(255, 75, 75);--green: #1cad59;--yellow: rgb(220, 165, 0);scrollbar-width:thin;scrollbar-gutter:stable;color:rgba(var(--text-color), 1);background-color:rgba(var(--background-color), 1);transition:background-color .3s;position:relative;display:flex;flex-direction:column}body[data-theme=dark]{--accent-color: #90b8f8;--text-color: 220, 220, 220;--foreground-color: 27, 28, 29;--background-color: 21, 22, 22;--danger-color: rgb(255, 106, 106);--green: #00e676;--yellow: rgb(255, 213, 5)}body[data-theme=dark] sm-popup::part(popup){background-color:rgba(var(--foreground-color), 1)}p,strong{font-size:.9rem;max-width:65ch;line-height:1.7;color:rgba(var(--text-color), 0.9)}p:not(:last-of-type),strong:not(:last-of-type){margin-bottom:1.5rem}a{text-decoration:none;color:var(--accent-color)}a:focus-visible{box-shadow:0 0 0 .1rem rgba(var(--text-color), 1) inset}a.button{padding:.4rem .6rem;border-radius:.3rem;font-size:.9rem;font-weight:500;color:inherit}button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:inline-flex;border:none;background-color:transparent;overflow:hidden;color:inherit;-webkit-tap-highlight-color:transparent;align-items:center;font-size:.9rem;font-weight:500;white-space:nowrap;padding:.8rem;border-radius:.3rem;justify-content:center}button:focus-visible{outline:var(--accent-color) solid medium}button:not(:disabled){cursor:pointer}.button{background-color:rgba(var(--text-color), 0.06)}.button--primary,.button--danger{color:rgba(var(--background-color), 1)}.button--primary .icon,.button--danger .icon{fill:rgba(var(--background-color), 1)}.button--primary{background-color:var(--accent-color)}.button--danger{background-color:var(--danger-color)}.button--small{padding:.4rem .6rem}.cta{text-transform:uppercase;font-size:.8rem;font-weight:700;letter-spacing:.05em;padding:1rem}.icon-only{padding:.5rem;border-radius:.3rem}button:disabled{opacity:.5}a:-webkit-any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}a:-moz-any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}a:any-link:focus-visible{outline:rgba(var(--text-color), 1) .1rem solid}details{padding:1rem 0}details summary{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;align-items:center;justify-content:space-between;color:var(--accent-color)}details[open] summary{margin-bottom:1rem}details[open]>summary .down-arrow{transform:rotate(180deg)}sm-input,sm-textarea{font-size:.9rem;--border-radius: 0.3rem;--background-color: rgba(var(--foreground-color), 1)}sm-input button .icon,sm-textarea button .icon{fill:var(--accent-color)}sm-button{--padding: 0.8rem}sm-button[variant=primary] .icon{fill:rgba(var(--background-color), 1)}sm-button[disabled] .icon{fill:rgba(var(--text-color), 0.6)}sm-button.danger{--background: var(--danger-color);color:rgba(var(--background-color), 1)}sm-spinner{--size: 1rem;--stroke-width: 0.1rem}sm-form{--gap: 1rem}sm-select{--padding: 0.8rem}strip-select{--gap: 0;background-color:rgba(var(--text-color), 0.06);border-radius:.3rem;padding:.3rem}strip-option{font-size:.8rem;--border-radius: 0.2rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ul{list-style:none}.overflow-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.breakable{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.full-bleed{grid-column:1/-1}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.sticky{position:-webkit-sticky;position:sticky}.top-0{top:0}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.grid{display:grid}.flow-column{grid-auto-flow:column}.gap-0-5{gap:.5rem}.gap-1{gap:1rem}.gap-1-5{gap:1.5rem}.gap-2{gap:2rem}.gap-3{gap:3rem}.text-align-right{text-align:right}.align-start{align-content:flex-start}.align-center{align-items:center}.align-end{align-items:flex-end}.text-center{text-align:center}.justify-start{justify-items:start}.justify-center{justify-content:center}.justify-right{margin-left:auto}.align-self-center{align-self:center}.justify-self-center{justify-self:center}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.direction-column{flex-direction:column}.space-between{justify-content:space-between}.w-100{width:100%}.h-100{height:100%}.ripple{height:8rem;width:8rem;position:absolute;border-radius:50%;transform:scale(0);background:radial-gradient(circle, rgba(var(--text-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%);pointer-events:none}.button--primary .ripple,.button--danger .ripple{background:radial-gradient(circle, rgba(var(--background-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%)}.interact{position:relative;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent}.empty-state{display:grid;width:100%;padding:1.5rem 0}.observe-empty-state:empty{display:none}.observe-empty-state:not(:empty)+.empty-state{display:none}.bullet-point{display:flex;align-items:center;justify-content:center;margin:0 .8ch}.bullet-point::after{content:"";height:.4ch;width:.4ch;border-radius:.5em;background-color:var(--accent-color)}.icon{width:1.2rem;height:1.2rem;fill:rgba(var(--text-color), 0.8);flex-shrink:0}.margin-right-0-5{margin-right:.5rem}.margin-left-0-5{margin-left:.5rem}.icon-button{padding:.6rem;border-radius:.8rem;background-color:rgba(var(--text-color), 0.1);height:-webkit-max-content;height:-moz-max-content;height:max-content}.icon-button .icon{fill:var(--accent-color)}.page{height:100%}.page__header{display:flex;justify-content:space-between;margin-bottom:1.5rem}.page__header .grid{margin-top:auto}.page__header h1{margin-top:auto;font-size:2rem}.page__header .illustration{height:8rem;width:auto}.page-layout{display:grid;gap:1.5rem 0;grid-template-columns:1.5rem minmax(0, 1fr) 1.5rem;align-content:flex-start}.page-layout>*{grid-column:2/3}#confirmation_popup,#prompt_popup{flex-direction:column}#confirmation_popup h4,#prompt_popup h4{font-weight:500;margin-bottom:.5rem}#confirmation_popup sm-button,#prompt_popup sm-button{margin:0}#confirmation_popup .flex,#prompt_popup .flex{padding:0;margin-top:1rem}#confirmation_popup .flex sm-button:first-of-type,#prompt_popup .flex sm-button:first-of-type{margin-right:.6rem;margin-left:auto}#prompt_message{margin-bottom:1.5rem}.popup__header{display:grid;gap:.5rem;width:100%;padding:0 1.5rem;align-items:center}.popup__header__close{padding:.5rem;margin-left:-0.5rem;cursor:pointer}.flo-icon{margin-right:.3rem;height:1.5rem;width:1.5rem}#secondary_pages{display:flex;flex-direction:column;width:100%}#secondary_pages header{padding:1.5rem}#secondary_pages .inner-page{height:100%}#landing>section{justify-content:center;justify-items:center;align-items:center;text-align:center;padding:8vw 0}#landing h1{font-size:clamp(2rem,5vw,5rem)}#sign_in,#sign_up{justify-items:center;align-content:center}#sign_in section,#sign_up section{margin-top:-8rem;width:min(24rem,100%)}#sign_in sm-form,#sign_up sm-form{margin:2rem 0}#sign_up .h2{margin-bottom:.5rem}#sign_up .card{margin:1.5rem 0}#sign_up h5{font-weight:500;color:rgba(var(--text-color), 0.8)}#flo_id_warning{padding-bottom:1.5rem;border-bottom:thin solid rgba(var(--text-color), 0.3)}#flo_id_warning .icon{height:4rem;width:4rem;padding:1rem;background-color:#ffc107;border-radius:3rem;fill:rgba(0,0,0,.8);margin-bottom:1.5rem}#main_header{padding:1.5rem}#main_card{display:grid;grid-template-columns:minmax(0, 1fr);grid-template-rows:auto 1fr;height:100%;width:100%;transition:background-color .3s}#main_navbar{display:flex;background:rgba(var(--text-color), 0.03)}#main_navbar.hide-away{position:absolute}#main_navbar ul{display:flex;height:100%;width:100%}#main_navbar ul li{width:100%}.nav-item{position:relative;display:flex;flex:1;width:100%;flex-direction:column;align-items:center;justify-content:center;padding:.5rem .3rem;color:var(--text-color);font-size:.8rem;border-radius:.3rem}.nav-item .icon{transition:transform .2s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.nav-item__title{margin-top:.3rem;transition:opacity .2s,transform .2s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.nav-item--active{color:var(--accent-color)}.nav-item--active .icon{fill:var(--accent-color);transform:translateY(50%)}.nav-item--active .nav-item__title{transform:translateY(100%);opacity:0}.nav-item__indicator{position:absolute;bottom:0;width:2rem;height:.3rem;background:var(--accent-color);border-radius:1rem 1rem 0 0;z-index:1}.nav-item .badge{display:flex;align-items:center;justify-content:center;content:attr(data-notifications);position:absolute;top:0;right:0;font-size:.8rem;padding:.3rem;background:var(--accent-color);color:rgba(var(--background-color), 1);aspect-ratio:1/1;font-weight:700;border-radius:.3rem;margin:.3rem}.inner-page{padding:0 1.5rem;flex:1;overflow-y:auto;align-content:start}.password-field label{display:flex}.password-field label input:checked~.visible{display:none}.password-field label input:not(:checked)~.invisible{display:none}.multi-state-button{display:grid;text-align:center;align-items:center}.multi-state-button>*{grid-area:1/1/2/2}.multi-state-button button{z-index:1}#home{padding:0;position:relative}#user,#cashier{position:relative;gap:2rem;height:100%;padding:0 1.5rem;overflow-y:auto;padding-bottom:5rem;align-content:flex-start}#quick_actions_container{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill, minmax(6rem, 1fr))}.primary-action{display:flex;flex-direction:column;align-items:center;padding:.8rem;gap:.5rem;white-space:normal;font-size:.8rem;border-radius:.5rem;font-weight:400;background-color:rgba(var(--text-color), 0.03);text-align:center}.primary-action .icon{fill:var(--accent-color)}#rupee_balance span:first-of-type{font-size:2rem}#rupee_balance span:last-of-type{font-size:1rem}.wallet-action{background-color:rgba(var(--text-color), 0.03);flex:1}.wallet-action:nth-of-type(2){margin-left:.5rem}.wallet-action .icon{margin-right:.5rem;fill:var(--accent-color)}#saved_ids_list{display:grid;grid-template-columns:minmax(0, 1fr);margin-top:1rem}.saved-id{grid-template-columns:auto 1fr;gap:0 .8rem;border-radius:.3rem;padding:.8rem 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.saved-id.highlight{box-shadow:0 0 .1rem .1rem var(--accent-color) inset}.saved-id .edit-saved{grid-area:1/1/3/2;padding:.3rem;position:relative}.saved-id .edit-saved .icon{position:absolute;height:1.2rem;width:1.2rem;right:0;bottom:0;border-radius:.5rem;padding:.2rem;background-color:rgba(var(--background-color), 1)}.saved-id__initials{display:flex;align-items:center;justify-content:center;height:2.4rem;width:2.4rem;font-size:1.2rem;text-transform:uppercase;color:rgba(var(--background-color), 1);font-weight:700;line-height:1;background-color:var(--accent-color);justify-self:flex-start;border-radius:2rem}.saved-id__title{align-self:flex-end;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.saved-id__flo-id{font-size:.8rem}.card{background-color:rgba(var(--foreground-color), 1);border-radius:.5rem;padding:1rem}#contact{display:grid;grid-template-rows:auto 1fr auto;padding:0;height:100%}#contact>*{padding:1rem 1.5rem}#contact>:first-child{padding-top:0}#contact>:last-child{padding:.5rem 1.5rem;background-color:rgba(var(--text-color), 0.03)}#contact>:last-child button{padding:.8rem 2rem;border-radius:1rem;color:var(--accent-color);background-color:rgba(var(--foreground-color), 1)}#contact__transactions{position:relative;display:grid;gap:.5rem;overflow-y:auto;flex:1;padding:0 max(1rem,8vw) 1rem max(1rem,8vw);align-content:flex-start}#contact__transactions sm-spinner{position:absolute;justify-self:center;align-self:center}.transaction-message{background-color:rgba(var(--text-color), 0.06);padding:1rem;border-radius:.5rem;justify-self:flex-start;border-radius:0 1rem 1rem 1rem;gap:.5rem}.transaction-message.received{background-color:var(--accent-color);color:rgba(var(--background-color), 1)}.transaction-message.received+.transaction-message.received{border-radius:1rem}.transaction-message.sent{margin-left:auto;justify-self:flex-end;border-radius:1rem 1rem 0 1rem;text-align:right}.transaction-message__amount{font-size:1.2rem}.transaction-message__time{opacity:.8;font-size:.8rem}#wallet_history_wrapper{margin-top:1.5rem;padding-bottom:3rem}#payments_history{display:grid;gap:2rem;padding-bottom:4rem}.transaction{grid-template-columns:auto 1fr auto;gap:.5rem 1rem;align-items:center}.transaction.sent .icon{fill:rgba(var(--text-color), 0.8)}.transaction.sent .transaction__amount{color:rgba(var(--text-color), 0.8)}.transaction.sent .transaction__amount::before{content:"- "}.transaction.received .icon{fill:var(--green)}.transaction.received .transaction__amount{color:var(--green)}.transaction.received .transaction__amount::before{content:"+ "}.transaction__icon{display:flex;align-items:center;justify-content:center;grid-area:1/1/3/2;width:2.5rem;height:2.5rem;background-color:rgba(var(--text-color), 0.03);border-radius:2rem}.transaction__receiver{font-weight:500}.transaction__time{font-size:.8rem;color:rgba(var(--text-color), 0.8)}.transaction__amount{font-size:1rem;font-weight:700;grid-area:1/3/3/4}.fab{position:absolute;right:0;bottom:0;margin:1.5rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.2);z-index:2}#scroll_to_top{border-radius:3rem;background-color:rgba(var(--foreground-color), 1)}#add_address_button{border-radius:.5rem;color:rgba(var(--background-color), 1);background-color:var(--accent-color)}#add_address_button .icon{fill:rgba(var(--background-color), 1)}.user-action-result__icon{justify-self:center;height:4rem;width:4rem;border-radius:5rem;margin-bottom:2rem;-webkit-animation:popup 1s;animation:popup 1s}.user-action-result__icon.success{fill:rgba(var(--background-color), 1);padding:1rem;background-color:#0bbe56}.user-action-result__icon.failed{background-color:rgba(var(--text-color), 0.03);fill:var(--danger-color)}@-webkit-keyframes popup{0%{opacity:0;transform:scale(0.2) translateY(600%)}10%{transform:scale(0.2) translateY(5rem);opacity:1}40%{transform:scale(0.2) translateY(0)}80%{transform:scale(1.1) translateY(0)}100%{transform:scale(1) translateY(0)}}@keyframes popup{0%{opacity:0;transform:scale(0.2) translateY(600%)}10%{transform:scale(0.2) translateY(5rem);opacity:1}40%{transform:scale(0.2) translateY(0)}80%{transform:scale(1.1) translateY(0)}100%{transform:scale(1) translateY(0)}}.cashier-request,.payment-request{display:flex;gap:1rem;align-items:center;padding:.8rem;border-radius:.3rem;background-color:rgba(var(--foreground-color), 1)}.cashier-request:not(:last-of-type),.payment-request:not(:last-of-type){margin-bottom:.5rem}.cashier-request__time,.payment-request__time{font-size:.8rem}#payment_request_history{padding-bottom:3rem}.payment-request{display:grid;gap:.5rem 1rem;grid-template-columns:1fr auto;color:rgba(var(--text-color), 1)}.payment-request__requestor{font-weight:500}.payment-request__amount{font-weight:700;text-align:right}.payment-request__status{display:flex;align-items:center;font-size:.8rem;text-transform:capitalize}.payment-request__status .icon{height:1rem;width:1rem;margin-left:.3rem}.payment-request .icon.paid{fill:var(--green)}.payment-request .icon.declined{fill:var(--danger-color)}.payment-request .button{background-color:transparent;padding:.6rem .8rem;color:var(--accent-color);background-color:rgba(var(--foreground-color), 1)}.wallet-request{display:grid;gap:.5rem 1rem;padding:.5rem 0;border-radius:.5rem;grid-template-columns:auto 1fr}.wallet-request:not(.rejected,.pending).withdrawn .wallet-request__amount::before{content:"- "}.wallet-request:not(.rejected,.pending).added .wallet-request__amount{color:var(--green)}.wallet-request:not(.rejected,.pending).added .wallet-request__amount::before{content:"+ "}.wallet-request .icon.pending{fill:var(--yellow)}.wallet-request .icon.failed{fill:var(--danger-color)}.wallet-request__icon{display:flex;align-items:center;justify-content:center;grid-area:1/1/3/2;width:2.5rem;height:2.5rem;border-radius:2rem;background-color:rgba(var(--text-color), 0.06)}.wallet-request__icon .icon{fill:var(--accent-color)}.wallet-request__details{font-weight:500}.wallet-request__details,.wallet-request__amount{color:rgba(var(--text-color), 1)}.wallet-request__amount{font-weight:700}.wallet-request__time,.wallet-request__status{font-size:.8rem;color:rgba(var(--text-color), 0.8)}.wallet-request__status{text-transform:capitalize;text-align:right}.wallet-request__status .icon{margin-left:.3rem}#transaction__remark,#transaction__note{line-height:1.6;justify-self:flex-start;background-color:rgba(var(--text-color), 0.06);border-radius:.5rem;padding:.8rem}#transaction__note .icon{fill:var(--danger-color);margin-right:.5rem}#saved_upi_ids_list{display:grid;gap:.5rem;width:min(24rem,100%)}.saved-upi{display:flex;justify-content:space-between;align-items:center;padding:.4rem .4rem .4rem 1rem;border-radius:.5rem;background-color:rgba(var(--foreground-color), 1)}@media screen and (max-width: 40rem){#main_navbar.hide-away{bottom:0;left:0;right:0}}@media screen and (min-width: 40rem){sm-popup{--width: 24rem}.page-layout{grid-template-columns:1fr 90vw 1fr}.popup__header{grid-column:1/-1;padding:1rem 1.5rem 0 1.5rem}body{align-items:center;justify-content:center}#main_card{height:calc(100vh - 3rem);width:calc(100vw - 3rem);grid-template-areas:"header" ".";position:relative;border-radius:.5rem;overflow:hidden;background-color:rgba(var(--background-color), 1);box-shadow:0 .1rem .2rem rgba(0,0,0,.05),0 1rem 3rem rgba(0,0,0,.2)}#main_card:not(.nav-hidden){grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;grid-template-areas:"nav header" "nav ."}#main_header{grid-area:header}#main_navbar{grid-area:nav;border-top:none;flex-direction:column;height:100%}#main_navbar ul{flex-direction:column;gap:.5rem;padding:.3rem}#main_navbar ul li:last-of-type{margin-top:auto}.nav-item{aspect-ratio:1/1}.nav-item__indicator{width:.25rem;height:50%;left:0;border-radius:0 1rem 1rem 0;bottom:auto}.card{padding:1.5rem}#saved_ids_list{gap:1rem;grid-template-columns:repeat(auto-fill, minmax(14rem, 1fr))}}@media screen and (min-width: 56rem){#main_card{width:56rem;height:min(90vh,48rem)}}@media(any-hover: hover){::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background:rgba(var(--text-color), 0.3);border-radius:1rem}::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-color), 0.5)}.interact:not([disabled]){transition:background-color .3s}.interact:not([disabled]):hover{background-color:rgba(var(--text-color), 0.06)}button:not([disabled]),.button:not([disabled]){transition:background-color .3s,filter .3s}button:not([disabled]):hover,.button:not([disabled]):hover{filter:contrast(2)}}@supports(overflow: overlay){body{overflow:overlay}}.hide{display:none !important} \ No newline at end of file diff --git a/css/main.scss b/css/main.scss index 52d52af..3a8a9b8 100644 --- a/css/main.scss +++ b/css/main.scss @@ -4,7 +4,6 @@ box-sizing: border-box; font-family: "Roboto", sans-serif; } - :root { font-size: clamp(1rem, 1.2vmax, 1.2rem); } @@ -17,29 +16,29 @@ body { body { --accent-color: #256eff; --text-color: 20, 20, 20; - --background-color: 240, 240, 240; - --foreground-color: 250, 250, 250; + --foreground-color: 252, 253, 255; + --background-color: 241, 243, 248; --danger-color: rgb(255, 75, 75); --green: #1cad59; + --yellow: rgb(220, 165, 0); scrollbar-width: thin; scrollbar-gutter: stable; color: rgba(var(--text-color), 1); background-color: rgba(var(--background-color), 1); transition: background-color 0.3s; + position: relative; display: flex; flex-direction: column; - align-items: center; - justify-content: center; - overflow: hidden; } body[data-theme="dark"] { - --accent-color: #86afff; + --accent-color: #90b8f8; --text-color: 220, 220, 220; - --background-color: 10, 10, 10; - --foreground-color: 24, 24, 24; + --foreground-color: 27, 28, 29; + --background-color: 21, 22, 22; --danger-color: rgb(255, 106, 106); --green: #00e676; + --yellow: rgb(255, 213, 5); sm-popup::part(popup) { background-color: rgba(var(--foreground-color), 1); } @@ -63,6 +62,13 @@ a { box-shadow: 0 0 0 0.1rem rgba(var(--text-color), 1) inset; } } +a.button { + padding: 0.4rem 0.6rem; + border-radius: 0.3rem; + font-size: 0.9rem; + font-weight: 500; + color: inherit; +} button { user-select: none; @@ -89,19 +95,22 @@ button { } .button { background-color: rgba(var(--text-color), 0.06); -} -.button--primary, -.button--danger { - color: rgba(var(--background-color), 1); - .icon { - fill: rgba(var(--background-color), 1); + &--primary, + &--danger { + color: rgba(var(--background-color), 1); + .icon { + fill: rgba(var(--background-color), 1); + } + } + &--primary { + background-color: var(--accent-color); + } + &--danger { + background-color: var(--danger-color); + } + &--small { + padding: 0.4rem 0.6rem; } -} -.button--primary { - background-color: var(--accent-color); -} -.button--danger { - background-color: var(--danger-color); } .cta { text-transform: uppercase; @@ -156,7 +165,7 @@ sm-textarea { } } sm-button { - --padding: 0.6rem 0.8rem; + --padding: 0.8rem; &[variant="primary"] { .icon { fill: rgba(var(--background-color), 1); @@ -180,6 +189,9 @@ sm-spinner { sm-form { --gap: 1rem; } +sm-select { + --padding: 0.8rem; +} strip-select { --gap: 0; background-color: rgba(var(--text-color), 0.06); @@ -212,27 +224,6 @@ ul { .full-bleed { grid-column: 1/-1; } - -.h1 { - font-size: 1.5rem; -} - -.h2 { - font-size: 1.2rem; -} - -h3 { - font-size: 1.2rem; - line-height: 1.3; -} - -.h4 { - font-size: 0.9rem; -} - -.h5 { - font-size: 0.75rem; -} .uppercase { text-transform: uppercase; } @@ -305,7 +296,7 @@ h3 { } .justify-start { - justify-content: start; + justify-items: start; } .justify-center { @@ -403,6 +394,7 @@ h3 { background-color: var(--accent-color); } } + .icon { width: 1.2rem; height: 1.2rem; @@ -426,6 +418,34 @@ h3 { fill: var(--accent-color); } } +.page { + height: 100%; + &__header { + display: flex; + justify-content: space-between; + margin-bottom: 1.5rem; + .grid { + margin-top: auto; + } + h1 { + margin-top: auto; + font-size: 2rem; + } + .illustration { + height: 8rem; + width: auto; + } + } +} +.page-layout { + display: grid; + gap: 1.5rem 0; + grid-template-columns: 1.5rem minmax(0, 1fr) 1.5rem; + align-content: flex-start; + & > * { + grid-column: 2/3; + } +} #confirmation_popup, #prompt_popup { flex-direction: column; @@ -455,7 +475,6 @@ h3 { width: 100%; padding: 0 1.5rem; align-items: center; - grid-auto-flow: column; } .popup__header__close { @@ -463,21 +482,83 @@ h3 { margin-left: -0.5rem; cursor: pointer; } -#main_header { - padding: 1rem 1.5rem; +.flo-icon { + margin-right: 0.3rem; + height: 1.5rem; + width: 1.5rem; } -#main_card { +#secondary_pages { display: flex; flex-direction: column; + width: 100%; + header { + padding: 1.5rem; + } + .inner-page { + height: 100%; + } +} +#landing { + & > section { + justify-content: center; + justify-items: center; + align-items: center; + text-align: center; + padding: 8vw 0; + } + h1 { + font-size: clamp(2rem, 5vw, 5rem); + } +} + +#sign_in, +#sign_up { + justify-items: center; + align-content: center; + section { + margin-top: -8rem; + width: min(24rem, 100%); + } + sm-form { + margin: 2rem 0; + } +} +#sign_up { + .h2 { + margin-bottom: 0.5rem; + } + .card { + margin: 1.5rem 0; + } + h5 { + font-weight: 500; + color: rgba(var(--text-color), 0.8); + } +} +#flo_id_warning { + padding-bottom: 1.5rem; + border-bottom: thin solid rgba(var(--text-color), 0.3); + .icon { + height: 4rem; + width: 4rem; + padding: 1rem; + background-color: #ffc107; + border-radius: 3rem; + fill: rgba(0, 0, 0, 0.8); + margin-bottom: 1.5rem; + } +} +#main_header { + padding: 1.5rem; +} +#main_card { + display: grid; + grid-template-columns: minmax(0, 1fr); + grid-template-rows: auto 1fr; height: 100%; width: 100%; - background-color: rgba(var(--foreground-color), 1); transition: background-color 0.3s; } -#pages_container { - flex: 1; - overflow-y: auto; -} #main_navbar { display: flex; @@ -504,14 +585,15 @@ h3 { justify-content: center; padding: 0.5rem 0.3rem; color: var(--text-color); - font-size: 0.7rem; + font-size: 0.8rem; border-radius: 0.3rem; .icon { - transition: transform 0.2s; + transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); } &__title { margin-top: 0.3rem; - transition: opacity 0.2s, transform 0.2s; + transition: opacity 0.2s, + transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); } &--active { color: var(--accent-color); @@ -533,6 +615,29 @@ h3 { border-radius: 1rem 1rem 0 0; z-index: 1; } + .badge { + display: flex; + align-items: center; + justify-content: center; + content: attr(data-notifications); + position: absolute; + top: 0; + right: 0; + font-size: 0.8rem; + padding: 0.3rem; + background: var(--accent-color); + color: rgba(var(--background-color), 1); + aspect-ratio: 1/1; + font-weight: 700; + border-radius: 0.3rem; + margin: 0.3rem; + } +} +.inner-page { + padding: 0 1.5rem; + flex: 1; + overflow-y: auto; + align-content: start; } .password-field { @@ -557,54 +662,222 @@ h3 { z-index: 1; } } -.clip { - clip-path: circle(0); +#home { + padding: 0; + position: relative; +} +#user, +#cashier { + position: relative; + gap: 2rem; + height: 100%; + padding: 0 1.5rem; + overflow-y: auto; + padding-bottom: 5rem; + align-content: flex-start; +} +#quick_actions_container { + display: grid; + gap: 0.5rem; + grid-template-columns: repeat(auto-fill, minmax(6rem, 1fr)); } .primary-action { display: flex; - padding: 0.8rem 1rem; + flex-direction: column; + align-items: center; + padding: 0.8rem; gap: 0.5rem; white-space: normal; font-size: 0.8rem; border-radius: 0.5rem; - background-color: transparent; - border: thin solid rgba(var(--text-color), 0.3); + font-weight: 400; + background-color: rgba(var(--text-color), 0.03); + text-align: center; .icon { fill: var(--accent-color); } - &:not(:last-of-type) { +} +#rupee_balance { + span:first-of-type { + font-size: 2rem; + } + span:last-of-type { + font-size: 1rem; + } +} +.wallet-action { + background-color: rgba(var(--text-color), 0.03); + flex: 1; + &:nth-of-type(2) { + margin-left: 0.5rem; + } + .icon { margin-right: 0.5rem; + fill: var(--accent-color); } } -.page { - position: relative; - display: flex; - flex-direction: column; - overflow-y: auto; - align-content: flex-start; - padding: 1.5rem; +#saved_ids_list { + display: grid; + grid-template-columns: minmax(0, 1fr); + margin-top: 1rem; +} +.saved-id { + grid-template-columns: auto 1fr; + gap: 0 0.8rem; + border-radius: 0.3rem; + padding: 0.8rem 0; + user-select: none; + &.highlight { + box-shadow: 0 0 0.1rem 0.1rem var(--accent-color) inset; + } + .edit-saved { + grid-area: 1/1/3/2; + padding: 0.3rem; + position: relative; + .icon { + position: absolute; + height: 1.2rem; + width: 1.2rem; + right: 0; + bottom: 0; + border-radius: 0.5rem; + padding: 0.2rem; + background-color: rgba(var(--background-color), 1); + } + } + &__initials { + display: flex; + align-items: center; + justify-content: center; + height: 2.4rem; + width: 2.4rem; + font-size: 1.2rem; + text-transform: uppercase; + color: rgba(var(--background-color), 1); + font-weight: 700; + line-height: 1; + background-color: var(--accent-color); + justify-self: flex-start; + border-radius: 2rem; + } + &__title { + align-self: flex-end; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-weight: 500; + } + &__flo-id { + font-size: 0.8rem; + } } -#wallet_section { - background-color: rgba(var(--text-color), 0.03); +.card { + background-color: rgba(var(--foreground-color), 1); border-radius: 0.5rem; - padding: 1.5rem; + padding: 1rem; +} +#contact { + display: grid; + grid-template-rows: auto 1fr auto; + padding: 0; + height: 100%; + & > * { + padding: 1rem 1.5rem; + } + & > :first-child { + padding-top: 0; + } + & > :last-child { + padding: 0.5rem 1.5rem; + background-color: rgba(var(--text-color), 0.03); + button { + padding: 0.8rem 2rem; + border-radius: 1rem; + color: var(--accent-color); + background-color: rgba(var(--foreground-color), 1); + } + } +} +#contact__transactions { + position: relative; + display: grid; + gap: 0.5rem; + overflow-y: auto; + flex: 1; + padding: 0 max(1rem, 8vw) 1rem max(1rem, 8vw); + align-content: flex-start; + sm-spinner { + position: absolute; + justify-self: center; + align-self: center; + } +} +.transaction-message { + background-color: rgba(var(--text-color), 0.06); + padding: 1rem; + border-radius: 0.5rem; + justify-self: flex-start; + border-radius: 0 1rem 1rem 1rem; + gap: 0.5rem; + &.received { + background-color: var(--accent-color); + color: rgba(var(--background-color), 1); + & + & { + border-radius: 1rem; + } + } + &.sent { + margin-left: auto; + justify-self: flex-end; + border-radius: 1rem 1rem 0 1rem; + text-align: right; + } + + &__amount { + font-size: 1.2rem; + } + &__time { + opacity: 0.8; + font-size: 0.8rem; + } } -#transactions_list { - flex-direction: column; +#wallet_history_wrapper { + margin-top: 1.5rem; + padding-bottom: 3rem; +} +#payments_history { + display: grid; + gap: 2rem; padding-bottom: 4rem; } .transaction { grid-template-columns: auto 1fr auto; gap: 0.5rem 1rem; - padding: 0.8rem; align-items: center; - background-color: rgba(var(--text-color), 0.03); - border-radius: 0.3rem; - &:not(:last-of-type) { - margin-bottom: 0.5rem; + &.sent { + .icon { + fill: rgba(var(--text-color), 0.8); + } + .transaction__amount { + color: rgba(var(--text-color), 0.8); + &::before { + content: "- "; + } + } + } + &.received { + .icon { + fill: var(--green); + } + .transaction__amount { + color: var(--green); + &::before { + content: "+ "; + } + } } &__icon { display: flex; @@ -614,15 +887,10 @@ h3 { width: 2.5rem; height: 2.5rem; background-color: rgba(var(--text-color), 0.03); - border-radius: 0.5rem; - .icon { - fill: var(--accent-color); - } + border-radius: 2rem; } &__receiver { - font-size: 0.9rem; font-weight: 500; - color: rgba(var(--text-color), 0.8); } &__time { font-size: 0.8rem; @@ -632,16 +900,6 @@ h3 { font-size: 1rem; font-weight: 700; grid-area: 1/3/3/4; - &.sent { - &::before { - content: "-"; - } - } - &.received { - &::before { - content: "+"; - } - } } } .fab { @@ -656,48 +914,29 @@ h3 { border-radius: 3rem; background-color: rgba(var(--foreground-color), 1); } - -#transaction_result { - display: grid; - gap: 0.5rem; - height: max(40vh, 24rem); - align-items: center; - justify-content: center; - text-align: center; - align-content: center; +#add_address_button { + border-radius: 0.5rem; + color: rgba(var(--background-color), 1); + background-color: var(--accent-color); + .icon { + fill: rgba(var(--background-color), 1); + } +} +.user-action-result__icon { + justify-self: center; + height: 4rem; + width: 4rem; + border-radius: 5rem; + margin-bottom: 2rem; + animation: popup 1s; &.success { - .icon--failed { - display: none; - } + fill: rgba(var(--background-color), 1); + padding: 1rem; + background-color: #0bbe56; } &.failed { - .icon--success { - display: none; - } - } - h3 { - text-align: center; - width: 100%; - } - .icon { - justify-self: center; - height: 4rem; - width: 4rem; - border-radius: 5rem; - margin-bottom: 1rem; - animation: popup 1s; - &--success { - fill: rgba(var(--background-color), 1); - padding: 1rem; - background-color: #0bbe56; - } - &--failed { - background-color: rgba(var(--text-color), 0.03); - fill: var(--danger-color); - } - } - sm-copy { - font-size: 0.8rem; + background-color: rgba(var(--text-color), 0.03); + fill: var(--danger-color); } } @keyframes popup { @@ -720,60 +959,202 @@ h3 { } } -#settings { -} - .cashier-request, -.wallet-request, .payment-request { display: flex; gap: 1rem; align-items: center; padding: 0.8rem; border-radius: 0.3rem; - background-color: rgba(var(--text-color), 0.06); + background-color: rgba(var(--foreground-color), 1); &:not(:last-of-type) { - margin-bottom: 1rem; + margin-bottom: 0.5rem; } &__time { font-size: 0.8rem; } } +#payment_request_history { + padding-bottom: 3rem; +} .payment-request { display: grid; + gap: 0.5rem 1rem; grid-template-columns: 1fr auto; + color: rgba(var(--text-color), 1); + &__requestor { + font-weight: 500; + } &__amount { font-weight: 700; text-align: right; } + &__status { + display: flex; + align-items: center; + font-size: 0.8rem; + text-transform: capitalize; + .icon { + height: 1rem; + width: 1rem; + margin-left: 0.3rem; + } + } + .icon.paid { + fill: var(--green); + } + .icon.declined { + fill: var(--danger-color); + } + .button { + background-color: transparent; + padding: 0.6rem 0.8rem; + color: var(--accent-color); + background-color: rgba(var(--foreground-color), 1); + } +} +.wallet-request { + display: grid; + gap: 0.5rem 1rem; + padding: 0.5rem 0; + border-radius: 0.5rem; + grid-template-columns: auto 1fr; + &:not(.rejected, .pending) { + &.withdrawn { + .wallet-request__amount { + &::before { + content: "- "; + } + } + } + &.added { + .wallet-request__amount { + color: var(--green); + &::before { + content: "+ "; + } + } + } + } + .icon.pending { + fill: var(--yellow); + } + .icon.failed { + fill: var(--danger-color); + } + &__icon { + display: flex; + align-items: center; + justify-content: center; + grid-area: 1/1/3/2; + width: 2.5rem; + height: 2.5rem; + border-radius: 2rem; + background-color: rgba(var(--text-color), 0.06); + .icon { + fill: var(--accent-color); + } + } + &__details { + font-weight: 500; + } + &__details, + &__amount { + color: rgba(var(--text-color), 1); + } + &__amount { + font-weight: 700; + } + &__time, + &__status { + font-size: 0.8rem; + color: rgba(var(--text-color), 0.8); + } + &__status { + text-transform: capitalize; + text-align: right; + .icon { + margin-left: 0.3rem; + } + } +} +#transaction { + // justify-content: center; + // text-align: center; + // justify-items: center; +} +#transaction__remark, +#transaction__note { + line-height: 1.6; + justify-self: flex-start; + background-color: rgba(var(--text-color), 0.06); + border-radius: 0.5rem; + padding: 0.8rem; +} +#transaction__note { + .icon { + fill: var(--danger-color); + margin-right: 0.5rem; + } +} +#saved_upi_ids_list { + display: grid; + gap: 0.5rem; + width: min(24rem, 100%); +} +.saved-upi { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0.4rem 0.4rem 0.4rem 1rem; + border-radius: 0.5rem; + background-color: rgba(var(--foreground-color), 1); +} +@media screen and (max-width: 40rem) { + #main_navbar { + &.hide-away { + bottom: 0; + left: 0; + right: 0; + } + } } @media screen and (min-width: 40rem) { sm-popup { --width: 24rem; } + .page-layout { + grid-template-columns: 1fr 90vw 1fr; + } .popup__header { grid-column: 1/-1; padding: 1rem 1.5rem 0 1.5rem; } + body { + align-items: center; + justify-content: center; + } + #main_card { - display: grid; - grid-template-columns: auto 1fr; - grid-template-rows: auto 1fr; - grid-template-areas: "nav header" "nav main"; + height: calc(100vh - 3rem); + width: calc(100vw - 3rem); + grid-template-areas: "header" "."; + &:not(.nav-hidden) { + grid-template-columns: auto 1fr; + grid-template-rows: auto 1fr; + grid-template-areas: "nav header" "nav ."; + } position: relative; border-radius: 0.5rem; overflow: hidden; + background-color: rgba(var(--background-color), 1); + box-shadow: 0 0.1rem 0.2rem rgba(0, 0, 0, 0.05), 0 1rem 3rem rgba(0, 0, 0, 0.2); - // backdrop-filter: blur(2rem); - background-color: rgba(var(--foreground-color), 0.9); } #main_header { grid-area: header; } - #pages_container { - grid-area: main; - } #main_navbar { grid-area: nav; @@ -800,19 +1181,20 @@ h3 { bottom: auto; } } - #user { - grid-template-columns: 1fr 20rem; - align-content: flex-start; - align-items: flex-start; + .card { + padding: 1.5rem; + } + #saved_ids_list { + gap: 1rem; + grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); } } @media screen and (min-width: 56rem) { #main_card { - height: 80vh; width: 56rem; + height: min(90vh, 48rem); } } - @media (any-hover: hover) { ::-webkit-scrollbar { width: 0.5rem; @@ -833,6 +1215,7 @@ h3 { background-color: rgba(var(--text-color), 0.06); } } + button:not([disabled]), .button:not([disabled]) { transition: background-color 0.3s, filter 0.3s; &:hover { diff --git a/index.html b/index.html index 6cda0b6..e32c03c 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - RanchiMall Pay + FLO Pay - +

@@ -55,177 +55,757 @@ OK
-
- -

Loading RanchiMall Pay

-
-
-
-
- - +
+
+
+ + + + + + + -

RanchiMall Pay

+

FLO Pay

-
-
-
-
- -
+
+
+
+ + + + + + + + +

FLO Pay

+
+ +
+
+
+
+ + +
-
-

Requests

-
    -
    -

    No requests to process

    +
    +
    +
    + + + + +

    Saved FLO IDs

    +
    +

    + + + + + Click 'Add FLO ID' to add a new FLO ID. +

    +
    +
      +
      + + + + + + + + + + + + + + + + + +

      No Saved FLO ID

      -
      -
      -

      Transactions history

      -
        -
      -
      -

      No transactions

      +
      + +
      +

      Requests

      +
        +
        +

        No requests to process

        -
        -

        Activity

        - - Wallet transactions - Payment requests - - -
        -
          -
          -

          No transactions

          -
          -
          -
          -
            -
            -

            No requests

            -
            -
            -
            -
            -
            -

            Settings

            -
            +
            +
            + +
              +
              +

              No transactions

              +
              +
              +
              + +
                +
                + + +
                +
                +
                + +
                +
                +

                Pending requests

                +
                  +
                  +
                  +

                  History

                  +
                    +
                    +

                    No requests

                    +
                    +
                    +
                    +
                    +
                    + +
                    +
                    +
                    Balance
                    +

                    +
                    +
                    + + +
                    +
                    +
                    +
                    +

                    Pending transactions

                    +
                      +
                      +
                      +

                      History

                      +
                        +
                        +

                        No transactions

                        +
                        +
                        +
                        +
                        +
                        +
                        + +

                        +
                        +
                        +

                        +
                        +
                        + +
                        + +
                        +
                        + See transaction on blockchain +
                        +
                        +
                        + +
                        +
                        My FLO ID
                        Sign out -
                        -
                        -

                        Change UPI ID

                        - - - - -
                        +
                        +
                        +

                        My UPI IDs

                        +
                          +
                          +

                          Add your UPI IDs for easier access during transactions.

                          +
                          + +
                          +
                          +
                          +
                          My UPI ID
                          + +
                          + +
                          -
                          + + + + + + + + + + + +
                          +
                          +
                          FLO ID
                          + +
                          + + +
                          + + +
                          +
                          +
                          +
                          +
                          + +
                          +

                          Top-up wallet

                          +

                          Add money to your wallet

                          +
                          + + + + + + + + + + + + + +
                          + +
                          +

                          Confirm

                          +

                          +
                          + +

                          After sending money, please enter the UPI transaction ID of completed transfer.

                          + +
                          + +
                          +
                          +
                          + + + + +

                          Sent top-up request

                          +

                          This may take upto 30 mins to complete

                          +
                          +
                          + + + + +

                          Failed to top-up wallet

                          +

                          +
                          +
                          +
                          + + +
                          + +
                          +

                          Transfer to bank

                          +

                          Money will be sent to your bank account linked to selected UPI ID

                          +
                          + + + + + + + + + + + + +
                          +

                          + Select UPI ID to receive money +

                          + + +
                          +
                          + +
                          +
                          +
                          + + + + +

                          Sent transfer to bank request

                          +

                          This may take upto 30 mins to complete

                          +
                          +
                          + + + + +

                          Failed to request

                          +

                          +
                          +
                          +
                          + + + + + + + + + + + + + + + -