:root{--orange: #dc5c3b;--orange-dark: #892e1f;--orange-light: rgba(220, 92, 59, .1);--blue-dark: #142136;--blue-mid: #1a2d4a;--blue-light: #f2fafa;--gold: #cdc095;--turquoise: #6bdbdb;--turquoise-dark: #459699;--green: #99c454;--yellow: #ffbd1c;--white: #ffffff;--beige: #f5f0e8;--beige-light: #faf7f2;--beige-dark: #ebe5da;--red: #e74c3c;--shadow: 0 4px 16px rgba(20, 33, 54, .1), 0 1px 4px rgba(20, 33, 54, .06);--shadow-hover: 0 10px 36px rgba(20, 33, 54, .16), 0 2px 8px rgba(20, 33, 54, .08);--radius: 16px;--radius-sm: 8px;--radius-xs: 4px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Outfit,sans-serif;background:var(--beige);color:var(--blue-dark);line-height:1.6;font-size:16px}.app-container{display:flex;min-height:100vh}.sidebar{width:270px;background:var(--blue-dark);color:var(--white);position:fixed;height:100vh;display:flex;flex-direction:column;overflow:hidden}.sidebar [data-slot=nav]{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.sidebar [data-slot=nav]::-webkit-scrollbar{width:4px}.sidebar [data-slot=nav]::-webkit-scrollbar-track{background:transparent}.sidebar [data-slot=nav]::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.sidebar:before{content:"";position:absolute;top:-100px;right:-100px;width:300px;height:300px;border:1px solid rgba(255,255,255,.05);border-radius:50%;pointer-events:none}.sidebar:after{content:"";position:absolute;bottom:-80px;left:-80px;width:250px;height:250px;border:1px solid rgba(255,255,255,.03);border-radius:50%;pointer-events:none}.main-content{margin-left:270px;flex:1;padding:40px;max-width:1400px}.logo{padding:28px 24px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:12px}.logo-text{font-family:Outfit,sans-serif;font-size:20px;font-weight:600;letter-spacing:.5px}.logo-accent{color:var(--orange)}.logo-badge{background:var(--orange);color:var(--white);font-size:10px;font-weight:600;padding:2px 8px;border-radius:25px;letter-spacing:.5px}.user-info{padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.08);background:#ffffff08}.user-name{font-size:16px;font-weight:600;margin-bottom:2px}.user-role{font-size:14px;color:#ffffff80}.user-change-pwd{background:none;border:none;padding:0;margin-top:4px;font-size:14px;color:#ffffff80;cursor:pointer;text-align:left}.user-change-pwd:hover{color:#fffc}.nav-menu{flex:1;padding:20px 16px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:14px;padding:13px 16px;margin-bottom:4px;border-radius:var(--radius-sm);background:transparent;border:none;width:100%;cursor:pointer;font-family:Outfit,sans-serif;font-size:15px;font-weight:500;color:#fff9;text-align:left;transition:all .2s ease}.nav-item:hover{background:#ffffff14;color:var(--white)}.nav-item.active{background:var(--orange);color:var(--white);font-weight:600}.nav-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#ffffff14;border-radius:10px;font-size:16px;flex-shrink:0}.nav-item.active .nav-icon{background:#fff3}.sidebar-footer{padding:16px;border-top:1px solid rgba(255,255,255,.08)}.nav-section{margin-bottom:4px;transition:opacity .25s,filter .25s}.nav-section-dimmed{opacity:.28;filter:blur(.6px);pointer-events:none}.nav-section-label{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#ffffff4d;padding:10px 16px 4px}.nav-mode-toggle{margin:8px 16px;cursor:pointer}.nav-mode-track{display:flex;align-items:center;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:3px;position:relative;gap:0}.nav-mode-thumb{position:absolute;top:3px;width:calc(50% - 3px);height:calc(100% - 6px);background:var(--orange);border-radius:7px;transition:left .22s cubic-bezier(.4,0,.2,1)}.nav-mode-thumb.left{left:3px}.nav-mode-thumb.right{left:50%}.nav-mode-label{flex:1;text-align:center;font-size:12px;font-weight:600;padding:6px 0;color:#ffffff59;position:relative;z-index:1;transition:color .2s;-webkit-user-select:none;user-select:none}.nav-mode-active{color:#fff}.btn-doc{display:block;width:100%;padding:10px 16px;background:transparent;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);font-family:Outfit,sans-serif;font-size:13px;font-weight:500;color:#fff6;cursor:pointer;text-align:center;text-decoration:none;margin-bottom:6px;transition:all .2s ease}.btn-doc:hover{background:#ffffff0f;color:#ffffffbf}.btn-logout{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);font-family:Outfit,sans-serif;font-size:14px;font-weight:500;color:#ffffff80;cursor:pointer;transition:all .2s ease}.btn-logout:hover{background:#e74c3c26;color:var(--red);border-color:#e74c3c4d}.view-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:36px}.view-title{font-family:Bebas Neue,cursive;font-size:42px;font-weight:400;letter-spacing:2px;color:var(--blue-dark);line-height:1.1;margin-bottom:4px}.view-subtitle{font-size:16px;color:#14213680;font-weight:400}.project-title-input{font-family:Bebas Neue,cursive;font-size:42px;font-weight:400;letter-spacing:2px;color:var(--blue-dark);line-height:1.1;background:none;border:none;border-bottom:2px dashed transparent;outline:none;padding:0 4px 0 0;width:auto;min-width:200px;transition:border-color .2s}.project-title-input:hover,.project-title-input:focus{border-bottom-color:var(--orange)}.project-dates-inline{display:flex;align-items:center;gap:8px}.project-dates-label{font-size:13px;color:#14213666;text-transform:uppercase;letter-spacing:.5px}.project-date-input{font-family:Outfit,sans-serif;font-size:14px;color:var(--blue-dark);background:none;border:none;border-bottom:1px dashed rgba(20,33,54,.2);outline:none;padding:2px 4px;cursor:pointer;transition:border-color .2s}.project-date-input:hover,.project-date-input:focus{border-bottom-color:var(--orange)}.project-inline-select{font-family:Outfit,sans-serif;font-size:14px;color:var(--blue-dark);background:none;border:none;border-bottom:1px dashed rgba(20,33,54,.2);outline:none;padding:2px 4px;cursor:pointer;transition:border-color .2s}.project-inline-select:hover,.project-inline-select:focus{border-bottom-color:var(--orange)}.project-inline-number{font-family:Outfit,sans-serif;font-size:14px;color:var(--blue-dark);background:none;border:none;border-bottom:1px dashed rgba(20,33,54,.2);outline:none;padding:2px 4px;width:90px;text-align:center;transition:border-color .2s}.project-inline-number:hover,.project-inline-number:focus{border-bottom-color:var(--orange)}.detail-title-banner{display:flex;align-items:center;gap:14px;background:var(--blue-dark);color:#fff;padding:14px 24px;border-radius:var(--radius) var(--radius) 0 0;margin-top:8px;flex-wrap:wrap}.detail-title-dark{font-family:Bebas Neue,cursive;font-size:28px;font-weight:400;letter-spacing:2px;color:#fff;margin:0;line-height:1}.detail-title-input-dark{color:#fff!important;border-bottom:none!important;font-size:28px!important;background:#ffffff0f!important;padding:2px 8px!important;border-radius:4px!important}.detail-title-input-dark:hover,.detail-title-input-dark:focus{background:#ffffff1a!important}.detail-meta-label{font-size:13px;color:#fff6}.detail-meta-value{font-size:13px;color:#ffffffbf}.detail-date-dark{font-family:Outfit,sans-serif;font-size:13px;background:#ffffff14;color:#fff;border:none;border-radius:4px;padding:4px 8px;outline:none;cursor:pointer}.detail-date-dark:hover{background:#ffffff24}.detail-referent-chip-dark{font-size:12px;font-weight:600;padding:3px 10px;border-radius:4px;background:#f59e0b40;color:#f59e0b}.detail-title-right{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}.detail-status-select{font-family:Outfit,sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border:none;border-radius:20px;padding:5px 16px;cursor:pointer;outline:none}.detail-status-badge{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:20px;padding:5px 16px;white-space:nowrap}.detail-project-panel{background:var(--white);border:1px solid rgba(20,33,54,.08);border-top:none;border-radius:0 0 var(--radius) var(--radius);box-shadow:0 1px 3px #1421360a;overflow:hidden;margin-bottom:0}.detail-header-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;padding:14px 24px}.detail-header-block{flex:1;display:flex;flex-direction:column;gap:2px;min-width:80px}.detail-grid-label{font-size:10px;color:#14213666;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.detail-header-value{font-size:14px;font-weight:600;color:var(--blue-dark)}.detail-header-unit{font-size:12px;color:#14213666}.detail-annotation-details{border-top:1px solid rgba(20,33,54,.06)}.detail-annotation-summary{padding:8px 24px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;font-weight:600;color:#14213666;cursor:pointer;-webkit-user-select:none;user-select:none}.detail-annotation-summary:hover{color:var(--orange)}.detail-annotation-body{padding:0 24px 14px}.detail-stats-light{display:flex;gap:10px;margin-top:6px;margin-bottom:16px}.detail-stat-light-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 16px;background:var(--white);border:1px solid rgba(20,33,54,.08);border-radius:var(--radius);box-shadow:0 1px 2px #14213608}.detail-stat-light-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#14213666;font-weight:600}.detail-stat-light-value{font-size:20px;font-weight:700;color:var(--orange)}.detail-stat-light-value.negative{color:var(--red)}.detail-stat-light-euro{font-size:12px;font-weight:600;color:#14213666}.detail-stat-light-euro.negative{color:var(--red)}.project-inline-input{font-family:Outfit,sans-serif;font-size:14px;font-weight:600;color:var(--blue-dark);background:none;border:none;border-bottom:1px dashed rgba(20,33,54,.15);outline:none;padding:2px 0;width:140px;transition:border-color .2s}.project-inline-input:hover,.project-inline-input:focus{border-bottom-color:var(--orange)}.project-inline-textarea{font-family:Outfit,sans-serif;font-size:13px;color:var(--blue-dark);background:#f59e0b0a;border:1px solid rgba(245,158,11,.15);border-left:3px solid rgba(245,158,11,.3);border-radius:0 4px 4px 0;outline:none;padding:8px 10px;width:100%;box-sizing:border-box;resize:vertical;line-height:1.4;transition:border-color .2s}.project-inline-textarea:hover,.project-inline-textarea:focus{border-color:#f59e0b66}.project-status-select{font-family:Outfit,sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border:none;border-radius:20px;padding:4px 10px;cursor:pointer;outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none}.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:var(--orange);color:var(--white);border:none;border-radius:25px;font-family:Outfit,sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;letter-spacing:.3px}.btn-primary:hover{background:var(--orange-dark);transform:translateY(-1px)}.btn-primary:disabled{background:#14213633;cursor:not-allowed;transform:none}.btn-secondary{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--white);color:var(--blue-dark);border:1px solid rgba(20,33,54,.12);border-radius:25px;font-family:Outfit,sans-serif;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{border-color:var(--orange);color:var(--orange);transform:translateY(-1px)}.btn-danger{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:#e74c3c14;color:var(--red);border:1px solid rgba(231,76,60,.25);border-radius:25px;font-family:Outfit,sans-serif;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-danger:hover{background:var(--red);color:#fff;border-color:var(--red)}.timesheet-absence-del-btn{background:none;border:none;cursor:pointer;font-size:10px;color:inherit;opacity:0;padding:0 2px;margin-left:4px;line-height:1;transition:opacity .15s}.timesheet-absence-clickable:hover .timesheet-absence-del-btn{opacity:.7}.timesheet-absence-del-btn:hover{opacity:1!important}.btn-small{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--white);color:var(--blue-dark);border:1px solid rgba(20,33,54,.1);border-radius:25px;font-family:Outfit,sans-serif;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-small:hover{border-color:var(--orange);color:var(--orange);transform:translate(3px)}.btn-small.danger:hover{border-color:var(--red);color:var(--red)}.btn-icon-small{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:#1421360a;border:1px solid rgba(20,33,54,.08);border-radius:10px;cursor:pointer;font-size:16px;transition:all .2s ease}.btn-icon-small:hover{background:var(--orange-light);border-color:var(--orange);transform:translateY(-1px)}.btn-icon-small.danger:hover{background:#e74c3c1a;border-color:var(--red);color:var(--red)}.search-bar-wrapper{margin-bottom:16px}.projects-filters-bar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.proj-multiselect,.statut-multiselect{position:relative;display:inline-block}.proj-multiselect-btn,.statut-multiselect-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;border:1px solid rgba(20,33,54,.18);border-radius:10px;background:#fff;cursor:pointer;font-size:14px;font-family:Outfit,sans-serif;color:var(--blue-dark);min-width:180px;transition:border-color .15s,box-shadow .15s;white-space:nowrap}.proj-multiselect-btn:hover,.statut-multiselect-btn:hover{border-color:var(--blue-mid)}.proj-multiselect.open .proj-multiselect-btn,.statut-multiselect.open .statut-multiselect-btn{border-color:var(--blue-mid);box-shadow:0 0 0 3px #1a2d4a14}.proj-multiselect-arrow,.statut-multiselect-arrow{font-size:11px;opacity:.5;flex-shrink:0}.proj-multiselect-list,.statut-multiselect-list{display:none;position:absolute;top:calc(100% + 5px);left:0;background:#fff;border:1px solid rgba(20,33,54,.14);border-radius:10px;box-shadow:0 6px 20px #0000001a;z-index:200;min-width:100%;padding:6px 0}.proj-multiselect.open .proj-multiselect-list,.statut-multiselect.open .statut-multiselect-list{display:block}.proj-multiselect-option,.statut-multiselect-option{display:flex;align-items:center;gap:10px;padding:9px 16px;cursor:pointer;font-size:14px;color:var(--blue-dark);-webkit-user-select:none;user-select:none}.proj-multiselect-option:hover,.statut-multiselect-option:hover{background:var(--beige)}.proj-multiselect-option input[type=checkbox],.statut-multiselect-option input[type=checkbox]{cursor:pointer;accent-color:var(--blue-dark);width:15px;height:15px;flex-shrink:0}.client-summary-block{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 24px;margin-bottom:20px;display:flex;align-items:center;gap:32px;flex-wrap:wrap;border-left:5px solid var(--turquoise)}.client-summary-name{font-family:Bebas Neue,cursive;font-size:22px;color:var(--blue-dark);min-width:140px}.client-summary-metrics{display:flex;gap:24px;flex-wrap:wrap}.client-summary-metric{display:flex;flex-direction:column;align-items:center;gap:2px}.client-summary-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#14213673}.client-summary-val{font-size:22px;font-weight:700;color:var(--blue-dark)}.client-summary-euro{font-size:12px;color:#14213673}.search-bar{width:100%;padding:10px 16px;border:1px solid var(--beige-dark);border-radius:var(--radius);font-family:Outfit,sans-serif;font-size:15px;color:var(--blue-dark);outline:none;transition:border-color .2s;box-sizing:border-box}.search-bar:focus{border-color:var(--turquoise)}.search-bar::placeholder{color:#14213659}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:36px}.stat-card{background:var(--white);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);transition:all .3s ease}.stat-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.stat-card-dark{background:var(--blue-dark);border-radius:var(--radius);padding:24px;color:var(--white);position:relative;overflow:hidden}.stat-card-dark:after{content:"";position:absolute;top:-30px;right:-30px;width:100px;height:100px;border:1px solid rgba(255,255,255,.06);border-radius:50%;pointer-events:none}.stat-label{font-size:14px;color:#14213680;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px;font-weight:600}.stat-card-dark .stat-label{color:#ffffff80}.stat-value{font-family:Bebas Neue,cursive;font-size:36px;font-weight:400;color:var(--orange);letter-spacing:1px;line-height:1}.stat-value.positive{color:var(--green)}.stat-value.negative{color:var(--red)}.stat-value-euro{font-family:Bebas Neue,cursive;font-size:22px;font-weight:400;color:var(--blue-dark);letter-spacing:.5px;line-height:1;margin-top:4px}.stat-value-euro.positive{color:var(--green)}.stat-value-euro.negative{color:var(--red)}.stat-card-dark .stat-value-euro{color:#ffffffb3}.projects-list{display:grid;gap:12px}.project-card-client{font-size:15px;color:#14213680}.project-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--beige-dark)}.metric-item{display:flex;flex-direction:column;gap:2px}.metric-label{font-size:13px;color:#14213666;text-transform:uppercase;letter-spacing:1px;font-weight:600}.metric-value{font-family:Bebas Neue,cursive;font-size:22px;font-weight:400;color:var(--blue-dark);letter-spacing:.5px}.metric-value-euro{font-family:Bebas Neue,cursive;font-size:16px;color:var(--blue-dark);opacity:.6;letter-spacing:.5px}.metric-value-euro.positive{color:var(--green);opacity:1}.metric-value-euro.negative{color:var(--red);opacity:1}.euro-inline{font-style:normal;font-size:12px;color:var(--blue-dark);opacity:.6}.status-icon{font-size:14px;margin-left:6px}.status-ok{color:#16a34a}.status-over{color:#dc2626}.status-no-estimate{color:#9ca3af;font-size:12px}.project-dates{display:flex;justify-content:space-between;font-size:12px;color:#14213666;margin-top:2px}.warning-icon{color:#ea580c;font-size:14px;margin-left:4px}.stat-card-dark .warning-icon{color:#fbbf24}.project-card-new{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .2s ease;margin-bottom:16px}.project-card-new:hover{box-shadow:var(--shadow-hover)}.card-title-bar.project-card-health-green{border-left:5px solid var(--green)}.card-title-bar.project-card-health-orange{border-left:5px solid var(--yellow)}.card-title-bar.project-card-health-red{border-left:5px solid var(--red)}.card-health-strip{position:absolute;left:0;top:0;width:5px;height:100%;cursor:help;z-index:1}.card-health-strip:after{content:attr(data-tooltip);position:absolute;left:12px;top:50%;transform:translateY(-50%);background:#142136eb;color:#fff;font-size:12px;font-family:Outfit,sans-serif;font-weight:400;padding:5px 10px;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:10}.card-health-strip:hover:after{opacity:1}.project-health-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding:3px 8px;border-radius:20px;flex-shrink:0;white-space:nowrap}.project-health-badge.health-green{background:#99c45433;color:#3d6b17}.project-health-badge.health-orange{background:#ffbd1c33;color:#9a6e00}.project-health-badge.health-red{background:#e74c3c33;color:#b92d1e}.project-card-body{padding:14px 24px 12px}.project-card-info{display:flex;align-items:center;gap:0;margin-left:auto;margin-right:16px}.card-info-col{display:flex;align-items:center;justify-content:flex-start}.card-info-col:nth-child(1){width:110px}.card-info-col:nth-child(2){width:230px}.card-info-col:nth-child(3){width:110px}.card-info-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:500;white-space:nowrap}.card-info-milestone{background:#ffffff1f;color:#ffffffbf}.card-info-milestone.urgent{background:#f59e0b59;color:#fef3c7}.card-info-datefin{background:#ffffff1f;color:#ffffffbf}.card-info-datefin.warning{background:#f59e0b59;color:#fef3c7}.card-info-datefin.late{background:#ef444466;color:#fee2e2}.project-gauge-track{position:relative;display:flex;height:14px;border-radius:8px;overflow:visible;background:var(--beige-dark)}.project-gauge-seg{height:100%;min-width:2px;transition:width .3s ease}.project-gauge-seg:first-child{border-radius:8px 0 0 8px}.project-gauge-seg:last-child{border-radius:0 8px 8px 0}.seg-realise{background:var(--green)}.seg-raf{background:var(--orange)}.seg-raff{background:#1421361f}.seg-over{background:var(--red)}.project-gauge-vendu-marker{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--blue-dark);border-radius:2px;opacity:.4;pointer-events:none}.project-gauge-metrics{display:flex;flex-wrap:wrap;gap:0 20px;margin-top:8px}.gauge-metric{display:flex;align-items:center;gap:5px;font-size:12px;color:#1421368c}.gauge-metric strong{color:var(--blue-dark);font-weight:700}.gauge-metric-dot{display:inline-block;width:8px;height:8px;border-radius:2px;flex-shrink:0}.gauge-metric-dot.seg-realise{background:var(--green)}.gauge-metric-dot.seg-raf{background:var(--orange)}.gauge-metric-dot.seg-raff{background:#1421362e}.gauge-metric-dot.seg-over{background:var(--red)}.gauge-metric-vendu{margin-left:auto;color:#14213666}.project-gauge-empty{font-size:12px;color:#14213659;font-style:italic;padding:8px 0}.project-card-footer{display:flex;align-items:center;gap:8px;padding:10px 24px;border-top:1px solid var(--beige-dark);background:var(--beige-light);cursor:pointer;transition:background .15s;font-size:13px;color:#1421368c}.project-card-footer:hover{background:var(--beige-dark)}.project-card-footer-icon{font-size:15px;opacity:.7}.project-card-footer-text{flex:1}.project-card-footer-visibility{margin-left:auto}.project-card-footer-cta{font-size:12px;font-weight:600;color:var(--blue-dark);white-space:nowrap;transition:color .15s}.project-card-footer:hover .project-card-footer-cta{color:var(--orange)}.progress-bar-wrapper{display:flex;align-items:center;gap:12px;margin-bottom:8px}.progress-bar-track{flex:1;height:10px;background:var(--beige-dark);border-radius:5px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:5px;transition:width .6s ease}.progress-bar-fill.normal{background:linear-gradient(90deg,var(--green),var(--turquoise))}.progress-bar-fill.warning{background:linear-gradient(90deg,var(--yellow),var(--orange))}.progress-bar-fill.over{background:linear-gradient(90deg,var(--orange),var(--red))}.progress-label{font-family:Bebas Neue,cursive;font-size:20px;color:var(--blue-dark);min-width:50px;text-align:right;letter-spacing:.5px}.admin-actions{display:flex;gap:8px}.card-section{background:var(--beige-light);border-radius:var(--radius);margin-bottom:24px;overflow:hidden;box-shadow:var(--shadow);transition:all .3s ease;border:1px solid var(--beige-dark)}.card-section:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);border-color:var(--orange)}.card-section-personal{background:#6bdbdb0a;border-color:#6bdbdb59}.card-section-personal:hover{border-color:var(--turquoise)}.card-section-personal .card-title-bar{background:var(--turquoise-dark)}.card-section-personal .card-section-body{background:#6bdbdb0a}.card-title-bar{position:relative;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--blue-dark);color:var(--white);border-radius:var(--radius) var(--radius) 0 0;min-height:56px;gap:12px}.card-title-bar .card-title-bar-left{flex:1;min-width:0}.card-collapsible .card-title-bar{cursor:pointer}.card-collapsible .card-title-bar .btn-small{min-width:160px;text-align:center;margin-left:auto}.card-collapse-icon{font-size:12px;color:#ffffff80;transition:transform .2s;margin-left:12px;flex-shrink:0}.card-collapsible .card-title-bar:hover .card-collapse-icon{color:#fffc}.card-section-collapsed{display:none}.card-collapsible.open .card-section-collapsed{display:block}.card-collapsible.open .card-collapse-icon{transform:rotate(180deg)}.card-title-bar-name{font-family:Bebas Neue,cursive;font-size:24px;font-weight:400;letter-spacing:1px;line-height:1.1;color:var(--white)}.card-title-bar-rate{font-family:Outfit,sans-serif;font-size:13px;color:#ffffff80;margin-left:12px;font-weight:400;letter-spacing:0}.card-title-bar-referent{font-family:Outfit,sans-serif;font-size:13px;color:#ffffff80;margin-left:10px;font-weight:400;letter-spacing:0}.badge-referent{display:inline-block;margin-left:10px;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.03em;background:#6366f140;color:#c7d2fe;vertical-align:middle;border:1px solid rgba(99,102,241,.4)}.card-title-bar-sub{font-size:14px;color:#ffffff80;margin-top:2px}.card-section-body{padding:12px 16px;background:var(--beige-light)}.btn-on-dark{background:#ffffff1a;color:var(--white);border-color:#fff3}.btn-on-dark:hover{background:var(--orange);border-color:var(--orange);color:var(--white)}.card-title-bar-with-metrics{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.card-title-bar-left{flex-shrink:0;min-width:160px}.card-title-bar-metrics{display:flex;gap:16px;flex:1;justify-content:center;flex-wrap:wrap}.card-metric-inline{display:flex;flex-direction:column;align-items:center;min-width:60px}.card-metric-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#ffffff73;font-weight:600;line-height:1;margin-bottom:2px}.card-metric-val{font-family:Bebas Neue,cursive;font-size:20px;color:var(--orange);letter-spacing:.5px;line-height:1.1}.card-metric-val.negative{color:var(--red)!important}.warning-icon-light{color:#fbbf24;font-size:12px}.card-title-bar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.card-section-body-slim{padding:8px 16px}.btn-icon-on-dark{background:#ffffff1a;border-color:#fff3;color:var(--white)}.btn-icon-on-dark:hover{background:var(--orange);border-color:var(--orange);color:var(--white)}.btn-icon-on-dark.danger:hover{background:var(--red);border-color:var(--red);color:var(--white)}.phase-section{background:var(--white);border-radius:var(--radius);margin-bottom:24px;overflow:hidden;box-shadow:var(--shadow)}.phase-title{font-family:Bebas Neue,cursive;font-size:20px;font-weight:400;letter-spacing:1px;padding:18px 24px;background:var(--blue-dark);color:var(--white)}.tasks-table{display:flex;flex-direction:column}.table-header,.table-row{display:grid;grid-template-columns:1.8fr .9fr 1.1fr .65fr .65fr .65fr .8fr .65fr 140px;gap:12px;padding:16px 24px;align-items:center}.table-header .table-cell{flex-direction:column;align-items:center;justify-content:center;gap:1px}.table-header .table-cell:first-child{align-items:flex-start}.table-header-total{font-size:12px;font-weight:700;color:#142136b3;text-transform:none;letter-spacing:0}.table-header{background:#14213608;border-bottom:1px solid var(--beige-dark);font-size:13px;font-weight:700;color:#14213666;text-transform:uppercase;letter-spacing:1px;padding:14px 24px}.table-row{border-bottom:1px solid var(--beige-dark);transition:all .2s ease;padding:10px 24px}.table-row:hover{background:#dc5c3b08;transform:translate(3px)}.table-row:last-child{border-bottom:none}.table-cell{display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;font-weight:400}.table-cell:first-child{justify-content:flex-start;text-align:left}.table-cell+.table-cell{border-left:1px solid rgba(20,33,54,.08)}.table-cell.mono{font-family:Bebas Neue,cursive;font-size:18px;letter-spacing:.5px}.table-cell.small{font-size:14px;color:#14213680}.sort-btn{background:none;border:none;padding:0;cursor:pointer;font:inherit;color:inherit;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:4px}.sort-btn:hover,.sort-btn.sort-active{color:var(--orange)}.sort-arrow{opacity:.4;font-style:normal;font-size:16px}.sort-btn.sort-active .sort-arrow{opacity:1}.tag{display:inline-block;padding:4px 12px;background:var(--turquoise);color:var(--blue-dark);border-radius:var(--radius-xs);font-size:13px;font-weight:600;letter-spacing:.3px}.table-actions{display:flex;gap:4px;flex-wrap:nowrap;white-space:nowrap}.table-actions .btn-icon-small{width:26px;height:26px;font-size:13px;border-radius:7px}.readonly-value{font-size:14px;color:var(--blue-dark);padding:6px 10px;background:#1421360a;border-radius:4px;margin-top:2px}.planning-task-link{color:var(--blue-dark);font-weight:500;cursor:pointer;text-decoration:none;border-bottom:1px dashed rgba(20,33,54,.3);transition:color .15s,border-color .15s}.planning-task-link:hover{color:var(--orange);border-bottom-color:var(--orange)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#14213699;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal{background:var(--white);border-radius:20px;padding:32px;width:90%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #14213640;animation:slideUp .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.modal-title{font-family:Bebas Neue,cursive;font-size:28px;font-weight:400;letter-spacing:1px}.form-group{margin-bottom:20px}.form-label{display:block;font-size:14px;font-weight:600;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px;color:#14213699}.form-input,.form-select{width:100%;padding:12px 16px;border:1px solid rgba(20,33,54,.12);border-radius:12px;font-size:15px;font-family:Outfit,sans-serif;color:var(--blue-dark);background:var(--white);transition:all .2s ease}.form-input:focus,.form-select:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px #dc5c3b1a}.form-actions{display:flex;gap:12px;margin-top:28px}.form-actions button{flex:1;justify-content:center;text-align:center}.breadcrumb{background:none;border:none;color:var(--orange);font-family:Outfit,sans-serif;font-size:15px;font-weight:500;cursor:pointer;padding:4px 0;margin-bottom:8px;transition:all .2s ease}.breadcrumb:hover{color:var(--orange-dark);transform:translate(-3px)}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--blue-dark);position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;top:-200px;right:-200px;width:500px;height:500px;border:1px solid rgba(255,255,255,.05);border-radius:50%}.login-container:after{content:"";position:absolute;bottom:-150px;left:-150px;width:400px;height:400px;border:1px solid rgba(255,255,255,.03);border-radius:50%}.login-card{background:var(--white);padding:48px;border-radius:20px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:420px;position:relative;z-index:1}.login-title{font-family:Bebas Neue,cursive;font-size:42px;font-weight:400;letter-spacing:2px;margin-bottom:4px;color:var(--blue-dark)}.login-title-accent{color:var(--orange)}.login-subtitle{color:#14213680;margin-bottom:36px;font-size:16px}.login-input{width:100%;padding:14px 16px;border:1px solid rgba(20,33,54,.12);border-radius:12px;font-size:15px;font-family:Outfit,sans-serif;transition:all .2s ease}.login-input:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px #dc5c3b1a}.login-btn{width:100%;padding:14px;background:var(--orange);color:var(--white);border:none;border-radius:25px;font-family:Outfit,sans-serif;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;letter-spacing:.5px}.login-btn:hover{background:var(--orange-dark);transform:translateY(-1px)}.login-error{margin-top:16px;color:var(--red);font-size:15px;display:none;padding:10px 14px;background:#e74c3c14;border-radius:var(--radius-sm)}.login-hint{margin-top:28px;padding-top:28px;border-top:1px solid rgba(20,33,54,.08);font-size:14px;color:#14213666}.notification{position:fixed;top:24px;right:24px;padding:16px 24px;border-radius:12px;font-family:Outfit,sans-serif;font-size:15px;font-weight:500;z-index:2000;animation:slideIn .3s ease;max-width:400px;box-shadow:0 8px 30px #0000001f}.notification.success{background:var(--blue-dark);color:var(--green);border-left:4px solid var(--green)}.notification.error{background:var(--blue-dark);color:var(--red);border-left:4px solid var(--red)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.admin-grid{display:grid;gap:24px}.admin-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.admin-section-title{font-family:Bebas Neue,cursive;font-size:24px;font-weight:400;letter-spacing:1px}.admin-item-list{display:flex;flex-direction:column;gap:8px}.admin-item{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--beige);border-radius:12px;border:1px solid transparent;transition:all .2s ease}.admin-item-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-item:hover{border-color:#dc5c3b26;transform:translate(3px)}.resource-admin-info{font-weight:600;font-size:15px}.resource-admin-detail{font-size:14px;color:#14213680;margin-top:2px}.resource-absence-detail{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.resource-absence-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#142136a6;background:#1421360f;border-radius:10px;padding:2px 7px}.resource-absence-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.sub-section{margin-top:24px;padding-top:24px;border-top:1px solid var(--beige-dark)}.sub-section-title{font-size:13px;font-weight:700;color:#14213666;text-transform:uppercase;letter-spacing:1px;margin-bottom:14px}.sub-item{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--beige);border-radius:12px;margin-bottom:8px;border:1px solid transparent;transition:all .2s ease}.sub-item:hover{border-color:#dc5c3b26;transform:translate(3px)}.sub-item-name{font-size:14px;font-weight:600;margin-bottom:4px}.sub-item-details{display:flex;gap:16px;font-size:14px;color:#14213680}.sub-item-right{display:flex;align-items:center;gap:12px}.sub-item-percent{font-family:Bebas Neue,cursive;font-size:22px;width:60px;text-align:right;letter-spacing:.5px}.resource-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.resource-name{font-family:Bebas Neue,cursive;font-size:22px;font-weight:400;letter-spacing:.5px;margin-bottom:2px}.resource-role{font-size:15px;color:#14213680}.resource-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.recent-entries{padding-top:20px;border-top:1px solid var(--beige-dark)}.collapsible-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 0;background:none;border:none;cursor:pointer;font-family:Outfit,sans-serif;font-size:13px;font-weight:700;color:#14213666;text-transform:uppercase;letter-spacing:1px;transition:color .2s ease}.collapsible-toggle:hover{color:var(--orange)}.collapsible-arrow{font-size:10px;transition:transform .2s ease}.collapsible-arrow.open{transform:rotate(90deg)}.recent-entry{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--beige-dark);font-size:15px}.recent-entry-task{font-weight:400}.recent-entry-project{font-size:14px;color:#14213666}.recent-entry-hours{font-family:Bebas Neue,cursive;font-size:16px;color:var(--orange);font-weight:400}.recent-entry-date{font-size:13px;color:#14213666}.resource-project-group{margin-bottom:12px}.resource-project-group:last-child{margin-bottom:0}.resource-project-group-title{font-family:Bebas Neue,cursive;font-size:18px;color:var(--blue-dark);padding:6px 0 4px;border-bottom:2px solid var(--turquoise);margin-bottom:6px;display:flex;justify-content:space-between;align-items:baseline}.resource-project-group-values{display:flex;gap:12px;align-items:baseline}.resource-project-group-hours{color:var(--orange);font-size:18px}.resource-project-group-raf{color:var(--blue-dark);font-size:18px}.recent-entry-values{display:flex;gap:12px;align-items:baseline;text-align:right}.recent-entry-raf{font-family:Bebas Neue,cursive;font-size:16px;color:var(--blue-dark);font-weight:400}.typology-line-wrapper{background:#fff;border-radius:8px;margin-bottom:8px;border:1px solid var(--beige-dark);overflow:hidden}.typology-line{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fff;border:none;width:100%;cursor:pointer;text-align:left}.typology-line-left{display:flex;align-items:center;gap:10px}.typology-line-name{font-family:Bebas Neue,cursive;font-size:20px;color:var(--blue-dark);letter-spacing:.5px}.typology-line-info{display:flex;gap:20px;align-items:baseline}.typology-line-tasks{font-size:13px;color:#14213666}.typology-line-stat{font-family:Bebas Neue,cursive;font-size:18px;color:var(--orange)}.typology-line-wrapper>.collapsible-content{padding:0 16px 12px}.typology-project-group{margin-bottom:8px}.typology-project-group:last-child{margin-bottom:0}.typology-project-title{display:flex;justify-content:space-between;align-items:baseline;font-family:Bebas Neue,cursive;font-size:17px;color:var(--blue-dark);padding:4px 0;border-bottom:2px solid var(--turquoise);margin-bottom:4px}.typology-project-stats{display:flex;gap:14px;font-size:15px;color:var(--orange)}.typology-task-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0 3px 12px;font-size:14px;color:var(--blue-dark)}.typology-task-stats{display:flex;gap:14px;font-family:Bebas Neue,cursive;font-size:15px;color:var(--orange)}.typology-line-raf.positive{color:#16a34a}.typology-line-raf.negative{color:#dc2626}.modal-info-box{padding:16px;background:var(--blue-dark);border-radius:12px;margin-bottom:24px;color:var(--white)}.modal-info-title{font-size:15px;font-weight:600;margin-bottom:2px}.modal-info-subtitle{font-size:14px;color:#ffffff80}.task-history-list{display:flex;flex-direction:column;gap:0;margin-bottom:24px}.task-history-entry{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--beige-dark)}.task-history-entry:last-child{border-bottom:none}.task-history-date{font-size:15px;font-weight:600;color:var(--blue-dark)}.task-history-resource{font-size:14px;color:#14213680;margin-top:2px}.task-history-right{text-align:right}.task-history-hours{font-family:Bebas Neue,cursive;font-size:22px;color:var(--orange);letter-spacing:.5px}.task-history-raf{font-size:13px;color:var(--turquoise-dark);font-weight:500}.task-history-raf.not-set{color:#1421364d;font-weight:400;font-style:italic}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer}.checkbox-label input{width:18px;height:18px;accent-color:var(--orange)}.checkbox-label .form-label{margin:0}.empty-inline{padding:24px;text-align:center;color:#1421364d;font-size:15px}.empty-recent{color:#1421364d;font-size:15px;padding:8px 0}.password-hint{font-size:14px;color:#14213666;margin-top:6px}.password-wrapper{position:relative;display:flex;align-items:center}.password-wrapper .form-input{flex:1;padding-right:40px}.password-toggle{position:absolute;right:10px;background:none;border:none;cursor:pointer;font-size:16px;opacity:.4;padding:0;line-height:1}.password-toggle:hover{opacity:1}.empty-state{text-align:center;padding:80px 24px;color:#1421364d}.assignment-checklist{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto}.assignment-check-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--beige);border-radius:8px;cursor:pointer;transition:all .15s ease;border:1px solid transparent}.assignment-check-item:hover{border-color:var(--orange);background:#dc5c3b0d}.assignment-check-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--orange);flex-shrink:0}.assignment-check-role{margin-left:auto;font-size:13px;color:#14213666}.timesheet-filters{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}.timesheet-resource-select,.timesheet-project-select{flex:0 0 auto}.timesheet-nav{display:flex;justify-content:center;align-items:center;gap:12px;margin-bottom:24px}.timesheet-grid-wrapper{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.timesheet-table{width:100%;border-collapse:collapse;table-layout:fixed}.timesheet-table th,.timesheet-table td{padding:0;border:1px solid var(--beige-dark);vertical-align:middle}.timesheet-th-task{width:30%;padding:14px 16px!important;background:var(--blue-dark);color:var(--white);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;text-align:left}.timesheet-th-task-inner{display:flex;align-items:center;gap:12px;justify-content:space-between}.timesheet-project-filter-inline{font-family:Outfit,sans-serif;font-size:11px;font-weight:600;text-transform:none;letter-spacing:0;padding:4px 10px;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:4px;cursor:pointer;outline:none;max-width:180px}.timesheet-project-filter-inline:hover,.timesheet-project-filter-inline:focus{background:#ffffff2e;border-color:#ffffff59}.timesheet-project-filter-inline option{background:var(--white);color:var(--blue-dark)}.timesheet-th-day{padding:14px 8px!important;background:var(--blue-dark);color:var(--white);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;text-align:center}.timesheet-th-total{width:8%;padding:14px 8px!important;background:var(--blue-dark);color:var(--orange);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;text-align:center}.timesheet-today{background-color:#dc5c3b12!important}th.timesheet-today{background-color:#dc5c3b4d!important}.timesheet-td-task{padding:10px 16px!important}.timesheet-task-name{font-size:14px;font-weight:600;color:var(--blue-dark);line-height:1.3}.timesheet-project-name{font-size:12px;color:#14213673}.timesheet-td-cell{height:48px;text-align:center;font-family:Bebas Neue,cursive;font-size:20px;color:var(--blue-dark);cursor:pointer;transition:background-color .15s ease;letter-spacing:.5px}.timesheet-td-cell:hover{background-color:#dc5c3b1a!important}.timesheet-cell-hours{display:block;font-family:Bebas Neue,cursive;font-size:20px;color:var(--blue-dark);line-height:1.2}.timesheet-cell-raf{display:block;font-family:Outfit,sans-serif;font-size:10px;color:var(--turquoise-dark);font-weight:600;letter-spacing:.3px;line-height:1}.timesheet-popover-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:900;background:#14213626}.timesheet-popover{position:fixed;width:220px;background:var(--white);border-radius:12px;box-shadow:0 8px 30px #14213633;padding:16px;z-index:901;animation:slideUp .15s ease}.timesheet-popover-field{margin-bottom:12px}.timesheet-popover-label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#14213680;margin-bottom:4px}.timesheet-popover-input{width:100%;padding:8px 10px;border:1px solid rgba(20,33,54,.12);border-radius:8px;font-family:Outfit,sans-serif;font-size:15px;color:var(--blue-dark);outline:none;transition:border-color .2s;-moz-appearance:textfield;box-sizing:border-box}.timesheet-popover-input::-webkit-outer-spin-button,.timesheet-popover-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.timesheet-popover-input:focus{border-color:var(--orange);box-shadow:0 0 0 2px #dc5c3b1a}.timesheet-popover-actions{display:flex;gap:8px;margin-top:14px}.timesheet-popover-btn{flex:1;padding:8px 0!important;font-size:13px!important;text-align:center;justify-content:center}.timesheet-td-rowtotal,.timesheet-td-grandtotal{text-align:center;font-family:Bebas Neue,cursive;font-size:20px;color:var(--orange);font-weight:400;letter-spacing:.5px}.timesheet-totals-row{background:#14213608;border-top:2px solid var(--blue-dark)!important}.timesheet-totals-row td{padding:12px 8px!important}.timesheet-done-section{margin-top:12px;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.timesheet-done-toggle{padding:14px 20px!important;font-size:13px!important;color:#14213673!important}.timesheet-done-toggle:hover{color:var(--orange)!important;background:var(--beige-light)}.timesheet-table-done{opacity:.65}.timesheet-table-done .timesheet-td-cell{background:var(--beige-light)!important}.timesheet-absence-row{background:#14213605;border-bottom:1px solid var(--beige-dark)}.timesheet-absence-title{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#14213673}.timesheet-absence-cell{cursor:default!important}.timesheet-absence-empty{background:transparent!important}.timesheet-absence-clickable:hover{filter:brightness(.94)}.timesheet-absence-badge{font-size:11px;font-weight:700}.res-table-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:24px}.res-table-header,.res-table-row{display:grid;grid-template-columns:2fr 1.2fr .7fr .7fr .8fr .8fr 1.4fr;align-items:center;padding:12px 20px}.res-table-header{background:var(--blue-dark);color:#ffffff8c;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.res-table-row{border-bottom:1px solid var(--beige-dark);transition:background .15s}.res-table-row:last-of-type{border-bottom:none}.res-table-row:hover{background:var(--beige-light)}.res-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--turquoise);color:var(--blue-dark);font-size:11px;font-weight:800;flex-shrink:0;margin-right:10px}.res-fullname{font-weight:600;font-size:15px}.res-col-name{display:flex;align-items:center}.res-col-role{font-size:13px;color:#14213680}.res-col-projects,.res-col-tasks{font-size:15px;font-weight:600}.res-col-raf{font-size:15px;font-weight:700}.res-col-actions{display:flex;align-items:center;justify-content:flex-end;min-width:120px}.res-late-badge{display:inline-block;background:#e74c3c1f;color:var(--red);font-weight:700;font-size:13px;padding:2px 8px;border-radius:20px}.res-load-track{height:10px;background:var(--beige-dark);border-radius:6px;overflow:hidden;width:100%}.res-load-fill{height:100%;border-radius:6px;transition:width .3s}.res-detail-panel{border-top:2px solid var(--turquoise);background:var(--beige-light);padding:16px 20px}.res-detail-empty{font-size:13px;color:#14213666;padding:8px 0}.res-detail-project{margin-bottom:14px}.res-detail-absences{padding:10px 20px 14px;border-top:1px solid rgba(20,33,54,.08);margin-top:4px}.res-detail-absences-period{font-size:11px;color:#14213659;font-weight:400;text-transform:none;letter-spacing:0}.res-detail-absences-list{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(20,33,54,.12)}.res-detail-absences-list-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#14213666;margin-bottom:6px}.res-detail-absence-row{display:grid;grid-template-columns:12px 1.2fr 1.4fr 2fr auto;gap:10px;align-items:center;padding:6px 0;font-size:13px;border-bottom:1px solid rgba(20,33,54,.05)}.res-detail-absence-row:last-child{border-bottom:none}.res-detail-absence-note{font-size:12px;color:#14213680;font-style:italic}.res-detail-project-name{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#14213666;margin-bottom:6px;display:flex;align-items:center;gap:10px}.res-history-block{margin:14px 20px 6px;border-top:1px solid var(--border);padding-top:10px}.res-history-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-light);margin-bottom:6px}.res-history-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px dashed var(--border);font-size:13px}.res-history-project{color:var(--blue-dark)}.res-history-total{font-weight:700;color:var(--accent);font-size:13px}.res-detail-project-consumed{font-size:11px;font-weight:700;color:var(--accent);background:#6366f114;border-radius:4px;padding:1px 7px;text-transform:none;letter-spacing:0}.res-detail-tasks{display:flex;flex-direction:column;gap:6px}.res-detail-task{display:flex;align-items:center;gap:10px;background:var(--white);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px}.res-detail-task-name{flex:1;font-weight:500}.res-detail-task-raf{font-weight:600;opacity:.7}.res-detail-task-date{font-size:12px;color:#14213666}.planning-table-header,.planning-table-row{display:grid;grid-template-columns:2fr 1fr 1fr .8fr .8fr .7fr .7fr .7fr 1.2fr;align-items:center;gap:4px;padding:10px 16px;border-bottom:1px solid var(--beige-dark)}.planning-table-header{font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#14213680;background:var(--beige);border-radius:0}.planning-table-row:last-child{border-bottom:none}.planning-table-row:hover{background:var(--orange-light)}.planning-status{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.planning-status-red{background:#e74c3c26;color:var(--red)}.planning-status-green{background:#99c45426;color:var(--green)}.planning-status-blue{background:#6bdbdb26;color:var(--turquoise-dark)}.planning-status-gray{background:#e74c3c14;color:var(--red);border:1px solid rgba(231,76,60,.3)}.milestone-list{display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px}.milestone-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:16px;font-size:12px;font-weight:600;white-space:nowrap}.milestone-badge-late{background:#e74c3c1f;color:var(--red)}.milestone-badge-urgent{background:#ffbd1c26;color:#b8860b}.milestone-badge-ok{background:#99c45426;color:var(--green)}.milestone-badge-nodate{background:#14213614;color:#14213680}.milestone-badge-done{background:#10b9811f;color:#065f46}.milestone-done-label{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:#1421368c;cursor:pointer;-webkit-user-select:none;user-select:none}.milestone-done-label:has(.milestone-done-check:checked){color:#065f46;font-weight:500}.milestone-done-check{accent-color:#10b981;width:15px;height:15px;cursor:pointer}.milestone-progress-bar{flex:1;height:6px;background:var(--beige-dark);border-radius:3px;overflow:hidden}.milestone-progress-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--green),var(--turquoise));transition:width .4s ease}.milestone-detail-item{display:flex;flex-direction:row;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--beige-dark)}.milestone-detail-item:last-child{border-bottom:none}.team-member-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--beige-dark)}.team-member-row:last-child{border-bottom:none}.team-member-info{display:flex;align-items:center;gap:10px}.team-member-name{font-weight:500;font-size:14px}.team-member-actions{display:flex;align-items:center;gap:8px}.team-member-role-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px}.role-admin{background:#ef444426;color:#991b1b}.role-referent{background:#f59e0b26;color:#92400e}.role-contributor{background:#8b5cf626;color:#5b21b6}.role-member{background:#3b82f626;color:#1e40af}.form-select-small{font-size:13px;padding:4px 8px;border:1px solid var(--beige-dark);border-radius:var(--radius);background:var(--white)}.timeline-card{background:var(--white);border:1px solid var(--beige-dark);border-radius:var(--radius);padding:28px 24px 20px;margin-bottom:24px;box-shadow:var(--shadow)}.timeline-labels{display:flex;justify-content:space-between;font-size:12px;color:#14213666;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.timeline-track{position:relative;height:4px;background:var(--beige-dark);border-radius:2px;margin:0 0 32px}.timeline-today{position:absolute;top:-6px;width:2px;height:16px;background:var(--orange);border-radius:1px;transform:translate(-50%)}.timeline-today:after{content:"Aujourd'hui";position:absolute;top:18px;left:50%;transform:translate(-50%);font-size:10px;font-weight:600;color:var(--orange);white-space:nowrap}.timeline-milestone{position:absolute;top:-8px;transform:translate(-50%);cursor:pointer;display:flex;flex-direction:column;align-items:center}.timeline-milestone-dot{width:16px;height:16px;border-radius:3px;transform:rotate(45deg);border:2px solid var(--blue-dark);background:var(--white);transition:transform .15s,background .15s}.timeline-milestone:hover .timeline-milestone-dot{transform:rotate(45deg) scale(1.3);background:var(--blue-dark)}.timeline-milestone-label{position:absolute;top:22px;left:50%;transform:translate(-50%);font-size:11px;white-space:nowrap;color:var(--blue-dark);font-weight:500;opacity:0;transition:opacity .15s;pointer-events:none;background:var(--white);padding:2px 6px;border-radius:4px;border:1px solid var(--beige-dark)}.timeline-milestone:hover .timeline-milestone-label{opacity:1}.timeline-milestone.milestone-badge-late .timeline-milestone-dot{border-color:var(--red)}.timeline-milestone.milestone-badge-urgent .timeline-milestone-dot{border-color:var(--orange)}.timeline-milestone.milestone-badge-ok .timeline-milestone-dot{border-color:var(--green)}.timeline-milestone.milestone-badge-late:hover .timeline-milestone-dot{background:var(--red)}.timeline-milestone.milestone-badge-urgent:hover .timeline-milestone-dot{background:var(--orange)}.timeline-milestone.milestone-badge-ok:hover .timeline-milestone-dot{background:var(--green)}.comment-list{display:flex;flex-direction:column;gap:0;margin-bottom:16px}.comment-item{position:relative;padding:12px 36px 12px 0;border-bottom:1px solid var(--beige-dark)}.comment-item:last-child{border-bottom:none}.comment-meta{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.comment-author{font-size:14px;font-weight:600;color:var(--blue-dark)}.comment-date{font-size:12px;color:#14213666}.comment-content{font-size:15px;color:var(--blue-dark);line-height:1.5;white-space:pre-wrap;word-break:break-word}.comment-delete{position:absolute;top:12px;right:0;background:none;border:none;font-size:14px;color:#14213640;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s ease;line-height:1}.comment-delete:hover{color:var(--red);background:#e74c3c14}.comment-form{display:flex;gap:10px;align-items:flex-end;margin-top:8px}.comment-textarea{flex:1;padding:10px 14px;border:1px solid rgba(20,33,54,.12);border-radius:12px;font-family:Outfit,sans-serif;font-size:14px;color:var(--blue-dark);resize:vertical;min-height:40px;outline:none;transition:border-color .2s ease}.comment-textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px #dc5c3b1a}.comment-textarea::placeholder{color:#14213659}.comment-send-btn{padding:10px 20px!important;font-size:14px!important;flex-shrink:0}.comment-visibility-select{padding:6px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:var(--white);font-family:Outfit,sans-serif;font-size:13px;cursor:pointer;outline:none}.comment-visibility-select option{background:var(--blue-dark);color:var(--white)}.chat-modal-messages{max-height:400px;overflow-y:auto}.comment-chat-inline{background:none;border:none;cursor:pointer;font-size:13px;padding:0 4px;vertical-align:middle;opacity:.4;transition:opacity .2s ease;line-height:1}.comment-chat-inline:hover{opacity:1}.project-card-row{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:20px;align-items:stretch;margin-bottom:24px;background:var(--beige-light);border-radius:var(--radius);border:1px solid var(--beige-dark);box-shadow:var(--shadow);overflow:hidden;transition:all .3s ease}.project-card-row .card-section{margin-bottom:0;box-shadow:none;border:none;background:transparent;grid-column:1 / span 2;border-right:1px solid var(--beige-dark)}.project-card-row .card-section:hover{box-shadow:none;transform:none;border-color:transparent}.project-card-row:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);border-color:var(--orange)}.project-chat-panel{background:transparent;border-left:1px solid var(--beige-dark);display:flex;flex-direction:column;min-height:100%;overflow:hidden;grid-column:3}.project-chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--blue-dark);color:var(--white);border-radius:var(--radius) var(--radius) 0 0;min-height:56px;box-sizing:border-box}.project-chat-title{font-family:Bebas Neue,cursive;font-size:20px;letter-spacing:1px}.project-chat-visibility{display:flex;align-items:center;gap:8px}.project-chat-visibility-label{font-size:12px;color:#ffffffb3;text-transform:uppercase;letter-spacing:.5px}.project-chat-visibility-select{padding:6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:var(--white);font-family:Outfit,sans-serif;font-size:12px;cursor:pointer;outline:none}.project-chat-visibility-select option{background:var(--blue-dark);color:var(--white)}.project-card-footer .project-chat-visibility-select{border:1px solid rgba(20,33,54,.15);background:var(--white);color:var(--blue-dark)}.project-card-footer .project-chat-visibility-select option{background:var(--white);color:var(--blue-dark)}.project-chat-messages{flex:1;padding:12px 16px 0;overflow-y:auto;min-height:180px;max-height:260px}.project-chat-panel .comment-list{margin-bottom:8px}.project-chat-panel .comment-item{padding-right:28px}.project-chat-panel .comment-content{font-size:14px}.project-chat-latest{padding:10px 0 12px;border-bottom:1px solid var(--beige-dark)}.project-chat-history{margin-top:10px}.project-chat-summary{cursor:pointer;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:#14213699;padding:6px 0 10px;list-style:none}.project-chat-summary::-webkit-details-marker{display:none}.project-chat-empty{font-size:14px;color:#14213673;padding:8px 0}.project-chat-form{padding:10px 16px 14px;margin-top:0;background:transparent}@media (max-width: 1100px){.project-card-row{grid-template-columns:1fr;gap:0}.project-chat-panel{min-height:280px;border-left:none;border-top:1px solid var(--beige-dark);grid-column:1}}.planning-timeline-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 24px 24px;margin-bottom:24px}.planning-timeline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.planning-timeline-title{font-weight:700;font-size:15px;color:var(--blue-dark)}.planning-timeline-track-wrap{position:relative}.planning-timeline-labels{position:relative;height:20px;margin-top:22px}.planning-timeline-week-label{position:absolute;transform:translate(-50%);font-size:11px;color:#14213673;font-weight:500;white-space:nowrap}.planning-timeline-track{position:relative;height:64px;background:var(--beige-light);border-radius:var(--radius-sm);border:1px solid var(--beige-dark);overflow:visible}.planning-timeline-track:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(to right,transparent,transparent calc(25% - 1px),var(--beige-dark) calc(25% - 1px),var(--beige-dark) 25%);border-radius:var(--radius-sm);pointer-events:none}.planning-timeline-today{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--orange);border-radius:2px;z-index:3}.planning-timeline-today:after{content:"Auj.";position:absolute;bottom:-18px;left:50%;transform:translate(-50%);font-size:10px;font-weight:700;color:var(--orange);white-space:nowrap}.planning-absence-band{position:absolute;top:6px;height:calc(100% - 12px);border-radius:4px;border:1px solid;display:flex;align-items:center;padding:0 6px;gap:4px;z-index:1;overflow:hidden;cursor:default}.planning-absence-label{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.planning-absence-delete{background:none;border:none;cursor:pointer;font-size:10px;color:inherit;opacity:.6;padding:0 2px;flex-shrink:0;line-height:1}.planning-absence-delete:hover{opacity:1}.planning-absence-period{font-size:10px;font-weight:600;opacity:.85;text-transform:lowercase;letter-spacing:.3px;margin-right:4px}.absence-period-radios{display:flex;gap:12px;align-items:center}.absence-period-radios label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:14px;font-weight:400}.planning-tl-milestone{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;z-index:4;cursor:pointer}.planning-tl-milestone-dot{width:16px;height:16px;border-radius:3px;transform:rotate(45deg);border:2px solid;background:#fff;flex-shrink:0;transition:transform .15s}.planning-tl-milestone:hover .planning-tl-milestone-dot{transform:rotate(45deg) scale(1.2)}.planning-tl-milestone.milestone-badge-ok .planning-tl-milestone-dot{border-color:var(--green);background:#99c45433}.planning-tl-milestone.milestone-badge-urgent .planning-tl-milestone-dot{border-color:var(--yellow);background:#ffbd1c33}.planning-tl-milestone.milestone-badge-late .planning-tl-milestone-dot{border-color:var(--red);background:#e74c3c33}.planning-tl-milestone.milestone-badge-nodate .planning-tl-milestone-dot{border-color:#1421364d}.planning-tl-milestone-personal .planning-tl-milestone-dot{border-radius:50%;border-color:var(--turquoise-dark);background:#6bdbdb33;transform:none}.planning-tl-milestone-personal:hover .planning-tl-milestone-dot{transform:scale(1.2)}.personal-task-done{opacity:.5}.planning-tl-task{position:absolute;top:6px;transform:translate(-50%);display:flex;align-items:center;justify-content:center;z-index:4;cursor:pointer}.planning-tl-task-flag{font-size:16px;line-height:1;transition:transform .15s}.planning-tl-task:hover .planning-tl-task-flag{transform:scale(1.2)}.planning-tl-task.planning-status-green .planning-tl-task-flag{color:var(--green)}.planning-tl-task.planning-status-orange .planning-tl-task-flag{color:var(--yellow)}.planning-tl-task.planning-status-red .planning-tl-task-flag{color:var(--red)}.planning-tl-task.planning-status-default .planning-tl-task-flag{color:#14213659}.planning-tl-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--blue-dark);color:#fff;font-size:11px;font-weight:500;padding:5px 9px;border-radius:6px;white-space:nowrap;pointer-events:none;z-index:10;line-height:1.5;text-align:center}.planning-tl-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--blue-dark)}.planning-tl-milestone:hover .planning-tl-tooltip,.planning-tl-task:hover .planning-tl-tooltip{display:block}.planning-priority-header,.planning-priority-row{grid-template-columns:auto 2fr 1fr .8fr .8fr .7fr .6fr 1.2fr .4fr}.note-btn-filled{background:transparent;border:none;cursor:pointer;font-size:16px;opacity:.9;padding:2px 4px;border-radius:4px;transition:opacity .15s}.note-btn-empty{background:transparent;border:none;cursor:pointer;font-size:16px;opacity:.25;padding:2px 4px;border-radius:4px;transition:opacity .15s}.note-btn-empty:hover,.note-btn-filled:hover{opacity:1;background:#0000000f}.planning-row-late{background:#e74c3c0d}.planning-row-urgent{background:#ffbd1c12}.priority-controls{display:flex;flex-direction:column;align-items:center;gap:1px}.priority-btn{background:none;border:none;cursor:pointer;font-size:9px;color:#14213666;padding:1px 4px;line-height:1;border-radius:2px;transition:color .15s,background .15s}.priority-btn:hover:not(:disabled){color:var(--blue-dark);background:var(--beige-dark)}.priority-btn:disabled{opacity:.2;cursor:default}.priority-num{font-size:11px;font-weight:700;color:#14213680;min-width:18px;text-align:center}.planning-status{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}.planning-status.planning-status-green{background:#99c45426;color:#4a7c1f}.planning-status.planning-status-orange{background:#ffbd1c26;color:#9a6e00}.planning-status.planning-status-red{background:#e74c3c26;color:#b92d1e}.planning-status.planning-status-default{background:#14213612;color:#1421368c}@media (max-width: 768px){.sidebar{display:none}.main-content{margin-left:0;padding:20px}.view-title{font-size:32px}.project-metrics{grid-template-columns:repeat(2,1fr)}.table-header,.table-row{font-size:12px;padding:12px 16px}.stats-grid{grid-template-columns:1fr 1fr}.card-title-bar-with-metrics{flex-direction:column;align-items:stretch;gap:8px}.card-title-bar-metrics{justify-content:flex-start;gap:12px}.card-metric-val{font-size:17px}.card-title-bar-actions{justify-content:flex-end}.project-card-row{grid-template-columns:1fr}.project-chat-messages{max-height:220px}.timesheet-th-task{width:25%;font-size:11px;padding:10px 8px!important}.timesheet-th-day{font-size:11px;padding:10px 4px!important}.timesheet-td-cell{font-size:16px;height:40px}.timesheet-popover{width:190px;padding:12px}.timesheet-td-rowtotal,.timesheet-td-grandtotal{font-size:16px}.timesheet-nav{gap:6px}.timesheet-nav .btn-secondary{padding:8px 12px;font-size:13px}.planning-table-header,.planning-table-row{grid-template-columns:1.5fr 1fr 1fr .7fr .7fr .6fr .6fr .6fr 1fr .4fr;font-size:12px;padding:8px 10px}.planning-status{font-size:10px;padding:2px 6px}.milestone-badge{font-size:10px}}.roadmap-controls{display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}.roadmap-nav{display:flex;align-items:center;gap:8px;margin-left:auto}.roadmap-nav-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--white);cursor:pointer;font-size:16px;color:var(--blue-dark);display:flex;align-items:center;justify-content:center;transition:background .15s}.roadmap-nav-btn:hover{background:var(--beige)}.roadmap-nav-label{font-size:13px;font-weight:600;color:var(--blue-dark);min-width:210px;text-align:center}.roadmap-nav-today{padding:5px 14px;border-radius:8px;border:1px solid var(--border);background:var(--white);cursor:pointer;font-size:13px;font-family:Outfit,sans-serif;color:var(--blue-dark);transition:background .15s}.roadmap-nav-today:hover{background:var(--beige)}.roadmap-wrap{background:var(--white);border-radius:16px;border:1px solid var(--border);overflow:hidden}.roadmap-months-header{display:flex;border-bottom:2px solid var(--border);background:var(--beige)}.roadmap-label-spacer{width:200px;flex-shrink:0;border-right:1px solid var(--border)}.roadmap-months-cells{flex:1;display:flex;position:relative}.roadmap-month-cell{padding:9px 10px;font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px;border-right:1px solid rgba(20,33,54,.07);box-sizing:border-box}.roadmap-month-cell:last-child{border-right:none}.roadmap-today-header{position:absolute;top:0;bottom:0;width:2px;background:#ef4444;transform:translate(-1px);pointer-events:none;z-index:2}.roadmap-row{display:flex;align-items:center;border-bottom:1px solid rgba(20,33,54,.05);min-height:46px;transition:background .1s}.roadmap-row:last-child{border-bottom:none}.roadmap-row:hover{background:#fafaf8}.roadmap-label-cell{width:200px;flex-shrink:0;border-right:1px solid var(--border);display:flex;align-items:center;gap:4px;padding:0 6px 0 0}.roadmap-label{flex:1;padding:8px 8px 8px 14px;cursor:pointer;position:relative;overflow:visible;min-width:0}.roadmap-label-name{display:block;font-size:13px;font-weight:500;color:var(--blue-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s}.roadmap-label:hover .roadmap-label-name{color:var(--orange)}.roadmap-chat-btn{flex-shrink:0;background:none;border:none;cursor:pointer;font-size:14px;color:var(--text-secondary);padding:4px 5px;border-radius:6px;display:flex;align-items:center;gap:3px;transition:color .15s,background .15s}.roadmap-chat-btn:hover{color:var(--blue-dark);background:var(--beige)}.roadmap-chat-count{font-size:10px;font-weight:700;color:var(--text-secondary)}.roadmap-label-tooltip{display:none;position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--blue-dark);color:#fff;padding:8px 12px;border-radius:8px;font-size:12px;white-space:nowrap;z-index:300;pointer-events:none;line-height:1.7;box-shadow:0 4px 12px #0003}.roadmap-label:hover .roadmap-label-tooltip{display:block}.roadmap-track{flex:1;position:relative;height:46px;overflow:visible}.roadmap-bar{position:absolute;top:50%;transform:translateY(-50%);height:14px;min-width:4px;opacity:1;transition:opacity .25s,box-shadow .15s}.roadmap-bar:hover{box-shadow:0 2px 8px #00000026}.roadmap-milestone{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:12px;color:#fffffff2;cursor:default;z-index:10;line-height:1}.roadmap-ms-late{color:#fca5a5}.roadmap-ms-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--blue-dark);color:#fff;padding:5px 10px;border-radius:6px;font-size:11px;white-space:nowrap;z-index:400;line-height:1.6;text-align:center;box-shadow:0 3px 10px #0003;pointer-events:none}.roadmap-ms-tooltip span{opacity:.7;font-size:10px}.roadmap-milestone:hover .roadmap-ms-tooltip{display:block}.roadmap-today-track{position:absolute;top:0;bottom:0;width:2px;background:#ef444459;transform:translate(-1px);pointer-events:none;z-index:1}.roadmap-empty{padding:48px;text-align:center;color:var(--text-secondary);font-size:14px}.team-absences-wrap{background:var(--white);border-radius:16px;border:1px solid var(--border);overflow:hidden}.team-absences-header-row{display:flex;border-bottom:2px solid var(--border);background:var(--beige);min-height:32px;position:relative}.team-absences-resource-col{width:180px;flex-shrink:0;border-right:1px solid var(--border);padding:0 12px;display:flex;align-items:center}.team-absences-track-col{flex:1;position:relative;min-height:46px}.team-absences-week-label{position:absolute;top:8px;transform:translate(-50%);font-size:10px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.team-absences-today-header{position:absolute;top:0;bottom:0;width:2px;background:var(--orange);opacity:.5;pointer-events:none}.team-absences-row{display:flex;align-items:center;border-bottom:1px solid rgba(20,33,54,.05);min-height:46px}.team-absences-row:last-child{border-bottom:none}.team-absences-row:hover{background:#fafaf8}.team-absences-resource-name{font-size:13px;font-weight:500;color:var(--blue-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-absences-today-track{position:absolute;top:0;bottom:0;width:2px;background:var(--orange);opacity:.4;pointer-events:none;z-index:1}.team-absence-band{cursor:default!important}.team-absence-band:hover{opacity:1}
