/* lendrise wallet */

.lw-app {
	--lw-primary:       #4f46e5;
	--lw-primary-dark:  #4338ca;
	--lw-surface:       #ffffff;
	--lw-surface-alt:   #f8f9fc;
	--lw-border:        #e5e7eb;
	--lw-text:          #111827;
	--lw-text-muted:    #6b7280;
	--lw-success:       #16a34a;
	--lw-success-bg:    #f0fdf4;
	--lw-success-border:#bbf7d0;
	--lw-error:         #dc2626;
	--lw-error-bg:      #fef2f2;
	--lw-error-border:  #fecaca;
	--lw-warn-bg:       #fffbeb;
	--lw-warn-border:   #fde68a;
	--lw-warn-text:     #92400e;
	--lw-radius:        12px;
	--lw-radius-sm:     8px;
	--lw-shadow:        0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);

	max-width:   540px;
	margin:      0 auto;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	font-size:   15px;
	color:       var(--lw-text);
	line-height: 1.5;
}

/* state transitions */

.lw-state {
	animation: lw-fade .2s ease both;
}

@keyframes lw-fade {
	from { opacity: 0; transform: translateY(6px); }
}

/* loading */

#lw-state-loading {
	display:         flex;
	flex-direction:  column;
	align-items:     center;
	gap:             16px;
	padding:         56px 0;
	color:           var(--lw-text-muted);
	font-size:       14px;
}

.lw-spinner {
	width:        32px;
	height:       32px;
	border:       3px solid var(--lw-border);
	border-top-color: var(--lw-primary);
	border-radius:50%;
	animation:    lw-spin .7s linear infinite;
}

@keyframes lw-spin { to { transform: rotate(360deg); } }

/* cards */

.lw-card {
	background:    var(--lw-surface);
	border:        1px solid var(--lw-border);
	border-radius: var(--lw-radius);
	box-shadow:    var(--lw-shadow);
	padding:       24px;
	margin-bottom: 16px;
}

/* create state */

.lw-card--create {
	text-align: center;
	padding:    48px 32px;
}

.lw-create-icon {
	display:         flex;
	justify-content: center;
	margin-bottom:   20px;
	color:           var(--lw-primary);
}

.lw-create-title {
	font-size:   20px;
	font-weight: 600;
	margin:      0 0 10px;
	color:       var(--lw-text);
}

.lw-create-desc {
	margin:      0 0 28px;
	color:       var(--lw-text-muted);
	max-width:   380px;
	margin-left: auto;
	margin-right:auto;
}

/* wallet card */

