body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body,html{background-color:rgb(var(--background-color))!important;height:100%}#root{background-color:initial;height:100%}:root{--background-color:233,233,233;--foreground-color:45,45,45;--project-hover-speed:0.75s;--floating-close-speed:0.8s}body,html{background-color:initial}*{box-sizing:border-box;margin:0;padding:0}h1,h2,h3,p{color:rgb(var(--foreground-color))}body{background-color:rgb(var(--background-color));font-family:Consolas,monospace}.App{overflow:visible!important;overflow:initial!important}.links{flex-direction:column;gap:20px;justify-content:right;margin-top:30px}.links,.links a,.resume-button{align-items:center;display:flex}.links a,.resume-button{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:none;border:none;border-radius:8px;color:inherit;cursor:pointer;font-family:inherit;font-weight:400;gap:10px;padding:2px 8px;text-decoration:none;transition:all .1s ease}.links a:hover,.resume-button:hover{-webkit-backdrop-filter:brightness(3);backdrop-filter:brightness(3);font-weight:700;transform:scale(1.05);transition:all .1s ease}.links img{border-radius:0;border-radius:initial}#about{margin-top:20px}.scroll-container{-ms-overflow-style:none;border:2px solid rgb(var(--background-color));border-radius:10px;height:100vh;overflow-x:auto;overflow-y:hidden;padding:0 0 0 400px;scroll-behavior:auto;scrollbar-width:none;transition:padding var(--floating-close-speed) ease;white-space:nowrap;width:100vw}.scroll-container::-webkit-scrollbar{display:none}.scroll-container.collapsed{padding:0 50px;transition:padding var(--floating-close-speed) ease}.heading{align-items:center;display:flex;height:80px;position:absolute;text-shadow:8px 8px 16px #00000040}.scroll-grid{grid-gap:5vh 30px;display:grid;gap:5vh 30px;grid-auto-flow:column;grid-template-rows:repeat(2,1fr);height:100%;padding:80px 200px 5% 5%;transition:padding var(--floating-close-speed) ease;width:-webkit-max-content;width:max-content}@media (max-height:550px){.scroll-grid{grid-template-rows:none}.project:nth-child(2n){transform:none!important}.project:nth-child(2n):hover{transform:translateX(0) scale(1.05)!important}.project{height:80vh!important;min-width:50vw!important}}@media (min-height:1200px){.scroll-grid{grid-template-rows:repeat(3,1fr)}.project:nth-child(2n){transform:none!important}.project:nth-child(3n - 1){transform:translateX(10vw)!important}.scroll-grid{gap:3vh 30px!important}.project{height:100%!important;min-width:90vw!important}}.project{align-items:center;background-color:rgb(var(--background-color));border-radius:8px;box-shadow:8px 8px 16px #00000040;display:flex;font-size:1.1em;font-weight:700;height:40vh;justify-content:center;max-width:20vw;min-width:450px;padding:12px;position:relative;transform-origin:center center;transition:transform var(--project-hover-speed) cubic-bezier(.23,.76,.7,.93),box-shadow var(--project-hover-speed) cubic-bezier(.23,.76,.7,.93)}.project img{transition:all var(--project-hover-speed) cubic-bezier(.23,.76,.7,.93)}.project:hover img{filter:blur(2px);height:100%;width:100%}.project:nth-child(2n){transform:translateX(10vw)}.project:nth-child(2n):hover{box-shadow:16px 16px 32px #0003;transform:translateX(10vw) scale(1.05);z-index:10}.project:hover:not(:nth-child(2n)){box-shadow:16px 16px 32px #0003;transform:scale(1.05);z-index:10}.project:hover .project-description{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:1}.project-description{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);background-color:rgba(var(--background-color),.5);border-radius:8px;color:rgb(var(--foreground-color));font-size:1rem;font-weight:400;margin:.5rem 1rem;opacity:0;padding:4px 8px;transition:all var(--project-hover-speed) ease-in-out;white-space:normal;width:80%;z-index:300}.floating-content{-ms-overflow-style:none;height:100%;max-height:100vh;overflow-y:auto;padding-bottom:20%;padding-top:5%;scrollbar-width:none}.floating-content::-webkit-scrollbar{display:none}.floating{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:rgba(var(--background-color),.5);border-radius:15px;box-shadow:16px 16px 32px #0003;height:98vh;left:1vh;padding:0 2%;position:absolute;top:1vh;width:380px;z-index:500}.floating,.floating.collapsed{transition:all var(--floating-close-speed) ease}.floating.collapsed{padding:0;width:25px}.headshot{border-radius:15px;display:block;height:auto;margin:20px auto 0;width:65%}.floating *{opacity:1;transition:opacity var(--floating-close-speed) cubic-bezier(1,-.01,.52,.99)}.floating.collapsed :not(.close-button):not(#arrow){opacity:0;transition:opacity .25s ease-out}#arrow{transform:scaleX(-1)}#arrow,.floating.collapsed #arrow{transition:transform var(--floating-close-speed) ease}.floating.collapsed #arrow{transform:scaleX(1)}.close-button{align-items:auto;align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:rgba(var(--background-color),.8);border-radius:0 8px 8px 0;box-shadow:16px 16px 32px #0003;cursor:pointer;display:flex;height:10%;justify-content:center;left:100%;min-height:60px;position:absolute;top:45%;transform:translateY(-30px);width:20px;z-index:501}.dark-mode .close-button img{filter:invert()}a{color:rgb(var(--foreground-color))}.tag-container{bottom:0;display:flex;flex-wrap:wrap;gap:4px;left:0;padding:4px;pointer-events:none;width:100%}.tag-container>.tag{transform:scaleY(1) scaleX(1);transition:transform .4s ease,opacity .4s ease}.tag{transition:transform .4s ease}.tag.unhovered{transform:scale(0)}.tag{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:rgba(var(--background-color),.8);border:1px solid rgb(var(--foreground-color));border-radius:15px;font-size:.8rem;margin:2px;padding:2px 10px;z-index:400}img{border-radius:8px;display:block;object-fit:cover;object-position:center}.project-div img{height:97%;left:50%;margin:0 auto;position:absolute;top:50%;transform:translate(-50%,-50%);width:98%;z-index:2}.project-div>div{display:flex;flex-direction:column;height:95%;justify-content:space-between;position:absolute;z-index:100}.project-div{height:100%;width:100%}.project-div h2{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background-color:rgba(var(--background-color),.6);border-radius:8px;left:8px;padding:4px 8px;text-shadow:rgb(var(--background-color)) 0 0 2px;top:8px;width:-webkit-fit-content;width:fit-content;z-index:300}@media (max-width:700px){html{-ms-overflow-style:none;scrollbar-width:none}.floating{display:inline-flex;flex-wrap:wrap;height:auto;max-height:none;padding-bottom:4rem;position:static;width:-webkit-fit-content;width:fit-content}.floating-content{overflow-y:visible}.headshot{width:40%}.close-button{display:none}.scroll-container{overflow-x:visible;overflow-x:initial;overflow-y:visible;overflow-y:initial;padding:initial;scroll-behavior:unset;white-space:inherit}.heading{align-content:center;align-items:center;display:flex;justify-content:center;position:static!important;width:100%}.scroll-grid{grid-auto-flow:unset;grid-template-rows:none;height:auto;padding:initial;padding-right:0;width:auto}.project:nth-child(2n){transform:none}.project{align-self:auto!important;height:30vh;margin:0 auto;max-width:100%;min-width:0;overflow-y:hidden;width:90%}.project:hover img{filter:none}.project:nth-child(2n):hover{box-shadow:8px 8px 16px #00000040;transform:translateX(0) scale(1.05)!important;z-index:auto}.project:hover:not(:nth-child(2n)){box-shadow:8px 8px 16px #00000040;transform:scale(1.05);z-index:auto}.project:hover .project-description{-webkit-backdrop-filter:initial;backdrop-filter:none;opacity:0}.project-description{font-size:.8rem}.project.hovered img{filter:blur(2px);height:105%;width:105%}.project.hovered:nth-child(2n){box-shadow:16px 16px 32px #0003;transform:translateX(0) scale(1.05);z-index:10}.project.hovered:not(:nth-child(2n)){box-shadow:16px 16px 32px #0003;transform:scale(1.05);z-index:10}.project.hovered .project-description{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:1}.project-div{height:100%;overflow:hidden;padding-top:1px;white-space:nowrap;width:100%}.tag{font-size:.65rem}#about{padding:0 2rem}}button{border-radius:5px;font-size:16px;margin:10px;transition:background-color .3s}button:hover:not(:disabled){background-color:#21a0c4}button:disabled{cursor:not-allowed;opacity:.6}.message{background:#61dafb33;border-radius:5px;font-size:14px;margin:15px 0;padding:10px}.info-section ul{font-size:16px;line-height:1.8;text-align:left}.info-section li{margin:5px 0}.tag{display:inline-block;transform:scale(1);transition:transform .5s ease}.tag.hidden{transform:scale(0)}:root{--primary:#00a3cc;--primary-dark:#00a3cc;--secondary:#d01012;--dark:#333;--light:#f8f9fa}.App{height:100vh;overflow:visible;overflow:initial;text-align:left}header{padding:1rem}#lego-header{background-color:#00a3cc;background-color:var(--primary);box-shadow:0 2px 5px #0000004d;padding:1rem 0}.container{margin:0;padding:1rem}.tabs{border-bottom:2px solid #00a3cc;border-bottom:2px solid var(--primary);display:flex;margin:1rem 0}.tab{background-color:#e9e9e9;border:none;cursor:pointer;margin-right:2px;outline:none;padding:.5rem 1rem}.tab.active{background-color:#00a3cc;background-color:var(--primary);color:#333;color:var(--dark);font-weight:700}.tab-content{background-color:#fff;border-radius:0 0 4px 4px;box-shadow:0 2px 5px #0000001a;padding:1rem}.tab-content.active{border-radius:8px;box-shadow:0 2px 5px #0000001a;display:block}button,input,select{border:1px solid #ccc;border-radius:4px;margin:.5rem 0;padding:.5rem}button{background-color:#00a3cc;background-color:var(--primary);border:none;color:#333;color:var(--dark);cursor:pointer;font-weight:700}button:hover{background-color:#00a3cc;background-color:var(--primary-dark)}.search-bar{display:flex;margin-bottom:1rem}.search-bar input{flex:1 1;margin-right:.5rem}table{border-collapse:collapse;margin-top:1rem;width:100%}td,th{border-bottom:1px solid #ddd;padding:.75rem;text-align:left}th{background-color:#00a3cc;background-color:var(--primary);color:#333;color:var(--dark)}tr:hover{background-color:#f1f1f1}#piece-results .card *{margin:8px 0}.card,.container_card{box-shadow:0 2px 5px #0000001a}.card,.container_card,.container_card:hover{background-color:#fff;border-radius:4px;margin-bottom:1rem;padding:1rem}.container_card:hover{box-shadow:0 4px 10px #0003;transform:translateY(-2px) scale(1.02);transition:transform .2s ease,box-shadow .2s ease}.card-header{border-bottom:1px solid #eee;font-size:1.2rem;font-weight:700;margin-bottom:.5rem;padding-bottom:.5rem}.grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.box-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(4,1fr)}.box-cell{background-color:#f0f0f0;border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:.5rem;text-align:center;transition:background-color .2s}.box-cell:hover{background-color:#e0e0e0}.box-cell.occupied{background-color:#00a3cc;background-color:var(--primary);color:#333;color:var(--dark);font-weight:700}.error{background-color:#ffe6e6;border-radius:4px;color:#d01012;color:var(--secondary);margin-bottom:1rem;padding:.5rem}.loading{margin:2rem 0;text-align:center}.badge{background-color:#00a3cc;background-color:var(--primary);border-radius:12px;color:#333;color:var(--dark);display:inline-block;font-size:.8rem;margin-right:.5rem;padding:.2rem .5rem}.piece-list{margin-top:.5rem;max-height:300px;overflow-y:auto}.box-legend{display:flex;justify-content:center;margin-bottom:1rem}.legend-item{align-items:center;display:flex;margin-right:1rem}.legend-color{border:1px solid #ddd;height:20px;margin-right:.5rem;width:20px}.login-card{box-shadow:0 20px 60px #0000004d}.dark .login-header h1,.dark .login-header p{color:#1a1a2e}.summary-card{box-shadow:0 4px 12px #0000001a}.summary-card:hover{box-shadow:0 8px 24px #00000026}.category-section{box-shadow:0 4px 12px #0000001a}.category-grid{grid-gap:1rem;gap:1rem}.controls-section,.transactions-section{box-shadow:0 4px 12px #0000001a}.transactions-table tbody tr{transition:background-color .2s ease}.transaction-card:hover{box-shadow:0 4px 12px #0000001a}.delete-button:hover,.edit-button:hover{filter:brightness(1.1)}.cancel-button,.edit-button{transition:none}.cancel-button{background:#0000;border:2px solid red;color:red}button:hover:not(:disabled){background-color:initial!important}body,html{-ms-overflow-style:none;height:auto;margin:0;min-height:100%;overflow-x:hidden;overflow-y:auto;padding:0;scrollbar-width:none}a{color:inherit;text-decoration:none;text-shadow:none!important}@media (max-width:768px){.section,.section-secondary{padding:8% 5%}}a:hover{text-decoration:none}h1,h2,h3,p{text-shadow:none!important}body::-webkit-scrollbar,html::-webkit-scrollbar{display:none}.page-header{color:#2c2c2c;display:flex;justify-content:space-between;position:fixed;width:100%;z-index:999}.page-header *{text-shadow:none!important}.page-header a{cursor:pointer}.page-header span{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background-color:#fff0;border-radius:8px;padding:0 4px;text-shadow:none}.page-header :hover{text-shadow:inset #fff 1px 1px 3px}.page-header span{height:1.5rem}.page-header{padding:20px}.page-header a,.page-header p{font-size:1rem}header{padding:0;text-align:center}.project-logo-container{margin:0 auto}.header-links{margin-top:5%}.link{display:inline-block;position:relative;transition:color .5s ease-in-out;z-index:1}.link,.link a{color:rgb(var(--foreground-color))}.link a{color:inherit;text-decoration:none;transition:color .5s ease-in-out}.link h3{color:#e9e9e9}.link a:hover,.link:hover{color:#5eacc5bf;transition:color .75s cubic-bezier(.99,.02,.96,-.02)}.link:after{background:rgb(var(--foreground-color));content:"";display:block;height:1px;margin:0 auto;transition:height .75s cubic-bezier(.37,.64,.96,-.02),width .75s cubic-bezier(.37,.64,.96,-.02),background-color .75s cubic-bezier(.37,.64,.96,-.02);width:40%;z-index:-1}.link:hover:after{background-color:#5eacc5bf;height:-80%;width:100%}.title{opacity:0;pointer-events:none;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease;transition-property:none}.title.visible{opacity:1;pointer-events:auto;transform:translateY(0);transition:opacity .6s ease,transform .6s ease}.light-mode .header-link{color:#2c2c2c}.dark-mode .header-link{color:#e9e9e9}.dark-mode .project-type{color:#fff}.light-mode .project-type{color:#000}.project-type:after{background:#2c2c2c;content:"";display:block;height:1px;margin:0 auto;transition:width 1.5s ease-in-out;width:0;z-index:-1}.project-type.loaded:after{width:0}.project-type{color:#0000!important;display:inline-block;overflow:hidden;position:relative}.project-type:before{-webkit-clip-path:inset(0 50% 0 50%);clip-path:inset(0 50% 0 50%);color:#2c2c2c;content:attr(data-text);left:50%;position:absolute;top:0;transform:translateX(-50%);transition:-webkit-clip-path 1.5s cubic-bezier(.63,.19,.53,.95);transition:clip-path 1.5s cubic-bezier(.63,.19,.53,.95);transition:clip-path 1.5s cubic-bezier(.63,.19,.53,.95),-webkit-clip-path 1.5s cubic-bezier(.63,.19,.53,.95);white-space:nowrap;will-change:clip-path}.light-mode project-type:before{color:#2c2c2c}.dark-mode project-type:before{color:#e9e9e9}.project-type.loaded:before{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}.dark-mode .project-type.loaded:before{color:rgb(var(--foreground-color))!important}.project-type.loaded{color:#0000;transition:color 5s ease}.project-hero{align-items:center;gap:10px}.project-logo{transform:translateX(-15%) scale(2)}.mobile-title{display:none}@media (max-width:1200px){.project-hero{display:block}.project-hero img{transform:none}.mobile-title{display:block}.non-mobile-title{display:none}}.hero-project-description{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#2c2c2d40;border-radius:8px;-webkit-box-decoration-break:clone;display:inline;padding:4px;z-index:5}.light-mode .hero-project-description{background-color:#e9e9e940;text-shadow:0 0 3px #ffffffbf}.image-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000080;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:9999}.image-modal-content{border-radius:8px;max-height:90vh;max-width:90vw;object-fit:contain}.modal-trigger{cursor:zoom-in}.image-modal-content,.image-modal-overlay{cursor:zoom-out}.section,.section-secondary{padding:15% 8%;width:100%}.light-mode .section-secondary{background-color:#e0e0e0}.dark-mode .section-secondary{background-color:#292929}.section section,.section-secondary section{display:flex;justify-content:space-evenly}.section .section-header,.section-secondary .section-header{display:flex;gap:1rem}.section section h1,.section section h2,.section section h3{margin:0 auto;width:100%}section h2{font-size:2.5rem}section div{padding:0 5%}.reversed{flex-direction:row-reverse}@media (max-width:768px){.section .reversed,.section section,.section-secondary .reversed,.section-secondary section{flex-direction:column}.section,.section-secondary{padding:10% 8%}.section div,.section-secondary div{padding:0}.section .section-header,.section-secondary .section-header{display:inline;display:initial;width:100%}.section-header{max-width:none!important}}@media (min-width:768px){.section,.section-secondary{padding:15% 5%}.section-secondary section h1,.section-secondary section h2,.section-secondary section h3{margin:initial;text-align:center}.section section h1,.section section h2,.section section h3{margin:initial}.section,.section-secondary{padding:5% 20%}.section .section-header,.section-secondary .section-header{display:inline;display:initial}.section,.section-secondary{padding:5% 15%}}h1,h2,h3,p{color:#000}.finance-container{min-height:100vh;padding:0;transition:background-color .3s ease}.finance-container.light{background:linear-gradient(135deg,#667eea,#764ba2)}.finance-container.dark{background:linear-gradient(135deg,#1a1a2e,#16213e)}.login-wrapper{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:1rem}.login-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:24px;box-shadow:0 10px 30px #00000040,0 0 0 1px #0000000d;max-width:420px;padding:3rem;width:100%}.dark .login-card{background:#1e1e2ef2;box-shadow:0 10px 30px #0009,0 0 0 1px #ffffff0d}.login-header{margin-bottom:2rem;text-align:center}.login-header h1{color:#1a1a2e;font-size:2rem;margin:0 0 .5rem}.dark .login-header h1{color:#fff}.login-header p{color:#1a1a2e;margin:0}.dark .login-header p{color:#ddd}.login-form{gap:1.5rem}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{color:#333;font-size:.875rem;font-weight:600}.dark .form-group label{color:#ddd}.form-group input{background:#fff;border:2px solid #e0e0e0;border-radius:12px;box-shadow:inset 0 1px 3px #0000000d;font-size:1rem;padding:.875rem 1rem;transition:all .3s ease}.dark .form-group input{background:#1a1a2e;border-color:#333;box-shadow:inset 0 1px 3px #0006;color:#fff}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.error-message{background:#fee;border:1px solid #fcc;border-radius:12px;box-shadow:0 2px 4px #ff416c1a;color:#c33;font-size:.875rem;padding:.875rem}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 15px #667eea80;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem;transition:all .3s ease}.login-button:hover{box-shadow:0 6px 20px #667eea99;transform:translateY(-2px)}.login-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.6}.finance-content{margin:0 auto;max-width:1400px;padding:2rem}.finance-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.header-left h1{color:#fff;font-size:2rem;margin:0;text-shadow:0 2px 5px #0003}.username-display{color:#fffc;font-size:.875rem;margin:.25rem 0 0}.logout-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:2px solid #ffffff4d;border-radius:12px;box-shadow:0 4px 10px #0000004d;color:#fff;cursor:pointer;font-weight:600;padding:.625rem 1.5rem;transition:all .3s ease}.logout-button:hover{background:#ffffff4d;box-shadow:0 6px 15px #0006;transform:translateY(-2px)}.summary-section{margin-bottom:2rem}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.section-header h2{color:#fff;font-size:1.5rem;margin:0;text-shadow:0 2px 5px #0003}.toggle-button{background:#fff3;border:2px solid #ffffff4d;border-radius:8px;box-shadow:0 2px 8px #0003;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem 1rem;transition:all .3s ease}.toggle-button:hover{background:#ffffff4d;box-shadow:0 4px 10px #0000004d;transform:translateY(-1px)}.summary-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.summary-card{background:#fff;border-radius:16px;box-shadow:0 10px 30px #0000001a,0 0 0 1px #0000000d;padding:1.5rem;transition:all .3s ease}.dark .summary-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e1e2ecc;box-shadow:0 10px 30px #0006,0 0 0 1px #ffffff0d}.summary-card:hover{box-shadow:0 15px 40px #0003,0 0 0 1px #0000000d;transform:translateY(-4px)}.card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.card-label{color:#666;font-size:.875rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.dark .card-label{color:#aaa}.card-value{color:#1a1a2e;font-size:2rem;font-weight:700}.dark .card-value{color:#fff}.card-value.positive{color:#10b981}.card-value.negative{color:#ef4444}.category-section{background:#fff;border-radius:16px;box-shadow:0 10px 30px #0000001a,0 0 0 1px #0000000d;margin-bottom:2rem;padding:1.5rem}.dark .category-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e1e2ecc;box-shadow:0 10px 30px #0006,0 0 0 1px #ffffff0d}.category-section h2{color:#1a1a2e;font-size:1.5rem;margin:0 0 1.5rem}.dark .category-section h2{color:#fff}.category-grid{grid-gap:3rem;display:grid;gap:3rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.category-card{align-items:left;background:#f8f9fa;border-radius:12px;box-shadow:0 2px 5px #0000004d;display:flex;flex-direction:column;justify-content:space-between;padding:1rem;transition:all .3s ease}.dark .category-card{background:#ffffff0d;box-shadow:0 2px 5px #0000004d}.category-card:hover{background:#e9ecef;box-shadow:0 4px 10px #0000001a;transform:translateX(4px)}.dark .category-card:hover{background:#ffffff1a;box-shadow:0 4px 10px #00000080}.category-name{color:#333;font-weight:600}.dark .category-name{color:#ddd}.category-amount{font-size:1.125rem;font-weight:700}.category-amount.positive{color:#10b981}.category-amount.negative{color:#ef4444}.controls-section{background:#fff;border-radius:16px;box-shadow:0 10px 30px #0000001a,0 0 0 1px #0000000d;margin-bottom:2rem;padding:1.5rem}.dark .controls-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e1e2ecc;box-shadow:0 10px 30px #0006,0 0 0 1px #ffffff0d}.controls-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.controls-header h2{color:#1a1a2e;font-size:1.5rem;margin:0}.dark .controls-header h2{color:#fff}.view-toggle{background:#f8f9fa;border-radius:12px;display:flex;gap:.5rem;padding:.25rem}.dark .view-toggle{background:#ffffff0d}.view-toggle button{background:#0000;border:none;border-radius:8px;color:#666;cursor:pointer;font-weight:600;padding:.5rem 1rem;transition:all .3s ease}.dark .view-toggle button{color:#aaa}.view-toggle button.active{background:#fff;box-shadow:0 2px 8px #0000001a;color:#667eea}.dark .view-toggle button.active{background:#667eea33;color:#667eea}.filter-group.full-width{grid-column:1/-1}.category-checkboxes{background:#f8f9fa;border-radius:8px;box-shadow:inset 0 2px 5px #0000000d;display:flex;flex-wrap:wrap;gap:.75rem;padding:1rem}.dark .category-checkboxes{background:#ffffff0d;box-shadow:inset 0 2px 5px #0000004d}.checkbox-label{align-items:center;background:#fff;border:2px solid #0000;border-radius:6px;box-shadow:0 1px 3px #0000000d;cursor:pointer;display:flex;gap:.5rem;padding:.5rem .75rem;transition:all .2s ease}.dark .checkbox-label{background:#ffffff1a;box-shadow:0 1px 3px #0000004d}.checkbox-label:hover{border-color:#667eea}.checkbox-label input[type=checkbox]{cursor:pointer;height:18px;width:18px}.checkbox-label span{color:#333;font-size:.875rem;font-weight:600}.dark .checkbox-label span{color:#ddd}.clear-filters{background:#fee;border:2px solid #fcc;border-radius:6px;box-shadow:0 2px 4px #ff416c1a;color:#c33;cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem .75rem;transition:all .3s ease}.clear-filters:hover{background:#fdd}.filters-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{color:#666;font-size:.875rem;font-weight:600}.dark .filter-group label{color:#aaa}.filter-group input,.filter-group select{background:#fff;border:2px solid #e0e0e0;border-radius:8px;box-shadow:inset 0 1px 3px #0000000d;color:#333;font-size:.875rem;padding:.625rem;transition:all .3s ease}.dark .filter-group input,.dark .filter-group select{background:#ffffff0d;border-color:#ffffff1a;box-shadow:inset 0 1px 3px #0006;color:#fff}.filter-group input:focus,.filter-group select:focus{border-color:#667eea;outline:none}.clear-dates{background:#fee;border:2px solid #fcc;border-radius:8px;box-shadow:0 2px 4px #ff416c1a;color:#c33;cursor:pointer;font-size:.875rem;font-weight:600;padding:.625rem;transition:all .3s ease}.clear-dates:hover{background:#fdd}.transactions-section{background:#fff;border-radius:16px;box-shadow:0 10px 30px #0000001a,0 0 0 1px #0000000d;overflow:hidden;padding:0}.dark .transactions-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e1e2ecc;box-shadow:0 10px 30px #0006,0 0 0 1px #ffffff0d}.transaction-group{margin-bottom:2rem}.transaction-group:last-child{margin-bottom:0}.group-header{align-items:center;background:#f8f9fa;border-bottom:2px solid #e0e0e0;box-shadow:0 1px 3px #0000000d;display:flex;justify-content:space-between;padding:1rem 1.5rem}.dark .group-header{background:#ffffff0d;border-bottom-color:#ffffff1a;box-shadow:0 1px 3px #0000004d}.group-header h3{color:#1a1a2e;font-size:1.25rem;margin:0}.dark .group-header h3{color:#fff}.group-total{color:#667eea;font-size:1.25rem;font-weight:700}.table-wrapper{overflow-x:auto}.transactions-table{border-collapse:collapse;width:100%}.transactions-table thead{background:linear-gradient(135deg,#667eea,#764ba2)}.dark .transactions-table thead{background:#ffffff0d}.transactions-table th{color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.5px;padding:1rem 1.5rem;text-align:left;text-transform:uppercase}.dark .transactions-table th{color:#aaa}.transactions-table td{border-bottom:1px solid #f0f0f0;color:#333;padding:1rem 1.5rem}.dark .transactions-table td{border-bottom-color:#ffffff0d;color:#ddd}.transactions-table tbody tr{cursor:pointer;transition:all .2s ease}.transactions-table tbody tr:hover{background:#f8f9fa;box-shadow:0 2px 5px #0000001a;transform:scale(1.005)}.dark .transactions-table tbody tr:hover{background:#ffffff0d;box-shadow:0 2px 5px #00000080}.transactions-table tbody tr.expanded{background:#e0e7ff}.dark .transactions-table tbody tr.expanded{background:#667eea33}.details-row{background:#f8f9fa!important}.dark .details-row{background:#ffffff08!important}.transaction-details{box-shadow:inset 0 2px 5px #00000005;padding:1.5rem}.dark .transaction-details{box-shadow:inset 0 2px 5px #0000004d}.details-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-item.full-width{grid-column:1/-1}.detail-label{color:#666;font-size:.75rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.dark .detail-label{color:#aaa}.detail-value{color:#333;font-size:.875rem;font-weight:600}.dark .detail-value{color:#ddd}.detail-value.positive{color:#10b981}.detail-value.negative{color:#ef4444}.date-cell{font-weight:600;white-space:nowrap}.title-cell .title{color:#1a1a2e;font-weight:600}.dark .title-cell .title{color:#fff}.category-badge{background:#e0e7ff;border-radius:20px;color:#4338ca;display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .75rem}.dark .category-badge{background:#667eea33;color:#a5b4fc}.description-cell{color:#666;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dark .description-cell{color:#aaa}.amount-cell{font-size:1.125rem;font-weight:700;text-align:right;white-space:nowrap}.amount-cell.positive{color:#10b981}.amount-cell.negative{color:#ef4444}.cards-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));padding:1.5rem}.transaction-card{background:#f8f9fa;border:2px solid #0000;border-radius:12px;box-shadow:0 5px 15px #00000014;cursor:pointer;padding:1.25rem;transition:all .3s ease}.dark .transaction-card{background:#ffffff0d;box-shadow:0 5px 15px #0006}.transaction-card:hover{border-color:#667eea;box-shadow:0 8px 20px #00000026;transform:translateY(-2px)}.transaction-card.expanded{background:#e0e7ff;border-color:#667eea;box-shadow:0 10px 25px #667eea4d}.dark .transaction-card.expanded{background:#667eea33;box-shadow:0 10px 25px #667eea66}.card-details{grid-gap:.75rem;border-top:2px solid #e0e0e0;box-shadow:inset 0 1px 3px #0000000d;display:grid;gap:.75rem;margin-top:1rem;padding-top:1rem}.dark .card-details{border-top-color:#ffffff1a;box-shadow:inset 0 1px 3px #0006}.transaction-card-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.transaction-title{color:#1a1a2e;font-size:1.125rem;font-weight:700}.dark .transaction-title{color:#fff}.transaction-amount{font-size:1.25rem;font-weight:700;white-space:nowrap}.transaction-amount.positive{color:#10b981}.transaction-amount.negative{color:#ef4444}.transaction-card-body{display:flex;flex-direction:column;gap:.75rem}.transaction-meta{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.title{opacity:1!important}th{background-color:initial!important}.table-header{background:linear-gradient(135deg,#667eea,#764ba2)!important}.transaction-date{color:#666;font-size:.875rem}.dark .transaction-date{color:#aaa}.transaction-description{color:#666;font-size:.875rem;line-height:1.5;margin:0}.dark .transaction-description{color:#aaa}.empty-state{padding:4rem 2rem;text-align:center}.empty-state p{color:#666;font-size:1.25rem;margin:0 0 .5rem}.dark .empty-state p{color:#aaa}.empty-state small{color:#999}.dark .empty-state small{color:#777}@media (max-width:768px){.finance-content{padding:1rem}.finance-header{align-items:flex-start;flex-direction:column}.header-left h1{font-size:1.5rem}.logout-button{width:100%}.summary-grid{gap:1rem;grid-template-columns:repeat(2,1fr)}.summary-card{padding:1rem}.card-value{font-size:1.5rem}.category-grid,.filters-grid{grid-template-columns:1fr}.controls-header{align-items:flex-start;flex-direction:column}.view-toggle{width:100%}.view-toggle button{flex:1 1}.hide-mobile{display:none}.show-mobile{display:block!important}.mobile-category{color:#666;display:block;font-size:.75rem;margin-top:.25rem}.dark .mobile-category{color:#aaa}.title-wrapper{gap:.25rem}.cards-grid{grid-template-columns:1fr;padding:1rem}.login-card{padding:2rem}.login-icon{font-size:3rem}.login-header h1{font-size:1.5rem}}@media (max-width:480px){.summary-grid{grid-template-columns:1fr}.transactions-table td,.transactions-table th{font-size:.875rem;padding:.75rem .5rem}.amount-cell{font-size:1rem}}.mobile-category,.show-mobile{display:none}.transaction-modal{align-items:center;display:flex;justify-content:center;position:fixed;z-index:1000}.modal-backdrop,.transaction-modal{height:100%;left:0;top:0;width:100%}.modal-backdrop{background:#00000080;position:absolute}.modal-content{background:#fff;border-radius:8px;box-shadow:0 20px 60px #00000059;max-width:500px;padding:2rem;position:relative;width:90%;z-index:1001}.modal-close{background:#0000;border:none;cursor:pointer;font-size:1.5rem;position:absolute;right:10px;top:10px}.modal-actions{display:flex;gap:1rem;margin-top:1rem}.edit-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#667eea,#764ba2);border:2px solid #ffffff4d;border-radius:12px;box-shadow:0 4px 15px #667eea80;color:#fff;cursor:pointer;font-weight:600;outline:none;padding:.625rem 1.5rem;transition:all .3s ease}.edit-button:hover{box-shadow:0 6px 20px #667eea99;filter:brightness(1.05);transform:translateY(-2px)}.delete-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#ff416c,#ff4b2b);border:2px solid #ff000080;border-radius:12px;box-shadow:0 4px 15px #ff4b2b80;color:#fff;cursor:pointer;font-weight:600;outline:none;padding:.625rem 1.5rem;transition:all .3s ease}.delete-button:hover{box-shadow:0 6px 20px #ff4b2b99;filter:brightness(1.05);transform:translateY(-2px)}.edit-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.edit-modal{background:#fff;border:4px solid #0000004d;border-radius:16px;box-shadow:0 20px 60px #0006;color:#000;display:flex;flex-direction:column;gap:1rem;max-height:auto;max-width:90%;padding:2rem}.edit-modal h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;font-size:1.5rem;margin:0 0 1rem}.edit-modal .grid-row{display:flex;gap:.75rem}.edit-modal .grid-row input,.edit-modal .grid-row select{box-shadow:inset 0 1px 3px #0000000d;flex:1 1}.edit-modal textarea{background:#f5f5f5;border:1px solid #555;border-radius:8px;box-shadow:inset 0 1px 3px #0000001a;color:#000;font-size:1rem;overflow:hidden;padding:.5rem;resize:none;width:100%}.modal-buttons{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.cancel-button{background:#fff;border:2px solid #fcc;border-radius:12px;box-shadow:0 4px 10px #0000001a;color:#c33;cursor:pointer;font-weight:600;padding:.625rem 1.5rem;transition:all .3s ease}.cancel-button:hover{background:#f8f8f8;box-shadow:0 6px 15px #0003;transform:translateY(-2px)}@media (max-width:500px){.edit-modal .grid-row{flex-wrap:wrap;gap:.5rem}.edit-modal .grid-row input[name=amount]{flex:1 1 100%}.edit-modal .grid-row input[name=title],.edit-modal .grid-row select[name=category]{flex-basis:calc(20% - 0.25rem);flex-grow:1;flex-shrink:1}.edit-modal .grid-row input[name=rate]{flex:0 0 35%;max-width:35%}.edit-modal textarea{height:120px}}
/*# sourceMappingURL=main.a9cd1f65.css.map*/