From 0f977441918422e6ec416d0ecd455fd6d96dc4c2 Mon Sep 17 00:00:00 2001
From: sairaj mote
Date: Sun, 31 Jul 2022 01:00:38 +0530
Subject: [PATCH] feature and UI update
-- added BTC as asset
-- added option to send btc
-- added option to view btc transactions
-- implemented different design for homepage
---
css/bg-art-5.svg | 1 +
css/main.css | 391 +++---
css/main.min.css | 2 +-
css/main.scss | 359 +++--
index.html | 792 +++++++----
scripts/components.js | 913 +++++++++----
scripts/fn_ui.js | 397 ++++--
scripts/lib_btc.js | 2883 +++++++++++++++++++++++++++++++++++++++++
scripts/std_ui.js | 307 +++--
9 files changed, 5056 insertions(+), 989 deletions(-)
create mode 100644 css/bg-art-5.svg
create mode 100644 scripts/lib_btc.js
diff --git a/css/bg-art-5.svg b/css/bg-art-5.svg
new file mode 100644
index 0000000..c71d67d
--- /dev/null
+++ b/css/bg-art-5.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/css/main.css b/css/main.css
index 6738365..5ed4206 100644
--- a/css/main.css
+++ b/css/main.css
@@ -96,14 +96,12 @@ a.button {
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: 0.9rem;
@@ -112,6 +110,7 @@ button {
padding: 0.8rem;
border-radius: 0.3rem;
justify-content: center;
+ color: inherit;
}
button:focus-visible {
outline: var(--accent-color) solid medium;
@@ -121,8 +120,12 @@ button:not(:disabled) {
}
.button {
+ color: var(--accent-color);
background-color: rgba(var(--text-color), 0.06);
}
+.button .icon {
+ fill: var(--accent-color);
+}
.button--primary, .button--danger {
color: rgba(var(--background-color), 1) !important;
}
@@ -179,7 +182,6 @@ details summary {
display: flex;
-webkit-user-select: none;
-moz-user-select: none;
- -ms-user-select: none;
user-select: none;
cursor: pointer;
align-items: center;
@@ -249,7 +251,6 @@ strip-option {
--border-radius: 0.2rem;
-webkit-user-select: none;
-moz-user-select: none;
- -ms-user-select: none;
user-select: none;
}
@@ -305,12 +306,11 @@ ol li::before {
text-overflow: ellipsis;
}
-.breakable {
+.wrap-around {
overflow-wrap: break-word;
word-wrap: break-word;
word-break: break-word;
-webkit-hyphens: auto;
- -ms-hyphens: auto;
hyphens: auto;
}
@@ -504,6 +504,10 @@ ol li::before {
background-color: var(--accent-color);
}
+.margin-right-0-3 {
+ margin-right: 0.3rem;
+}
+
.margin-right-0-5 {
margin-right: 0.5rem;
}
@@ -531,26 +535,15 @@ ol li::before {
display: flex;
justify-content: space-between;
margin-bottom: 1.5rem;
- min-height: 8rem;
+ min-height: 5rem;
}
.page__header .grid {
margin-top: auto;
}
.page__header h1 {
- margin-top: auto;
font-size: 2rem;
}
-.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;
@@ -622,19 +615,34 @@ ol li::before {
#sign_in,
#sign_up {
- justify-items: center;
- align-content: center;
-}
-#sign_in section,
-#sign_up section {
- margin-top: -8rem;
- width: min(24rem, 100%);
+ justify-content: center;
+ align-items: center;
}
#sign_in sm-form,
#sign_up sm-form {
margin: 2rem 0;
}
+#sign_in {
+ display: grid;
+ padding-top: 0;
+ align-items: center;
+ align-content: center;
+ padding-bottom: 0;
+}
+#sign_in .illustration {
+ width: 100%;
+ height: auto;
+ background-color: #4d77ff;
+ border-radius: 1rem;
+}
+#sign_in section {
+ background-color: rgba(var(--foreground-color), 1);
+ padding: 2rem;
+ border-radius: 0.5rem;
+ margin-top: -2.3rem;
+}
+
#sign_up .h2 {
margin-bottom: 0.5rem;
}
@@ -660,27 +668,44 @@ ol li::before {
}
#main_header {
- padding: 1.5rem;
+ display: grid;
+ gap: 1.5rem;
+ padding: 1rem 1rem;
+ align-items: center;
+ grid-template-columns: minmax(0, 1fr) auto;
+ min-height: 4rem;
+}
+
+.logged-in-user-id {
+ background-color: rgba(var(--text-color), 0.06);
+ max-width: -webkit-fit-content;
+ max-width: -moz-fit-content;
+ max-width: fit-content;
+ padding: 0.4rem 0.8rem 0.4rem 0.5rem;
+ border-radius: 2rem;
+ font-weight: 500;
}
#main_card {
- display: grid;
- grid-template-columns: minmax(0, 1fr);
- grid-template-rows: auto 1fr;
+ position: relative;
+ display: flex;
+ flex-direction: column;
height: 100%;
width: 100%;
transition: background-color 0.3s;
- background-color: rgba(var(--foreground-color), 1);
+ background-color: rgba(var(--background-color), 1);
}
#main_navbar {
+ position: fixed;
display: flex;
- background: rgba(var(--text-color), 0.03);
-}
-#main_navbar.hide-away {
- position: absolute;
+ justify-self: center;
+ margin: 0.5rem;
}
#main_navbar ul {
+ border-radius: 1rem;
+ background-color: rgba(var(--foreground-color), 1);
+ box-shadow: 0 0.8rem 3rem rgba(0, 0, 0, 0.15);
display: flex;
height: 100%;
width: 100%;
@@ -700,7 +725,7 @@ ol li::before {
padding: 0.5rem 0.3rem;
color: var(--text-color);
font-size: 0.8rem;
- border-radius: 0.3rem;
+ border-radius: 0.7rem;
font-weight: 500;
}
.nav-item .icon {
@@ -750,10 +775,12 @@ ol li::before {
}
.inner-page {
- padding: 0 1.5rem;
+ display: flex;
+ flex-direction: column;
+ padding: 0 1rem;
flex: 1;
- overflow-y: auto;
align-content: start;
+ overflow-y: auto;
}
.password-field label {
@@ -799,55 +826,46 @@ ol li::before {
}
#wallet_cards_wrapper {
- display: flex;
- overflow-x: auto;
- -ms-scroll-snap-type: x proximity;
- scroll-snap-type: x proximity;
+ display: grid;
+ gap: 0.5rem;
+ grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
}
.balance-card {
- scroll-snap-align: start;
- padding: 1.5rem;
- border-radius: 1rem;
- width: min(16rem, 90%);
- flex-shrink: 0;
- color: rgba(0, 0, 0, 0.8);
+ display: grid;
+ gap: 1.5rem;
+ border-radius: 0.5rem;
+ padding: 1rem;
+ background-color: rgba(var(--foreground-color), 1);
}
-.balance-card:not(:last-of-type) {
- margin-right: 0.5rem;
-}
-.balance-card:nth-of-type(1) {
- background: url("bg-art2.svg") no-repeat bottom right, #c2ffd7;
- background-size: contain;
-}
-.balance-card:nth-of-type(1) .icon {
- background-color: rgba(102, 255, 156, 0.5);
-}
-.balance-card:nth-of-type(2) {
- background: url("back.svg") no-repeat bottom right, #fcffa8;
- background-size: contain;
-}
-.balance-card:nth-of-type(2) .icon {
- background-color: rgba(255, 234, 0, 0.5);
-}
-.balance-card > .flex {
- margin-bottom: 0.3rem;
-}
-.balance-card > .flex .icon {
- height: 2rem;
- width: 2rem;
- padding: 0.4rem;
- border-radius: 0.3rem;
+.balance-card .asset-icon {
+ position: relative;
+ height: 2.5rem;
+ width: 2.5rem;
+ padding: 0.6rem;
+ border-radius: 1.1rem;
fill: rgba(0, 0, 0, 0.8);
- margin-right: 0.5rem;
+ margin-right: 0.8rem;
+}
+.balance-card.rupee-card .asset-icon {
+ background-color: hsl(141deg, 100%, 70%);
+}
+.balance-card.flo-card .asset-icon {
+ fill: white;
+ background-color: #4d77ff;
+}
+.balance-card.btc-card .asset-icon {
+ background-color: rgb(255, 173, 8);
}
#rupee_balance span:first-of-type,
-#flo_balance span:first-of-type {
- font-size: 2rem;
+#flo_balance span:first-of-type,
+#btc_balance span:first-of-type {
+ font-size: 1.5rem;
}
-#rupee_balance span:last-of-type,
-#flo_balance span:last-of-type {
+#rupee_balance span:nth-of-type(2),
+#flo_balance span:nth-of-type(2),
+#btc_balance span:nth-of-type(2) {
font-size: 1rem;
}
@@ -865,9 +883,9 @@ ol li::before {
}
.wallet-action .icon:first-of-type,
.integrated-action-button .icon:first-of-type {
- height: 2.5rem;
- width: 2.5rem;
- padding: 0.6rem;
+ height: 2.3rem;
+ width: 2.3rem;
+ padding: 0.5rem;
fill: rgba(var(--foreground-color), 1);
background-color: var(--accent-color);
border-radius: 2rem;
@@ -885,14 +903,15 @@ ol li::before {
font-weight: 500;
font-size: 0.8rem;
white-space: initial;
+ padding: 0.8rem;
}
.wallet-action .icon {
margin-bottom: 0.8rem;
}
.integrated-action-button {
- padding: 0.8rem 0;
- justify-content: initial;
+ padding: 0;
+ justify-content: flex-start;
}
.integrated-action-button .icon:first-of-type {
margin-right: 1rem;
@@ -936,29 +955,40 @@ ol li::before {
fill: rgba(0, 0, 0, 0.8);
}
+.remove-card-wrapper {
+ min-height: 2rem;
+}
+
+.receiver-card {
+ display: grid;
+ gap: 0.5rem;
+ padding: 0.5rem 0;
+ border: none;
+}
+.receiver-card:not(:last-of-type) {
+ border-bottom: solid thin rgba(var(--text-color), 0.3);
+}
+
#contacts {
position: relative;
- padding: 0;
-}
-#contacts .scrolling-wrapper {
- padding: 0 1.5rem;
}
#saved_ids_list {
display: grid;
+ gap: 0.5rem;
grid-template-columns: minmax(0, 1fr);
- padding-bottom: 5rem;
+ margin-bottom: 1.5rem;
}
.saved-id {
grid-template-columns: auto 1fr;
gap: 0 0.8rem;
- border-radius: 0.3rem;
- padding: 0.8rem 0;
+ border-radius: 0.5rem;
+ padding: 0.5rem;
-webkit-user-select: none;
-moz-user-select: none;
- -ms-user-select: none;
user-select: none;
+ background-color: rgba(var(--foreground-color), 1);
}
.saved-id.highlight {
box-shadow: 0 0 0.1rem 0.1rem var(--accent-color) inset;
@@ -1002,6 +1032,12 @@ ol li::before {
font-size: 0.8rem;
}
+#saved_ids_tip {
+ background-color: rgba(var(--text-color), 0.03);
+ border-radius: 2rem;
+ padding: 0.5rem 0.8rem 0.5rem 0.5rem;
+}
+
.card {
background-color: rgba(var(--foreground-color), 1);
border-radius: 0.5rem;
@@ -1084,7 +1120,7 @@ ol li::before {
position: sticky;
top: 0;
padding: 0.2rem 0 0.5rem 0;
- background-color: rgba(var(--foreground-color), 1);
+ background-color: rgba(var(--background-color), 1);
z-index: 1;
transition: background-color 0.3s;
}
@@ -1153,7 +1189,7 @@ ol li::before {
#payments_history {
display: grid;
gap: 2rem;
- padding-bottom: 4rem;
+ margin-top: 1.5rem;
}
.transaction {
@@ -1205,6 +1241,76 @@ ol li::before {
grid-area: 1/3/3/4;
}
+.btc-tx {
+ grid-template-columns: auto 1fr auto;
+ gap: 0.5rem 1rem;
+ align-items: center;
+ grid-template-areas: "icon time amount" "icon receiver receiver" "icon txid txid";
+}
+.btc-tx:not(:last-of-type) {
+ padding-bottom: 1rem;
+}
+.btc-tx__amount {
+ white-space: nowrap;
+}
+.btc-tx.out .icon {
+ fill: var(--danger-color);
+}
+.btc-tx.out .btc-tx__amount {
+ color: var(--danger-color);
+}
+.btc-tx.out .btc-tx__amount::before {
+ content: "- ";
+}
+.btc-tx.in .icon {
+ fill: var(--green);
+}
+.btc-tx.in .btc-tx__amount {
+ color: var(--green);
+}
+.btc-tx.in .btc-tx__amount::before {
+ content: "+ ";
+}
+.btc-tx.unconfirmed-tx {
+ grid-template-areas: "icon time amount" "icon receiver receiver" "icon txid txid" "icon unconfirmed unconfirmed";
+}
+.btc-tx.unconfirmed-tx .icon {
+ fill: var(--yellow);
+}
+.btc-tx__icon {
+ grid-area: icon;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 2.5rem;
+ height: 2.5rem;
+ background-color: rgba(var(--text-color), 0.03);
+ border-radius: 2rem;
+}
+.btc-tx__receiver {
+ grid-area: receiver;
+ font-weight: 500;
+}
+.btc-tx__time {
+ grid-area: time;
+ font-size: 0.9rem;
+ color: rgba(var(--text-color), 0.8);
+}
+.btc-tx__amount {
+ grid-area: amount;
+ font-size: 1rem;
+ font-weight: 700;
+}
+.btc-tx__id {
+ grid-area: txid;
+ font-size: 0.9rem;
+ color: rgba(var(--text-color), 0.8);
+}
+.btc-tx .unconfirmed-wrapper {
+ grid-area: unconfirmed;
+ padding: 0.5rem 0;
+}
+
.fab {
position: absolute;
right: 0;
@@ -1221,11 +1327,8 @@ ol li::before {
#add_address_button {
border-radius: 0.5rem;
- color: rgba(var(--background-color), 1);
- background-color: var(--accent-color);
-}
-#add_address_button .icon {
- fill: rgba(var(--background-color), 1);
+ background-color: transparent;
+ border: solid 0.1rem var(--accent-color);
}
.user-action-result__icon {
@@ -1291,7 +1394,7 @@ ol li::before {
display: flex;
gap: 1rem;
align-items: center;
- padding: 0.8rem 0;
+ padding: 1rem;
border-radius: 0.3rem;
background-color: rgba(var(--foreground-color), 1);
}
@@ -1463,12 +1566,31 @@ ol li::before {
}
@media screen and (max-width: 40rem) {
+ .inner-page {
+ padding-bottom: 7rem;
+ }
+ #main_navbar {
+ bottom: 0.5rem;
+ justify-self: center;
+ margin: 0 auto;
+ left: 0;
+ right: 0;
+ width: -webkit-max-content;
+ width: -moz-max-content;
+ width: max-content;
+ background-color: rgba(var(--foreground-color), 0.9);
+ -webkit-backdrop-filter: blur(0.5rem);
+ backdrop-filter: blur(0.5rem);
+ }
#main_navbar.hide-away {
bottom: 0;
left: 0;
right: 0;
}
-
+ .nav-item {
+ aspect-ratio: 1/1;
+ width: 4.5rem;
+ }
.integrated-action-button .icon:last-of-type {
margin-left: auto;
}
@@ -1477,58 +1599,32 @@ ol li::before {
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 - 2rem);
- width: calc(100vw - 2rem);
- grid-template-areas: "header" ".";
- position: relative;
- border-radius: 0.8rem;
- overflow: hidden;
- box-shadow: 0 0.1rem 0.2rem rgba(0, 0, 0, 0.05), 0 1rem 3rem rgba(0, 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;
+ padding: 1rem 4vw;
+ background-color: rgba(var(--foreground-color), 1);
}
-
#main_navbar {
- grid-area: nav;
- border-top: none;
- flex-direction: column;
- height: calc(100% - 1rem);
- margin: 0.5rem;
- border-radius: 0.5rem;
- background-color: rgba(37, 110, 255, 0.03);
+ margin: 1rem;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ justify-content: center;
}
#main_navbar ul {
flex-direction: column;
gap: 0.5rem;
padding: 0.3rem;
+ align-self: center;
+ height: auto;
}
- #main_navbar ul li:last-of-type {
- margin-top: auto;
- }
-
.nav-item {
aspect-ratio: 1/1;
}
@@ -1539,24 +1635,24 @@ ol li::before {
border-radius: 0 1rem 1rem 0;
bottom: auto;
}
-
.card {
padding: 1.5rem;
}
-
+ .balance-card {
+ padding: 1.5rem;
+ border-radius: 1rem;
+ }
+ #contact > * {
+ padding: 1rem 12vw;
+ }
+ #contact > :last-child {
+ padding: 0.5rem 12vw;
+ }
#saved_ids_list {
- gap: 1rem;
grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
}
-
- body[data-theme=dark] #main_navbar {
- background-color: rgba(0, 0, 0, 0.2);
- }
-}
-@media screen and (min-width: 56rem) {
- #main_card {
- width: 56rem;
- height: min(90vh, 48rem);
+ .inner-page {
+ padding: 1.5rem 18vw;
}
}
@media (any-hover: hover) {
@@ -1564,7 +1660,6 @@ ol li::before {
width: 0.5rem;
height: 0.5rem;
}
-
::-webkit-scrollbar-thumb {
background: rgba(var(--text-color), 0.3);
border-radius: 1rem;
@@ -1572,14 +1667,12 @@ ol li::before {
::-webkit-scrollbar-thumb:hover {
background: rgba(var(--text-color), 0.5);
}
-
.interact:not([disabled]) {
transition: background-color 0.3s;
}
.interact:not([disabled]):hover {
background-color: rgba(var(--text-color), 0.06);
}
-
button:not([disabled]),
.button:not([disabled]) {
transition: background-color 0.3s, filter 0.3s;
diff --git a/css/main.min.css b/css/main.min.css
index ec23079..90932fc 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: #4d77ff;--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: #a0b6ff;--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)}h1,h1>*,h2,h2>*,h3,h3>*,h4,h4>*,h5,h5>*,h6,h6>*{font-weight:400;font-family:"Calistoga",cursive}p,strong{font-size:.9rem;max-width:65ch;line-height:1.7;color:rgba(var(--text-color), 0.9)}.warning{line-height:normal;padding:1rem;background-color:khaki;border-radius:.5rem;font-weight:500;color:rgba(0,0,0,.7)}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) !important}.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:.8rem 1rem}.icon{width:1.2rem;height:1.2rem;fill:rgba(var(--text-color), 0.8);flex-shrink:0}.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 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;font-size:.9rem}sm-option{font-size:.9rem}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,ol{list-style:none}ol{counter-reset:item}ol li{position:relative;display:flex;align-items:flex-start;counter-increment:item}ol li:not(:last-of-type){padding-bottom:1.5rem}ol li:not(:last-of-type)::after{content:"";position:absolute;width:.1rem;height:calc(100% - 2.2rem);background:var(--accent-color);margin-left:.7rem;margin-top:2rem}ol li::before{content:counter(item);display:flex;align-items:center;justify-content:center;text-align:center;font-size:.8rem;font-weight:500;margin-top:.15rem;margin-right:1rem;line-height:1;width:1.5rem;height:1.5rem;border-radius:100%;flex-shrink:0;color:rgba(var(--text-color), 0.8);background:rgba(var(--text-color), 0.1)}.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-3{gap:.3rem}.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}.align-self-end{align-self:end}.justify-self-center{justify-self:center}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.flex-direction-column{flex-direction:column}.space-between{justify-content:space-between}.w-100{width:100%}.h-100{height:100%}.label{font-size:.8rem;color:rgba(var(--text-color), 0.8);font-weight:500;margin-bottom:.2rem}.button--primary .ripple,.button--danger .ripple{background:radial-gradient(circle, rgba(var(--background-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%)}.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}.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 !important}.observe-empty-state:not(:empty)+.empty-state{display:none !important}.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)}.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;min-height:8rem}.page__header .grid{margin-top:auto}.page__header h1{margin-top:auto;font-size:2rem}.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{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}.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{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;background-color:rgba(var(--foreground-color), 1)}#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;font-weight:500}.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}.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(--danger-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}.scrolling-wrapper{overflow-y:auto}#home{display:flex;flex-direction:column;position:relative}#home>*{margin-bottom:2rem}#user,#cashier{position:relative;padding-bottom:1rem;align-content:flex-start}#wallet_cards_wrapper{display:flex;overflow-x:auto;-ms-scroll-snap-type:x proximity;scroll-snap-type:x proximity}.balance-card{scroll-snap-align:start;padding:1.5rem;border-radius:1rem;width:min(16rem,90%);flex-shrink:0;color:rgba(0,0,0,.8)}.balance-card:not(:last-of-type){margin-right:.5rem}.balance-card:nth-of-type(1){background:url("bg-art2.svg") no-repeat bottom right,#c2ffd7;background-size:contain}.balance-card:nth-of-type(1) .icon{background-color:rgba(102,255,156,.5)}.balance-card:nth-of-type(2){background:url("back.svg") no-repeat bottom right,#fcffa8;background-size:contain}.balance-card:nth-of-type(2) .icon{background-color:rgba(255,234,0,.5)}.balance-card>.flex{margin-bottom:.3rem}.balance-card>.flex .icon{height:2rem;width:2rem;padding:.4rem;border-radius:.3rem;fill:rgba(0,0,0,.8);margin-right:.5rem}#rupee_balance span:first-of-type,#flo_balance span:first-of-type{font-size:2rem}#rupee_balance span:last-of-type,#flo_balance span:last-of-type{font-size:1rem}.actions-wrapper{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill, minmax(4rem, 1fr))}.wallet-action,.integrated-action-button{position:relative;color:inherit;font-weight:500}.wallet-action .icon:first-of-type,.integrated-action-button .icon:first-of-type{height:2.5rem;width:2.5rem;padding:.6rem;fill:rgba(var(--foreground-color), 1);background-color:var(--accent-color);border-radius:2rem}.wallet-action .badge,.integrated-action-button .badge{left:0;right:auto}.wallet-action{flex-direction:column;text-align:center;align-items:center;font-weight:500;font-size:.8rem;white-space:initial}.wallet-action .icon{margin-bottom:.8rem}.integrated-action-button{padding:.8rem 0;justify-content:initial}.integrated-action-button .icon:first-of-type{margin-right:1rem}.integrated-action-button .icon:last-of-type{margin-left:.5rem}.cashier-status{font-size:.9rem;padding:1rem 1.2rem;border-radius:1rem;background-color:rgba(240,230,140,.8);color:rgba(0,0,0,.8)}.cashier-status .icon{fill:rgba(0,0,0,.8)}#topup_wallet__qr_code{background-color:rgba(var(--text-color), 0.03);border-radius:.5rem;height:10rem;justify-self:flex-start;width:10rem}#topup_wallet__qr_code svg{width:100%;height:100%;fill:rgba(var(--text-color), 1)}#cashier_status{font-size:.9rem;padding:1rem 1.2rem;border-radius:1rem;background-color:rgba(240,230,140,.8);color:rgba(0,0,0,.8)}#cashier_status .icon{fill:rgba(0,0,0,.8)}#contacts{position:relative;padding:0}#contacts .scrolling-wrapper{padding:0 1.5rem}#saved_ids_list{display:grid;grid-template-columns:minmax(0, 1fr);padding-bottom:5rem}.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;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;border-top:solid thin rgba(var(--text-color), 0.2)}#contact>:last-child button{padding:.8rem 2rem;border-radius:1rem;color:var(--accent-color);background-color:rgba(var(--text-color), 0.03)}#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}#history .page__header{margin-bottom:0}#history_applied_filters_wrapper{position:-webkit-sticky;position:sticky;top:0;padding:.2rem 0 .5rem 0;background-color:rgba(var(--foreground-color), 1);z-index:1;transition:background-color .3s}.applied-filter{display:flex;align-items:center;padding:.5rem .6rem .5rem .8rem;border-radius:1rem;border:solid thin rgba(var(--text-color), 0.2);text-transform:uppercase;font-size:.8rem;font-weight:500;letter-spacing:.08em}.applied-filter button{padding:.6rem}.applied-filter .icon{margin-left:.3rem}.category-chip{display:inline-flex;align-items:center;justify-content:center;padding:.3rem .5rem;border-radius:.3rem;font-size:.8rem;border:solid thin rgba(var(--text-color), 0.2);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.category-chip:focus{outline:solid var(--accent-color)}.category-chip input{display:none}.category-chip span{transition:transform .2s;transform:translateX(-0.8rem)}.category-chip .icon{opacity:0;transition:opacity .2s,transform .2s;margin-right:.3rem;fill:var(--accent-color);transform:translateX(0.5rem)}.category-chip input:checked~.icon{opacity:1;transform:translateX(0)}.category-chip input:checked~span{color:var(--accent-color);transform:translateX(0)}#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__amount{white-space:nowrap}.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 0;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__mode,.payment-request__mode{text-align:center;width:2rem;font-size:.8rem}.cashier-request__time,.payment-request__time{font-size:.8rem}.cashier-request{display:grid;gap:.5rem 1rem;grid-template-columns:auto 1fr auto;grid-template-areas:"mode details status" "mode . status"}.cashier-request__mode{grid-area:mode}.cashier-request__details{grid-area:details;font-weight:700}.cashier-request__status,.cashier-request__requestor{font-size:.8rem}.cashier-request__status{grid-area:status;grid-column:3/4;grid-row:1/3}#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-align:right}.wallet-request__status .icon{margin-left:.3rem}#transaction__amount{font-size:2.5rem;font-weight:700}#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(--text-color), 0.03)}@media screen and (max-width: 40rem){#main_navbar.hide-away{bottom:0;left:0;right:0}.integrated-action-button .icon:last-of-type{margin-left:auto}}@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 - 2rem);width:calc(100vw - 2rem);grid-template-areas:"header" ".";position:relative;border-radius:.8rem;overflow:hidden;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:calc(100% - 1rem);margin:.5rem;border-radius:.5rem;background-color:rgba(37,110,255,.03)}#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))}body[data-theme=dark] #main_navbar{background-color:rgba(0,0,0,.2)}}@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
+*{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: #4d77ff;--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: #a0b6ff;--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)}h1,h1>*,h2,h2>*,h3,h3>*,h4,h4>*,h5,h5>*,h6,h6>*{font-weight:400;font-family:"Calistoga",cursive}p,strong{font-size:.9rem;max-width:65ch;line-height:1.7;color:rgba(var(--text-color), 0.9)}.warning{line-height:normal;padding:1rem;background-color:khaki;border-radius:.5rem;font-weight:500;color:rgba(0,0,0,.7)}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;user-select:none;position:relative;display:inline-flex;border:none;background-color:rgba(0,0,0,0);overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;font-size:.9rem;font-weight:500;white-space:nowrap;padding:.8rem;border-radius:.3rem;justify-content:center;color:inherit}button:focus-visible{outline:var(--accent-color) solid medium}button:not(:disabled){cursor:pointer}.button{color:var(--accent-color);background-color:rgba(var(--text-color), 0.06)}.button .icon{fill:var(--accent-color)}.button--primary,.button--danger{color:rgba(var(--background-color), 1) !important}.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:.8rem 1rem}.icon{width:1.2rem;height:1.2rem;fill:rgba(var(--text-color), 0.8);flex-shrink:0}.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 summary{display:flex;-webkit-user-select:none;-moz-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;font-size:.9rem}sm-option{font-size:.9rem}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;user-select:none}ul,ol{list-style:none}ol{counter-reset:item}ol li{position:relative;display:flex;align-items:flex-start;counter-increment:item}ol li:not(:last-of-type){padding-bottom:1.5rem}ol li:not(:last-of-type)::after{content:"";position:absolute;width:.1rem;height:calc(100% - 2.2rem);background:var(--accent-color);margin-left:.7rem;margin-top:2rem}ol li::before{content:counter(item);display:flex;align-items:center;justify-content:center;text-align:center;font-size:.8rem;font-weight:500;margin-top:.15rem;margin-right:1rem;line-height:1;width:1.5rem;height:1.5rem;border-radius:100%;flex-shrink:0;color:rgba(var(--text-color), 0.8);background:rgba(var(--text-color), 0.1)}.overflow-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wrap-around{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-webkit-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-3{gap:.3rem}.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}.align-self-end{align-self:end}.justify-self-center{justify-self:center}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.flex-direction-column{flex-direction:column}.space-between{justify-content:space-between}.w-100{width:100%}.h-100{height:100%}.label{font-size:.8rem;color:rgba(var(--text-color), 0.8);font-weight:500;margin-bottom:.2rem}.button--primary .ripple,.button--danger .ripple{background:radial-gradient(circle, rgba(var(--background-color), 0.3) 0%, rgba(0, 0, 0, 0) 50%)}.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}.interact{position:relative;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.empty-state{display:grid;width:100%;padding:1.5rem 0}.observe-empty-state:empty{display:none !important}.observe-empty-state:not(:empty)+.empty-state{display:none !important}.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)}.margin-right-0-3{margin-right:.3rem}.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;min-height:5rem}.page__header .grid{margin-top:auto}.page__header h1{font-size:2rem}#confirmation_popup,#prompt_popup{flex-direction:column}#confirmation_popup h4,#prompt_popup h4{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}.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-content:center;align-items:center}#sign_in sm-form,#sign_up sm-form{margin:2rem 0}#sign_in{display:grid;padding-top:0;align-items:center;align-content:center;padding-bottom:0}#sign_in .illustration{width:100%;height:auto;background-color:#4d77ff;border-radius:1rem}#sign_in section{background-color:rgba(var(--foreground-color), 1);padding:2rem;border-radius:.5rem;margin-top:-2.3rem}#sign_up .h2{margin-bottom:.5rem}#sign_up .card{margin:1.5rem 0}#sign_up h5{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{display:grid;gap:1.5rem;padding:1rem 1rem;align-items:center;grid-template-columns:minmax(0, 1fr) auto;min-height:4rem}.logged-in-user-id{background-color:rgba(var(--text-color), 0.06);max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;padding:.4rem .8rem .4rem .5rem;border-radius:2rem;font-weight:500}#main_card{position:relative;display:flex;flex-direction:column;height:100%;width:100%;transition:background-color .3s;background-color:rgba(var(--background-color), 1)}#main_navbar{position:fixed;display:flex;justify-self:center;margin:.5rem}#main_navbar ul{border-radius:1rem;background-color:rgba(var(--foreground-color), 1);box-shadow:0 .8rem 3rem rgba(0,0,0,.15);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:.7rem;font-weight:500}.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}.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(--danger-color);color:rgba(var(--background-color), 1);aspect-ratio:1/1;font-weight:700;border-radius:.3rem;margin:.3rem}.inner-page{display:flex;flex-direction:column;padding:0 1rem;flex:1;align-content:start;overflow-y:auto}.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}.scrolling-wrapper{overflow-y:auto}#home{display:flex;flex-direction:column;position:relative}#home>*{margin-bottom:2rem}#user,#cashier{position:relative;padding-bottom:1rem;align-content:flex-start}#wallet_cards_wrapper{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit, minmax(20rem, 1fr))}.balance-card{display:grid;gap:1.5rem;border-radius:.5rem;padding:1rem;background-color:rgba(var(--foreground-color), 1)}.balance-card .asset-icon{position:relative;height:2.5rem;width:2.5rem;padding:.6rem;border-radius:1.1rem;fill:rgba(0,0,0,.8);margin-right:.8rem}.balance-card.rupee-card .asset-icon{background-color:#66ff9c}.balance-card.flo-card .asset-icon{fill:#fff;background-color:#4d77ff}.balance-card.btc-card .asset-icon{background-color:#ffad08}#rupee_balance span:first-of-type,#flo_balance span:first-of-type,#btc_balance span:first-of-type{font-size:1.5rem}#rupee_balance span:nth-of-type(2),#flo_balance span:nth-of-type(2),#btc_balance span:nth-of-type(2){font-size:1rem}.actions-wrapper{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill, minmax(4rem, 1fr))}.wallet-action,.integrated-action-button{position:relative;color:inherit;font-weight:500}.wallet-action .icon:first-of-type,.integrated-action-button .icon:first-of-type{height:2.3rem;width:2.3rem;padding:.5rem;fill:rgba(var(--foreground-color), 1);background-color:var(--accent-color);border-radius:2rem}.wallet-action .badge,.integrated-action-button .badge{left:0;right:auto}.wallet-action{flex-direction:column;text-align:center;align-items:center;font-weight:500;font-size:.8rem;white-space:initial;padding:.8rem}.wallet-action .icon{margin-bottom:.8rem}.integrated-action-button{padding:0;justify-content:flex-start}.integrated-action-button .icon:first-of-type{margin-right:1rem}.integrated-action-button .icon:last-of-type{margin-left:.5rem}.cashier-status{font-size:.9rem;padding:1rem 1.2rem;border-radius:1rem;background-color:rgba(240,230,140,.8);color:rgba(0,0,0,.8)}.cashier-status .icon{fill:rgba(0,0,0,.8)}#topup_wallet__qr_code{background-color:rgba(var(--text-color), 0.03);border-radius:.5rem;height:10rem;justify-self:flex-start;width:10rem}#topup_wallet__qr_code svg{width:100%;height:100%;fill:rgba(var(--text-color), 1)}#cashier_status{font-size:.9rem;padding:1rem 1.2rem;border-radius:1rem;background-color:rgba(240,230,140,.8);color:rgba(0,0,0,.8)}#cashier_status .icon{fill:rgba(0,0,0,.8)}.remove-card-wrapper{min-height:2rem}.receiver-card{display:grid;gap:.5rem;padding:.5rem 0;border:none}.receiver-card:not(:last-of-type){border-bottom:solid thin rgba(var(--text-color), 0.3)}#contacts{position:relative}#saved_ids_list{display:grid;gap:.5rem;grid-template-columns:minmax(0, 1fr);margin-bottom:1.5rem}.saved-id{grid-template-columns:auto 1fr;gap:0 .8rem;border-radius:.5rem;padding:.5rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:rgba(var(--foreground-color), 1)}.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;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}#saved_ids_tip{background-color:rgba(var(--text-color), 0.03);border-radius:2rem;padding:.5rem .8rem .5rem .5rem}.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;border-top:solid thin rgba(var(--text-color), 0.2)}#contact>:last-child button{padding:.8rem 2rem;border-radius:1rem;color:var(--accent-color);background-color:rgba(var(--text-color), 0.03)}#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}#history .page__header{margin-bottom:0}#history_applied_filters_wrapper{position:-webkit-sticky;position:sticky;top:0;padding:.2rem 0 .5rem 0;background-color:rgba(var(--background-color), 1);z-index:1;transition:background-color .3s}.applied-filter{display:flex;align-items:center;padding:.5rem .6rem .5rem .8rem;border-radius:1rem;border:solid thin rgba(var(--text-color), 0.2);text-transform:uppercase;font-size:.8rem;font-weight:500;letter-spacing:.08em}.applied-filter button{padding:.6rem}.applied-filter .icon{margin-left:.3rem}.category-chip{display:inline-flex;align-items:center;justify-content:center;padding:.3rem .5rem;border-radius:.3rem;font-size:.8rem;border:solid thin rgba(var(--text-color), 0.2);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.category-chip:focus{outline:solid var(--accent-color)}.category-chip input{display:none}.category-chip span{transition:transform .2s;transform:translateX(-0.8rem)}.category-chip .icon{opacity:0;transition:opacity .2s,transform .2s;margin-right:.3rem;fill:var(--accent-color);transform:translateX(0.5rem)}.category-chip input:checked~.icon{opacity:1;transform:translateX(0)}.category-chip input:checked~span{color:var(--accent-color);transform:translateX(0)}#wallet_history_wrapper{margin-top:1.5rem;padding-bottom:3rem}#payments_history{display:grid;gap:2rem;margin-top:1.5rem}.transaction{grid-template-columns:auto 1fr auto;gap:.5rem 1rem;align-items:center}.transaction__amount{white-space:nowrap}.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}.btc-tx{grid-template-columns:auto 1fr auto;gap:.5rem 1rem;align-items:center;grid-template-areas:"icon time amount" "icon receiver receiver" "icon txid txid"}.btc-tx:not(:last-of-type){padding-bottom:1rem}.btc-tx__amount{white-space:nowrap}.btc-tx.out .icon{fill:var(--danger-color)}.btc-tx.out .btc-tx__amount{color:var(--danger-color)}.btc-tx.out .btc-tx__amount::before{content:"- "}.btc-tx.in .icon{fill:var(--green)}.btc-tx.in .btc-tx__amount{color:var(--green)}.btc-tx.in .btc-tx__amount::before{content:"+ "}.btc-tx.unconfirmed-tx{grid-template-areas:"icon time amount" "icon receiver receiver" "icon txid txid" "icon unconfirmed unconfirmed"}.btc-tx.unconfirmed-tx .icon{fill:var(--yellow)}.btc-tx__icon{grid-area:icon;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background-color:rgba(var(--text-color), 0.03);border-radius:2rem}.btc-tx__receiver{grid-area:receiver;font-weight:500}.btc-tx__time{grid-area:time;font-size:.9rem;color:rgba(var(--text-color), 0.8)}.btc-tx__amount{grid-area:amount;font-size:1rem;font-weight:700}.btc-tx__id{grid-area:txid;font-size:.9rem;color:rgba(var(--text-color), 0.8)}.btc-tx .unconfirmed-wrapper{grid-area:unconfirmed;padding:.5rem 0}.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;background-color:rgba(0,0,0,0);border:solid .1rem var(--accent-color)}.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:1rem;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__mode,.payment-request__mode{text-align:center;width:2rem;font-size:.8rem}.cashier-request__time,.payment-request__time{font-size:.8rem}.cashier-request{display:grid;gap:.5rem 1rem;grid-template-columns:auto 1fr auto;grid-template-areas:"mode details status" "mode . status"}.cashier-request__mode{grid-area:mode}.cashier-request__details{grid-area:details;font-weight:700}.cashier-request__status,.cashier-request__requestor{font-size:.8rem}.cashier-request__status{grid-area:status;grid-column:3/4;grid-row:1/3}#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:rgba(0,0,0,0);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-align:right}.wallet-request__status .icon{margin-left:.3rem}#transaction__amount{font-size:2.5rem;font-weight:700}#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(--text-color), 0.03)}@media screen and (max-width: 40rem){.inner-page{padding-bottom:7rem}#main_navbar{bottom:.5rem;justify-self:center;margin:0 auto;left:0;right:0;width:-webkit-max-content;width:-moz-max-content;width:max-content;background-color:rgba(var(--foreground-color), 0.9);-webkit-backdrop-filter:blur(0.5rem);backdrop-filter:blur(0.5rem)}#main_navbar.hide-away{bottom:0;left:0;right:0}.nav-item{aspect-ratio:1/1;width:4.5rem}.integrated-action-button .icon:last-of-type{margin-left:auto}}@media screen and (min-width: 40rem){sm-popup{--width: 24rem}.popup__header{grid-column:1/-1;padding:1rem 1.5rem 0 1.5rem}body{align-items:center;justify-content:center}#main_header{padding:1rem 4vw;background-color:rgba(var(--foreground-color), 1)}#main_navbar{margin:1rem;left:0;top:0;bottom:0;justify-content:center}#main_navbar ul{flex-direction:column;gap:.5rem;padding:.3rem;align-self:center;height: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}.balance-card{padding:1.5rem;border-radius:1rem}#contact>*{padding:1rem 12vw}#contact>:last-child{padding:.5rem 12vw}#saved_ids_list{grid-template-columns:repeat(auto-fill, minmax(14rem, 1fr))}.inner-page{padding:1.5rem 18vw}}@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 89869f2..210e01e 100644
--- a/css/main.scss
+++ b/css/main.scss
@@ -94,7 +94,6 @@ button {
border: none;
background-color: transparent;
overflow: hidden;
- color: inherit;
-webkit-tap-highlight-color: transparent;
align-items: center;
font-size: 0.9rem;
@@ -103,6 +102,7 @@ button {
padding: 0.8rem;
border-radius: 0.3rem;
justify-content: center;
+ color: inherit;
&:focus-visible {
outline: var(--accent-color) solid medium;
}
@@ -111,7 +111,11 @@ button {
}
}
.button {
+ color: var(--accent-color);
background-color: rgba(var(--text-color), 0.06);
+ .icon {
+ fill: var(--accent-color);
+ }
&--primary,
&--danger {
color: rgba(var(--background-color), 1) !important;
@@ -278,7 +282,7 @@ ol {
text-overflow: ellipsis;
}
-.breakable {
+.wrap-around {
overflow-wrap: break-word;
word-wrap: break-word;
word-break: break-word;
@@ -470,6 +474,9 @@ ol {
background-color: var(--accent-color);
}
}
+.margin-right-0-3 {
+ margin-right: 0.3rem;
+}
.margin-right-0-5 {
margin-right: 0.5rem;
}
@@ -493,25 +500,15 @@ ol {
display: flex;
justify-content: space-between;
margin-bottom: 1.5rem;
- min-height: 8rem;
+ min-height: 5rem;
.grid {
margin-top: auto;
}
h1 {
- margin-top: auto;
font-size: 2rem;
}
}
}
-.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;
@@ -577,16 +574,31 @@ ol {
#sign_in,
#sign_up {
- justify-items: center;
- align-content: center;
- section {
- margin-top: -8rem;
- width: min(24rem, 100%);
- }
+ justify-content: center;
+ align-items: center;
sm-form {
margin: 2rem 0;
}
}
+#sign_in {
+ display: grid;
+ padding-top: 0;
+ align-items: center;
+ align-content: center;
+ padding-bottom: 0;
+ .illustration {
+ width: 100%;
+ height: auto;
+ background-color: #4d77ff;
+ border-radius: 1rem;
+ }
+ section {
+ background-color: rgba(var(--foreground-color), 1);
+ padding: 2rem;
+ border-radius: 0.5rem;
+ margin-top: -2.3rem;
+ }
+}
#sign_up {
.h2 {
margin-bottom: 0.5rem;
@@ -612,25 +624,39 @@ ol {
}
}
#main_header {
- padding: 1.5rem;
+ display: grid;
+ gap: 1.5rem;
+ padding: 1rem 1rem;
+ align-items: center;
+ grid-template-columns: minmax(0, 1fr) auto;
+ min-height: 4rem;
+}
+.logged-in-user-id {
+ background-color: rgba(var(--text-color), 0.06);
+ max-width: fit-content;
+ padding: 0.4rem 0.8rem 0.4rem 0.5rem;
+ border-radius: 2rem;
+ font-weight: 500;
}
#main_card {
- display: grid;
- grid-template-columns: minmax(0, 1fr);
- grid-template-rows: auto 1fr;
+ position: relative;
+ display: flex;
+ flex-direction: column;
height: 100%;
width: 100%;
transition: background-color 0.3s;
- background-color: rgba(var(--foreground-color), 1);
+ background-color: rgba(var(--background-color), 1);
}
#main_navbar {
+ position: fixed;
display: flex;
- background: rgba(var(--text-color), 0.03);
- &.hide-away {
- position: absolute;
- }
+ justify-self: center;
+ margin: 0.5rem;
ul {
+ border-radius: 1rem;
+ background-color: rgba(var(--foreground-color), 1);
+ box-shadow: 0 0.8rem 3rem rgba(0 0 0/ 0.15);
display: flex;
height: 100%;
width: 100%;
@@ -650,7 +676,7 @@ ol {
padding: 0.5rem 0.3rem;
color: var(--text-color);
font-size: 0.8rem;
- border-radius: 0.3rem;
+ border-radius: 0.7rem;
font-weight: 500;
.icon {
transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
@@ -699,10 +725,12 @@ ol {
margin: 0.3rem;
}
.inner-page {
- padding: 0 1.5rem;
+ display: flex;
+ flex-direction: column;
+ padding: 0 1rem;
flex: 1;
- overflow-y: auto;
align-content: start;
+ overflow-y: auto;
}
.password-field {
@@ -745,52 +773,49 @@ ol {
align-content: flex-start;
}
#wallet_cards_wrapper {
- display: flex;
- overflow-x: auto;
- scroll-snap-type: x proximity;
+ display: grid;
+ gap: 0.5rem;
+ grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
}
.balance-card {
- scroll-snap-align: start;
- padding: 1.5rem;
- border-radius: 1rem;
- width: min(16rem, 90%);
- flex-shrink: 0;
- color: rgba(0, 0, 0, 0.8);
- &:not(:last-of-type) {
- margin-right: 0.5rem;
+ display: grid;
+ gap: 1.5rem;
+ border-radius: 0.5rem;
+ padding: 1rem;
+ background-color: rgba(var(--foreground-color), 1);
+ .asset-icon {
+ position: relative;
+ height: 2.5rem;
+ width: 2.5rem;
+ padding: 0.6rem;
+ border-radius: 1.1rem;
+ fill: rgba(0, 0, 0, 0.8);
+ margin-right: 0.8rem;
}
- &:nth-of-type(1) {
- background: url("bg-art2.svg") no-repeat bottom right, hsl(141, 100%, 88%);
- background-size: contain;
- .icon {
- background-color: hsla(141, 100%, 70%, 0.5);
+ &.rupee-card {
+ .asset-icon {
+ background-color: hsla(141, 100%, 70%);
}
}
- &:nth-of-type(2) {
- background: url("back.svg") no-repeat bottom right, hsl(62, 100%, 83%);
- background-size: contain;
- .icon {
- background-color: hsla(55, 100%, 50%, 0.5);
+ &.flo-card {
+ .asset-icon {
+ fill: white;
+ background-color: #4d77ff;
}
}
- & > .flex {
- margin-bottom: 0.3rem;
- .icon {
- height: 2rem;
- width: 2rem;
- padding: 0.4rem;
- border-radius: 0.3rem;
- fill: rgba(0, 0, 0, 0.8);
- margin-right: 0.5rem;
+ &.btc-card {
+ .asset-icon {
+ background-color: rgba(255, 173, 8);
}
}
}
#rupee_balance,
-#flo_balance {
+#flo_balance,
+#btc_balance {
span:first-of-type {
- font-size: 2rem;
+ font-size: 1.5rem;
}
- span:last-of-type {
+ span:nth-of-type(2) {
font-size: 1rem;
}
}
@@ -805,9 +830,9 @@ ol {
color: inherit;
font-weight: 500;
.icon:first-of-type {
- height: 2.5rem;
- width: 2.5rem;
- padding: 0.6rem;
+ height: 2.3rem;
+ width: 2.3rem;
+ padding: 0.5rem;
fill: rgba(var(--foreground-color), 1);
background-color: var(--accent-color);
border-radius: 2rem;
@@ -824,13 +849,14 @@ ol {
font-weight: 500;
font-size: 0.8rem;
white-space: initial;
+ padding: 0.8rem;
.icon {
margin-bottom: 0.8rem;
}
}
.integrated-action-button {
- padding: 0.8rem 0;
- justify-content: initial;
+ padding: 0;
+ justify-content: flex-start;
.icon:first-of-type {
margin-right: 1rem;
}
@@ -870,25 +896,35 @@ ol {
fill: rgba(0, 0, 0, 0.8);
}
}
+.remove-card-wrapper {
+ min-height: 2rem;
+}
+.receiver-card {
+ display: grid;
+ gap: 0.5rem;
+ padding: 0.5rem 0;
+ border: none;
+ &:not(:last-of-type) {
+ border-bottom: solid thin rgba(var(--text-color), 0.3);
+ }
+}
#contacts {
position: relative;
- padding: 0;
- .scrolling-wrapper {
- padding: 0 1.5rem;
- }
}
#saved_ids_list {
display: grid;
+ gap: 0.5rem;
grid-template-columns: minmax(0, 1fr);
- padding-bottom: 5rem;
+ margin-bottom: 1.5rem;
}
.saved-id {
grid-template-columns: auto 1fr;
gap: 0 0.8rem;
- border-radius: 0.3rem;
- padding: 0.8rem 0;
+ border-radius: 0.5rem;
+ padding: 0.5rem;
user-select: none;
+ background-color: rgba(var(--foreground-color), 1);
&.highlight {
box-shadow: 0 0 0.1rem 0.1rem var(--accent-color) inset;
}
@@ -931,6 +967,11 @@ ol {
font-size: 0.8rem;
}
}
+#saved_ids_tip {
+ background-color: rgba(var(--text-color), 0.03);
+ border-radius: 2rem;
+ padding: 0.5rem 0.8rem 0.5rem 0.5rem;
+}
.card {
background-color: rgba(var(--foreground-color), 1);
@@ -1012,7 +1053,7 @@ ol {
position: sticky;
top: 0;
padding: 0.2rem 0 0.5rem 0;
- background-color: rgba(var(--foreground-color), 1);
+ background-color: rgba(var(--background-color), 1);
z-index: 1;
transition: background-color 0.3s;
}
@@ -1078,7 +1119,7 @@ ol {
#payments_history {
display: grid;
gap: 2rem;
- padding-bottom: 4rem;
+ margin-top: 1.5rem;
}
.transaction {
grid-template-columns: auto 1fr auto;
@@ -1132,6 +1173,79 @@ ol {
grid-area: 1/3/3/4;
}
}
+.btc-tx {
+ grid-template-columns: auto 1fr auto;
+ gap: 0.5rem 1rem;
+ align-items: center;
+ grid-template-areas: "icon time amount" "icon receiver receiver" "icon txid txid";
+ &:not(:last-of-type) {
+ padding-bottom: 1rem;
+ }
+ &__amount {
+ white-space: nowrap;
+ }
+ &.out {
+ .icon {
+ fill: var(--danger-color);
+ }
+ .btc-tx__amount {
+ color: var(--danger-color);
+ &::before {
+ content: "- ";
+ }
+ }
+ }
+ &.in {
+ .icon {
+ fill: var(--green);
+ }
+ .btc-tx__amount {
+ color: var(--green);
+ &::before {
+ content: "+ ";
+ }
+ }
+ }
+ &.unconfirmed-tx {
+ grid-template-areas: "icon time amount" "icon receiver receiver" "icon txid txid" "icon unconfirmed unconfirmed";
+ .icon {
+ fill: var(--yellow);
+ }
+ }
+ &__icon {
+ grid-area: icon;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 2.5rem;
+ height: 2.5rem;
+ background-color: rgba(var(--text-color), 0.03);
+ border-radius: 2rem;
+ }
+ &__receiver {
+ grid-area: receiver;
+ font-weight: 500;
+ }
+ &__time {
+ grid-area: time;
+ font-size: 0.9rem;
+ color: rgba(var(--text-color), 0.8);
+ }
+ &__amount {
+ grid-area: amount;
+ font-size: 1rem;
+ font-weight: 700;
+ }
+ &__id {
+ grid-area: txid;
+ font-size: 0.9rem;
+ color: rgba(var(--text-color), 0.8);
+ }
+ .unconfirmed-wrapper {
+ grid-area: unconfirmed;
+ padding: 0.5rem 0;
+ }
+}
.fab {
position: absolute;
right: 0;
@@ -1146,11 +1260,8 @@ ol {
}
#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);
- }
+ background-color: transparent;
+ border: solid 0.1rem var(--accent-color);
}
.user-action-result__icon {
justify-self: center;
@@ -1194,7 +1305,7 @@ ol {
display: flex;
gap: 1rem;
align-items: center;
- padding: 0.8rem 0;
+ padding: 1rem;
border-radius: 0.3rem;
background-color: rgba(var(--foreground-color), 1);
&:not(:last-of-type) {
@@ -1366,13 +1477,28 @@ ol {
background-color: rgba(var(--text-color), 0.03);
}
@media screen and (max-width: 40rem) {
+ .inner-page {
+ padding-bottom: 7rem;
+ }
#main_navbar {
+ bottom: 0.5rem;
+ justify-self: center;
+ margin: 0 auto;
+ left: 0;
+ right: 0;
+ width: max-content;
+ background-color: rgba(var(--foreground-color), 0.9);
+ backdrop-filter: blur(0.5rem);
&.hide-away {
bottom: 0;
left: 0;
right: 0;
}
}
+ .nav-item {
+ aspect-ratio: 1/1;
+ width: 4.5rem;
+ }
.integrated-action-button {
.icon:last-of-type {
margin-left: auto;
@@ -1383,9 +1509,6 @@ ol {
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;
@@ -1394,40 +1517,22 @@ ol {
align-items: center;
justify-content: center;
}
-
- #main_card {
- height: calc(100vh - 2rem);
- width: calc(100vw - 2rem);
- 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.8rem;
- overflow: hidden;
- box-shadow: 0 0.1rem 0.2rem rgba(0, 0, 0, 0.05),
- 0 1rem 3rem rgba(0, 0, 0, 0.2);
- }
#main_header {
- grid-area: header;
+ padding: 1rem 4vw;
+ background-color: rgba(var(--foreground-color), 1);
}
#main_navbar {
- grid-area: nav;
- border-top: none;
- flex-direction: column;
- height: calc(100% - 1rem);
- margin: 0.5rem;
- border-radius: 0.5rem;
- background-color: rgba(37 110 255/ 0.03);
+ margin: 1rem;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ justify-content: center;
ul {
flex-direction: column;
gap: 0.5rem;
padding: 0.3rem;
- li:last-of-type {
- margin-top: auto;
- }
+ align-self: center;
+ height: auto;
}
}
.nav-item {
@@ -1443,20 +1548,23 @@ ol {
.card {
padding: 1.5rem;
}
- #saved_ids_list {
- gap: 1rem;
- grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
+ .balance-card {
+ padding: 1.5rem;
+ border-radius: 1rem;
}
- body[data-theme="dark"] {
- #main_navbar {
- background-color: rgba(0 0 0/ 0.2);
+ #contact {
+ & > * {
+ padding: 1rem 12vw;
+ }
+ & > :last-child {
+ padding: 0.5rem 12vw;
}
}
-}
-@media screen and (min-width: 56rem) {
- #main_card {
- width: 56rem;
- height: min(90vh, 48rem);
+ #saved_ids_list {
+ grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
+ }
+ .inner-page {
+ padding: 1.5rem 18vw;
}
}
@media (any-hover: hover) {
@@ -1468,7 +1576,6 @@ ol {
::-webkit-scrollbar-thumb {
background: rgba(var(--text-color), 0.3);
border-radius: 1rem;
-
&:hover {
background: rgba(var(--text-color), 0.5);
}
diff --git a/index.html b/index.html
index 948f1c7..6544e36 100644
--- a/index.html
+++ b/index.html
@@ -7,6 +7,8 @@
+
+
@@ -21,6 +23,8 @@
}
+
@@ -64,7 +68,7 @@
-
+
Send.request
@@ -73,7 +77,49 @@
-
+
+
Sign In
Welcome back, glad to see you again
@@ -87,7 +133,7 @@
-
+