/* ToolCMS V3.1.82 (c) ToolWorld https://www.toolworld.cn/ */
*{box-sizing:border-box;margin:0;padding:0}
body{margin:0;padding:0;font-family:inherit;background:transparent;color:var(--text-1,#333);font-size:14px;line-height:1.6}
.life-budget-container{max-width:100%;margin:0 auto;padding:16px}
.life-budget-header{margin-bottom:16px}
.life-budget-title{font-size:20px;font-weight:700;color:var(--text-1,#333)}
.life-budget-subtitle{font-size:12px;color:var(--text-3,#94a3b8)}

.life-budget-summary{display:flex;gap:10px;margin-bottom:14px}
.life-budget-summary-card{flex:1;background:var(--bg-card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:var(--radius,14px);padding:14px 16px;text-align:center}
.life-budget-summary-label{font-size:12px;color:var(--text-3,#94a3b8);margin-bottom:4px}
.life-budget-summary-value{font-size:18px;font-weight:700}
.life-budget-card-income .life-budget-summary-value{color:var(--success,#16a34a)}
.life-budget-card-expense .life-budget-summary-value{color:var(--error,#dc2626)}
.life-budget-card-balance .life-budget-summary-value{color:var(--primary,var(--primary-hover))}

.life-budget-form-card{background:var(--bg-card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:var(--radius,14px);padding:16px;margin-bottom:14px}
.life-budget-type-toggle{display:flex;gap:0;margin-bottom:14px;border:1px solid var(--border,#d1d5db);border-radius:var(--radius-sm,8px);overflow:hidden;width:fit-content}
.life-budget-type-btn{padding:7px 20px;border:none;background:var(--bg-card,#fff);color:var(--text-2,#555);cursor:pointer;font-size:13px;transition:all .15s}
.life-budget-type-active{background:var(--primary,var(--primary-hover));color:#fff}
.life-budget-form-row{display:flex;gap:10px;align-items:flex-end;margin-bottom:12px}
.life-budget-field{flex:1}
.life-budget-field-amount{flex:0 0 130px}
.life-budget-field-note{flex:1}
.life-budget-label{display:block;font-weight:600;font-size:12px;color:var(--text-2,#555);margin-bottom:5px}
.life-budget-select,.life-budget-input{width:100%;padding:8px 10px;border:1px solid var(--border,#d1d5db);border-radius:var(--radius-sm,8px);font-size:13px;background:var(--bg-card,#fff);color:var(--text-1,#333);outline:none;transition:border-color .15s}
.life-budget-select:focus,.life-budget-input:focus{border-color:var(--primary,var(--primary-hover))}

.life-budget-toolbar{display:flex;gap:8px;flex-wrap:wrap}
.life-budget-btn{padding:7px 14px;border:1px solid var(--border,#d1d5db);border-radius:var(--radius-sm,8px);background:var(--bg-card,#fff);color:var(--text-1,#333);cursor:pointer;font-size:13px;transition:background .15s}
.life-budget-btn:hover{background:var(--primary-light)}

.life-budget-btn-primary{background:var(--primary,var(--primary-hover));color:#fff;border-color:var(--primary,var(--primary-hover))}
.life-budget-btn-primary:hover{background:var(--primary-light);color:var(--primary)}


.life-budget-breakdown{background:var(--bg-card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:var(--radius,14px);padding:16px;margin-bottom:14px}
.life-budget-breakdown-title{font-weight:600;font-size:13px;color:var(--text-2,#555);margin-bottom:12px}
.life-budget-breakdown-bars{display:flex;flex-direction:column;gap:10px}
.life-budget-bar-row{display:flex;align-items:center;gap:8px}
.life-budget-bar-label{flex:0 0 70px;font-size:12px;color:var(--text-2,#555);text-align:right}
.life-budget-bar-track{flex:1;height:18px;background:var(--bg-soft,#f1f5f9);border-radius:9px;overflow:hidden}
.life-budget-bar-fill{height:100%;border-radius:9px;transition:width .3s}
.life-budget-bar-pct{flex:0 0 55px;font-size:12px;font-weight:600;color:var(--text-2,#555)}
.life-budget-bar-amount{flex:0 0 80px;font-size:12px;color:var(--text-3,#94a3b8);text-align:right}

.life-budget-list-card{background:var(--bg-card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:var(--radius,14px);padding:16px;margin-bottom:14px}
.life-budget-list-title{font-weight:600;font-size:13px;color:var(--text-2,#555);margin-bottom:10px}
.life-budget-list{max-height:300px;overflow-y:auto}
.life-budget-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border-light,#f1f5f9);font-size:13px}
.life-budget-item:last-child{border-bottom:none}
.life-budget-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.life-budget-item-dot.income{background:var(--success,#16a34a)}
.life-budget-item-dot.expense{background:var(--error,#dc2626)}
.life-budget-item-cat{flex:0 0 60px;color:var(--text-2,#555);font-size:12px}
.life-budget-item-note{flex:1;color:var(--text-3,#94a3b8);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.life-budget-item-amount{font-weight:600;flex-shrink:0}
.life-budget-item-amount.income{color:var(--success,#16a34a)}
.life-budget-item-amount.expense{color:var(--error,#dc2626)}
.life-budget-item-del{flex-shrink:0;width:22px;height:22px;border:none;background:transparent;color:var(--text-3,#94a3b8);cursor:pointer;font-size:14px;border-radius:4px;line-height:1}
.life-budget-item-del:hover{background:var(--error-bg,#fee2e2);color:var(--error,#dc2626)}
.life-budget-list-empty{text-align:center;color:var(--text-3,#94a3b8);font-size:13px;padding:20px 0}

.life-budget-message{margin-bottom:10px;padding:8px 12px;border-radius:var(--radius-sm,8px);font-size:13px;display:none}
.life-budget-message.show{display:block}
.life-budget-message.success{background:var(--primary-light);color:var(--primary,var(--primary-hover))}
.life-budget-message.error{background:var(--error-bg,#fee2e2);color:var(--error,#991b1b)}

.life-budget-footer{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--border-light,#f1f5f9);font-size:12px;color:var(--text-3,#94a3b8)}
.life-budget-footer-right{margin-left:auto}

@media(max-width:640px){
    .life-budget-summary{flex-direction:column}
    .life-budget-form-row{flex-direction:column;gap:8px}
    .life-budget-field-amount{flex:1}
    .life-budget-btn{flex:1 1 auto}
    .life-budget-footer{flex-direction:column;gap:4px;text-align:center}
    .life-budget-bar-label{flex:0 0 50px}
    .life-budget-bar-amount{display:none}
}
