*{box-sizing:border-box;margin:0;padding:0}body{background-color:#adfff4}:root{--bg-hover:#f0fdfa;--bg-edit:#ccfbf1;--border-hover:#cbd5e1}.common-form{background:#fff;background:var(--bg-card);border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:16px;display:flex;flex-direction:column;height:100%;min-height:400px;overflow:hidden;transition:box-shadow .3s ease,border-color .3s ease}.common-form:hover{border-color:#5eead4;border-color:var(--primary-light);box-shadow:0 4px 12px #0000001a;box-shadow:0 4px 12px var(--shadow-md)}.common-form__header{align-items:center;background:linear-gradient(135deg,#f0fdfa,#fff);background:linear-gradient(135deg,var(--bg-hover) 0,#fff 100%);border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--border);display:flex;justify-content:space-between;min-height:72px;padding:20px;position:relative}.common-form__title{color:#0f172a;color:var(--text-dark);flex:1 1;font-size:18px;font-weight:800;letter-spacing:-.5px;margin:0;text-align:center}.copy-btn,.delete-all-btn{align-items:center;background:#0000;border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:8px;cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;transition:all .2s ease;width:36px}.copy-btn{color:#14b8a6;color:var(--primary)}.copy-btn:hover{background:#14b8a6;background:var(--primary);border-color:#14b8a6;border-color:var(--primary);color:#fff}.delete-all-btn{color:#ef4444;opacity:0;pointer-events:none;position:absolute;right:20px;transition:opacity .2s ease}.common-form__header:hover .delete-all-btn{opacity:1;pointer-events:all}.delete-all-btn:hover{background:#ef4444;border-color:#ef4444;color:#fff}.copy-btn i,.delete-all-btn i{font-size:14px}.common-form__list{display:flex;flex:1 1;flex-direction:column;gap:8px;min-height:0;overflow-y:auto;padding:16px}.common-form__list::-webkit-scrollbar{width:8px}.common-form__list::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.common-form__list::-webkit-scrollbar-thumb{background:#5eead4;background:var(--primary-light);border-radius:4px}.common-form__list::-webkit-scrollbar-thumb:hover{background:#14b8a6;background:var(--primary)}.transaction-item{grid-gap:12px;align-items:center;background:#fff;background:var(--bg-card);border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:12px;cursor:pointer;display:grid;gap:12px;grid-template-columns:45px 1fr 100px 32px;min-height:54px;padding:12px 16px;transition:all .2s ease}.transaction-item:hover{background:#f0fdfa;background:var(--bg-hover);border-color:#5eead4;border-color:var(--primary-light);box-shadow:0 2px 8px #0000000d;box-shadow:0 2px 8px var(--shadow)}.transaction-item__date{color:#14b8a6;color:var(--primary);font-size:13px;font-weight:700;text-align:center}.transaction-item__desc{color:#0f172a;color:var(--text-dark);font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-item__amount{font-family:Georgia,serif;font-size:15px;font-weight:800;text-align:right}.delete-item-btn,.transaction-item__spacer{flex-shrink:0;height:32px;width:32px}.delete-item-btn{align-items:center;background:#0000;border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:8px;color:#ef4444;cursor:pointer;display:flex;justify-content:center;transition:all .2s ease}.delete-item-btn:hover{background:#ef4444;border-color:#ef4444;color:#fff;transform:scale(1.05)}.delete-item-btn i{font-size:14px}.transaction-edit-form{grid-gap:8px;align-items:center;background:#ccfbf1;background:var(--bg-edit);border:2px solid #14b8a6;border:2px solid var(--primary);border-radius:12px;display:grid;gap:8px;grid-template-columns:60px 1fr 120px 36px 36px;min-height:54px;padding:12px}.edit-input{background:#fff;border:2px solid #fff;border-radius:8px;color:#0f172a;color:var(--text-dark);font-size:14px;height:38px;padding:8px 12px;transition:all .2s ease}.edit-input--date{font-weight:700;text-align:center}.edit-input--amount{font-weight:700;text-align:right}.edit-btn{align-items:center;background:#0000;border:2px solid;border-radius:8px;cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;transition:all .2s ease;width:36px}.edit-btn--save{border-color:#14b8a6;border-color:var(--primary);color:#14b8a6;color:var(--primary)}.edit-btn--save:hover{background:#14b8a6;background:var(--primary);color:#fff}.edit-btn--cancel{border-color:#ef4444;color:#ef4444}.edit-btn--cancel:hover{background:#ef4444;color:#fff}.edit-btn i{font-size:14px}.common-form__list>button{align-items:center;background:#0000;border:2px dashed #14b8a6;border:2px dashed var(--primary);border-radius:12px;color:#14b8a6;color:var(--primary);cursor:pointer;display:flex;font-size:15px;font-weight:700;gap:8px;justify-content:center;margin-top:8px;min-height:50px;padding:14px;transition:all .2s ease;width:100%}.common-form__list>button:hover{background:#f0fdfa;background:var(--bg-hover);border-color:#0d9488;border-color:var(--primary-dark);border-style:solid;color:#0d9488;color:var(--primary-dark)}.common-form__list>button:active{transform:scale(.98)}.common-form__footer{background:linear-gradient(135deg,#fff,#f0fdfa);background:linear-gradient(135deg,#fff 0,var(--bg-hover) 100%);border-top:2px solid #e2e8f0;border-top:2px solid var(--border);display:flex;flex-direction:column;gap:12px;min-height:80px;padding:16px 20px}.progress-bar,.progress-fill{border-radius:12px}.progress-fill{background:linear-gradient(90deg,#14b8a6,#06b6d4);background:linear-gradient(90deg,var(--primary) 0,var(--secondary) 100%);transition:width .5s ease}.progress-fill span{text-shadow:0 1px 2px #0003}.common-form__total{font-family:Georgia,serif;font-size:24px;font-weight:900;letter-spacing:-.5px;text-align:right}.common-form__list:empty:before{align-items:center;color:#94a3b8;color:var(--text-light);content:"거래 내역이 없습니다";display:flex;font-size:14px;height:200px;justify-content:center}@media (max-width:768px){.common-form{min-height:350px}.common-form__header{min-height:64px;padding:16px}.common-form__title{font-size:16px}.copy-btn,.delete-all-btn{height:32px;width:32px}.transaction-item{gap:8px;grid-template-columns:40px 1fr 90px 28px;min-height:50px;padding:10px 12px}.transaction-item__date{font-size:12px}.transaction-item__desc{font-size:13px}.transaction-item__amount{font-size:14px}.delete-item-btn,.transaction-item__spacer{height:28px;width:28px}.transaction-edit-form{gap:6px;grid-template-columns:50px 1fr 100px 32px 32px;min-height:50px;padding:10px}.edit-input{font-size:13px;height:34px;padding:6px 10px}.edit-btn{height:32px;width:32px}.common-form__total{font-size:20px}.common-form__footer{min-height:70px;padding:12px 16px}.progress-bar{height:20px}.progress-fill span{font-size:11px}}@media (max-width:480px){.common-form__header{min-height:56px;padding:12px}.common-form__title{font-size:15px}.transaction-item{gap:6px;grid-template-columns:35px 1fr 80px 24px;min-height:46px;padding:8px 10px}.transaction-item__date{font-size:11px}.transaction-item__desc{font-size:12px}.transaction-item__amount{font-size:13px}.delete-item-btn{height:24px;width:24px}.delete-item-btn i{font-size:12px}.transaction-item__spacer{height:24px;width:24px}.transaction-edit-form{gap:8px;grid-template-columns:1fr;min-height:auto;padding:12px}.edit-btn,.edit-input{width:100%}.edit-btn{height:36px}.common-form__list>button{font-size:14px;min-height:46px;padding:12px}.common-form__footer{min-height:64px;padding:12px}.common-form__total{font-size:18px}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.transaction-edit-form,.transaction-item{animation:slideIn .2s ease}.transaction-item[draggable=true]{cursor:move}.transaction-item:active{cursor:grabbing;opacity:.5}.edit-input:focus{border-color:#14b8a6;border-color:var(--primary);box-shadow:0 0 0 3px #14b8a61a;outline:none}.common-form.loading{opacity:.6;pointer-events:none}.common-form__list[data-drag-over=true]{background:linear-gradient(135deg,#14b8a60d,#06b6d40d);border:2px dashed #14b8a6;border:2px dashed var(--primary);border-radius:12px}.account-summary{background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000d;padding:24px}.account-summary__title{align-items:center;color:#0f172a;display:flex;font-size:20px;font-weight:800;gap:10px;margin:0 0 20px}.account-summary__title i{color:#14b8a6;font-size:22px}.summary-grid{display:flex;flex-direction:column;gap:12px}.summary-item{align-items:flex-start;background:#f8fafc;border:2px solid #0000;border-radius:12px;display:flex;gap:12px;padding:16px;transition:all .2s ease}.summary-item:hover{background:#f0fdfa;border-color:#14b8a6}.summary-item__icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;height:44px;justify-content:center;width:44px}.summary-item__icon i{font-size:20px}.summary-item--income .summary-item__icon{background:linear-gradient(135deg,#3b82f6,#2563eb)}.summary-item--income .summary-item__icon i{color:#fff}.summary-item--fixed .summary-item__icon,.summary-item--spending .summary-item__icon{background:linear-gradient(135deg,#ef4444,#dc2626)}.summary-item--fixed .summary-item__icon i,.summary-item--spending .summary-item__icon i{color:#fff}.summary-item--living .summary-item__icon{background:linear-gradient(135deg,#f59e0b,#d97706)}.summary-item--living .summary-item__icon i{color:#fff}.summary-item--saving .summary-item__icon{background:linear-gradient(135deg,#10b981,#059669)}.summary-item--saving .summary-item__icon i{color:#fff}.summary-item--remaining .summary-item__icon{background:linear-gradient(135deg,#14b8a6,#0d9488)}.summary-item--remaining .summary-item__icon i{color:#fff}.summary-item--budget .summary-item__icon{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.summary-item--budget .summary-item__icon i{color:#fff}.summary-item--negative{background:#fff1f2}.summary-item--negative:hover{background:#ffe4e6;border-color:#ef4444}.summary-item__content{display:flex;flex:1 1;flex-direction:column;gap:8px}.summary-item__label{color:#64748b;font-size:13px;font-weight:600}.summary-item__value{color:#0f172a;font-size:18px;font-weight:800}.summary-item--income .summary-item__value{color:#3b82f6}.summary-item--fixed .summary-item__value,.summary-item--spending .summary-item__value{color:#ef4444}.summary-item--saving .summary-item__value{color:#10b981}.summary-item--negative .summary-item__value{color:#dc2626}.progress-container{margin:4px 0;width:100%}.progress-bar{height:24px}.progress-fill--expense{background:linear-gradient(90deg,#ef4444,#dc2626)}.progress-fill--saving{background:linear-gradient(90deg,#10b981,#059669)}.progress-fill span{font-size:11px}.budget-form{align-items:center;display:flex;gap:8px;width:100%}.budget-input{border:2px solid #e2e8f0;border-radius:8px;color:#0f172a;flex:1 1;font-size:14px;font-weight:600;padding:8px 12px;transition:all .2s ease}.budget-input:focus{border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a;outline:none}.budget-buttons{display:flex;gap:6px}.budget-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.budget-btn--submit{background:#10b981;color:#fff}.budget-btn--submit:hover{background:#059669;transform:scale(1.05)}.budget-btn--cancel{background:#ef4444;color:#fff}.budget-btn--cancel:hover{background:#dc2626;transform:scale(1.05)}.budget-btn i{font-size:14px}.budget-display{background:#f1f5f9;border:2px dashed #cbd5e1;border-radius:8px;color:#475569;cursor:pointer;font-size:14px;font-weight:600;padding:8px 12px;text-align:center;transition:all .2s ease}.budget-display:hover{background:#e0f2fe;border-color:#14b8a6;color:#14b8a6}.budget-remaining{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:2px solid #6ee7b7;border-radius:12px;margin-top:16px;padding:16px}.budget-remaining--over{background:linear-gradient(135deg,#fee2e2,#fecaca);border-color:#fca5a5}.budget-remaining__content{align-items:center;display:flex;gap:12px;justify-content:space-between}.budget-remaining__label{align-items:center;color:#065f46;display:flex;font-size:13px;font-weight:600;gap:8px}.budget-remaining--over .budget-remaining__label{color:#991b1b}.budget-remaining__label i{font-size:14px}.budget-remaining__value{color:#047857;font-size:16px;font-weight:800}.budget-remaining--over .budget-remaining__value{color:#dc2626}@media (max-width:640px){.account-summary{padding:20px 16px}.account-summary__title{font-size:18px}.summary-item{padding:14px}.summary-item__icon{height:40px;width:40px}.summary-item__icon i{font-size:18px}.summary-item__label{font-size:12px}.summary-item__value{font-size:16px}.budget-remaining__content{align-items:flex-start;flex-direction:column;gap:8px}}@media (max-width:480px){.summary-grid{gap:10px}.summary-item{gap:10px;padding:12px}.budget-input{font-size:13px;padding:6px 10px}.budget-btn{height:28px;width:28px}.budget-btn i{font-size:12px}}.date-selector{display:flex;gap:8px}.date-select{background:#fff;border:2px solid #e2e8f0;border-radius:10px;color:#0f172a;cursor:pointer;font-size:14px;font-weight:600;padding:10px 14px;transition:all .2s ease}.date-select:focus{border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a;outline:none}.date-select:hover{border-color:#cbd5e1}@media (max-width:640px){.date-select{font-size:13px;padding:8px 12px}}.note-container{background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000d;display:flex;flex-direction:column;height:100%;min-height:300px;padding:20px}.note-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;gap:10px;margin-bottom:16px;padding-bottom:12px}.note-header i{color:#f59e0b;font-size:18px}.note-header h3{color:#0f172a;font-size:16px;font-weight:700;margin:0}.note-form{display:flex;flex:1 1;flex-direction:column;gap:12px}.note-textarea{border:2px solid #e2e8f0;border-radius:12px;color:#0f172a;flex:1 1;font-family:inherit;font-size:14px;min-height:200px;padding:14px;resize:none;transition:all .2s ease}.note-textarea:focus{border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a;outline:none}.note-textarea::placeholder{color:#94a3b8}.note-buttons{display:flex;gap:10px}.note-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-weight:600;gap:8px;justify-content:center;padding:10px 16px;transition:all .2s ease}.note-btn,.note-btn i{font-size:14px}.note-btn--save{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 8px #10b9814d;color:#fff}.note-btn--save:hover{box-shadow:0 4px 12px #10b98166;transform:translateY(-2px)}.note-btn--cancel{background:#f1f5f9;color:#64748b}.note-btn--cancel:hover{background:#e2e8f0;color:#475569}.note-display{background:#f8fafc;border:2px dashed #cbd5e1;border-radius:12px;cursor:pointer;flex:1 1;min-height:200px;overflow-y:auto;padding:14px;transition:all .2s ease}.note-display:hover{background:#f0fdfa;border-color:#14b8a6}.note-content{word-wrap:break-word;color:#0f172a;font-size:14px;line-height:1.6;white-space:pre-wrap}.note-empty{align-items:center;color:#94a3b8;display:flex;flex-direction:column;gap:12px;height:100%;justify-content:center}.note-empty i{color:#cbd5e1;font-size:32px}.note-empty span{font-size:14px;font-weight:500}@media (max-width:640px){.note-container{min-height:250px;padding:16px}.note-header h3{font-size:15px}.note-textarea{font-size:13px;min-height:180px;padding:12px}.note-btn{padding:8px 14px}.note-btn,.note-content{font-size:13px}.note-empty i{font-size:28px}.note-empty span{font-size:13px}}@media (max-width:480px){.note-container{padding:14px}.note-buttons{gap:8px}.note-btn{padding:7px 12px}}.spinner-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000004d;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:9999}.spinner,.spinner-overlay{align-items:center;display:flex}.spinner{gap:6px}.spinner__wave{animation:wave .8s ease-in-out infinite;background:linear-gradient(135deg,#14b8a6,#06b6d4);border-radius:6px;height:40px;width:12px}.spinner__wave:first-child{animation-delay:0s}.spinner__wave:nth-child(2){animation-delay:.1s}.spinner__wave:nth-child(3){animation-delay:.2s}.spinner__wave:nth-child(4){animation-delay:.3s}.spinner__wave:nth-child(5){animation-delay:.4s}@keyframes wave{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.5)}}.transaction-form-container{align-items:center;display:flex;height:100%;justify-content:center;left:0;padding:20px;position:fixed;top:0;width:100%;z-index:300}.transaction-form-card{animation:slideUp .3s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0003;max-width:600px;padding:30px;width:100%}.transaction-form-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;gap:12px;margin-bottom:24px;padding-bottom:16px}.transaction-form-header i{color:#14b8a6;font-size:24px}.transaction-form-header h3{color:#0f172a;font-size:20px;font-weight:800;margin:0}.transaction-form-header button{background:linear-gradient(135deg,#14b8a6,#06b6d4);border:none;border-radius:8px;color:#fff;cursor:pointer;margin-left:auto;padding:2px 8px;transition:all .2s ease}.transaction-form-header button:hover{transform:translateY(-2px)}.transaction-form{display:flex;flex-direction:column;gap:20px}.form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:100px 1fr 150px}.form-group--wide{grid-column:span 1}.form-label{color:#475569;gap:6px}.form-input{border-radius:10px;font-size:14px;padding:12px 14px}.form-input:focus{box-shadow:0 0 0 3px #14b8a61a}.category-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.category-option{align-items:center;cursor:pointer;display:flex;position:relative}.category-option input[type=radio]{height:0;opacity:0;position:absolute;width:0}.category-label{background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;color:#64748b;flex:1 1;font-size:13px;font-weight:600;padding:10px 14px;text-align:center;transition:all .2s ease}.category-option input[type=radio]:checked+.category-label{background:linear-gradient(135deg,#14b8a6,#06b6d4);border-color:#14b8a6;box-shadow:0 2px 8px #14b8a64d;color:#fff}.category-option:hover .category-label{border-color:#14b8a6;transform:translateY(-2px)}.submit-button{align-items:center;background:linear-gradient(135deg,#14b8a6,#06b6d4);border:none;border-radius:12px;box-shadow:0 4px 14px #14b8a64d;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:700;gap:10px;justify-content:center;margin-top:8px;padding:14px 20px;transition:all .3s ease;width:100%}.submit-button i{font-size:18px}.submit-button:hover{box-shadow:0 6px 20px #14b8a666;transform:translateY(-2px)}.submit-button:active{transform:translateY(0)}@media (max-width:768px){.transaction-form-card{padding:24px 20px}.form-row{grid-template-columns:1fr}.category-grid{gap:8px;grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.category-label{font-size:12px;padding:8px 12px}}@media (max-width:640px){.transaction-form-container{padding:15px}.transaction-form-card{border-radius:16px;padding:20px 16px}.transaction-form-header{margin-bottom:20px}.transaction-form-header h3{font-size:18px}.transaction-form{gap:16px}.form-input{font-size:13px;padding:10px 12px}.submit-button{font-size:15px;padding:12px 18px}}@media (max-width:480px){.transaction-form-header i{font-size:20px}.transaction-form-header h3{font-size:17px}.category-grid{grid-template-columns:repeat(2,1fr)}.form-label{font-size:12px}.form-label i{font-size:13px}}.password-modal-overlay{align-items:center;animation:fadeIn .2s ease;background:#00000080;display:flex;height:100%;justify-content:center;left:0;padding:20px;position:fixed;top:0;width:100%;z-index:500}.password-modal{animation:slideUp .3s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:450px;padding:30px;width:100%}.password-modal__header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.password-modal__header h3{align-items:center;color:#0f172a;display:flex;font-size:20px;font-weight:800;gap:10px;margin:0}.password-modal__header h3 i{color:#14b8a6;font-size:22px}.password-modal__close{align-items:center;background:#f1f5f9;border:none;border-radius:8px;color:#64748b;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.password-modal__close:hover{background:#fee2e2;color:#ef4444;transform:rotate(90deg)}.password-modal__close i{font-size:16px}.password-form{gap:20px}.password-field,.password-form{display:flex;flex-direction:column}.password-field{gap:8px}.password-label{align-items:center;color:#475569;display:flex;font-size:14px;font-weight:600;gap:8px}.password-label i{color:#14b8a6;font-size:14px}.password-input{border:2px solid #e2e8f0;border-radius:10px;color:#0f172a;font-size:14px;padding:12px 14px;transition:all .2s ease}.password-input:focus{border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a;outline:none}.password-input::placeholder{color:#94a3b8}.password-error{align-items:center;background:#fee2e2;border-radius:10px;color:#dc2626;display:flex;font-size:13px;font-weight:600;gap:8px;padding:10px 14px}.password-error i{font-size:14px}.password-submit{align-items:center;background:linear-gradient(135deg,#14b8a6,#06b6d4);border:none;border-radius:12px;box-shadow:0 4px 14px #14b8a64d;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:700;gap:10px;justify-content:center;margin-top:8px;padding:14px 20px;transition:all .3s ease;width:100%}.password-submit i{font-size:18px}.password-submit:hover{box-shadow:0 6px 20px #14b8a666;transform:translateY(-2px)}.password-submit:active{transform:translateY(0)}@media (max-width:640px){.password-modal{padding:24px 20px}.password-modal__header h3{font-size:18px}.password-form{gap:16px}.password-input{font-size:13px;padding:10px 12px}.password-submit{font-size:15px;padding:12px 18px}}@media (max-width:480px){.password-modal-overlay{padding:15px}.password-modal{padding:20px 16px}.password-label{font-size:13px}.password-error{font-size:12px;padding:8px 12px}}.main-page{background:#f0fdfa;background:var(--bg-page);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,sans-serif;min-height:100vh}.main-content{display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:1200px}.content-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}@media (max-width:1200px){.content-grid{grid-template-columns:1fr}}.expense-section,.income-section,.summary-section{display:flex;flex-direction:column;gap:20px}.details-section{background:#fff;background:var(--bg-card);border-radius:16px;box-shadow:0 2px 8px #0000000d;box-shadow:0 2px 8px var(--shadow);padding:24px}.details-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}@media (max-width:768px){.details-grid{grid-template-columns:1fr}.details-section{padding:20px 16px}}.fab{align-items:center;background:linear-gradient(135deg,#14b8a6,#06b6d4);background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);border:none;border-radius:50%;bottom:40px;box-shadow:0 8px 24px #14b8a666;color:#fff;cursor:pointer;display:flex;flex-direction:column;gap:4px;height:70px;justify-content:center;position:fixed;right:40px;transition:all .3s cubic-bezier(.4,0,.2,1);width:70px;z-index:100}.fab i{font-size:24px}.fab span{font-size:11px;font-weight:700}.fab:hover{box-shadow:0 12px 32px #14b8a680;transform:scale(1.1) rotate(90deg)}.fab--active{background:linear-gradient(135deg,#ef4444,#dc2626);transform:rotate(45deg)}.fab--active:hover{transform:scale(1.1) rotate(45deg)}@media (max-width:640px){.fab{bottom:30px;height:60px;right:30px;width:60px}.fab i{font-size:20px}.fab span{font-size:10px}}.transaction-form-overlay{align-items:center;animation:fadeIn .2s ease;background:#00000080;display:flex;height:100%;justify-content:center;left:0;padding:20px;position:fixed;top:0;width:100%;z-index:200}@media (max-width:480px){.content-grid,.details-grid,.main-content{gap:16px}}.option-wrapper{position:relative}.option-btn{align-items:center;background:#f1f5f9;border:none;border-radius:10px;color:#475569;cursor:pointer;display:flex;font-weight:600;gap:6px;padding:10px 16px;transition:all .2s ease}.option-btn,.option-btn i{font-size:14px}.option-btn:hover{background:#e2e8f0;color:#0f172a}.option-menu{animation:fadeIn .2s ease;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;min-width:160px;padding:8px;position:absolute;right:0;top:calc(100% + 8px);z-index:100}.option-menu-item{align-items:center;background:#0000;border:none;border-radius:8px;color:#475569;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:10px;padding:10px 14px;text-align:left;transition:all .2s ease;width:100%}.option-menu-item i{color:#64748b;font-size:14px}.option-menu-item:hover{background:#f8fafc;color:#0f172a}.option-menu-item--logout,.option-menu-item--logout i{color:#ef4444}.option-menu-item--logout:hover{background:#fee2e2}@media (max-width:640px){.option-btn span{display:none}.option-btn{height:30px;justify-content:center;padding:5px;width:30px}}:root{--header-bg:#fff;--header-border:#e2e8f0}.common-header{background:#fff;background:var(--header-bg);border-bottom:3px solid #e2e8f0;border-bottom:3px solid var(--header-border);box-shadow:0 2px 12px #0000000d;box-shadow:0 2px 12px var(--shadow);justify-content:space-around;padding:8px;position:sticky;top:0;z-index:100}.common-header,.header__left{align-items:center;display:flex}.header__left{flex-wrap:wrap;gap:8px}.header-info{display:flex}.header__center{align-items:center;display:flex;flex:1 1;gap:16px;justify-content:center;max-width:500px}.header-user{background:linear-gradient(135deg,#5eead4,#06b6d4);background:linear-gradient(135deg,var(--primary-light) 0,var(--secondary) 100%);border-radius:10px;box-shadow:0 4px 12px #14b8a64d;color:#fff}.header-user,.view-toggle{font-size:14px;font-weight:700;padding:10px 16px;white-space:nowrap}.view-toggle{align-items:center;background:#fff;background:var(--header-bg);border:2px solid #14b8a6;border:2px solid var(--primary);border-radius:10px;color:#14b8a6;color:var(--primary);display:flex;gap:8px;height:42px;text-decoration:none;transition:all .2s ease}.view-toggle:hover{background:#14b8a6;background:var(--primary);box-shadow:0 4px 12px #14b8a64d;color:#fff;transform:translateY(-2px)}.view-toggle i{font-size:16px}.nav-btn{align-items:center;background:#fff;background:var(--header-bg);border:2px solid #e2e8f0;border:2px solid var(--header-border);border-radius:10px;color:#0f172a;color:var(--text-dark);cursor:pointer;display:flex;flex-shrink:0;height:42px;justify-content:center;transition:all .2s ease;width:42px}.nav-btn:hover{background:#14b8a6;background:var(--primary);border-color:#14b8a6;border-color:var(--primary);color:#fff;transform:scale(1.1)}.nav-btn:active{transform:scale(.95)}.nav-btn i{font-size:16px}.current-month{color:#0f172a;color:var(--text-dark);font-family:Georgia,serif;font-size:24px;font-weight:900;letter-spacing:-1px;margin:0;min-width:180px;text-align:center}@media (max-width:480px){.common-header{flex-direction:column}.header__left{gap:0}.header-user{background:linear-gradient(135deg,#5eead4,#06b6d4);background:linear-gradient(135deg,var(--primary-light) 0,var(--secondary) 100%);border-radius:10px;box-shadow:0 4px 12px #14b8a64d;color:#fff;font-size:10px;font-weight:700;padding:5px 8px;white-space:nowrap}.header__center{gap:8px}.nav-btn{height:32px;width:32px}.nav-btn i{font-size:13px}.current-month{font-size:16px;min-width:100px}.view-toggle{height:32px;width:32px}.view-toggle span{display:none}.view-toggle i{font-size:13px}.header__left>div{font-size:11px;padding:5px 10px}}.common-header.scrolled{border-bottom-color:#5eead4;border-bottom-color:var(--primary-light);box-shadow:0 4px 20px #0000001a;box-shadow:0 4px 20px var(--shadow-md)}.common-header{animation:fadeIn .3s ease}.common-header:hover{border-bottom-color:#5eead4;border-bottom-color:var(--primary-light)}@media print{.common-header{border-bottom:1px solid #000;box-shadow:none;position:static}.nav-btn,.view-toggle{display:none}}:root{--income-color:#3b82f6;--expense-color:#ef4444;--saving-color:#10b981;--bg-hover:#f8fafc;--shadow:#0000000d;--shadow-md:#0000001a}.annual-page{background:#f0fdfa;background:var(--bg-page);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,sans-serif;min-height:100vh}.year-selector{background:#fff;background:var(--bg-card);border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:10px;color:#0f172a;color:var(--text-dark);cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s ease}.year-selector:focus{border-color:#14b8a6;border-color:var(--primary);outline:none}.current-year{color:#0f172a;color:var(--text-dark);font-size:24px;font-weight:800;margin:0;min-width:150px;text-align:center}.annual-content{display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:1200px}.total-income-section{width:100%}.total-income-card{align-items:center;background:linear-gradient(135deg,#14b8a6,#06b6d4);background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);border-radius:16px;box-shadow:0 8px 24px #14b8a64d;display:flex;gap:24px;padding:20px}.total-income-card i{color:#ffffffe6;font-size:48px}.total-income-info{display:flex;flex-direction:column;gap:8px}.total-income-label{color:#fffffff2;font-size:16px;font-weight:600}.total-income-value{color:#fff;font-size:36px;font-weight:900;letter-spacing:-1px}@media (max-width:640px){.total-income-card{padding:24px 20px}.total-income-card i{font-size:36px}.total-income-label{font-size:14px}.total-income-value{font-size:28px}}.months-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}@media (max-width:768px){.months-grid{grid-template-columns:1fr}}.month-card{background:#fff;background:var(--bg-card);border:2px solid #0000;border-radius:16px;box-shadow:0 2px 8px #0000000d;box-shadow:0 2px 8px var(--shadow);cursor:pointer;padding:20px;transition:all .3s ease}.month-card:hover{border-color:#14b8a6;border-color:var(--primary);box-shadow:0 8px 24px #0000001a;box-shadow:0 8px 24px var(--shadow-md);transform:translateY(-4px)}.month-card__header{align-items:center;border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--border);display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.month-title{color:#0f172a;color:var(--text-dark);font-size:20px;font-weight:800;margin:0}.month-card__header i{color:#94a3b8;color:var(--text-light);font-size:18px;transition:all .3s ease}.month-card:hover .month-card__header i{color:#14b8a6;color:var(--primary);transform:translateX(4px)}.month-card__body{display:flex;flex-direction:column;gap:12px}.summary-row{align-items:center;display:flex;justify-content:space-between}.summary-label{font-size:14px;font-weight:600}.summary-label.income{color:#3b82f6;color:var(--income-color)}.summary-label.expense{color:#ef4444;color:var(--expense-color)}.summary-label.saving{color:#10b981;color:var(--saving-color)}.summary-value{font-size:16px;font-weight:700}.summary-value.income{color:#3b82f6;color:var(--income-color)}.summary-value.expense{color:#ef4444;color:var(--expense-color)}.summary-value.saving{color:#10b981;color:var(--saving-color)}.progress-bar{background:#e2e8f0;background:var(--border);border-radius:8px;height:28px;overflow:hidden;position:relative;width:100%}.progress-fill{align-items:center;display:flex;height:100%;justify-content:center;position:relative;transition:width .3s ease}.progress-fill.expense{background:linear-gradient(90deg,#ef4444,#dc2626);background:linear-gradient(90deg,var(--expense-color) 0,#dc2626 100%)}.progress-fill.saving{background:linear-gradient(90deg,#10b981,#059669);background:linear-gradient(90deg,var(--saving-color) 0,#059669 100%)}.progress-fill span{color:#fff;font-size:12px;font-weight:700}.category-details{background:#f8fafc;background:var(--bg-hover);border-radius:10px;display:flex;flex-direction:column;gap:8px;margin:8px 0;padding:12px}.category-item{align-items:center;display:flex;font-size:13px;justify-content:space-between}.category-name{color:#475569;color:var(--text-medium);font-weight:500}.category-value{color:#0f172a;color:var(--text-dark);font-weight:600}.chart-section{width:100%}.chart-card{background:#fff;background:var(--bg-card);border-radius:16px;box-shadow:0 2px 8px #0000000d;box-shadow:0 2px 8px var(--shadow);padding:32px}.chart-title{align-items:center;color:#0f172a;color:var(--text-dark);display:flex;font-size:22px;font-weight:800;gap:12px;margin:0 0 24px}.chart-title i{color:#14b8a6;color:var(--primary);font-size:24px}.chart-wrapper{margin:0 auto;max-width:600px;padding:20px 0}.total-spending{border-top:2px solid #e2e8f0;border-top:2px solid var(--border);color:#ef4444;color:var(--expense-color);font-size:18px;font-weight:700;margin-top:24px;padding-top:24px;text-align:center}@media (max-width:768px){.chart-card{padding:24px 20px}.chart-title{font-size:20px}.chart-wrapper{max-width:100%}}@media (max-width:480px){.chart-card{padding:20px 16px}.chart-title{font-size:18px}.total-spending{font-size:16px}.annual-content,.months-grid{gap:16px}.month-card{padding:16px}}:root{--primary:#14b8a6;--primary-dark:#0d9488;--primary-light:#5eead4;--secondary:#06b6d4;--accent:#f59e0b;--bg-page:#f0fdfa;--bg-card:#fff;--text-dark:#0f172a;--text-medium:#475569;--text-light:#94a3b8;--border:#e2e8f0;--shadow:#00000014;--shadow-lg:#00000026}.sign-page{align-items:center;background:linear-gradient(135deg,#f0fdfa,#ccfbf1);background:linear-gradient(135deg,var(--bg-page) 0,#ccfbf1 100%);display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,sans-serif;justify-content:center;min-height:100vh;overflow:hidden;padding:20px;position:relative}.sign-decoration{height:100%;pointer-events:none;position:absolute;width:100%;z-index:0}.deco-circle{animation:float 20s ease-in-out infinite;background:radial-gradient(circle,#14b8a61a,#0000);border-radius:50%;position:absolute}.deco-circle-1{animation-delay:0s;height:400px;left:-200px;top:-200px;width:400px}.deco-circle-2{animation-delay:7s;bottom:-150px;height:300px;right:-150px;width:300px}.deco-circle-3{animation-delay:14s;height:200px;right:10%;top:50%;width:200px}@keyframes float{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-30px) scale(1.1)}}.sign-container{max-width:480px;position:relative;width:100%;z-index:1}.sign-card{animation:slideUp .5s ease;background:#fff;background:var(--bg-card);border:1px solid #14b8a61a;border-radius:24px;box-shadow:0 20px 60px #00000026;box-shadow:0 20px 60px var(--shadow-lg);padding:40px}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.sign-header{margin-bottom:32px;text-align:center}.sign-logo{align-items:center;animation:pulse 3s infinite;background:linear-gradient(135deg,#14b8a6,#06b6d4);background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);border-radius:50%;box-shadow:0 8px 24px #14b8a64d;display:flex;height:80px;justify-content:center;margin:0 auto 20px;width:80px}.sign-logo i{color:#fff;font-size:36px}@keyframes pulse{0%,to{box-shadow:0 8px 24px #14b8a64d;transform:scale(1)}50%{box-shadow:0 12px 32px #14b8a666;transform:scale(1.05)}}.sign-title{color:#0f172a;color:var(--text-dark);font-size:32px;font-weight:900;letter-spacing:-1px;margin:0 0 8px}.sign-subtitle{color:#475569;color:var(--text-medium);font-size:15px;margin:0}.sign-tabs{background:#f1f5f9;border-radius:12px;display:flex;gap:8px;margin-bottom:32px;padding:6px}.sign-tab{align-items:center;background:#0000;border:none;border-radius:8px;color:#475569;color:var(--text-medium);cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:700;gap:8px;justify-content:center;padding:12px 16px;transition:all .3s ease}.sign-tab i{font-size:16px}.sign-tab--active{background:linear-gradient(135deg,#14b8a6,#06b6d4);background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);box-shadow:0 4px 12px #14b8a64d;color:#fff}.sign-tab:hover:not(.sign-tab--active){background:#14b8a60d;color:#14b8a6;color:var(--primary)}.sign-forms{min-height:320px;position:relative}.sign-form{animation:fadeIn .3s ease;display:flex;flex-direction:column;gap:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{align-items:center;color:#0f172a;color:var(--text-dark);display:flex;font-size:13px;font-weight:600;gap:8px}.form-label i{color:#14b8a6;color:var(--primary);font-size:14px}.form-input{background:#fff;background:var(--bg-card);border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:12px;color:#0f172a;color:var(--text-dark);font-family:inherit;font-size:15px;padding:14px 16px;transition:all .2s ease;width:100%}.form-input::placeholder{color:#94a3b8;color:var(--text-light)}.form-input:focus{border-color:#14b8a6;border-color:var(--primary);box-shadow:0 0 0 4px #14b8a61a;outline:none}.submit-btn{align-items:center;background:linear-gradient(135deg,#14b8a6,#06b6d4);background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);border:none;border-radius:12px;box-shadow:0 4px 14px #14b8a64d;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:700;gap:12px;justify-content:center;margin-top:8px;overflow:hidden;padding:16px 24px;position:relative;transition:all .3s ease}.submit-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.submit-btn:hover:before{left:100%}.submit-btn:hover{box-shadow:0 6px 20px #14b8a666;transform:translateY(-2px)}.submit-btn:active{transform:translateY(0)}.submit-btn i{font-size:18px;transition:transform .3s ease}.submit-btn:hover i{transform:translateX(4px)}@media (max-width:640px){.sign-card{padding:32px 24px}.sign-logo{height:70px;width:70px}.sign-logo i{font-size:32px}.sign-title{font-size:28px}.sign-subtitle{font-size:14px}.sign-tabs{margin-bottom:24px}.sign-tab{font-size:13px;padding:10px 12px}.form-input,.sign-tab i{font-size:14px}.form-input{padding:12px 14px}.submit-btn{font-size:15px;padding:14px 20px}.deco-circle-1{height:300px;width:300px}.deco-circle-2{height:250px;width:250px}.deco-circle-3{display:none}}@media (max-width:480px){.sign-page{padding:15px}.sign-card{border-radius:20px;padding:28px 20px}.sign-header{margin-bottom:24px}.sign-logo{height:64px;margin-bottom:16px;width:64px}.sign-logo i{font-size:28px}.sign-title{font-size:24px}.form-group{gap:6px}.form-label{font-size:12px}.form-label i{font-size:13px}}
/*# sourceMappingURL=main.428439b3.css.map*/