.lw-card--wallet {
	background:   linear-gradient(135deg, #4f46e5 0%, #6366f1 100%);
	border-color: transparent;
	color:        #fff;
}

.lw-wallet-header {
	display:         flex;
	justify-content: space-between;
	align-items:     center;
	margin-bottom:   20px;
}

.lw-wallet-label {
	font-size:      13px;
	font-weight:    500;
	opacity:        .8;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.lw-badge {
	font-size:     11px;
	font-weight:   600;
	background:    rgba(255, 255, 255, .18);
	padding:       3px 10px;
	border-radius: 99px;
	letter-spacing:.03em;
}

.lw-address-row {
	display:      flex;
	align-items:  center;
	gap:          8px;
	margin-bottom:20px;
}

.lw-address-label {
	font-size:   13px;
	opacity:     .75;
	flex-shrink: 0;
}

.lw-address {
	font-family:    'Courier New', Courier, monospace;
	font-size:      15px;
	font-weight:    500;
	letter-spacing: .05em;
}

.lw-icon-btn {
	background:    rgba(255, 255, 255, .15);
	border:        none;
	border-radius: 6px;
	padding:       5px 7px;
	cursor:        pointer;
	color:         #fff;
	line-height:   0;
	transition:    background .15s;
	flex-shrink:   0;
}

.lw-icon-btn:hover         { background: rgba(255, 255, 255, .28); }
.lw-icon-btn--copied       { background: rgba(255, 255, 255, .35); }

.lw-balance-row {
	display:         flex;
	justify-content: space-between;
	align-items:     baseline;
	margin-bottom:   12px;
}

.lw-balance-label {
	font-size: 13px;
	opacity:   .7;
}

.lw-balance-value {
	display:     flex;
	align-items: baseline;
	gap:         6px;
}

.lw-balance-amount {
	font-size:   28px;
	font-weight: 700;
}

.lw-balance-currency {
	font-size:   14px;
	font-weight: 500;
	opacity:     .75;
}

.lw-refresh-btn {
	display:     inline-flex;
	align-items: center;
	gap:         6px;
	background:  none;
	border:      none;
	color:       rgba(255, 255, 255, .65);
	font-size:   12px;
	cursor:      pointer;
	padding:     0;
	font-family: inherit;
	transition:  color .15s;
}

.lw-refresh-btn:hover { color: #fff; }

.lw-refresh-btn--jwt {
	margin-top: 8px;
}

.lw-jwt-test-result {
	margin-top: 8px;
	font-size: 12px;
	color: rgba(255, 255, 255, .8);
	min-height: 16px;
}

.lw-jwt-test-result--success {
	color: #dcfce7;
}

.lw-jwt-test-result--error {
	color: #fee2e2;
}

/* tabs */

.lw-tabs {
	display:       flex;
	gap:           8px;
	margin-bottom: 16px;
}

.lw-tab {
	flex:          1;
	padding:       10px 16px;
	background:    var(--lw-surface);
	border:        1px solid var(--lw-border);
	border-radius: var(--lw-radius-sm);
	font-size:     14px;
	font-weight:   500;
	font-family:   inherit;
	cursor:        pointer;
	color:         var(--lw-text-muted);
	transition:    all .15s;
}

.lw-tab:hover {
	border-color: var(--lw-primary);
	color:        var(--lw-primary);
}

.lw-tab.active {
	background:   var(--lw-primary);
	border-color: var(--lw-primary);
	color:        #fff;
}

/* form fields */

.lw-field {
	margin-bottom: 16px;
}

.lw-label {
	display:       block;
	font-size:     13px;
	font-weight:   500;
	color:         var(--lw-text-muted);
	margin-bottom: 6px;
}

.lw-hint {
	font-weight: 400;
	font-size:   12px;
	color:       var(--lw-text-muted);
}

.lw-input {
	width:         100%;
	padding:       10px 14px;
	border:        1px solid var(--lw-border);
	border-radius: var(--lw-radius-sm);
	font-size:     14px;
	font-family:   inherit;
	color:         var(--lw-text);
	background:    var(--lw-surface-alt);
	box-sizing:    border-box;
	outline:       none;
	transition:    border-color .15s, box-shadow .15s;
}

.lw-input:focus {
	border-color: var(--lw-primary);
	box-shadow:   0 0 0 3px rgba(79, 70, 229, .12);
	background:   var(--lw-surface);
}

.lw-textarea {
	resize:      vertical;
	font-family: 'Courier New', Courier, monospace;
	font-size:   13px;
}

/* buttons */

.lw-btn {
	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	padding:         10px 22px;
	border:          none;
	border-radius:   var(--lw-radius-sm);
	font-size:       14px;
	font-weight:     600;
	font-family:     inherit;
	cursor:          pointer;
	line-height:     1;
	transition:      background .15s, opacity .15s, transform .1s;
}

.lw-btn:active:not(:disabled) { transform: scale(.98); }

.lw-btn:disabled {
	opacity: .55;
	cursor:  not-allowed;
}

.lw-btn--primary                   { background: var(--lw-primary); color: #fff; }
.lw-btn--primary:hover:not(:disabled) { background: var(--lw-primary-dark); }

.lw-btn--ghost {
	background:  transparent;
	color:       var(--lw-primary);
	border:      1px solid currentColor;
}
.lw-btn--ghost:hover:not(:disabled) { background: rgba(79, 70, 229, .06); }

.lw-btn--lg { padding: 13px 28px; font-size: 15px; }

.lw-actions-row { margin-top: 8px; }

.lw-send-type {
	display: flex;
	gap: 8px;
}

.lw-send-type .lw-btn {
	flex: 1;
}

.lw-send-type .lw-btn.active {
	background: var(--lw-primary);
	color: #fff;
	border-color: var(--lw-primary);
}

/* tx results */

.lw-result {
	margin-top:  12px;
	font-size:   13px;
}

.lw-result--error {
	padding:       10px 14px;
	background:    var(--lw-error-bg);
	border:        1px solid var(--lw-error-border);
	border-radius: var(--lw-radius-sm);
	color:         var(--lw-error);
}

.lw-result--success {
	padding:       10px 14px;
	background:    var(--lw-success-bg);
	border:        1px solid var(--lw-success-border);
	border-radius: var(--lw-radius-sm);
	color:         var(--lw-success);
}

.lw-result--success a {
	color:       var(--lw-success);
	font-family: 'Courier New', Courier, monospace;
	font-size:   12px;
	font-weight: 600;
}

.lw-result--pending {
	padding:       10px 14px;
	background:    #fff7d6;
	border:        1px solid #e9cf7a;
	border-radius: var(--lw-radius-sm);
	color:         #7a5a00;
}

.lw-result--pending a {
	color:       #7a5a00;
	font-family: 'Courier New', Courier, monospace;
	font-size:   12px;
	font-weight: 600;
}

/* notices */

.lw-notice {
	padding:       14px 18px;
	border-radius: var(--lw-radius-sm);
	font-size:     14px;
	margin-bottom: 16px;
}

.lw-notice--error {
	background: var(--lw-error-bg);
	border:     1px solid var(--lw-error-border);
	color:      var(--lw-error);
}

.lw-notice--error p               { margin: 0 0 8px; }
.lw-notice--error p:last-child    { margin-bottom: 0; }
.lw-notice--error .lw-btn         { margin-top: 4px; }

.lw-notice--warn {
	background: var(--lw-warn-bg);
	border:     1px solid var(--lw-warn-border);
	color:      var(--lw-warn-text);
}

/* transaction list */

.lw-tx-list-header {
	display:         flex;
	justify-content: space-between;
	align-items:     center;
	margin-bottom:   16px;
}

.lw-tx-list-title {
	font-size:   14px;
	font-weight: 600;
	color:       var(--lw-text);
}

.lw-btn-refresh-tx {
	background:    none;
	border:        1px solid var(--lw-border);
	border-radius: 6px;
	padding:       5px 7px;
	cursor:        pointer;
	color:         var(--lw-text-muted);
	line-height:   0;
	transition:    color .15s, border-color .15s;
}

.lw-btn-refresh-tx:hover { color: var(--lw-primary); border-color: var(--lw-primary); }

.lw-tx-empty {
	font-size:   13px;
	color:       var(--lw-text-muted);
	text-align:  center;
	margin:      24px 0;
}

.lw-tx-loading { opacity: .6; }
.lw-tx-error   { color: var(--lw-error); }

.lw-tx {
	display:         flex;
	align-items:     center;
	gap:             12px;
	padding:         12px 0;
	border-bottom:   1px solid var(--lw-border);
}

.lw-tx:last-child { border-bottom: none; }

.lw-tx-dir {
	font-size:   18px;
	font-weight: 700;
	width:       20px;
	text-align:  center;
	flex-shrink: 0;
}

.lw-tx--in  .lw-tx-dir { color: var(--lw-success); }
.lw-tx--out .lw-tx-dir { color: var(--lw-primary); }

.lw-tx-meta {
	display:        flex;
	flex-direction: column;
	gap:            2px;
	flex:           1;
	min-width:      0;
}

.lw-tx-hash {
	font-family:  'Courier New', Courier, monospace;
	font-size:    13px;
	font-weight:  500;
	color:        var(--lw-primary);
	text-decoration: none;
}

.lw-tx-hash:hover { text-decoration: underline; }

.lw-tx-date {
	font-size: 11px;
	color:     var(--lw-text-muted);
}

.lw-tx-value {
	font-size:   13px;
	font-weight: 600;
	color:       var(--lw-text);
	flex-shrink: 0;
	text-align:  right;
}

.lw-tx-failed {
	display:       inline-block;
	font-size:     10px;
	font-weight:   500;
	color:         var(--lw-error);
	background:    var(--lw-error-bg);
	border-radius: 4px;
	padding:       1px 5px;
	margin-left:   4px;
}

/* assets list */

.lw-assets-header {
	display:         flex;
	justify-content: space-between;
	align-items:     center;
	margin-bottom:   16px;
}

.lw-assets-title {
	font-size:   14px;
	font-weight: 600;
	color:       var(--lw-text);
}

.lw-asset-row {
	display:         flex;
	justify-content: space-between;
	align-items:     center;
	gap:             12px;
	padding:         12px 0;
	border-bottom:   1px solid var(--lw-border);
}

.lw-asset-row:last-child {
	border-bottom: none;
}

.lw-asset-main {
	display:        flex;
	flex-direction: column;
	gap:            3px;
	min-width:      0;
}

.lw-asset-symbol {
	font-size:   14px;
	font-weight: 600;
	color:       var(--lw-text);
}

.lw-asset-address {
	font-family: 'Courier New', Courier, monospace;
	font-size:   11px;
	color:       var(--lw-text-muted);
}

.lw-asset-balance {
	font-size:   14px;
	font-weight: 600;
	color:       var(--lw-primary);
}
