@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap";:root{font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root,.team-members{width:100%}.team-members .data-table td:last-child{white-space:nowrap}.team-members .data-table td:last-child .btn{margin-right:var(--space-xs)}.team-members .data-table td:last-child .btn:last-child{margin-right:0}.expand-toggle{display:inline-block;transition:transform .2s ease;font-size:var(--text-base);color:var(--text-muted);width:16px;cursor:pointer;-webkit-user-select:none;user-select:none}.expand-toggle.expanded{transform:rotate(90deg)}.expanded-parent{background:var(--bg-hover)!important}.salary-history-row>td{padding:0!important;border-bottom:2px solid var(--primary)!important}.salary-history-panel{background:var(--bg-surface);padding:var(--space-lg) var(--space-xl);border-left:3px solid var(--primary)}.salary-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.salary-history-header h4{margin:0;font-size:var(--text-md);font-weight:600;color:var(--text);font-family:Outfit,sans-serif}.salary-history-table{margin-bottom:var(--space-lg)}.salary-history-table .current-entry{background:var(--primary-glow)!important}.salary-change-form{background:var(--bg-card);border-radius:var(--radius);padding:var(--space-lg);border:1px solid var(--border);margin-top:var(--space-md)}.salary-change-form h4{margin:0 0 var(--space-md) 0;font-size:var(--text-base);font-weight:600;color:var(--primary);font-family:Outfit,sans-serif}.salary-change-form .form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}@media(max-width:768px){.salary-change-form .form-grid{grid-template-columns:1fr 1fr}}.ledger-section{margin-top:var(--space-2xl, 2.5rem)}.ledger-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.ledger-section-header h3{margin:0;font-family:Outfit,sans-serif;font-size:var(--text-lg);font-weight:600;color:var(--text)}.ledger-total-badge{background:var(--bg-card);border:1px solid var(--primary);color:var(--text);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius);font-size:var(--text-sm);font-family:DM Sans,sans-serif}.ledger-total-badge strong{color:var(--primary);margin-left:var(--space-xs)}.month-group-header td{background:var(--bg-hover)!important;font-family:Outfit,sans-serif;font-size:var(--text-sm);text-transform:capitalize;color:var(--text-secondary);padding-top:var(--space-sm)!important;padding-bottom:var(--space-sm)!important;border-bottom:1px solid var(--border)!important}.ledger-entry-row td:first-child{width:1px}.ledger-edit-input{width:140px;padding:var(--space-xs) var(--space-sm);background:var(--bg-surface);border:1px solid var(--primary);border-radius:var(--radius-sm, 4px);color:var(--text);font-size:var(--text-sm);font-family:DM Sans,sans-serif;text-align:right}.ledger-edit-input:focus{outline:none;box-shadow:0 0 0 2px var(--primary-glow, rgba(56, 189, 248, .15))}.ledger-table .btn{margin-right:var(--space-xs)}.ledger-table .btn:last-child{margin-right:0}.purchases{width:100%}.stats-row{display:flex;gap:var(--space-lg);margin-bottom:var(--space-xl);flex-wrap:wrap}.stat-mini{background:var(--bg-card);border-radius:var(--radius);padding:var(--space-lg) var(--space-xl);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:var(--space-xs);min-width:clamp(120px,10vw,170px);border:1px solid var(--border);border-top:3px solid var(--primary);transition:transform var(--transition-base),box-shadow var(--transition-base)}.stat-mini:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.stat-mini:first-child{border-top-color:var(--success)}.stat-mini .stat-label{font-family:DM Sans,sans-serif;font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.stat-mini .stat-value{font-family:Outfit,sans-serif;font-size:var(--text-lg);font-weight:700;color:var(--primary)}.purchases .data-table td:last-child{white-space:nowrap;font-family:DM Sans,sans-serif;color:var(--text)}.purchases .section-header h2{font-family:Outfit,sans-serif;color:var(--text)}.projects{width:100%}.blended-rate-info{display:flex;align-items:center;gap:var(--space-2xl);padding:var(--space-lg) var(--space-xl);background:var(--primary-glow);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--space-xl);flex-wrap:wrap}.rate-card{display:flex;flex-direction:column;padding-right:var(--space-2xl);border-right:1px solid var(--border)}.rate-label{font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;font-weight:600;letter-spacing:.05em}.rate-value{font-size:var(--text-2xl);font-weight:700;font-family:Outfit,sans-serif;color:var(--primary)}.rate-breakdown{display:flex;flex-direction:column;gap:var(--space-xs)}.breakdown-item{display:flex;gap:var(--space-md);font-size:var(--text-base);color:var(--text)}.breakdown-item span:first-child{color:var(--text-muted)}.breakdown-item span:last-child{font-weight:600}.breakdown-item.muted{font-size:var(--text-sm);color:var(--text-muted)}.breakdown-item.muted span{color:var(--text-muted);font-weight:400}.breakdown-item.note{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px dashed var(--border);font-style:italic}.calculated-budget{background:var(--success-bg);border:1px solid var(--success);border-radius:var(--radius-sm);padding:var(--space-lg)!important}.budget-preview{display:flex;flex-direction:column;gap:var(--space-xs)}.budget-amount{font-size:var(--text-xl);font-weight:700;font-family:Outfit,sans-serif;color:var(--success)}.budget-formula{font-size:var(--text-sm);color:var(--text-muted)}.auto-calc-hint{display:flex;align-items:center;gap:var(--space-md);margin-top:var(--space-xs);flex-wrap:wrap}.hint-text{font-size:var(--text-sm);color:var(--text-muted);font-style:italic}.btn-reset-auto{padding:.15rem var(--space-md);border:1px solid var(--primary);background:transparent;color:var(--primary);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-base)}.btn-reset-auto:hover{background:var(--primary-glow);color:var(--primary)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(340px,30vw,520px),1fr));gap:var(--space-xl)}.project-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow);border:1px solid var(--border);border-top:3px solid var(--success);cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base);position:relative}.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--border-medium);border-top-color:var(--success)}.project-card.completed{border-top-color:var(--text-muted);opacity:.65}.project-card.completed:hover{opacity:.85}.project-card.on-hold{border-top-color:var(--warning)}.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-lg)}.card-title-row{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap;min-width:0}.card-title-row h3{font-size:var(--text-lg);font-weight:700;font-family:Outfit,sans-serif;color:var(--text);margin:0;line-height:1.3}.card-status{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.2em .7em;border-radius:999px;white-space:nowrap;background:var(--success-bg);color:var(--success)}.card-status.status-completed{background:#64748b1f;color:var(--text-muted)}.card-status.status-on-hold{background:var(--warning-bg);color:var(--warning)}.card-actions{display:flex;gap:4px;flex-shrink:0;opacity:0;transition:opacity var(--transition-base)}.project-card:hover .card-actions{opacity:1}.card-action-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card-hover);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.card-action-btn:hover{background:var(--bg-elevated);color:var(--text);border-color:var(--border-medium)}.card-action-btn.danger:hover{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}.card-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--space-lg)}.meta-pill{font-size:var(--text-xs);font-weight:500;padding:.15em .65em;border-radius:999px;background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border)}.meta-pill.overdue{background:var(--danger-bg);color:var(--danger);border-color:transparent}.meta-pill.muted{color:var(--text-muted)}.card-budget{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg)}.budget-row{display:flex;align-items:baseline;gap:var(--space-xs);margin-bottom:var(--space-sm)}.budget-spent{font-size:var(--text-md);font-weight:700;font-family:Outfit,sans-serif;color:var(--text)}.budget-total{font-size:var(--text-sm);color:var(--text-muted);font-weight:400}.budget-pct{margin-left:auto;font-size:var(--text-sm);font-weight:700;color:var(--success)}.budget-pct.warn{color:var(--warning)}.budget-pct.over{color:var(--danger)}.card-progress{height:6px;background:var(--bg-card-hover);border-radius:3px;overflow:hidden}.card-progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--success),#6ee7b7);transition:width var(--transition-slow) ease}.card-progress-fill.high{background:linear-gradient(90deg,var(--warning),#fcd34d)}.card-progress-fill.over-budget{background:linear-gradient(90deg,var(--danger),#fda4af)}.budget-remaining{display:block;font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-xs)}.budget-remaining.negative{color:var(--danger);font-weight:600}.card-figures{display:flex;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-sm)}.card-figures .figure{flex:1;min-width:80px;text-align:center;padding:var(--space-md) var(--space-sm);background:var(--bg-card-hover);border-radius:var(--radius-sm);border:1px solid var(--border-light)}.figure-value{display:block;font-size:var(--text-md);font-weight:700;font-family:Outfit,sans-serif;color:var(--text);line-height:1.3}.figure-value.positive{color:var(--success)}.figure-value.negative{color:var(--danger)}.figure-label{display:block;font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600;margin-top:2px}.figure-sub{display:block;font-size:var(--text-xs);color:var(--info);margin-top:2px;font-weight:500}.card-expand-hint{display:flex;justify-content:center;padding-top:var(--space-sm);color:var(--text-faint);transition:transform var(--transition-base),color var(--transition-base)}.card-expand-hint.expanded{transform:rotate(180deg)}.project-card:hover .card-expand-hint{color:var(--text-muted)}.project-details{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--border)}.allocation-section h4{font-size:var(--text-md);font-weight:600;font-family:Outfit,sans-serif;margin-bottom:var(--space-lg);color:var(--primary)}.allocation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.allocation-form{background:var(--primary-glow);padding:var(--space-lg);border-radius:var(--radius-sm);margin-bottom:var(--space-lg);border:1px solid var(--border)}.allocation-form h5{font-size:var(--text-base);font-weight:600;color:var(--primary);margin-bottom:var(--space-lg)}.member-summary{margin-bottom:var(--space-xl)}.member-summary h5,.allocations-list h5{font-size:var(--text-base);font-weight:600;color:var(--primary);margin-bottom:var(--space-md);text-transform:uppercase;letter-spacing:.05em}.no-allocations{color:var(--text-muted);font-style:italic;font-size:var(--text-md);padding:var(--space-lg);background:var(--bg-card-hover);border-radius:var(--radius-sm);text-align:center;border:1px dashed var(--border)}.allocations-list{max-height:350px;overflow-y:auto}.allocations-list .mini-table tr.editing{background:var(--primary-glow)!important}.subtask-section{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--border)}.subtask-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.subtask-header h4{font-size:var(--text-md);font-weight:600;font-family:Outfit,sans-serif;color:var(--primary);margin:0}.subtask-add-form{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg)}.subtask-add-form input{flex:1;padding:var(--space-sm) var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text);font-size:var(--text-base)}.subtask-add-form input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.subtask-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.subtask-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);gap:var(--space-md)}.subtask-item.completed .subtask-title{text-decoration:line-through;color:var(--text-muted)}.subtask-checkbox{display:flex;align-items:center;gap:var(--space-md);cursor:pointer;flex:1;min-width:0}.subtask-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.subtask-checkbox input[type=checkbox]:disabled{cursor:default;opacity:.6}.subtask-title{font-size:var(--text-base);color:var(--text)}.subtask-delete{flex-shrink:0;padding:.15rem var(--space-sm);font-size:var(--text-sm);line-height:1}.no-subtasks{color:var(--text-muted);font-style:italic;font-size:var(--text-base);padding:var(--space-lg);background:var(--bg-card-hover);border-radius:var(--radius-sm);text-align:center;border:1px dashed var(--border)}.proposals-panel{background:var(--bg-card);border:2px solid var(--warning);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-xl);margin-bottom:var(--space-xl)}.proposals-panel-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer}.proposals-panel-header h3{margin:0;font-size:var(--text-lg);font-family:Outfit,sans-serif;color:var(--warning)}.proposals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(320px,30vw,480px),1fr));gap:var(--space-lg);margin-top:var(--space-lg)}.proposal-review-card{background:var(--bg-dark);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-xl);border-left:4px solid var(--warning)}.proposal-review-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-lg)}.proposal-review-header h4{margin:0;font-size:var(--text-lg);font-family:Outfit,sans-serif;color:var(--text)}.proposal-proposer{font-size:var(--text-base);color:var(--text-muted)}.proposal-review-section{margin:var(--space-md) 0}.proposal-review-section label{font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;font-weight:600;display:block;margin-bottom:var(--space-xs)}.proposal-review-section p{margin:0;font-size:var(--text-md);color:var(--text);line-height:1.5}.proposal-review-section ul{margin:0;padding-left:var(--space-xl);font-size:var(--text-base);color:var(--text)}.proposal-review-meta{font-size:var(--text-base);color:var(--text);margin:var(--space-xs) 0}.proposal-review-meta span{color:var(--text-muted)}.proposal-review-meta-grid{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-xl)}.proposal-message{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-md)}.proposal-message.success{background:#22c55e1f;border:1px solid rgba(34,197,94,.3);color:#22c55e}.proposal-message.error{background:#ef44441f;border:1px solid rgba(239,68,68,.3);color:#ef4444}.proposal-review-actions{display:flex;gap:var(--space-md);margin-top:var(--space-lg)}.approval-form{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border)}.approval-form h5{margin:0 0 var(--space-lg) 0;font-size:var(--text-md);color:var(--text)}.approval-form .form-row{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin-bottom:var(--space-lg)}.approval-form .form-group{display:flex;flex-direction:column;gap:var(--space-xs);min-width:140px}.approval-form .form-group label{font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;font-weight:600}.approval-form .form-group input,.approval-form .form-group select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);color:var(--text);font-size:var(--text-base)}.badge.status-pending{background:var(--warning-bg);color:var(--warning)}.project-specs{background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-lg);margin-bottom:var(--space-lg)}.project-specs h4{margin:0 0 var(--space-lg) 0;font-size:var(--text-md);font-family:Outfit,sans-serif;color:var(--primary);text-transform:uppercase;letter-spacing:.03em}.specs-description{font-size:var(--text-md);color:var(--text);line-height:1.5;margin:0 0 var(--space-lg) 0}.specs-section{margin:var(--space-md) 0}.specs-section label{font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;font-weight:600;display:block;margin-bottom:var(--space-xs)}.specs-section ul{margin:0;padding-left:var(--space-xl);font-size:var(--text-base);color:var(--text)}.subtask-extended-form{background:var(--bg-dark);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-lg);margin-bottom:var(--space-lg)}.subtask-extended-form h5{margin:0 0 var(--space-lg) 0;color:var(--text);font-size:var(--text-md)}.subtask-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);margin-bottom:var(--space-lg)}.subtask-form-grid .form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.subtask-form-grid .form-group label{font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;font-weight:600}.subtask-form-grid .form-group input,.subtask-form-grid .form-group select,.subtask-form-grid .form-group textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);color:var(--text);font-size:var(--text-base)}.subtask-form-grid .form-group textarea{resize:vertical}.subtask-extended-list{display:flex;flex-direction:column;gap:var(--space-md)}.subtask-extended-item{background:var(--bg-dark);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-lg);border-left:3px solid var(--text-muted)}.subtask-extended-item.priority-low{border-left-color:var(--info)}.subtask-extended-item.priority-medium{border-left-color:var(--warning)}.subtask-extended-item.priority-high,.subtask-extended-item.priority-urgent{border-left-color:var(--danger)}.subtask-extended-item.completed{opacity:.6}.subtask-extended-main{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-lg)}.subtask-extended-info{flex:1;min-width:0}.subtask-extended-title-row{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-xs)}.priority-badge{font-size:var(--text-xs);padding:.15rem var(--space-sm);border-radius:var(--radius-sm);font-weight:600;text-transform:uppercase;white-space:nowrap}.priority-badge.priority-low{background:var(--info-bg);color:var(--info)}.priority-badge.priority-medium{background:var(--warning-bg);color:var(--warning)}.priority-badge.priority-high,.priority-badge.priority-urgent{background:var(--danger-bg);color:var(--danger)}.subtask-extended-title{font-weight:600;color:var(--text);font-size:var(--text-md)}.subtask-extended-title.done{text-decoration:line-through;opacity:.6}.subtask-extended-desc{margin:var(--space-xs) 0;font-size:var(--text-base);color:var(--text-secondary);line-height:1.4}.subtask-extended-meta{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin-top:var(--space-xs)}.subtask-meta-item{font-size:var(--text-sm);color:var(--text-muted)}.subtask-meta-item strong{color:var(--text)}.subtask-meta-item.overdue,.subtask-meta-item.overdue strong{color:var(--danger)}.subtask-extended-actions{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.subtask-status-select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-xs);color:var(--text);font-size:var(--text-sm)}.subtask-status-badge{font-size:var(--text-sm);padding:.15rem var(--space-md);border-radius:var(--radius-sm);font-weight:600}.subtask-status-badge.status-todo{background:#94a3b826;color:var(--text-muted)}.subtask-status-badge.status-in-progress{background:var(--info-bg);color:var(--info)}.subtask-status-badge.status-done{background:var(--success-bg);color:var(--success)}@media(max-width:900px){.projects-grid{grid-template-columns:1fr}}@media(max-width:768px){.card-top{flex-direction:column}.card-actions{opacity:1;justify-content:flex-start}.card-figures{flex-direction:column}.card-figures .figure{min-width:auto}.form-row{flex-direction:column;align-items:stretch}.form-row input,.form-row select{width:100%!important;min-width:auto!important}}.dashboard h2{margin-bottom:var(--space-xl);color:var(--text);font-family:Outfit,sans-serif}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(160px,14vw,220px),1fr));gap:var(--space-lg);margin-bottom:var(--space-2xl)}.stat-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow);border:1px solid var(--border);border-left:3px solid var(--border);transition:transform var(--transition-fast) ease,box-shadow var(--transition-fast) ease}.stat-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}.stat-card.primary{border-left-color:var(--primary)}.stat-card.highlight{border-left-color:var(--secondary)}.stat-card.highlight .stat-value{color:var(--secondary)}.stat-card.accent{border-left-color:var(--success)}.stat-card.danger{border-left-color:var(--danger)}.stat-card.danger .stat-value{color:var(--danger)}.stat-card.warning{border-left-color:var(--warning)}.stat-card.warning .stat-value{color:var(--warning)}.stat-card.info{border-left-color:var(--info)}.stat-card.info .stat-value{color:var(--info)}.stat-card h3{font-size:var(--text-xs);font-weight:600;color:var(--text-muted);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:.06em;font-family:DM Sans,sans-serif}.stat-card .stat-value{font-size:var(--text-2xl);font-weight:700;color:var(--primary);margin-bottom:var(--space-xs);font-family:Outfit,sans-serif;letter-spacing:-.02em}.stat-card .stat-detail{display:flex;flex-direction:column;gap:.15rem;font-size:var(--text-sm);color:var(--text-secondary)}.dashboard-sections{display:flex;flex-direction:column;gap:var(--space-xl)}.dashboard-section{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow);border:1px solid var(--border)}.dashboard-section h3{font-size:var(--text-md);font-weight:600;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--border);color:var(--text);font-family:Outfit,sans-serif}.dashboard-section .data-table{box-shadow:none;border:none}.highlight-cell{background:#a78bfa1a!important;font-weight:600!important;color:var(--secondary)!important}.empty-message{color:var(--text-muted);font-style:italic;text-align:center;padding:var(--space-xl);background:#94a3b80a;border-radius:var(--radius-sm);border:1px dashed var(--border);font-size:var(--text-base)}.timeline{width:100%}.timeline .section-header{display:flex;flex-wrap:wrap;justify-content:space-between;flex-direction:column;align-items:flex-start;gap:var(--space-lg)}.timeline .section-header h2{color:var(--text);font-family:Outfit,sans-serif}.timeline-legend{display:flex;flex-wrap:wrap;gap:var(--space-lg);padding:var(--space-lg);background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border)}.legend-item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-base);font-family:DM Sans,sans-serif}.legend-color{width:16px;height:16px;border-radius:var(--radius-sm)}.legend-label{color:var(--text-secondary)}.timeline-container{overflow-x:auto;margin-top:var(--space-lg);background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--border)}.timeline-table{width:100%;border-collapse:collapse;min-width:clamp(900px,80vw,1400px)}.timeline-table th,.timeline-table td{border:1px solid var(--border);padding:var(--space-sm);text-align:center;vertical-align:top}.timeline-table th{background:linear-gradient(135deg,var(--bg-surface) 0%,var(--bg-card) 100%);color:var(--primary);font-family:Outfit,sans-serif;font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:var(--space-md) var(--space-sm);position:sticky;top:0;z-index:10}.member-col{min-width:clamp(140px,12vw,200px);text-align:left!important}.start-col{min-width:clamp(90px,8vw,140px)}.month-col{min-width:clamp(80px,7vw,120px)}.member-cell{text-align:left!important;background:var(--bg-card-hover)}.member-info{display:flex;flex-direction:column;gap:.15rem}.member-name{font-family:Outfit,sans-serif;font-weight:600;color:var(--text);font-size:var(--text-base)}.member-role{font-size:var(--text-sm);color:var(--text-muted);font-family:DM Sans,sans-serif}.member-rate{font-size:var(--text-sm);color:var(--primary);font-weight:500}.start-date-cell{background:var(--bg-card-hover)}.date-display{cursor:pointer;padding:var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--text-secondary);transition:background var(--transition-base),border-color var(--transition-base),color var(--transition-base);border:1px solid transparent}.date-display:hover{background:var(--bg-card-hover);border-color:var(--primary);color:var(--text)}.edit-date{display:flex;flex-direction:column;gap:var(--space-sm)}.edit-date input{padding:var(--space-xs);border:1px solid var(--primary);border-radius:var(--radius-sm);font-size:var(--text-base);background:var(--bg-input);color:var(--text);font-family:DM Sans,sans-serif}.edit-date .btn{width:100%}.timeline-cell{position:relative;cursor:pointer;transition:background var(--transition-base);min-height:80px;vertical-align:middle!important;background:var(--bg-card)}.timeline-cell:hover:not(.inactive){background:var(--bg-card-hover)}.timeline-cell.inactive{background:#00000040;cursor:not-allowed}.timeline-cell.selected{background:var(--primary-glow)!important;box-shadow:inset 0 0 0 2px var(--primary)}.timeline-cell.has-data{background:var(--success-bg)}.cell-content{display:flex;flex-direction:column;gap:var(--space-xs);min-height:60px;justify-content:center}.project-bar{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-sm);color:#fff;font-weight:600;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-hours{text-shadow:0 1px 2px rgba(0,0,0,.4)}.cell-total{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-xs);font-weight:500}.cell-empty{color:var(--border);font-size:var(--text-2xl);font-weight:300}.cell-available{font-size:var(--text-xs);color:var(--text-muted);font-weight:500}.leave-indicator{margin-bottom:var(--space-xs)}.leave-badge{display:inline-block;padding:.15rem var(--space-sm);background:var(--warning-bg);border:1px solid var(--warning);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--warning);font-weight:600}.panel-overlay{position:fixed;inset:0;background:#0009;z-index:99;cursor:pointer}.allocation-panel{position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-top:2px solid var(--primary);box-shadow:var(--shadow-xl);padding:var(--space-xl);z-index:100;max-height:50vh;overflow-y:auto}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--border)}.panel-header h3{color:var(--primary);font-family:Outfit,sans-serif;font-size:var(--text-lg)}.panel-content{display:flex;flex-direction:column;gap:var(--space-xl)}.panel-summary{display:flex;gap:var(--space-xl);padding:var(--space-lg);background:var(--bg-card-hover);border-radius:var(--radius);border:1px solid var(--border)}.summary-stat{display:flex;flex-direction:column;gap:var(--space-xs)}.summary-label{font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-family:DM Sans,sans-serif}.summary-value{font-size:var(--text-lg);font-weight:700;color:var(--primary);font-family:Outfit,sans-serif}.holidays-section{padding:var(--space-lg);background:var(--success-bg);border-radius:var(--radius);border:1px solid rgba(52,211,153,.25)}.holidays-section h4{font-family:Outfit,sans-serif;font-size:var(--text-base);color:var(--success);margin-bottom:var(--space-md)}.holidays-list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.holiday-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-card);border-radius:var(--radius-sm);font-size:var(--text-base);font-family:DM Sans,sans-serif}.holiday-name{color:var(--text)}.holiday-days{color:var(--success);font-weight:600}.add-leave{padding:var(--space-lg);background:var(--warning-bg);border-radius:var(--radius);border:1px solid rgba(251,191,36,.25)}.add-leave h4{font-family:Outfit,sans-serif;font-size:var(--text-base);color:var(--warning);margin-bottom:var(--space-md)}.existing-leaves{padding:var(--space-lg);background:var(--bg-card-hover);border-radius:var(--radius);border:1px solid var(--border)}.existing-leaves h4{font-family:Outfit,sans-serif;font-size:var(--text-base);color:var(--primary);margin-bottom:var(--space-md);text-transform:uppercase;letter-spacing:.03em}.leave-type-badge{display:inline-block;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-sm);color:#fff;font-weight:600}.add-allocation h4,.existing-allocations h4{font-family:Outfit,sans-serif;font-size:var(--text-base);color:var(--primary);margin-bottom:var(--space-md);text-transform:uppercase;letter-spacing:.03em}.add-allocation .form-row{display:flex;gap:var(--space-sm);flex-wrap:wrap;align-items:center}.add-allocation select,.add-allocation input{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-base);background:var(--bg-input);color:var(--text);font-family:DM Sans,sans-serif}.add-allocation select{min-width:clamp(160px,14vw,220px)}.existing-allocations .mini-table{background:var(--bg-card-hover);border-radius:var(--radius);border:1px solid var(--border)}.project-dot{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:var(--space-sm);vertical-align:middle}.header-actions{display:flex;gap:var(--space-sm);align-items:center}.pending-badge-btn{display:flex;align-items:center;gap:var(--space-sm);animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.member-info-banner{padding:var(--space-md) var(--space-lg);background:var(--warning-bg);border:1px solid rgba(251,191,36,.25);border-radius:var(--radius);color:var(--warning);font-size:var(--text-base);margin-top:var(--space-lg);font-family:DM Sans,sans-serif}.pending-indicator{position:absolute;top:2px;right:2px;width:18px;height:18px;background:var(--warning);color:#000;font-size:var(--text-xs);font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:5}.timeline-cell.has-pending{border:2px solid var(--warning)!important;background:var(--warning-bg)!important}.timeline-cell.editable:hover{cursor:pointer;background:var(--primary-glow)!important}.pending-section{padding:var(--space-lg);background:var(--warning-bg);border-radius:var(--radius);border:1px solid rgba(251,191,36,.25)}.pending-section h4{font-family:Outfit,sans-serif;font-size:var(--text-base);color:var(--warning);margin-bottom:var(--space-md);text-transform:uppercase;letter-spacing:.03em}.pending-table .pending-row{background:var(--warning-bg)}.action-badge{display:inline-block;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;font-family:DM Sans,sans-serif}.action-badge.add{background:var(--success-bg);color:var(--success);border:1px solid rgba(52,211,153,.25)}.action-badge.delete{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(251,113,133,.25)}.action-badge.update{background:var(--info-bg);color:var(--info);border:1px solid rgba(96,165,250,.25)}.status-pending{display:inline-block;padding:var(--space-xs) var(--space-sm);background:var(--warning-bg);color:var(--warning);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600}.pending-delete{opacity:.6;background:var(--danger-bg)!important}.pending-delete-badge{display:inline-block;margin-left:var(--space-sm);padding:.15rem var(--space-sm);background:var(--danger);color:#fff;font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-sm)}.approval-note{font-size:var(--text-sm);color:var(--warning);font-weight:400;text-transform:none;letter-spacing:normal}.approval-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-card);border:1px solid var(--primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-xl);z-index:100;max-height:80vh;max-width:90vw;width:900px;overflow-y:auto}.approval-table{width:100%}.approval-actions{display:flex;gap:var(--space-sm);white-space:nowrap}.no-pending{color:var(--text-muted);font-style:italic;text-align:center;padding:var(--space-2xl);font-family:DM Sans,sans-serif}.date-display.readonly{cursor:default}.date-display.readonly:hover{background:transparent;border-color:transparent}.add-leave .form-row{display:flex;gap:var(--space-sm);flex-wrap:wrap;align-items:center}.add-leave select,.add-leave input{padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-base);background:var(--bg-input);color:var(--text);font-family:DM Sans,sans-serif}.date-added-cell{white-space:nowrap;font-size:var(--text-sm);color:var(--text-muted);font-family:DM Sans,sans-serif}.timeline-cell.has-duplicates{border:2px solid #ef4444!important;background:#ef444414!important}.timeline-cell.has-duplicates:hover{background:#ef444424!important}.duplicate-indicator{position:absolute;top:2px;left:2px;padding:1px 5px;background:#ef4444;color:#fff;font-size:var(--text-xs);font-weight:700;border-radius:var(--radius-sm);z-index:5;text-transform:uppercase;letter-spacing:.02em}.duplicate-row{background:#ef44441f!important;border-left:3px solid #ef4444!important}.duplicate-row td{color:#fca5a5!important}.duplicate-badge{display:inline-block;margin-left:var(--space-sm);padding:.15rem var(--space-sm);background:#ef4444;color:#fff;font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-sm);animation:duplicate-pulse 1.5s ease-in-out infinite}@keyframes duplicate-pulse{0%,to{opacity:1}50%{opacity:.6}}@media(max-width:768px){.timeline-legend{flex-direction:column}.allocation-panel{max-height:70vh}.add-allocation .form-row{flex-direction:column;align-items:stretch}.add-allocation select,.add-allocation input{width:100%!important;min-width:auto!important}.approval-panel{width:95vw;padding:var(--space-lg)}.approval-actions{flex-direction:column}}.expenses{width:100%}.expenses .stats-row{display:flex;gap:var(--space-lg);margin-bottom:var(--space-xl);flex-wrap:wrap}.expenses .stat-mini{background:var(--bg-card);border-radius:var(--radius);padding:var(--space-lg) var(--space-xl);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:var(--space-xs);min-width:clamp(140px,12vw,200px);border:1px solid var(--border);border-left:3px solid var(--primary);transition:transform var(--transition-base)}.expenses .stat-mini:hover{transform:translateY(-1px)}.expenses .stat-mini:nth-child(1){border-left-color:var(--warning)}.expenses .stat-mini:nth-child(2){border-left-color:var(--info)}.expenses .stat-mini:nth-child(3){border-left-color:var(--success)}.expenses .stat-mini:nth-child(4){border-left-color:#f97316}.expenses .stat-mini .stat-label{font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;font-family:DM Sans,sans-serif}.expenses .stat-mini .stat-value{font-size:var(--text-xl);font-weight:700;color:var(--primary);font-family:Outfit,sans-serif}.expenses-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-xl)}.section-title{font-size:var(--text-md);font-weight:600;color:var(--text);margin:var(--space-xl) 0 var(--space-lg) 0;padding-bottom:var(--space-sm);border-bottom:2px solid var(--border);font-family:Outfit,sans-serif}.total-cell{font-weight:700!important;color:var(--primary)!important;background:var(--primary-glow)}.subscriptions-list{display:flex;flex-direction:column;gap:var(--space-lg)}.subscription-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow);border-left:4px solid var(--success);transition:transform var(--transition-base),box-shadow var(--transition-base)}.subscription-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}.subscription-card.inactive{border-left-color:var(--text-muted);opacity:.7}.subscription-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.subscription-header h4{font-size:var(--text-md);font-weight:600;color:var(--text);margin:0;font-family:Outfit,sans-serif}.subscription-details{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-md)}.subscription-amount{font-size:var(--text-xl);font-weight:700;color:var(--primary);font-family:Outfit,sans-serif}.billing-cycle{font-size:var(--text-base);font-weight:400;color:var(--text-muted)}.subscription-meta{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs)}.subscription-meta .start-date{font-size:var(--text-sm);color:var(--text-muted)}.subscription-actions{display:flex;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--border)}@media(max-width:1024px){.expenses-grid{grid-template-columns:1fr}}@media(max-width:768px){.expenses .stats-row{flex-direction:column}.expenses .stat-mini{min-width:auto}.subscription-details{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.subscription-meta{align-items:flex-start}}.custom-items-section{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border)}.custom-items-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.custom-items-header label{font-size:var(--text-sm);font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.05em}.custom-items-list{display:flex;flex-direction:column;gap:var(--space-sm)}.custom-item-row{display:grid;grid-template-columns:1fr 120px auto;gap:var(--space-sm);align-items:center}.custom-item-row input[type=text],.custom-item-row input[type=number]{padding:var(--space-sm) var(--space-md);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:var(--text-sm)}.expandable-row{cursor:pointer}.expandable-row:hover{background:var(--bg-hover)!important}.month-cell{display:flex;align-items:center;gap:var(--space-sm)}.expand-icon{display:inline-block;transition:transform .2s ease;font-size:var(--text-sm);color:var(--text-muted);width:12px}.expand-icon.expanded{transform:rotate(90deg)}.custom-badge{font-size:.65rem;padding:1px 6px;border-radius:10px;background:var(--secondary);color:#fff;font-weight:600;white-space:nowrap}.custom-item-detail-row{background:var(--bg-surface)!important}.custom-item-detail-row td{padding-top:var(--space-xs)!important;padding-bottom:var(--space-xs)!important;font-size:var(--text-sm);color:var(--text-muted);border-bottom:1px solid var(--border)!important}.custom-item-name{padding-left:calc(var(--space-xl) + 12px)!important;font-style:italic}.expense-section-header{display:flex;justify-content:space-between;align-items:center}.expense-section-header .section-title{margin:0;border-bottom:none;padding-bottom:0}.overhead-section{margin-top:var(--space-2xl)}.overhead-section .section-header{margin-bottom:var(--space-lg)}.overhead-section .section-desc{font-size:var(--text-base);color:var(--text-muted);margin-top:var(--space-xs)}.planning{padding:var(--space-md);min-height:calc(100vh - 100px);display:flex;flex-direction:column}.planning-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-lg);flex-wrap:wrap}.planning-header h2{margin:0;font-size:var(--text-xl);color:var(--text);font-family:Outfit,sans-serif;font-weight:700}.week-controls{display:flex;align-items:center;gap:var(--space-sm)}.week-btn{width:32px;height:32px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:var(--text-md);cursor:pointer;transition:all var(--transition-fast) ease;display:flex;align-items:center;justify-content:center}.week-btn:hover{background:var(--primary);border-color:var(--primary);color:#fff}.week-controls input[type=week]{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text);font-size:var(--text-base);font-family:DM Sans,sans-serif}.btn-today{padding:var(--space-sm) var(--space-lg);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-base);font-weight:500;transition:all var(--transition-fast) ease;font-family:DM Sans,sans-serif}.btn-today:hover{background:var(--primary);border-color:var(--primary);color:#fff}.header-actions{display:flex;gap:var(--space-sm)}.btn-action{padding:var(--space-sm) var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;font-size:var(--text-base);font-weight:500;transition:all var(--transition-fast) ease;font-family:DM Sans,sans-serif}.btn-action:hover{background:var(--primary);border-color:var(--primary);color:#fff}.btn-action.btn-success{background:var(--success);border-color:var(--success);color:#0c1017}.btn-action.btn-warning{background:var(--warning);border-color:var(--warning);color:#0c1017}.week-summary{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:var(--space-lg);font-size:var(--text-base)}.summary-stat{color:var(--text-muted);padding:var(--space-xs) var(--space-md);background:#94a3b80f;border-radius:20px;font-size:var(--text-sm)}.summary-stat.completed{color:var(--success);background:var(--success-bg)}.planning-grid{display:flex;flex-direction:column;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow-x:auto}.grid-header{display:grid;grid-template-columns:clamp(120px,10vw,160px) repeat(5,1fr);background:var(--bg-surface);border-bottom:1px solid var(--border)}.grid-corner{padding:var(--space-lg);font-weight:600;font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center}.grid-day-header{padding:var(--space-md);text-align:center;border-left:1px solid var(--border)}.grid-day-header.today{background:var(--primary-glow)}.grid-day-header .day-name{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;font-weight:600;letter-spacing:.04em}.grid-day-header .day-num{font-size:var(--text-xl);font-weight:700;color:var(--text);font-family:Outfit,sans-serif}.grid-row{display:grid;grid-template-columns:clamp(120px,10vw,160px) repeat(5,1fr);border-bottom:1px solid var(--border-light);min-height:170px}.grid-row:last-child{border-bottom:none}.grid-member{padding:var(--space-md);background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:center}.member-name{font-weight:600;font-size:var(--text-base);color:var(--text);margin-bottom:var(--space-sm);font-family:Outfit,sans-serif}.member-capacity,.member-planned,.member-remaining{display:flex;justify-content:space-between;font-size:var(--text-xs);padding:.12rem 0}.capacity-label,.planned-label,.remaining-label{color:var(--text-muted)}.capacity-value{color:var(--text-secondary);font-weight:600}.planned-value{color:var(--info);font-weight:600}.remaining-value{color:var(--success);font-weight:600}.member-remaining.over .remaining-value,.member-remaining.over .remaining-label{color:var(--danger)}.grid-cell{padding:var(--space-sm);border-left:1px solid var(--border-light);display:flex;flex-direction:column;gap:var(--space-sm);background:transparent;position:relative}.grid-cell.today{background:#ff165408}.grid-cell.on-leave{background:var(--warning-bg)}.tasks-list{display:flex;flex-direction:column;gap:var(--space-sm);flex:1}.task-item{background:var(--bg-surface);border-radius:var(--radius-sm);padding:var(--space-sm);border-left:3px solid var(--text-muted);transition:background var(--transition-fast) ease}.task-item:hover{background:var(--bg-card-hover)}.task-item.planned{border-left-color:var(--text-muted)}.task-item.in-progress{border-left-color:var(--info);background:#60a5fa0f}.task-item.completed{border-left-color:var(--success);background:#34d3990f}.task-item.completed .task-name{text-decoration:line-through;opacity:.6}.task-item.finalized{border-left-color:var(--text-muted);background:#94a3b80a;opacity:.5}.task-item.finalized .task-name{text-decoration:line-through}.task-finalized-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;font-weight:600;letter-spacing:.05em;margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--border-light)}.task-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.task-project{font-size:var(--text-xs);color:var(--primary);text-transform:uppercase;font-weight:600;letter-spacing:.03em}.task-hours{font-size:var(--text-xs);color:var(--text-muted);font-weight:600}.task-name{font-size:var(--text-sm);color:var(--text);line-height:1.3;word-break:break-word}.task-actions{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--border-light)}.status-select{flex:1;padding:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg-input);color:var(--text);font-size:var(--text-xs);cursor:pointer;font-family:DM Sans,sans-serif}.status-select.planned{border-color:var(--text-muted)}.status-select.in-progress{border-color:var(--info);color:var(--info)}.status-select.completed{border-color:var(--success);color:var(--success)}.edit-btn,.del-btn{width:22px;height:22px;border:none;background:#94a3b80f;color:var(--text-muted);border-radius:var(--radius-xs);cursor:pointer;font-size:var(--text-base);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast) ease}.edit-btn:hover{background:var(--warning-bg);color:var(--warning)}.del-btn:hover{background:var(--danger-bg);color:var(--danger)}.add-btn{width:100%;padding:var(--space-sm);border:1px dashed var(--border);background:transparent;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);transition:all var(--transition-fast) ease;margin-top:auto}.add-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-glow)}.add-task-form{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background:var(--bg-surface);border-radius:var(--radius-sm);border:1px solid var(--primary);margin-top:auto}.add-task-form select,.add-task-form input[type=text]{width:100%;padding:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg-input);color:var(--text);font-size:var(--text-sm);font-family:DM Sans,sans-serif}.add-task-form select:focus,.add-task-form input:focus{outline:none;border-color:var(--primary)}.planning .form-row{display:flex;align-items:center;gap:var(--space-xs)}.planning .form-row input[type=number]{width:48px;padding:var(--space-xs);border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg-input);color:var(--text);font-size:var(--text-sm);text-align:center}.planning .form-row span{font-size:var(--text-xs);color:var(--text-muted)}.btn-add{flex:1;padding:var(--space-xs);border:none;border-radius:var(--radius-xs);background:var(--primary);color:#fff;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast) ease}.btn-add:hover{background:var(--primary-light)}.btn-cancel{padding:var(--space-xs) var(--space-sm);border:none;border-radius:var(--radius-xs);background:var(--bg-card);color:var(--text-muted);font-size:var(--text-base);cursor:pointer;transition:background var(--transition-fast) ease}.btn-cancel:hover{background:var(--bg-card-hover)}.day-total{position:absolute;bottom:var(--space-xs);right:var(--space-xs);font-size:var(--text-xs);color:var(--primary);font-weight:600;background:var(--primary-glow);padding:.1rem var(--space-xs);border-radius:var(--radius-xs)}.leave-badge{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-surface);border-radius:var(--radius-sm);border-left:3px solid var(--warning);font-size:var(--text-base);font-weight:500}.leave-badge.vacation{border-left-color:var(--info);background:#60a5fa0f}.leave-badge.sick{border-left-color:var(--danger);background:#fb71850f}.leave-badge.personal{border-left-color:var(--secondary);background:#a78bfa0f}.remove-btn{margin-left:auto;width:20px;height:20px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:var(--text-md);border-radius:50%;transition:all var(--transition-fast) ease}.remove-btn:hover{background:var(--danger-bg);color:var(--danger)}.modal-overlay{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--transition-fast) ease}.modal{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-xl);width:100%;max-width:400px;border:1px solid var(--border);box-shadow:var(--shadow-xl);animation:modalSlide var(--transition-base) ease}@keyframes modalSlide{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal h3{margin:0 0 var(--space-xl) 0;color:var(--text);font-size:var(--text-lg);font-family:Outfit,sans-serif;font-weight:600}.modal-form{display:flex;flex-direction:column;gap:var(--space-md)}.modal-form label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;font-weight:600;letter-spacing:.04em;margin-bottom:var(--space-sm)}.modal-form select,.modal-form input{padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text);font-size:var(--text-base);font-family:DM Sans,sans-serif}.modal-form select:focus,.modal-form input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.modal-actions{display:flex;gap:var(--space-md);margin-top:var(--space-xl)}.modal-actions button{flex:1;padding:var(--space-md) var(--space-lg);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-base);font-weight:600;transition:all var(--transition-fast) ease;font-family:DM Sans,sans-serif}.planning .btn-primary{background:var(--primary);color:#fff}.planning .btn-secondary{background:var(--bg-surface);color:var(--text);border:1px solid var(--border)}.planning .btn-danger{background:var(--danger);color:#fff}.planning-legend{display:flex;align-items:center;gap:var(--space-xl);padding:var(--space-md) var(--space-lg);margin-top:var(--space-lg);background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border)}.planning-legend span{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--text-secondary)}.planning-legend .dot{width:10px;height:10px;border-radius:3px}.dot.planned{background:var(--text-muted)}.dot.in-progress{background:var(--info)}.dot.completed{background:var(--success)}.dot.finalized{background:#555}.planning-layout{display:flex;gap:var(--space-lg);overflow-x:auto}.planning-layout .planning-grid{flex:1;min-width:0}.planning-layout.with-sidebar .planning-grid{flex:1}.assigned-tasks-sidebar{width:clamp(240px,20vw,300px);min-width:260px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);max-height:calc(100vh - 220px);overflow-y:auto;flex-shrink:0}.sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--border)}.sidebar-header h3{margin:0;font-size:var(--text-md);color:var(--text);font-family:Outfit,sans-serif;font-weight:600}.sidebar-close{background:none;border:none;color:var(--text-muted);font-size:var(--text-md);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-xs);transition:all var(--transition-fast) ease}.sidebar-close:hover{background:#94a3b814;color:var(--text)}.sidebar-tasks{display:flex;flex-direction:column;gap:var(--space-md)}.assigned-task-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-md);border-left:3px solid var(--text-muted);transition:background var(--transition-fast) ease}.assigned-task-card:hover{background:var(--bg-card-hover)}.assigned-task-card.priority-low{border-left-color:var(--info)}.assigned-task-card.priority-medium{border-left-color:var(--warning)}.assigned-task-card.priority-high{border-left-color:#f97316}.assigned-task-card.priority-urgent{border-left-color:var(--danger)}.assigned-task-assignee{font-size:var(--text-xs);color:var(--text-muted);font-weight:500;display:inline-block;padding:1px 5px;border-radius:3px;background:#94a3b80f;margin-bottom:2px}.assigned-task-project{font-size:var(--text-xs);color:var(--primary);text-transform:uppercase;font-weight:600;letter-spacing:.03em;margin-bottom:var(--space-xs)}.assigned-task-title{font-weight:600;color:var(--text);font-size:var(--text-base);margin-bottom:var(--space-xs)}.assigned-task-desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.4;margin-bottom:var(--space-xs)}.assigned-task-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-sm)}.at-hours{font-size:var(--text-sm);color:var(--info);font-weight:600;background:var(--info-bg);padding:.08rem var(--space-xs);border-radius:var(--radius-xs)}.at-deadline{font-size:var(--text-sm);color:var(--text-muted)}.at-deadline.overdue{color:var(--danger);font-weight:600}.at-priority{font-size:var(--text-xs);padding:.08rem var(--space-xs);border-radius:var(--radius-xs);text-transform:uppercase;font-weight:600}.at-priority.priority-low{background:var(--info-bg);color:var(--info)}.at-priority.priority-medium{background:var(--warning-bg);color:var(--warning)}.at-priority.priority-high{background:#f9731626;color:#f97316}.at-priority.priority-urgent{background:var(--danger-bg);color:var(--danger)}.btn-add-to-plan{width:100%;padding:var(--space-xs);background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast) ease;font-family:DM Sans,sans-serif}.btn-add-to-plan:hover{background:var(--primary-light)}.assigned-task-day-picker{display:flex;flex-direction:column;gap:var(--space-xs)}.assigned-task-day-picker span{font-size:var(--text-sm);color:var(--text-muted)}.day-buttons{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.day-pick-btn{padding:var(--space-xs) var(--space-sm);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast) ease}.day-pick-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-cancel-pick{padding:.15rem;background:none;border:none;color:var(--text-muted);font-size:var(--text-xs);cursor:pointer}.btn-cancel-pick:hover{color:var(--text)}@media(max-width:1200px){.grid-header,.grid-row{min-width:900px}}@media(max-width:768px){.planning-header{flex-direction:column;align-items:flex-start}.header-actions{flex-wrap:wrap}.week-summary{flex-wrap:wrap;gap:var(--space-sm)}.assigned-tasks-sidebar{width:100%;min-width:auto;max-height:300px}.planning-layout{flex-direction:column}}.roadmap-ticket-select{width:100%;padding:var(--space-xs);border:1px solid rgba(167,139,250,.3);border-radius:var(--radius-xs);background:#a78bfa14;color:var(--text);font-size:var(--text-sm);font-family:DM Sans,sans-serif}.roadmap-ticket-select:focus{outline:none;border-color:var(--secondary)}.roadmap-link-badge{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:9px;font-weight:700;background:#a78bfa33;color:var(--secondary);border-radius:3px;margin-right:3px;flex-shrink:0;vertical-align:middle}.user-management{padding:var(--space-lg)}.user-management.loading{display:flex;justify-content:center;align-items:center;min-height:200px;color:var(--text-muted);font-family:DM Sans,sans-serif}.user-management .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl)}.user-management .section-header h2{margin:0;font-family:Outfit,sans-serif;color:var(--text);letter-spacing:-.01em}.error-message{background:var(--danger-bg);border:1px solid var(--danger);color:var(--danger);padding:var(--space-lg) var(--space-lg);border-radius:var(--radius);margin-bottom:var(--space-lg);font-family:DM Sans,sans-serif;font-size:var(--text-base)}.modal-overlay{position:fixed;inset:0;background:#000000a6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:overlayFadeIn var(--transition-base) ease-out}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-content{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-xl);width:100%;max-width:clamp(360px,30vw,500px);border:1px solid var(--border);box-shadow:var(--shadow-xl);animation:modalSlideIn var(--transition-slow) ease-out}.modal-content h3{margin:0 0 var(--space-xl) 0;color:var(--primary);font-family:Outfit,sans-serif;font-weight:600;letter-spacing:-.01em}.form-group{margin-bottom:var(--space-lg)}.form-group label{display:block;font-family:DM Sans,sans-serif;font-size:var(--text-base);color:var(--text-muted);text-transform:uppercase;font-weight:600;margin-bottom:var(--space-sm);letter-spacing:.04em}.form-group input[type=text],.form-group input[type=password],.form-group select{width:100%;padding:var(--space-md) var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text);font-family:DM Sans,sans-serif;font-size:var(--text-base);transition:border-color var(--transition-base) ease,box-shadow var(--transition-base) ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.form-group.checkbox label{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;font-size:var(--text-base);text-transform:none;font-weight:400;color:var(--text);letter-spacing:normal}.form-group.checkbox input[type=checkbox]{width:auto;accent-color:var(--primary)}.form-hint{display:block;font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-sm);font-style:italic;font-family:DM Sans,sans-serif}.form-actions{display:flex;gap:var(--space-lg);margin-top:var(--space-xl)}.form-actions .btn{flex:1}.users-table-container{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow)}.users-table{width:100%;border-collapse:collapse;font-family:DM Sans,sans-serif}.users-table th,.users-table td{padding:var(--space-lg) var(--space-lg);text-align:left;border-bottom:1px solid var(--border-light)}.users-table th{background:var(--bg-dark);font-size:var(--text-sm);text-transform:uppercase;color:var(--text-muted);font-weight:600;letter-spacing:.04em}.users-table tbody tr:last-child td{border-bottom:none}.users-table tbody tr{transition:background-color var(--transition-fast) ease}.users-table tbody tr:hover{background:var(--bg-card-hover)}.users-table tbody tr.inactive{opacity:.5}.users-table .username{font-weight:600;color:var(--text)}.role-badge{display:inline-block;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-family:DM Sans,sans-serif;font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.role-badge.admin{background:var(--primary-glow);color:var(--primary)}.role-badge.member{background:var(--info-bg);color:var(--info)}.role-badge.product_owner{background:#a78bfa1f;color:var(--secondary)}.status-badge{display:inline-block;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-family:DM Sans,sans-serif;font-size:var(--text-sm);font-weight:600;letter-spacing:.03em}.status-badge.active{background:var(--success-bg);color:var(--success)}.status-badge.inactive{background:#94a3b81a;color:var(--text-muted)}.users-table .actions{display:flex;gap:var(--space-sm)}.no-users{padding:var(--space-3xl);text-align:center;color:var(--text-muted);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);font-family:DM Sans,sans-serif}@media(max-width:768px){.users-table-container{overflow-x:auto}.users-table{min-width:clamp(500px,50vw,700px)}.modal-content{margin:var(--space-lg)}}.stakeholder-dashboard{padding:var(--space-lg)}.dashboard-header{margin-bottom:var(--space-2xl)}.header-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:var(--space-lg)}.dashboard-header h2{margin:0;font-family:Outfit,sans-serif;font-size:var(--text-2xl);color:var(--text)}.dashboard-subtitle{margin:var(--space-sm) 0 0 0;color:var(--text-muted);font-family:DM Sans,sans-serif;font-size:var(--text-base)}.view-toggle{display:flex;gap:var(--space-xs);background:var(--bg-dark);padding:var(--space-xs);border-radius:var(--radius)}.toggle-btn{padding:var(--space-sm) var(--space-lg);border:none;background:transparent;color:var(--text-muted);font-family:DM Sans,sans-serif;font-size:var(--text-base);font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base)}.toggle-btn:hover{color:var(--text);background:var(--bg-surface)}.toggle-btn.active{background:var(--primary);color:#fff;box-shadow:0 0 12px var(--primary-glow)}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(150px,13vw,200px),1fr));gap:var(--space-lg);margin-bottom:var(--space-2xl)}.summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl);display:flex;align-items:center;gap:var(--space-lg);transition:transform var(--transition-base),box-shadow var(--transition-base)}.summary-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg);background:var(--bg-card-hover)}.summary-card.alert{border-color:var(--danger);background:var(--danger-bg)}.summary-card.success{border-color:var(--success);background:var(--success-bg)}.card-icon{font-size:var(--text-3xl)}.card-content{display:flex;flex-direction:column}.card-value{font-family:Outfit,sans-serif;font-size:var(--text-2xl);font-weight:700;color:var(--text)}.card-label{font-family:DM Sans,sans-serif;font-size:var(--text-base);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(300px,28vw,440px),1fr));gap:var(--space-xl)}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl);border-top:4px solid var(--success);transition:box-shadow var(--transition-base)}.project-card:hover{box-shadow:var(--shadow)}.project-card.warning{border-top-color:var(--warning)}.project-card.over-budget{border-top-color:var(--danger)}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-xl)}.project-header h3{margin:0;font-family:Outfit,sans-serif;font-size:var(--text-xl);color:var(--text)}.status-badge{padding:var(--space-xs) var(--space-md);border-radius:1rem;font-family:DM Sans,sans-serif;font-size:var(--text-sm);font-weight:600;text-transform:uppercase}.status-badge.on-track{background:var(--success-bg);color:var(--success)}.status-badge.warning{background:var(--warning-bg);color:var(--warning)}.status-badge.over-budget{background:var(--danger-bg);color:var(--danger)}.budget-section{margin-bottom:var(--space-xl)}.budget-info{display:flex;justify-content:space-between;margin-bottom:var(--space-sm)}.budget-label{font-size:var(--text-base);color:var(--text-muted)}.budget-value{font-family:Outfit,sans-serif;font-size:var(--text-lg);font-weight:600;color:var(--text)}.progress-bar{height:8px;background:var(--bg-dark);border-radius:4px;overflow:visible;position:relative}.progress-fill{height:100%;border-radius:4px;transition:width var(--transition-slow) ease}.progress-fill.on-track{background:var(--success)}.progress-fill.warning{background:var(--warning)}.progress-fill.over-budget{background:var(--danger)}.progress-overflow{position:absolute;right:0;top:0;height:100%;background:repeating-linear-gradient(45deg,var(--danger),var(--danger) 5px,rgba(251,113,133,.5) 5px,rgba(251,113,133,.5) 10px);border-radius:0 4px 4px 0;transform:translate(100%)}.budget-details{display:flex;justify-content:space-between;margin-top:var(--space-sm);font-size:var(--text-base)}.spent{color:var(--text-secondary)}.remaining{color:var(--success);font-weight:600}.remaining.negative{color:var(--danger)}.market-comparison{background:var(--bg-dark);border-radius:var(--radius);padding:var(--space-md);margin-bottom:var(--space-xl);display:flex;justify-content:space-between;align-items:center}.market-label{font-size:var(--text-base);color:var(--text-secondary)}.savings{font-size:var(--text-base);font-weight:600}.savings.positive{color:var(--success)}.savings.negative{color:var(--danger)}.team-breakdown h4{margin:0 0 var(--space-lg) 0;font-family:Outfit,sans-serif;font-size:var(--text-base);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);padding-bottom:var(--space-sm)}.member-list{display:flex;flex-direction:column;gap:var(--space-md)}.member-row{display:grid;grid-template-columns:1fr auto auto;gap:var(--space-lg);align-items:center}.member-info{display:flex;flex-direction:column}.member-name{font-weight:600;color:var(--text);font-size:var(--text-base)}.member-rate{font-size:var(--text-sm);color:var(--text-muted)}.member-stats{display:flex;gap:var(--space-lg);text-align:right}.member-hours{font-size:var(--text-base);color:var(--primary);font-weight:600;min-width:50px}.member-cost{font-size:var(--text-base);color:var(--text);font-weight:600;min-width:80px}.member-bar{grid-column:1 / -1;height:4px;background:var(--bg-dark);border-radius:2px;overflow:hidden}.member-bar-fill{height:100%;background:var(--primary);border-radius:2px;transition:width var(--transition-slow) ease}.no-data{color:var(--text-muted);font-style:italic;font-size:var(--text-base);text-align:center;padding:var(--space-lg)}.empty-state{text-align:center;padding:4rem var(--space-2xl);background:var(--bg-card);border-radius:var(--radius-lg);border:2px dashed var(--border)}.empty-state h3{margin:0 0 var(--space-sm) 0;font-family:Outfit,sans-serif;color:var(--text)}.empty-state p{margin:0;color:var(--text-muted)}.deadline-target{background:var(--bg-dark);border-radius:var(--radius);padding:var(--space-md);margin-bottom:var(--space-lg);display:flex;flex-wrap:wrap;gap:var(--space-lg)}.deadline-item,.target-item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-base)}.dt-label{color:var(--text-muted)}.dt-value{color:var(--text);font-weight:600}.dt-value.overdue{color:var(--danger)}.progress-text{color:var(--text-muted);font-size:var(--text-base)}.progress-text.achieved{color:var(--success);font-weight:600}.table-view{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{background:var(--bg-dark);font-family:DM Sans,sans-serif;font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;font-weight:600;letter-spacing:.05em}.data-table td{font-size:var(--text-base);color:var(--text)}.data-table tbody tr:hover{background:var(--bg-card-hover)}.data-table tfoot td{background:var(--bg-dark);border-bottom:none}.data-table .amount{text-align:right;font-family:DM Sans,monospace;font-weight:500}.data-table .hours{text-align:center}.data-table .amount.negative{color:var(--danger)}.data-table .amount.positive{color:var(--success)}.data-table .overdue{color:var(--danger);font-weight:600}.data-table .achieved{color:var(--success)}.project-name-cell{font-weight:600}.person-view{display:flex;flex-direction:column;gap:var(--space-2xl)}.person-table{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border)}.person-name-cell strong{color:var(--primary)}.projects-cell{max-width:400px}.project-breakdown{display:flex;flex-direction:column;gap:var(--space-sm)}.project-mini{display:flex;gap:var(--space-lg);font-size:var(--text-base);padding:var(--space-xs) var(--space-sm);background:var(--bg-dark);border-radius:var(--radius-sm)}.proj-name{flex:1;color:var(--text)}.proj-hours{color:var(--primary);font-weight:600;min-width:50px;text-align:right}.proj-cost{color:var(--text-muted);min-width:80px;text-align:right}.section-title{margin:0;font-family:Outfit,sans-serif;font-size:var(--text-lg);color:var(--text);padding-bottom:var(--space-sm);border-bottom:2px solid var(--border)}.person-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(280px,24vw,380px),1fr));gap:var(--space-xl)}.person-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:box-shadow var(--transition-base)}.person-card:hover{box-shadow:var(--shadow)}.person-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-light)}.person-header h4{margin:0;font-family:Outfit,sans-serif;color:var(--primary);font-size:var(--text-lg)}.person-summary{display:flex;gap:var(--space-lg)}.person-summary .total-hours{color:var(--info);font-weight:600}.person-summary .total-cost{color:var(--success);font-weight:600}.mini-table{width:100%;font-size:var(--text-base);border-collapse:collapse}.mini-table th{font-family:DM Sans,sans-serif;font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;font-weight:600}.mini-table .hours,.mini-table .amount,.mini-table .percent{text-align:right}.mini-table .percent{color:var(--text-muted)}@media(max-width:768px){.header-top{flex-direction:column}.view-toggle{width:100%;justify-content:center}.projects-grid{grid-template-columns:1fr}.summary-cards{grid-template-columns:repeat(2,1fr)}.member-row{grid-template-columns:1fr;gap:var(--space-xs)}.member-stats{justify-content:flex-start}.person-cards{grid-template-columns:1fr}.projects-cell{max-width:none}}.timeline-view{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);padding:var(--space-xl)}.timeline-container{display:flex;flex-direction:column;gap:var(--space-lg);margin-top:var(--space-lg)}.timeline-item{display:flex;gap:var(--space-lg);padding:var(--space-lg);background:var(--bg-dark);border-radius:var(--radius);border-left:4px solid var(--success);position:relative;transition:background var(--transition-base)}.timeline-item:hover{background:var(--bg-surface)}.timeline-item.warning{border-left-color:var(--warning)}.timeline-item.over-budget{border-left-color:var(--danger)}.timeline-item.overdue{border-left-color:var(--danger);background:var(--danger-bg)}.timeline-marker{width:24px;height:24px;border-radius:50%;background:var(--bg-card);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:700;color:var(--danger);flex-shrink:0}.timeline-item.overdue .timeline-marker{background:var(--danger);border-color:var(--danger);color:#fff}.timeline-content{flex:1}.timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.timeline-header h4{margin:0;font-family:Outfit,sans-serif;font-size:var(--text-lg);color:var(--text)}.timeline-details{display:flex;flex-direction:column;gap:var(--space-sm)}.timeline-deadline,.timeline-budget{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-base)}.timeline-deadline .label,.timeline-budget .label,.timeline-progress .label{color:var(--text-muted)}.timeline-deadline .value,.timeline-budget .value{color:var(--text);font-weight:600}.timeline-deadline .value.overdue{color:var(--danger)}.timeline-deadline .value.urgent{color:var(--warning)}.timeline-budget .spent{color:var(--text-muted);margin-left:var(--space-lg)}.timeline-budget .rate-used{color:var(--primary);font-size:var(--text-sm);margin-left:var(--space-sm)}.timeline-progress{display:flex;flex-direction:column;gap:var(--space-xs)}.timeline-progress .progress-info{display:flex;gap:var(--space-sm);font-size:var(--text-base)}.timeline-progress .progress-bar{height:6px;background:var(--bg-card);border-radius:3px;overflow:hidden;max-width:300px}.timeline-progress .progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width var(--transition-slow)}.timeline-progress .progress-fill.complete{background:var(--success)}.pricing-view{display:flex;flex-direction:column;gap:var(--space-xl)}.pricing-overview{background:linear-gradient(135deg,var(--primary-glow) 0%,rgba(167,139,250,.12) 100%);border:1px solid rgba(255,22,84,.25);border-radius:var(--radius-lg);padding:var(--space-2xl);box-shadow:var(--shadow-lg)}.pricing-main{display:flex;flex-direction:column;gap:var(--space-2xl)}.big-rate{display:flex;flex-direction:column;align-items:center;text-align:center}.big-rate .rate-label{font-family:DM Sans,sans-serif;font-size:var(--text-base);color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.big-rate .rate-value{font-family:Outfit,sans-serif;font-size:var(--text-3xl);font-weight:800;color:var(--primary);line-height:1.2}.big-rate .rate-note{font-size:var(--text-base);color:var(--text-muted);margin-top:var(--space-sm)}.rate-formula{display:flex;align-items:center;justify-content:center;gap:var(--space-lg);flex-wrap:wrap;padding:var(--space-xl);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-light)}.formula-item{display:flex;flex-direction:column;align-items:center;padding:var(--space-md) var(--space-xl);background:var(--bg-dark);border-radius:var(--radius)}.formula-item.highlight{background:var(--primary);box-shadow:0 0 20px var(--primary-glow)}.formula-item.highlight .formula-label,.formula-item.highlight .formula-value{color:#fff}.formula-label{font-family:DM Sans,sans-serif;font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;font-weight:600}.formula-value{font-family:Outfit,sans-serif;font-size:var(--text-xl);font-weight:700;color:var(--text)}.formula-operator{font-size:var(--text-2xl);font-weight:700;color:var(--text-muted)}.pricing-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl)}.pricing-section h4{margin:0 0 var(--space-lg) 0;font-family:Outfit,sans-serif;font-size:var(--text-lg);color:var(--text);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-light)}.amortization-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(160px,14vw,220px),1fr));gap:var(--space-lg);margin-bottom:var(--space-lg)}.amort-stat{display:flex;flex-direction:column;padding:var(--space-lg);background:var(--bg-dark);border-radius:var(--radius)}.amort-stat .label{font-family:DM Sans,sans-serif;font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;font-weight:600;margin-bottom:var(--space-xs)}.amort-stat .value{font-family:Outfit,sans-serif;font-size:var(--text-xl);font-weight:700;color:var(--primary)}.amort-formula{padding:var(--space-lg);background:var(--bg-dark);border-radius:var(--radius);overflow-x:auto}.amort-formula code{font-family:Fira Code,Consolas,monospace;font-size:var(--text-base);color:var(--text)}.salary-table{margin-top:var(--space-lg)}.section-desc{color:var(--text-muted);font-size:var(--text-base);margin-bottom:var(--space-lg)}.budget-examples{display:flex;flex-wrap:wrap;gap:var(--space-lg)}.budget-example{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--bg-dark);border-radius:var(--radius);border:1px solid var(--border);transition:border-color var(--transition-base)}.budget-example:hover{border-color:var(--primary)}.budget-example .hours{font-weight:600;color:var(--primary)}.budget-example .equals{color:var(--text-muted)}.budget-example .budget{font-weight:700;color:var(--success)}.propose-view{display:flex;flex-direction:column;gap:var(--space-lg)}.propose-header{display:flex;justify-content:space-between;align-items:center}.proposal-form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl)}.proposal-form-card h4{margin:0 0 var(--space-xl) 0;font-family:Outfit,sans-serif;color:var(--text);font-size:var(--text-lg)}.proposal-form{display:flex;flex-direction:column;gap:var(--space-lg)}.proposal-form .form-group{display:flex;flex-direction:column;gap:var(--space-sm)}.proposal-form .form-group label{font-family:DM Sans,sans-serif;font-size:var(--text-base);color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.proposal-form .form-group input[type=text],.proposal-form .form-group input[type=date],.proposal-form .form-group textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-md) var(--space-md);color:var(--text);font-family:DM Sans,sans-serif;font-size:var(--text-base);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.proposal-form .form-group input[type=text]:focus,.proposal-form .form-group input[type=date]:focus,.proposal-form .form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.proposal-form .form-group textarea{resize:vertical;min-height:80px}.proposal-form .form-actions{display:flex;gap:var(--space-md);margin-top:var(--space-sm)}.dynamic-list{display:flex;flex-direction:column;gap:var(--space-sm)}.dynamic-list-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--bg-dark);border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--text)}.dynamic-list-item span{flex:1}.dynamic-list-add{display:flex;gap:var(--space-sm)}.dynamic-list-add input{flex:1;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);color:var(--text);font-family:DM Sans,sans-serif;font-size:var(--text-base);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.dynamic-list-add input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.proposals-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(280px,24vw,380px),1fr));gap:var(--space-lg);margin-top:var(--space-lg)}.proposal-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl);border-left:4px solid var(--text-muted);transition:box-shadow var(--transition-base)}.proposal-card:hover{box-shadow:var(--shadow)}.proposal-card.proposal-pending{border-left-color:var(--warning)}.proposal-card.proposal-approved{border-left-color:var(--success)}.proposal-card.proposal-rejected{border-left-color:var(--danger);opacity:.7}.proposal-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-md)}.proposal-card-header h4{margin:0;font-family:Outfit,sans-serif;font-size:var(--text-lg);color:var(--text)}.proposal-status-badge{padding:var(--space-xs) var(--space-md);border-radius:1rem;font-family:DM Sans,sans-serif;font-size:var(--text-sm);font-weight:600;text-transform:uppercase}.proposal-status-badge.pending{background:var(--warning-bg);color:var(--warning)}.proposal-status-badge.approved{background:var(--success-bg);color:var(--success)}.proposal-status-badge.rejected{background:var(--danger-bg);color:var(--danger)}.proposal-description{font-size:var(--text-base);color:var(--text-secondary);margin:0 0 var(--space-md) 0;line-height:1.5}.proposal-meta{display:flex;gap:var(--space-sm);font-size:var(--text-base);color:var(--text);margin-bottom:var(--space-xs)}.proposal-meta-label{color:var(--text-muted);font-weight:600}.proposal-section{margin:var(--space-sm) 0}.proposal-section-label{font-family:DM Sans,sans-serif;font-size:var(--text-base);color:var(--text-muted);font-weight:600;display:block;margin-bottom:var(--space-xs)}.proposal-section ul{margin:0;padding-left:var(--space-xl);font-size:var(--text-base);color:var(--text)}.proposal-section li{margin-bottom:var(--space-xs)}@media(max-width:768px){.rate-formula{flex-direction:column}.formula-operator{transform:rotate(90deg)}.big-rate .rate-value{font-size:var(--text-3xl)}.budget-examples,.timeline-item{flex-direction:column}.timeline-marker{position:absolute;top:var(--space-lg);left:-12px}.proposals-list{grid-template-columns:1fr}}.project-overview{width:100%}.overview-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border)}.overview-table{width:100%;border-collapse:collapse;font-size:var(--text-base);font-family:DM Sans,sans-serif}.overview-table thead{background:var(--bg-card)}.overview-table th{text-align:left;padding:var(--space-lg) var(--space-lg);font-family:Outfit,sans-serif;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border)}.overview-table td{padding:var(--space-lg) var(--space-lg);border-bottom:1px solid var(--border-light);color:var(--text)}.overview-table tbody tr:last-child td{border-bottom:none}.overview-table tbody tr:hover{background:var(--bg-card-hover)}.row-completed{opacity:.6}.cell-name{font-weight:600}.cell-deadline.overdue{color:var(--danger);font-weight:600}.overview-badge{display:inline-block;padding:var(--space-xs) var(--space-md);border-radius:999px;font-size:var(--text-sm);font-weight:600;text-transform:capitalize}.overview-badge.status-active{background:var(--success-bg);color:var(--success)}.overview-badge.status-completed{background:#94a3b81f;color:var(--text-muted)}.overview-badge.status-on-hold{background:var(--warning-bg);color:var(--warning)}.col-drag{width:var(--space-2xl)}.cell-drag{width:var(--space-2xl);text-align:center;padding-left:var(--space-sm)!important;padding-right:0!important}.drag-handle{cursor:grab;color:var(--text-muted);font-size:var(--text-md);-webkit-user-select:none;user-select:none;line-height:1;transition:color var(--transition-base) ease}.drag-handle:hover{color:var(--primary)}.overview-table tbody tr[draggable=true]{cursor:grab}.overview-table tbody tr.dragging{opacity:.3}.overview-table tbody tr.drag-over{box-shadow:0 -2px 0 0 var(--primary) inset;background:var(--primary-glow)}.empty-row{text-align:center;color:var(--text-muted);padding:var(--space-2xl) var(--space-lg)!important}.roadmap{width:100%;min-height:calc(100vh - 200px)}.roadmap-loading{display:flex;align-items:center;justify-content:center;padding:var(--space-3xl);color:var(--text-muted);font-size:var(--text-lg);font-family:DM Sans,sans-serif}.roadmap-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xl);margin-bottom:var(--space-xl);flex-wrap:wrap}.roadmap-header h2{margin:0;font-size:var(--text-2xl);font-family:Outfit,sans-serif;color:var(--text)}.roadmap-nav{display:flex;align-items:center;gap:var(--space-md)}.roadmap-nav .current-month{font-size:var(--text-lg);font-weight:600;font-family:Outfit,sans-serif;color:var(--primary);min-width:clamp(100px,8vw,140px);text-align:center}.roadmap-actions{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap}.view-toggle{display:flex;gap:var(--space-xs)}.view-toggle .btn{border-radius:var(--radius-sm)}.view-toggle .btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.view-toggle .btn:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.view-toggle .btn:not(:first-child):not(:last-child){border-radius:0}.pptx-buttons{display:flex;gap:var(--space-xs)}.btn-pptx-plan{display:flex;align-items:center;gap:var(--space-xs);background:#38bdf81f;border:1px solid rgba(56,189,248,.3);color:var(--primary);font-size:var(--text-sm);transition:all var(--transition-base)}.btn-pptx-plan:hover{background:#38bdf833;border-color:var(--primary)}.btn-pptx-delivery{display:flex;align-items:center;gap:var(--space-xs);background:#22c55e1f;border:1px solid rgba(34,197,94,.3);color:var(--success);font-size:var(--text-sm);transition:all var(--transition-base)}.btn-pptx-delivery:hover{background:#22c55e33;border-color:var(--success)}.roadmap-filters{display:flex;gap:var(--space-lg);margin-bottom:var(--space-lg);flex-wrap:wrap}.roadmap-filters .search-input{flex:1;min-width:clamp(160px,14vw,220px);padding:var(--space-sm) var(--space-md);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-base);font-family:DM Sans,sans-serif;transition:border-color var(--transition-base)}.roadmap-filters .search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.roadmap-filters .filter-select{padding:var(--space-sm) var(--space-md);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-base);font-family:DM Sans,sans-serif;min-width:clamp(120px,10vw,160px);transition:border-color var(--transition-base)}.roadmap-filters .filter-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.roadmap-legend{display:flex;align-items:center;gap:var(--space-xl);padding:var(--space-md) var(--space-lg);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-xl);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-base);color:var(--text-secondary);font-family:DM Sans,sans-serif}.legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.legend-dot.status-proposed{background:var(--text-muted)}.legend-dot.status-committed{background:var(--info)}.legend-dot.status-in-progress{background:var(--warning)}.legend-dot.status-done{background:var(--success)}.legend-separator{width:1px;height:20px;background:var(--border)}.confidence-example{color:var(--warning);font-size:var(--text-base)}.roadmap-board{display:flex;gap:var(--space-lg);overflow-x:auto;padding-bottom:var(--space-lg)}.month-column{flex:0 0 clamp(240px,20vw,320px);min-width:clamp(240px,20vw,320px);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;max-height:calc(100vh - 350px)}.month-column.current-sprint{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary-glow)}.month-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-lg);border-bottom:1px solid var(--border);background:var(--primary-glow);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.sprint-header-content{flex:1;display:flex;flex-direction:column;gap:2px}.sprint-dates{font-size:var(--text-sm);color:var(--text-muted);font-family:DM Sans,sans-serif}.month-title{font-weight:600;font-family:Outfit,sans-serif;color:var(--text);flex:1}.month-count{color:var(--text-muted);font-size:var(--text-base)}.month-header .btn-ghost{background:transparent;border:1px dashed var(--border);color:var(--text-muted);padding:.15rem var(--space-sm);font-size:var(--text-md);line-height:1;border-radius:var(--radius-sm);transition:border-color var(--transition-base),color var(--transition-base)}.month-header .btn-ghost:hover{border-color:var(--primary);color:var(--primary)}.month-tickets{flex:1;overflow-y:auto;padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.empty-month{color:var(--text-muted);font-style:italic;text-align:center;padding:var(--space-xl) var(--space-md);font-size:var(--text-base)}.ticket-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md);border-left:4px solid var(--text-muted);transition:transform var(--transition-base),box-shadow var(--transition-base),background var(--transition-base);cursor:default}.ticket-card.dragging{opacity:.5;transform:rotate(2deg)}.ticket-card:hover{box-shadow:var(--shadow);background:var(--bg-card)}.ticket-card.status-proposed{border-left-color:var(--text-muted)}.ticket-card.status-committed{border-left-color:var(--info)}.ticket-card.status-in-progress{border-left-color:var(--warning)}.ticket-card.status-done{border-left-color:var(--success);opacity:.8}.ticket-top{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.ticket-project{font-size:var(--text-sm);text-transform:uppercase;font-weight:600;color:var(--primary);letter-spacing:.03em;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-status-badge{font-size:var(--text-xs);padding:.15rem var(--space-sm);border-radius:var(--radius-sm);text-transform:uppercase;font-weight:600;white-space:nowrap}.ticket-status-badge.status-proposed{background:#64748b26;color:var(--text-muted)}.ticket-status-badge.status-committed{background:var(--info-bg);color:var(--info)}.ticket-status-badge.status-in-progress{background:var(--warning-bg);color:var(--warning)}.ticket-status-badge.status-done{background:var(--success-bg);color:var(--success)}.ticket-title{margin:0 0 var(--space-sm) 0;font-size:var(--text-base);font-weight:600;font-family:Outfit,sans-serif;color:var(--text);line-height:1.3}.ticket-description{margin:0 0 var(--space-sm) 0;font-size:var(--text-base);color:var(--text-secondary);line-height:1.4}.ticket-meta{display:flex;gap:var(--space-md);font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-sm)}.ticket-hours{color:var(--info);font-weight:600}.ticket-creator{font-style:italic}.ticket-assignee{color:var(--secondary);font-weight:500}.ticket-plan-progress{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.progress-bar{flex:1;height:6px;background:var(--bg-input);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--success);border-radius:3px;transition:width .3s ease}.progress-text{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.confidence-stars{margin-bottom:var(--space-sm)}.confidence-stars .star{color:var(--text-muted);font-size:var(--text-md);transition:color var(--transition-base)}.confidence-stars .star.filled{color:var(--warning)}.confidence-stars .star.clickable{cursor:pointer}.confidence-stars .star.clickable:hover{color:var(--warning);transform:scale(1.1)}.ticket-actions{display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap}.ticket-actions .status-select{flex:1;min-width:90px;max-width:120px;padding:var(--space-xs) var(--space-xs);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-sm);font-family:DM Sans,sans-serif}.ticket-actions .btn-xs{padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm)}.btn-spec{background:#a78bfa1f;border:1px solid rgba(167,139,250,.3);color:var(--secondary)}.btn-spec:hover{background:#a78bfa33;border-color:var(--secondary)}.roadmap-list{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.tickets-table{width:100%;border-collapse:collapse}.tickets-table th,.tickets-table td{padding:var(--space-md) var(--space-lg);text-align:left;border-bottom:1px solid var(--border)}.tickets-table th{background:var(--primary-glow);font-size:var(--text-sm);text-transform:uppercase;font-weight:600;font-family:DM Sans,sans-serif;color:var(--text-muted);letter-spacing:.03em}.tickets-table tbody tr{transition:background var(--transition-fast)}.tickets-table tbody tr:hover{background:var(--bg-card-hover)}.tickets-table tbody tr.status-done{opacity:.7}.ticket-desc-preview{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-xs)}.status-select-sm{padding:var(--space-xs) var(--space-sm);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-base);font-family:DM Sans,sans-serif}.status-badge{display:inline-block;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;text-transform:capitalize}.status-badge.status-proposed{background:#64748b26;color:var(--text-muted)}.status-badge.status-committed{background:var(--info-bg);color:var(--info)}.status-badge.status-in-progress{background:var(--warning-bg);color:var(--warning)}.status-badge.status-done{background:var(--success-bg);color:var(--success)}.empty-table{text-align:center;color:var(--text-muted);font-style:italic;padding:var(--space-2xl)!important}.actions-cell{white-space:nowrap}.actions-cell .btn{margin-right:var(--space-xs)}.actions-cell .btn:last-child{margin-right:0}.modal-overlay{position:fixed;inset:0;background:#080a0fcc;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.ticket-modal{border-top:4px solid var(--primary);max-width:600px}.spec-modal{border-top:4px solid var(--secondary);max-width:700px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:var(--text-lg);font-family:Outfit,sans-serif;color:var(--text)}.modal-close{background:none;border:none;font-size:var(--text-2xl);color:var(--text-muted);cursor:pointer;padding:0;line-height:1;transition:color var(--transition-base)}.modal-close:hover{color:var(--danger)}.modal-body{padding:var(--space-xl)}.modal-body .form-group{margin-bottom:var(--space-lg)}.modal-body .form-group label{display:block;font-size:var(--text-base);color:var(--text-muted);text-transform:uppercase;font-weight:600;font-family:DM Sans,sans-serif;margin-bottom:var(--space-xs);letter-spacing:.03em}.modal-body .form-group input,.modal-body .form-group select,.modal-body .form-group textarea{width:100%;padding:var(--space-md) var(--space-md);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-base);font-family:DM Sans,sans-serif;transition:border-color var(--transition-base)}.modal-body .form-group input:focus,.modal-body .form-group select:focus,.modal-body .form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.modal-body .form-group textarea{resize:vertical;font-family:DM Sans,sans-serif}.modal-body .form-row{display:flex;gap:var(--space-lg)}.modal-body .form-row .form-group{flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--border);background:var(--bg-surface);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.spec-section{margin-bottom:var(--space-xl)}.spec-section h4{margin:0 0 var(--space-md) 0;font-size:var(--text-md);font-family:Outfit,sans-serif;color:var(--primary);text-transform:uppercase;letter-spacing:.05em}.spec-meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.spec-meta-item{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-md)}.spec-meta-label{display:block;font-size:var(--text-xs);text-transform:uppercase;color:var(--text-muted);font-weight:600;margin-bottom:var(--space-xs)}.spec-meta-value{font-size:var(--text-base);color:var(--text);font-weight:500}.spec-description{margin:0;color:var(--text-secondary);line-height:1.6;font-size:var(--text-base)}.spec-checklist{display:flex;flex-direction:column;gap:var(--space-sm)}.spec-checklist-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-base)}.spec-bullet{color:var(--primary);font-weight:700;flex-shrink:0}.spec-checklist-item span:nth-child(2){flex:1}.spec-remove-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--text-lg);line-height:1;padding:0 var(--space-xs);flex-shrink:0;transition:color var(--transition-base)}.spec-remove-btn:hover{color:var(--danger)}.spec-add-row{display:flex;gap:var(--space-sm);align-items:center}.spec-add-row input{flex:1;padding:var(--space-sm) var(--space-md);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-base);font-family:DM Sans,sans-serif}.spec-add-row input:focus{outline:none;border-color:var(--primary)}.spec-empty{color:var(--text-muted);font-style:italic;margin:0;padding:var(--space-sm) 0}.spec-list{display:flex;flex-direction:column;gap:var(--space-sm)}.spec-list-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-base)}.spec-list-item span{flex:1}.spec-plan-list{display:flex;flex-direction:column;gap:var(--space-sm)}.spec-plan-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-base)}.spec-plan-member{color:var(--secondary);font-weight:600;min-width:80px}.spec-plan-task{flex:1;color:var(--text)}.spec-plan-hours{color:var(--info);font-weight:600}.spec-plan-status{text-transform:capitalize;font-size:var(--text-sm);font-weight:600;padding:2px var(--space-sm);border-radius:var(--radius-sm)}.spec-plan-status.planned{color:var(--text-muted)}.spec-plan-status.in-progress{color:var(--warning)}.spec-plan-status.completed{color:var(--success)}.spec-plan-status.finalized{color:var(--info)}.ticket-card[draggable=true]{cursor:grab}.ticket-card[draggable=true]:active{cursor:grabbing}.btn-xs{padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#f43f5e}@media(max-width:768px){.roadmap-header{flex-direction:column;align-items:flex-start}.roadmap-filters{flex-direction:column}.roadmap-filters .search-input,.roadmap-filters .filter-select{width:100%}.roadmap-legend{flex-wrap:wrap;gap:var(--space-lg)}.month-column{flex:0 0 260px;min-width:260px}.modal-body .form-row{flex-direction:column;gap:0}.spec-meta-grid{grid-template-columns:repeat(2,1fr)}.pptx-buttons{flex-direction:column;width:100%}}.newsletter{padding:var(--space-lg);display:grid;grid-template-columns:2fr 1fr;gap:var(--space-xl);min-height:calc(100vh - 120px)}.newsletter-main,.newsletter-sidebar{display:flex;flex-direction:column;gap:var(--space-lg)}.newsletter-controls{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-lg)}.newsletter-controls h2{margin:0;font-family:Outfit,sans-serif;font-size:var(--text-xl);color:var(--text)}.controls-row{display:flex;align-items:flex-end;gap:var(--space-lg);flex-wrap:wrap}.control-group{display:flex;flex-direction:column;gap:var(--space-sm)}.control-group label{font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;font-weight:600;font-family:DM Sans,sans-serif}.control-group select,.control-group input[type=text]{padding:var(--space-sm) var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text);font-size:var(--text-base);font-family:DM Sans,sans-serif;transition:border-color var(--transition-base) ease}.control-group select:focus,.control-group input[type=text]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.control-group.flex-1{flex:1;min-width:clamp(160px,14vw,220px)}.newsletter-stats{display:flex;gap:var(--space-lg);flex-wrap:wrap}.stat-pill{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:20px;font-size:var(--text-base);font-weight:600;font-family:DM Sans,sans-serif}.stat-pill.tasks{background:var(--primary-glow);color:var(--primary)}.stat-pill.hours{background:#a78bfa26;color:var(--secondary)}.stat-pill.members{background:var(--info-bg);color:var(--info)}.newsletter-preview{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;flex:1;display:flex;flex-direction:column}.preview-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border);background:var(--bg-dark)}.preview-header h3{margin:0;font-family:Outfit,sans-serif;font-size:var(--text-base);text-transform:uppercase;color:var(--text-muted);font-weight:600}.preview-iframe{width:100%;min-height:clamp(400px,50vh,700px);border:none;background:#fff}.preview-placeholder{display:flex;align-items:center;justify-content:center;min-height:300px;color:var(--text-muted);font-size:var(--text-md)}.newsletter-send{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-lg)}.newsletter-send h3{margin:0;font-family:Outfit,sans-serif;font-size:var(--text-md);color:var(--text)}.send-row{display:flex;gap:var(--space-lg);align-items:flex-end;flex-wrap:wrap}.send-result{padding:var(--space-lg) var(--space-lg);border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:600}.send-result.success{background:var(--success-bg);color:var(--success);border:1px solid rgba(52,211,153,.25)}.send-result.error{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(251,113,133,.25)}.newsletter-history{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}.history-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border);background:var(--bg-dark)}.history-header h3{margin:0;font-family:Outfit,sans-serif;font-size:var(--text-base);text-transform:uppercase;color:var(--text-muted);font-weight:600}.history-list{overflow-y:auto;max-height:calc(100vh - 240px);padding:var(--space-sm)}.history-item{padding:var(--space-lg);border:1px solid var(--border-light);border-radius:var(--radius-sm);margin-bottom:var(--space-sm);background:var(--bg-dark);transition:border-color var(--transition-base) ease}.history-item:last-child{margin-bottom:0}.history-item:hover{border-color:var(--border)}.history-item .history-week{font-weight:700;color:var(--primary);font-size:var(--text-base)}.history-item .history-subject{font-size:var(--text-base);color:var(--text);margin-top:var(--space-xs)}.history-item .history-meta{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-sm);display:flex;flex-direction:column;gap:.15rem}.history-empty{padding:var(--space-2xl);text-align:center;color:var(--text-muted);font-size:var(--text-base)}@media(max-width:900px){.newsletter{grid-template-columns:1fr}.history-list{max-height:300px}}.hr-report{display:flex;flex-direction:column;gap:1.25rem}.hr-report-header{display:flex;flex-direction:column;gap:.25rem}.hr-report-title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.hr-report-title-row h2{margin:0;font-family:Outfit,sans-serif;font-size:1.5rem;color:var(--text-primary)}.hr-report-controls{display:flex;align-items:center;gap:.5rem}.hr-select{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);padding:.5rem .75rem;border-radius:8px;font-size:.85rem;cursor:pointer;outline:none;transition:border-color .2s}.hr-select:hover,.hr-select:focus{border-color:var(--primary)}.hr-export-btn{display:flex;align-items:center;gap:.4rem;font-size:.85rem;padding:.5rem 1rem}.hr-report-subtitle{margin:0;color:var(--text-secondary);font-size:.9rem}.hr-holidays-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px}.hr-holidays-label{font-size:.8rem;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.hr-holiday-tag{font-size:.78rem;color:var(--text-primary);background:#a78bfa1f;border:1px solid rgba(167,139,250,.25);padding:.2rem .6rem;border-radius:6px}.hr-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.hr-summary-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:1rem 1.25rem;text-align:center}.hr-summary-value{font-family:Outfit,sans-serif;font-size:1.75rem;font-weight:700;color:var(--primary);line-height:1.2}.hr-summary-label{font-size:.78rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-top:.25rem}.hr-table{width:100%}.hr-table th{white-space:nowrap;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.hr-table td{vertical-align:middle}.col-nr{width:40px;text-align:center}.col-hours,.col-days,.col-holidays,.col-effective,.col-leave,.col-worked,.col-total,.col-planned{text-align:center;width:90px}.col-type{width:110px}.hr-employee-cell{display:flex;flex-direction:column;gap:.1rem}.hr-employee-name{font-weight:600;color:var(--text-primary)}.hr-employee-role{font-size:.78rem;color:var(--text-secondary)}.hr-expand-icon{display:inline-block;margin-right:.35rem;font-size:.8rem;color:var(--text-secondary)}.hr-row.clickable{cursor:pointer;transition:background .15s}.hr-row.clickable:hover{background:var(--bg-hover)!important}.hr-row.expanded{background:var(--bg-hover)!important;border-bottom:none}.hr-type-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .6rem;border-radius:6px;text-transform:capitalize}.hr-type-badge.salariat{background:#38bdf81f;color:#38bdf8;border:1px solid rgba(56,189,248,.25)}.hr-type-badge.colaborator{background:#a78bfa1f;color:#a78bfa;border:1px solid rgba(167,139,250,.25)}.hr-type-badge.contribuitor{background:#34d3991f;color:#34d399;border:1px solid rgba(52,211,153,.25)}.hr-hours-badge{display:inline-block;font-size:.8rem;font-weight:700;padding:.2rem .6rem;border-radius:6px;min-width:36px;text-align:center}.hr-hours-badge.h8{background:#38bdf826;color:#38bdf8}.hr-hours-badge.h6{background:#facc1526;color:#facc15}.hr-hours-badge.h4{background:#a78bfa26;color:#a78bfa}.hr-planned-active{color:var(--secondary, #a78bfa)}.hr-leave-highlight{display:inline-block;background:#ef444426;color:#ef4444;font-weight:600;padding:.15rem .5rem;border-radius:4px;font-size:.85rem}.hr-leave-zero{color:var(--text-muted, var(--text-secondary));opacity:.5}.hr-breakdown-row td{padding:0!important;background:var(--bg-surface)!important;border-top:none!important}.hr-breakdown{padding:.75rem 1.25rem .75rem 3rem;display:flex;flex-direction:column;gap:.5rem}.hr-breakdown-title{font-size:.78rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.hr-breakdown-items{display:flex;flex-direction:column;gap:.6rem}.hr-breakdown-project{font-size:.85rem;color:var(--text-primary);min-width:180px;font-weight:500}.hr-breakdown-hours{font-size:.85rem;color:var(--primary);font-weight:700;min-width:50px;text-align:right}.hr-breakdown-bar{flex:1;max-width:200px;height:6px;background:#38bdf81a;border-radius:3px;overflow:hidden}.hr-breakdown-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .3s ease}.hr-totals-row{background:var(--bg-surface)!important;border-top:2px solid var(--primary)}.hr-totals-label{text-align:right!important;font-weight:700;font-size:.9rem;color:var(--text-primary);padding-right:1rem!important;text-transform:uppercase;letter-spacing:.04em}.hr-totals-row .col-total,.hr-totals-row .col-planned{font-size:1.05rem;color:var(--primary)}.col-tasks{text-align:center;width:100px}.hr-task-summary{display:flex;flex-direction:column;align-items:center;gap:.2rem}.hr-task-count{font-weight:700;font-size:.9rem;color:var(--text-primary)}.hr-status-dots{display:flex;gap:.25rem;justify-content:center}.hr-dot{font-size:.65rem;font-weight:600;padding:.1rem .35rem;border-radius:4px;line-height:1.2}.hr-dot.completed{background:#34d39926;color:#34d399}.hr-dot.in-progress{background:#38bdf826;color:#38bdf8}.hr-dot.planned{background:#94a3b826;color:#94a3b8}.hr-dot.finalized{background:#facc1526;color:#facc15}.hr-breakdown-item{display:flex;flex-direction:column;gap:.35rem}.hr-breakdown-project-header{display:flex;align-items:center;gap:.75rem}.hr-task-list{display:flex;flex-direction:column;gap:.25rem;padding-left:1rem;border-left:2px solid var(--border-color);margin-left:.5rem}.hr-task-item{display:flex;align-items:center;gap:.5rem;font-size:.82rem;padding:.2rem 0}.hr-task-status{font-size:.75rem;width:18px;text-align:center;flex-shrink:0}.hr-task-status.completed{color:#34d399}.hr-task-status.in-progress{color:#38bdf8}.hr-task-status.planned{color:#94a3b8}.hr-task-status.finalized{color:#facc15}.hr-task-name{color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hr-task-hours{color:var(--primary);font-weight:600;font-size:.8rem;min-width:35px;text-align:right;flex-shrink:0}.hr-task-date{color:var(--text-secondary);font-size:.75rem;min-width:50px;flex-shrink:0}.hr-task-status-label{font-size:.7rem;font-weight:600;padding:.1rem .4rem;border-radius:4px;text-transform:capitalize;flex-shrink:0}.hr-task-status-label.completed{background:#34d3991f;color:#34d399}.hr-task-status-label.in-progress{background:#38bdf81f;color:#38bdf8}.hr-task-status-label.planned{background:#94a3b81f;color:#94a3b8}.hr-task-status-label.finalized{background:#facc151f;color:#facc15}.hr-totals-row .col-tasks{font-size:1.05rem;color:var(--primary)}@media(max-width:768px){.hr-report-title-row{flex-direction:column;align-items:flex-start}.hr-report-controls{width:100%;flex-wrap:wrap}.hr-select{flex:1;min-width:100px}.hr-export-btn{flex:1;justify-content:center}.hr-summary-cards{grid-template-columns:repeat(2,1fr)}.table-container{overflow-x:auto}.hr-breakdown-project{min-width:120px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-base);padding:var(--space-lg);position:relative;overflow:hidden}.login-spline-bg{position:absolute;inset:0;z-index:0;opacity:0;transition:opacity 1.2s ease}.login-spline-bg.loaded{opacity:1}.login-spline-bg canvas{width:100%!important;height:100%!important;display:block}.login-card{background:#171c28d1;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:var(--radius-xl);padding:var(--space-2xl);width:100%;max-width:clamp(340px,28vw,420px);box-shadow:var(--shadow-xl);border:1px solid rgba(148,163,184,.12);position:relative;z-index:1;animation:loginFadeIn .5s ease}@keyframes loginFadeIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.login-header{text-align:center;margin-bottom:var(--space-2xl)}.login-logo{height:clamp(36px,3vw,52px);width:auto;margin-bottom:var(--space-md);filter:brightness(0) invert(1)}.login-header p{color:var(--text-muted);font-size:var(--text-base)}.login-card .form-group{margin-bottom:var(--space-lg)}.login-card .form-group label{display:block;margin-bottom:var(--space-sm);font-size:var(--text-sm);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.login-card .form-group input{width:100%;padding:var(--space-md) var(--space-lg);border:1px solid rgba(148,163,184,.15);border-radius:var(--radius);font-size:var(--text-base);background:#14182299;color:var(--text);transition:all var(--transition-fast) ease;font-family:DM Sans,sans-serif}.login-card .form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);background:#141822d9}.login-card .form-group input::placeholder{color:var(--text-faint)}.login-error{background:var(--danger-bg);border:1px solid rgba(251,113,133,.3);color:var(--danger);padding:var(--space-md) var(--space-lg);border-radius:var(--radius);margin-bottom:var(--space-lg);font-size:var(--text-base);text-align:center;font-weight:500}.login-btn{width:100%;padding:var(--space-md);font-size:var(--text-base);margin-top:var(--space-sm);font-family:DM Sans,sans-serif;font-weight:600;border-radius:var(--radius);transition:all var(--transition-fast) ease}.login-btn:disabled{opacity:.5;cursor:not-allowed}*{box-sizing:border-box;margin:0;padding:0}:root{--primary: #FF1654;--primary-light: #FF4D7A;--primary-dark: #D91245;--primary-glow: rgba(255, 22, 84, .12);--primary-subtle: rgba(255, 22, 84, .06);--secondary: #a78bfa;--accent: #FF1654;--success: #34d399;--success-bg: rgba(52, 211, 153, .1);--danger: #fb7185;--danger-bg: rgba(251, 113, 133, .1);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .1);--info: #60a5fa;--info-bg: rgba(96, 165, 250, .1);--bg-dark: #080a0f;--bg-base: #0b0e14;--bg-surface: #0f1219;--bg-card: #151921;--bg-card-hover: #1a1f2b;--bg-input: #121620;--bg-elevated: #1e2433;--bg-inset: rgba(0, 0, 0, .2);--text: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--text-faint: #475569;--border: rgba(148, 163, 184, .08);--border-light: rgba(148, 163, 184, .05);--border-medium: rgba(148, 163, 184, .12);--border-focus: rgba(255, 22, 84, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .15);--shadow: 0 1px 3px rgba(0, 0, 0, .2), 0 1px 2px rgba(0, 0, 0, .12);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .2), 0 2px 4px -2px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 20px -4px rgba(0, 0, 0, .3);--shadow-xl: 0 16px 40px -8px rgba(0, 0, 0, .4);--sidebar-width: clamp(220px, 16vw, 260px);--sidebar-collapsed: 52px;--topbar-height: clamp(48px, 4vw, 56px);--radius-xs: 4px;--radius-sm: 6px;--radius: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--space-xs: clamp(.25rem, .5vw, .375rem);--space-sm: clamp(.375rem, .6vw, .5rem);--space-md: clamp(.5rem, .8vw, .75rem);--space-lg: clamp(.75rem, 1.2vw, 1.25rem);--space-xl: clamp(1rem, 1.6vw, 1.75rem);--space-2xl: clamp(1.5rem, 2.4vw, 2.5rem);--space-3xl: clamp(2rem, 3.2vw, 3.5rem);--text-xs: clamp(.65rem, .6rem + .15vw, .75rem);--text-sm: clamp(.75rem, .7rem + .15vw, .85rem);--text-base: clamp(.82rem, .76rem + .18vw, .95rem);--text-md: clamp(.9rem, .84rem + .2vw, 1.05rem);--text-lg: clamp(1rem, .92rem + .25vw, 1.2rem);--text-xl: clamp(1.15rem, 1.05rem + .3vw, 1.4rem);--text-2xl: clamp(1.35rem, 1.2rem + .4vw, 1.7rem);--text-3xl: clamp(1.6rem, 1.4rem + .5vw, 2rem);--transition-fast: .12s ease;--transition-base: .18s ease;--transition-slow: .3s cubic-bezier(.4, 0, .2, 1)}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-base);color:var(--text);line-height:1.6;min-height:100vh;font-size:var(--text-base)}h1,h2,h3,h4,h5,h6{font-family:Outfit,DM Sans,sans-serif;letter-spacing:-.025em;line-height:1.3}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-collapsed);height:100vh;position:fixed;top:0;left:0;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:200;transition:width .25s ease;overflow:hidden}.sidebar-expanded .main-wrapper{margin-left:var(--sidebar-width)}.sidebar-expanded .sidebar{width:var(--sidebar-width)}.sidebar-expanded .sidebar-section-label,.sidebar-expanded .sidebar-status,.sidebar-expanded .sidebar-user .user-info,.sidebar-expanded .sidebar-logout,.sidebar-expanded .nav-item .nav-badge{opacity:1}.sidebar-logo{padding:var(--space-lg) var(--space-lg);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--space-md);white-space:nowrap;overflow:hidden}.sidebar-logo .logo-mark{width:clamp(24px,2vw,32px);height:clamp(24px,2vw,32px);flex-shrink:0}.sidebar-logo .logo-mark img{width:100%;height:100%;object-fit:contain}.sidebar-logo .logo-text{font-family:Outfit,sans-serif;font-size:var(--text-base);font-weight:700;color:var(--text);letter-spacing:-.02em;line-height:1.2}.sidebar-logo .logo-sub{font-size:var(--text-xs);color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.06em}.sidebar-nav{flex:1;overflow-y:auto;padding:var(--space-sm) var(--space-sm)}.sidebar-section-label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);padding:var(--space-lg) var(--space-md) var(--space-sm);white-space:nowrap;overflow:hidden;opacity:0;transition:opacity .2s ease}.nav-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast);border:1px solid transparent;background:transparent;width:100%;text-align:left;position:relative;font-family:DM Sans,sans-serif;margin-bottom:1px;white-space:nowrap;overflow:hidden}.nav-item:hover{background:#94a3b80f;color:var(--text)}.nav-item.active{background:var(--primary-glow);color:var(--primary);font-weight:600}.nav-item.active:before{content:"";position:absolute;left:calc(var(--space-sm) * -1);top:50%;transform:translateY(-50%);width:3px;height:18px;background:var(--primary);border-radius:0 3px 3px 0}.nav-item .nav-icon{width:20px;min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.5}.nav-item:hover .nav-icon{opacity:.8}.nav-item.active .nav-icon{opacity:1}.nav-item .nav-badge{margin-left:auto;background:var(--danger);color:#fff;font-size:.6rem;font-weight:700;padding:.1rem .4rem;border-radius:10px;min-width:16px;text-align:center;line-height:1.4;opacity:0;transition:opacity .2s ease}.sidebar-footer{padding:var(--space-sm);border-top:1px solid var(--border);overflow:hidden;white-space:nowrap}.sidebar-status{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);margin-bottom:var(--space-xs);opacity:0;transition:opacity .2s ease}.sidebar-user{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:#94a3b808;border:1px solid var(--border)}.sidebar-user .user-avatar{width:clamp(28px,2vw,34px);height:clamp(28px,2vw,34px);border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:700;color:#fff;flex-shrink:0;font-family:Outfit,sans-serif}.sidebar-user .user-info{flex:1;min-width:0;opacity:0;transition:opacity .2s ease}.sidebar-user .user-name{font-size:var(--text-sm);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user .user-role{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.sidebar-logout{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-sm);transition:all var(--transition-fast);opacity:0}display: flex; align-items: center; justify-content: center; } .sidebar-logout:hover{color:var(--danger);background:var(--danger-bg)}.main-wrapper{flex:1;margin-left:var(--sidebar-collapsed);min-height:100vh;display:flex;flex-direction:column;transition:margin-left .25s ease}.topbar{height:var(--topbar-height);background:#0b0e14cc;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-xl);position:sticky;top:0;z-index:100}.topbar-left{display:flex;align-items:center;gap:var(--space-md)}.topbar-title{font-family:Outfit,sans-serif;font-size:var(--text-md);font-weight:600;color:var(--text);letter-spacing:-.01em}.topbar-status{display:flex;gap:var(--space-sm);align-items:center}.server-status{padding:var(--space-xs) var(--space-sm);border-radius:20px;font-size:var(--text-xs);font-weight:600;display:flex;align-items:center;gap:.35rem}.server-status:before{content:"";width:6px;height:6px;border-radius:50%}.server-status.online{background:var(--success-bg);color:var(--success)}.server-status.online:before{background:var(--success);box-shadow:0 0 8px #34d39980}.server-status.offline{background:var(--warning-bg);color:var(--warning)}.server-status.offline:before{background:var(--warning)}.save-status{padding:var(--space-xs) var(--space-sm);border-radius:20px;font-size:var(--text-xs);font-weight:500;background:var(--info-bg);color:var(--info);animation:fadeIn .2s ease}.app-content{flex:1;padding:var(--space-xl) var(--space-xl) var(--space-2xl);max-width:1800px;width:100%;margin:0 auto;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.loading-screen{display:flex;justify-content:center;align-items:center;height:100vh;color:var(--text-secondary);flex-direction:column;gap:var(--space-lg)}.loading-screen h2{font-family:Outfit,sans-serif;font-weight:600;font-size:var(--text-lg)}.loading-spinner{width:32px;height:32px;border:2.5px solid var(--border-medium);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn{padding:var(--space-sm) var(--space-lg);border:1px solid transparent;border-radius:var(--radius);cursor:pointer;font-size:var(--text-sm);font-weight:600;font-family:DM Sans,sans-serif;transition:all var(--transition-base);display:inline-flex;align-items:center;gap:var(--space-xs);letter-spacing:.01em;line-height:1.4;white-space:nowrap}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-light);box-shadow:0 0 20px var(--primary-glow),0 2px 8px #ff165433}.btn-secondary{background:var(--bg-card);color:var(--text);border-color:var(--border-medium)}.btn-secondary:hover:not(:disabled){background:var(--bg-card-hover);border-color:#94a3b833}.btn-success{background:var(--success);color:#0c1017;border-color:var(--success)}.btn-success:hover:not(:disabled){box-shadow:0 0 20px #34d39933;filter:brightness(1.05)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover:not(:disabled){box-shadow:0 0 20px #fb718533;filter:brightness(1.05)}.btn-warning{background:var(--warning);color:#0c1017;border-color:var(--warning)}.btn-warning:hover:not(:disabled){box-shadow:0 0 20px #fbbf2433;filter:brightness(1.05)}.btn-sm{padding:var(--space-xs) var(--space-md);font-size:var(--text-xs);border-radius:var(--radius-sm)}.btn-xs{padding:.15rem .45rem;font-size:var(--text-xs);border-radius:var(--radius-xs)}.form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl);margin-bottom:var(--space-xl);box-shadow:var(--shadow-sm)}.form-card h3{margin-bottom:var(--space-lg);font-size:var(--text-md);color:var(--text);font-family:Outfit,sans-serif;font-weight:600}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(180px,15vw,240px),1fr));gap:var(--space-lg)}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-group label{font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.form-group input,.form-group select,.form-group textarea{padding:var(--space-sm) var(--space-md);border:1px solid var(--border-medium);border-radius:var(--radius);font-size:var(--text-sm);transition:all var(--transition-base);background:var(--bg-input);color:var(--text);font-family:DM Sans,sans-serif;line-height:1.5}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);background:var(--bg-card)}.form-group input::placeholder{color:var(--text-faint)}.form-group.checkbox{flex-direction:row;align-items:center;gap:var(--space-sm)}.form-group.checkbox input{width:auto;accent-color:var(--primary)}.checkbox-inline{display:flex;align-items:center;gap:var(--space-sm)}.checkbox-inline input{accent-color:var(--primary)}.form-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-lg)}.form-row{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap}.form-row input,.form-row select{padding:var(--space-sm);border:1px solid var(--border-medium);border-radius:var(--radius);font-size:var(--text-sm);background:var(--bg-input);color:var(--text)}.form-row select{min-width:clamp(160px,14vw,220px)}.data-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border)}.data-table th,.data-table td{padding:var(--space-md) var(--space-lg);text-align:left;border-bottom:1px solid var(--border-light)}.data-table th{background:var(--bg-surface);font-weight:600;font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-family:DM Sans,sans-serif;position:sticky;top:0;z-index:2}.data-table td{font-size:var(--text-sm)}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--primary-subtle)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tfoot{background:var(--bg-surface);font-weight:600}.data-table tfoot td{border-bottom:none;color:var(--primary);font-size:var(--text-sm);border-top:1px solid var(--border)}.data-table .amount{font-family:DM Mono,SF Mono,Consolas,monospace;text-align:right;color:var(--text);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.data-table .amount.negative{color:var(--danger);font-weight:600}.data-table .editing-row{background:var(--primary-subtle)!important}.data-table .editing-row input{width:100%;padding:var(--space-xs) var(--space-sm);border:1px solid var(--primary);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text);font-size:var(--text-sm)}.badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:20px;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.03em;line-height:1.4;white-space:nowrap}.badge.internal{background:var(--primary-glow);color:var(--primary)}.badge.external{background:#a78bfa1f;color:var(--secondary)}.badge.contributor{background:#fbbf241f;color:#fbbf24}.badge.category{background:var(--info-bg);color:var(--info)}.badge.status-active{background:var(--success-bg);color:var(--success)}.badge.status-completed{background:#94a3b814;color:var(--text-secondary)}.badge.status-on-hold{background:var(--warning-bg);color:var(--warning)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl);gap:var(--space-md)}.section-header h2{font-size:var(--text-xl);font-weight:700;color:var(--text);font-family:Outfit,sans-serif}.empty-state{text-align:center;padding:var(--space-3xl);color:var(--text-muted);background:var(--bg-card);border-radius:var(--radius-lg);border:1px dashed rgba(148,163,184,.12);font-size:var(--text-sm)}.filter-bar{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap}.filter-bar .form-group{flex:1;min-width:clamp(160px,14vw,220px)}.mini-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}.mini-table th,.mini-table td{padding:var(--space-sm);text-align:left;border-bottom:1px solid var(--border-light)}.mini-table th{background:var(--primary-subtle);font-weight:600;font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.mini-table tbody tr:hover{background:var(--primary-subtle)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#94a3b81a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b833}.sidebar-toggle{display:none;background:none;border:none;color:var(--text);cursor:pointer;padding:var(--space-xs);font-size:1.15rem;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.sidebar-toggle:hover{background:#94a3b814}.sidebar-overlay{display:none}@media(min-width:1920px){:root{--sidebar-width: 270px}.app-content{max-width:1900px}}@media(min-width:2560px){:root{--sidebar-width: 300px}.app-content{max-width:2400px}}@media(max-width:1440px){.app-content{max-width:100%}}@media(max-width:1280px){:root{--sidebar-width: 220px}}@media(max-width:1024px){.sidebar{width:var(--sidebar-width);transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-section-label,.sidebar-status,.sidebar-user .user-info,.sidebar-logout{opacity:1}.sidebar-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:199;opacity:0;pointer-events:none;transition:opacity var(--transition-slow)}.sidebar-overlay.open{display:block;opacity:1;pointer-events:auto}.main-wrapper,.sidebar-expanded .main-wrapper{margin-left:0}.sidebar-expanded .sidebar{width:var(--sidebar-width)}.sidebar-toggle{display:flex;align-items:center;justify-content:center}.topbar{padding:0 var(--space-lg)}.app-content{padding:var(--space-lg)}.section-header{flex-direction:column;gap:var(--space-md);text-align:center}}@media(max-width:768px){.data-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.form-grid{grid-template-columns:1fr}.filter-bar{flex-direction:column}.filter-bar .form-group{min-width:100%}}@media(max-width:480px){.app-content{padding:var(--space-md)}.form-card{padding:var(--space-lg)}.btn{padding:var(--space-sm) var(--space-md)}}
