@@ -115,9 +115,12 @@ body { font-size: 14px; }
. btn-sm { min-height : 32 px ; padding : 5 px 10 px ; }
. btn-sm { min-height : 32 px ; padding : 5 px 10 px ; }
. modal-content , . drawer { border-color : var ( - - border - light ) ; border-radius : 22 px ; }
. modal-content , . drawer { border-color : var ( - - border - light ) ; border-radius : 22 px ; }
. drawer { border-radius : 22 px 0 0 22 px ; }
. drawer { border-radius : 22 px 0 0 22 px ; }
input : focus-visible , select : focus-visible , textarea : focus-visible { outline : 2 px solid var ( - - primary ) ; outline-offset : 2 px ; }
/* 文本框不再画 2px 描边方框(鼠标点进去也会命中 :focus-visible,那是「丑方框」的主要来源);
聚焦反馈统一交给底色变化。按钮/链接保留键盘可见性轮廓。 */
button : focus-visible , a : focus-visible { outline : 2 px solid var ( - - primary ) ; outline-offset : 2 px ; }
input : focus-visible , select : focus-visible , textarea : focus-visible { outline : none ; }
/* Settings shell: a single rounded, softly illuminated surface. */
/* Settings shell: a single rounded, softly illuminated surface. */
/* 设置仍是模态,层级要压过「小屁 」浮窗(z-index 78) */
/* 设置仍是模态,层级要压过「小皮 」浮窗(z-index 78) */
. settings-overlay { z-index : 90 ; padding : 24 px ; background : rgba ( 4 , 9 , 18 , .64 ) ; backdrop-filter : blur ( 9 px ) ; }
. settings-overlay { z-index : 90 ; padding : 24 px ; background : rgba ( 4 , 9 , 18 , .64 ) ; backdrop-filter : blur ( 9 px ) ; }
. settings-modal . luxury-settings {
. settings-modal . luxury-settings {
position : relative ; width : min ( 1020 px , 100 % ) ; height : min ( 700 px , calc ( 100 dvh - 48 px ) ) ;
position : relative ; width : min ( 1020 px , 100 % ) ; height : min ( 700 px , calc ( 100 dvh - 48 px ) ) ;
@@ -227,8 +230,8 @@ input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px
. global-header-brand strong { font-size : 19 px ; letter-spacing : .01 em ; line-height : 1.2 ; }
. global-header-brand strong { font-size : 19 px ; letter-spacing : .01 em ; line-height : 1.2 ; }
. global-header-brand span : not ( . header-status-dot ) : not ( . brand-mark ) { color : var ( - - text - tertiary ) ; font : 10 px var ( - - font - mono ) ; letter-spacing : .14 em ; margin-top : 2 px ; }
. global-header-brand span : not ( . header-status-dot ) : not ( . brand-mark ) { color : var ( - - text - tertiary ) ; font : 10 px var ( - - font - mono ) ; letter-spacing : .14 em ; margin-top : 2 px ; }
. header-status-dot { width : 9 px ; height : 9 px ; flex : 0 0 9 px ; border-radius : 50 % ; background : var ( - - success ) ; box-shadow : 0 0 10 px var ( - - success ) ; }
. header-status-dot { width : 9 px ; height : 9 px ; flex : 0 0 9 px ; border-radius : 50 % ; background : var ( - - success ) ; box-shadow : 0 0 10 px var ( - - success ) ; }
. global-search { display : flex ; align-items : center ; gap : 9 px ; flex : 0 0 auto ; width : min ( 360 px , 30 vw ) ; min-height : 38 px ; padding : 0 11 px ; color : var ( - - text - tertiary ) ; background : var ( - - surface - deep ) ; border : 1 px solid var ( - - border - light ) ; border-radius : 11 px ; transition : border-color 150 ms , box-shadow 150 ms ; }
. global-search { display : flex ; align-items : center ; gap : 9 px ; flex : 0 0 auto ; width : min ( 360 px , 30 vw ) ; min-height : 38 px ; padding : 0 11 px ; color : var ( - - text - tertiary ) ; background : var ( - - surface - deep ) ; border : 0 ; border-radius : 11 px ; transition : background var ( - - transition - fast ) ; }
. global-search : focus-within { border-color : var ( - - primary - border ) ; box-shadow : 0 0 0 3 px var ( - - accent - glow ) ; }
. global-search : focus-within { background : var ( - - primary - bg ) ; }
. global-search input { min-width : 0 ; min-height : 0 ; padding : 0 ; border : 0 ; background : transparent ; box-shadow : none ; color : var ( - - text - primary ) ; }
. global-search input { min-width : 0 ; min-height : 0 ; padding : 0 ; border : 0 ; background : transparent ; box-shadow : none ; color : var ( - - text - primary ) ; }
. global-search input : focus { box-shadow : none ; }
. global-search input : focus { box-shadow : none ; }
. global-search kbd { margin-left : auto ; flex : 0 0 auto ; white-space : nowrap ; padding : 2 px 5 px ; color : var ( - - text - tertiary ) ; background : var ( - - surface ) ; border : 1 px solid var ( - - border - light ) ; border-radius : 5 px ; font : 10 px var ( - - font - mono ) ; }
. global-search kbd { margin-left : auto ; flex : 0 0 auto ; white-space : nowrap ; padding : 2 px 5 px ; color : var ( - - text - tertiary ) ; background : var ( - - surface ) ; border : 1 px solid var ( - - border - light ) ; border-radius : 5 px ; font : 10 px var ( - - font - mono ) ; }
@@ -358,8 +361,8 @@ input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px
. memo-remove { flex : 0 0 auto ; display : grid ; place-items : center ; width : 19 px ; height : 19 px ; padding : 0 ; border : 0 ; border-radius : var ( - - radius - sm ) ; background : transparent ; color : var ( - - text - disabled ) ; cursor : pointer ; opacity : 0 ; transition : opacity var ( - - transition - fast ) , color var ( - - transition - fast ) ; }
. memo-remove { flex : 0 0 auto ; display : grid ; place-items : center ; width : 19 px ; height : 19 px ; padding : 0 ; border : 0 ; border-radius : var ( - - radius - sm ) ; background : transparent ; color : var ( - - text - disabled ) ; cursor : pointer ; opacity : 0 ; transition : opacity var ( - - transition - fast ) , color var ( - - transition - fast ) ; }
. memo-item : hover . memo-remove , . memo-remove : focus-visible { opacity : 1 ; }
. memo-item : hover . memo-remove , . memo-remove : focus-visible { opacity : 1 ; }
. memo-remove : hover { color : var ( - - danger ) ; }
. memo-remove : hover { color : var ( - - danger ) ; }
. memo-add { display : flex ; align-items : center ; gap : 7 px ; padding : 6 px 8 px ; border : 1 px dashed var ( - - border ) ; border-radius : var ( - - radius - sm ) ; background : var ( - - surface ) ; transition : border-color var ( - - transition - fast ) , background var ( - - transition - fast ) ; }
. memo-add { display : flex ; align-items : center ; gap : 7 px ; padding : 7 px 10 px ; border : 0 ; border-radius : 10 px ; background : var ( - - surface - deep ) ; transition : background var ( - - transition - fast ) ; }
. memo-add : focus-within { border-style : solid ; border-color : var ( - - primary ) ; background : var ( - - surface - raised ) ; }
. memo-add : focus-within { background : var ( - - primary - bg ) ; }
. memo-add [ data-saving = "true" ] { opacity : .6 ; }
. memo-add [ data-saving = "true" ] { opacity : .6 ; }
. memo-add-icon { display : grid ; place-items : center ; flex : 0 0 auto ; color : var ( - - text - tertiary ) ; transition : color var ( - - transition - fast ) ; }
. memo-add-icon { display : grid ; place-items : center ; flex : 0 0 auto ; color : var ( - - text - tertiary ) ; transition : color var ( - - transition - fast ) ; }
. memo-add : focus-within . memo-add-icon { color : var ( - - primary - light ) ; }
. memo-add : focus-within . memo-add-icon { color : var ( - - primary - light ) ; }
@@ -390,10 +393,10 @@ input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px
. calendar-popover-close : hover { border-color : var ( - - border ) ; color : var ( - - text - primary ) ; }
. calendar-popover-close : hover { border-color : var ( - - border ) ; color : var ( - - text - primary ) ; }
. calendar-field { display : block ; margin-bottom : 10 px ; }
. calendar-field { display : block ; margin-bottom : 10 px ; }
. calendar-field > span { display : block ; margin-bottom : 5 px ; color : var ( - - text - tertiary ) ; font : 10 px var ( - - font - mono ) ; letter-spacing : .08 em ; }
. calendar-field > span { display : block ; margin-bottom : 5 px ; color : var ( - - text - tertiary ) ; font : 10 px var ( - - font - mono ) ; letter-spacing : .08 em ; }
. calendar-field input , . calendar-field textarea { width : 100 % ; padding : 8 px 9 px ; border : 1 px solid var ( - - border ) ; border-radius : var ( - - radius - sm ) ; background : var ( - - surface - deep ) ; color : var ( - - text - primary ) ; font : 12 px var ( - - font - body ) ; }
. calendar-field input , . calendar-field textarea { width : 100 % ; padding : 8 px 10 px ; border : 0 ; border-radius : 9 px ; background : var ( - - surface - deep ) ; color : var ( - - text - primary ) ; font : 12 px var ( - - font - body ) ; }
. calendar-field textarea { min-height : 56 px ; resize : vertical ; }
. calendar-field textarea { min-height : 56 px ; resize : vertical ; }
. calendar-field input :: placeholder , . calendar-field textarea :: placeholder { color : var ( - - text - disabled ) ; }
. calendar-field input :: placeholder , . calendar-field textarea :: placeholder { color : var ( - - text - disabled ) ; }
. calendar-field input : focus , . calendar-field textarea : focus { outline : none ; border-color : var ( - - primary ) ; box-shadow : 0 0 0 2 px var ( - - primary - bg ) ; }
. calendar-field input : focus , . calendar-field textarea : focus { outline : none ; border : 0 ; background : var ( - - primary - bg ) ; box-shadow : none ; }
. calendar-priority-row { display : flex ; gap : 6 px ; }
. calendar-priority-row { display : flex ; gap : 6 px ; }
. calendar-priority-row button { flex : 1 ; height : 30 px ; border : 1 px solid var ( - - border ) ; border-radius : var ( - - radius - sm ) ; background : var ( - - surface - deep ) ; color : var ( - - text - secondary ) ; font-size : 11 px ; cursor : pointer ; transition : border-color var ( - - transition - fast ) , background var ( - - transition - fast ) , color var ( - - transition - fast ) ; }
. calendar-priority-row button { flex : 1 ; height : 30 px ; border : 1 px solid var ( - - border ) ; border-radius : var ( - - radius - sm ) ; background : var ( - - surface - deep ) ; color : var ( - - text - secondary ) ; font-size : 11 px ; cursor : pointer ; transition : border-color var ( - - transition - fast ) , background var ( - - transition - fast ) , color var ( - - transition - fast ) ; }
. calendar-priority-row button : hover { border-color : var ( - - border - strong ) ; color : var ( - - text - primary ) ; }
. calendar-priority-row button : hover { border-color : var ( - - border - strong ) ; color : var ( - - text - primary ) ; }
@@ -438,11 +441,11 @@ input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px
. jump-day . is-selected { border-color : var ( - - primary ) ; background : var ( - - primary ) ; color : var ( - - surface - deep ) ; font-weight : 800 ; }
. jump-day . is-selected { border-color : var ( - - primary ) ; background : var ( - - primary ) ; color : var ( - - surface - deep ) ; font-weight : 800 ; }
. jump-today { width : 100 % ; height : 27 px ; margin-top : 8 px ; border : 1 px solid var ( - - border - light ) ; border-radius : 7 px ; background : var ( - - surface - deep ) ; color : var ( - - text - secondary ) ; font-size : 11 px ; cursor : pointer ; }
. jump-today { width : 100 % ; height : 27 px ; margin-top : 8 px ; border : 1 px solid var ( - - border - light ) ; border-radius : 7 px ; background : var ( - - surface - deep ) ; color : var ( - - text - secondary ) ; font-size : 11 px ; cursor : pointer ; }
. jump-today : hover { border-color : var ( - - primary ) ; color : var ( - - primary - light ) ; }
. jump-today : hover { border-color : var ( - - primary ) ; color : var ( - - primary - light ) ; }
/* 跳转浮层标题 = 直接输入年月(前 4 位年 + 后 1~2 位月,回车跳转) */
/* 跳转浮层标题 = 直接输入年月(前 4 位年 + 后 1~2 位月,回车跳转);无描边,只靠底色 */
. jump-head . jump-month-input { display : block ; flex : 1 ; width : auto ; min-width : 0 ; min-height : 0 ; height : 26 px ; padding : 0 8 px ; border : 1 px solid var ( - - border - light ) ; border-radius : 7 px ; background : var ( - - surface - deep ) ; box-shadow : none ; color : var ( - - text - primary ) ; font : 12 px var ( - - font - body ) ; font-variant-numeric : tabular-nums ; text-align : center ; outline : none ; cursor : text ; transition : border-color var ( - - transition - fast ) , background var ( - - transition - fast ) , color var ( - - transition - fast ) ; }
. jump-head . jump-month-input { display : block ; flex : 1 ; width : auto ; min-width : 0 ; min-height : 0 ; height : 26 px ; padding : 0 8 px ; border : 0 ; border-radius : 8 px ; background : var ( - - surface - deep ) ; box-shadow : none ; color : var ( - - text - primary ) ; font : 12 px var ( - - font - body ) ; font-variant-numeric : tabular-nums ; text-align : center ; outline : none ; cursor : text ; transition : background var ( - - transition - fast ) , color var ( - - transition - fast ) ; }
. jump-head . jump-month-input : hover { border-color : var ( - - primary - border ) ; background : var ( - - primary - bg ) ; }
. jump-head . jump-month-input : hover { background : var ( - - primary - bg ) ; color : var ( - - primary - light ) ; }
. jump-head . jump-month-input : focus { border-color : var ( - - primary ) ; background : var ( - - primary - bg ) ; color : var ( - - primary - light ) ; font-weight : 700 ; letter-spacing : .3 px ; }
. jump-head . jump-month-input : focus { background : var ( - - primary - bg ) ; color : var ( - - primary - light ) ; font-weight : 700 ; letter-spacing : .3 px ; }
. jump-head . jump-month-input . is-invalid { border-color : var ( - - danger ) ; background : var ( - - danger - bg ) ; color : var ( - - danger ) ; }
. jump-head . jump-month-input . is-invalid { background : var ( - - danger - bg ) ; color : var ( - - danger ) ; }
. jump-head . jump-month-input :: selection { background : var ( - - primary ) ; color : var ( - - surface - deep ) ; }
. jump-head . jump-month-input :: selection { background : var ( - - primary ) ; color : var ( - - surface - deep ) ; }
/* 年月拨盘(iOS 闹钟式滚轮) */
/* 年月拨盘(iOS 闹钟式滚轮) */
. calendar-wheel-pop { --wheel-item : 32 px ; padding : 12 px 14 px 10 px ; }
. calendar-wheel-pop { --wheel-item : 32 px ; padding : 12 px 14 px 10 px ; }
@@ -508,7 +511,8 @@ input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px
. ai-context-strip { display : flex ; flex-wrap : wrap ; gap : 7 px ; margin : 12 px 0 ; color : var ( - - text - tertiary ) ; font-size : 10 px ; } . ai-context-strip span { margin-right : auto ; } . ai-context-strip b { padding : 3 px 6 px ; border-radius : 5 px ; color : var ( - - text - secondary ) ; background : var ( - - surface - deep ) ; font-weight : 500 ; }
. ai-context-strip { display : flex ; flex-wrap : wrap ; gap : 7 px ; margin : 12 px 0 ; color : var ( - - text - tertiary ) ; font-size : 10 px ; } . ai-context-strip span { margin-right : auto ; } . ai-context-strip b { padding : 3 px 6 px ; border-radius : 5 px ; color : var ( - - text - secondary ) ; background : var ( - - surface - deep ) ; font-weight : 500 ; }
. ai-message-list { display : grid ; gap : 11 px ; margin-top : 12 px ; } . ai-message { display : flex ; align-items : flex-start ; gap : 8 px ; } . ai-message . user { flex-direction : row-reverse ; } . ai-message-avatar { display : grid ; place-items : center ; width : 25 px ; height : 25 px ; flex : 0 0 25 px ; border-radius : 9 px ; background : var ( - - surface - deep ) ; color : var ( - - primary - light ) ; font-size : 10 px ; font-weight : 800 ; } . ai-message . user . ai-message-avatar { color : var ( - - surface - deep ) ; background : var ( - - primary ) ; } . ai-message-content { max-width : 82 % ; padding : 8 px 10 px ; border-radius : 4 px 12 px 12 px 12 px ; background : var ( - - surface - deep ) ; } . ai-message . user . ai-message-content { border-radius : 12 px 4 px 12 px 12 px ; background : var ( - - primary - bg ) ; } . ai-message-content p { margin : 0 ; color : var ( - - text - secondary ) ; font-size : 11.5 px ; line-height : 1.65 ; } . ai-message-content small { display : block ; margin-top : 5 px ; color : var ( - - text - tertiary ) ; font : 9 px var ( - - font - mono ) ; } . ai-thinking { display : flex ; gap : 4 px ; align-items : center ; min-height : 32 px ; } . ai-thinking span { width : 5 px ; height : 5 px ; border-radius : 50 % ; background : var ( - - primary ) ; animation : ai-bounce 1 s infinite ease-in-out ; } . ai-thinking span : nth-child ( 2 ) { animation-delay : .15 s ; } . ai-thinking span : nth-child ( 3 ) { animation-delay : .3 s ; } @ keyframes ai-bounce { 0 % , 80 % , 100 % { transform : translateY ( 0 ) ; opacity : .45 ; } 40 % { transform : translateY ( -4 px ) ; opacity : 1 ; } }
. ai-message-list { display : grid ; gap : 11 px ; margin-top : 12 px ; } . ai-message { display : flex ; align-items : flex-start ; gap : 8 px ; } . ai-message . user { flex-direction : row-reverse ; } . ai-message-avatar { display : grid ; place-items : center ; width : 25 px ; height : 25 px ; flex : 0 0 25 px ; border-radius : 9 px ; background : var ( - - surface - deep ) ; color : var ( - - primary - light ) ; font-size : 10 px ; font-weight : 800 ; } . ai-message . user . ai-message-avatar { color : var ( - - surface - deep ) ; background : var ( - - primary ) ; } . ai-message-content { max-width : 82 % ; padding : 8 px 10 px ; border-radius : 4 px 12 px 12 px 12 px ; background : var ( - - surface - deep ) ; } . ai-message . user . ai-message-content { border-radius : 12 px 4 px 12 px 12 px ; background : var ( - - primary - bg ) ; } . ai-message-content p { margin : 0 ; color : var ( - - text - secondary ) ; font-size : 11.5 px ; line-height : 1.65 ; } . ai-message-content small { display : block ; margin-top : 5 px ; color : var ( - - text - tertiary ) ; font : 9 px var ( - - font - mono ) ; } . ai-thinking { display : flex ; gap : 4 px ; align-items : center ; min-height : 32 px ; } . ai-thinking span { width : 5 px ; height : 5 px ; border-radius : 50 % ; background : var ( - - primary ) ; animation : ai-bounce 1 s infinite ease-in-out ; } . ai-thinking span : nth-child ( 2 ) { animation-delay : .15 s ; } . ai-thinking span : nth-child ( 3 ) { animation-delay : .3 s ; } @ keyframes ai-bounce { 0 % , 80 % , 100 % { transform : translateY ( 0 ) ; opacity : .45 ; } 40 % { transform : translateY ( -4 px ) ; opacity : 1 ; } }
. ai-suggestion-row { display : flex ; gap : 7 px ; padding : 7 px 13 px ; overflow-x : auto ; } . ai-suggestion-row button { flex : 0 0 auto ; padding : 5 px 9 px ; border : 1 px solid var ( - - border - light ) ; border-radius : 99 px ; background : var ( - - surface - deep ) ; color : var ( - - text - secondary ) ; cursor : pointer ; font-size : 10 px ; } . ai-suggestion-row button : hover { color : var ( - - primary - light ) ; border-color : var ( - - primary - border ) ; }
. ai-suggestion-row { display : flex ; gap : 7 px ; padding : 7 px 13 px ; overflow-x : auto ; } . ai-suggestion-row button { flex : 0 0 auto ; padding : 5 px 9 px ; border : 1 px solid var ( - - border - light ) ; border-radius : 99 px ; background : var ( - - surface - deep ) ; color : var ( - - text - secondary ) ; cursor : pointer ; font-size : 10 px ; } . ai-suggestion-row button : hover { color : var ( - - primary - light ) ; border-color : var ( - - primary - border ) ; }
. ai-input-row { display : flex ; gap : 8 px ; padding : 9 px 12 px ; border-top : 1 px solid var ( - - border - light ) ; } . ai-input-row input { min-height : 36 px ; background : var ( - - surface - deep ) ; } . ai-input-row button { display : grid ; place-items : center ; width : 36 px ; min-width : 36 px ; border : 0 ; border-radius : 10 px ; background : var ( - - primary ) ; color : var ( - - surface - deep ) ; cursor : pointer ; } . ai-input-row button : disabled { cursor : not-allowed ; opacity : .4 ; } . ai-panel-footer { padding : 6 px 13 px 10 px ; color : var ( - - text - tertiary ) ; font-size : 9.5 px ; text-align : center ; }
. ai-input-row { display : flex ; gap : 8 px ; padding : 9 px 12 px ; border-top : 1 px solid var ( - - border - light ) ; } . ai-input-row input { min-height : 36 px ; padding : 0 12 px ; border : 0 ; border-radius : 12 px ; background : var ( - - surface - deep ) ; }
. ai-input-row input : focus { background : var ( - - primary - bg ) ; } . ai-input-row button { display : grid ; place-items : center ; width : 36 px ; min-width : 36 px ; border : 0 ; border-radius : 10 px ; background : var ( - - primary ) ; color : var ( - - surface - deep ) ; cursor : pointer ; } . ai-input-row button : disabled { cursor : not-allowed ; opacity : .4 ; } . ai-panel-footer { padding : 6 px 13 px 10 px ; color : var ( - - text - tertiary ) ; font-size : 9.5 px ; text-align : center ; }
/* ---------- 汇率计算器(顶栏) ---------- */
/* ---------- 汇率计算器(顶栏) ---------- */
. fx-calc { position : relative ; flex : 0 0 auto ; }
. fx-calc { position : relative ; flex : 0 0 auto ; }
. header-tool-btn { display : grid ; place-items : center ; width : 36 px ; height : 36 px ; padding : 0 ; border : 1 px solid transparent ; border-radius : 10 px ; background : transparent ; color : var ( - - text - secondary ) ; cursor : pointer ; transition : background 150 ms , border-color 150 ms , color 150 ms ; }
. header-tool-btn { display : grid ; place-items : center ; width : 36 px ; height : 36 px ; padding : 0 ; border : 1 px solid transparent ; border-radius : 10 px ; background : transparent ; color : var ( - - text - secondary ) ; cursor : pointer ; transition : background 150 ms , border-color 150 ms , color 150 ms ; }
@@ -522,8 +526,8 @@ input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px
. fx-refresh : disabled { opacity : .45 ; cursor : default ; }
. fx-refresh : disabled { opacity : .45 ; cursor : default ; }
. fx-panel-body { display : flex ; align-items : center ; gap : 10 px ; }
. fx-panel-body { display : flex ; align-items : center ; gap : 10 px ; }
. fx-side { position : relative ; flex : 1 1 0 ; min-width : 0 ; display : grid ; gap : 6 px ; }
. fx-side { position : relative ; flex : 1 1 0 ; min-width : 0 ; display : grid ; gap : 6 px ; }
. fx-amount { width : 100 % ; height : 44 px ; padding : 0 12 px ; border : 1 px solid var ( - - border - light ) ; border-radius : 11 px ; background : var ( - - surface - deep ) ; color : var ( - - text - primary ) ; font : 600 17 px var ( - - font - mono ) ; font-variant-numeric : tabular-nums ; text-align : right ; }
. fx-amount { width : 100 % ; height : 44 px ; padding : 0 12 px ; border : 0 ; border-radius : 11 px ; background : var ( - - surface - deep ) ; color : var ( - - text - primary ) ; font : 600 17 px var ( - - font - mono ) ; font-variant-numeric : tabular-nums ; text-align : right ; }
. fx-amount : focus { outline : none ; border-color : var ( - - primary - border ) ; box-shadow : 0 0 0 3 px var ( - - primary - bg ) ; }
. fx-amount : focus { outline : none ; background : var ( - - primary - bg ) ; color : var ( - - primary - light ) ; box-shadow : none ; }
. fx-swap { display : grid ; place-items : center ; flex : 0 0 auto ; width : 34 px ; height : 34 px ; padding : 0 ; border : 1 px solid var ( - - border - light ) ; border-radius : 50 % ; background : var ( - - surface - deep ) ; color : var ( - - text - secondary ) ; cursor : pointer ; transition : color 150 ms , border-color 150 ms , transform 200 ms ; }
. fx-swap { display : grid ; place-items : center ; flex : 0 0 auto ; width : 34 px ; height : 34 px ; padding : 0 ; border : 1 px solid var ( - - border - light ) ; border-radius : 50 % ; background : var ( - - surface - deep ) ; color : var ( - - text - secondary ) ; cursor : pointer ; transition : color 150 ms , border-color 150 ms , transform 200 ms ; }
. fx-swap : hover { color : var ( - - primary - light ) ; border-color : var ( - - primary - border ) ; transform : rotate ( 180 deg ) ; }
. fx-swap : hover { color : var ( - - primary - light ) ; border-color : var ( - - primary - border ) ; transform : rotate ( 180 deg ) ; }
. fx-picker { position : relative ; }
. fx-picker { position : relative ; }