*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary-500: #667eea;--primary-600: #5a67d8;--primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--success: #10b981;--error: #ef4444;--warning: #f59e0b;--font-sans: "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);line-height:1.6;color:var(--gray-800);background-color:var(--gray-50);min-height:100vh}#root{min-height:100vh}a{color:var(--primary-500);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-600);text-decoration:underline}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1.125rem;color:var(--gray-500)}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--primary-gradient);padding:1rem}.login-card{background:#fff;padding:2.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:420px;animation:slideUp .3s ease-out}.login-card h1{text-align:center;margin-bottom:2rem;color:var(--gray-900);font-size:1.75rem;font-weight:700}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--gray-700);font-size:.875rem}.form-group input{width:100%;padding:.875rem 1rem;border:2px solid var(--gray-200);border-radius:var(--radius-md);font-size:1rem;color:var(--gray-800);background:#fff;transition:border-color .2s,box-shadow .2s}.form-group input::placeholder{color:var(--gray-400)}.form-group input:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #667eea26}.btn-primary{width:100%;padding:.875rem;background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;margin-top:.5rem}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.error-message{background:#fef2f2;color:var(--error);padding:.75rem 1rem;border-radius:var(--radius-md);margin-bottom:1rem;font-size:.875rem;border:1px solid #fee2e2}.signup-link{text-align:center;margin-top:1.5rem;color:var(--gray-500);font-size:.9375rem}.signup-link a{color:var(--primary-500);font-weight:600}.calendar{background:#fff;border-radius:var(--radius-lg);overflow:hidden}.calendar-header{display:flex;align-items:center;gap:.5rem;padding:1rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.calendar-nav{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:#fff;border-radius:var(--radius-md);font-size:1.25rem;color:var(--gray-600);cursor:pointer;transition:background .2s,color .2s}.calendar-nav:hover{background:var(--gray-100);color:var(--gray-800)}.calendar-title{flex:1;text-align:center;font-weight:600;color:var(--gray-800)}.calendar-today{padding:.375rem .75rem;border:1px solid var(--gray-300);background:#fff;border-radius:var(--radius-md);font-size:.875rem;color:var(--gray-600);cursor:pointer;transition:all .2s}.calendar-today:hover{background:var(--primary-500);border-color:var(--primary-500);color:#fff}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:.75rem .5rem;border-bottom:1px solid var(--gray-100)}.weekday{text-align:center;font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase}.weekday.sunday{color:var(--error)}.weekday.saturday{color:var(--primary-500)}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);padding:.5rem;gap:2px}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.875rem;border-radius:var(--radius-md);cursor:default;color:var(--gray-300)}.calendar-day.has-day{cursor:pointer;color:var(--gray-700);transition:background .2s,color .2s}.calendar-day.has-day:hover{background:var(--gray-100)}.calendar-day.sunday{color:var(--error)}.calendar-day.saturday{color:var(--primary-500)}.calendar-day.today{background:var(--gray-100);font-weight:600}.calendar-day.selected{background:var(--primary-500)!important;color:#fff!important;font-weight:600}.daily-summary{background:#fff;border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-sm)}.summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.summary-header h3{margin:0;font-size:1.125rem;color:var(--gray-800)}.btn-add-transaction{background:var(--primary-500);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s,transform .2s}.btn-add-transaction:hover{background:var(--primary-600);transform:translateY(-1px)}.summary-loading,.summary-empty{text-align:center;color:var(--gray-400);padding:1.5rem}.summary-content{display:flex;flex-direction:column;gap:1rem}.summary-main{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--gray-50);border-radius:var(--radius-md)}.summary-label{font-weight:500;color:var(--gray-600)}.summary-value{font-size:1.5rem;font-weight:700}.summary-value.positive{color:var(--success)}.summary-value.negative{color:var(--error)}.summary-details{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.summary-item{display:flex;justify-content:space-between;padding:.75rem;background:var(--gray-50);border-radius:var(--radius-sm);font-size:.875rem}.summary-item span:first-child{color:var(--gray-500)}.summary-item .positive{color:var(--success);font-weight:500}.summary-item .negative{color:var(--error);font-weight:500}.transaction-loading,.transaction-empty{text-align:center;color:var(--gray-400);padding:3rem 1rem}.transaction-empty span{font-size:3rem;display:block;margin-bottom:1rem}.transaction-empty p{margin:.25rem 0}.transaction-list{display:flex;flex-direction:column;gap:.5rem}.transaction-item{background:#fff;border-radius:var(--radius-md);border:1px solid var(--gray-200);overflow:hidden;transition:box-shadow .2s}.transaction-item.expanded{box-shadow:var(--shadow-md)}.transaction-header{display:flex;align-items:center;padding:1rem;cursor:pointer;gap:.75rem;transition:background .2s}.transaction-header:hover{background:var(--gray-50)}.expand-icon{color:var(--gray-400);font-size:.75rem;width:1rem}.transaction-desc{flex:1;font-weight:500;color:var(--gray-800)}.transaction-amount{font-weight:600;font-size:1rem}.transaction-amount.positive{color:var(--success)}.transaction-amount.negative{color:var(--error)}.transaction-detail{padding:0 1rem 1rem;border-top:1px solid var(--gray-100);background:var(--gray-50)}.detail-meta{display:flex;gap:2rem;padding:1rem 0;font-size:.875rem}.meta-item{display:flex;gap:.5rem}.meta-label{color:var(--gray-500)}.detail-lines{width:100%;border-collapse:collapse;margin-bottom:1rem;background:#fff;border-radius:var(--radius-sm);overflow:hidden}.detail-lines th,.detail-lines td{padding:.625rem .75rem;text-align:left;font-size:.875rem}.detail-lines th{background:var(--gray-100);color:var(--gray-600);font-weight:500}.detail-lines td{border-bottom:1px solid var(--gray-100)}.detail-lines td.amount{text-align:right;font-family:Courier New,monospace}.account-type{display:inline-flex;align-items:center;gap:.25rem}.account-type:before{content:"";width:8px;height:8px;border-radius:50%}.account-type.asset:before{background:#10b981}.account-type.liability:before{background:#ef4444}.account-type.equity:before{background:#8b5cf6}.account-type.revenue:before{background:#3b82f6}.account-type.expense:before{background:#f59e0b}.detail-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.tag{background:var(--primary-500);color:#fff;padding:.25rem .625rem;border-radius:999px;font-size:.75rem;font-weight:500}.detail-actions{display:flex;gap:.5rem;justify-content:flex-end}.btn-edit,.btn-delete{padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-edit{background:#fff;border:1px solid var(--gray-300);color:var(--gray-700)}.btn-edit:hover{background:var(--gray-50);border-color:var(--gray-400)}.btn-delete{background:#fff;border:1px solid var(--error);color:var(--error)}.btn-delete:hover{background:var(--error);color:#fff}.transaction-modal{background:#fff;border-radius:var(--radius-xl);width:95%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .3s ease-out}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--gray-200);position:sticky;top:0;background:#fff;z-index:10}.modal-header h2{margin:0;font-size:1.25rem;color:var(--gray-800)}.modal-date{color:var(--gray-500);font-size:.875rem}.modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.modal-body .form-group{margin:0}.modal-body .form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--gray-700);font-size:.875rem}.modal-body .form-group input[type=text],.modal-body .form-group input[type=number],.modal-body .form-group select{width:100%;padding:.75rem;border:2px solid var(--gray-200);border-radius:var(--radius-md);font-size:1rem;transition:border-color .2s}.modal-body .form-group input:focus,.modal-body .form-group select:focus{outline:none;border-color:var(--primary-500)}.actor-buttons,.tags-container{display:flex;flex-wrap:wrap;gap:.5rem}.actor-btn,.tag-btn{padding:.5rem 1rem;border:2px solid var(--gray-200);background:#fff;border-radius:999px;font-size:.875rem;cursor:pointer;transition:all .2s}.actor-btn:hover,.tag-btn:hover{border-color:var(--primary-500)}.actor-btn.selected,.tag-btn.selected{background:var(--primary-500);border-color:var(--primary-500);color:#fff}.lines-container{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.line-row{display:grid;grid-template-columns:1fr 100px 120px 40px;gap:.5rem;align-items:center}.line-row select,.line-row input{padding:.625rem;border:2px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.875rem}.line-row input[type=number]{text-align:right}.btn-remove-line{width:36px;height:36px;border:none;background:var(--gray-100);border-radius:var(--radius-sm);cursor:pointer;transition:background .2s}.btn-remove-line:hover:not(:disabled){background:#fee2e2}.btn-remove-line:disabled{opacity:.3;cursor:not-allowed}.btn-add-line{padding:.625rem 1rem;border:2px dashed var(--gray-300);background:transparent;border-radius:var(--radius-md);color:var(--gray-500);font-size:.875rem;cursor:pointer;transition:all .2s}.btn-add-line:hover{border-color:var(--primary-500);color:var(--primary-500)}.balance-check{background:var(--gray-50);padding:1rem;border-radius:var(--radius-md)}.balance-row{display:flex;justify-content:space-between;padding:.375rem 0;font-size:.875rem}.balance-status{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--gray-200);text-align:center;font-weight:500}.balance-status.balanced{color:var(--success)}.balance-status.unbalanced{color:var(--error)}.modal-body .error-message{background:#fef2f2;color:var(--error);padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.875rem;border:1px solid #fee2e2}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.5rem;border-top:1px solid var(--gray-200);position:sticky;bottom:0;background:#fff}.btn-cancel,.btn-save{padding:.75rem 1.5rem;border-radius:var(--radius-md);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel{background:#fff;border:2px solid var(--gray-300);color:var(--gray-600)}.btn-cancel:hover{background:var(--gray-50)}.btn-save{background:var(--primary-gradient);border:none;color:#fff}.btn-save:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-save:disabled{opacity:.6;cursor:not-allowed}@media(max-width:600px){.line-row{grid-template-columns:1fr 1fr;gap:.5rem}.line-row select:first-child{grid-column:1 / -1}}.main-container{min-height:100vh;background:var(--gray-100);display:flex;flex-direction:column}.main-header{background:var(--primary-gradient);color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.25rem;font-weight:700}.user-actions{display:flex;align-items:center;gap:1rem}.user-email{opacity:.9;font-size:.875rem}.btn-logout{background:#fff3;color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--radius-md);cursor:pointer;transition:background .2s}.btn-logout:hover{background:#ffffff4d}.main-nav{background:#fff;padding:0 2rem;display:flex;gap:.25rem;border-bottom:1px solid var(--gray-200);box-shadow:var(--shadow-sm)}.nav-link{padding:1rem 1.5rem;text-decoration:none;color:var(--gray-500);font-weight:500;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}.nav-link:hover{color:var(--primary-500);text-decoration:none}.nav-link.active{color:var(--primary-500);border-bottom-color:var(--primary-500)}.main-content{flex:1;padding:1.5rem;overflow-y:auto}.main-grid{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:350px 1fr;gap:1.5rem}.calendar-section{position:sticky;top:1.5rem;align-self:start}.right-panel{display:flex;flex-direction:column;gap:1.5rem}.transactions-section{background:#fff;border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-sm)}.transactions-section h3{margin:0 0 1rem;font-size:1.125rem;color:var(--gray-800)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;padding:2rem;border-radius:var(--radius-xl);width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.main-grid{grid-template-columns:1fr}.calendar-section{position:static}}@media(max-width:600px){.main-header{padding:1rem}.main-nav{padding:0 1rem;overflow-x:auto}.nav-link{padding:.875rem 1rem;white-space:nowrap}.main-content{padding:1rem}}.management-container{min-height:100vh;background:var(--gray-100)}.management-header{background:var(--primary-gradient);color:#fff;padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:1.5rem}.back-link{color:#fffc;text-decoration:none;font-size:.875rem;transition:color .2s}.back-link:hover{color:#fff;text-decoration:none}.management-header h1{margin:0;font-size:1.5rem}.btn-add{background:#fff3;color:#fff;border:none;padding:.625rem 1.25rem;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:background .2s}.btn-add:hover{background:#ffffff4d}.management-form{background:#fff;padding:1.25rem;margin:1.5rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.form-row{display:flex;gap:.75rem;flex-wrap:wrap}.form-row input,.form-row select{flex:1;min-width:150px;padding:.75rem;border:2px solid var(--gray-200);border-radius:var(--radius-md);font-size:1rem}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--primary-500)}.form-row .btn-save,.form-row .btn-cancel{padding:.75rem 1.5rem;border-radius:var(--radius-md);font-weight:500;cursor:pointer}.form-row .btn-save{background:var(--primary-500);color:#fff;border:none}.form-row .btn-save:hover{background:var(--primary-600)}.form-row .btn-cancel{background:#fff;color:var(--gray-600);border:2px solid var(--gray-300)}.form-error{margin-top:.75rem;color:var(--error);font-size:.875rem}.management-list{padding:0 1.5rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem}.list-group h2{font-size:1rem;color:var(--gray-500);margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.list-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:.5rem}.item-name{font-weight:500;color:var(--gray-800)}.item-actions{display:flex;gap:.5rem}.item-actions button{padding:.375rem .875rem;border-radius:var(--radius-sm);font-size:.875rem;cursor:pointer;transition:all .2s;background:#fff;border:1px solid var(--gray-300);color:var(--gray-600)}.item-actions button:hover{background:var(--gray-50)}.item-actions .btn-delete{border-color:var(--error);color:var(--error)}.item-actions .btn-delete:hover{background:var(--error);color:#fff}.loading{text-align:center;padding:3rem;color:var(--gray-400)}.empty-state{text-align:center;padding:4rem 2rem;color:var(--gray-500)}.empty-state p:first-child{font-size:1.125rem;font-weight:500;margin-bottom:.5rem}.empty-state p:last-child{font-size:.875rem;color:var(--gray-400)}.trash-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:.5rem}.trash-meta{font-size:.875rem;color:var(--gray-500);margin-top:.25rem}.btn-restore{background:var(--success);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--radius-md);cursor:pointer}.btn-restore:hover{opacity:.9}
