*{box-sizing:border-box;margin:0;padding:0}body{color:#333;background-color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;overflow:hidden}.loading-container{color:#fff;background:#0a0a0a;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex}.spinner{border:4px solid #ffffff1a;border-top-color:#667eea;border-radius:50%;width:50px;height:50px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;padding:30px;overflow-y:auto;box-shadow:0 4px 6px #0000001a}.modal-content h3{margin-top:0;margin-bottom:20px}.modal-content form label{margin-bottom:15px;font-weight:500;display:block}.modal-content form input,.modal-content form select{border:1px solid #ced4da;border-radius:4px;width:100%;margin-top:5px;padding:8px 12px;font-size:1em}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;flex:1;padding:12px 24px;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-cancel{color:#666;cursor:pointer;background:#fff;border:2px solid #ddd;border-radius:8px;flex:1;padding:12px 24px;font-size:1rem;font-weight:600;transition:all .2s}.btn-cancel:hover:not(:disabled){color:#333;background:#f5f5f5;border-color:#999}.btn-cancel:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:#fff;cursor:pointer;background:#fff3;border:1px solid #ffffff4d;border-radius:6px;padding:8px 16px;font-size:.9rem;transition:all .3s}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:#2c3e50;font-size:.9rem;font-weight:600}.form-group input{border:2px solid #e0e0e0;border-radius:8px;padding:12px 16px;font-size:1rem;transition:all .3s}.form-group input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{cursor:not-allowed;background-color:#f5f5f5}.upload-form,.transaction-form,.account-form{flex-direction:column;gap:20px;margin-top:20px;display:flex}.view-container .form-group label{color:#000;font-size:.95rem;font-weight:500}.view-container .form-group input,.view-container .form-group select{color:#000;background:#ffffff1a;border:2px solid #fff3;border-radius:8px;padding:12px 16px;font-size:1rem;transition:all .3s}.view-container .form-group input:focus,.view-container .form-group select:focus{background:#ffffff26;border-color:#667eea;outline:none}.form-group select option{color:#fff;background:#1a1a2e}.form-group input[type=checkbox]{cursor:pointer;width:20px;height:20px}.file-input-wrapper{position:relative}.file-input-wrapper input[type=file]{opacity:0;width:0;height:0;position:absolute}.file-label{color:#fff;text-align:center;cursor:pointer;background:#0000000d;border:2px dashed #0000004d;border-radius:8px;padding:12px 16px;transition:all .3s;display:block}.file-label:hover{background:#ffffff26;border-color:#667eea}.view-container select,.view-container textarea{color:#000;background:#ffffff1a;border:2px solid #000;border-radius:8px;padding:12px 16px;font-size:1rem;transition:all .3s}.view-container select:focus,.view-container textarea:focus{background:#ffffff26;border-color:#667eea;outline:none}.view-container textarea{resize:vertical;font-family:inherit}.transaction-edit-panel{z-index:100;background:#fff;border-radius:12px;flex-direction:column;width:350px;padding:20px;display:flex;position:absolute;top:20px;bottom:20px;left:20px;overflow:auto;box-shadow:0 4px 20px #0003}.panel-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.panel-header h3{color:#333;margin:0;font-size:1.25rem}.close-button{cursor:pointer;color:#666;background:0 0;border:none;width:30px;height:30px;padding:0;font-size:24px;transition:color .2s}.panel-content{flex:1;overflow-y:auto}.form-field label{color:#333;margin-bottom:5px;font-size:.9rem;font-weight:500;display:block}.form-field input{border:1px solid #ddd;border-radius:6px;width:100%;padding:8px 12px;font-size:1rem;transition:border-color .2s}.form-field input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.panel-actions{border-top:1px solid #eee;flex-wrap:wrap;gap:10px;margin-top:20px;padding-top:20px;display:flex}.btn-create-repeating{color:#fff;cursor:pointer;background:#2196f3;border:none;border-radius:6px;flex:1 0 100%;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:.95rem;font-weight:500;transition:all .2s;display:flex}.btn-create-repeating:hover{background:#1976d2;transform:translateY(-1px);box-shadow:0 2px 8px #2196f34d}.btn-cancel-panel{color:#fff;cursor:pointer;background:#f44336;border:none;border-radius:6px;flex:1;padding:10px;font-size:1rem;font-weight:500;transition:background .2s}.btn-cancel-panel:hover{background:#da190b}@media (width<=768px){.transaction-edit-panel{width:calc(100% - 20px);max-width:350px;top:10px;bottom:10px;left:10px}}.login-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:40px;box-shadow:0 10px 40px #0003}.login-card h1{color:#2c3e50;text-align:center;margin-bottom:10px;font-size:2rem}.subtitle{color:#7f8c8d;text-align:center;margin-bottom:30px;font-size:.95rem}.login-form{flex-direction:column;gap:20px;display:flex}.error-message{color:#c33;background-color:#fee;border:1px solid #fcc;border-radius:6px;padding:12px;font-size:.9rem}.login-card{position:relative}.login-card .login-language{position:absolute;top:14px;right:14px}.coming-soon-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex;overflow-y:auto}.coming-soon-content{width:100%;max-width:1200px;animation:.6s ease-in fadeIn}.coming-soon-header{text-align:center;margin-bottom:3rem}.coming-soon-title{color:#fff;text-shadow:0 2px 20px #0003;margin:0 0 .5rem;font-size:3.5rem;font-weight:700}.coming-soon-tagline{color:#fffffff2;margin:0 0 1.5rem;font-size:1.5rem;font-weight:300}.status-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;text-transform:uppercase;letter-spacing:1px;background:#fff3;border:2px solid #ffffff4d;border-radius:50px;padding:.5rem 1.5rem;font-size:.9rem;font-weight:600;display:inline-block}.coming-soon-description{text-align:center;margin-bottom:3rem}.intro-text{color:#fffffff2;max-width:800px;margin:0 auto;font-size:1.2rem;line-height:1.8}.features-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:3rem;display:grid}.feature-card{background:#fffffff2;border-radius:12px;padding:2rem;transition:transform .3s,box-shadow .3s;box-shadow:0 10px 30px #0003}.feature-card:hover{transform:translateY(-5px);box-shadow:0 15px 40px #0000004d}.feature-icon{margin-bottom:1rem;font-size:3rem}.feature-card h3{color:#2c3e50;margin:0 0 .75rem;font-size:1.4rem;font-weight:600}.feature-card p{color:#555;margin:0;font-size:1rem;line-height:1.6}.beta-signup-section{justify-content:center;margin-bottom:2rem;display:flex}.beta-signup-card{text-align:center;background:#fffffffa;border-radius:16px;width:100%;max-width:600px;padding:3rem;box-shadow:0 20px 60px #0000004d}.beta-signup-card h2{color:#2c3e50;margin:0 0 1rem;font-size:2rem;font-weight:700}.beta-description{color:#555;margin:0 0 2rem;font-size:1.1rem;line-height:1.7}.beta-form{margin-bottom:1rem}.form-group-horizontal{gap:.75rem;margin-bottom:1rem;display:flex}.beta-email-input{border:2px solid #e0e0e0;border-radius:8px;flex:1;padding:1rem 1.25rem;font-size:1rem;transition:border-color .3s,box-shadow .3s}.beta-email-input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.beta-email-input:disabled{cursor:not-allowed;background:#f5f5f5}.btn-beta{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;padding:1rem 2rem;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s}.btn-beta:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.btn-beta:active:not(:disabled){transform:translateY(0)}.btn-beta:disabled{opacity:.6;cursor:not-allowed}.beta-message{border-radius:8px;padding:1rem;font-weight:500;animation:.3s slideIn}.beta-message.success{color:#155724;background:#d4edda;border:1px solid #c3e6cb}.beta-message.error{color:#721c24;background:#f8d7da;border:1px solid #f5c6cb}.beta-note{color:#777;margin:0;font-size:.9rem;font-style:italic}.coming-soon-footer{text-align:center;padding:2rem 0 1rem}.coming-soon-footer p{color:#ffffffe6;margin:0;font-size:1rem}.coming-soon-footer a{color:#fff;font-weight:600;text-decoration:underline}.coming-soon-footer a:hover{text-decoration:none}@media (width<=768px){.coming-soon-title{font-size:2.5rem}.coming-soon-tagline{font-size:1.2rem}.intro-text{font-size:1rem}.features-grid{grid-template-columns:1fr;gap:1rem}.feature-card{padding:1.5rem}.beta-signup-card{padding:2rem 1.5rem}.beta-signup-card h2{font-size:1.5rem}.form-group-horizontal{flex-direction:column;gap:.5rem}.btn-beta{width:100%}}@media (width<=480px){.coming-soon-container{padding:1rem .5rem}.coming-soon-title{font-size:2rem}.feature-card{padding:1.25rem}.feature-card h3{font-size:1.2rem}}.dashboard-container{background:#fff;flex-direction:column;width:100vw;height:100vh;display:flex}.dashboard-container .header{color:#0a0a0a;z-index:100;background:#fff;border-bottom:1px solid #ffffff1a;align-items:center;padding:15px 30px;display:flex;box-shadow:0 0 15px #0000001a}.header-title h1{color:#000;margin:0 0 0 20px;font-size:1.5rem}.header-brand{line-height:1}.header-brand-link{border-radius:6px;text-decoration:none;display:inline-flex}.header-brand-link:focus-visible{outline-offset:4px;outline:2px solid #667eea}.header-spacer{width:60px}.content-area{z-index:0;flex:1;position:relative;overflow:auto}.menu-toggle{color:#fff;cursor:pointer;background:#667eea33;border:1px solid #667eea4d;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;padding:0;font-size:1.5rem;transition:all .3s;display:flex}.menu-toggle:hover{background:#667eea4d}.menu-overlay{z-index:1000;background:#000000b3;animation:.2s fadeIn;position:fixed;inset:0}.menu-panel{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);flex-direction:column;width:320px;animation:.3s slideIn;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:2px 0 20px #00000080}.menu-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:20px;display:flex}.menu-header h3{color:#fff;margin:0;font-size:1.3rem}.menu-close{color:#fff;cursor:pointer;background:0 0;border:none;padding:5px 10px;font-size:1.5rem}.menu-user-info{border-bottom:1px solid #ffffff1a;align-items:center;gap:15px;padding:20px;display:flex}.user-avatar{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;font-size:1.5rem;font-weight:700;display:flex}.user-name{color:#fff;font-size:1.1rem;font-weight:600}.user-email{color:#fff9;font-size:.9rem}.menu-items{flex:1;padding:10px;overflow-y:auto}.menu-item{color:#fff;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:15px;width:100%;margin-bottom:5px;padding:15px 20px;font-size:1rem;transition:all .3s;display:flex}.menu-item:hover{background:#667eea33}.menu-icon{font-size:1.3rem}.menu-footer{border-top:1px solid #ffffff1a;padding:20px}.menu-logout{color:#ff6b6b;cursor:pointer;background:#dc354533;border:1px solid #dc35454d;border-radius:8px;width:100%;padding:12px;font-size:1rem;transition:all .3s}.menu-logout:hover{background:#dc35454d}.visualization{position:absolute;inset:0;overflow:hidden}.visualization-container{width:100vw;height:100vh;position:relative;overflow:hidden}.three-container{width:100%;height:100%}.header{z-index:10;background:linear-gradient(#000000b3,#0000);padding:20px 40px;position:relative;top:0;left:0;right:0}.user-info{color:#fff;justify-content:space-between;align-items:center;font-size:1.1rem;display:flex}.overlay-info{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;z-index:10;background:#000000b3;border-radius:12px;padding:20px 30px;position:absolute;bottom:40px;left:40px}.overlay-info h2{color:#fff;margin-bottom:10px;font-size:1.2rem}.overlay-info p{color:#fffc;margin:3px 0;font-size:1em}.axis-label{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:50;position:absolute}.y-axis-label{transform:translateY(-50%)}.x-axis-label{transform:translate(-50%)}.date-label{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:10;color:#666;text-shadow:0 0 1px 2px #ffffff80;white-space:nowrap;padding:2px 4px;font-size:11px;font-weight:700;position:absolute}.date-label-today{color:red;font-weight:700}.account-balance-label{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:10;white-space:nowrap;background:#ffffffe6;border:2px solid;border-radius:4px;padding:4px 8px;font-size:14px;font-weight:700;position:absolute;box-shadow:0 2px 4px #0003}.month-label{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:5;color:#ccc;white-space:nowrap;padding:0;font-size:18px;font-weight:700;position:absolute}.transaction-hover{color:#fff;pointer-events:none;z-index:100;white-space:nowrap;z-index:100;background:#000000d9;border-radius:8px;padding:6px;font-size:12px;position:absolute}.legend{z-index:100;background:#fff;border-radius:8px;min-width:180px;padding:10px;transition:all .3s;position:absolute;top:15px;right:15px;box-shadow:0 2px 8px #00000026}.legend.collapsed{min-width:auto}.legend .legend-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:2px 0;display:flex}.legend .legend-header:hover{opacity:.7}.legend .legend-title{color:#333;font-size:14px;font-weight:600}.legend .toggle-icon{color:#666;margin-left:8px;font-size:10px}.legend .legend-content{margin-top:10px}.legend .legend-item{border-radius:4px;align-items:center;margin-bottom:2px;padding:4px 6px;transition:background-color .2s;display:flex;position:relative}.legend .legend-item .legend-color-swatch{border-radius:2px;width:24px;height:3px;margin-right:8px;position:relative}.legend .legend-item:hover{background-color:#0000000d}.legend .legend-item.legend-item-hidden{opacity:.4;text-decoration:line-through}.legend .legend-item.legend-item-hovered{background-color:#667eea1a}.legend .legend-item.legend-item-total{cursor:default;border-top:1px solid #0000001a;margin-top:8px;padding-top:8px}.legend .legend-item.legend-item-total:hover{background-color:#0000}.curve-controls{z-index:100;background:#fffffff2;border-radius:8px;min-width:200px;padding:12px 16px;transition:all .3s;position:absolute;bottom:20px;left:20px;box-shadow:0 2px 8px #00000026}.curve-controls.collapsed{min-width:auto}.curve-controls .curve-controls-header{cursor:pointer;-webkit-user-select:none;user-select:none;color:#333;justify-content:space-between;align-items:center;padding:2px 0;font-size:14px;font-weight:600;display:flex}.curve-controls .curve-controls-header:hover{opacity:.7}.curve-controls .toggle-icon{color:#666;margin-left:8px;font-size:10px}.curve-controls .curve-controls-content{margin-top:12px}.curve-controls label{color:#666;margin-bottom:1px;font-size:12px;font-weight:600;display:block}.curve-controls input[type=range]{cursor:pointer;width:100%}.curve-controls .range-legend{color:#999;justify-content:space-between;margin-top:-4px;margin-bottom:10px;font-size:12px;display:flex}.curve-controls .range-legend:last-child{margin-bottom:0}.graph-message{text-align:center;background:#fffffff2;border-radius:8px;padding:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #00000026}.graph-message p{color:#666;margin:8px 0}.graph-message a{color:#2196f3;text-decoration:none}.graph-message a:hover{text-decoration:underline}.controls-info{color:#666;background:#ffffffe6;border-radius:8px;padding:12px 16px;font-size:12px;position:absolute;bottom:20px;right:20px}.controls-info div{margin:4px 0}.transaction-emoji-overlay{pointer-events:none;z-index:60;justify-content:center;align-items:center;font-size:18px;display:flex;position:absolute;transform:translate(-50%,-50%)}.grid-label{color:#666;pointer-events:none;background:#ffffffe6;border-radius:3px;padding:2px 6px;font-size:12px;font-weight:500}.legend-total{color:#666;font-weight:600}.legend-item span{color:#666}.view-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#000;background:#ffffff0d;border-radius:12px;max-width:800px;margin:40px auto;padding:30px}.view-container h2{color:#667eea;margin-top:0;margin-bottom:10px}.view-container>p{color:#000;margin-bottom:30px}.modal-close-x{color:#666;cursor:pointer;text-align:center;background:0 0;border:2px solid #0003;border-radius:50%;width:40px;height:40px;margin:0;padding:0 0 0 1px;font-family:Arial,sans-serif;font-size:2rem;font-weight:300;line-height:37px;transition:all .2s;position:absolute;top:20px;right:20px}.modal-close-x:hover{color:#dc3545;background:#dc35451a;border-color:#dc3545}.modal-close-x:active{transform:scale(.95)}.message{border-radius:8px;margin-top:20px;padding:12px 16px}.message.success{color:#81c784;background:#4caf5033;border:1px solid #4caf5066}.message.error{color:#e57373;background:#f4433633;border:1px solid #f4433666}.csv-format-info{background:#667eea1a;border-left:4px solid #667eea;border-radius:8px;margin-top:30px;padding:20px}.csv-format-info h3{color:#667eea;margin-top:0}.csv-format-info code{color:#81c784;background:#0000004d;border-radius:4px;margin-top:10px;padding:10px;font-family:Courier New,monospace;display:block}.profile-info{align-items:flex-start;gap:30px;margin-top:30px;display:flex}.profile-avatar{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:100px;height:100px;font-size:3rem;font-weight:700;display:flex}.profile-details{flex:1}.profile-field{margin-bottom:20px}.profile-field label{color:#fff9;margin-bottom:5px;font-size:.9rem;display:block}.profile-field div{color:#fff;font-size:1.1rem}.change-password-form{border-top:1px solid #0000001a;max-width:420px;margin-top:40px;padding-top:30px}.change-password-form h3{color:#667eea;margin-bottom:20px}.change-password-form .message{margin-top:15px}.settings-section{background:#ffffff0d;border-radius:8px;margin-bottom:20px;padding:20px}.settings-section h3{color:#fff;margin-top:0}.settings-section p{color:#ffffffb3;margin:0}@media (width<=768px){.login-card{margin:20px;padding:30px 20px}.dashboard-container .header{flex-wrap:wrap;gap:8px 12px;padding:10px 16px}.header-title{flex:auto;gap:12px;min-width:0}.header-title h1{margin-left:0;font-size:1.2rem}.header-brand .brand-logo{font-size:1.15rem}.dashboard-container .sync-controls{padding:0}.menu-panel{width:280px}.view-container{margin:20px;padding:20px}.profile-info{text-align:center;flex-direction:column;align-items:center}.overlay-info{color:#fff;background:#00000080;border-radius:8px;padding:15px 20px;position:fixed;bottom:20px;left:20px;right:20px}}@media (width<=480px){.header-brand .brand-logo-name{display:none}}.language-switcher{border:1px solid #c9cce0;border-radius:999px;flex-shrink:0;display:inline-flex;overflow:hidden}.language-switcher button{color:#555;font:inherit;cursor:pointer;background:#fff;border:none;padding:4px 10px;font-size:.8rem;font-weight:600}.language-switcher button.active{color:#fff;background:#667eea}.language-switcher button:focus-visible{outline-offset:-2px;outline:2px solid #667eea}.brand-logo{color:#116149;letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:.4em;font-weight:700;line-height:1;display:inline-flex}.brand-logo-icon{flex-shrink:0;width:1.5em;height:1.5em}.brand-logo-md{font-size:1.4rem}.brand-logo-lg{font-size:2rem}.sync-controls{align-items:center;gap:16px;padding:8px 16px;display:flex}.last-sync-info{flex-direction:column;align-items:flex-end;margin-right:8px;font-size:12px;display:flex}.last-sync-label{color:#666;font-weight:500}.last-sync-time{color:#333;font-weight:600}.btn-sync,.btn-logout{cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600;transition:all .2s}.btn-sync{color:#fff;background-color:#4caf50}.btn-sync:hover:not(.disabled){background-color:#45a049;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.btn-sync.disabled{color:#666;cursor:not-allowed;background-color:#ccc}.btn-logout{color:#fff;background-color:#f44336}.btn-logout:hover{background-color:#da190b;transform:translateY(-1px);box-shadow:0 2px 4px #0003}@media (width<=768px){.sync-controls{gap:8px;padding:6px 12px}.last-sync-info{margin-right:4px;font-size:11px}.btn-sync,.btn-logout{padding:6px 12px;font-size:13px}}.detection-dialog-overlay{z-index:1100;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.detection-dialog{background:#fff;border-radius:12px;flex-direction:column;width:100%;max-width:760px;max-height:90vh;display:flex;box-shadow:0 20px 60px #0000004d}.detection-dialog-header{border-bottom:1px solid #e5e5e5;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.detection-dialog-header h2{color:#333;margin:0;font-size:22px}.close-button{color:#999;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:32px;transition:all .2s;display:flex}.close-button:hover{color:#333;background:#f5f5f5}.detection-dialog-content{background:#f7f8fb;flex:1;padding:20px 24px;overflow-y:auto}.dialog-subtitle{color:#666;margin:0 0 16px;font-size:14px}.detection-dialog .pattern-card{background:#fff;border:1px solid #e3e5ec;border-radius:10px;margin-bottom:16px;padding:18px 20px;box-shadow:0 1px 2px #1018280a}.detection-dialog .pattern-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.detection-dialog .pattern-info{min-width:0}.detection-dialog .pattern-info h4{color:#222;overflow-wrap:anywhere;margin:0;font-size:16px;font-weight:600}.detection-dialog .pattern-meta-row{color:#555;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;font-size:13px;display:flex}.detection-dialog .pattern-amount{color:#222;white-space:nowrap;font-size:18px;font-weight:700}.detection-dialog .meta-badge{color:#555;background:#f1f2f6;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.detection-dialog .meta-badge.type-expense{color:#a12a2a;background:#fdecec}.detection-dialog .meta-badge.type-income{color:#1d6b3c;background:#e7f5ec}.detection-dialog .meta-badge.category-badge{color:#8a4b00;background:#fff3e0}.detection-dialog .change-badge{letter-spacing:.4px;text-transform:uppercase;border-radius:4px;margin-bottom:6px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.detection-dialog .change-badge.change-new{color:#3d4fc4;background:#eef0fd}.detection-dialog .change-badge.change-improve{color:#8a4b00;background:#fff3e0}.detection-dialog .change-badge.change-associate{color:#1d6b3c;background:#e7f5ec}.detection-dialog .pattern-rule-change{flex-direction:column;gap:4px;display:flex}.detection-dialog .pattern-rule-current{color:#666;margin:0;font-size:13px}.detection-dialog .pattern-attach{color:#1d6b3c;margin:0;font-size:13px;font-weight:600}.detection-dialog .pattern-warning{color:#5c4300;background:#fff9e8;border:1px solid #f0d68a;border-left-width:4px;border-radius:6px;margin:0 0 12px;padding:10px 12px;font-size:13px}.detection-dialog .pattern-summary{background:#f7f8fb;border-radius:8px;flex-direction:column;gap:8px;margin:14px 0;padding:12px 14px;display:flex}.detection-dialog .pattern-rule{color:#333;margin:0;font-size:14px;font-weight:500}.detection-dialog .pattern-confidence-row{color:#555;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13px;display:flex}.detection-dialog .confidence-badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:baseline;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.detection-dialog .confidence-badge .confidence-value{font-size:13px;font-weight:700}.detection-dialog .confidence-badge.level-high{color:#1d6b3c;background:#e7f5ec;border-color:#a8d8b9}.detection-dialog .confidence-badge.level-medium{color:#7a5600;background:#fff6dd;border-color:#f0d68a}.detection-dialog .confidence-badge.level-low{color:#a12a2a;background:#fdecec;border-color:#f2b8b8}.detection-dialog .pattern-matched+.pattern-matched:before{content:"·";color:#aaa;margin-right:12px}.detection-dialog .pattern-upcoming{color:#555;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.detection-dialog .pattern-upcoming ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.detection-dialog .pattern-upcoming li{color:#333;white-space:nowrap;background:#fff;border:1px solid #e3e5ec;border-radius:6px;padding:2px 8px}.detection-dialog .pattern-fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 16px;margin-bottom:12px;display:grid}.detection-dialog .field-group{flex-direction:column;min-width:0;display:flex}.detection-dialog .field-group.field-wide{grid-column:1/-1}.detection-dialog .field-group label{color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:12px;font-weight:600}.detection-dialog .field-group input,.detection-dialog .field-group select{background:#fff;border:1px solid #ddd;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:14px;transition:border-color .2s}.detection-dialog .field-group input:focus,.detection-dialog .field-group select:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 2px #667eea33}.detection-dialog .field-hint{color:#777;margin-top:4px;font-size:12px}.detection-dialog .custom-config-fields{background:#f9f9f9;border:1px solid #e5e5e5;border-radius:6px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 16px;margin-bottom:12px;padding:12px;display:grid}.detection-dialog .pattern-history{border-top:1px solid #eceef3;margin-bottom:12px;padding-top:12px}.detection-dialog .pattern-history h5{color:#666;text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px;font-size:12px;font-weight:600}.detection-dialog .pattern-history-count{color:#999;font-weight:500}.detection-dialog .pattern-history-list{margin:0;padding:0;list-style:none}.detection-dialog .pattern-history-list li{color:#333;border-bottom:1px dashed #eceef3;justify-content:space-between;align-items:baseline;gap:12px;padding:5px 0;font-size:13px;display:flex}.detection-dialog .pattern-history-list li:last-child{border-bottom:none}.detection-dialog .history-date{min-width:0}.detection-dialog .history-shift{color:#777}.detection-dialog .history-outlier{color:#7a5600;white-space:nowrap;border:1px dashed #c9a227;border-radius:4px;margin-left:8px;padding:0 6px;font-size:11px}.detection-dialog .history-attached{color:#888;white-space:nowrap;margin-left:8px;font-size:11px}.detection-dialog .pattern-history-list li.is-outlier time{color:#7a5600}.detection-dialog .history-description{color:#888;overflow-wrap:anywhere;font-size:12px;display:block}.detection-dialog .history-amount{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.detection-dialog .pattern-history-toggle{color:#4c5fd5;font:inherit;cursor:pointer;background:0 0;border:none;margin-top:6px;padding:4px 0;font-size:13px;font-weight:600}.detection-dialog .pattern-history-toggle:hover{text-decoration:underline}.detection-dialog .pattern-history-toggle:focus-visible{outline-offset:2px;outline:2px solid #667eea}.pattern-actions{justify-content:flex-end;display:flex}.btn-create{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .2s}.btn-create:hover:not(:disabled){background:#5568d3;transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.btn-create:disabled{opacity:.6;cursor:not-allowed}.detection-dialog .pattern-card.submitted-success{background:linear-gradient(135deg,#e8f5e9 0%,#f1f8f4 100%);border-color:#4caf50}.success-message-full{align-items:center;gap:16px;display:flex}.success-icon{color:#fff;background:#4caf50;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;font-weight:700;display:flex}.success-text h4{color:#2e7d32;margin:0 0 4px;font-size:16px;font-weight:600}.success-text p{color:#555;margin:0;font-size:14px}.detection-dialog-footer{border-top:1px solid #e5e5e5;justify-content:flex-end;padding:16px 24px;display:flex}.btn-close-primary,.btn-close-secondary{cursor:pointer;border:none;border-radius:6px;padding:10px 24px;font-size:14px;font-weight:600;transition:all .2s}.btn-close-primary{color:#fff;background:#667eea}.btn-close-primary:hover{background:#5568d3}.btn-close-secondary{color:#666;background:#f5f5f5}.btn-close-secondary:hover{background:#e5e5e5}.toast-notification{z-index:2000;color:#333;background:#fff;border-radius:8px;padding:20px 32px;font-size:16px;animation:3s ease-in-out fadeInOut;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 24px #0003}@keyframes fadeInOut{0%,to{opacity:0;transform:translate(-50%,-50%)scale(.9)}10%,90%{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (width<=600px){.detection-dialog-overlay{padding:8px}.detection-dialog{max-height:96vh}.detection-dialog-header,.detection-dialog-content,.detection-dialog-footer{padding-left:14px;padding-right:14px}.detection-dialog .pattern-card{padding:14px}.detection-dialog .pattern-header{flex-direction:column;gap:6px}.detection-dialog .pattern-actions .btn-create{width:100%}}.header-title{align-items:center;gap:16px;display:flex}.btn-detect-repeating{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600;transition:all .2s}.btn-detect-repeating:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-detect-repeating:disabled{opacity:.6;cursor:not-allowed}.toast-notification{z-index:2000;color:#333;background:#fff;border-radius:8px;padding:20px 32px;font-size:16px;font-weight:500;animation:3s ease-in-out fadeInOut;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 24px #0003}.repeating-transaction-dialog-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1100;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.repeating-transaction-dialog{background:#fff;border-radius:12px;flex-direction:column;width:100%;max-width:600px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 8px 32px #0000004d}.dialog-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:24px 24px 16px;display:flex}.dialog-header h2{color:#333;margin:0;font-size:1.5rem;font-weight:600}.close-button{cursor:pointer;color:#666;background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:28px;transition:color .2s;display:flex}.close-button:hover{color:#f44336}.dialog-content{flex:1;padding:24px;overflow-y:auto}.form-field,.amount-section{margin-bottom:20px}.section-label{color:#333;margin-bottom:8px;font-size:.95rem;font-weight:600;display:block}.amount-tabs{border-bottom:2px solid #e0e0e0;gap:0;margin-bottom:16px;display:flex}.amount-tab{color:#666;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;flex:1;padding:12px 20px;font-size:.95rem;font-weight:500;transition:all .2s;position:relative;bottom:-2px}.amount-tab:hover{color:#333;background:#f5f5f5}.amount-tab.active{color:#2196f3;border-bottom-color:#2196f3;font-weight:600}.amount-content{margin-top:8px}.amount-range-fields{grid-template-columns:1fr 1fr;gap:16px;display:grid}.amount-range-fields .money-input-field{margin-bottom:0}.rule-settings-fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}@media (width<=768px){.amount-range-fields{grid-template-columns:1fr;gap:12px}}.form-field label{color:#333;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:.9rem;font-weight:600;display:flex}.field-hint{color:#999;font-size:.75rem;font-style:italic;font-weight:400}.form-field input,.form-field select{border:1px solid #ddd;border-radius:6px;width:100%;padding:10px 12px;font-family:inherit;font-size:1rem;transition:all .2s}.form-field input:focus,.form-field select:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 3px #2196f31a}.readonly-field{color:#666;background:#f5f5f5;border-radius:6px;padding:10px 12px;font-size:1rem}.matching-transactions-section{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin:24px 0;padding:20px}.matching-transactions-section h3{color:#333;margin:0 0 8px;font-size:1.1rem;font-weight:600}.matching-transactions-hint{color:#666;margin-bottom:16px;font-size:.85rem;line-height:1.4}.matching-transactions-list{background:#fff;border:1px solid #e0e0e0;border-radius:6px;max-height:200px;overflow-y:auto}.matching-transaction-item{border-bottom:1px solid #f0f0f0;grid-template-columns:110px 1fr 100px;align-items:center;gap:12px;padding:12px;display:grid}.matching-transaction-item:last-child{border-bottom:none}.matching-transaction-item:hover{background:#f5f5f5}.tx-date{color:#666;font-size:.85rem;font-weight:500}.tx-description{color:#333;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.tx-amount{color:#333;text-align:right;font-size:.9rem;font-weight:600}.loading,.no-matches{text-align:center;color:#999;padding:24px;font-size:.9rem}.dialog-actions{background:#fafafa;border-top:1px solid #eee;gap:12px;padding:20px 24px;display:flex}.btn-save{color:#fff;cursor:pointer;background:#2196f3;border:none;border-radius:6px;flex:1;padding:12px 24px;font-size:1rem;font-weight:600;transition:all .2s}.btn-save:hover{background:#1976d2;transform:translateY(-1px);box-shadow:0 4px 12px #2196f34d}.btn-cancel{color:#666;cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;padding:12px 24px;font-size:1rem;font-weight:500;transition:all .2s}.btn-cancel:hover{color:#333;background:#f5f5f5;border-color:#999}@media (width<=768px){.repeating-transaction-dialog{max-width:100%;max-height:95vh;margin:10px}.matching-transaction-item{grid-template-columns:90px 1fr 80px;gap:8px;padding:10px}.tx-date{font-size:.75rem}.tx-description,.tx-amount{font-size:.85rem}}.money-input-field{margin-bottom:16px}.money-input-field label{color:#333;margin-bottom:6px;font-size:.95rem;font-weight:500;display:block}.money-input-field label .required-indicator{color:#d32f2f;margin-left:4px}.money-input-field label .field-hint{color:#666;margin-top:2px;font-size:.85rem;font-weight:400;display:block}.money-input-wrapper{background:#fff;border:1px solid #ddd;border-radius:6px;align-items:center;transition:all .2s;display:flex;overflow:hidden}.money-input-wrapper.focused{border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.money-input-wrapper:hover:not(.focused){border-color:#999}.currency-symbol{color:#666;-webkit-user-select:none;user-select:none;background:#f5f5f5;align-items:center;height:100%;padding:0 12px;font-size:1rem;font-weight:600;display:flex}.currency-symbol.currency-before{border-right:1px solid #e0e0e0}.currency-symbol.currency-after{border-left:1px solid #e0e0e0}.money-input{text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;flex:1;padding:10px 16px;font-family:SF Mono,Monaco,Inconsolata,Courier New,monospace;font-size:1rem}.money-input::placeholder{color:#aaa;text-align:right}.money-input:focus{outline:none}.money-input:not(:placeholder-shown){color:#333;font-weight:500}.money-input-field.error .money-input-wrapper{border-color:#d32f2f}.money-input-field.error .money-input-wrapper.focused{box-shadow:0 0 0 3px #d32f2f1a}.money-input:disabled{color:#999;cursor:not-allowed;background-color:#f5f5f5}.money-input-wrapper:has(.money-input:disabled){cursor:not-allowed;background-color:#f5f5f5}.money-input-wrapper:has(.money-input:disabled) .currency-symbol{color:#999}@media (width<=768px){.money-input{font-size:16px}}.text-input-field{margin-bottom:16px}.text-input-field label{color:#333;margin-bottom:6px;font-size:.95rem;font-weight:500;display:block}.text-input-field label .required-indicator{color:#d32f2f;margin-left:4px}.text-input-field label .field-hint{color:#666;margin-top:2px;font-size:.85rem;font-weight:400;display:block}.text-input{box-sizing:border-box;border:1px solid #ddd;border-radius:6px;width:100%;padding:10px 16px;font-size:1rem;transition:all .2s}.text-input:hover:not(:disabled):not(:focus){border-color:#999}.text-input:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 3px #2196f31a}.text-input::placeholder{color:#aaa}.text-input:disabled{color:#999;cursor:not-allowed;background-color:#f5f5f5}.readonly-field{color:#666;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:10px 16px;font-size:1rem}.text-input-field.error .text-input{border-color:#d32f2f}.text-input-field.error .text-input:focus{box-shadow:0 0 0 3px #d32f2f1a}@media (width<=768px){.text-input{font-size:16px}}.select-input-field{margin-bottom:16px}.select-input-field label{color:#333;margin-bottom:6px;font-size:.95rem;font-weight:500;display:block}.select-input-field label .required-indicator{color:#d32f2f;margin-left:4px}.select-input-field label .field-hint{color:#666;margin-top:2px;font-size:.85rem;font-weight:400;display:block}.select-wrapper{position:relative}.select-input{cursor:pointer;appearance:none;box-sizing:border-box;background:#fff;border:1px solid #ddd;border-radius:6px;width:100%;padding:10px 40px 10px 16px;font-size:1rem;transition:all .2s}.select-input:hover:not(:disabled){border-color:#999}.select-input:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 3px #2196f31a}.select-input:disabled{color:#999;cursor:not-allowed;background-color:#f5f5f5}.select-arrow{pointer-events:none;color:#666;font-size:.7rem;transition:transform .2s;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.select-input:focus+.select-arrow{transform:translateY(-50%)rotate(180deg)}.select-input:disabled+.select-arrow{color:#999}.select-input-field.error .select-input{border-color:#d32f2f}.select-input-field.error .select-input:focus{box-shadow:0 0 0 3px #d32f2f1a}@media (width<=768px){.select-input{font-size:16px}}.date-input-field{margin-bottom:16px}.date-input-field label{color:#333;margin-bottom:6px;font-size:.95rem;font-weight:500;display:block}.date-input-field label .required-indicator{color:#d32f2f;margin-left:4px}.date-input-field label .field-hint{color:#666;margin-top:2px;font-size:.85rem;font-weight:400;display:block}.date-input{box-sizing:border-box;cursor:pointer;border:1px solid #ddd;border-radius:6px;width:100%;padding:10px 16px;font-size:1rem;transition:all .2s}.date-input:hover:not(:disabled){border-color:#999}.date-input:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 3px #2196f31a}.date-input:disabled{color:#999;cursor:not-allowed;background-color:#f5f5f5}.date-input-field.error .date-input{border-color:#d32f2f}.date-input-field.error .date-input:focus{box-shadow:0 0 0 3px #d32f2f1a}.error-message{color:#d32f2f;margin-top:4px;font-size:.85rem;display:block}@media (width<=768px){.date-input{font-size:16px}}.connect-bank{flex-direction:column;justify-content:center;align-items:center;min-height:200px;padding:20px;display:flex}.connect-bank-loading{text-align:center;padding:40px 20px}.connect-bank-loading .spinner{border:4px solid #f3f3f3;border-top-color:#4caf50;border-radius:50%;width:40px;height:40px;margin:0 auto 20px;animation:1s linear infinite spin}.connect-bank-loading p{color:#666;margin:0;font-size:14px}.connect-bank-error{text-align:center;background:#fff3f3;border:1px solid #ffcdd2;border-radius:8px;max-width:400px;padding:20px}.error-message{color:#d32f2f;margin:0 0 15px;font-size:14px}.btn-retry{color:#fff;cursor:pointer;background:#4caf50;border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:500;transition:background .2s}.btn-retry:hover{background:#45a049}.btn-retry:active{transform:scale(.98)}.link-existing-account{max-width:700px;margin:0 auto;padding:20px}.link-header{text-align:center;margin-bottom:20px}.link-header h3{color:#333;margin:0 0 6px;font-size:20px}.link-header p{color:#666;margin:0;font-size:13px}.link-error{text-align:center;background:#fff3f3;border:1px solid #ffcdd2;border-radius:6px;margin-bottom:15px;padding:10px 15px}.link-error p{color:#d32f2f;margin:0;font-size:13px}.link-warning{text-align:center;background:#fff8e1;border:1px solid #ffe082;border-radius:6px;margin-bottom:15px;padding:10px 15px}.link-warning p{color:#f57f17;margin:0;font-size:13px}.accounts-checklist{flex-direction:column;gap:4px;margin-bottom:20px;display:flex}.checklist-item{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:12px;padding:10px 14px;transition:all .15s;display:flex}.checklist-item:hover{border-color:#bbb}.checklist-item.selected{background:#f6faf7;border-color:#4caf50}.checklist-item.low-priority{opacity:.6}.checklist-item.low-priority.selected{opacity:1}.checklist-item input[type=checkbox]{accent-color:#4caf50;flex-shrink:0;width:18px;height:18px}.checklist-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.checklist-name{color:#333;font-size:14px;font-weight:600}.checklist-official{color:#888;font-size:11px}.checklist-meta{align-items:center;gap:8px;display:flex}.checklist-meta .mask{color:#666;font-family:monospace;font-size:11px}.checklist-meta .type{color:#1976d2;text-transform:capitalize;background:#e3f2fd;border-radius:3px;padding:1px 6px;font-size:10px}.checklist-balance{color:#4caf50;white-space:nowrap;font-size:14px;font-weight:600}.link-list{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.link-row{background:#fff;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:12px;padding:10px 14px;transition:all .15s;display:flex}.link-row.linked{background:#f6faf7;border-color:#4caf50}.link-row-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.link-row-name{color:#333;font-size:14px;font-weight:600}.link-row-official{color:#888;font-size:11px}.link-row-meta{align-items:center;gap:8px;display:flex}.link-row-meta .mask{color:#666;font-family:monospace;font-size:11px}.link-row-meta .type{color:#1976d2;text-transform:capitalize;background:#e3f2fd;border-radius:3px;padding:1px 6px;font-size:10px}.link-row-balance{color:#4caf50;font-size:13px;font-weight:600}.link-row-action{flex-shrink:0;min-width:200px}.link-row-action .account-select{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;width:100%;padding:6px 8px;font-size:13px}.link-row-action .account-select:hover{border-color:#4caf50}.link-row-action .account-select:focus{border-color:#4caf50;outline:none;box-shadow:0 0 0 2px #4caf5026}.linked-to-compact{background:#e8f5e9;border:1px solid #c8e6c9;border-radius:4px;align-items:center;gap:8px;padding:4px 8px;display:flex}.linked-to-compact .linked-name{color:#333;flex:1;font-size:13px;font-weight:500}.btn-unlink{color:#fff;cursor:pointer;background:#f44336;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;transition:background .2s;display:flex}.btn-unlink:hover{background:#d32f2f}.btn-unlink:disabled{opacity:.5;cursor:not-allowed}.link-footer{border-top:1px solid #e0e0e0;justify-content:space-between;align-items:center;padding-top:16px;display:flex}.link-summary p{color:#666;margin:0;font-size:13px}.link-actions-footer{gap:10px;display:flex}.btn-skip,.btn-submit{cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s}.btn-skip{color:#666;background:#f5f5f5}.btn-skip:hover{background:#e0e0e0}.btn-submit{color:#fff;background:#4caf50}.btn-submit:hover{background:#45a049}.btn-submit:disabled,.btn-skip:disabled{opacity:.5;cursor:not-allowed}.date-range-picker{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px}.picker-header{margin-bottom:20px}.picker-header h4{color:#333;margin:0 0 5px;font-size:18px;font-weight:600}.picker-header p{color:#666;margin:0;font-size:14px}.preset-options{flex-wrap:wrap;gap:10px;margin-bottom:25px;display:flex}.preset-btn{cursor:pointer;color:#666;background:#fff;border:2px solid #e0e0e0;border-radius:6px;flex:1;min-width:100px;padding:12px 20px;font-size:14px;font-weight:500;transition:all .2s}.preset-btn:hover{color:#4caf50;border-color:#4caf50}.preset-btn.active{color:#fff;background:#4caf50;border-color:#4caf50}.preset-btn.outline-active{color:#4caf50;border-color:#4caf50}.preset-btn:active{transform:scale(.98)}.custom-range{background:#f9f9f9;border-radius:6px;margin-bottom:20px;padding:20px}.custom-header{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.custom-header span:first-child{color:#333;font-size:14px;font-weight:600}.max-note{color:#999;font-size:12px}.custom-inputs{grid-template-columns:1fr 1fr auto;align-items:end;gap:15px;display:grid}@media (width<=600px){.custom-inputs{grid-template-columns:1fr}}.input-group{flex-direction:column;gap:5px;display:flex}.input-group label{color:#666;font-size:13px;font-weight:500}.input-group input[type=date]{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;padding:10px;font-size:14px;transition:border-color .2s}.input-group input[type=date]:hover{border-color:#4caf50}.input-group input[type=date]:focus{border-color:#4caf50;outline:none;box-shadow:0 0 0 3px #4caf501a}.btn-apply{color:#fff;cursor:pointer;background:#4caf50;border:none;border-radius:6px;height:42px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s}.btn-apply:hover{background:#45a049}.btn-apply:disabled{opacity:.5;cursor:not-allowed}.btn-apply.active{background:#2e7d32}.btn-apply:active{transform:scale(.98)}.picker-info{background:#e3f2fd;border-left:4px solid #2196f3;border-radius:6px;padding:12px}.picker-info p{color:#1565c0;margin:0;font-size:13px;line-height:1.5}.sync-status{text-align:center;background:#fff;border-radius:8px;max-width:500px;margin:0 auto;padding:30px}.sync-header h3{color:#333;margin:0 0 20px;font-size:20px;font-weight:600}.sync-progress{padding:20px 0}.progress-bar{background:#f0f0f0;border-radius:4px;width:100%;height:8px;margin-bottom:15px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#4caf50,#66bb6a);border-radius:4px;height:100%;transition:width .4s;position:relative;overflow:hidden}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff73,#0000);width:60%;height:100%;animation:1.8s ease-in-out infinite shimmer;position:absolute;top:0;left:-60%}@keyframes shimmer{0%{left:-60%}to{left:110%}}.progress-meta{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.progress-message{color:#666;min-width:0;margin:0;font-size:14px}.elapsed-time{color:#bbb;white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:12px;font-size:12px}.progress-accounts{margin-bottom:8px}.progress-counter{color:#4caf50;font-size:13px;font-weight:600}.progress-running-stats{color:#999;justify-content:center;gap:12px;margin-bottom:20px;font-size:12px;display:flex}.spinner{border:3px solid #f3f3f3;border-top-color:#4caf50;border-radius:50%;width:40px;height:40px;margin:0 auto;animation:1s linear infinite spin}.sync-completed{padding:20px 0}.success-icon{color:#fff;background:#4caf50;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 20px;font-size:32px;animation:.3s scaleIn;display:flex}@keyframes scaleIn{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}.success-message{color:#4caf50;margin:0 0 25px;font-size:16px;font-weight:600}.sync-stats{background:#f9f9f9;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:20px;padding:20px;display:grid}.stat-item{flex-direction:column;gap:5px;display:flex}.stat-value{color:#4caf50;font-size:28px;font-weight:700}.stat-label{color:#666;text-transform:uppercase;letter-spacing:.5px;font-size:12px}.sync-error{padding:20px 0}.error-icon{color:#fff;background:#f44336;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 20px;font-size:32px;animation:.5s shake;display:flex}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.error-message{color:#f44336;margin:0 0 10px;font-size:16px;font-weight:600}.error-details{color:#666;background:#fff3f3;border:1px solid #ffcdd2;border-radius:6px;margin:0 0 25px;padding:15px;font-size:14px}.sync-actions,.error-actions{justify-content:center;gap:10px;margin-top:25px;display:flex}.btn-cancel,.btn-close{cursor:pointer;border:none;border-radius:6px;padding:10px 24px;font-size:14px;font-weight:500;transition:all .2s}.btn-close{color:#fff;background:#4caf50}.btn-close:hover{background:#45a049}.btn-cancel:active,.btn-close:active{transform:scale(.98)}.settings-container{max-width:800px;margin:0 auto;padding:30px}.settings-container h2{color:#333;margin-bottom:30px}.settings-section{background:#fff;border-radius:8px;margin-bottom:24px;padding:24px;box-shadow:0 2px 8px #0000001a}.settings-section h3{color:#333;margin-top:0;margin-bottom:12px}.settings-description{color:#666;margin-bottom:20px;line-height:1.5}.btn-recategorize{color:#fff;cursor:pointer;background:#4caf50;border:none;border-radius:6px;padding:12px 24px;font-size:14px;font-weight:500;transition:background .2s}.btn-recategorize:hover:not(:disabled){background:#45a049}.btn-recategorize:disabled{cursor:not-allowed;background:#ccc}.result-box{border-left:4px solid;border-radius:6px;margin-top:20px;padding:16px}.result-box.success{background:#f0f9f0;border-color:#4caf50}.result-box.error{background:#fff0f0;border-color:#f44336}.result-box h4{margin-top:0;margin-bottom:12px}.result-box ul{margin:0;padding-left:20px}.result-box li{margin-bottom:6px}.error-item{color:#f44336;font-weight:500}.info-grid{gap:16px;display:grid}.info-item{flex-direction:column;gap:4px;display:flex}.info-item label{color:#666;font-size:14px;font-weight:500}.info-item div{color:#333}.transactions-list-container{max-width:1400px;margin:0 auto;padding:30px}.transactions-list-container h2{color:#333;margin-bottom:20px}.transactions-table{border-collapse:collapse;width:100%}.transactions-table thead{background:#f5f5f5}.transactions-table th{text-align:left;color:#666;border-bottom:2px solid #ddd;padding:12px 16px;font-weight:600}.transactions-table td{border-bottom:1px solid #eee;padding:12px 16px}.transactions-table tbody tr:hover{background:#f9f9f9}.transactions-table input,.transactions-table select{border:1px solid #ddd;border-radius:4px;width:100%;padding:6px 8px;font-size:14px}.amount-positive{color:#4caf50;text-align:end;font-weight:500}.amount-negative{color:#f44336;text-align:end;font-weight:500}.btn-edit,.btn-delete,.btn-save,.btn-cancel{cursor:pointer;border:none;border-radius:4px;margin-right:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:background .2s}.filters-container{background:#fff;border-radius:8px;margin-bottom:20px;padding:20px;box-shadow:0 2px 8px #0000001a}.filters-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end;gap:16px;display:grid}.filter-group{flex-direction:column;display:flex}.filter-group label{color:#666;margin-bottom:6px;font-size:13px;font-weight:500}.filter-group input,.filter-group select{border:1px solid #ddd;border-radius:4px;padding:8px 12px;font-size:14px;transition:border-color .2s}.filter-group input:focus,.filter-group select:focus{border-color:#667eea;outline:none}.filter-actions{flex-direction:column;gap:8px;display:flex}.btn-reset{color:#fff;cursor:pointer;background:#ff9800;border:none;border-radius:4px;padding:8px 16px;font-size:14px;font-weight:500;transition:background .2s}.btn-reset:hover{background:#f57c00}.filter-count{color:#666;text-align:center;padding:4px 0;font-size:13px}@media (width<=768px){.filters-row{grid-template-columns:1fr}}.accounts-list-container{max-width:1200px;margin:0 auto;padding:30px}.accounts-list-container h2{color:#333;margin-bottom:20px}.table-container{background:#fff;border-radius:8px;overflow-x:auto;box-shadow:0 2px 8px #0000001a}.accounts-table{border-collapse:collapse;width:100%}.accounts-table thead{background:#f5f5f5}.accounts-table th{text-align:left;color:#666;border-bottom:2px solid #ddd;padding:12px 16px;font-weight:600}.accounts-table td{border-bottom:1px solid #eee;padding:12px 16px}.accounts-table tbody tr:hover{background:#f9f9f9}.accounts-table input,.accounts-table select{border:1px solid #ddd;border-radius:4px;width:100%;padding:6px 8px;font-size:14px}.balance-positive{color:#4caf50;text-align:end;font-weight:500}.balance-negative{color:#f44336;font-weight:500}.btn-edit,.btn-delete,.btn-save,.btn-cancel,.btn-hide,.btn-show{cursor:pointer;border:none;border-radius:4px;margin-right:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:background .2s}.btn-edit{color:#fff;background:#2196f3}.btn-edit:hover{background:#1976d2}.btn-delete{color:#fff;background:#f44336}.btn-delete:hover{background:#d32f2f}.btn-save{color:#fff;background:#4caf50}.btn-save:hover{background:#45a049}.btn-cancel{color:#fff;background:#999}.btn-cancel:hover{background:#777}.btn-hide{color:#fff;background:#ff9800}.btn-hide:hover{background:#f57c00}.btn-show{color:#fff;background:#4caf50}.btn-show:hover{background:#45a049}.accounts-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.accounts-empty-state{text-align:center;background:#fff;border-radius:8px;padding:60px 20px;box-shadow:0 2px 8px #0000001a}.accounts-empty-state .empty-state-icon{margin-bottom:12px;font-size:3rem}.accounts-empty-state h3{color:#333;margin:0 0 8px;font-size:1.4rem}.accounts-empty-state>p{color:#666;max-width:400px;margin:0 auto 24px}.empty-state-cta{padding:12px 28px;font-size:1.1rem}.plaid-notice{color:#999;margin-top:16px;font-size:.8rem}.plaid-notice a{color:#2196f3;text-decoration:none}.plaid-notice a:hover{text-decoration:underline}.loading,.error{text-align:center;padding:40px;font-size:16px}.error{color:#f44336}.link-bank-modal{max-width:500px}.link-bank-modal h3{margin-top:0;margin-bottom:16px}.link-bank-hint{color:#666;margin-bottom:12px}.link-bank-group{margin-bottom:12px}.link-bank-institution{color:#333;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:.9em;font-weight:600}.link-bank-account-card{cursor:pointer;text-align:left;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;justify-content:space-between;align-items:center;width:100%;margin-bottom:6px;padding:12px 16px;font-size:14px;transition:background .15s,border-color .15s;display:flex}.link-bank-account-card:hover:not(:disabled){background:#e8f4fd;border-color:#2196f3}.link-bank-account-card:disabled{opacity:.5;cursor:not-allowed}.link-bank-account-info{flex-direction:column;gap:2px;display:flex}.link-bank-account-name{color:#333;font-weight:500}.link-bank-account-mask{color:#888;font-family:monospace;font-size:.85em}.link-bank-account-details{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.link-bank-account-type{color:#888;text-transform:capitalize;font-size:.85em}.link-bank-account-balance{color:#333;font-weight:500}.link-bank-divider{color:#999;align-items:center;margin:16px 0;font-size:.85em;display:flex}.link-bank-divider:before,.link-bank-divider:after{content:"";border-bottom:1px solid #ddd;flex:1}.link-bank-divider span{padding:0 12px}.link-bank-empty{text-align:center;padding:20px 0}.link-bank-empty p{color:#666;margin-bottom:16px}.link-bank-loading{text-align:center;padding:30px 0}.link-bank-loading p{color:#666;margin-top:12px}.link-bank-error{text-align:center;color:#f44336;padding:20px 0}.link-bank-error button{margin-top:12px}.btn-secondary{cursor:pointer;color:#333;background:#f5f5f5;border:1px solid #ddd;border-radius:6px;width:100%;padding:10px 16px;font-size:14px;font-weight:500;transition:background .15s;display:block}.btn-secondary:hover{background:#eee}.sync-result{text-align:center;padding:10px 0}.sync-result-icon{color:#4caf50;margin-bottom:8px;font-size:48px;line-height:1}.sync-result-icon-error{color:#f44336}.sync-result h3{margin-bottom:20px}.sync-result-details{text-align:left;background:#f9f9f9;border-radius:6px;padding:12px 16px}.sync-result-row{border-bottom:1px solid #eee;justify-content:space-between;padding:8px 0;display:flex}.sync-result-row:last-child{border-bottom:none}.sync-result-row span:first-child{color:#666}.sync-result-row span:last-child{color:#333;text-align:right;max-width:60%;font-weight:500}.sync-result-error-text{word-break:break-word;color:#f44336!important}.bank-connections-alert{background:#fff8e6;border:1px solid #f3d58b;border-radius:10px;margin:0 0 20px;padding:14px 16px}.bank-connections-alert h3{color:#6b4b00;margin:0 0 10px;font-size:1rem}.bank-connection-row{border-top:1px solid #f3e2b3;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.bank-connection-row:first-of-type{border-top:none}.bank-connection-reason{color:#6b4b00;font-size:.9rem}.bank-connection-row .btn-primary{flex:none;padding:8px 16px;font-size:.9rem}@media (width<=600px){.bank-connection-row{flex-direction:column;align-items:stretch}}.available-accounts{background:#f6f7ff;border:1px solid #dfe2fb;border-radius:10px;margin:0 0 24px;padding:16px}.available-accounts h3{color:#3d47a8;margin:0 0 12px;font-size:1rem}.available-accounts-bank+.available-accounts-bank{border-top:1px solid #dfe2fb;margin-top:16px;padding-top:16px}.available-accounts-bank-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.available-accounts-list{margin:0 0 12px;padding:0;list-style:none}.available-accounts-list li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.available-account-main{cursor:pointer;align-items:center;gap:10px;display:flex}.available-account-main>span{flex-direction:column;display:flex}.available-accounts-hint,.available-accounts-loading{color:#666;font-size:.88rem}.available-accounts .btn-primary{flex:none;padding:8px 18px;font-size:.9rem}.available-accounts select{background:#fff;border:1px solid #c9cce0;border-radius:6px;padding:6px 8px}.available-accounts .link-button{color:#667eea;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem;text-decoration:underline}.available-accounts .link-button:disabled{opacity:.6;cursor:default}.available-account-match{color:#1e6b31;background:#dff5e3;border-radius:999px;padding:3px 10px;font-size:.88rem}.repeating-transactions-page{max-width:1400px;margin:0 auto;padding:24px}.repeating-transactions-page .page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.repeating-transactions-page .page-header h1{color:#333;margin:0;font-size:2rem}.repeating-transactions-page .btn-close{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;padding:10px 20px;font-weight:500;transition:all .2s}.repeating-transactions-page .btn-close:hover{background:#f5f5f5;border-color:#999}.repeating-transactions-page .filters-section{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.repeating-transactions-page .filter-search{border:1px solid #ddd;border-radius:6px;flex:1;min-width:250px;padding:10px 16px;font-size:1rem}.repeating-transactions-page .filter-search:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 3px #2196f31a}.repeating-transactions-page .filter-select{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;padding:10px 16px;font-size:1rem}.repeating-transactions-page .filter-select:focus{border-color:#2196f3;outline:none;box-shadow:0 0 0 3px #2196f31a}.repeating-transactions-page .results-info{color:#666;background:#f5f5f5;border-radius:6px;margin-bottom:16px;padding:8px 12px;font-size:.9rem}.repeating-transactions-page .loading-state{text-align:center;color:#999;padding:60px 20px;font-size:1.1rem}.repeating-transactions-page .empty-state{text-align:center;padding:60px 20px}.repeating-transactions-page .empty-icon{opacity:.3;margin-bottom:16px;font-size:4rem}.repeating-transactions-page .empty-state h3{color:#333;margin:0 0 8px;font-size:1.3rem}.repeating-transactions-page .empty-state p{color:#666;max-width:500px;margin:0 auto;font-size:1rem;line-height:1.5}.repeating-transactions-page .repeating-transactions-table{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.repeating-transactions-page .table-header,.repeating-transactions-page .table-row{grid-template-columns:1.5fr 2fr 1fr 1fr 1fr 1fr 1.2fr 100px;align-items:center;gap:12px;padding:12px 16px;display:grid}.repeating-transactions-page .table-header{text-transform:uppercase;color:#666;background:#f5f5f5;border-bottom:1px solid #e0e0e0;font-size:.85rem;font-weight:600}.repeating-transactions-page .table-row{border-bottom:1px solid #f0f0f0;transition:background .2s}.repeating-transactions-page .table-row:last-child{border-bottom:none}.repeating-transactions-page .table-row:hover{background:#fafafa}.repeating-transactions-page .col-name strong{color:#333;font-weight:600}.repeating-transactions-page .col-description{color:#666;font-size:.9rem}.repeating-transactions-page .col-amount{color:#333;font-weight:600}.repeating-transactions-page .col-frequency .badge{color:#1976d2;text-transform:uppercase;background:#e3f2fd;border-radius:4px;padding:4px 8px;font-size:.75rem;font-weight:600;display:inline-block}.repeating-transactions-page .col-start,.repeating-transactions-page .col-end,.repeating-transactions-page .col-account{color:#666;font-size:.9rem}.repeating-transactions-page .col-actions{justify-content:center;gap:8px;display:flex}.repeating-transactions-page .btn-edit,.repeating-transactions-page .btn-delete{cursor:pointer;border:none;border-radius:4px;padding:6px 10px;font-size:1.1rem;transition:all .2s}.repeating-transactions-page .btn-edit:hover{background:#e3f2fd;transform:scale(1.1)}.repeating-transactions-page .btn-delete:hover{background:#ffebee;transform:scale(1.1)}@media (width<=1200px){.repeating-transactions-page .table-header,.repeating-transactions-page .table-row{grid-template-columns:1.5fr 1.5fr 1fr 1fr 1fr 1fr 1fr 90px;gap:8px;font-size:.85rem}}@media (width<=968px){.repeating-transactions-page .repeating-transactions-page{padding:16px}.repeating-transactions-page .filters-section{flex-direction:column}.repeating-transactions-page .filter-search,.repeating-transactions-page .filter-select{width:100%}.repeating-transactions-page .table-header,.repeating-transactions-page .table-row{grid-template-columns:1fr;gap:4px;padding:12px}.repeating-transactions-page .table-header{display:none}.repeating-transactions-page .table-row{border:1px solid #e0e0e0;border-radius:6px;margin-bottom:12px;display:block}.repeating-transactions-page .table-row>div{justify-content:space-between;padding:8px 0;display:flex}.repeating-transactions-page .table-row>div:before{content:attr(data-label);color:#666;text-transform:uppercase;font-size:.8rem;font-weight:600}.repeating-transactions-page .col-name:before{content:"Name: "}.repeating-transactions-page .col-description:before{content:"Description: "}.repeating-transactions-page .col-amount:before{content:"Amount: "}.repeating-transactions-page .col-frequency:before{content:"Frequency: "}.repeating-transactions-page .col-start:before{content:"Start: "}.repeating-transactions-page .col-end:before{content:"End: "}.repeating-transactions-page .col-account:before{content:"Account: "}.repeating-transactions-page .col-actions:before{content:"Actions: "}.repeating-transactions-page .col-actions{justify-content:flex-end}}.debug-balances{max-width:1400px;margin:0 auto;padding:1.5rem}.debug-balances h2{color:var(--text-primary,#e0e0e0);margin-bottom:1rem}.debug-controls{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.debug-controls label{color:var(--text-secondary,#aaa);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.debug-controls select,.debug-controls input{border:1px solid var(--border-color,#444);background:var(--bg-secondary,#2a2a2a);color:var(--text-primary,#e0e0e0);border-radius:4px;padding:.5rem;font-size:.9rem}.debug-controls button{background:var(--accent-color,#4a9eff);color:#fff;cursor:pointer;border:none;border-radius:4px;height:fit-content;padding:.5rem 1.2rem;font-size:.9rem}.debug-controls button:hover{opacity:.9}.debug-controls button:disabled{opacity:.5;cursor:not-allowed}.debug-table-wrapper{overflow-x:auto}.debug-table{border-collapse:collapse;width:100%;font-size:.85rem}.debug-table th,.debug-table td{text-align:left;border-bottom:1px solid var(--border-color,#333);white-space:nowrap;padding:.5rem .75rem}.debug-table th{background:var(--bg-secondary,#2a2a2a);color:var(--text-secondary,#aaa);font-weight:600;position:sticky;top:0}.debug-table tr:hover{background:#ffffff08}.debug-table tr.checkpoint-row{background:#4a9eff1f}.debug-table tr.checkpoint-row:hover{background:#4a9eff33}.debug-table tr.mismatch-row{background:#ff50501f}.debug-table tr.mismatch-row:hover{background:#ff505033}.debug-table .amount-income{color:#4caf50}.debug-table .amount-expense{color:#f44336}.expand-btn{cursor:pointer;color:var(--text-secondary,#aaa);background:0 0;border:none;padding:.2rem .4rem;font-size:.8rem}.expand-btn:hover{color:var(--text-primary,#e0e0e0)}.calculation-path{background:var(--bg-secondary,#1e1e1e);color:var(--text-secondary,#aaa);padding:.75rem 1rem;font-family:monospace;font-size:.8rem}.calculation-path .path-step{padding:.15rem 0}.calculation-path .path-step.step-start{color:var(--accent-color,#4a9eff);font-weight:600}.calculation-path .path-step.step-target{color:#4caf50;font-weight:600}.calculation-path .path-step.step-result{color:#ffb74d;font-weight:600}.debug-loading,.debug-empty{text-align:center;color:var(--text-secondary,#aaa);padding:2rem}.checkpoint-badge{color:#4a9eff;background:#4a9eff33;border-radius:3px;padding:.15rem .5rem;font-size:.75rem;display:inline-block}.checkpoint-badge.future{color:#ffb74d;background:#ffb74d33}.receipts-page{max-width:960px}.view-container.receipts-page .form-group input,.view-container.receipts-page select{background:#fff;border:1px solid #d6d8e6}.receipts-header{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;display:flex}.receipts-header h2{flex:1;margin:0}.receipts-add{flex:none}.receipts-hint{color:#666;margin:4px 0;font-size:.9rem}.receipts-empty{text-align:center;border:2px dashed #ddd;border-radius:12px;padding:30px}.receipts-list{margin:0;padding:0;list-style:none}.receipt-row{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:#fff;border:1px solid #e5e5ef;border-radius:10px;align-items:center;gap:14px;margin-bottom:8px;padding:10px 12px;display:flex}.receipt-row:hover{border-color:#667eea}.receipt-thumb{object-fit:cover;background:#f2f2f7;border-radius:6px;flex-shrink:0;width:48px;height:64px}.receipt-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.receipt-row-main strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.receipt-row-total{white-space:nowrap;font-weight:600}.receipt-status{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:600}.status-needs_review{color:#8a5a00;background:#fff4d6}.status-matched{color:#1e6b31;background:#dff5e3}.status-failed{color:#a12622;background:#fde2e1}.status-analyzing{color:#3d47a8;background:#e7e9fb}.receipts-back{color:#667eea;font:inherit;cursor:pointer;background:0 0;border:none;margin-bottom:12px;padding:0}.receipt-detail{grid-template-columns:minmax(200px,320px) 1fr;align-items:start;gap:24px;display:grid}.receipt-photo img{border:1px solid #e5e5ef;border-radius:10px;width:100%;position:sticky;top:0}.receipt-fields h3{color:#667eea;margin:24px 0 10px}.receipt-field-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.receipt-field-row>*{flex:1}.receipt-warnings{color:#6b4b00;background:#fff8e6;border:1px solid #f3d58b;border-radius:8px;margin:0 0 16px;padding:10px 14px;font-size:.9rem;list-style:none}.receipt-mode{border:2px solid #667eea;border-radius:8px;margin-bottom:14px;display:inline-flex;overflow:hidden}.receipt-mode button{color:#667eea;font:inherit;cursor:pointer;background:#fff;border:none;padding:8px 16px;font-weight:600}.receipt-mode button.active{color:#fff;background:#667eea}.receipt-mode button:disabled{opacity:.5;cursor:not-allowed}.receipt-items{border-collapse:collapse;width:100%;margin-bottom:12px;font-size:.92rem}.receipt-items th,.receipt-items td{text-align:left;border-bottom:1px solid #eee;padding:6px 8px}.receipt-items td:nth-child(2){white-space:nowrap}.view-container .receipt-items select{border-width:1px;padding:4px 8px;font-size:.9rem}.receipt-discount{color:#1e6b31}.receipt-candidates{margin:0 0 16px;padding:0;list-style:none}.receipt-match{background:#fff;border:1px solid #e5e5ef;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;display:flex}.receipt-match.likely{background:#f3fbf4;border-color:#4caf50}.receipt-match.matched{border-color:#4caf50}.receipt-likely{color:#1e6b31;margin-bottom:2px;font-size:.75rem;font-weight:700;display:inline-block}.receipt-match>div{flex-direction:column;min-width:0;display:flex}.btn-primary.receipt-inline-btn,.btn-cancel.receipt-inline-btn{flex:none;padding:8px 16px;font-size:.9rem}.message .receipt-inline-btn{margin-left:12px}.receipt-create label{margin-bottom:6px;font-weight:500;display:block}.receipt-danger{border-top:1px solid #eee;flex-wrap:wrap;align-items:center;gap:10px;margin-top:32px;padding-top:16px;display:flex}.receipt-delete-link{color:#a12622;font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.receipt-delete{color:#fff;cursor:pointer;background:#d93025;border:none;border-radius:8px;padding:8px 16px;font-weight:600}@media (width<=720px){.receipt-detail{grid-template-columns:1fr}.receipt-photo img{object-fit:contain;max-height:50vh;position:static}.receipt-match{flex-direction:column;align-items:stretch}}
