@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@500&display=swap";.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);height:100vh;background:var(--sidebar-bg);display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.06);position:relative;z-index:20}.sidebar-brand{display:flex;align-items:baseline;justify-content:center;padding:24px 18px 28px;border-bottom:1px solid rgba(255,255,255,.06);line-height:1}.sidebar-brand-text{font-size:24px;font-weight:500;letter-spacing:.04em;color:#fff;font-family:Montserrat,sans-serif;text-transform:uppercase}.sidebar-brand-chevron{height:18px;width:12px;margin:0 4px;display:inline-flex;align-items:center;justify-content:center;position:relative;bottom:-1px}.sidebar-brand-chevron svg{height:100%;width:100%;filter:drop-shadow(0px 1px 0px rgba(0,190,240,.5))}.sidebar-nav{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:2px}.sidebar-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--border-radius-sm);color:var(--sidebar-text);font-size:13px;font-weight:500;transition:all var(--transition-fast);position:relative;text-decoration:none}.sidebar-nav-item:hover,.sidebar-nav-item--active{color:var(--sidebar-text-active);background:var(--sidebar-bg-hover)}.sidebar-nav-item--active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.sidebar-footer{padding:16px 18px;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:12px}.sidebar-settings-link{color:var(--sidebar-text);display:flex;align-items:center;gap:10px;font-size:13px;font-weight:500;padding:8px 0;transition:color var(--transition-fast);text-decoration:none}.sidebar-settings-link:hover,.sidebar-settings-link.active{color:var(--sidebar-text-active)}.sidebar-user{display:flex;align-items:center;gap:10px;padding:12px 0 0;border-top:1px solid rgba(255,255,255,.06);margin-top:4px}.sidebar-user-avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px;color:#fff;flex-shrink:0}.sidebar-user-info{display:flex;flex-direction:column;flex:1;min-width:0}.sidebar-user-name{font-size:13px;font-weight:500;color:var(--sidebar-text-active);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:11px;color:var(--sidebar-text);text-transform:capitalize}.sidebar-logout-btn{background:none;border:none;color:var(--sidebar-text);cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.sidebar-logout-btn:hover{color:#ef4444;background:#ef44441a}.task-progress-item{display:flex;flex-direction:column;gap:6px;padding:12px 0;border-bottom:1px solid var(--border-light)}.task-progress-item:last-child{border-bottom:none}.task-progress-info{display:flex;justify-content:space-between;align-items:flex-end}.tp-labels{display:flex;flex-direction:column}.tp-label{font-size:13px;font-weight:500;color:var(--text-primary)}.tp-sub{font-size:11px;color:var(--text-muted)}.tp-stats{font-size:13px;font-weight:600;color:var(--text-primary)}.tp-bar-bg{height:8px;width:100%;background-color:var(--bg-secondary);border-radius:4px;overflow:hidden}.tp-bar-fill{height:100%;display:block;border-radius:4px;transition:width .3s ease,background-color .3s ease}.tp-details{font-size:11px;color:var(--text-muted);text-align:right}.task-progress-row{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border-light);gap:24px;width:100%}.task-progress-row:last-child{border-bottom:none}.tp-row-left{display:flex;flex-direction:column;width:250px;flex-shrink:0}.tp-row-right{flex:1;display:flex;align-items:center;gap:16px;min-width:0}.tp-row-right .tp-bar-bg{flex:1;height:12px;background-color:#e5e7eb;border-radius:6px;overflow:hidden;min-width:100px;display:block;position:relative}.tp-row-stats{display:grid;grid-template-columns:50px 90px;align-items:center;gap:8px}.tp-percent-val{font-size:14px;font-weight:700;text-align:right}.tp-details-val{font-size:12px;color:var(--text-muted);font-weight:400;white-space:nowrap;text-align:right}.dashboard-page{padding:32px 40px;overflow-y:auto;height:100%}.dashboard-hero{margin-bottom:32px}.dashboard-title{font-size:28px;font-weight:700;color:var(--text-primary);letter-spacing:-.5px;margin-bottom:6px}.dashboard-title-accent{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-subtitle{font-size:15px;color:var(--text-secondary)}.dashboard-hero-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:12px;border-top:1px solid var(--border-color)}.dashboard-clock{display:flex;flex-direction:column;align-items:flex-end;gap:4px;background:transparent;padding:0;border-radius:0;border:none}.dashboard-clock-item{display:flex;align-items:center;gap:12px;color:var(--text-primary)}.dashboard-clock-icon{color:var(--accent)}.dashboard-clock-text{font-size:32px;font-weight:700;letter-spacing:-1px;color:var(--text-primary)}.dashboard-clock-item:first-child .dashboard-clock-text{color:var(--text-primary)}.dashboard-clock-divider{display:none}.dashboard-section{margin-bottom:32px}.dashboard-section-title{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:12px;letter-spacing:-.2px;display:flex;align-items:center;gap:8px}.dashboard-todo-list{background:var(--bg-card);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);overflow:hidden;display:flex;flex-direction:column}.dashboard-todo-item{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color);transition:background var(--transition-fast)}.dashboard-todo-item:last-child{border-bottom:none}.dashboard-todo-item:hover{background:var(--bg-primary)}.dashboard-todo-main{display:flex;flex-direction:column;gap:4px}.dashboard-todo-desc{font-size:14px;font-weight:500;color:var(--text-primary)}.dashboard-todo-meta{display:flex;align-items:center;font-size:12px;color:var(--text-secondary)}.dashboard-todo-date,.dashboard-todo-time{display:flex;align-items:center}.dashboard-todo-assignees{display:flex;margin-left:12px}.todo-mini-avatar{width:24px;height:24px;border-radius:50%;border:2px solid var(--bg-card);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;margin-left:-8px}.todo-mini-avatar:first-child{margin-left:0}.dashboard-recent-tasks{margin-top:32px}.dashboard-tasks-grid{display:flex;flex-direction:column;gap:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);padding:0 24px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:modal-fade-in .2s ease}.modal-content{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:modal-slide-up .25s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0}.modal-title{font-size:17px;font-weight:600;color:var(--text-primary);letter-spacing:-.3px}.modal-close{width:32px;height:32px;border-radius:var(--border-radius-sm);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all var(--transition-fast)}.modal-close:hover{background:var(--bg-primary);color:var(--text-primary)}.modal-body{padding:20px 24px 24px}.form-group{margin-bottom:16px}.form-group:last-child{margin-bottom:0}.form-row .form-group{margin-bottom:0}.form-label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-up{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.projects-page{height:100%;display:flex;flex-direction:column;overflow:hidden}.page-tab{padding:14px 18px;font-size:13px;font-weight:500;color:var(--text-secondary);border-bottom:2px solid transparent;transition:all var(--transition-fast);cursor:pointer;position:relative;bottom:-1px}.page-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 32px;background:var(--bg-card);border-bottom:1px solid var(--border-color);gap:12px;flex-shrink:0}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:8px}.search-box{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:10px;color:var(--text-muted);pointer-events:none}.search-input{padding:7px 10px 7px 32px;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:13px;width:200px;background:var(--bg-primary)}.toolbar-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:12px;font-weight:500;color:var(--text-secondary);background:var(--bg-card);transition:all var(--transition-fast);white-space:nowrap}.toolbar-btn:hover{background:var(--bg-primary);color:var(--text-primary)}.toolbar-btn--active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.table-wrapper{flex:1;overflow-y:auto;padding:0}.data-table{width:100%;border-collapse:collapse;table-layout:fixed}.data-table thead{position:sticky;top:0;z-index:5}.data-table th{padding:10px 16px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-primary);border-bottom:1px solid var(--border-color);text-align:center;white-space:nowrap;-webkit-user-select:none;user-select:none}.col-sortable{cursor:pointer;transition:color var(--transition-fast)}.col-sortable:hover{color:var(--text-primary)}.sort-indicator{margin-left:4px;font-size:10px}.data-table td{padding:12px 16px;font-size:13px;color:var(--text-primary);border-bottom:1px solid var(--border-color);background:var(--bg-card);vertical-align:middle}.table-row{transition:background var(--transition-fast)}.table-row:hover td{background:var(--bg-primary)}.project-name-cell{display:flex;align-items:center;gap:10px;font-weight:500}.project-color-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;transition:transform .2s ease}.table-row:hover .project-color-dot{transform:scale(1.2)}.col-client{color:var(--text-secondary)}.col-date{color:var(--text-secondary);font-size:12px}.status-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.2px}.status-badge--active{background:var(--status-active-bg);color:var(--status-active)}.status-badge--archived{background:var(--status-archived-bg);color:var(--status-archived)}.status-badge--hold{background:#f973161a;color:#f97316;border:1px solid rgba(249,115,22,.2)}.sort-dropdown-wrapper{position:relative}.sort-btn{cursor:pointer}.sort-dir-indicator{font-size:10px;opacity:.7}.sort-dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.sort-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:160px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);box-shadow:0 4px 16px #0000001a;z-index:100;overflow:hidden}.sort-dropdown-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 14px;font-size:12px;font-weight:500;color:var(--text-secondary);background:none;border:none;cursor:pointer;text-align:left;transition:all .15s}.sort-dropdown-item:hover{background:var(--bg-primary);color:var(--text-primary)}.sort-dropdown-item.active{color:var(--accent);font-weight:600}.sort-check{font-size:11px;opacity:.8}.col-ref{color:var(--text-muted);font-size:12px;font-family:var(--font-family);text-align:center}.col-date{color:var(--text-secondary);font-size:12px;text-align:center}.data-table td:nth-child(4){text-align:center}.no-date-label{color:var(--text-muted)}.data-table th.col-actions-header{text-align:center;min-width:90px}.data-table td.col-actions{text-align:center;padding:12px 8px;min-width:90px}.col-actions-wrap{display:inline-flex;align-items:center;justify-content:center;gap:2px}.action-btn{width:30px;height:30px;border-radius:var(--border-radius-sm);display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all var(--transition-fast)}.action-btn:hover{background:var(--bg-primary);color:var(--text-primary)}.action-btn-danger:hover{background:#ef44441a;color:#ef4444}.table-empty td{padding:60px 20px;text-align:center;background:var(--bg-card)}.table-empty-content{display:flex;flex-direction:column;align-items:center;gap:8px}.table-empty-text{font-size:14px;color:var(--text-muted)}.modal-tabs{display:flex;gap:16px;margin-bottom:24px;border-bottom:1px solid var(--border-color)}.modal-tab{padding:8px 12px;font-size:13px;font-weight:500;color:var(--text-muted);border-bottom:2px solid transparent;cursor:pointer;transition:all .2s;background:none;border-top:none;border-left:none;border-right:none}.modal-tab:hover{color:var(--text-primary)}.modal-tab.modal-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.upload-section{margin-bottom:24px;border:2px dashed var(--border-color);border-radius:var(--border-radius-md);padding:24px;text-align:center;background:var(--bg-primary);transition:border-color .2s}.upload-section:hover{border-color:var(--accent)}.upload-box{cursor:pointer;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.upload-placeholder{display:flex;flex-direction:column;gap:8px;align-items:center;color:var(--text-secondary)}.error-msg{margin-top:12px;font-size:13px;color:var(--danger)}.form-row{display:flex;gap:16px;margin-bottom:16px}.form-row .form-group{flex:1;margin-bottom:0}.form-textarea{width:100%;padding:10px;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:13px;background:var(--bg-card);color:var(--text-primary);resize:vertical;font-family:inherit;min-height:80px}.form-textarea:focus{outline:none;border-color:var(--accent)}.stages-preview{margin-top:24px;margin-bottom:24px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:16px;max-height:250px;overflow-y:auto}.stages-title{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px}.stages-list{display:flex;flex-direction:column;gap:12px}.stage-item{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:10px 12px;background:var(--bg-card)}.stage-header{font-weight:600;font-size:13px;margin-bottom:8px;color:var(--text-primary);border-bottom:1px solid var(--border-light);padding-bottom:6px}.task-item{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary);padding:4px 0}.task-fee{font-weight:500;color:var(--text-primary);font-family:monospace}.team-page{height:100%;display:flex;flex-direction:column;overflow:hidden}.team-content{flex:1;overflow-y:auto;padding:24px 32px}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}.team-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:20px;transition:all var(--transition-base);position:relative;display:flex;flex-direction:column}.team-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.team-card-header{display:flex;align-items:center;gap:14px;margin-bottom:14px}.team-card-avatar{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;flex-shrink:0;letter-spacing:-.5px}.team-card-name-group{display:flex;flex-direction:column;gap:4px}.team-card-name{font-size:14px;font-weight:600;color:var(--text-primary);line-height:1.2}.team-card-email{font-size:12px;color:var(--text-secondary);margin-bottom:12px}.role-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;width:fit-content}.contact-badge--client{background:#10b9811a;color:#10b981}.contact-badge--consultant{background:#3b82f61a;color:#3b82f6}.team-card-workdays{margin-top:auto;margin-bottom:12px}.workdays-label{display:block;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;margin-bottom:6px}.workdays-pills{display:flex;gap:4px}.workday-pill{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--text-muted);background:var(--bg-primary);border:1px solid var(--border-color)}.workday-pill--active{background:var(--accent);color:#fff;border-color:var(--accent)}.team-card-actions{display:flex;gap:4px;padding-top:12px;border-top:1px solid var(--border-color)}.card-action-btn{width:30px;height:30px;border-radius:var(--border-radius-sm);display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all var(--transition-fast)}.card-action-btn:hover{background:var(--bg-primary);color:var(--text-primary)}.card-action-btn--danger:hover{background:#ef44441a;color:#ef4444}.days-selector{display:flex;gap:8px}.day-toggle{flex:1;padding:8px;font-size:12px;font-weight:500;border-radius:var(--border-radius-sm);border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);transition:all var(--transition-fast)}.day-toggle:hover{border-color:var(--accent);color:var(--accent)}.day-toggle--active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.day-toggle--active:hover{background:var(--accent-hover);color:#fff}.team-empty{display:flex;align-items:center;justify-content:center;height:200px;font-size:14px;color:var(--text-muted)}.team-card-leave-preview{margin-top:8px;margin-bottom:4px}.leave-preview-label{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;color:#8b5cf6;background:#8b5cf614;padding:3px 10px;border-radius:20px}.leave-modal-content{display:flex;flex-direction:column;gap:1.25rem}.leave-add-form{display:flex;flex-direction:column;gap:.75rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.leave-entries-section{display:flex;flex-direction:column;gap:.5rem}.leave-entries-title{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0}.leave-empty-text{font-size:.85rem;color:var(--text-muted);padding:1rem 0}.leave-entries-list{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow-y:auto}.leave-entry{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--border-radius-sm);background:var(--bg-primary);transition:background .15s}.leave-entry:hover{background:#0000000a}.leave-entry--past{opacity:.5}.leave-entry-color{width:4px;height:28px;border-radius:2px;flex-shrink:0}.leave-entry-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.leave-entry-type{font-size:.8rem;font-weight:600;color:var(--text-primary)}.leave-entry-dates{font-size:.75rem;color:var(--text-secondary)}.leave-entry-note{font-size:.7rem;color:var(--text-muted);font-style:italic}.leave-entry-delete{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0;transition:all .15s;cursor:pointer;background:none;border:none;padding:0}.leave-entry-delete:hover{background:#ef44441a;color:#ef4444}.contact-card{height:100%}.contact-details{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.contact-detail-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-secondary)}.contact-detail-item svg{opacity:.6;flex-shrink:0}.contact-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:16px;margin-bottom:12px}.contact-tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:var(--text-muted);background:var(--bg-primary);padding:2px 8px;border-radius:4px;border:1px solid var(--border-color)}.contact-form .form-row{display:flex;gap:16px}@media(max-width:600px){.contact-form .form-row{flex-direction:column;gap:0}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#0c0e12;background-image:radial-gradient(at 0% 0%,rgba(0,190,240,.05) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(245,158,11,.05) 0px,transparent 50%);position:relative;overflow:hidden;padding:20px}.login-glass-card{width:100%;max-width:440px;background:#17191e99;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:24px;padding:48px;box-shadow:0 25px 50px -12px #00000080;z-index:10;animation:fadeIn .6s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:40px}.login-logo{display:flex;flex-direction:row;align-items:baseline;justify-content:center;margin-bottom:24px}.logo-text{font-size:28px;font-weight:800;letter-spacing:4px;color:#fff;line-height:1}.logo-subtext{font-size:10px;font-weight:600;letter-spacing:6px;color:#4a5568;margin-top:4px;text-transform:uppercase}.login-header h1{font-size:24px;font-weight:700;color:#fff;margin-bottom:8px}.login-header p{color:#94a3b8;font-size:15px}.login-form{display:flex;flex-direction:column;gap:24px}.login-error-msg{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#ef4444;padding:12px 16px;border-radius:12px;display:flex;align-items:center;gap:12px;font-size:14px}.login-input-group{display:flex;flex-direction:column;gap:8px}.login-input-group label{font-size:14px;font-weight:600;color:#94a3b8;margin-left:4px}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:16px;color:#64748b;transition:color .3s}.input-wrapper input{width:100%;background:#0f111599;border:1px solid rgba(255,255,255,.05);border-radius:14px;padding:14px 16px 14px 48px;color:#fff;font-size:15px;transition:all .3s}.input-wrapper input:focus{outline:none;border-color:#00bef0;background:#00bef00d;box-shadow:0 0 0 4px #00bef01a}.input-wrapper input:focus+.input-icon{color:#00bef0}.login-options{display:flex;justify-content:space-between;align-items:center}.remember-me{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.remember-me input{width:18px;height:18px;border-radius:4px;accent-color:#00bef0;cursor:pointer}.remember-me span{font-size:14px;color:#94a3b8}.login-submit-btn{background:linear-gradient(135deg,#00bef0,#008eb3);color:#fff;border:none;border-radius:14px;padding:14px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .3s;margin-top:8px}.login-submit-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px -10px #00bef080;filter:brightness(1.1)}.login-submit-btn:active{transform:translateY(0)}.login-submit-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.animate-spin{animation:spin 1s linear infinite}.login-footer{margin-top:40px;text-align:center}.login-footer p{font-size:13px;color:#4b5563}.login-bg-blob{position:absolute;width:600px;height:600px;border-radius:50%;filter:blur(100px);opacity:.15;z-index:1}.blob-1{top:-200px;left:-200px;background:#00bef0}.blob-2{bottom:-200px;right:-200px;background:#f59e0b}@media(max-width:480px){.login-glass-card{padding:32px 24px}}.admin-page{flex:1;padding:32px 40px;overflow-y:auto;background:var(--bg-primary)}.admin-header{margin-bottom:24px}.admin-title{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.admin-subtitle{font-size:14px;color:var(--text-secondary)}.admin-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--border-color);padding-bottom:0}.admin-tab{padding:12px 24px;font-size:14px;font-weight:600;color:var(--text-secondary);background:none;border:none;cursor:pointer;position:relative;transition:all .2s}.admin-tab:hover{color:var(--text-primary)}.admin-tab.active{color:var(--accent)}.admin-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent)}.admin-section{background:var(--bg-card);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);padding:24px;box-shadow:var(--shadow-sm)}.admin-section-title{font-size:18px;font-weight:600;margin-bottom:20px;border-bottom:1px solid var(--border-color);padding-bottom:16px}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:0 12px;height:64px;border-bottom:1px solid var(--border-color);text-align:left;vertical-align:middle}.admin-table th{font-size:11px;text-transform:uppercase;color:var(--text-secondary)}.member-info{display:flex;flex-direction:column}.member-name{font-weight:600;color:var(--text-primary)}.member-email{font-size:12px;color:var(--text-secondary)}.role-badge{padding:4px 12px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase}.color-preview{width:24px;height:24px;border-radius:50%;border:2px solid white;box-shadow:0 0 0 1px var(--border-color)}.color-picker-grid{display:flex;flex-wrap:wrap;gap:6px}.color-swatch{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .15s}.color-swatch:hover{transform:scale(1.2)}.color-swatch.active{border-color:var(--text-primary);box-shadow:0 0 0 2px #fff,0 0 0 3px var(--text-primary)}.rate-display{font-size:14px;font-weight:500;color:var(--text-primary)}.rate-input-group{display:flex;align-items:center;gap:2px}.rate-prefix,.rate-suffix{font-size:12px;color:var(--text-muted);font-weight:500}.rate-input{width:70px;padding:6px 8px;font-size:13px;text-align:right}.days-display{display:flex;gap:4px;align-items:center}.day-dot{width:8px;height:8px;border-radius:50%;background-color:var(--bg-primary);border:1px solid var(--border-color)}.day-dot.active{background-color:var(--accent);border-color:var(--accent)}.days-text{font-size:12px;color:var(--text-secondary);margin-left:8px}.days-edit{display:flex;gap:4px}.day-pill-btn{width:24px;height:24px;border-radius:50%;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-muted);font-size:10px;display:flex;align-items:center;justify-content:center;cursor:pointer}.day-pill-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-text{background:none;border:none;color:var(--text-secondary);font-size:12px;cursor:pointer;text-decoration:underline}.btn-icon{background:none;border:none;cursor:pointer;padding:4px}.btn-save{color:var(--status-active)}.action-group{display:flex;align-items:center;gap:8px;justify-content:flex-end}.row-editing{background:var(--bg-primary)}.admin-select{width:auto;min-width:100px;padding:6px 28px 6px 10px;font-size:13px}.admin-content{display:flex;flex-direction:column;gap:24px}.admin-section-desc{font-size:13px;color:var(--text-secondary);margin-bottom:16px;margin-top:-12px}.holiday-add-row{display:flex;gap:10px;margin-bottom:16px;align-items:flex-end}.holiday-name-input{flex:1;min-width:0}.holiday-date-input{width:160px}.holiday-list{display:flex;flex-direction:column;gap:4px}.holiday-entry{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--border-radius-sm);transition:background .15s}.holiday-entry:hover{background:var(--bg-primary)}.holiday-entry--past{opacity:.45}.holiday-entry-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;flex-shrink:0}.holiday-entry-name{flex:1;font-size:.875rem;font-weight:500;color:var(--text-primary)}.holiday-entry-date{font-size:.8rem;color:var(--text-secondary);min-width:140px}.holiday-entry-delete{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;background:none;border:none;padding:0;transition:all .15s}.holiday-entry-delete:hover{background:#ef44441a;color:#ef4444}.staff-leave-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:20px}.staff-leave-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px;transition:all .2s ease}.staff-leave-card:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease}.modal-content{background:var(--bg-primary);border-radius:12px;box-shadow:0 10px 40px #0003;width:90%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}.modal-header{padding:20px 24px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-header h2{margin:0;font-size:18px;font-weight:600}.modal-body{padding:24px;overflow-y:auto}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;background:var(--bg-secondary);border-radius:0 0 12px 12px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.backup-section{max-width:800px}.backup-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px}.backup-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:16px}.backup-card h3{margin:0;font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px}.backup-card p{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.5}.scheduling-settings{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:24px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--border-color)}.setting-row:last-child{border-bottom:none}.setting-info h4{margin:0 0 4px;font-size:14px;font-weight:600}.setting-info p{margin:0;font-size:12px;color:var(--text-secondary)}.setting-control{display:flex;align-items:center;gap:12px}.time-input{padding:8px 12px;border-radius:6px;border:1px solid var(--border-color);font-size:14px;background:var(--bg-primary)}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:24px}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--accent)}input:checked+.slider:before{transform:translate(20px)}.path-preview{font-family:monospace;font-size:12px;color:var(--text-secondary);background:var(--bg-primary);padding:8px 12px;border-radius:4px;border:1px solid var(--border-color);margin-top:8px;word-break:break-all}.app-shell{display:flex;height:100vh;width:100vw;overflow:hidden}.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}.project-details-tab{padding:24px 32px;background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:32px}.details-section{padding-bottom:24px;border-bottom:1px solid var(--border-color)}.details-section:last-child{border-bottom:none;padding-bottom:0}.section-title{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:16px;display:flex;align-items:center;gap:8px}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 24px}@media(max-width:768px){.info-grid{grid-template-columns:1fr}}.info-item{display:flex;flex-direction:column;gap:6px}.info-item label{font-size:11px;text-transform:uppercase;font-weight:600;color:var(--text-muted);letter-spacing:.5px;display:flex;align-items:center;gap:6px}.info-item input{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:10px 12px;font-size:14px;color:var(--text-primary);transition:all var(--transition-fast)}.info-item input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #00bef01a}.input-with-action{display:flex;gap:8px}.input-with-action input{flex:1}.btn-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--border-radius-sm);background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer}.btn-icon:hover{color:var(--accent);border-color:var(--accent);background:#00bef01a}.overview-container{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:16px}.description-input{width:100%;background:transparent;border:none;resize:vertical;font-family:var(--font-family);font-size:14px;line-height:1.6;color:var(--text-primary)}.description-input:focus{outline:none}.details-columns{display:grid;grid-template-columns:1fr 1fr;gap:40px}@media(max-width:1024px){.details-columns{grid-template-columns:1fr}}.key-value-table{display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);overflow:hidden;margin-bottom:12px}.kv-row{display:flex;border-bottom:1px solid var(--border-color)}.kv-row:last-child{border-bottom:none}.kv-row>.kv-label{width:140px;background:var(--bg-primary);padding:10px 16px;font-size:12px;font-weight:500;color:var(--text-secondary);border-right:1px solid var(--border-color);display:flex;align-items:center}.kv-row>.kv-value{flex:1;background:var(--bg-card);padding:0;display:flex}.kv-value input{flex:1;border:none;background:transparent;padding:10px 16px;font-size:13px;color:var(--text-primary);font-family:var(--font-family)}.kv-value input:focus{outline:none;background:#00bef00d}.custom-row .kv-label{padding:0}.custom-row .kv-label input{width:100%;height:100%;padding:10px 16px;border:none;background:transparent;font-size:12px;font-weight:500;color:var(--text-secondary)}.custom-row .kv-label input:focus{outline:none;background:#0000000d}.btn-icon-danger{color:var(--text-muted);background:transparent;border:none;padding:0 12px;cursor:pointer;transition:color var(--transition-fast)}.btn-icon-danger:hover{color:#ef4444}.btn-add-row{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:500;color:var(--accent);background:#00bef01a;border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast)}.btn-add-row:hover{background:#00bef026}.milestones-container{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:24px;margin-top:8px}.empty-milestones{text-align:center;padding:24px;color:var(--text-muted);font-size:14px;background:var(--bg-card);border:1px dashed var(--border-color);border-radius:var(--border-radius-sm)}.milestones-list{display:flex;flex-direction:column;gap:12px}.milestone-row{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:16px 20px;display:flex;justify-content:space-between;align-items:center;transition:all var(--transition-fast)}.milestone-row.clickable{cursor:pointer}.milestone-row:hover{border-color:var(--accent);background:#00bef00a;transform:translate(6px)}.milestone-info{display:flex;flex-direction:column;gap:2px}.reminder-icon-active{color:#f59e0b;animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:.6}to{opacity:1}}.m-name{font-size:15px;font-weight:600;color:var(--text-primary)}.m-subtitle{font-size:11px;color:var(--text-muted);font-weight:500}.m-date{font-size:14px;font-weight:700;color:var(--accent);background:#00bef014;padding:6px 14px;border-radius:20px;white-space:nowrap}.modal-subtitle{font-size:14px;color:var(--text-secondary);margin-bottom:24px;line-height:1.5}.reminder-settings-modal .form-group{transition:all .3s ease}.animate-in{animation:slideDown .3s ease-out}.project-detail-page{display:flex;flex-direction:column;height:100%}.detail-header{padding:32px 32px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-card)}.header-top{display:flex;justify-content:space-between;margin-bottom:4px}.back-link{color:var(--text-secondary);font-size:13px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:0;border:none;background:none}.back-link:hover{text-decoration:underline}.project-detail-page .project-title{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.project-meta{display:flex;gap:12px;font-size:13px;color:var(--text-secondary);align-items:center}.dot-separator{color:var(--border-color)}.project-status-badge{padding:4px 12px;border-radius:999px;font-size:11px;font-weight:600;text-transform:capitalize;background:var(--status-active-bg);color:var(--status-active)}.detail-tabs{margin-top:24px;display:flex;gap:24px}.detail-tab{padding:8px 0;color:var(--text-secondary);font-size:13px;border-bottom:2px solid transparent;cursor:pointer;transition:all .2s}.detail-tab--active{color:var(--text-primary);border-bottom-color:var(--accent);font-weight:600}.detail-content{flex:1;padding:24px 32px;overflow-y:auto}.section-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;margin-bottom:2rem}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.section-header h3{font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.5rem;margin:0}.property-details{display:flex;flex-direction:column;gap:1rem}.prop-row{display:flex;align-items:baseline;gap:.5rem;font-size:.9rem}.prop-label{font-weight:500;color:var(--text-secondary);min-width:80px}.prop-value{color:var(--text-primary);font-weight:500}.prop-group{display:flex;flex-direction:column;gap:.5rem}.prop-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.prop-list li{font-size:.85rem;display:flex;align-items:center;gap:.5rem}.badge{display:inline-block;padding:.15rem .4rem;border-radius:4px;font-size:.75rem;font-weight:600;font-family:monospace}.badge-zone{background:#e0f2fe;color:#0369a1}.badge-overlay{background:#fef3c7;color:#b45309}.prop-meta{margin-top:.5rem;font-size:.75rem;color:var(--text-muted);font-style:italic}.property-empty{font-size:.9rem;color:var(--text-muted);padding:1rem;text-align:center;background:var(--bg-app);border-radius:var(--radius-sm);border:1px dashed var(--border-color)}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.stage-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.toolbar-label{font-weight:600;text-transform:uppercase;font-size:12px;color:var(--text-muted)}.stages-list{display:flex;flex-direction:column;gap:16px}.stage-item{border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-card);overflow:hidden}.stage-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.stage-header-left{display:flex;align-items:center;gap:8px}.stage-name{font-size:14px;font-weight:600;color:var(--text-primary)}.stage-header-right{display:flex;align-items:center;gap:12px}.stage-total{font-size:13px;font-weight:500;color:var(--text-secondary)}.btn-icon-sm{width:24px;height:24px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .2s}.btn-icon-sm:hover{background:var(--bg-primary);color:var(--accent)}.btn-icon-danger{color:var(--text-secondary)}.stage-tasks{padding:0 16px 12px}.task-table-header{display:grid;grid-template-columns:24px 1fr 85px 100px 80px 140px 220px 60px;gap:6px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border-color);font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:600}.task-row{display:grid;grid-template-columns:24px 1fr 85px 100px 80px 140px 220px 60px;gap:6px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-color);font-size:13px}.task-row:last-of-type{border-bottom:none}.td-status{display:flex;align-items:center;justify-content:center;min-width:24px}.task-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.td-name{font-size:13px;color:var(--text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.td-fee{font-size:13px;font-weight:500;color:var(--text-primary);text-align:center;font-family:var(--font-family);display:flex;justify-content:center;align-items:center}.th-type,.th-fee{text-align:center}.td-type{display:flex;align-items:center;justify-content:center}.task-type-select{font-size:10px;padding:1px 4px;border:1px solid rgba(0,0,0,.1);background:#ffffff80;color:#666;cursor:pointer;height:18px;width:100%;border-radius:4px}.task-type-select:hover{border-color:var(--border-color);background:#fff}.th-hours,.th-assignee{text-align:center;justify-content:center;display:flex;align-items:center}.th-schedule{text-align:center;justify-content:center;display:flex;align-items:center;padding-left:0!important;width:100%}.fee-input{width:100%;text-align:center;font-size:13px;font-weight:500;color:var(--text-primary);font-family:var(--font-family);border:1px solid transparent;background:transparent;padding:2px 4px;border-radius:4px;transition:all var(--transition-fast)}.fee-input:hover{border-color:var(--border-color);background:var(--bg-primary)}.fee-input:focus{outline:none;border-color:var(--accent);background:var(--bg-card)}.td-hours{display:flex;align-items:center;justify-content:center}.hours-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;padding:2px 6px;border-radius:999px;background:var(--accent-light);color:var(--accent);font-weight:600;white-space:nowrap}.hours-input{width:60px;padding:3px 6px;font-size:13px;font-weight:700;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);text-align:center;font-family:var(--font-family);transition:all .2s}.hours-input:focus{outline:none;border-color:var(--accent);background:var(--bg-card)}.hours-input::-webkit-outer-spin-button,.hours-input::-webkit-inner-spin-button{opacity:1}.duration-edit-pill{display:flex;align-items:center;gap:4px;background:var(--bg-primary);padding:2px 6px;border-radius:6px;border:1px solid var(--border-color)}.duration-edit-pill:focus-within{border-color:var(--accent);background:var(--bg-card)}.duration-edit-pill .hours-input{border:none;background:transparent;padding:0;width:45px;font-size:13px;font-weight:700}.duration-unit{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.td-assignee{display:flex;align-items:center;justify-content:center;gap:4px}.task-assignee-select{width:auto;min-width:100px;max-width:120px;padding:3px 22px 3px 6px;font-size:11px;border:1px solid transparent;background:transparent;color:var(--text-secondary);border-radius:4px;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family);text-align:center}.task-assignee-select:hover{border-color:var(--border-color);background:var(--bg-primary)}.task-assignee-select:focus{border-color:var(--accent);background:var(--bg-card);box-shadow:0 0 0 2px var(--accent-light);color:var(--text-primary)}.assignee-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.td-schedule{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;width:100%}.schedule-controls{display:grid;grid-template-columns:110px 60px;gap:8px;align-items:center;justify-content:center}.task-date-input{width:100%;padding:4px 6px;font-size:11px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-family);text-align:center}.btn-next-avail{display:flex;align-items:center;justify-content:center;gap:3px;padding:3px 0;width:100%;font-size:10px;font-weight:600;background:var(--accent-light);color:var(--accent);border:1px solid var(--accent);border-radius:4px;cursor:pointer;white-space:nowrap;transition:all .15s}.btn-next-avail:hover{background:var(--accent);color:#fff}.date-range-label{font-size:10px;color:var(--text-muted);padding-left:2px;align-self:center}.btn-icon-danger{color:#6b7280;opacity:1;background:transparent;padding:0!important;width:24px;height:24px}.btn-icon-danger:hover{color:#ef4444;background:#ef44441a}.td-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.add-task-inline{margin-top:12px;display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:4px;transition:color .2s}.add-task-inline:hover{color:var(--accent);background:var(--bg-primary)}.task-empty{padding:20px 0;text-align:center;color:var(--text-muted);font-size:13px}.stages-empty{text-align:center;padding:40px;color:var(--text-muted);font-size:14px;border:1px dashed var(--border-color);border-radius:var(--border-radius)}.calc-preview{padding:10px 14px;background:var(--bg-primary);border-radius:var(--border-radius-sm);font-size:12px;color:var(--text-secondary);margin-bottom:16px;border:1px solid var(--border-color)}.calc-preview strong{color:var(--accent)}.date-with-action{display:flex;gap:8px;align-items:stretch}.date-with-action input{flex:1}.btn-next-available{padding:8px 14px;background:var(--accent-light);color:var(--accent);border:1px solid var(--accent);border-radius:var(--border-radius-sm);font-size:11px;font-weight:600;white-space:nowrap;cursor:pointer;transition:all .2s}.btn-next-available:hover{background:var(--accent);color:#fff}.add-task-buttons{display:flex;gap:12px;padding:12px 16px;background:var(--bg-card);border-top:1px solid var(--border-color)}.btn-task-type{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;font-size:12px;font-weight:500;border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-primary);border:1px dashed var(--border-color);color:var(--text-secondary)}.btn-task-type:hover{background:var(--bg-hover);border-color:var(--text-muted);color:var(--text-primary);transform:translateY(-1px);box-shadow:0 2px 5px #0000000d}.btn-internal{border-color:#00bef033;color:var(--accent)}.btn-internal:hover{background:#00bef00d;border-color:var(--accent)}.btn-external{border-color:#8b5cf633;color:#8b5cf6}.btn-external:hover{background:#8b5cf60d;border-color:#8b5cf6}.btn-milestone{border-color:#ec489933;color:#ec4899}.btn-milestone:hover{background:#ec48990d;border-color:#ec4899}.project-archived,.stage-archived,.task-archived{opacity:.5;filter:grayscale(.4);transition:opacity var(--transition-base),filter var(--transition-base);pointer-events:auto}.stage-archived:hover,.task-archived:hover{opacity:.75;filter:grayscale(.1)}.archived-tag{font-size:10px;padding:2px 8px;background:#e2e8f0;color:#64748b;border-radius:4px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-left:10px;display:inline-flex;align-items:center}.btn-icon-active{color:var(--status-active)!important;background:var(--status-active-bg)!important;border-color:var(--status-active)!important}.complete-badge-btn{font-size:9px;background:#f8fafc;color:#64748b;padding:1px 4px;border-radius:3px;font-weight:700;border:1px solid #e2e8f0;flex-shrink:0;cursor:pointer;transition:all .2s;height:16px;display:flex;align-items:center}.complete-badge-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.complete-badge-btn.active{background:#ecfdf5;color:#059669;border-color:#d1fae5}.complete-badge-btn.active:hover{background:#d1fae5}.schedule-page{height:100%;display:flex;flex-direction:column;background-color:var(--bg-primary);overflow:hidden}.schedule-header{flex-shrink:0;padding:1.25rem 2rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color);background:var(--bg-card)}.schedule-header .header-left h1{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0}.view-toggle{display:flex;background:var(--bg-primary);padding:.25rem;border-radius:.5rem;gap:.25rem}.view-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;border:none;background:transparent;color:var(--text-secondary);border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1)}.view-btn.active{background:var(--bg-card);color:var(--accent);box-shadow:0 2px 4px #0000001a}.view-btn:hover:not(.active){background:#00000008;color:var(--text-primary)}.schedule-content{flex:1;overflow:hidden}.week-calendar{height:100%;display:flex;flex-direction:column}.cal-controls{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;border-bottom:1px solid var(--border-color);background:var(--bg-card)}.cal-controls-left{display:flex;align-items:center;gap:.5rem}.cal-controls-right{display:flex;align-items:center;gap:1rem}.staff-filter-bar{display:flex;align-items:center;gap:.25rem}.staff-filter-chip{display:flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border-radius:20px;cursor:pointer;transition:background .15s;white-space:nowrap}.staff-filter-chip:hover{background:var(--bg-primary)}.cal-staff-checkbox{position:absolute;opacity:0;width:0;height:0}.staff-filter-dot{width:10px;height:10px;border-radius:3px;border:2px solid;flex-shrink:0;transition:background .2s}.staff-filter-name{font-size:.75rem;color:var(--text-secondary);transition:opacity .2s}.staff-filter-name.staff-filter-hidden{opacity:.35;text-decoration:line-through}.cal-today-btn{padding:.35rem 1rem;font-size:.8rem}.btn-icon-nav{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-secondary);transition:all .15s}.btn-icon-nav:hover{background:var(--bg-primary);color:var(--text-primary)}.cal-month-label{font-size:1rem;font-weight:600;color:var(--text-primary);margin-left:.5rem}.cal-view-label{font-size:.8rem;color:var(--text-muted);padding:4px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius-sm)}.cal-grid-wrapper{flex:1;overflow-y:auto}.cal-grid{display:flex;flex-direction:column;min-height:100%}.cal-header-row{display:flex;border-bottom:1px solid var(--border-color);background:var(--bg-card);position:sticky;top:0;z-index:10}.cal-time-gutter-header{width:60px;flex-shrink:0;border-right:1px solid var(--border-color)}.cal-day-header{flex:1;text-align:center;padding:12px 0 8px;border-right:1px solid var(--border-color)}.cal-day-header:last-child{border-right:none}.cal-day-name{display:block;font-size:.65rem;font-weight:500;color:var(--text-muted);letter-spacing:.5px}.cal-day-number{display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:500;color:var(--text-primary);width:32px;height:32px;border-radius:50%}.cal-today-number{background:var(--accent);color:#fff;font-weight:600}.cal-body{display:flex;flex:1}.cal-time-gutter{width:60px;flex-shrink:0;border-right:1px solid var(--border-color)}.cal-time-slot{height:60px;border-bottom:1px solid var(--border-color);position:relative}.cal-time-label{position:absolute;top:-8px;right:8px;font-size:.65rem;color:var(--text-muted)}.cal-day-col{flex:1;border-right:1px solid var(--border-color);position:relative}.cal-day-col:last-child{border-right:none}.cal-today-col{background:#00bef008}.cal-hour-cell{height:60px;border-bottom:1px solid var(--border-color)}.cal-event{position:absolute;left:4px;right:4px;border-radius:6px;padding:6px 8px;color:#fff;overflow:hidden;cursor:pointer;transition:opacity .15s;box-shadow:0 1px 3px #00000026;z-index:1}.cal-event:hover{opacity:.9;box-shadow:0 2px 8px #00000040}.cal-event-delete{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:#00000059;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s;z-index:5;padding:0}.cal-event:hover .cal-event-delete{opacity:1}.cal-event-delete:hover{background:#ef4444e6}.cal-event-title{font-size:.75rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event-subtitle{font-size:.65rem;opacity:.85;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event-time{font-size:.6rem;opacity:.7;margin-top:2px}.cal-now-line{position:absolute;left:0;right:0;height:2px;background:#ef4444;z-index:5}.cal-now-dot{position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#ef4444}.cal-mode-toggle{display:flex;background:var(--bg-secondary);border-radius:8px;padding:3px;gap:2px}.cal-mode-btn{background:none;border:none;padding:.35rem 1rem;font-size:.8rem;font-weight:500;color:var(--text-secondary);border-radius:6px;cursor:pointer;transition:all .2s}.cal-mode-btn:hover{color:var(--text-primary)}.cal-mode-btn.active{background:var(--bg-card);color:var(--text-primary);box-shadow:0 1px 3px #00000014;font-weight:600}.cal-month-wrapper{flex:1;overflow-y:auto;padding:0}.cal-month-grid{display:grid;grid-template-columns:repeat(7,1fr);height:100%}.cal-month-day-header{padding:.5rem;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;text-align:center;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.cal-month-cell{min-height:100px;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);padding:4px 6px;background:var(--bg-card);display:flex;flex-direction:column}.cal-month-cell-other{background:var(--bg-primary);opacity:.5}.cal-month-cell-today{background:var(--accent-light)}.cal-month-date{font-size:.8rem;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.cal-month-date-today{background:var(--accent);color:#fff;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-weight:600}.cal-month-tasks{display:flex;flex-direction:column;gap:2px;flex:1;overflow:hidden}.cal-month-task-chip{display:flex;align-items:center;gap:2px;padding:2px 6px;border-radius:4px;color:#fff;font-size:.65rem;cursor:default;position:relative;overflow:hidden}.cal-month-task-chip:hover .cal-month-task-delete{opacity:1}.cal-month-task-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.cal-month-task-delete{background:none;border:none;color:#fff;cursor:pointer;padding:0;opacity:0;transition:opacity .15s;display:flex;align-items:center;flex-shrink:0}.cal-month-more{font-size:.6rem;color:var(--text-muted);padding:1px 4px}.resource-view{height:100%;overflow-y:auto;padding:1.5rem 2rem}.resource-grid{display:flex;flex-direction:column;gap:1.25rem}.resource-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.resource-card-header{display:flex;align-items:center;padding:1.25rem 1.5rem;gap:1rem;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.resource-avatar{width:40px;height:40px;border-radius:50%;color:#fff;font-size:1.1rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.resource-info{flex:1}.resource-name{font-size:1rem;font-weight:600;color:var(--text-primary)}.resource-rate{font-size:.75rem;color:var(--text-secondary)}.resource-summary{display:flex;gap:1.5rem}.resource-stat{text-align:center}.stat-value{display:block;font-size:1.25rem;font-weight:700;color:var(--text-primary)}.stat-label{font-size:.65rem;text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px}.resource-task-list{padding:.5rem 0}.resource-empty{padding:1.5rem;text-align:center;color:var(--text-muted);font-size:.85rem}.resource-task-row{display:flex;align-items:center;gap:.75rem;padding:.65rem 1.5rem;border-bottom:1px solid var(--border-color);transition:background .15s}.resource-task-row:last-child{border-bottom:none}.resource-task-row:hover{background:var(--bg-primary)}.resource-task-color{width:4px;height:28px;border-radius:2px;flex-shrink:0}.resource-task-info{flex:1;display:flex;flex-direction:column}.resource-task-name{font-size:.85rem;font-weight:500;color:var(--text-primary)}.resource-task-project{font-size:.7rem;color:var(--text-muted)}.resource-task-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.resource-task-fee{font-size:.8rem;font-weight:500;color:var(--text-primary)}.resource-task-hours{font-size:.7rem;color:var(--accent);font-weight:500}.resource-task-dates{font-size:.7rem;color:var(--text-secondary);min-width:100px;text-align:right}.gantt-container{height:100%;display:flex;flex-direction:column}.gantt-controls{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;border-bottom:1px solid var(--border-color);background:var(--bg-card);flex-shrink:0}.date-nav{display:flex;align-items:center;gap:.75rem}.btn-group{display:flex;background:var(--bg-primary);border-radius:6px;padding:2px}.gantt-controls-center{display:flex;align-items:center;justify-content:center;flex:1}.zoom-controls{display:flex;background:var(--bg-primary);padding:.25rem;border-radius:.5rem;gap:.25rem}.zoom-btn{padding:.35rem .85rem;border:none;background:transparent;color:var(--text-secondary);border-radius:.375rem;cursor:pointer;font-size:.75rem;font-weight:600;transition:all .2s}.zoom-btn:hover{color:var(--text-primary)}.zoom-btn.active{background:var(--bg-card);color:var(--accent);box-shadow:0 1px 3px #0000001a}.gantt-legend{display:flex;gap:1.25rem;align-items:center}.legend-item{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--text-secondary)}.legend-dot{width:10px;height:10px;border-radius:3px}.gantt-scroll-area{flex:1;overflow:auto}.gantt-inner{min-height:100%;padding-right:150px}.gantt-month-row{display:flex;background:#ffffffd9;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:15;height:28px}.gantt-month-cell{font-size:.75rem;font-weight:700;color:var(--text-secondary);padding:6px 12px;border-right:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.05em;height:32px;display:flex;align-items:center;background:var(--bg-card)}.gantt-header-row{display:flex;position:sticky;top:28px;z-index:14;background:#ffffffd9;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-color);height:36px}.gantt-sidebar-header{width:300px;flex-shrink:0;padding:0 20px;font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-right:1px solid var(--border-color);display:flex;align-items:center;background:#ffffffd9;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(10px);position:sticky;left:0;z-index:100;height:48px}.gantt-day-header{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--border-color);padding:0;flex-shrink:0;height:48px}.gantt-day-header.gantt-today{background:var(--accent-light)}.gantt-day-header.gantt-weekend{background:#00000008}.gantt-day-name{font-size:.65rem;color:var(--text-muted);font-weight:600;text-transform:uppercase}.gantt-day-num{font-size:.875rem;font-weight:600;color:var(--text-primary)}.gantt-today .gantt-day-num{color:var(--accent);font-weight:800}.gantt-row{display:flex;border-bottom:1px solid var(--border-color);transition:background .15s ease}.gantt-row:hover{background:#00bef005}.gantt-project-row{background:#f5f5f7b3}.gantt-stage-row{background:#fafafc80}.gantt-sidebar-cell{width:300px;flex-shrink:0;padding:0 16px;display:flex;align-items:center;border-right:1px solid var(--border-color);position:sticky;left:0;background:#ffffffd9;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(10px);z-index:90;overflow:hidden}.gantt-sidebar-cell.indent-1{padding-left:28px}.gantt-sidebar-cell.indent-2{padding-left:44px}.gantt-project-label{font-size:.8rem;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-stage-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-task-label{font-size:.75rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-track{position:relative;flex-shrink:0}.gantt-grid-cell{position:absolute;top:0;border-right:1px solid rgba(0,0,0,.05);border-bottom:1px solid rgba(0,0,0,.03);pointer-events:none}.gantt-today-col{background:#00bef008;border-left:2px solid var(--accent);border-right:2px solid var(--accent);z-index:1}.gantt-weekend-col{background:#00000005}.gantt-bar{position:absolute;border-radius:4px;color:#fff;font-size:.65rem;font-weight:500;display:flex;align-items:center;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab;transition:box-shadow .15s,opacity .15s;box-shadow:0 1px 3px #00000026;z-index:3}.gantt-bar:hover{box-shadow:0 2px 8px #00000040;z-index:4}.gantt-bar-dragging{cursor:grabbing;opacity:.85;box-shadow:0 4px 12px #0000004d;z-index:10}.gantt-bar-text{overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.gantt-bar-delete{position:absolute;top:50%;right:2px;transform:translateY(-50%);width:16px;height:16px;border-radius:50%;background:#0000004d;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s;padding:0;flex-shrink:0}.gantt-bar:hover .gantt-bar-delete{opacity:1}.gantt-bar-delete:hover{background:#ef4444e6}.gantt-controls-right{display:flex;align-items:center;gap:1rem}.gantt-blocked-col{background:#ef44440f!important}.gantt-day-header.gantt-holiday{background:#ef444414}.gantt-day-header.gantt-holiday .gantt-day-name,.gantt-day-header.gantt-holiday .gantt-day-num{color:#ef4444}.cal-day-header.cal-holiday-header{background:#ef44440d}.cal-holiday-badge{display:block;font-size:.55rem;font-weight:600;color:#ef4444;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;padding:0 4px}.cal-holiday-col{background:#ef444408}.cal-leave-indicator{position:absolute;top:2px;left:2px;right:2px;display:flex;flex-wrap:wrap;gap:2px;z-index:0}.cal-leave-chip{font-size:.55rem;font-weight:500;color:#fff;padding:1px 6px;border-radius:3px;opacity:.75;white-space:nowrap}.cal-month-cell-holiday{background:#ef44440a!important}.cal-custom-event{border-left:3px solid rgba(255,255,255,.5)}.cal-add-event-btn{white-space:nowrap}.event-color-picker{display:flex;gap:6px;margin-top:4px}.event-color-swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .15s}.event-color-swatch:hover{transform:scale(1.15)}.event-color-swatch.active{border-color:var(--text-primary);box-shadow:0 0 0 2px #fff,0 0 0 3px var(--text-primary)}.gantt-scroll-area{scrollbar-width:auto;scrollbar-color:var(--border-color) transparent}.gantt-scroll-area::-webkit-scrollbar{height:14px}.gantt-scroll-area::-webkit-scrollbar-track{background:var(--bg-primary);border-radius:7px}.gantt-scroll-area::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:7px;border:3px solid var(--bg-primary);min-width:40px}.gantt-scroll-area::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.gantt-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--text-muted);flex:1}.gantt-empty p{margin:.25rem 0;font-size:1rem}.gantt-empty-hint{font-size:.85rem!important;opacity:.7}.gantt-svg-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10;overflow:visible}.gantt-dependency-line{fill:none;stroke:#cbd5e1;stroke-width:2;pointer-events:visibleStroke;cursor:pointer;transition:stroke .2s}.gantt-dependency-line:hover{stroke:#ef4444;stroke-width:3}.gantt-dependency-arrow{fill:#cbd5e1}.gantt-dependency-line:hover+.gantt-dependency-arrow{fill:#ef4444}.gantt-link-drag-line{stroke:#3b82f6;stroke-width:2;stroke-dasharray:5,5;pointer-events:none}.gantt-task-handle{position:absolute;top:50%;right:-6px;width:12px;height:12px;background:#cbd5e1;border:1px solid #fff;border-radius:50%;transform:translateY(-50%);cursor:crosshair;opacity:0;transition:all .2s;z-index:25;box-shadow:0 1px 3px #0000001a}.gantt-bar:hover .gantt-task-handle{opacity:1;right:-6px}.gantt-task-handle:hover{background:#3b82f6;transform:translateY(-50%) scale(1.3);border-color:#3b82f6}.gantt-bar-dragging .gantt-task-handle{opacity:0}.gantt-row{display:flex;border-bottom:1px solid var(--border-color)}.gantt-bar-delete{left:4px;right:auto;top:50%;transform:translateY(-50%);width:16px;height:16px}.gantt-task-handle{width:14px;height:14px;right:-7px;border:2px solid #fff;box-shadow:0 0 4px #0003;opacity:0;z-index:50}.gantt-bar:hover .gantt-task-handle{opacity:1}.gantt-task-handle:hover{background:#3b82f6;transform:translateY(-50%) scale(1.2)}.timesheet-page{display:flex;flex-direction:column;height:100%;width:100%;flex:1;background:var(--bg-primary);overflow:hidden}.timesheet-header{flex-shrink:0;padding:1.25rem 2rem;background:var(--bg-card);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.timesheet-header h1{font-size:1.5rem;font-weight:600;margin:0}.project-cell-wrapper{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%}.project-cell-info{flex:1;min-width:0}.project-cell-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;opacity:.6;transition:opacity .2s}.ts-row:hover .project-cell-actions{opacity:1}.btn-toggle-complete{color:#94a3b8;padding:4px;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;border:none}.btn-toggle-complete:hover{color:var(--status-active);background:#f0fdf4}.btn-toggle-complete.active{color:#10b981}.complete-badge-ts{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:700;color:#059669;background:#ecfdf5;padding:1px 4px;border-radius:4px;margin-left:6px;vertical-align:middle}.btn-delete-row{opacity:0;color:var(--text-muted);background:transparent;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s;flex-shrink:0}.ts-row:hover .btn-delete-row{opacity:1}.btn-delete-row:hover{color:#ef4444;background:#ef44441a}.week-nav{display:flex;align-items:center;gap:.5rem}.nav-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border-color);background:var(--bg-card);cursor:pointer;color:var(--text-secondary)}.nav-btn:hover{background:var(--bg-primary);color:var(--text-primary)}.nav-btn-today{padding:.25rem .75rem;font-size:.8rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-card);cursor:pointer;color:var(--text-primary)}.week-label{margin-left:.75rem;font-size:.9rem;font-weight:500;color:var(--text-primary)}.timesheet-content{flex:1;display:flex;flex-direction:column;overflow-y:auto;overflow-x:auto;position:relative;padding-bottom:200px}.ts-table-wrapper{flex:0 0 auto;overflow:visible;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);margin:24px 32px 0;padding:0;box-shadow:var(--shadow-sm)}.ts-table{width:100%;border-collapse:collapse;min-width:800px}.ts-table th,.ts-table td{border:1px solid var(--border-color)}.th-project{width:300px;text-align:left;padding:.75rem 1rem;background:var(--bg-secondary);font-size:.8rem;color:var(--text-muted);font-weight:600}.th-day{width:100px;text-align:center;padding:.5rem;background:var(--bg-secondary)}.th-today{background:var(--accent-light);border-bottom-color:var(--accent)}.day-name{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase}.day-num{font-size:1.1rem;font-weight:500;color:var(--text-primary)}.th-total{width:80px;text-align:center;background:var(--bg-secondary);font-weight:600;font-size:.8rem}.ts-row{background:var(--bg-card)}.td-project{padding:.75rem 1rem}.project-label{font-size:.9rem;font-weight:500;color:var(--text-primary)}.project-sub{font-size:.75rem;color:var(--text-muted)}.td-day{padding:0;height:3rem;position:relative;cursor:text;transition:background .1s}.td-today{background:#00bef008}.td-editing{background:#fff;box-shadow:inset 0 0 0 2px var(--accent)}.cell-display{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:.9rem;color:var(--text-primary)}.cell-input{width:100%;height:100%;border:none;text-align:center;font-size:1rem;background:transparent;outline:none}.td-total{text-align:center;font-weight:600;background:var(--bg-secondary)}.btn-add-entry{background:none;border:none;display:flex;align-items:center;gap:.5rem;color:var(--accent);font-weight:500;cursor:pointer;font-size:.9rem}.add-entry-wrapper{position:relative}.add-entry-dropdown{position:absolute;top:calc(100% + 8px);left:0;width:450px;background:#ffffffd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-color);box-shadow:0 16px 48px #00000040;border-radius:8px;z-index:9999;overflow:hidden}.dropdown-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color)}.dropdown-header input{flex:1;border:none;outline:none;font-size:1rem}.dropdown-list{max-height:65vh;overflow-y:auto}.dropdown-item{padding:.5rem .75rem;font-size:.85rem;cursor:pointer;color:var(--text-primary)}.dropdown-item:hover{background:var(--bg-primary)}.dropdown-item.custom{color:var(--accent);font-weight:500;border-bottom:1px solid var(--border-color)}.dropdown-group .group-title{padding:.4rem .75rem;font-size:.7rem;text-transform:uppercase;color:var(--text-muted);font-weight:600;background:var(--bg-secondary)}.disabled{background:var(--bg-primary)}.ts-totals-row td{background:var(--bg-secondary);font-weight:700;border-top:2px solid var(--border-color)}.total-label{text-align:right;padding-right:1rem}.total-val{text-align:center}.description-panel-static{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);padding:16px;margin:16px 32px;box-shadow:var(--shadow-sm);animation:slideDown .2s ease-out;font-family:inherit}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.desc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.desc-title{font-size:14px;color:var(--text-primary)}.desc-label-bold{font-weight:600;margin-right:6px}.desc-date{color:var(--text-muted);font-weight:400}.close-panel{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px}.close-panel:hover{color:var(--text-primary)}.desc-body{display:flex;gap:12px}.desc-input{flex:1;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-family:inherit;font-size:14px}.desc-input:focus{outline:none;border-color:var(--accent)}.btn-save-desc{display:inline-flex;align-items:center;gap:6px;padding:0 20px;height:40px;background:var(--accent);color:#fff;border:none;border-radius:var(--border-radius-sm);font-weight:500;font-size:13px;cursor:pointer;transition:background .2s;white-space:nowrap}.btn-save-desc:hover{background:var(--accent-hover)}.recent-tasks-section{margin-top:32px;padding:0 32px;border:none;overflow:visible}.section-title{font-size:14px;font-weight:600;text-transform:uppercase;color:var(--text-muted);margin-bottom:16px;letter-spacing:.5px}.recent-tasks-grid{display:flex;flex-direction:column;gap:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);padding:0 24px}.reporting-page{display:flex;flex-direction:column;height:100%;background:var(--bg-primary);overflow:hidden}.page-tabs{display:flex;gap:0;padding:0 32px;border-bottom:1px solid var(--border-color);background:var(--bg-card);flex-shrink:0}.page-tab{padding:14px 18px;font-size:13px;font-weight:500;color:var(--text-secondary);border-bottom:2px solid transparent;transition:all var(--transition-fast);cursor:pointer;position:relative;bottom:-1px;background:transparent;border-top:none;border-left:none;border-right:none}.page-tab:hover{color:var(--text-primary)}.page-tab--active{color:var(--text-primary);border-bottom-color:var(--accent);font-weight:600}.report-controls{padding:1rem 2rem;display:flex;gap:2rem;background:var(--bg-card);border-bottom:1px solid var(--border-color);align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:.25rem}.filter-group label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase}.filter-group select,.filter-group input{padding:.4rem;border:1px solid var(--border-color);border-radius:4px;font-size:.9rem;min-width:150px}.date-inputs{display:flex;align-items:center;gap:.5rem}.date-inputs span{color:var(--text-muted);font-size:.8rem}.search-group{flex:1;position:relative;justify-content:flex-end}.search-group input{width:100%;padding-left:2rem}.search-group .search-icon{position:absolute;left:.5rem;bottom:.5rem;color:var(--text-secondary)}.report-content{flex:1;overflow:hidden;display:flex;flex-direction:column;padding:1.5rem 2rem;gap:1.5rem}.report-summary{display:flex;gap:1.5rem}.stat-card{background:var(--bg-card);padding:1rem 1.5rem;border-radius:8px;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);min-width:150px}.stat-val{display:block;font-size:1.75rem;font-weight:700;color:var(--accent)}.stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.report-table-wrapper{flex:1;overflow:auto;background:var(--bg-card);border-radius:8px;border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.report-table{width:100%;border-collapse:collapse}.report-table th{text-align:left;padding:.75rem 1rem;background:var(--bg-secondary);font-size:.8rem;color:var(--text-muted);font-weight:600;position:sticky;top:0;border-bottom:1px solid var(--border-color)}.report-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);font-size:.9rem;color:var(--text-primary);vertical-align:top}.col-date{white-space:nowrap;width:120px;color:var(--text-secondary)!important}.proj-name{font-weight:500}.client-name{font-size:.75rem;color:var(--text-muted)}.task-name{font-weight:500}.col-hours{font-weight:600;width:80px}.col-desc{color:var(--text-secondary)!important}.custom-badge{background:var(--bg-secondary);padding:2px 6px;border-radius:4px;font-size:.7rem;color:var(--text-muted)}.empty-cell{text-align:center;padding:2rem;color:var(--text-muted);font-style:italic}.col-staff{width:100px}.staff-badge{display:inline-block;padding:2px 8px;border:1px solid #ccc;border-radius:12px;font-size:.75rem;font-weight:600}.staff-filter-row{display:flex;align-items:center;gap:12px;margin-top:4px}.staff-all-btn{padding:6px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;background:var(--bg-primary);color:var(--text-secondary);transition:all .2s;white-space:nowrap}.staff-all-btn:hover{background:var(--bg-secondary);color:var(--accent)}.staff-all-btn.active{background:var(--bg-secondary);border-color:var(--accent);color:var(--accent)}.staff-chips{display:flex;gap:8px;flex-wrap:wrap}.staff-chip{display:flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border-color);border-radius:100px;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none;background:var(--bg-primary)}.staff-chip .dot{width:6px;height:6px;border-radius:50%}.staff-chip:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000000d}.staff-chip.active{font-weight:600}.row-invoiced{opacity:.8}.row-invoiced td{background-color:#f1f5f9!important;color:#94a3b8!important}.row-invoiced td.col-date,.row-invoiced td .proj-name,.row-invoiced td .task-name,.row-invoiced td.col-hours,.row-invoiced td.col-desc{color:#475569!important}.row-invoiced .staff-badge{opacity:.5;border-color:#cbd5e1!important}.invoiced-val{color:#475569!important}.invoiced-checkbox{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}.diary-page{display:flex;height:100%;width:100%;background-color:var(--bg-primary);overflow:hidden}.diary-sidebar{width:280px;background-color:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0}.diary-sidebar-header{padding:20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.diary-sidebar-header h2{font-size:18px;font-weight:600;margin:0;color:var(--text-primary)}.diary-day-list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.diary-day-item{display:flex;align-items:center;padding:12px 16px;border-radius:8px;cursor:pointer;transition:all .2s ease;background:transparent;border:1px solid transparent}.diary-day-item:hover{background:#ffffff08}.diary-day-item.active{background:#00bef014;border-color:#00bef033}.diary-day-item .day-icon{color:var(--text-secondary);margin-right:12px}.diary-day-item.active .day-icon{color:var(--accent)}.diary-day-item .day-info{flex:1}.diary-day-item .day-date{font-weight:500;font-size:14px;color:var(--text-primary)}.delete-day-btn{opacity:0;color:var(--text-secondary)}.diary-day-item:hover .delete-day-btn{opacity:1}.delete-day-btn:hover{color:var(--status-failed)!important}.diary-main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.diary-main-header{padding:24px 32px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background-color:var(--bg-primary)}.current-date-title{font-size:24px;font-weight:600;margin:0;color:var(--text-primary)}.diary-actions{display:flex;align-items:center;gap:16px}.search-box{position:relative;width:250px}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary)}.search-input{padding-left:36px!important;width:100%}.diary-notes-container{flex:1;overflow-y:auto;padding:32px;display:flex;flex-direction:column;gap:24px}.diary-note-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.note-card-header{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background:#0000001a}.note-fields-row{display:flex;flex-wrap:wrap;gap:16px;flex:1;align-items:center}.note-field{display:flex;align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding-left:12px;flex:1;min-width:200px}.note-field .field-icon{color:var(--text-secondary);margin-right:8px;flex-shrink:0}.note-input,.note-select{border:none!important;background:transparent!important;box-shadow:none!important;padding:8px!important;width:100%}.note-input:focus,.note-select:focus{box-shadow:none!important;outline:none!important}.project-select-group{flex:2}.phone-input{width:150px}.delete-note-btn{color:var(--text-secondary);margin-left:16px}.delete-note-btn:hover{color:var(--status-failed)!important;background:#ef44441a!important}.note-card-body{padding:0}.note-textarea{width:100%;min-height:250px;border:none!important;background:transparent!important;padding:20px!important;resize:vertical;font-size:15px;line-height:1.6;box-shadow:none!important}.note-textarea:focus{box-shadow:none!important;outline:none!important}.empty-state{color:var(--text-secondary);text-align:center;padding:40px 20px;font-size:14px}.selection-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.selection-empty h3{color:var(--text-primary);margin:0 0 8px;font-size:18px}.main-empty{margin-top:60px;font-size:16px}.todo-page{padding:24px;height:100%;display:flex;flex-direction:column;background-color:var(--bg-primary);overflow:hidden}.todo-content{flex:1;overflow-y:auto;padding-right:8px}.todo-list-section{margin-bottom:24px}.todo-list-title{font-size:1rem;font-weight:600;color:var(--text-light);margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:8px}.todo-list{display:flex;flex-direction:column;gap:12px}.todo-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:16px;display:flex;align-items:center;gap:16px;transition:all .2s ease}.todo-card:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #0000000d}.todo-card--completed{opacity:.6;background:var(--bg-secondary)}.todo-checkbox{width:20px;height:20px;border-radius:6px;border:2px solid var(--border-color);display:flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;transition:all .2s;color:#fff;flex-shrink:0}.todo-checkbox:hover{border-color:var(--primary-color)}.todo-checkbox--checked{background:var(--success-color);border-color:var(--success-color)}.todo-info{flex:1;min-width:0}.todo-desc{font-size:1rem;font-weight:500;color:var(--text-primary);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.todo-card--completed .todo-desc{text-decoration:line-through;color:var(--text-light)}.todo-meta{display:flex;align-items:center;gap:12px;font-size:.85rem;color:var(--text-secondary)}.todo-meta-item{display:flex;align-items:center;gap:4px}.todo-assignees{display:flex;margin-left:auto;padding-left:16px}.todo-assignee-avatar{width:28px;height:28px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;border:2px solid var(--bg-card);margin-left:-8px}.todo-assignee-avatar:first-child{margin-left:0}.todo-actions{display:flex;gap:8px;opacity:0;transition:opacity .2s}.todo-card:hover .todo-actions{opacity:1}.todo-action-btn{width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:var(--text-light);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.todo-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.todo-action-btn--danger:hover{background:#ef44441a;color:var(--danger-color)}.assignee-selector{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.assignee-option{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:20px;border:1px solid var(--border-color);cursor:pointer;font-size:.9rem;transition:all .2s;background:var(--bg-card)}.assignee-option--selected{background:var(--primary-light);border-color:var(--primary-color);color:var(--primary-color)}.assignee-option-avatar{width:20px;height:20px;border-radius:50%;font-size:.6rem;display:flex;align-items:center;justify-content:center;color:#fff}.toggle-group{display:flex;align-items:center;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:8px 0}.toggle-switch{width:44px;height:22px;background:var(--border-color);border-radius:11px;position:relative;transition:background .3s}.toggle-switch--active{background:var(--primary-color)}.toggle-handle{width:18px;height:18px;background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;transition:transform .3s;box-shadow:0 1px 3px #0000001a}.toggle-switch--active .toggle-handle{transform:translate(22px)}.todo-list-title svg{flex-shrink:0}:root{--sidebar-bg: #0f172a;--sidebar-bg-hover: #1e293b;--sidebar-text: #94a3b8;--sidebar-text-active: #ffffff;--sidebar-width: 200px;--accent: #00BEF0;--accent-hover: #009ACD;--accent-light: rgba(0, 190, 240, .12);--accent-gradient: linear-gradient(135deg, #00BEF0 0%, #0EA5E9 100%);--bg-primary: #f4f7f9;--bg-app: linear-gradient(135deg, #f4f7f9 0%, #eaeff4 100%);--bg-card: rgba(255, 255, 255, .7);--bg-elevated: rgba(255, 255, 255, .85);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--border-color: rgba(226, 232, 240, .8);--border-radius: 12px;--border-radius-lg: 20px;--border-radius-sm: 8px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .03);--shadow-md: 0 4px 12px rgba(0, 0, 0, .04), 0 2px 4px rgba(0, 0, 0, .02);--shadow-lg: 0 12px 24px -4px rgba(0, 0, 0, .05), 0 8px 16px -6px rgba(0, 0, 0, .03);--shadow-xl: 0 24px 48px -12px rgba(0, 0, 0, .08);--status-active: #10b981;--status-active-bg: rgba(16, 185, 129, .1);--status-archived: #64748b;--status-archived-bg: rgba(100, 116, 139, .1);--role-admin: #00BEF0;--role-admin-bg: rgba(0, 190, 240, .1);--role-staff: #8b5cf6;--role-staff-bg: rgba(139, 92, 246, .1);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);color:var(--text-primary);background:var(--bg-app);background-attachment:fixed;line-height:1.5;overflow:hidden}#root{height:100vh;width:100vw}a{text-decoration:none;color:inherit}button{border:none;background:none;font-family:inherit;font-size:inherit;cursor:pointer;outline:none}input,select,textarea{font-family:inherit;font-size:inherit;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:10px 12px;color:var(--text-primary);background:var(--bg-card);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}input::placeholder{color:var(--text-muted)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;cursor:pointer}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.text-muted{color:var(--text-muted)}.text-xs{font-size:.75rem}.font-medium{font-weight:500}.ml-2{margin-left:.5rem}.mt-2{margin-top:.5rem}.p-8{padding:2rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border-radius:var(--border-radius-sm);font-size:13px;font-weight:500;transition:all var(--transition-fast);cursor:pointer;white-space:nowrap;text-decoration:none}.btn-primary{background:var(--accent);background:var(--accent-gradient);color:#fff;font-weight:600;box-shadow:0 2px 4px #00bef040;border:1px solid transparent}.btn-primary:hover{background:linear-gradient(135deg,#009acd,#0284c7);transform:translateY(-1px);box-shadow:0 4px 6px #00bef04d;color:#fff}.btn-secondary{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-primary);color:var(--text-primary);border-color:var(--text-muted)}.btn-danger{background:#ef44441a;color:#ef4444}.btn-danger:hover{background:#ef444433}.role-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.2px}.role-badge--admin{background:var(--role-admin-bg);color:var(--role-admin)}.role-badge--staff{background:var(--role-staff-bg);color:var(--role-staff)}
