:root{--z-logo: 100;--z-floating-button: 900;--z-sidebar-overlay: 998;--z-sidebar: 999;--z-hamburger: 1000;--z-auth-button: 1000;--z-floating-modal-overlay: 1100;--z-floating-modal: 1101}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,sans-serif;line-height:1.6;color:#333;background:#f5f5f5;margin:0}a{text-decoration:none}#page-content{opacity:1;transition:opacity .3s ease-in-out}body.page-transition #page-content{opacity:0}.hamburger-button{position:fixed;top:20px;left:20px;z-index:var(--z-hamburger);background:#fff;border:none;border-radius:8px;padding:12px;cursor:pointer;box-shadow:0 2px 8px #0000001a;transition:all .3s ease}.hamburger-button:hover{box-shadow:0 4px 12px #00000026}.hamburger-icon{display:flex;flex-direction:column;gap:4px;width:24px}.hamburger-icon span{display:block;height:3px;background:#333;border-radius:2px;transition:all .3s ease}.hamburger-button.open .hamburger-icon span:nth-child(1){transform:rotate(45deg) translate(6px,6px)}.hamburger-button.open .hamburger-icon span:nth-child(2){opacity:0}.hamburger-button.open .hamburger-icon span:nth-child(3){transform:rotate(-45deg) translate(6px,-6px)}.sidebar-overlay{position:fixed;inset:0;background:#00000080;z-index:var(--z-sidebar-overlay);opacity:0;visibility:hidden;transition:all .3s ease}.sidebar-overlay.open{opacity:1;visibility:visible}#sidebar{position:fixed;top:0;left:-280px;width:280px;height:100vh;background:#fff;padding:80px 20px 20px;display:flex;flex-direction:column;gap:8px;box-shadow:2px 0 8px #0000001a;z-index:var(--z-sidebar);transition:left .3s ease;overflow-y:auto}#sidebar.open{left:0}#sidebar a{padding:12px 16px;border-radius:8px;color:#333;transition:all .2s;display:block}#sidebar a:hover{background-color:#f0f0f0}#sidebar a.is-active{background-color:#3498db;color:#fff;font-weight:600}.logo{position:fixed;top:16px;left:80px;z-index:var(--z-logo)}.logo img{height:48px;width:48px}.auth-button-container{position:fixed;top:1rem;right:1rem;z-index:var(--z-auth-button)}#page-container{min-height:100vh}#page-content{padding:1rem;max-width:1200px;margin:0 auto}@media(min-width:640px){#page-content{padding:20px}}.home-page{max-width:600px;margin:0 auto;padding:.5rem 1rem}@media(min-width:640px){.home-page{padding:.5rem 1rem}}header{text-align:center;margin-bottom:30px}.month{color:#7f8c8d;font-size:1.1rem}.remaining-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.remaining-display{text-align:center}.summary{display:flex;justify-content:space-around;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #ecf0f1}.budget-info,.spent-info{display:flex;flex-direction:column}.label{font-size:.9rem;color:#7f8c8d;margin-bottom:4px}.value{font-size:1.2rem;font-weight:700;color:#2c3e50}.remaining-info{margin-top:16px}.remaining-label{font-size:1rem;color:#7f8c8d;margin-bottom:8px}.remaining-value{font-size:2.5rem;font-weight:700;color:#27ae60}.remaining-value.negative{color:#e74c3c}.daily-info{margin-top:24px;padding-top:16px;border-top:1px solid #ecf0f1;display:flex;justify-content:space-around}.daily-average,.daily-limit{display:flex;flex-direction:column;text-align:center}.daily-info .label{font-size:.85rem;color:#7f8c8d;margin-bottom:4px}.daily-info .value{font-size:1.1rem;font-weight:700;color:#2c3e50}.input-section{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.input-section h2{font-size:1.3rem;margin-bottom:20px;color:#2c3e50;font-weight:600}@media(min-width:640px){.input-section{padding:24px}}.expense-input,.input-group{display:flex;flex-direction:column;gap:16px}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=date]{padding:16px 20px;font-size:18px;min-height:56px;border:2px solid #ecf0f1;border-radius:12px;transition:all .2s;-webkit-tap-highlight-color:rgba(52,152,219,.3);-webkit-appearance:none}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=tel]:focus,input[type=date]:focus{outline:none;border-color:#3498db;border-width:3px;box-shadow:0 0 0 3px #3498db1a}input[type=text]:active,input[type=email]:active,input[type=password]:active,input[type=number]:active,input[type=tel]:active,input[type=date]:active{transform:scale(.995)}input[type=checkbox]{width:1.125rem;height:1.125rem;cursor:pointer;accent-color:#3498db;flex-shrink:0}input[type=checkbox]:focus{outline:2px solid #3498db;outline-offset:2px}.add-button{padding:18px;font-size:1.25rem;font-weight:700;min-height:60px;color:#fff;background:#3498db;border:none;border-radius:12px;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:rgba(41,128,185,.3);touch-action:manipulation}.add-button:hover:not(:disabled){background:#2980b9}.add-button:active:not(:disabled){transform:scale(.97);background:#2573a7}.add-button:disabled{background:#bdc3c7;cursor:not-allowed;opacity:.6}footer{text-align:center;margin-top:40px}.performance-note{font-size:.9rem;color:#7f8c8d}@media(min-width:640px){.input-group{flex-direction:row;gap:12px}.amount-input{flex:1}.memo-input{flex:2}input{font-size:1rem;min-height:48px;padding:12px 16px}.add-button{min-height:52px;font-size:1.1rem}}.floating-expense-button{position:fixed;bottom:1.25rem;right:1.25rem;width:3.5rem;height:3.5rem;border-radius:50%;background:#3498db;border:none;cursor:pointer;box-shadow:0 .25rem .75rem #3498db66;z-index:var(--z-floating-button);display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-tap-highlight-color:rgba(52,152,219,.3);touch-action:manipulation}.floating-expense-button:hover{transform:scale(1.05);box-shadow:0 .375rem 1rem #3498db80}.floating-expense-button:active{transform:scale(.95)}.floating-expense-button.left-handed{right:auto;left:1.25rem}.floating-expense-button svg{width:1.75rem;height:1.75rem;fill:#fff}@media(min-width:640px){.floating-expense-button{width:4rem;height:4rem;bottom:1.5rem;right:1.5rem}.floating-expense-button.left-handed{right:auto;left:1.5rem}.floating-expense-button svg{width:2rem;height:2rem}}.floating-modal-overlay{position:fixed;inset:0;background:#00000080;z-index:var(--z-floating-modal-overlay);display:flex;align-items:center;justify-content:center;padding:1rem}.floating-modal{background:#fff;border-radius:1rem;width:100%;max-width:min(25rem,90vw);max-height:90vh;overflow:hidden;z-index:var(--z-floating-modal);box-shadow:0 .5rem 2rem #0003}.floating-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:.0625rem solid #ecf0f1}.floating-modal-header h3{margin:0;font-size:1.2rem;color:#2c3e50;font-weight:600}.floating-modal-close{background:none;border:none;font-size:1.75rem;cursor:pointer;color:#7f8c8d;padding:0;line-height:1;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.floating-modal-close:hover{background:#f5f5f5;color:#333}.floating-modal-body{padding:1rem 1.25rem 1.25rem;max-height:calc(90vh - 3.75rem);overflow-y:auto}@media(min-width:640px){.floating-modal{max-width:min(26.25rem,90vw);border-radius:1.25rem}.floating-modal-header{padding:1.25rem 1.5rem}.floating-modal-body{padding:1.25rem 1.5rem 1.5rem}}.expense-input.calculator{display:flex;flex-direction:column;gap:10px}.calculator-display{background:#2c3e50;color:#fff;padding:12px 16px;border-radius:8px;min-height:70px;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;box-shadow:inset 0 2px 8px #0000004d}.calculator-display .expression{font-size:1.4rem;font-weight:500;text-align:right;word-break:break-all;min-height:28px;line-height:1.2}.calculator-display .result{font-size:1rem;color:#3498db;text-align:right;min-height:20px;line-height:1.2}.calculator-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.calc-btn{padding:12px 8px;font-size:1.2rem;font-weight:600;background:#fff;border:2px solid #ecf0f1;border-radius:8px;cursor:pointer;transition:all .15s;touch-action:manipulation;-webkit-tap-highlight-color:rgba(52,152,219,.3);min-height:48px;display:flex;align-items:center;justify-content:center}.calc-btn:hover{background:#f8f9fa;border-color:#3498db}.calc-btn:active{transform:scale(.95);background:#e9ecef}.calc-btn.operator{background:#3498db;color:#fff;border-color:#2980b9}.calc-btn.operator:hover{background:#2980b9;border-color:#2573a7}.calc-btn.operator:active{background:#2573a7}.calc-btn.equals{background:#27ae60;color:#fff;border-color:#229954}.calc-btn.equals:hover{background:#229954;border-color:#1e8449}.calc-btn.equals:active{background:#1e8449}.calc-btn.clear{background:#e74c3c;color:#fff;border-color:#c0392b}.calc-btn.clear:hover{background:#c0392b;border-color:#a93226}.calc-btn.clear:active{background:#a93226}.calc-btn.backspace{background:#f39c12;color:#fff;border-color:#e67e22}.calc-btn.backspace:hover{background:#e67e22;border-color:#d35400}.calc-btn.backspace:active{background:#d35400}.accordion{margin-top:.5rem;border:.125rem solid #ecf0f1;border-radius:.5rem;overflow:hidden}.accordion-header{width:100%;padding:.75rem 1rem;font-size:1rem;font-weight:600;background:#f8f9fa;border:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:all .2s;-webkit-tap-highlight-color:rgba(52,152,219,.3);color:#2c3e50}.accordion-header:hover{background:#e9ecef}.accordion-header:active{transform:scale(.99)}.accordion-title{flex:1;text-align:left}.accordion-icon{font-size:.75rem;color:#7f8c8d;transition:transform .2s}.accordion-content{padding:1rem;background:#fff;animation:accordion-slide-down .2s ease-out}@keyframes accordion-slide-down{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}.detail-inputs{display:flex;flex-direction:column;gap:1rem}.category-section{display:flex;flex-direction:column;gap:.5rem}.input-label{font-size:.9rem;font-weight:600;color:#2c3e50}.category-select{width:100%;padding:.625rem .75rem;font-size:1rem;border:.125rem solid #ecf0f1;border-radius:.5rem;transition:all .2s;-webkit-tap-highlight-color:rgba(52,152,219,.3);min-height:2.75rem;background:#fff;cursor:pointer}.category-select:focus{outline:none;border-color:#3498db;border-width:.125rem;box-shadow:0 0 0 .125rem #3498db1a}.memo-section{display:flex;flex-direction:column;gap:.5rem}.memo-section .memo-input{width:100%;padding:.625rem .75rem;font-size:1rem;border:.125rem solid #ecf0f1;border-radius:.5rem;transition:all .2s;-webkit-tap-highlight-color:rgba(52,152,219,.3);min-height:2.75rem}.memo-section .memo-input:focus{outline:none;border-color:#3498db;border-width:.125rem;box-shadow:0 0 0 .125rem #3498db1a}.submit-button{width:100%;padding:12px 16px;font-size:1.1rem;font-weight:700;color:#fff;background:#3498db;border:none;border-radius:8px;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:rgba(41,128,185,.3);touch-action:manipulation;min-height:48px}.submit-button:hover:not(:disabled){background:#2980b9;box-shadow:0 4px 12px #3498db4d}.submit-button:active:not(:disabled){transform:scale(.98);background:#2573a7}.submit-button:disabled{background:#bdc3c7;cursor:not-allowed;opacity:.6}@media(min-width:640px){.expense-input.calculator{gap:16px}.calculator-display{padding:20px;min-height:100px;border-radius:12px}.calculator-display .expression{font-size:2rem;min-height:36px}.calculator-display .result{font-size:1.3rem;min-height:24px}.calculator-buttons{gap:12px}.calc-btn{padding:20px;font-size:1.3rem;min-height:56px;border-radius:12px}.accordion{margin-top:.75rem;border-radius:.75rem}.accordion-header{padding:1rem 1.25rem;font-size:1.1rem}.accordion-content{padding:1.25rem}.detail-inputs{gap:1.25rem}.category-select{padding:1rem 1.25rem;font-size:1.1rem;min-height:3.5rem;border-radius:.75rem}.category-select:focus{border-width:.1875rem;box-shadow:0 0 0 .1875rem #3498db1a}.memo-section .memo-input{padding:1rem 1.25rem;font-size:1.1rem;min-height:3.5rem;border-radius:.75rem}.memo-section .memo-input:focus{border-width:.1875rem;box-shadow:0 0 0 .1875rem #3498db1a}.submit-button{padding:20px;font-size:1.3rem;min-height:64px;border-radius:12px}}
