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}.projects-container{margin:0 auto;max-width:1200px;padding:20px}.projects-header{flex-wrap:wrap;justify-content:space-between;margin-bottom:30px}.projects-header,.projects-header-left{align-items:center;display:flex;gap:15px}.projects-header-left{flex:1 1;min-width:200px}.projects-title{color:#2c3e50;font-size:1.8rem;margin:0}.create-project-button{background-color:#27ae60;border-radius:4px;color:#fff;display:inline-block;padding:10px 20px;text-decoration:none;white-space:nowrap}.project-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #2aa4f71a;margin-bottom:20px;padding:20px}.project-grid{grid-gap:15px;display:grid;gap:15px}.project-card{background-color:#fff;border:1px solid #2aa4f733;border-radius:4px;cursor:pointer;padding:15px;transition:all .2s ease}.project-card:hover{box-shadow:0 4px 8px #2aa4f733;transform:translateY(-2px)}.project-info{margin-bottom:10px}.project-name{font-size:1.1rem;font-weight:700;margin-bottom:5px}.project-status{color:#666;font-size:.9em}.project-numbers{align-items:center;display:flex;gap:15px;justify-content:space-between}.project-values{min-width:120px;text-align:right}.project-profit,.project-value{margin-bottom:5px}.project-margin{font-size:.9em;font-weight:700}.delete-button{border-radius:4px;cursor:pointer;padding:8px;transition:all .2s ease}.delete-modal{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background-color:#fff;border-radius:8px;max-width:400px;padding:30px;text-align:center;width:100%}.modal-buttons{display:flex;gap:10px;justify-content:center;margin-top:20px}@media (max-width:768px){.projects-container{padding:10px}.projects-header{align-items:stretch;flex-direction:column}.projects-header-left{align-items:center;flex-direction:column;margin-bottom:10px;width:100%}.projects-header-left h1{margin:10px 0 0}.projects-title{font-size:1.5rem;text-align:center}.create-project-button{padding:12px;text-align:center;width:100%}.project-section{padding:15px}.project-card{padding:12px}.project-numbers{align-items:flex-start;flex-direction:column;gap:8px}.project-values{width:100%}.delete-button{position:absolute;right:10px;top:10px}.project-card{padding-right:40px;position:relative}.modal-content{margin:20px;padding:15px}.modal-buttons{flex-direction:column;gap:10px}.modal-buttons button{width:100%}}.loading-container{align-items:center;background-color:#ffffffe6;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.loading-logo{animation:spin 1s linear infinite;height:auto;width:100px}.edit-project-container{display:flex;min-height:calc(100vh - 64px)}.sidebar-subcontractors{background-color:#f5f5f5;border-right:1px solid #ddd;height:100vh;padding:20px;position:sticky;top:0;width:250px}.sidebar-subcontractors .form-select{margin-bottom:15px}.main-content{flex:1 1;padding:20px}.project-header{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;flex-wrap:wrap;justify-content:space-between;margin-bottom:30px;padding:20px}.project-header,.project-header-left{align-items:center;display:flex;gap:15px}.project-header-left{flex:1 1;min-width:200px}.back-button,.home-button{background-color:#f0f2f5;border:1px solid #e1e5ea;border-radius:6px;color:#2c3e50;font-weight:500;padding:8px 16px;text-decoration:none;transition:all .2s ease;white-space:nowrap}.back-button:hover,.home-button:hover{background-color:#e9ecef;border-color:#cbd5e1}.back-button{background-color:#e8f4f8;border-color:#b8dce8}.back-button:hover{background-color:#d4eaf3;border-color:#a0d0e0}.calculator-content{display:flex;flex-direction:row;gap:20px}.calculator-main{flex:1 1;max-width:calc(100% - 320px)}.summary-sidebar{height:fit-content;position:sticky;top:20px;width:300px}.summary-card{word-wrap:break-word;overflow-wrap:break-word}.summary-content{display:flex;flex-direction:column;gap:12px}.summary-item{word-wrap:break-word;align-items:flex-start;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;overflow-wrap:break-word;padding:8px 0}.summary-item:last-child{border-bottom:none}.summary-item strong{color:#2c3e50;flex:0 0 auto;margin-right:10px}.summary-item span{color:#666;flex:1 1;text-align:right;word-break:break-word}.input-group{align-items:center;display:flex;flex-wrap:nowrap;gap:10px;justify-content:flex-start;margin-bottom:20px}.card{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;padding:20px}@media (max-width:768px){.edit-project-container{flex-direction:column}.sidebar-subcontractors{border-bottom:1px solid #ddd;border-right:none;height:auto;position:static;width:100%}.project-header{flex-direction:column;gap:15px;text-align:center}.project-header-left{align-items:center;flex-direction:column;width:100%}.project-header-left h1{margin:10px 0 0}.calculator-content{flex-direction:column}.calculator-main{max-width:100%}.summary-sidebar{position:static;width:100%}.input-group{align-items:stretch;flex-direction:column}.form-select{max-width:100%}.invoice-entry,.labour-entry{flex-direction:column;gap:10px}.entry-details{align-items:flex-start;flex-direction:column}}@media (min-width:769px) and (max-width:1024px){.calculator-main{max-width:calc(100% - 270px)}.summary-sidebar{width:250px}}.form-input{flex:1 1;font-size:16px;min-width:0}.form-input,.form-select{border:1px solid #ddd;border-radius:4px;padding:10px}.form-select{max-width:300px;min-width:200px}.btn{border:none;border-radius:4px;cursor:pointer;font-size:14px;padding:10px 20px}.btn-primary{background-color:#2aa4f7;color:#fff}.btn-danger{background-color:#ffecec;border:1px solid #f5c6cb;color:#dc3545}.section-title{margin-bottom:20px;text-align:center}.invoice-entry,.labour-entry{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:10px}.invoice-entry:last-child,.labour-entry:last-child{border-bottom:none}.entry-details{align-items:center;display:flex;gap:10px}.entry-details span{margin:0 5px}.landing-page{background:#fff;bottom:0;left:0;min-height:100vh;position:fixed;right:0;top:0;width:100vw;z-index:1000}.hero-section{align-items:center;display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:2rem;position:relative}.hero-background{background:linear-gradient(135deg,#2aa4f71a,#6635ff1a);bottom:0;left:0;position:absolute;right:0;top:0;z-index:0}.hero-content{max-width:800px;padding:2rem;position:relative;text-align:center;z-index:1}.hero-logo{animation:fadeInDown 1s ease-out;height:auto;margin-bottom:2rem;width:300px}.hero-title{animation:fadeInUp 1s ease-out .3s both;color:#2c3e50;font-size:3rem;margin-bottom:1.5rem}.hero-subtitle{animation:fadeInUp 1s ease-out .6s both;color:#666;font-size:1.25rem;margin-bottom:2rem}.cta-button{animation:fadeInUp 1s ease-out .9s both;background:linear-gradient(135deg,#2aa4f7,#6635ff);border:none;border-radius:50px;box-shadow:0 4px 15px #2aa4f733;color:#fff;cursor:pointer;font-size:1.1rem;padding:1rem 2.5rem;transition:all .3s ease}.cta-button:hover{box-shadow:0 6px 20px #2aa4f74d;transform:translateY(-2px)}.features-section{background:#f8f9fa;padding:6rem 2rem;position:relative;z-index:1}.features-grid{grid-gap:2.5rem;display:grid;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:0 auto;max-width:1200px;padding:0 1rem}.feature-card{background:#fff;border-radius:20px;box-shadow:0 4px 6px #0000000d;overflow:hidden;padding:2.5rem;position:relative;text-align:center;transition:all .3s ease}.feature-card:before{background:linear-gradient(90deg,#2aa4f7,#6635ff);content:"";height:4px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.feature-card:hover{box-shadow:0 8px 15px #0000001a;transform:translateY(-5px)}.feature-card:hover:before{opacity:1}.feature-icon{font-size:3rem;margin-bottom:1.5rem}.feature-card h3{color:#2c3e50;font-size:1.5rem;margin-bottom:1rem}.feature-card p{color:#666;line-height:1.6}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.1rem}.hero-logo{width:250px}.features-section{padding:4rem 1rem}.feature-card{padding:2rem}}.dashboard-container{background:linear-gradient(135deg,#f8f9fa,#e9ecef);margin:0 auto;max-width:1400px;min-height:100vh;padding:1rem}.dashboard-header{margin:2rem 0;padding-top:1rem;position:relative;text-align:center}.dashboard-logo{height:auto;margin-bottom:1rem;width:300px}.dashboard-title{color:#2c3e50;font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.dashboard-subtitle{color:#666;font-size:1.2rem;margin-bottom:1.5rem}.dashboard-logout-button{background:linear-gradient(90deg,#ff4b6e,#ff6b4b);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;margin-top:1rem;padding:.75rem 1.5rem;transition:all .2s ease}.dashboard-logout-button:hover{box-shadow:0 4px 12px #ff4b6e33;transform:translateY(-1px)}.dashboard-actions,.dashboard-content{margin:0 auto;max-width:1200px}.dashboard-actions{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));padding:.5rem}.dashboard-box{align-items:center;background:#fff;border:1px solid #2aa4f71a;border-radius:12px;box-shadow:0 2px 4px #0000000d;display:flex;flex-direction:column;height:100%;justify-content:center;overflow:hidden;padding:1.5rem;position:relative;text-align:center;transition:all .3s ease}.dashboard-box:before{background:linear-gradient(90deg,#2aa4f7,#6635ff);content:"";height:3px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.dashboard-box:hover{box-shadow:0 4px 8px #2aa4f71a;transform:translateY(-3px)}.dashboard-box:hover:before{opacity:1}.dashboard-box h3{color:#2c3e50;font-size:1.25rem;margin:1rem 0}.dashboard-box p{color:#666;font-size:.95rem;line-height:1.4;margin:.5rem 0}.dashboard-box .icon{font-size:2rem;margin-bottom:.5rem}@media (max-width:768px){.dashboard-container{padding:.5rem}.dashboard-title{font-size:2rem}.dashboard-subtitle{font-size:1rem}.dashboard-actions{gap:1rem;grid-template-columns:1fr;padding:.5rem}.dashboard-box{padding:1.25rem}}.dashboard-stats-row{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:3rem}.stats-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;padding:1.5rem;transition:transform .2s ease}.stats-card:hover{transform:translateY(-2px)}.stats-card h3{color:#64748b;font-size:.875rem;letter-spacing:.05em;margin:0 0 .5rem;text-transform:uppercase}.stats-number{color:#1e293b;font-size:2rem;font-weight:700}.dashboard-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:0 auto;max-width:1400px}.skeleton-loading{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;background:linear-gradient(90deg,#d1d5db33 25%,#d1d5db3d 37%,#d1d5db33 63%);background-size:400% 100%}@keyframes pulse{0%{background-position:100% 50%}to{background-position:0 50%}}@media (max-width:768px){.dashboard-logo{width:350px!important}.dashboard-container{padding:10px}}@media (max-width:480px){.dashboard-logo{width:280px!important}}.dashboard-todo-box{margin:2rem auto;max-width:800px;width:100%}.dashboard-todo-box .dashboard-box{padding:1.5rem}.dashboard-todo-box .box-title{align-items:center;color:#2c3e50;display:flex;font-size:1.5rem;margin-bottom:1.5rem}.dashboard-todo-box .box-content{padding:0}.dashboard-todo-box .todo-container{box-shadow:none;margin:0;padding:0}.dashboard-todo-box .todo-title{display:none}.dashboard-todo-box .todo-form{margin-bottom:1.5rem}.dashboard-todo-box .todo-item{background-color:#f8f9fa;border:1px solid #0000001a;margin-bottom:.5rem}@media (max-width:768px){.dashboard-todo-box{margin:1rem}.dashboard-todo-box .dashboard-box{padding:1rem}}.todo-page{margin:0 auto;max-width:800px;padding:20px}.todo-header{margin-bottom:2rem;text-align:center}.todo-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#2aa4f7,#6635ff);-webkit-background-clip:text;color:#2c3e50;font-size:2rem}.todo-container{background-color:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;padding:2rem}.todo-form{display:flex;gap:10px;margin-bottom:20px}.todo-input{background-color:#fff;border:1px solid #ddd;border-radius:8px;flex:1 1;font-size:16px;padding:12px}.todo-list{display:flex;flex-direction:column;gap:10px;transition:opacity .3s ease}.todo-item{background-color:#f8f9fa;border:1px solid #0000001a;border-radius:8px;justify-content:space-between;padding:15px;transition:all .3s ease}.todo-content,.todo-item{align-items:center;display:flex}.todo-content{gap:10px}.todo-checkbox{cursor:pointer;height:20px;width:20px}.todo-text{color:#333;font-size:16px}.todo-item.completed .todo-text{color:#6c757d;text-decoration:line-through}.no-todos{color:#6c757d;font-style:italic;padding:2rem;text-align:center}@media (max-width:768px){.todo-page{padding:10px}.todo-container{padding:1rem}.todo-form{flex-direction:column}.todo-input{width:100%}.todo-item{align-items:flex-start;flex-direction:column;gap:10px}.btn,.todo-content{width:100%}}.loading-spinner{align-items:center;display:flex;justify-content:center;min-height:200px;transition:opacity .3s ease}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#2aa4f7;height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.timesheet-container{margin:0 auto;max-width:1200px;padding:20px}.timesheet-header{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:20px}.timesheet-header-left{align-items:center;display:flex;flex:1 1;gap:15px;min-width:200px}.home-button{background-color:#f0f2f5;border:1px solid #e1e5ea;border-radius:6px;color:#2c3e50;font-weight:500;padding:8px 16px;text-decoration:none;transition:all .2s ease;white-space:nowrap}.home-button:hover{background-color:#e9ecef;border-color:#cbd5e1}.timesheet-header h1{margin:0}.month-switcher{align-items:center;display:flex;gap:10px}.month-switcher button{background:#f0f2f5;border:1px solid #e1e5ea;border-radius:6px;cursor:pointer;padding:6px 10px}.month-label{color:#2c3e50;font-weight:600}.calendar{background:#fff;border-radius:12px;box-shadow:0 2px 6px #0000000f;padding:12px}.calendar-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(7,1fr)}.calendar-headings{margin-bottom:8px}.calendar-heading{color:#6b7280;font-weight:600;padding:6px 0;text-align:center}.calendar-cell{background:#f9fafb;border:1px solid #eef2f7;border-radius:10px;cursor:pointer;min-height:90px;padding:8px;position:relative;transition:transform .15s ease,box-shadow .15s ease}.calendar-cell:hover{box-shadow:0 6px 12px #0000000f;transform:translateY(-2px)}.calendar-cell.empty{background:#0000;border:none;box-shadow:none;cursor:default}.cell-date{color:#334155;font-weight:600}.cell-badges{bottom:8px;display:flex;flex-direction:column;gap:4px;left:4px;max-height:calc(100% - 30px);overflow-y:auto;position:absolute;right:4px}.cell-badge{border:1px solid;border-radius:6px;font-size:11px;font-weight:500;line-height:1.2;overflow:hidden;padding:3px 6px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.ts-modal-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.ts-modal{background:#fff;border-radius:12px;box-shadow:0 12px 30px #0003;max-width:760px;padding:20px;width:95%}.ts-modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.ts-close{background:none;border:none;cursor:pointer;font-size:24px}.ts-existing-entries{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;max-height:260px;overflow:auto;padding:12px}.ts-empty{color:#64748b;margin:10px 0;text-align:center}.ts-entry-section{margin-bottom:16px}.ts-entry-section:last-child{margin-bottom:0}.ts-section-title{color:#475569;font-size:14px;font-weight:600;margin:0 0 8px}.ts-entry-list{display:flex;flex-direction:column;gap:8px}.ts-entry-row{grid-gap:8px;align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:8px;grid-template-columns:2fr 2fr auto;padding:10px}.ts-entry-row.ts-entry-staged{background:#fef3c7;border-color:#fbbf24;border-style:dashed}.ts-entry-col{color:#334155}.ts-entry-actions .ts-delete{background:#ffecec;border:1px solid #f5c6cb;border-radius:6px;color:#dc3545;cursor:pointer;padding:6px 10px}.ts-form{background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin-top:16px;padding:12px}.ts-form-row{grid-gap:10px;align-items:end;display:grid;gap:10px;grid-template-columns:2fr 2fr}.ts-field label{color:#334155;display:block;font-weight:600;margin-bottom:6px}.ts-field select{background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:10px;width:100%}.ts-fill-range-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:12px;margin-top:16px;padding:12px}.ts-toggle-fill-range{align-items:center;background:none;border:none;color:#2563eb;cursor:pointer;display:flex;font-weight:600;gap:6px;padding:4px 0;text-align:left;width:100%}.ts-toggle-fill-range:hover{color:#1e40af}.ts-range-picker{border-top:1px solid #e2e8f0;margin-top:12px;padding-top:12px}.ts-range-inputs{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-bottom:8px}.ts-range-info{text-align:center}.ts-range-count{color:#2563eb;font-size:13px;font-weight:500}.ts-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:12px}.ts-add-to-list{background:linear-gradient(90deg,#2aa4f7,#6635ff);border:none;border-radius:8px;color:#fff;cursor:pointer;padding:10px 16px;transition:all .2s ease}.ts-add-to-list:hover{box-shadow:0 4px 12px #2aa4f74d;transform:translateY(-1px)}.ts-save-all{background:linear-gradient(90deg,#27ae60,#229954);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 16px;transition:all .2s ease}.ts-save-all:hover:not(:disabled){box-shadow:0 4px 12px #27ae604d;transform:translateY(-1px)}.ts-save-all:disabled{cursor:not-allowed;opacity:.6}.ts-fill-range-btn{background:linear-gradient(90deg,#f59e0b,#d97706);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 16px;transition:all .2s ease}.ts-fill-range-btn:hover:not(:disabled){box-shadow:0 4px 12px #f59e0b4d;transform:translateY(-1px)}.ts-fill-range-btn:disabled{cursor:not-allowed;opacity:.6}.top-actions{align-items:center;background-color:#1a1a1a;box-shadow:0 2px 4px #0000001a;display:flex;flex-wrap:wrap;justify-content:space-between;padding:1rem;position:relative}.top-actions:after{background:linear-gradient(90deg,#2aa4f7,#6635ff);bottom:0;content:"";height:3px;left:0;position:absolute;right:0}.nav-logo-link{align-items:center;color:#fff;display:flex;font-size:1.25rem;font-weight:700;height:40px;text-decoration:none}.nav-logo{display:block;height:32px;width:auto}.top-actions-left,.top-actions-right{align-items:center;display:flex}.top-actions-right{flex-wrap:wrap;gap:1rem}.nav-button{background:linear-gradient(90deg,#2aa4f7,#6635ff);border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:.9rem;font-weight:500;line-height:1.5;padding:.75rem 1rem;text-align:center;text-decoration:none;transition:all .2s ease;white-space:nowrap}.logout-button{background:linear-gradient(90deg,#ff4b6e,#ff6b4b)}.nav-button:hover{box-shadow:0 4px 12px #2aa4f733;transform:translateY(-1px)}.logout-button:hover{box-shadow:0 4px 12px #ff4b6e33}@media (min-width:768px){.top-actions{padding:1rem 2rem}.nav-logo{height:40px}}@media (max-width:768px){.top-actions{flex-direction:column;gap:1rem;padding:1rem}.top-actions-right{justify-content:center;width:100%}.nav-button{margin:.25rem 0;width:100%}}
/*# sourceMappingURL=main.6359344f.css.map*/