:root{--sidebar-width: 360px;--bg: #f5f7fa;--bg-strong: #e8edf4;--panel: #ffffff;--ink: #111827;--muted: #4b5563;--line: #d1d9e6;--accent: #0369a1;--accent-2: #0284c7;--danger: #dc2626;--weekend: #f2f4f7;--sidebar-grad-a: #0f172a;--sidebar-grad-b: #1f2937}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;height:100%}body{font-family:IBM Plex Sans,sans-serif;background:radial-gradient(circle at top right,#dbeafe 0%,var(--bg) 38%,#eef2ff 100%);color:var(--ink)}.login-page{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at top right,#dbeafe 0%,var(--bg) 38%,#eef2ff 100%);padding:20px}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:40px 36px;width:min(400px,100%);box-shadow:0 4px 24px #0000000f;display:flex;flex-direction:column;gap:20px}.login-brand{display:flex;flex-direction:column;align-items:center;gap:8px}.login-logo{width:64px;height:64px;object-fit:contain}.login-title{font-family:Space Grotesk,sans-serif;font-size:22px;font-weight:700;color:var(--ink);margin:0}.login-subtitle,.login-loading{text-align:center;font-size:14px;color:var(--muted);margin:0}.login-form{display:flex;flex-direction:column;gap:14px}.login-field{display:flex;flex-direction:column;gap:4px}.login-label{font-size:13px;font-weight:500;color:var(--ink)}.login-error{font-size:13px;color:var(--danger);margin:0;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px}.login-submit{width:100%;padding:10px;font-size:14px;font-weight:600;border:none;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;transition:background .12s}.login-submit:hover{background:#0d6b63}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-quick-access{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.login-quick-btn{width:100%;padding:8px 12px;font-size:13px;font-weight:500;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);cursor:pointer;transition:background .12s}.login-quick-btn:hover{background:#e2e8f0}.login-quick-btn:disabled{opacity:.5;cursor:not-allowed}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh}.sidebar-layout{display:grid;grid-template-columns:78px 1fr;min-height:100vh;width:var(--sidebar-width);position:sticky;top:0}.sidebar-rail{background:linear-gradient(180deg,#e3f2ff,#cde8ff);border-right:1px solid #bfd4eb;padding:12px 7px;display:flex;flex-direction:column;align-items:center;gap:11px}.rail-toggle{display:none;border:1px solid rgba(148,163,184,.45);background:#ffffffd1;color:#1e293b;width:38px;height:38px;border-radius:999px;font-size:19px;line-height:1;cursor:pointer;align-items:center;justify-content:center;margin-top:auto;box-shadow:0 4px 12px #0f172a24}.rail-brand{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#ffffffb3;border:1px solid rgba(148,163,184,.26);text-decoration:none;color:inherit}.rail-logo{width:26px;height:26px;object-fit:contain}.rail-menu{display:flex;flex-direction:column;gap:8px;width:100%;flex:1 1 auto;min-height:0}.rail-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-height:62px;border-radius:12px;text-decoration:none;color:#334155;transition:all .16s ease;padding:8px 5px}.rail-item .rail-icon{width:20px;height:20px;display:inline-flex}.rail-item .rail-icon svg{width:100%;height:100%}.rail-label{font-size:10px;font-weight:700;text-align:center;line-height:1.15}.rail-item:hover,.rail-item.active{background:#0369a11f;color:#0f172a}.rail-item.is-disabled{opacity:.48;pointer-events:none}.sidebar{background:radial-gradient(circle at 100% 0%,rgba(56,189,248,.2),transparent 34%),linear-gradient(160deg,#0f1a34,#12294a 46%,#163862);color:#f8fafc;padding:18px 14px;height:100%;min-height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.sidebar-backdrop{display:none}.brand{font-family:Space Grotesk,sans-serif;font-weight:700;letter-spacing:.02em;font-size:20px;margin-bottom:20px}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.sidebar-mobile-close{display:none;border:1px solid rgba(203,213,225,.55);background:#ffffffe6;color:#0f172a;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:700;cursor:pointer}.brand-text{display:inline-block}.menu-notification-badge{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:20px;border-radius:999px;padding:0 7px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;line-height:1}.menu-item:hover,.menu-item.active{background:#f8fafc24;color:#fff}.menu-item.disabled{color:#cbd5e185;cursor:not-allowed;pointer-events:none}.sidebar-top-links{display:grid;gap:6px}.sidebar-top-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:#dbe7f4;text-decoration:none;transition:all .16s ease;min-height:38px}.sidebar-top-item .menu-notification-badge{margin-left:auto}.sidebar-top-item:hover,.sidebar-top-item.active{background:#94a3b824;color:#fff}.sidebar-top-item.is-muted{opacity:.78;cursor:default}.sidebar-divider{border-top:1px solid rgba(148,163,184,.24);margin:2px 0}.sidebar-section-title{font-size:14px;font-weight:700;color:#f1f5f9;margin-bottom:8px}.sidebar-tree-group{display:grid;gap:8px}.sidebar-tree-card{border:1px solid rgba(148,163,184,.24);border-radius:12px;background:#0f172a29;padding:9px}.sidebar-tree-header{display:flex;align-items:center;justify-content:space-between;color:#f8fafc;font-weight:700;font-size:15px;margin-bottom:8px}.tree-add{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#94a3b82e;color:#e2e8f0;font-size:18px;line-height:1}.sidebar-tree-children{display:grid;gap:6px}.sidebar-tree-item{display:flex;align-items:center;gap:9px;color:#dbe7f4;text-decoration:none;border-radius:8px;padding:7px 8px;font-size:15px;min-height:34px;transition:all .16s ease}.sidebar-tree-item:hover,.sidebar-tree-item.active{background:#94a3b824;color:#fff}.sidebar-tree-item.is-disabled{opacity:.5;pointer-events:none}.sidebar-tree-item.is-placeholder{opacity:.78}.sidebar-inline-icon{width:16px;height:16px;display:inline-flex;flex:0 0 16px}.sidebar-inline-icon svg{width:100%;height:100%}.sidebar-profile-card{margin-top:auto}.main{padding:28px;overflow:hidden;min-width:0}.page-title{font-family:Space Grotesk,sans-serif;margin:0 0 16px;font-size:30px}.page-subtitle{color:var(--muted);margin-bottom:20px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 8px 20px #0f172a0a}.panel+.panel{margin-top:16px}.toolbar-panel{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.pool-banner{background:radial-gradient(circle at 100% 0%,rgba(56,189,248,.2),transparent 34%),linear-gradient(160deg,#0f1a34,#12294a 46%,#163862);color:#f8fafc;border-radius:10px;padding:20px 24px;margin-bottom:16px;cursor:pointer;transition:box-shadow .15s;box-shadow:0 2px 12px #0f1a344d}.pool-banner:hover{box-shadow:0 4px 20px #0f1a3473}.pool-banner-summary{display:flex;align-items:center;justify-content:space-between;gap:16px}.pool-banner-info{display:flex;flex-direction:column;gap:8px}.pool-banner-title{font-family:var(--font-display);font-size:1.1rem;font-weight:700;letter-spacing:.02em;color:#fff}.pool-banner-stats{display:flex;gap:24px;flex-wrap:wrap}.pool-stat{display:flex;flex-direction:column;gap:2px}.pool-stat-value{font-family:var(--font-display);font-size:1.5rem;font-weight:700;line-height:1}.pool-stat-amount{font-size:.85rem;color:#fff;opacity:.96}.pool-stat-label{font-size:.75rem;color:#fff;opacity:.9;text-transform:uppercase;letter-spacing:.05em}.pool-banner-toggle,.pool-banner-edit{background:#fff3!important;color:#fff!important;border:1px solid rgba(255,255,255,.3)!important;white-space:nowrap;flex-shrink:0}.pool-banner-toggle:hover,.pool-banner-edit:hover{background:#ffffff4d!important}.pool-banner-actions{display:flex;gap:8px;align-items:center}.pool-credits-list{margin-top:16px;border-top:1px solid rgba(255,255,255,.25);padding-top:16px;display:flex;flex-direction:column;gap:10px}.pool-credit-row{display:flex;align-items:center;gap:16px;background:#ffffff1a;border-radius:6px;padding:10px 14px;cursor:pointer}.pool-credit-row.is-disabled{opacity:.7;cursor:default}.pool-credit-edit-btn{flex-shrink:0;min-width:96px}.pool-credit-source{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.pool-credit-client{font-weight:600;font-size:.9rem;color:#fff}.pool-credit-detail{font-size:.8rem;color:#fff;opacity:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pool-credit-hours{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.pool-credit-hours-main,.pool-credit-hours-amount{display:flex;align-items:baseline;gap:4px}.pool-credit-remaining{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:#fff}.pool-credit-euro{font-size:.92rem;font-weight:700;color:#fff}.pool-credit-of{font-size:.8rem;color:#fff;opacity:.8}.pool-credit-used{font-size:.8rem;color:#fff;opacity:.9;flex-shrink:0}@media(max-width:640px){.pool-banner-summary,.pool-credit-row{flex-wrap:wrap}}.pool-kpi-banner{display:flex;align-items:stretch;background:radial-gradient(circle at 100% 0%,rgba(56,189,248,.18),transparent 40%),linear-gradient(160deg,#0f1a34,#12294a,#163862);border-radius:12px;padding:0;margin-bottom:20px;box-shadow:0 2px 14px #0f1a3447;overflow:hidden}.pool-kpi-stat{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:24px 16px;text-align:center}.pool-kpi-divider{width:1px;background:#ffffff26;margin:16px 0;flex-shrink:0}.pool-kpi-value{font-family:var(--font-display);font-size:2rem;font-weight:700;line-height:1;color:#fff}.pool-kpi-money{font-size:.9rem;font-weight:500;color:#fff;opacity:.85}.pool-kpi-label{font-size:.72rem;color:#fff;opacity:.7;text-transform:uppercase;letter-spacing:.07em;margin-top:2px}.pool-kpi-available .pool-kpi-value{color:#7dd3fc}.pool-kpi-credited .pool-kpi-value{color:#86efac}.pool-kpi-withdrawn .pool-kpi-value{color:#fcd34d}.pool-kpi-negative .pool-kpi-value{color:#f87171}.pool-kpi-negative .pool-kpi-money{color:#fca5a5;opacity:1}.pool-cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:820px){.pool-cards-grid{grid-template-columns:1fr}}.pool-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.pool-card-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;min-height:52px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.pool-card-title{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#374151}.pool-card-body{display:flex;flex-direction:column;gap:0;flex:1}.pool-card-body>.meta-text{padding:16px}.pool-movement-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #f1f5f9;flex-wrap:wrap}.pool-movement-row:last-child{border-bottom:none}.pool-movement-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.pool-movement-title{font-size:.88rem;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pool-movement-sub{font-size:.78rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pool-movement-user{font-size:.78rem;color:#4b5563;font-weight:500}.pool-movement-date{font-size:.73rem;color:#9ca3af;margin-top:1px}.pool-movement-amounts{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.pool-movement-main{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:#0f766e}.pool-movement-amounts--out .pool-movement-main{color:#dc2626}.pool-movement-money{font-size:.82rem;font-weight:500;color:#6b7280}.pool-movement-residual{font-size:.73rem;color:#9ca3af;font-style:italic}.pool-movement-residual--negative{color:#ef4444;font-style:normal;font-weight:600}.pool-movement-edit-btn{flex-shrink:0}.pool-movement-delete-btn{flex-shrink:0;width:28px;height:28px;border-radius:6px;border:1.5px solid #fca5a5;background:#fff;color:#ef4444;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.pool-movement-delete-btn:hover{background:#fef2f2;border-color:#ef4444}.pool-movement-delete-confirm{display:flex;gap:4px;flex-shrink:0}.pool-movement-confirm-btn{width:28px;height:28px;border-radius:6px;border:1.5px solid;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:700;transition:background .12s}.pool-movement-confirm-ok{border-color:#86efac;background:#f0fdf4;color:#16a34a}.pool-movement-confirm-ok:hover:not(:disabled){background:#dcfce7}.pool-movement-confirm-cancel{border-color:#fca5a5;background:#fff;color:#ef4444}.pool-movement-confirm-cancel:hover:not(:disabled){background:#fef2f2}.pool-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.pool-modal{background:#fff;border:.5px solid #D0D3D7;border-radius:12px;width:min(420px,100%);box-shadow:0 8px 32px #00000024;display:flex;flex-direction:column;overflow:hidden}.pool-modal-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:20px 28px 16px;border-bottom:.5px solid #E8EAED}.pool-modal-title{font-family:var(--font-display);font-size:18px;font-weight:500;color:#1a1a1a;margin:0}.pool-modal-body{padding:20px 28px;display:flex;flex-direction:column;gap:14px}.pool-modal-footer{display:flex;gap:8px;padding:14px 28px 20px;border-top:.5px solid #E8EAED}.pool-modal .field-label{font-size:12px;color:#aaacb0}.pool-modal .input{border:.5px solid #D0D3D7;border-radius:8px;padding:8px 12px;font-size:14px;color:#1a1a1a;background:#fff;width:100%;box-sizing:border-box}.pool-modal .btn:not(.primary){background:#fff;border:.5px solid #AAACB0;border-radius:8px;color:#444}.pool-modal .btn.primary{background:#77a8c8;border:none;border-radius:8px;padding:8px 24px;font-size:14px;font-weight:500;color:#fff}.pool-modal .btn.primary:hover{background:#6898bb}.field-asterisk{color:#e53e3e;margin-left:2px;font-size:11px;vertical-align:super;line-height:1}.pool-inline-form{width:100%;background:#f8fafc;border-top:1px solid #e2e8f0;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.pool-inline-form--edit{border-top:1px dashed #cbd5e1;background:#f0f9ff}.table-wrap{width:100%;overflow-x:auto}.table{width:100%;border-collapse:collapse;min-width:680px}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;padding:10px;font-size:14px}.table .meta-text{margin:0}.expandable-row td{vertical-align:middle}.expandable-row.is-expanded>td{background:#f8fafc}.row-expander{border:0;background:transparent;color:var(--ink);display:inline-flex;align-items:center;gap:8px;font:inherit;padding:0;cursor:pointer}.row-expander:hover{color:#0369a1}.row-expander:focus-visible{outline:2px solid #0369a1;outline-offset:2px;border-radius:6px}.row-expander-icon{color:#64748b;width:12px;text-align:center;line-height:1}.expanded-row td{background:#f8fafc;border-bottom:1px solid #dbe3ee}.expanded-grid{display:grid;gap:12px;padding:6px 4px}.expanded-grid-users{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.expanded-grid-clients{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.expanded-item{display:flex;flex-direction:column;gap:6px}.expanded-item-label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#64748b}.expanded-item strong{font-size:14px}.expanded-item-note{min-width:260px}.expanded-note{min-height:78px;resize:vertical}.project-status-list{display:flex;gap:8px;flex-wrap:wrap}.badge{display:inline-block;padding:3px 6px;border-radius:999px;font-size:11px;font-weight:600}.badge.open,.badge.active{border:1.5px solid #a7f3d0;color:#065f46;background:#d1fae5}.badge.closed,.badge.inactive{border:1.5px solid #fca5a5;color:#7f1d1d;background:#fee2e2}.badge.on-hold{border:1.5px solid #fcd34d;color:#854d0e;background:#fef3c7}.task-title-inline{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.internal-task-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;border:1px solid #d6deea;background:#f8fafc;color:#526277;font-size:10px;font-weight:600;letter-spacing:.02em;line-height:1.2;white-space:nowrap}.inline-actions{display:flex;gap:8px}.toolbar-actions-end{margin-left:auto;justify-content:flex-end}.users-toolbar-panel .filters{flex:1 1 auto;margin-bottom:0}.btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 10px;cursor:pointer;transition:all .12s ease;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--ink)}.btn.primary{border-color:var(--accent);background:var(--accent);color:#fff}.btn.danger{border-color:#fecaca;background:#fef2f2;color:var(--danger)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn.btn-xs{padding:4px 8px;font-size:12px;min-height:28px}.btn.btn-sm{padding:6px 12px;font-size:13px;min-height:32px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.toolbar-panel .filters{margin-bottom:0}.select,.input{border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-width:180px;background:#fff}.sidebar .panel{background:#94a3b81f;border-color:#94a3b847;box-shadow:none}.auth-panel{margin-bottom:16px}.auth-panel h3{margin:0 0 8px;font-size:16px}.auth-panel p{margin:0 0 10px;color:#cbd5e1;font-size:13px}.sidebar .btn{color:#0f172a}.sidebar .btn.primary{color:#fff}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.kpi-card{border:1px solid var(--line);border-radius:10px;padding:12px;background:linear-gradient(145deg,#f8fafc,#eef2ff)}.kpi-label{font-size:12px;color:var(--muted)}.kpi-value{display:block;margin-top:6px;font-size:22px;font-family:Space Grotesk,sans-serif}.dashboard-page,.analytics-page{display:grid;gap:16px}.dashboard-page .page-title,.analytics-page .page-title{margin-bottom:0}.admin-kpi-section,.admin-ops-section{display:grid;gap:12px;border-left:4px solid #bfdbfe;background:linear-gradient(180deg,#fff,#f8fbff)}.admin-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-section-head h3,.admin-section-head .meta-text{margin:0}.admin-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.admin-kpi-card{display:grid;gap:8px;border:1px solid #d5dfec;border-radius:12px;padding:14px;text-decoration:none;color:inherit;background:linear-gradient(150deg,#fbfdff,#f1f5f9);transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.admin-kpi-card:hover{border-color:#93c5fd;box-shadow:0 10px 22px #2563eb1f;transform:translateY(-1px)}.admin-kpi-label{color:#475569;font-size:13px}.admin-kpi-value{font-family:Space Grotesk,sans-serif;font-size:28px;line-height:1;color:#0f172a}.admin-kpi-helper{color:#64748b;font-size:12px}.admin-sortable-table th,.admin-sortable-table td{vertical-align:top}.admin-sortable-table thead th{background:#f8fbff}.admin-sort-trigger{border:0;background:transparent;padding:0;color:#334155;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.admin-sort-trigger:hover{color:#1d4ed8}.dashboard-explanations-section{display:grid;gap:12px;border-left:4px solid #c7d2fe;background:linear-gradient(180deg,#fff,#f8faff)}.dashboard-explanations-section h3{margin:0}.dashboard-explanations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.dashboard-explanation-card{border:1px solid #dbe3ee;border-radius:10px;padding:10px 12px;background:#fff;box-shadow:0 6px 14px #0f172a0d}.dashboard-explanation-card p{margin:0;color:#334155;line-height:1.45;font-size:13px}.dashboard-architecture-block{border:1px solid #dbe3ee;border-radius:12px;padding:12px;background:linear-gradient(180deg,#fff,#f8fbff)}.dashboard-architecture-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:10px}.dashboard-architecture-head h4{margin:0;font-size:15px;color:#0f172a}.dashboard-architecture-head .meta-text{margin:0}.dashboard-architecture-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.dashboard-architecture-card{border:1px solid #dbe7f3;border-radius:10px;padding:10px 12px;background:#fff;box-shadow:0 4px 10px #0f172a0a}.dashboard-architecture-card h5{margin:0 0 8px;font-size:14px;color:#0f172a}.dashboard-architecture-card ul{margin:0;padding-left:18px;display:grid;gap:6px}.dashboard-architecture-card li{font-size:13px;color:#475569;line-height:1.4}.project-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.project-metric-card{border:1px solid var(--line);border-radius:10px;padding:12px;background:linear-gradient(145deg,#fbfdff,#f8fafc)}.project-metric-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.project-metric-head strong{font-size:14px}.metric-row{display:grid;grid-template-columns:96px 1fr auto;gap:8px;align-items:center;margin-bottom:8px}.metric-label,.metric-value{font-size:12px;color:var(--muted)}.metric-track{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden}.metric-fill{display:block;height:100%;border-radius:999px}.metric-fill.estimated{background:#0ea5e9}.metric-fill.spent{background:#2563eb}.metric-fill.budget{background:#14b8a6}.metric-fill.costs{background:#e879f9}.metric-fill.cost-over{background:#ef4444}.variance-chip{border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:4px}.variance-title{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.variance-chip strong{font-size:18px;line-height:1.1}.variance-chip span{font-size:12px}.variance-chip.green{background:#ecfdf5;border-color:#86efac}.variance-chip.green strong,.variance-chip.green span:last-child{color:#166534}.variance-chip.yellow{background:#fef9c3;border-color:#fde047}.variance-chip.yellow strong,.variance-chip.yellow span:last-child{color:#854d0e}.variance-chip.red{background:#fef2f2;border-color:#fca5a5}.variance-chip.red strong,.variance-chip.red span:last-child{color:#b91c1c}.wo-global-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.wo-global-kpi{background:linear-gradient(145deg,#fbfdff,#f8fafc);border:1px solid var(--line);border-radius:10px;padding:16px;text-align:center}.wo-global-kpi .kpi-value{font-size:22px;font-weight:700;color:#1a1a1a;line-height:1.2}.wo-global-kpi .kpi-label{font-size:11px;color:#aaacb0;text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.wo-global-bars{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.wo-global-bar-card{background:linear-gradient(145deg,#fbfdff,#f8fafc);border:1px solid var(--line);border-radius:10px;padding:16px}.wo-global-bar-card h4{font-size:13px;font-weight:600;margin:0 0 12px;color:#1a1a1a}.wo-global-variance{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.wo-project-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px}.wo-project-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:14px}.wo-project-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-bottom:10px;border-bottom:1px solid #F0F0F0}.wo-project-card-head strong{font-size:15px;color:#1a1a1a}.wo-project-card-head .utilization{font-size:12px;color:#aaacb0;font-weight:500}.wo-card-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#aaacb0;margin:0}.wo-card-variance{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media(max-width:768px){.wo-global-bars,.wo-project-cards,.wo-card-variance{grid-template-columns:1fr}}.analytics-controls .filters{margin-bottom:0}.analytics-toolbar-panel .meta-text{margin:0}.analytics-toolbar-panel{border-left:4px solid #bae6fd;background:linear-gradient(180deg,#fff,#f2fffb)}.analytics-chart-panel{padding-bottom:10px;border-left:4px solid #bfdbfe;background:linear-gradient(180deg,#fff,#f8fbff)}.analytics-chart-head{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.analytics-chart-head h3{margin:0}.analytics-legend{display:flex;flex-wrap:wrap;gap:8px}.analytics-legend-chip{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:3px 8px;font-size:12px;color:var(--muted);background:#f8fafc}.analytics-legend-dot{width:8px;height:8px;border-radius:50%}.analytics-chart-wrap{overflow-x:auto;padding-bottom:4px}.analytics-chart-svg{width:100%;min-width:900px;height:auto}.analytics-axis-label{fill:#64748b;font-size:11px;font-family:IBM Plex Sans,sans-serif}.analytics-table-wrap{max-height:420px}.analytics-table tbody td{font-variant-numeric:tabular-nums}.analytics-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.analytics-section-head h3{margin:0}.analytics-time-kpis-panel{display:grid;gap:12px;border-left:4px solid #86efac;background:linear-gradient(180deg,#fff,#f5fff8)}.analytics-time-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px}.analytics-load-card{border:1px solid #dbe3ee;border-radius:14px;background:#fff;padding:12px}.analytics-load-card h3{margin:0 0 10px;font-size:15px}.analytics-load-card .meta-text{margin:8px 0 0}.analytics-load-card.green{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.analytics-load-card.yellow{color:#a16207;background:#fefce8;border-color:#fde68a}.analytics-load-card.red{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.analytics-load-donut-wrap{position:relative;display:grid;place-items:center;min-height:130px}.analytics-load-donut{width:110px;height:110px}.analytics-load-track,.analytics-load-fill{fill:none;stroke-width:10}.analytics-load-track{stroke:#dbe7f2}.analytics-load-fill{stroke:currentcolor;stroke-linecap:round;transform:rotate(-90deg);transform-origin:55px 55px}.analytics-load-value{position:absolute;display:grid;gap:2px;text-align:center}.analytics-load-value strong{font-size:24px;line-height:1}.analytics-load-value span{font-size:11px;color:#64748b}.analytics-general-panel{display:grid;gap:10px;border-left:4px solid #c4b5fd;background:linear-gradient(180deg,#fff,#fbf8ff)}.analytics-divider{border-top:1px solid #dbe3ee;padding-top:10px}.analytics-divider h3{margin:0}.analytics-controls-row{display:grid;grid-template-columns:repeat(2,minmax(220px,320px));gap:10px}.analytics-finance-kpi-grid{margin-top:12px}.analytics-finance-kpi-grid .kpi-card{border-color:#dbe7f3;background:linear-gradient(160deg,#fff,#f8fbff);box-shadow:0 6px 14px #0f172a0a}.analytics-trend-grid{margin-top:12px;display:grid;grid-template-columns:1fr;gap:12px}.analytics-user-admin-panel{margin-top:12px;border-left:4px solid #fde68a;background:linear-gradient(180deg,#fff,#fffdf5)}.analytics-inline-filter{min-width:220px}.analytics-user-table tbody td{font-variant-numeric:tabular-nums}.analytics-user-table thead th{background:#f8fbff}.analytics-load-pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.analytics-load-pill.green{color:#166534;background:#dcfce7}.analytics-load-pill.yellow{color:#a16207;background:#fef3c7}.analytics-load-pill.red{color:#b91c1c;background:#fee2e2}@media(min-width:1460px){.analytics-trend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-trend-grid>:nth-child(3){grid-column:1 / -1}}.error-text{margin:8px 0 12px;color:var(--danger);font-weight:600}.warning-text{margin:8px 0 12px;color:#b8860b;font-weight:600}.meta-text{margin:10px 2px 0;color:var(--muted);font-size:13px}.notifications-page{display:flex;flex-direction:column;gap:16px}.notifications-page .page-title{margin-bottom:0}.notifications-section .meta-text{margin:0}.fb-page,.notif-page{display:grid;gap:16px}.fb-summary-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.fb-summary-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;border-radius:14px;border:2px solid var(--line, #d1d9e6);background:var(--panel, #fff);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.fb-summary-card:hover{box-shadow:0 2px 10px #0000000f}.fb-summary-card.is-active{border-color:var(--fb-card-border);background:var(--fb-card-bg);box-shadow:0 4px 16px #00000014}.fb-summary-icon{display:flex}.fb-summary-count{font-family:Space Grotesk,sans-serif;font-size:32px;font-weight:800;line-height:1;color:var(--ink, #111827)}.fb-summary-card.is-active .fb-summary-count{color:var(--fb-card-color)}.fb-summary-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.fb-summary-card.is-active .fb-summary-label{color:var(--fb-card-color)}.fb-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.fb-toolbar-title{font-family:Space Grotesk,sans-serif;font-size:1.05rem;font-weight:700;color:var(--ink, #111827)}.fb-search-bar{display:flex;gap:10px;padding:8px 14px}.fb-search-input{flex:1;min-width:0;font-size:13px}.fb-list{display:grid;gap:10px}.fb-empty{text-align:center;padding:32px 16px}.fb-card{display:flex;border-radius:12px;border:1px solid var(--line, #d1d9e6);background:var(--panel, #fff);overflow:hidden;transition:box-shadow .15s}.fb-card:hover{box-shadow:0 2px 12px #0000000f}.fb-card-accent{width:4px;flex-shrink:0}.fb-card-body{flex:1;min-width:0;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.fb-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.fb-card-task{display:flex;flex-direction:column;gap:2px;min-width:0}.fb-card-task strong{font-size:.92rem;color:var(--ink, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fb-card-context{font-size:.78rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fb-card-meta{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0}.fb-card-who{font-size:.82rem;font-weight:600;color:var(--ink, #111827)}.fb-card-when{font-size:.72rem;color:#94a3b8}.fb-card-hours{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:var(--bg, #f5f7fa);border-radius:8px}.fb-card-date{font-size:.8rem;color:#64748b;text-transform:capitalize;white-space:nowrap}.fb-card-hours-pills{display:flex;align-items:center;gap:8px}.fb-hours-pill{display:flex;align-items:baseline;gap:4px}.fb-hours-pill small{font-size:.7rem;color:#94a3b8;font-weight:600}.fb-hours-pill strong{font-size:.95rem;color:var(--ink, #111827)}.fb-hours-pill.is-changed strong{color:#ea580c}.fb-hours-arrow{color:#94a3b8;font-size:.85rem;font-weight:700}.fb-card-note{display:flex;gap:8px;padding:10px 12px;background:#fefce8;border-radius:8px;border:1px solid #fde68a}.fb-card-note p{margin:0;font-size:.84rem;color:var(--ink, #111827);line-height:1.5}.templates-page{display:grid;gap:20px}.templates-layout{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:18px;align-items:start}.templates-sidebar{display:grid;gap:14px;position:sticky;top:20px}.templates-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.templates-sidebar-head h2,.templates-detail-hero h2,.templates-folder-card h3{margin:0;color:#0f172a}.templates-list{display:grid;gap:10px}.templates-list-item{border:1px solid #dbe4ee;border-radius:18px;background:#fff;padding:16px;display:grid;gap:8px;text-align:left;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.templates-list-item:hover{transform:translateY(-1px);box-shadow:0 14px 28px -22px #0f172a59}.templates-list-item.is-active{border-color:#7dd3fc;box-shadow:0 0 0 1px #7dd3fc73;background:#f8fdff}.templates-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.templates-list-head strong{font-size:16px;color:#0f172a}.templates-list-item span{color:#475569}.templates-list-item small{color:#64748b}.templates-detail{display:grid;gap:18px}.templates-detail-hero{display:grid;gap:16px}.templates-detail-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.templates-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.templates-kpi-card{border:1px solid #dbe4ee;border-radius:16px;background:#f8fafc;padding:14px 16px;display:grid;gap:4px}.templates-kpi-card span{color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.templates-kpi-card strong{font-size:26px;color:#0f172a}.templates-folder-grid,.templates-folder-card{display:grid;gap:16px}.templates-folder-card.is-nested{border-style:dashed;border-color:#cbd5e1;background:#fbfdff}.templates-folder-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.templates-folder-eyebrow{display:inline-flex;margin-bottom:6px;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.templates-folder-note{margin-top:8px}.templates-folder-count{border-radius:999px;border:1px solid #dbe4ee;background:#f8fafc;color:#334155;padding:7px 11px;font-size:12px;font-weight:700;white-space:nowrap}.templates-task-list,.templates-subfolder-list{display:grid;gap:12px}.templates-task-card{border:1px solid #e2e8f0;border-radius:16px;background:#fff;padding:14px 16px;display:grid;gap:10px}.templates-task-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.templates-task-head strong{color:#0f172a;font-size:15px}.templates-task-days{color:#0369a1;font-weight:800;white-space:nowrap}.templates-role-list{display:flex;flex-wrap:wrap;gap:8px}.templates-role-pill{border-radius:999px;border:1px solid #dbe4ee;background:#f8fafc;color:#334155;padding:6px 10px;font-size:12px;font-weight:700}@media(max-width:1080px){.templates-layout,.templates-kpis{grid-template-columns:1fr}.templates-sidebar{position:static}}.tpl-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.tpl-editor-head h3{margin:0}.tpl-editor-actions{display:flex;gap:8px}.tpl-stats{display:flex;gap:20px;padding:10px 0;border-bottom:1px solid #e2e8f0}.tpl-stat{display:flex;align-items:center;gap:5px;font-size:13px;color:#64748b}.tpl-stat strong{color:#0f172a;font-size:14px}.tpl-stat small{font-size:12px}.tpl-tree,.tpl-node{display:flex;flex-direction:column}.tpl-row{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;border-radius:10px;transition:background .1s ease;-webkit-user-select:none;user-select:none}.tpl-row:hover{background:#f1f5f9}.tpl-node.is-sel>.tpl-row{background:#e9f1f6}.tpl-node.depth-0{margin-left:0}.tpl-node.depth-1{margin-left:24px}.tpl-node.depth-2{margin-left:48px}.tpl-node.depth-3{margin-left:64px}.tpl-node.depth-4{margin-left:80px}.tpl-chevron{width:20px;text-align:center;font-size:14px;color:#94a3b8;flex-shrink:0}.tpl-dot{width:14px;height:14px;border-radius:50%;border:2px solid #cbd5e1;flex-shrink:0;box-sizing:border-box}.tpl-dot.active{border-color:#0578a6;background:#0578a6;box-shadow:inset 0 0 0 3px #fff}.tpl-folder-ico{width:16px;height:14px;background:#94a3b8;border-radius:2px 2px 3px 3px;flex-shrink:0;position:relative}.tpl-folder-ico:before{content:"";position:absolute;top:-4px;left:0;width:8px;height:4px;background:#94a3b8;border-radius:2px 2px 0 0}.tpl-row-title{flex:1;font-size:14px;font-weight:500;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tpl-node.is-folder>.tpl-row>.tpl-row-title{font-weight:600;font-size:15px}.tpl-row-badge{font-size:11px;font-weight:700;color:#64748b;letter-spacing:.04em;white-space:nowrap;padding:3px 10px;background:#e9f1f6;border-radius:999px}.tpl-row-days{font-size:13px;font-weight:700;color:#64748b;white-space:nowrap}.tpl-row-acts{display:flex;gap:2px;margin-left:auto}.tpl-row-acts button{background:transparent;border:1px solid transparent;cursor:pointer;font-size:12px;padding:3px 8px;border-radius:6px;transition:all .1s;color:#64748b;font-weight:600}.tpl-row-acts button:hover{background:#e2e8f0;border-color:#d1d9e6;color:#334155}.tpl-row-acts .act-danger{color:#dc2626}.tpl-row-acts .act-danger:hover{background:#fecaca;border-color:#fca5a5}.tpl-sel-panel{padding:8px 12px 12px 46px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#e9f1f6;border-radius:0 0 10px 10px;margin-top:-4px}.tpl-sel-meta{display:flex;gap:12px;flex-wrap:wrap}.tpl-meta-chip{font-size:12px;color:#475569}.tpl-sel-actions{display:flex;align-items:center;gap:12px}.tpl-badge-editing{font-size:10px;font-weight:800;letter-spacing:.06em;padding:3px 8px;border-radius:4px;background:#dcfce7;color:#15803d}.tpl-link{background:none;border:none;font-size:12px;font-weight:700;color:#475569;cursor:pointer;letter-spacing:.02em}.tpl-link:hover{color:#0f172a}.tpl-link.danger{color:#dc2626}.tpl-link.danger:hover{color:#991b1b}.tpl-det-form{padding:12px 12px 12px 46px;display:flex;flex-direction:column;gap:8px;background:#f0f6fa;border-radius:0 0 10px 10px;border-top:1px dashed #c4d0dc}.tpl-det-pair{display:flex;gap:8px}.tpl-det-field{display:flex;flex-direction:column;gap:4px;flex:1}.tpl-det-field.full{width:100%}.tpl-det-field span{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.tpl-det-close{align-self:flex-start;background:none;border:1px solid #d1d9e6;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600;color:#475569;cursor:pointer;margin-top:4px}.tpl-det-close:hover{background:#e2e8f0}.tpl-children{border-left:2px solid #e2e8f0;margin-left:22px;padding-left:0}.tpl-add-row{display:flex;gap:8px;padding:8px 12px}.tpl-add-btn{background:none;border:1px dashed #cbd5e1;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600;color:#64748b;cursor:pointer;transition:all .12s ease}.tpl-add-btn:hover{border-color:#0578a6;color:#0578a6;background:#f0f9ff}.tpl-add-btn.sub{font-size:12px}.tpl-new-section{display:flex;align-items:center;justify-content:center;gap:8px;margin:16px auto 0;padding:10px 28px;border:2px dashed #cbd5e1;border-radius:12px;background:transparent;font-size:14px;font-weight:600;color:#64748b;cursor:pointer;transition:all .14s ease}.tpl-new-section:hover{border-color:#0578a6;color:#0578a6;background:#f0f9ff}@media(max-width:1080px){.tpl-node.depth-1{margin-left:16px}.tpl-node.depth-2{margin-left:32px}.tpl-node.depth-3{margin-left:44px}.tpl-node.depth-4{margin-left:56px}}@media(max-width:1080px){.fb-card-top{flex-direction:column;gap:6px}.fb-card-meta{align-items:flex-start;flex-direction:row;gap:8px}.fb-card-hours{flex-direction:column;align-items:flex-start;gap:6px}}@media(max-width:760px){.fb-summary-row{grid-template-columns:1fr}.fb-summary-card{flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 16px}.fb-summary-count{font-size:24px}}.editor-panel h3{margin-top:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field-wide{grid-column:1 / -1}.field-label{font-size:12px;color:var(--muted);font-weight:600}.field-label.required:after{content:" *";color:#e53e3e}.radio-group{display:inline-flex;flex-wrap:wrap;gap:12px}.radio-option{display:inline-flex;align-items:center;gap:6px;color:#334155;font-size:14px}.radio-option input{margin:0}fieldset.field{border:1px solid var(--line);border-radius:8px;padding:10px}fieldset.field .field-label{padding:0 4px}.permission-load-banner.success{border:1px solid #86efac;background:#dcfce7;color:#166534}.permission-load-banner.danger{border:1px solid #fca5a5;background:#fee2e2;color:#991b1b}.permission-day-chip.saturated{border-color:#fca5a5;background:#fee2e2}.permission-day-chip.selected{border-color:#0284c7;box-shadow:0 0 0 1px #0284c733 inset}.permission-day-chip.muted{opacity:.6}.permission-item .meta-text{margin:0}.permission-status.pending{color:#854d0e;background:#fef3c7}.permission-status.approved{color:#166534;background:#dcfce7}.permission-status.rejected{color:#991b1b;background:#fee2e2}@media(max-width:760px){.permission-item{flex-direction:column;align-items:stretch}.permission-item-actions,.permission-admin-actions{justify-items:start;justify-content:flex-start}}.area-users-dropdown{border:1px solid #dbe3ee;border-radius:10px;background:#f8fafc;padding:4px 8px}.area-users-dropdown>summary{cursor:pointer;font-weight:600;color:#0f172a;list-style:none}.area-users-dropdown>summary::-webkit-details-marker{display:none}.area-users-dropdown-content{margin-top:8px}.area-users-list{margin:0;padding-left:18px;display:grid;gap:6px}.area-users-list li{display:grid;gap:2px;color:#334155}.area-users-list li small{color:#64748b}.form-actions{margin-top:8px}.resource-tree-panel{overflow:hidden}.resource-tree-root{display:grid;gap:10px}.resource-node{border:1px solid #dbe3ee;border-radius:10px;background:#fff}.resource-node-client{background:linear-gradient(180deg,#fff,#f8fafc)}.resource-node-project,.resource-node-folder{margin-top:8px}.resource-node-project{background:#f1f5f9}.resource-children{padding:0 10px 10px 26px}.resource-line{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px}.resource-line-client{justify-content:space-between;align-items:center}.resource-line-main{display:inline-flex;align-items:center;gap:8px;min-width:220px;flex:1}.resource-cost-centers-labels{font-size:.72rem;color:#6b7280;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.project-hours-pill{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.project-hours-est{display:inline-flex;align-items:center;font-size:11px;font-weight:600;color:#0369a1;background:#e0f2fe;border:1px solid #bae6fd;border-radius:20px;padding:1px 7px;white-space:nowrap}.project-hours-act{display:inline-flex;align-items:center;font-size:11px;font-weight:600;color:#166534;background:#dcfce7;border:1px solid #bbf7d0;border-radius:20px;padding:1px 7px;white-space:nowrap}.project-hours-act[data-over=true]{color:#991b1b;background:#fee2e2;border-color:#fecaca}.project-hours-planned{display:inline-flex;align-items:center;font-size:11px;font-weight:600;color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:20px;padding:1px 7px;white-space:nowrap}.project-closure-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:140}.project-closure-modal{background:var(--panel);border-radius:12px;box-shadow:0 8px 32px #00000038;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 64px);overflow-y:auto;padding:28px 32px 24px;display:flex;flex-direction:column;gap:20px}.project-closure-title{margin:0;font-size:1.05rem;font-weight:700;color:var(--ink)}.project-closure-summary{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:5px}.project-closure-row{display:flex;justify-content:space-between;font-size:.85rem;color:var(--ink)}.project-closure-deduction{color:var(--muted);font-size:.82rem}.project-closure-total{margin-top:4px;padding-top:8px;border-top:1px solid var(--line);font-weight:600;font-size:.9rem}.project-closure-margin-pct{font-size:.78rem;font-weight:400;color:#0369a1;opacity:.85}.project-closure-hours{display:flex;flex-direction:column;gap:6px}.project-closure-hours-row{display:flex;justify-content:space-between;font-size:.88rem;color:var(--ink)}.project-closure-hours-remaining{font-weight:600;color:#0369a1}.project-closure-pool{display:flex;flex-direction:column;gap:8px}.project-closure-pool-label{font-size:.85rem;font-weight:600;color:var(--ink)}.project-closure-pool-row{display:flex;align-items:center;gap:10px}.project-closure-slider{flex:1;accent-color:var(--accent)}.project-closure-pct-input{width:20px;flex-shrink:0;text-align:center}.project-closure-pool-preview{font-size:.88rem;color:var(--muted);white-space:nowrap}.project-closure-no-pool{font-size:.85rem;color:var(--muted);margin:0}.project-closure-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:4px;border-top:1px solid var(--line)}.resource-client-right{margin-left:auto;display:inline-flex;align-items:center;gap:14px}.resource-client-supervisor{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:220px;color:#334155;line-height:1.15}.resource-supervisor-label{font-size:14px;color:#475569}.resource-supervisor-name{font-size:14px;color:#0f172a}.resource-project-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.resource-icon-btn{min-width:34px;width:34px;height:34px;padding:0;font-size:18px;line-height:1;border:1.8px solid #a8d4ee;background:#e0f0fa;color:#0578a6}.resource-icon-btn:hover{background:#c7e6f7;border-color:#7bbcdd;color:#045a80}.resource-info-btn{font-style:italic;font-family:Georgia,serif;font-weight:700;font-size:16px;background:#e0f0fa;border-color:#a8d4ee;color:#0578a6}.resource-info-btn:hover{background:#c7e6f7;border-color:#7bbcdd;color:#045a80}.wizard-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;background:#00000040;display:flex;justify-content:center;align-items:flex-start;overflow:auto;padding:32px 14px}.wizard-modal{background:#fff;border:.5px solid #D0D3D7;border-radius:12px;width:min(720px,100%);overflow-y:auto;display:flex;flex-direction:column}.wizard-modal-header{padding:20px 24px 0}.wizard-modal-title{margin:0;font-family:var(--font-display);font-size:18px;font-weight:500;color:#1a1a1a}.wizard-modal-body{padding:16px 24px;flex:1}.wizard-modal-footer{padding:12px 24px 20px;display:flex;gap:8px;justify-content:flex-end;border-top:.5px solid #D0D3D7}.wizard-form{grid-template-columns:1fr 1fr}.wizard-error{margin-top:8px}.wizard-project-type-field{grid-column:1 / -1}.wizard-project-type-group{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.wizard-project-type-btn{padding:8px 12px;font-size:13px;font-family:inherit;border:1.5px solid #D0D3D7;border-radius:6px;background:#fff;color:#3a3a3a;cursor:pointer;text-align:center;transition:border-color .15s,background .15s,color .15s;white-space:nowrap}.wizard-project-type-btn:hover:not(:disabled){border-color:#77a8c8;background:#eef5fa}.wizard-project-type-btn.active,.wizard-modal .wizard-project-type-btn.active{border-color:#77a8c8!important;background:#77a8c8!important;color:#fff!important}.wizard-project-type-btn:disabled{opacity:.5;cursor:not-allowed}.wizard-structure-btn{display:inline-flex;align-items:center;gap:6px;grid-column:1 / -1}.wizard-structure-body{max-height:50vh;overflow-y:auto}.wizard-structure-tree{display:flex;flex-direction:column;gap:6px}.wizard-tree-folder{border:1px solid var(--line);border-radius:8px;padding:8px}.wizard-tree-subfolder{margin-left:20px;border:1px solid var(--line);border-radius:6px;padding:6px;margin-top:4px}.wizard-tree-children{margin-left:20px;margin-top:4px;display:flex;flex-direction:column;gap:4px}.wizard-tree-item{display:flex;align-items:center;gap:6px}.wizard-tree-icon{flex-shrink:0;opacity:.5}.wizard-tree-input{flex:1;min-width:0;font-size:.85rem;padding:4px 8px}.wizard-tree-remove{padding:4px 6px!important;min-width:0!important;line-height:1!important;opacity:.5}.wizard-tree-remove:hover{opacity:1;color:var(--danger, #dc2626)}.wizard-tree-add{font-size:.8rem;align-self:flex-start}.wizard-tree-add-actions{display:flex;gap:8px;margin-top:8px}.wizard-step3-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wizard-step3-full{grid-column:1 / -1}.resource-editor-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;background:#00000040;display:flex;justify-content:center;align-items:center;overflow:auto;padding:32px 14px}.resource-editor-drawer{width:min(600px,100%);max-width:100%;background:#fff;border:.5px solid #D0D3D7;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 64px);box-sizing:border-box}.resource-editor-tabs-nav{display:flex;flex-shrink:0;border-bottom:.5px solid #E8EAED;padding:8px 16px 0;gap:4px}.resource-editor-tab-btn{padding:8px 20px;font-size:13px;font-weight:500;color:#6b7280;background:none;border:.5px solid transparent;border-bottom:none;border-radius:8px 8px 0 0;cursor:pointer;transition:color .15s,background .15s}.resource-editor-tab-btn:hover{color:#1a1a1a;background:#f1f5f9}.resource-editor-tab-btn.active{color:#0578a6;font-weight:600;background:#e8f3fb;border-color:#e8eaed;border-bottom-color:#fff}.resource-editor-tab-content{flex:1;overflow-y:auto;overflow-x:hidden}.resource-editor-footer{flex-shrink:0;border-top:.5px solid #E8EAED}.resource-editor-footer-save{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:12px 28px;border-bottom:.5px solid #E8EAED}.resource-editor-footer-save .error-text{flex:1;margin:0}.resource-editor-footer-bottom{display:flex;align-items:flex-start;gap:12px;padding:14px 28px 18px}.resource-editor-footer-bottom .template-save-section{flex:1;min-width:0;margin:0}.resource-editor-footer-delete{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-top:2px}.resource-delete-confirm{max-width:220px;text-align:right}.resource-delete-confirm p{font-size:11px;color:#6b7280;margin:0 0 6px;line-height:1.4}.resource-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:20px 28px 16px;border-bottom:.5px solid #E8EAED}.resource-editor-head h2{margin:0;font-family:var(--font-display);font-size:18px;font-weight:500;color:#1a1a1a}.resource-editor-form.form-grid{grid-template-columns:1fr;padding:20px 28px;gap:16px;max-width:100%;overflow:hidden;box-sizing:border-box}.quick-add-client-title{display:block;font-size:15px;font-weight:600;color:#1a1a1a;font-family:var(--font-display);padding:2px 0}.editor-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-hint{font-size:12px;color:#6b7280;margin:2px 0 4px;line-height:1.4}.field-auto-status{display:flex;align-items:center;gap:8px;padding:6px 0}.pool-credit-section{border-top:1px solid #E8EAED;padding-top:12px}.task-tariff-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}.task-tariff-header{display:flex;gap:10px;padding-bottom:4px;border-bottom:1px solid #E8EAED}.task-tariff-col-label{font-size:11px;font-weight:500;color:#aaacb0;text-transform:uppercase;letter-spacing:.05em;flex:0 0 40%}.task-tariff-col-label:last-child{flex:1}.task-tariff-row{display:flex;align-items:center;gap:10px}.task-tariff-user{font-size:13px;color:#374151;flex:0 0 40%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-tariff-select{flex:1;font-size:13px;min-width:0}.pool-drawer-totals{display:flex;flex-direction:column;gap:8px;background:#f8fafc;border:.5px solid #E8EAED;border-radius:8px;padding:14px 16px}.pool-drawer-total-row{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#374151}.pool-drawer-total-saving strong{color:#0f766e;font-size:15px}.pool-drawer-total-available strong{color:#1e40af;font-size:15px}.pool-drawer-edit-section{display:flex;flex-direction:column;gap:12px;background:#f0f4ff;border:.5px solid #BFDBFE;border-radius:8px;padding:14px 16px}.resource-editor-drawer .pool-credits-list{border-top:none;padding-top:0;margin-top:0}.resource-editor-drawer .pool-credit-row{background:#f8fafc;border:.5px solid #E8EAED;cursor:default}.resource-editor-drawer .pool-credit-client{color:#1a1a1a}.resource-editor-drawer .pool-credit-detail{color:#6b7280;opacity:1}.resource-editor-drawer .pool-credit-remaining{color:#1a1a1a}.resource-editor-drawer .pool-credit-euro{color:#374151}.resource-editor-drawer .pool-credit-of{color:#9ca3af;opacity:1}.resource-editor-drawer .pool-credit-used{color:#6b7280;opacity:1}.pool-drawer-mode-tabs{display:flex;gap:4px;background:#e8eaed;border-radius:6px;padding:3px;width:fit-content}.pool-drawer-mode-tab{padding:4px 14px;font-size:13px;font-weight:500;border:none;border-radius:4px;background:transparent;color:#6b7280;cursor:pointer;transition:background .15s,color .15s}.pool-drawer-mode-tab.active{background:#fff;color:#1a1a1a;box-shadow:0 1px 3px #0000001a}.resource-editor-actions{display:flex;justify-content:flex-end;padding:16px 28px;border-top:.5px solid #E8EAED;flex-shrink:0}.wizard-modal .field-label,.resource-editor-drawer .field-label{font-size:12px;color:#828486}.wizard-modal .meta-text,.resource-editor-drawer .meta-text{color:#828486}.resource-editor-drawer>.error-text,.resource-editor-drawer>.meta-text,.resource-editor-drawer>p{padding:0 28px;margin:0}.resource-editor-drawer>.cost-center-section,.resource-editor-drawer>.draft-items-editor,.resource-editor-tab-content>.cost-center-section,.resource-editor-tab-content>.draft-items-editor,.resource-editor-tab-content>.hour-packages-section{padding-left:28px;padding-right:28px}.resource-editor-drawer>.financial-preview,.resource-editor-tab-content>.financial-preview{margin:0 28px 16px}.wizard-modal .input,.wizard-modal .select,.resource-editor-drawer .input,.resource-editor-drawer .select{border:.5px solid #D0D3D7;border-radius:8px;padding:8px 12px;font-size:14px;color:#1a1a1a;background:#fff;width:100%;box-sizing:border-box}.wizard-modal .input:disabled,.wizard-modal .input:read-only,.wizard-modal .select:disabled,.resource-editor-drawer .input:disabled,.resource-editor-drawer .input:read-only,.resource-editor-drawer .select:disabled{background:#e9f1f6;color:#0578a6;border-color:#d0d3d7}.wizard-modal .btn:not(.primary):not(.danger),.resource-editor-drawer .btn:not(.primary):not(.danger):not(.resource-icon-btn):not(.draft-item-remove):not(.draft-add-child):not(.wizard-tree-remove):not(.wizard-tree-add){background:#fff;border:.5px solid #AAACB0;border-radius:8px;color:#444}.wizard-modal .btn.primary,.resource-editor-drawer .btn.primary{background:#77a8c8;border:none;border-radius:8px;padding:8px 24px;font-size:14px;font-weight:500;color:#fff}.wizard-modal .btn.primary:hover,.resource-editor-drawer .btn.primary:hover{background:#6898bb}.wizard-modal .btn.danger,.resource-editor-drawer .btn.danger{background:#fff0f0;border:.5px solid #F5C0C0;border-radius:8px;color:#c0392b;width:100%}.wizard-modal .btn.danger:hover,.resource-editor-drawer .btn.danger:hover{background:#ffe5e5}.wizard-modal .badge,.resource-editor-drawer .badge{background:#e9f1f6;color:#0578a6;font-size:13px;padding:4px 10px;border-radius:6px;border:none}.resource-editor-danger{border-top:.5px solid #E8EAED;padding:16px 28px 20px;display:grid;gap:10px}.resource-delete-confirm{border:.5px solid #F5C0C0;background:#fff0f0;border-radius:8px;padding:10px;display:grid;gap:8px}.resource-delete-confirm p{margin:0;color:#c0392b;font-size:13px}.cost-center-section{padding:8px 0 12px}.cost-center-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cost-center-section-title{font-size:.82rem;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.03em}.cost-center-section-total{font-size:.75rem;font-weight:600;color:#6b7280}.cost-center-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.cost-center-label-input{flex:1;min-width:0}.cost-center-value-group{display:flex;align-items:center;gap:4px;flex-shrink:0}.cost-center-value-input{width:90px!important}.cost-center-pct{font-size:.7rem;font-weight:600;color:#6b7280;min-width:40px;text-align:right}.cost-center-remove{flex-shrink:0;padding:2px 6px!important;font-size:.7rem!important;color:#dc2626!important;border-color:#fca5a5!important}.hour-packages-section{padding:12px 0}.hour-packages-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.hour-packages-title{font-size:.82rem;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.03em}.hour-packages-total{font-size:.75rem;font-weight:600;color:#6b7280}.hour-packages-table{width:100%;border-collapse:collapse;font-size:.82rem;margin-bottom:10px}.hour-packages-table th{text-align:left;font-size:.72rem;font-weight:600;color:#9ca3af;padding:4px 6px;border-bottom:.5px solid #E8EAED}.hour-packages-table td{padding:6px;border-bottom:.5px solid #F3F4F6;color:#374151;vertical-align:middle}.hour-packages-add-row{display:flex;flex-direction:row;align-items:center;gap:8px;flex-wrap:nowrap}.financial-preview{background:#f8fafb;border:.5px solid #D0D3D7;border-radius:8px;padding:12px 16px;display:grid;gap:6px}.financial-preview-row{margin:0;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#1a1a1a}.financial-preview-label{color:#aaacb0}.financial-preview-net,.financial-preview-margin{font-weight:600;padding-top:6px;border-top:.5px solid #D0D3D7}.financial-preview-margin[data-positive=true]{color:#0f766e}.financial-preview-margin[data-positive=false]{color:#c0392b}.assignee-search-picker{position:relative;display:grid;gap:8px}.assignee-search-box .input{width:100%}.assignee-search-dropdown{position:absolute;top:100%;left:0;right:0;z-index:20;background:#fff;border:.5px solid #D0D3D7;border-radius:8px;max-height:180px;overflow-y:auto;box-shadow:0 4px 12px #00000014;margin-top:4px}.assignee-search-option{display:block;width:100%;text-align:left;padding:8px 12px;font-size:13px;color:#1a1a1a;background:transparent;border:none;cursor:pointer}.assignee-search-option:hover{background:#e9f1f6;color:#0578a6}.assignee-search-empty{padding:8px 12px;font-size:13px;color:#aaacb0}.assignee-chips{display:flex;flex-wrap:wrap;gap:6px}.assignee-chip{display:inline-flex;align-items:center;gap:6px;background:#e9f1f6;color:#0578a6;font-size:13px;padding:4px 10px;border-radius:6px;font-weight:500}.assignee-chip-remove{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;padding:0;cursor:pointer;color:#0578a6;line-height:1}.assignee-chip-remove:hover{color:#c0392b}.tree-toggle{border:0;background:transparent;cursor:pointer;color:#334155;width:24px;height:24px;border-radius:6px}.tree-toggle:hover{background:#eff6ff}.drop-zone-project,.drop-zone-folder{border:1px dashed transparent}.drop-zone-over{border-color:#38bdf8;background:#f0f9ff}.resource-task-list{display:grid;gap:8px;padding:8px 0 2px}.resource-task-card{border:1px solid #dbe3ee;border-radius:10px;background:#fff;padding:8px 10px;display:flex;align-items:center;gap:10px}.resource-task-card.dragging{box-shadow:0 10px 24px #0ea5e93d;border-color:#7dd3fc}.resource-task-card.overlay{max-width:360px}.task-drag-handle{border:0;background:#f1f5f9;border-radius:8px;width:28px;height:28px;cursor:grab;color:#475569;font-weight:700}.task-drag-handle:active{cursor:grabbing}.resource-task-body{min-width:0;flex:1}.resource-task-body strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-task-meta{display:flex;align-items:center;gap:8px;margin-top:4px}.daily-capacity-table .sticky-left{position:sticky;left:0;z-index:2}.daily-capacity-track.locked{background:repeating-linear-gradient(90deg,#eef2f7,#eef2f7 9.8%,#d1d9e4 9.8%,#d1d9e4 10%)}.capacity-state-banner.available{background:#dcfce7;border:1px solid #86efac;color:#166534}.capacity-state-banner.saturated{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.timeline-control-field{gap:5px}.timeline-control-field .field-label{font-size:11px}.timeline-icon-btn{width:38px;height:38px;padding:0;font-size:16px;font-weight:700}.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(120deg,var(--accent),var(--accent-2));color:#fff;font-weight:700;display:grid;place-content:center;font-size:12px}.time-grid.daily{position:relative;width:fit-content}.time-grid.daily:before{content:"";position:absolute;left:8px;right:8px;top:6px;bottom:6px;border:1px solid #d8e5d3;border-radius:10px;background:#fff;box-shadow:inset 0 1px #fff9;pointer-events:none;z-index:0}.time-grid.weekly{grid-template-columns:repeat(7,minmax(56px,1fr))}.time-grid.monthly{grid-template-columns:repeat(31,minmax(56px,1fr))}.time-slot.hour-mark{border-left-color:#c0cedd}.time-slot.weekend{background:var(--weekend)}.permission-banner.hourly{background:#f59e0b;box-shadow:0 4px 10px #b4530938}.permission-banner.full-absence{background:#dc2626;box-shadow:0 4px 10px #b91c1c3d}.permission-banner.range{height:18px;font-size:10px;border-radius:5px;letter-spacing:.03em}.task-banner.readonly{cursor:default}.tooltip{position:absolute;transform:translate(-50%,-105%);background:#0f172a;color:#f8fafc;border-radius:8px;padding:8px;font-size:11px;width:210px;pointer-events:none;z-index:10}.gantt-settings .field{min-width:0}.legend-chip{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;border:1px solid transparent}.legend-chip.todo{background:#e0f2fe;color:#075985;border-color:#7dd3fc}.legend-chip.in-progress{background:#dcfce7;color:#166534;border-color:#86efac}.legend-chip.blocked{background:#ffedd5;color:#9a3412;border-color:#fdba74}.legend-chip.done{background:#f3e8ff;color:#6b21a8;border-color:#c4b5fd}.gantt-host .gantt-container{height:420px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;--g-header-background: #16879a;--g-row-color: #ffffff;--g-row-border-color: #e5e7eb;--g-tick-color: #f1f5f9;--g-tick-color-thick: #d8e4ee;--g-text-dark: #ffffff;--g-text-muted: #e2f4f8;--g-progress-color: #67e8f9;--g-today-highlight: #e11d48}.gantt-host .gantt-container .grid-header{box-shadow:0 2px #07596933}.gantt-host .gantt-container .upper-text,.gantt-host .gantt-container .lower-text{fill:#fff;color:#fff;font-family:IBM Plex Sans,sans-serif;font-weight:600;text-rendering:geometricPrecision}.gantt-host .gantt-container .upper-text{fill:#fff;color:#fff;font-size:13px;font-weight:700}.gantt-host .gantt-container .lower-text{font-size:11px;opacity:.95}.gantt-host .gantt-container svg{display:block}.gantt-host .gantt-container .side-header,.gantt-host .gantt-container .extras .adjust{display:none}.gantt-host .gantt .bar-progress{fill:#ffffff57}.gantt-host .gantt .bar-wrapper .bar,.gantt-host .gantt .bar-wrapper .bar-progress,.gantt-host .gantt .bar-wrapper .bar-label{transition:fill .18s ease,stroke .18s ease,opacity .18s ease,transform .22s ease}.gantt-host .gantt .bar-wrapper .bar{rx:6px;ry:6px}.gantt-host .gantt .bar-label{fill:#0f172a;font-family:IBM Plex Sans,sans-serif;font-size:12px;font-weight:600;paint-order:stroke;stroke:#0f172a1f;stroke-width:.6px;text-rendering:geometricPrecision}.gantt-host .gantt .bar-wrapper[class*=ganttrow-client] .bar{fill:#7db8d8;opacity:.9;stroke:#5a9bbd;stroke-width:1;transform-box:fill-box;transform-origin:center;transform:scaleY(.78)}.gantt-host .gantt .bar-wrapper[class*=ganttrow-client] .bar-progress{fill:transparent}.gantt-host .gantt .bar-wrapper[class*=ganttrow-client] .bar-label{fill:#27566e;font-size:11px;font-weight:700;stroke:#27566e29}.gantt-host .gantt .bar-wrapper[class*=ganttrow-project] .bar{fill:#0369a1;stroke:#115e59;stroke-width:1.6;transition:fill .18s ease,stroke .18s ease,stroke-width .18s ease,filter .18s ease,opacity .18s ease}.gantt-host .gantt .bar-wrapper[class*=ganttrow-project]{cursor:pointer}.gantt-host .gantt .bar-wrapper[class*=ganttrow-project] .bar-progress{fill:#ffffff42}.gantt-host .gantt .bar-wrapper[class*=ganttrow-project] .bar-label:not(.big){fill:#f8fafc;font-size:12px;font-weight:800;letter-spacing:.01em;stroke:#0f172a2e}.gantt-host .gantt .bar-wrapper[class*=ganttrow-project] .bar-label.big{fill:#134e4a;font-size:12px;font-weight:700}.gantt-host .gantt .bar-wrapper[class*=ganttrow-project__expanded-yes] .bar{stroke-width:2;filter:drop-shadow(0 2px 6px rgba(3,105,161,.25))}.gantt-host .gantt .bar-wrapper[class*=ganttrow-project__expanded-no] .bar{opacity:.9}.gantt-host .gantt .bar-wrapper[class*=ganttrow-project]:hover .bar{filter:brightness(1.08)}.gantt-host .gantt .bar-wrapper[class*=ganttrow-project]:hover .bar-label{fill:#fff}.gantt-host .gantt .bar-wrapper[class*=ganttrow-project__status-in_progress] .bar{fill:#0369a1}.gantt-host .gantt .bar-wrapper[class*=ganttrow-project__status-blocked] .bar{fill:#0b6a63}.gantt-host .gantt .bar-wrapper[class*=ganttrow-project__status-done] .bar{fill:#14867d}.gantt-host .gantt .bar-wrapper[class*=ganttrow-folder] .bar{fill:#d97706;opacity:.92;stroke:#b45309;stroke-width:1.1;transform-box:fill-box;transform-origin:center;transform:scaleY(.68)}.gantt-host .gantt .bar-wrapper[class*=ganttrow-folder] .bar-progress{fill:#ffffff38}.gantt-host .gantt .bar-wrapper[class*=ganttrow-folder] .bar-label{fill:#7a3412;font-size:11px;font-weight:700;stroke:#7a341229}.gantt-host .gantt .bar-wrapper[class*=ganttrow-task] .bar{fill:#7c3aed;stroke:#6d28d9;stroke-width:1.1;transform-box:fill-box;transform-origin:center;transform:scaleY(.78)}.gantt-host .gantt .bar-wrapper[class*=ganttrow-task] .bar-progress{fill:#fff3}.gantt-host .gantt .bar-wrapper[class*=ganttrow-task] .bar-label:not(.big){fill:#f5f3ff;font-size:11px;font-weight:700;stroke:#4c1d9533}.gantt-host .gantt .bar-wrapper[class*=ganttrow-task] .bar-label.big{fill:#6d28d9;font-weight:700}.gantt-host .gantt .bar-wrapper[class*=ganttrow-task__status-todo] .bar,.gantt-host .gantt .bar-wrapper[class*=ganttrow-task__status-in_progress] .bar,.gantt-host .gantt .bar-wrapper[class*=ganttrow-task__status-blocked] .bar,.gantt-host .gantt .bar-wrapper[class*=ganttrow-task__status-done] .bar{fill:#7c3aed}.gantt-host .gantt .bar-wrapper[class*=ganttrow-placeholder] .bar{fill:#a78bfa;opacity:.45;transform-box:fill-box;transform-origin:center;transform:scaleY(.42);stroke:#7c3aed;stroke-width:.8}.gantt-host .gantt .bar-wrapper[class*=ganttrow-placeholder] .bar-progress{fill:transparent}.gantt-host .gantt .bar-wrapper[class*=ganttrow-placeholder] .bar-label{fill:#6b21a8;font-style:italic}.gantt-host .gantt .bar-wrapper[class*=ganttrow-task__priority-urgent] .bar{stroke:#4c1d95;stroke-width:1.8}.gantt-host .gantt .bar-wrapper[class*=ganttrow-task__priority-high] .bar{stroke:#5b21b6;stroke-width:1.2}.workload-toolbar{--workload-control-h: 38px;display:grid;gap:12px;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;background:linear-gradient(90deg,#f8fafc,#eff6ff)}.workload-nav{grid-column:span 4}.workload-toolbar .field{min-width:0;gap:5px}.workload-toolbar .field>span{font-size:11px;color:var(--muted);font-weight:600}.workload-toolbar .select,.workload-toolbar .input{min-height:var(--workload-control-h);min-width:0;padding:8px 10px;border-radius:8px;font-size:14px}.workload-nav{display:flex;flex-direction:column;gap:4px}.workload-nav-row{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;gap:8px;align-items:center}.workload-nav-row .btn{width:38px;height:38px;padding:0;border-radius:8px;font-size:16px;line-height:1;justify-self:center}.workload-range-label{font-size:14px;font-weight:600;color:#334155;min-width:0;text-align:center;border:1px solid var(--line);background:#fff;border-radius:8px;min-height:var(--workload-control-h);display:flex;align-items:center;justify-content:center;padding:8px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workload-search .input{width:100%}.timesheet-kpi-grid .panel+.panel{margin-top:0}.workload-cell{text-align:center;min-width:96px;white-space:nowrap}.workload-cell.is-clickable{padding:0}.workload-cell-button{width:100%;border:0;background:transparent;padding:10px 6px;cursor:pointer;color:inherit;font:inherit;display:flex;align-items:baseline;justify-content:center;gap:3px}.workload-cell-button:hover{filter:brightness(.97)}.workload-cell-button:focus-visible{outline:2px solid #0284c7;outline-offset:-2px}.workload-cell strong{font-size:13px}.workload-cell span{font-size:12px}.workload-cell.empty{background:#fff}.workload-cell.optimal{background:#dbeafe}.workload-cell.confirmed{background:#dcfce7}.workload-cell.warning{background:#fef9c3}.workload-cell.critical{background:#fee2e2}.workload-cell.over,.workload-cell.blocked{background:#ffedd5}.timesheet-page{display:grid;gap:12px}.timesheet-page-subtitle{margin-top:-4px;margin-bottom:0}.timesheet-filter-combobox .input{padding-right:38px}.timesheet-combobox-option:hover,.timesheet-combobox-option.is-selected{background:#e0f2fe;color:#075985}.timesheet-collaborator-controls .input,.timesheet-client-search-controls .input{width:100%}.timesheet-inline-toggle{min-height:var(--workload-control-h);display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#334155;font-size:14px;font-weight:600}.timesheet-inline-toggle input{margin:0}.timesheet-reset-field .btn{width:100%}.timesheet-kpi-grid{align-items:stretch;grid-template-columns:repeat(3,minmax(0,1fr))}.timesheet-kpi-card{min-height:138px;height:100%}.timesheet-kpi-card h3{min-height:32px;display:flex;align-items:center}.timesheet-grid-panel{border:1px solid #cfd9e8;background:linear-gradient(180deg,#fffffffa,#f4f8fff2);overflow:hidden}.timesheet-heatmap-wrap{--timesheet-sticky-col-width: 280px;--timesheet-day-col-width: 110px;--timesheet-days-count: 5}.timesheet-group-table{width:max(100%,calc(var(--timesheet-sticky-col-width) + (var(--timesheet-day-col-width) * var(--timesheet-days-count))));min-width:calc(var(--timesheet-sticky-col-width) + (var(--timesheet-day-col-width) * var(--timesheet-days-count)));border-collapse:separate;border-spacing:0;table-layout:fixed}.timesheet-col-sticky{width:var(--timesheet-sticky-col-width);min-width:var(--timesheet-sticky-col-width)}.timesheet-col-day{width:var(--timesheet-day-col-width);min-width:var(--timesheet-day-col-width)}.timesheet-group-table th,.timesheet-group-table td{border-bottom:1px solid #e2e8f0;vertical-align:middle}.timesheet-group-table th{padding:12px 14px;white-space:nowrap}.timesheet-group-table thead th:not(.sticky-col),.timesheet-top-totals-table th:not(.sticky-col){text-align:center}.timesheet-group-table thead .sticky-col,.timesheet-top-totals-table .sticky-col{text-align:left}.timesheet-group-table .sticky-col{min-width:var(--timesheet-sticky-col-width);border-right:1px solid #e2e8f0}.timesheet-group-table td.sticky-col{padding:12px 14px;background:#fff}.timesheet-hierarchy-cell{min-width:var(--timesheet-sticky-col-width)}.timesheet-hierarchy-cell strong,.timesheet-hierarchy-cell small{display:block}.timesheet-hierarchy-cell.level-0{background:#fff}.timesheet-hierarchy-cell.level-1{background:#f8fafc}.timesheet-hierarchy-cell.level-2{background:#fbfdff}.timesheet-hierarchy-cell.level-3{background:#fff}.timesheet-hierarchy-cell.is-client strong{font-size:15px;color:#0f4c81}.timesheet-hierarchy-cell.is-project strong{font-size:15px}.timesheet-hierarchy-cell.is-folder strong{padding-left:18px;font-size:14px;color:#1e293b}.timesheet-hierarchy-cell.is-task strong{padding-left:36px;font-size:14px;color:#0f172a}.timesheet-hierarchy-cell.is-task.level-3 strong{padding-left:54px}.timesheet-group-table td.sticky-col strong{display:block;font-size:14px;color:#0f172a}.timesheet-group-table td>small{display:block;margin-top:3px;color:#64748b;font-size:12px}.timesheet-client-divider-row td{border-top:3px solid #cbd5e1}.timesheet-client-divider-row:first-child td{border-top-width:1px}.timesheet-top-totals-table{margin-bottom:0}.timesheet-top-totals-table th{position:static;top:auto;z-index:auto;padding:8px 14px;font-size:12px;line-height:1.2;background:#f8fafc;color:#334155;border-bottom:1px solid #dbe4ee}.timesheet-top-totals-table .sticky-col{background:#f8fafc}.timesheet-top-totals-table th.is-under{background:#dcfce7;color:#166534}.timesheet-top-totals-table th.is-limit{background:#fef3c7;color:#92400e}.timesheet-top-total-trigger{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:18px;outline:none}.timesheet-top-total-tooltip{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(4px);min-width:220px;max-width:280px;padding:12px 14px;border:1px solid #d7e0ef;border-radius:12px;background:#fffffffa;box-shadow:0 14px 32px #0f172a24;color:#0f172a;text-align:left;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease;z-index:20}.timesheet-top-total-trigger:hover .timesheet-top-total-tooltip,.timesheet-top-total-trigger:focus-visible .timesheet-top-total-tooltip{opacity:1;transform:translate(-50%) translateY(0)}.timesheet-top-total-trigger:focus-visible{box-shadow:0 0 0 2px #0284c747;border-radius:8px}.timesheet-top-total-tooltip strong{display:block;margin-bottom:8px;font-size:12px;color:#334155}.timesheet-top-total-tooltip ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.timesheet-top-total-tooltip li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12px;color:#0f172a}.timesheet-top-total-tooltip li span:last-child{white-space:nowrap;font-weight:700;color:#334155}.timesheet-top-total-tooltip p{margin:0;font-size:12px;color:#64748b}.timesheet-group-table .workload-cell{min-width:var(--timesheet-day-col-width)}.timesheet-group-table .workload-cell-button{min-height:78px;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 8px}.timesheet-group-table .workload-cell strong{font-size:15px}.timesheet-group-table .workload-cell span{font-size:11px;color:inherit;opacity:.82}.timesheet-readonly-cell-content{min-height:104px}.timesheet-operative-actions{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:4px}.timesheet-operative-btn{width:30px;height:30px;border-radius:10px;border:1px solid #cbd5e1;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;line-height:1;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.timesheet-operative-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 20px -16px #0f172a73}.timesheet-operative-btn:disabled{cursor:not-allowed;opacity:.6}.timesheet-operative-btn.is-confirm{border-color:#86efac;background:#dcfce7;color:#166534}.timesheet-operative-btn.is-adjust{border-color:#fcd34d;background:#fef3c7;color:#92400e}.timesheet-operative-status{display:inline-flex;align-items:center;justify-content:center;margin-top:4px;min-height:28px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;text-align:center}.timesheet-operative-status.is-confirmed{border:1px solid #86efac;background:#dcfce7;color:#166534}.timesheet-operative-status.is-adjusted{border:1px solid #fdba74;background:#ffedd5;color:#9a3412}.timesheet-operative-status.is-noted{border:1px solid #fcd34d;background:#fef3c7;color:#92400e}.timesheet-group-table tbody tr:hover td.sticky-col{background:#f8fafc}.timesheet-summary-cell .workload-cell-button{cursor:default}.timesheet-structure-cell{min-width:110px;background:linear-gradient(180deg,#f8fafceb,#ffffffe6)}.timesheet-legend{margin-bottom:0;padding-bottom:10px}.timesheet-day-layout{display:grid;gap:12px;grid-template-columns:minmax(320px,420px) minmax(0,1fr)}.timesheet-day-card{border:1px solid #cfd9e8;background:linear-gradient(180deg,#fffffffa,#f4f8fff2)}.timesheet-timer-panel h2,.timesheet-day-list h2{margin:0 0 4px;font-size:18px}.timesheet-description{min-height:96px;resize:vertical}.timesheet-day-list td small{display:block;margin-top:2px;color:#64748b;font-size:12px}.timesheet-inline-actions{display:inline-flex;flex-wrap:wrap;gap:6px}.timesheet-entry-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;background:#0f172a6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:center;overflow:auto;padding:32px 14px}.timesheet-entry-modal{width:min(760px,100%);display:grid;gap:14px;border:1px solid #cbd5e1;background:linear-gradient(180deg,#fffffffc,#f4f8fff7)}.timesheet-entry-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.timesheet-entry-head h2{margin:0;font-size:20px;color:#0f172a}.timesheet-entry-layout{display:grid;gap:14px;grid-template-columns:1fr}.timesheet-operative-summary{display:grid;gap:4px;padding:12px 14px;border:1px solid #d7e0ef;border-radius:12px;background:#f8fafceb}.timesheet-operative-summary strong{color:#0f172a;font-size:15px}.timesheet-operative-summary span{color:#475569;font-size:13px}.timesheet-editor-capacity{display:grid;gap:4px;padding:12px 14px;border:1px solid #d7e0ef;border-radius:12px;background:#f8fafceb}.timesheet-editor-capacity strong{color:#0f172a;font-size:15px}.timesheet-editor-capacity span,.timesheet-editor-capacity small{color:#475569;font-size:13px}.timesheet-editor-capacity.is-over{border-color:#fdba74;background:#fff7ed}.timesheet-editor-capacity.is-over strong,.timesheet-editor-capacity.is-over small{color:#c2410c}.timesheet-modal-error{margin:0}.timesheet-entry-form,.timesheet-entry-side{display:grid;gap:12px}.timesheet-entry-actions{display:flex;justify-content:flex-end;gap:8px}.timesheet-page.variant-task-planning .timesheet-toolbar,.timesheet-page.variant-task-planning .timesheet-grid-panel,.timesheet-page.variant-task-planning .timesheet-day-card,.timesheet-page.variant-task-planning .timesheet-entry-modal{background:linear-gradient(180deg,#f8fbfffa,#f1f7fff2);border-color:#d7e4f1}.timesheet-page.variant-task-planning .timesheet-kpi-card{background:linear-gradient(180deg,#f8fbfffc,#f3f8fff5);border-color:#d7e4f1}.timesheet-page.variant-task-planning .timesheet-active-timer{border-color:#93c5fd;background:#e0f2fe}.timesheet-page.variant-task-planning .timesheet-hierarchy-cell.level-1{background:#f3f8ff}.timesheet-page.variant-task-planning .timesheet-hierarchy-cell.level-2,.timesheet-page.variant-task-planning .timesheet-group-table tbody tr:hover td.sticky-col{background:#fbfdff}.operative-ts-day-banner{padding:12px 16px;background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border:1px solid #bbf7d0;border-radius:10px}.operative-ts-day-banner-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.operative-ts-day-banner-title{font-size:14px;font-weight:600;color:var(--ink);text-transform:capitalize}.operative-ts-day-banner-total{font-size:14px;font-weight:700;color:#15803d}.operative-ts-day-banner-empty{margin:0;font-size:13px;color:var(--ink-muted, #64748b)}.operative-ts-day-banner-groups{display:flex;flex-wrap:wrap;gap:8px 20px}.operative-ts-day-banner-group{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:13px;color:var(--ink)}.operative-ts-day-banner-client{font-weight:600}.operative-ts-day-banner-task{color:var(--ink-muted, #64748b)}.operative-ts-banner{padding:8px 14px;border-radius:8px;font-size:13px;font-weight:500}.operative-ts-banner.success{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.operative-ts-banner.error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.ots-selected-col{background:#0369a112!important}.ots-client-header td{background:var(--bg-strong);padding:6px 10px;font-size:13px;letter-spacing:.02em;border-bottom:1px solid var(--line)}.ots-action-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:50%;cursor:pointer;background:transparent;transition:transform .12s,box-shadow .12s}.ots-action-btn:hover:not(:disabled){transform:scale(1.15);box-shadow:0 2px 6px #0000001f}.ots-action-btn:disabled{opacity:.5;cursor:not-allowed}.ots-confirm-btn:hover:not(:disabled){background:#dcfce7}.ots-adjust-btn:hover:not(:disabled){background:#fef9c3}.workload-heatmap-table td.sticky-col strong{display:block;font-size:13px;font-weight:600;color:#0f172a;line-height:1.3}.workload-heatmap-table td.sticky-col small{display:block;margin-top:2px;font-size:11px;color:#64748b;line-height:1.3}.ots-cell-allocs{position:relative;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;padding:4px 2px;min-height:40px;width:100%}.ots-cell-review-badge{position:absolute;top:3px;left:4px;margin:0}.ots-cell-alloc-row{display:flex;align-items:center;justify-content:center;gap:4px;min-height:24px}.ots-cell-alloc-hours{font-weight:700;font-size:.82rem;color:var(--ink, #111827);white-space:nowrap}.ots-cell-alloc-actions{display:inline-flex;align-items:center;gap:2px}.ots-cell-alloc-actions .ots-action-btn{width:22px;height:22px}.ots-cell-status-icon{flex-shrink:0}.month-planner-page{gap:14px}.month-planner-toolbar .workload-view-field,.month-planner-toolbar .workload-nav,.month-planner-user-field,.month-planner-reset-field{grid-column:auto}.month-planner-reset-field .btn{width:100%}.mp-header{background:#fff;border:.5px solid #D0D3D7;border-radius:10px;padding:14px 20px;display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap}.mp-header-group{display:flex;flex-direction:column;position:relative}.mp-header-label{font-size:11px;font-weight:500;color:#aaacb0;text-transform:uppercase;letter-spacing:.05em;margin:0 0 6px}.mp-period-nav{display:flex;align-items:center;gap:6px}.mp-period-label{font-size:13px;font-weight:500;color:#1a1a1a;padding:0 4px;white-space:nowrap;text-transform:capitalize}.mp-user-dropdown{min-width:220px;z-index:200}.mp-dropdown-search{padding:8px 10px;border-bottom:.5px solid #E8EAED}.mp-dropdown-search-input{width:100%;border:.5px solid #D0D3D7;border-radius:6px;padding:5px 10px;font-size:13px;color:#1a1a1a;background:#fff;outline:none}.mp-dropdown-search-input:focus{border-color:#77a8c8}.mp-dropdown-list{max-height:400px;overflow-y:auto}.mp-dropdown-empty{padding:10px 14px;font-size:13px;color:#aaacb0}.mp-option-name{font-size:13px;color:#333}.mp-option-meta{margin-left:auto;font-size:11px;color:#aaacb0;white-space:nowrap}.mp-header-group .gt-select-trigger{min-width:210px}.month-planner-grid-panel{border:1px solid #cfd9e8;background:linear-gradient(180deg,#fffffffa,#f4f8fff2);overflow:hidden}.workload-heatmap-wrap{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 180px);-webkit-overflow-scrolling:touch}.workload-legend{display:flex;gap:8px;flex-wrap:wrap;padding:10px 14px}.workload-legend .chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:.75rem;font-weight:600;line-height:1}.workload-legend .chip.empty{background:#fff;border:1px solid #e2e8f0;color:#94a3b8}.workload-legend .chip.optimal{background:#dbeafe;color:#1e40af}.workload-legend .chip.confirmed{background:#dcfce7;color:#166534}.workload-legend .chip.warning{background:#fef9c3;color:#854d0e}.workload-legend .chip.over{background:#ffedd5;color:#c2410c}.month-planner-table .sticky-col,.workload-heatmap-table .sticky-col{position:sticky;left:0;z-index:2;background:#fff}.month-planner-table thead th,.workload-heatmap-table thead th{position:sticky;top:0;z-index:2;background:#f8fafc}.month-planner-table thead .sticky-col,.workload-heatmap-table thead .sticky-col{z-index:3;background:#f8fafc}.month-planner-legend{margin-bottom:0;padding-bottom:10px}.month-planner-table{min-width:max(100%,2318px);table-layout:fixed}.month-planner-table .sticky-col{min-width:248px;width:248px}.month-planner-user-cell{padding:6px 14px;background:#fff}.month-planner-user-cell strong,.month-planner-user-cell small{display:block}.month-planner-user-cell strong{font-size:14px;color:#0f172a}.month-planner-user-cell small{margin-top:3px;color:#64748b;font-size:12px}.month-planner-table .workload-cell{min-width:90px;position:relative}.month-planner-table .workload-cell-button{min-height:64px;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 6px}.month-planner-table .workload-cell strong{font-size:14px}.month-planner-table .workload-cell span{font-size:11px;color:inherit;opacity:.82}.month-planner-entry-modal{width:min(860px,100%)}.month-planner-entry-list{display:grid;gap:10px}.month-planner-entry-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #d7e0ef;border-radius:12px;background:#f8fafcf0}.month-planner-entry-card strong,.month-planner-entry-card small{display:block}.month-planner-entry-card small{margin-top:4px;color:#64748b;font-size:12px}.month-planner-entry-meta{display:grid;justify-items:end;gap:8px}.month-planner-entry-meta>span{font-weight:700;color:#0f172a}.workload-cell.bulk-selected{outline:2px solid var(--accent, #0369a1);outline-offset:-2px;background:#0369a11f!important}.bulk-plan-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:899;background:transparent}.bulk-plan-popup{position:fixed;z-index:900;width:420px;max-height:80vh;overflow-y:auto;background:var(--panel, #fff);border:1px solid var(--line, #d1d9e6);border-radius:12px;box-shadow:0 8px 32px #0000002e;padding:16px;display:flex;flex-direction:column;gap:14px}.bulk-plan-head{display:flex;justify-content:space-between;align-items:flex-start}.bulk-plan-head h3{font-family:Space Grotesk,sans-serif;font-size:1rem;font-weight:700;color:var(--ink, #111827);margin:0}.bulk-plan-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line, #d1d9e6);padding-bottom:0}.bulk-plan-tab{background:none;border:none;border-bottom:2px solid transparent;padding:6px 12px;font-size:.8rem;font-weight:600;color:var(--ink, #111827);opacity:.55;cursor:pointer;transition:opacity .15s,border-color .15s}.bulk-plan-tab:hover{opacity:.8}.bulk-plan-tab.active{opacity:1;border-bottom-color:var(--accent, #0369a1);color:var(--accent, #0369a1)}.bulk-plan-days-preview{display:flex;flex-wrap:wrap;gap:6px}.bulk-day-chip{display:inline-flex;align-items:center;gap:4px;background:#0369a11a;color:var(--accent, #0369a1);font-size:.75rem;font-weight:600;padding:3px 8px;border-radius:6px;text-transform:capitalize}.bulk-day-chip-remove{background:none;border:none;font-size:.7rem;cursor:pointer;color:var(--ink, #111827);opacity:.5;padding:0 2px;line-height:1}.bulk-day-chip-remove:hover{opacity:1}.bulk-day-chip.has-review{background:#ea580c1a;color:#c2410c}.bulk-day-chip-label{display:inline-flex;align-items:center;gap:3px}.bulk-day-review-check{display:inline-flex;align-items:center;gap:3px;font-size:.65rem;font-weight:500;cursor:pointer;opacity:.7;white-space:nowrap}.bulk-day-review-check:hover{opacity:1}.bulk-day-review-check input[type=checkbox]{width:11px;height:11px;cursor:pointer;accent-color:#ea580c}.internal-review-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background:#ea580c;color:#fff;font-size:.65rem;font-weight:700;border-radius:50%;line-height:1;margin-left:4px;flex-shrink:0;vertical-align:middle}.bulk-task-combo{position:relative}.bulk-task-selected{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:.8rem;color:var(--accent, #0369a1);font-weight:600}.bulk-task-dropdown{position:absolute;top:100%;left:0;right:0;z-index:910;max-height:220px;overflow-y:auto;background:var(--panel, #fff);border:1px solid var(--line, #d1d9e6);border-radius:8px;box-shadow:0 4px 16px #0000001f;margin-top:4px}.bulk-task-dropdown-empty{padding:12px;font-size:.8rem;color:var(--ink, #111827);opacity:.5;text-align:center}.bulk-task-group-label{padding:6px 12px 2px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink, #111827);opacity:.45}.bulk-task-option{display:block;width:100%;text-align:left;padding:6px 12px;font-size:.8rem;background:none;border:none;cursor:pointer;color:var(--ink, #111827);transition:background .12s}.bulk-task-option:hover{background:#0369a10f}.bulk-task-option.active{background:#0369a11f;color:var(--accent, #0369a1);font-weight:600}.bulk-task-option strong{color:var(--accent, #0369a1);margin-right:4px}.bulk-plan-hours-toggle{display:flex;gap:8px}.bulk-toggle-option{display:inline-flex;align-items:center;gap:4px;font-size:.8rem;padding:6px 14px;border-radius:6px;cursor:pointer;border:1px solid var(--line, #d1d9e6);background:transparent;transition:background .15s,border-color .15s}.bulk-toggle-option input[type=radio]{display:none}.bulk-toggle-option.active{background:#0369a11a;border-color:var(--accent, #0369a1);color:var(--accent, #0369a1);font-weight:600}.bulk-plan-perday{display:flex;flex-wrap:wrap;gap:8px 10px}.bulk-plan-perday-field.field{width:130px;flex:0 0 130px;gap:2px}.bulk-plan-perday-field .field-label{text-transform:capitalize;font-size:.68rem;margin-bottom:0;display:block;text-align:center;white-space:nowrap}.bulk-plan-perday-field .time-input-hours,.bulk-plan-perday-field .time-input-minutes{font-size:.82rem;padding:5px 4px}.bulk-plan-perday-field .time-input-hours{width:40px}.bulk-plan-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:8px;border-top:1px solid var(--line, #d1d9e6)}.bulk-existing-tab{display:flex;flex-direction:column;gap:10px}.bulk-existing-day-section{display:flex;flex-direction:column;gap:4px}.bulk-existing-day-head{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;text-transform:capitalize}.bulk-existing-day-total{font-weight:700;color:var(--accent, #0369a1)}.bulk-existing-day-total.is-full{color:#b45309}.bulk-existing-entry{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;background:var(--bg, #f5f7fa);border-radius:8px;gap:8px}.bulk-existing-entry-info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.bulk-existing-entry-task{font-size:.8rem;font-weight:600;color:var(--ink, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bulk-existing-entry-context{font-size:.7rem;color:var(--ink, #111827);opacity:.55}.bulk-existing-entry-controls{display:flex;align-items:center;gap:4px;flex-shrink:0}.bulk-existing-hours-input .time-input-hours,.bulk-existing-hours-input .time-input-minutes{font-size:.8rem;padding:4px 5px}.bulk-existing-hours-input .time-input-hours{width:38px}.bulk-existing-hours-label{font-size:.75rem;font-weight:600;color:var(--ink, #111827);opacity:.5}.week-border-left{border-left:2px solid var(--line, #d1d9e6)!important}.mp-perm-badge{position:absolute;top:4px;right:4px;font-size:10px;font-weight:700;line-height:1;padding:3px 5px;border-radius:4px;letter-spacing:.03em;pointer-events:none}.mp-perm-abs{background:#dc262626;color:#991b1b;border:1px solid rgba(220,38,38,.4)}.mp-perm-sw{background:#8b5cf626;color:#4c1d95;border:1px solid rgba(139,92,246,.4)}.mp-perm-legend{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 6px;border-radius:4px;font-size:12px;font-weight:600}.mp-perm-legend.mp-perm-abs{background:#dc26261a;border:1px solid rgba(220,38,38,.3);color:#991b1b}.mp-perm-legend.mp-perm-sw{background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);color:#4c1d95}.mp-perm-legend.mp-review{background:#ea580c1a;border:1px solid rgba(234,88,12,.3);color:#c2410c}.workload-legend-divider{display:inline-block;width:1px;height:20px;background:var(--line, #e2e8f0);align-self:center;margin:0 2px}.mp-weekend-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;color:#1a1a1a;padding:6px 0;-webkit-user-select:none;user-select:none}.mp-weekend-toggle input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:#3b82f6;flex-shrink:0}.workload-cell.is-weekend,th.is-weekend{background-color:#f5f5f5;color:#888}th.is-weekend{font-weight:400;font-style:italic}th.is-today{background-color:#e0f2fe;color:#0578a6;font-weight:600}.workload-cell.is-today{position:relative}.workload-cell.is-today:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-left:1.5px solid rgba(14,165,233,.35);border-right:1.5px solid rgba(14,165,233,.35);pointer-events:none;z-index:2}@keyframes gantt-accordion-reveal{0%{opacity:0}to{opacity:1}}.gantt-host .gantt .bar-wrapper[class*=ganttrow-folder],.gantt-host .gantt .bar-wrapper[class*=ganttrow-task],.gantt-host .gantt .bar-wrapper[class*=ganttrow-placeholder]{animation:gantt-accordion-reveal .2s ease-out}@media(prefers-reduced-motion:reduce){.gantt-host .gantt .bar-wrapper .bar,.gantt-host .gantt .bar-wrapper .bar-progress,.gantt-host .gantt .bar-wrapper .bar-label,.gantt-host .gantt .bar-wrapper[class*=ganttrow-folder],.gantt-host .gantt .bar-wrapper[class*=ganttrow-task],.gantt-host .gantt .bar-wrapper[class*=ganttrow-placeholder]{transition:none;animation:none}}@media(max-width:1100px){.sidebar-layout{--rail-responsive-width: 72px}.app-shell{grid-template-columns:var(--rail-responsive-width) minmax(0,1fr)}.sidebar-layout{width:var(--rail-responsive-width);min-height:100vh;position:sticky;top:0;grid-template-columns:var(--rail-responsive-width);z-index:150}.sidebar-rail{width:var(--rail-responsive-width);min-height:100vh;border-bottom-left-radius:0;padding:12px 6px 10px}.sidebar{position:fixed;top:0;left:0;width:min(320px,calc(100vw - var(--rail-responsive-width)));min-height:100vh;border-radius:0;border-left:1px solid rgba(148,163,184,.25);transform:translate(calc(-100% - 18px));transition:transform .17s ease-out;z-index:145;pointer-events:none}.sidebar-layout.is-open .sidebar{transform:translate(var(--rail-responsive-width));pointer-events:auto}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;border:0;margin:0;padding:0;background:#0f172a4d;opacity:0;pointer-events:none;transition:opacity .17s ease-out;z-index:140}.sidebar-layout.is-open .sidebar-backdrop{opacity:1;pointer-events:auto}.rail-toggle,.sidebar-mobile-close{display:inline-flex}.rail-menu{overflow-y:auto;overflow-x:hidden;padding-right:2px}.rail-item{min-height:52px;padding:7px 4px}.rail-label{display:none}.brand{margin-bottom:8px}.main{padding:16px}.toolbar-panel{align-items:stretch}.form-grid{grid-template-columns:1fr}.analytics-chart-svg{min-width:760px}.analytics-section-head{align-items:stretch}.analytics-time-kpi-grid,.analytics-controls-row{grid-template-columns:1fr}.analytics-inline-filter{min-width:0;width:100%}.variance-grid{grid-template-columns:1fr}.resource-controls{width:100%}.resource-search{min-width:0;width:100%}.resource-filter-inline{width:100%}.resource-filter-select{min-width:0;width:100%}.resource-reset-slot{margin-left:0;width:100%}.resource-reset-btn{margin-left:0}.users-toolbar-actions{margin-left:0;width:100%;justify-content:flex-end}.notifications-section-head{flex-wrap:wrap;align-items:flex-start}.notifications-table{min-width:680px}.resource-client-supervisor{min-width:0;width:100%}.resource-client-right{margin-left:0;width:100%;justify-content:space-between;flex-wrap:wrap}.resource-project-right{align-items:flex-start}.resource-line{flex-wrap:wrap}.resource-editor-drawer{width:100%}.workload-toolbar{grid-template-columns:repeat(6,minmax(0,1fr))}.workload-view-field{grid-column:span 2}.workload-nav{grid-column:span 4}.workload-area-field,.workload-role-field,.workload-search{grid-column:span 2}.workload-nav-row{grid-template-columns:38px minmax(0,1fr) 38px}.workload-kpis{grid-template-columns:1fr}.workload-kpi-card strong{font-size:30px}.workload-overload-kpis{grid-template-columns:1fr}.workload-range-label{min-width:0;text-align:center}.timesheet-toolbar-row{grid-template-columns:repeat(2,minmax(0,1fr))}.timesheet-period-field,.timesheet-collaborator-field,.timesheet-client-search-field,.timesheet-unassigned-toggle-field,.timesheet-reset-field{grid-column:span 2}.timesheet-collaborator-controls,.timesheet-client-search-controls{flex-wrap:nowrap}.month-planner-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.month-planner-reset-field{justify-self:stretch;max-width:none}.month-planner-table .sticky-col{min-width:220px;width:220px}.timesheet-kpi-grid{grid-template-columns:1fr}.timesheet-heatmap-wrap{--timesheet-sticky-col-width: 240px;--timesheet-day-col-width: 104px}.timesheet-day-layout{grid-template-columns:1fr}.timeline-header,.user-row,.daily-capacity-table{grid-template-columns:var(--timeline-user-col-width, 180px) 1fr}.daily-capacity-hours{font-size:10px}.timeline-controls{flex-wrap:wrap}.timeline-controls-left,.timeline-controls-right{width:100%;justify-content:flex-start;flex-wrap:wrap}.timeline-controls-right{margin-left:0}.timeline-view-select,.timeline-role-filter,.timeline-company-filter,.timeline-area-filter,.timeline-user-search{min-width:0;width:100%}.timeline-search-field{flex:1 1 240px}.gantt-controls{align-items:stretch;width:100%;grid-template-columns:1fr}.gantt-settings{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.gantt-settings .field{min-width:0;flex:1 1 190px}}@media(max-width:760px){.workload-toolbar{grid-template-columns:1fr}.workload-view-field,.workload-nav,.workload-area-field,.workload-role-field,.workload-search{grid-column:1 / -1}.workload-nav-row{grid-template-columns:38px minmax(0,1fr) 38px}.workload-nav-row .btn{width:38px;height:38px;font-size:16px}.workload-range-label{font-size:14px;padding:8px 10px}.workload-kpi-card{min-height:126px}.workload-kpi-card strong{font-size:28px}.timesheet-toolbar,.timesheet-toolbar-row{grid-template-columns:1fr}.timesheet-period-field,.timesheet-collaborator-field,.timesheet-client-search-field,.timesheet-unassigned-toggle-field,.timesheet-reset-field{grid-column:auto}.timesheet-period-label{font-size:13px}.timesheet-collaborator-controls,.timesheet-client-search-controls{flex-wrap:nowrap}.month-planner-toolbar{grid-template-columns:1fr}.month-planner-table .sticky-col{min-width:186px;width:186px}.month-planner-entry-card{display:grid;grid-template-columns:1fr}.month-planner-entry-meta{justify-items:start}.timesheet-heatmap-wrap{--timesheet-sticky-col-width: 220px;--timesheet-day-col-width: 92px}.timesheet-group-table .workload-cell{min-width:92px}.timesheet-entry-head{flex-direction:column;align-items:stretch}.timesheet-entry-actions{justify-content:stretch;flex-direction:column}.timesheet-entry-actions .btn{width:100%}.workload-overload-head{flex-direction:column;align-items:stretch}.workload-overload-list li{flex-direction:column;align-items:flex-start}.sidebar-layout{--rail-responsive-width: 64px}.app-shell{grid-template-columns:var(--rail-responsive-width) minmax(0,1fr)}.sidebar-layout{width:var(--rail-responsive-width);grid-template-columns:var(--rail-responsive-width)}.sidebar-rail{width:var(--rail-responsive-width);padding:10px 5px}.rail-brand{width:38px;height:38px}.rail-logo{width:22px;height:22px}.rail-item{min-height:56px;padding:8px 3px}.rail-item .rail-icon{width:18px;height:18px}.rail-label{display:none}.sidebar{width:min(292px,calc(100vw - var(--rail-responsive-width)))}.rail-toggle{width:36px;height:36px;font-size:18px}}.gt-page{display:grid;gap:14px}.gt-toolbar-block{background:#fff;border:.5px solid #D0D3D7;border-radius:10px;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.gt-nav{display:flex;align-items:center;gap:6px}.gt-nav-btn{background:#fff;border:.5px solid #D0D3D7;border-radius:6px;font-size:13px;color:#0578a6;font-weight:500;cursor:pointer;line-height:1}.gt-nav-arrow{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:16px}.gt-nav-today{padding:4px 12px;height:28px}.gt-nav-btn:hover{background:#e9f1f6}.gt-range-label{font-size:14px;font-weight:500;color:#1a1a1a;margin-left:4px;text-transform:capitalize}.gt-toggles{display:flex;align-items:center;gap:10px}.gt-toggle-group{display:flex;gap:6px}.gt-toggle-btn{background:#fff;border:.5px solid #D0D3D7;border-radius:6px;padding:6px 16px;font-size:13px;color:#444;cursor:pointer;font-weight:400;transition:all .15s}.gt-toggle-btn:hover{border-color:#77a8c8;color:#0578a6}.gt-toggle-btn.is-active{background:#77a8c8;border:none;border-radius:6px;padding:6px 16px;font-size:13px;color:#fff;font-weight:500}.gt-filter-bar{gap:10px;justify-content:flex-start}.gt-filter-input-wrap{position:relative;display:inline-flex;align-items:center}.gt-filter-input{border:.5px solid #D0D3D7;border-radius:7px;padding:6px 12px;font-size:13px;color:#1a1a1a;background:#fff;width:180px;outline:none}.gt-filter-input:focus{border-color:#77a8c8}.gt-filter-x{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:#e9f1f6;border:none;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1;color:#0578a6;cursor:pointer;padding:0}.gt-filter-x:hover{background:#d0e3ed}.gt-custom-select{position:relative}.gt-select-trigger{display:inline-flex;align-items:center;gap:6px;min-width:180px;border:.5px solid #D0D3D7;border-radius:7px;padding:6px 12px;font-size:13px;color:#1a1a1a;background:#fff;cursor:pointer}.gt-select-trigger.is-active{background:#e9f1f6;border-color:#77a8c8;color:#0578a6}.gt-select-label{flex:1;text-align:left}.gt-select-x{color:#aaacb0;font-size:14px;line-height:1;cursor:pointer}.gt-select-x:hover{color:#0578a6}.gt-select-chevron{font-size:10px;color:#aaacb0}.gt-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;background:#fff;border:.5px solid #D0D3D7;border-radius:10px;box-shadow:0 4px 16px #00000014;min-width:200px;z-index:100;overflow:hidden}.gt-select-option{display:flex;align-items:center;gap:6px;width:100%;text-align:left;padding:8px 14px;font-size:13px;color:#333;background:#fff;border:none;cursor:pointer}.gt-select-option:hover{background:#f5f7f9}.gt-select-option.is-selected{background:#e9f1f6;color:#0578a6;font-weight:500}.gt-select-check{width:14px;text-align:center;color:#0578a6;font-size:12px;flex-shrink:0}.gt-select-sep{height:.5px;background:#e8eaed;margin:4px 0}.gt-autocomplete{position:relative}.gt-autocomplete .gt-select-dropdown{max-height:220px;overflow-y:auto}.gt-suggestion-sub{margin-left:auto;font-size:11px;color:#aaacb0;font-weight:400}.gt-wrap{border:1px solid var(--line, #d1d9e6);border-radius:12px;background:var(--panel, #fff);overflow:hidden}.gt-scroll{overflow-x:auto;display:grid;grid-template-columns:minmax(210px,260px) 1fr}.gt-header{display:contents}.gt-header-label{display:flex;align-items:flex-end;padding:10px 12px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:var(--bg, #f5f7fa);border-bottom:2px solid var(--line, #d1d9e6);border-right:2px solid var(--line, #d1d9e6);position:sticky;left:0;z-index:4}.gt-timeline-col{min-width:calc(var(--gt-cols) * 52px)}.gt-week-headers{display:grid;grid-template-columns:repeat(var(--gt-cols),minmax(52px,1fr));background:var(--bg, #f5f7fa);border-bottom:1px solid var(--line, #d1d9e6)}.gt-week-header{padding:4px 6px;text-align:center;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;border-right:1px solid var(--line, #d1d9e6)}.gt-day-headers{display:grid;grid-template-columns:repeat(var(--gt-cols),minmax(52px,1fr));background:var(--bg, #f5f7fa);border-bottom:2px solid var(--line, #d1d9e6)}.gt-day-header{padding:6px 4px;text-align:center;border-right:1px solid rgba(209,217,230,.6)}.gt-day-header.gt-week-start{border-left:2px solid var(--line, #d1d9e6)}.gt-dh-name{display:block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8}.gt-dh-num{display:block;font-family:Space Grotesk,sans-serif;font-size:.92rem;font-weight:800;color:var(--ink, #111827);line-height:1.25}.gt-day-header.gt-today{background:#0369a114}.gt-day-header.gt-today .gt-dh-num{color:var(--accent, #0369a1)}.gt-body,.gt-row{display:contents}.gt-label-col{position:sticky;left:0;z-index:3;background:var(--panel, #fff);border-right:2px solid var(--line, #d1d9e6)}.gt-row-label{display:flex;flex-direction:column;justify-content:center;gap:1px;padding:8px 12px;min-height:40px;border-bottom:1px solid var(--line, #d1d9e6)}.gt-row-name{font-size:14px;font-weight:500;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gt-row-sub{font-size:12px;color:#aaacb0;font-weight:400}.gt-row-header .gt-row-label{background:var(--bg, #f5f7fa)}.gt-row-header .gt-row-name{font-size:.88rem;font-weight:700}.gt-row-l1 .gt-row-name{font-size:.78rem;font-weight:600;color:#475569}.gt-row-l2 .gt-row-name{font-size:.75rem;font-weight:500;color:#64748b}.gt-row-inactive .gt-row-label,.gt-row-inactive .gt-cells{opacity:.5}.gt-cells{display:grid;grid-template-columns:repeat(var(--gt-cols),minmax(52px,1fr));min-height:40px;border-bottom:1px solid var(--line, #d1d9e6)}.gt-row-header .gt-cells{background:var(--bg, #f5f7fa)}.gt-cell{display:flex;align-items:center;justify-content:center;padding:4px 3px;border-right:1px solid rgba(209,217,230,.6);position:relative}.gt-cell.gt-week-start{border-left:2px solid var(--line, #d1d9e6)}.gt-cell.gt-today{background:#0369a10a}.gt-bar{width:100%;border-radius:6px;padding:3px 6px;text-align:center;cursor:default;transition:box-shadow .12s,transform .1s;min-height:26px;display:flex;align-items:center;justify-content:center}.gt-bar:hover{box-shadow:0 2px 8px #0000001f;transform:translateY(-1px)}.gt-bar-label{font-size:.7rem;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.gt-bar-summary{background:#0369a114;color:var(--accent, #0369a1);border:1px solid rgba(3,105,161,.18)}.gt-bar-summary .gt-bar-label{font-size:.72rem;font-weight:800}.gt-pending{background:#0369a11f;color:#0369a1;border:1px solid rgba(3,105,161,.25)}.gt-confirmed{background:#22c55e24;color:#166534;border:1px solid rgba(34,197,94,.28)}.gt-adjusted{background:#f9731624;color:#9a3412;border:1px solid rgba(249,115,22,.28)}.gt-bar-perm{background:#dc26261a;color:#dc2626;border:1px solid rgba(220,38,38,.2)}.gt-bar-perm .gt-bar-label{font-size:.65rem;font-weight:800;text-transform:uppercase}.gt-bar-perm-sw{background:#8b5cf61a;color:#5b21b6;border:1px solid rgba(139,92,246,.28)}.gt-bar-perm-sw .gt-bar-label{font-size:.65rem;font-weight:800;text-transform:uppercase}.gt-empty{grid-column:1 / -1;padding:48px 24px;text-align:center;font-size:.88rem;color:#94a3b8}.gt-tooltip{position:fixed;z-index:100;transform:translate(-50%);background:var(--ink, #111827);color:#fff;border-radius:10px;padding:10px 14px;min-width:200px;max-width:320px;box-shadow:0 8px 24px #00000038;pointer-events:none;font-size:.78rem;display:flex;flex-direction:column;gap:8px}.gt-tooltip-row{display:flex;flex-direction:column;gap:2px}.gt-tooltip-row strong{font-size:.82rem;font-weight:700}.gt-tooltip-row span{font-size:.72rem;opacity:.8}.gt-tooltip-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:.68rem;font-weight:700;width:fit-content;margin-top:2px}.gt-tooltip-badge.gt-pending{background:#0369a140;color:#bae6fd}.gt-tooltip-badge.gt-confirmed{background:#22c55e40;color:#bbf7d0}.gt-tooltip-badge.gt-adjusted{background:#f9731640;color:#fed7aa}.gt-tooltip-badge.gt-noted{background:#eab30840;color:#fef08a}.gt-tooltip-total{font-weight:800;font-size:.82rem;border-top:1px solid rgba(255,255,255,.15);padding-top:6px;margin-top:2px}.gt-perm-popup{position:fixed;z-index:110;transform:translate(-50%);background:#1e293b;color:#f1f5f9;border-radius:10px;padding:10px 14px;min-width:180px;box-shadow:0 8px 24px #00000059;font-size:.78rem}.gt-perm-popup-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.gt-perm-popup-badge{font-weight:800;font-size:.72rem;text-transform:uppercase;padding:2px 8px;border-radius:4px}.gt-perm-badge-red{background:#dc262640;color:#fca5a5}.gt-perm-badge-sw{background:#eab30840;color:#fef08a}.gt-perm-popup-close{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:.72rem;font-weight:700;padding:2px 4px}.gt-perm-popup-close:hover{color:#f1f5f9}.gt-perm-popup-body{display:flex;flex-direction:column;gap:2px}.gt-perm-popup-body span{font-size:.72rem;opacity:.85}.gt-perm-popup-reason{font-style:italic;margin-top:4px;opacity:.7!important}.gt-legend{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.gt-legend-item{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#64748b}.gt-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.gt-dot.gt-pending{background:#0369a166}.gt-dot.gt-confirmed{background:#22c55e80}.gt-dot.gt-adjusted{background:#f9731680}.gt-dot.gt-noted{background:#eab30880}.gt-dot.gt-dot-perm{background:#dc262666}.gt-dot.gt-dot-perm-sw{background:#8b5cf680}@media(max-width:900px){.gt-scroll{grid-template-columns:minmax(150px,190px) 1fr}.gt-toolbar-block{flex-direction:column;align-items:stretch}.gt-toggles{flex-direction:column;gap:6px}.gt-toggle-group{justify-content:stretch}.gt-toggle-btn{flex:1;text-align:center}.gt-filter-bar{flex-direction:column;align-items:stretch}.gt-filter-input,.gt-select-trigger{width:100%}}.settings-layout{display:flex;height:100%;min-height:0}.settings-nav{width:200px;flex-shrink:0;border-right:1px solid var(--color-border, #e2e8f0);padding:24px 0;display:flex;flex-direction:column;gap:8px}.settings-nav-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted, #94a3b8);padding:0 16px 8px}.settings-nav-item{display:block;padding:8px 16px;font-size:14px;color:var(--color-text, #1e293b);text-decoration:none;border-radius:0;transition:background .15s}.settings-nav-item:hover{background:var(--color-bg-hover, #f1f5f9)}.settings-nav-item.active{background:var(--color-bg-active, #e2e8f0);font-weight:600;color:var(--color-accent, #3b82f6)}.settings-content{flex:1;padding:32px;overflow-y:auto}.settings-section-title{font-size:18px;font-weight:600;margin-bottom:24px;color:var(--color-text, #1e293b)}.settings-info-grid{display:flex;flex-direction:column;gap:12px;max-width:480px}.settings-info-row{display:flex;gap:16px;padding:10px 0;border-bottom:1px solid var(--color-border, #e2e8f0)}.settings-info-label{width:120px;font-size:13px;color:var(--color-text-muted, #94a3b8);flex-shrink:0}.settings-info-value{font-size:13px;color:var(--color-text, #1e293b)}.settings-placeholder{font-size:14px;color:var(--color-text-muted, #94a3b8)}.settings-subsection-title{font-size:15px;font-weight:600;margin-bottom:16px;color:var(--color-text, #1e293b)}.settings-form{display:flex;flex-direction:column;gap:20px;max-width:480px}.settings-field{display:flex;flex-direction:column;gap:6px}.settings-label{font-size:13px;font-weight:500;color:var(--color-text, #1e293b)}.settings-input{padding:8px 12px;border:1px solid var(--color-border, #e2e8f0);border-radius:6px;font-size:14px;background:var(--color-bg, #fff);color:var(--color-text, #1e293b);outline:none;transition:border-color .15s}.settings-input:focus{border-color:var(--color-accent, #3b82f6)}.settings-input--short{max-width:100px}.settings-select{cursor:pointer}.settings-hint{font-size:12px;color:var(--color-text-muted, #94a3b8)}.settings-feedback{padding:10px 14px;border-radius:6px;font-size:13px}.settings-feedback--success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.settings-feedback--error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.settings-actions{display:flex;gap:8px;flex-wrap:wrap}.btn-primary{background:var(--color-accent, #3b82f6);color:#fff;border:none}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-ghost{background:transparent;color:var(--color-text-muted, #94a3b8);border:1px solid var(--color-border, #e2e8f0)}.btn-ghost:hover:not(:disabled){color:var(--color-text, #1e293b)}.settings-tabs{display:flex;gap:4px;border-bottom:1px solid var(--color-border, #e2e8f0);margin-bottom:24px}.settings-tab{padding:8px 16px;font-size:13px;font-weight:500;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;color:var(--color-text-muted, #94a3b8);margin-bottom:-1px;transition:color .15s,border-color .15s}.settings-tab:hover{color:var(--color-text, #1e293b)}.settings-tab.active{color:var(--color-accent, #3b82f6);border-bottom-color:var(--color-accent, #3b82f6)}.settings-tab-content{min-height:0}.settings-rename-grid{display:flex;flex-direction:column;gap:12px;max-width:560px}.settings-rename-row{display:flex;align-items:center;gap:12px}.settings-rename-original{width:160px;font-size:13px;color:var(--color-text-muted, #94a3b8);flex-shrink:0}.settings-rename-arrow{font-size:13px;color:var(--color-text-muted, #94a3b8);flex-shrink:0}.settings-rename-row .settings-input{flex:1}.settings-rename-group{display:flex;flex-direction:column;gap:8px}.settings-rename-group-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted, #94a3b8);padding-bottom:4px;border-bottom:1px solid var(--color-border, #e2e8f0)}.roles-layout{display:flex;gap:0;height:100%;min-height:0}.roles-sidebar{width:220px;flex-shrink:0;border-right:1px solid var(--color-border, #e2e8f0);display:flex;flex-direction:column;gap:12px;padding:0 0 16px}.roles-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:0 0 12px;border-bottom:1px solid var(--color-border, #e2e8f0);margin-bottom:4px}.roles-new-btn{font-size:12px;padding:5px 10px}.roles-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.roles-list-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;border:none;background:none;cursor:pointer;border-radius:6px;font-size:13px;color:var(--color-text, #1e293b);text-align:left;transition:background .12s}.roles-list-item:hover{background:var(--color-bg-hover, #f1f5f9)}.roles-list-item.active{background:var(--color-bg-active, #e2e8f0);font-weight:600}.roles-list-label{flex:1}.roles-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;background:var(--color-bg-hover, #f1f5f9);color:var(--color-text-muted, #94a3b8);text-transform:uppercase;letter-spacing:.04em}.roles-badge--locked{background:#fef3c7;color:#92400e}.roles-detail{flex:1;padding:0 0 0 28px;overflow-y:auto}.role-editor-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.role-editor-title{font-size:16px;font-weight:600;color:var(--color-text, #1e293b);flex:1;margin:0}.role-editor-label-input{flex:1;font-size:15px;font-weight:600}.roles-delete-btn{font-size:12px;padding:5px 10px;color:#dc2626;border:1px solid #fecaca;background:#fff}.roles-delete-btn:hover{background:#fef2f2}.roles-locked-note{padding:14px;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;color:#78350f;font-size:13px}.roles-new-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.roles-permissions-grid{display:flex;flex-direction:column;border:1px solid var(--color-border, #e2e8f0);border-radius:8px;overflow:hidden;max-width:640px}.roles-permissions-head,.roles-permissions-row{display:grid;grid-template-columns:160px repeat(4,1fr);align-items:center}.roles-permissions-head{background:var(--color-bg-hover, #f8fafc);padding:8px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted, #94a3b8);border-bottom:1px solid var(--color-border, #e2e8f0)}.roles-permissions-head span,.roles-permissions-row span{text-align:center}.roles-permissions-head span:first-child,.roles-permissions-row span:first-child{text-align:left}.roles-permissions-row{padding:10px 12px;border-bottom:1px solid var(--color-border, #e2e8f0);font-size:13px;transition:background .1s}.roles-permissions-row:last-child{border-bottom:none}.roles-permissions-row:hover{background:var(--color-bg-hover, #f8fafc)}.roles-module-label{font-weight:500;color:var(--color-text, #1e293b)}.roles-radio-cell{display:flex;justify-content:center;cursor:pointer}.roles-radio-cell input[type=radio]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-accent, #3b82f6)}.roles-radio-cell.is-muted{opacity:.3;cursor:not-allowed}.roles-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.roles-confirm-box{background:#fff;border-radius:10px;padding:24px;max-width:360px;width:100%;box-shadow:0 8px 32px #0000002e;display:flex;flex-direction:column;gap:16px}.roles-confirm-box p{font-size:14px;color:var(--color-text, #1e293b)}.btn-danger{background:#dc2626;color:#fff;border:none}.btn-danger:hover:not(:disabled){background:#b91c1c}.visibility-table{display:flex;flex-direction:column;border:1px solid var(--color-border, #e2e8f0);border-radius:8px;overflow:hidden}.visibility-head,.visibility-row{display:grid;grid-template-columns:1fr repeat(3,80px);align-items:center}.visibility-head{background:var(--color-bg-hover, #f8fafc);padding:7px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted, #94a3b8);border-bottom:1px solid var(--color-border, #e2e8f0)}.visibility-head span,.visibility-row span,.visibility-check{text-align:center}.visibility-head span:first-child,.visibility-label{text-align:left}.visibility-row{padding:9px 12px;border-bottom:1px solid var(--color-border, #e2e8f0);font-size:13px;transition:background .1s}.visibility-row:last-child{border-bottom:none}.visibility-row:hover{background:var(--color-bg-hover, #f8fafc)}.visibility-label{font-weight:500;color:var(--color-text, #1e293b)}.visibility-check{display:flex;justify-content:center;cursor:pointer}.visibility-check input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:var(--color-accent, #3b82f6)}.visibility-check.is-locked{opacity:.4;cursor:not-allowed}.visibility-check.is-locked input{cursor:not-allowed}.settings-nav-group{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--color-text-muted, #94a3b8);padding:14px 16px 4px}.hour-entry-options{display:flex;flex-direction:column;gap:10px;max-width:520px}.hour-entry-option{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1.5px solid var(--color-border, #e2e8f0);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s}.hour-entry-option:hover{background:var(--color-bg-hover, #f8fafc)}.hour-entry-option.is-selected{border-color:var(--color-accent, #3b82f6);background:#eff6ff}.hour-entry-option input[type=radio]{margin-top:2px;flex-shrink:0;accent-color:var(--color-accent, #3b82f6);width:16px;height:16px}.hour-entry-option-body{display:flex;flex-direction:column;gap:3px}.hour-entry-option-label{font-size:14px;font-weight:600;color:var(--color-text, #1e293b)}.hour-entry-option-desc{font-size:12px;color:var(--color-text-muted, #64748b)}.time-input-group{display:inline-flex;align-items:center;gap:6px}.time-input-group.input,.time-input-group.select{border:none;background:transparent;padding:0;min-width:0}.time-input-hours{width:52px;border:1px solid var(--line, #cbd5e1);border-radius:8px;background:#fff;font-size:14px;text-align:center;padding:7px 6px;outline:none;box-sizing:border-box;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.time-input-hours:focus{border-color:var(--color-accent, #3b82f6)}.time-input-hours::-webkit-outer-spin-button,.time-input-hours::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.time-input-sep{font-size:13px;color:var(--color-text-muted, #94a3b8);-webkit-user-select:none;user-select:none}.time-input-minutes{border:1px solid var(--line, #cbd5e1);border-radius:8px;background:#fff;font-size:14px;padding:7px 6px;outline:none;cursor:pointer}.time-input-minutes:focus{border-color:var(--color-accent, #3b82f6)}.qs-page{display:grid;gap:16px}.qs-layout{display:grid;grid-template-columns:1fr 380px;gap:20px;align-items:start}@media(max-width:1100px){.qs-layout{grid-template-columns:1fr}}.qs-inputs{display:grid;gap:16px;min-width:0}.qs-model-panel{padding:16px 20px 14px}.qs-model-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.qs-model-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 12px 14px;border:1.5px solid var(--line);border-radius:10px;background:var(--panel, #fff);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;color:#64748b}.qs-model-card:hover{border-color:#94a3b8;box-shadow:0 2px 8px #0000000a}.qs-model-card.is-active[data-variant=servizi]{border-color:#93c5fd;background:linear-gradient(145deg,#eff6ff,#dbeafe);color:#1e40af;box-shadow:0 4px 14px #3b82f61a}.qs-model-card.is-active[data-variant=fornitura]{border-color:#86efac;background:linear-gradient(145deg,#f0fdf4,#dcfce7);color:#166534;box-shadow:0 4px 14px #22c55e1a}.qs-model-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:#0000000a}.qs-model-card.is-active .qs-model-icon{background:#fff9}.qs-model-label{font-size:14px;font-weight:700;font-family:Space Grotesk,sans-serif;letter-spacing:.01em}.qs-model-desc{font-size:11px;opacity:.7;text-align:center;line-height:1.3}.qs-formula-hint{margin-top:10px;padding:8px 12px;border-radius:6px;background:#f8fafc;border:1px solid #e2e8f0;font-size:12px;color:#64748b;text-align:center;font-family:IBM Plex Mono,monospace;letter-spacing:-.01em}.qs-section-panel{padding:16px 20px}.qs-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.qs-section-title{font-size:13px;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.04em}.qs-section-badge{font-size:12px;font-weight:600;color:#475569;background:#f1f5f9;padding:3px 10px;border-radius:20px;white-space:nowrap}.qs-lines{display:grid;gap:8px}.qs-hour-row{display:flex;align-items:flex-end;gap:8px;padding:8px 10px;border-radius:8px;background:#fafbfc;border:1px solid #eef1f6;transition:border-color .12s}.qs-hour-row:hover{border-color:#d1d9e6}.qs-hour-profile{flex:1;min-width:0}.qs-hour-field{display:flex;flex-direction:column;gap:2px;flex-shrink:0}.qs-field-micro{font-size:10px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em}.qs-input-unit{display:flex;align-items:center;gap:3px}.qs-compact-input{width:68px;text-align:right;padding:6px 8px!important;font-size:13px!important;min-width:0!important}.qs-unit{font-size:11px;color:#94a3b8;white-space:nowrap;flex-shrink:0}.qs-hour-subtotal{font-size:13px;font-weight:600;color:#334155;min-width:90px;text-align:right;flex-shrink:0;padding-bottom:2px}.qs-remove-btn{flex-shrink:0;padding:4px!important;min-height:26px!important;min-width:26px!important;border-color:transparent!important;background:transparent!important;color:#94a3b8!important;opacity:0;transition:opacity .12s,color .12s}.qs-hour-row:hover .qs-remove-btn,.qs-cost-row:hover .qs-remove-btn{opacity:1}.qs-remove-btn:hover{color:var(--danger)!important}.qs-cost-row{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;background:#fafbfc;border:1px solid #eef1f6;transition:border-color .12s}.qs-cost-row:hover{border-color:#d1d9e6}.qs-cost-label{flex:1;min-width:0}.qs-cost-value{flex-shrink:0}.qs-add-btn{margin-top:8px;color:var(--accent)!important;border-color:transparent!important;background:transparent!important;padding-left:0!important;font-weight:600}.qs-add-btn:hover{color:var(--accent-2)!important}.qs-params-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.qs-params-grid .field{margin:0}@media(max-width:600px){.qs-params-grid{grid-template-columns:1fr}}.qs-result-col{position:sticky;top:20px}.qs-result-card{border-radius:14px;background:var(--panel, #fff);border:1.5px solid var(--line);box-shadow:0 8px 24px #0f172a0f;overflow:hidden;transition:border-color .2s,box-shadow .2s}.qs-result-card[data-has-value=true]{border-color:#86efac;box-shadow:0 8px 28px #22c55e14}.qs-result-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:#f8fafc;border-bottom:1px solid #eef1f6}.qs-result-title{font-size:13px;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.04em}.qs-result-model{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;background:#e2e8f0;color:#475569;text-transform:uppercase;letter-spacing:.04em}.qs-result-body{padding:16px 20px 20px;display:grid;gap:14px}.qs-result-group{display:grid;gap:4px}.qs-result-group-title{font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.qs-result-detail-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:baseline;font-size:12px;color:#94a3b8}.qs-result-detail-row>:first-child{color:#64748b;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qs-result-detail-val{color:#475569;font-weight:600;text-align:right}.qs-result-rows{display:grid;gap:6px;padding-top:10px;border-top:1px solid #eef1f6}.qs-result-row{display:flex;justify-content:space-between;align-items:baseline}.qs-result-label{font-size:13px;color:#94a3b8}.qs-result-value{font-size:13px;font-weight:500;color:#334155}.qs-result-row-sub{padding-top:6px;border-top:1px dashed #e2e8f0}.qs-result-row-sub .qs-result-label{font-weight:600;color:#64748b}.qs-result-row-sub .qs-result-value{font-weight:600}.qs-result-multipliers .qs-result-value{font-size:12px;color:#64748b;font-weight:500}.qs-result-total{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:10px;background:linear-gradient(145deg,#f0fdf4,#ecfdf5);border:1px solid #bbf7d0}.qs-result-total-label{font-size:14px;font-weight:700;color:#0f172a}.qs-result-total-value{font-size:22px;font-weight:800;font-family:Space Grotesk,sans-serif;color:#334155}.qs-result-total-value[data-positive=true]{color:#166534}.qs-result-total[data-variant=negative]{background:linear-gradient(145deg,#fef2f2,#fee2e2);border-color:#fecaca}.qs-result-total[data-variant=negative] .qs-result-total-value{color:#dc2626}.qs-result-margin{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0}.qs-result-margin[data-positive=true]{background:#f0fdf4;border-color:#bbf7d0}.qs-result-margin[data-positive=false]{background:#fef2f2;border-color:#fecaca}.qs-result-margin-label{font-size:12px;font-weight:600;color:#64748b}.qs-result-margin[data-positive=true] .qs-result-margin-label{color:#166534}.qs-result-margin[data-positive=false] .qs-result-margin-label{color:#dc2626}.qs-result-margin-values{display:flex;align-items:baseline;gap:8px}.qs-result-margin-abs{font-size:14px;font-weight:600;color:#334155}.qs-result-margin[data-positive=true] .qs-result-margin-abs{color:#166534}.qs-result-margin[data-positive=false] .qs-result-margin-abs{color:#dc2626}.qs-result-margin-pct{font-size:13px;font-weight:700;padding:2px 8px;border-radius:4px;background:#0000000f}.qs-result-margin[data-positive=true] .qs-result-margin-pct{background:#1665341a;color:#166534}.qs-result-margin[data-positive=false] .qs-result-margin-pct{background:#dc26261a;color:#dc2626}.qs-budget-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:8px;margin-bottom:10px;font-size:13px;background:#f0fdf4;border:1px solid #bbf7d0}.qs-budget-bar[data-positive=false]{background:#fef2f2;border-color:#fecaca}.qs-budget-label{font-weight:600;color:#475569}.qs-budget-value{font-weight:700;font-family:Space Grotesk,sans-serif;color:#166534}.qs-budget-bar[data-positive=false] .qs-budget-value{color:#dc2626}.qs-budget-remaining{margin-top:12px;margin-bottom:0}.qs-dist-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:#fafbfc;border:1px solid #eef1f6;transition:border-color .12s}.qs-dist-row:hover{border-color:#d1d9e6}.qs-dist-profile{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.qs-dist-name{font-size:14px;font-weight:600;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qs-dist-rate{font-size:12px;color:#94a3b8}.qs-dist-field{display:flex;flex-direction:column;gap:2px;flex-shrink:0}.qs-dist-result{display:flex;flex-direction:column;align-items:flex-end;gap:1px;min-width:100px;flex-shrink:0}.qs-dist-hours{font-size:16px;font-weight:700;font-family:Space Grotesk,sans-serif;color:#0f172a}.qs-dist-cost{font-size:12px;color:#64748b;font-weight:500}.qs-alloc-warning{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;margin-bottom:8px;background:#fffbeb;border:1px solid #fde68a;color:#92400e}.qs-alloc-warning[data-over=true]{background:#fef2f2;border-color:#fecaca;color:#dc2626}.qs-saving-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-radius:10px;margin-top:12px;background:linear-gradient(145deg,#f0fdf4,#ecfdf5);border:1.5px solid #86efac}.qs-saving-bar[data-positive=false]{background:linear-gradient(145deg,#fef2f2,#fee2e2);border-color:#fca5a5}.qs-saving-label{font-size:13px;font-weight:700;color:#166534;text-transform:uppercase;letter-spacing:.04em}.qs-saving-bar[data-positive=false] .qs-saving-label{color:#dc2626}.qs-saving-value{font-size:18px;font-weight:800;font-family:Space Grotesk,sans-serif;color:#166534}.qs-saving-bar[data-positive=false] .qs-saving-value{color:#dc2626}.qs-wizard-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:24px}.qs-wizard-modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;width:min(640px,100%);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 12px 48px #0000002e}.qs-wizard-header{display:flex;align-items:center;padding:18px 24px;border-bottom:1px solid var(--line)}.qs-wizard-title{font-size:17px;font-weight:700;margin:0}.qs-wizard-steps{display:flex;gap:0;padding:14px 24px;border-bottom:1px solid var(--line);background:var(--bg)}.qs-wizard-step{display:flex;align-items:center;gap:6px;flex:1;opacity:.4;transition:opacity .2s}.qs-wizard-step.is-active,.qs-wizard-step.is-done{opacity:1}.qs-wizard-step-num{width:24px;height:24px;border-radius:50%;background:var(--line);color:var(--ink);display:grid;place-items:center;font-size:12px;font-weight:700;flex-shrink:0}.qs-wizard-step.is-active .qs-wizard-step-num{background:var(--accent);color:#fff}.qs-wizard-step.is-done .qs-wizard-step-num{background:#16a34a;color:#fff}.qs-wizard-step-label{font-size:12px;font-weight:600;color:var(--muted)}.qs-wizard-step.is-active .qs-wizard-step-label{color:var(--ink)}.qs-wizard-body{flex:1;overflow-y:auto;padding:20px 24px}.qs-wizard-section{display:flex;flex-direction:column;gap:14px}.qs-wizard-hint{font-size:13px;color:var(--muted);margin:0 0 4px;line-height:1.5}.qs-wizard-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 14px;font-size:13px;color:#dc2626;font-weight:500}.qs-wizard-summary{background:var(--bg);border-radius:10px;padding:12px 16px;display:flex;flex-direction:column;gap:6px}.qs-wizard-summary-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--ink)}.qs-wizard-profile-card{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.qs-wizard-profile-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.qs-wizard-profile-meta{font-size:12px;color:var(--muted)}.qs-wizard-profile-warn{font-size:11px;color:#dc2626;font-weight:600;background:#fef2f2;padding:2px 8px;border-radius:4px}.qs-wizard-mapping-row{display:flex;align-items:center;gap:8px}.qs-wizard-mapping-row .select{flex:1;min-width:0}.qs-wizard-mapping-row .qs-input-unit{width:90px;flex-shrink:0}.qs-wizard-preview{background:var(--bg);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;margin-top:6px}.qs-wizard-success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px 0;gap:4px}.qs-wizard-footer{display:flex;align-items:center;gap:10px;padding:14px 24px;border-top:1px solid var(--line)}.qs-save-bar{display:flex;justify-content:flex-end;padding:16px 0;margin-top:8px}.template-save-section{margin:0 16px 16px;padding:14px 16px;background:#f8faff;border:1px solid #c7d7f5;border-radius:10px;display:flex;flex-direction:column;gap:8px}.template-save-title{font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.template-save-hint{font-size:12px;color:var(--muted);margin:0;line-height:1.4}.template-save-row{display:flex;gap:8px;align-items:center}.template-save-row .input{flex:1;min-width:0;font-size:13px}.template-save-success{font-size:12px;font-weight:600;color:#16a34a;background:#dcfce7;border-radius:6px;padding:6px 10px}.generate-hours-section{margin:16px 16px 0;padding:14px 16px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;display:flex;flex-direction:column;gap:10px}.generate-hours-header{display:flex;flex-direction:column;gap:2px}.generate-hours-title{font-size:13px;font-weight:700;color:#166534;text-transform:uppercase;letter-spacing:.03em}.generate-hours-hint{font-size:11px;color:#4ade80;font-weight:500}.generate-hours-row{display:flex;align-items:center;gap:10px}.generate-hours-user{flex:1;font-size:13px;font-weight:600;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generate-hours-input-wrap{display:flex;align-items:center;gap:4px;flex-shrink:0}.generate-hours-input{width:72px;text-align:right;font-size:13px;padding:5px 8px}.generate-hours-unit{font-size:12px;font-weight:600;color:var(--muted)}.generate-hours-btn{align-self:flex-end;margin-top:4px}.generate-hours-success{font-size:12px;font-weight:600;color:#16a34a;background:#dcfce7;padding:6px 10px;border-radius:6px}.aw-page .aw-week-panel{padding:0;overflow:hidden}.aw-week-nav{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #e2e8f0}.aw-week-label{font-weight:600;font-size:.9rem;color:#1e293b;min-width:180px;text-align:center}.aw-legend{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid #f1f5f9;flex-wrap:wrap}.aw-legend-item{font-size:11px;font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid transparent}.aw-heatmap-wrap{overflow-x:auto}.aw-hours-planned{font-size:1rem!important;font-weight:800!important;color:#0369a1}.aw-week-table td.aw-cell-todo{background-color:#fefce8}.aw-week-table td.aw-cell-todo.aw-editing{background-color:#fef08a}.aw-cell-btn{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%}.aw-cell-btn strong{font-size:.85rem;font-weight:700}.aw-state-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;opacity:.75;line-height:1}.aw-cell-planned .aw-state-label{color:#1e40af}.aw-cell-pending .aw-state-label{color:#92400e}.aw-cell-confirmed .aw-state-label{color:#166534}.aw-cell-completed .aw-state-label{color:#64748b}.aw-proposed-hint{font-size:10px;color:#92400e;opacity:.8}.aw-internal-badge{font-size:10px;font-weight:600;padding:1px 6px;border-radius:999px;background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0;margin-left:6px}.aw-cell-inline-edit{display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px 2px;width:100%}.aw-cell-hours-input{width:70px;text-align:center;font-size:.85rem;font-weight:600;border:1px solid #93c5fd;border-radius:6px;padding:3px 6px;background:#fff;outline:none;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.aw-cell-hours-input::-webkit-outer-spin-button,.aw-cell-hours-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.aw-cell-hours-input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #bfdbfe}.aw-cell-edit-error{font-size:9px;color:#dc2626;line-height:1;text-align:center}.ots-adjust-btn.aw-adjust-blue:hover:not(:disabled){background:#dbeafe}.workload-legend .chip.aw-chip-planned{background:#fefce8;border:1px solid #fde047;color:#854d0e}.workload-legend .chip.aw-chip-pending,.workload-legend .chip.aw-chip-confirmed,.workload-legend .chip.aw-chip-completed{background:#f8fafc;border:1px solid #e2e8f0;color:#64748b}.aw-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:999px;background:#0ea5e9;color:#fff;font-size:10px;font-weight:700;line-height:1;vertical-align:middle}.task-move-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:200;min-width:200px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 12px #0000001f;padding:4px 0;display:flex;flex-direction:column}.task-move-dropdown-label{padding:4px 12px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.task-move-dropdown-item{padding:6px 12px;font-size:12px;color:#1e293b;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:none;border:none;text-align:left;width:100%}.task-move-dropdown-item:hover{background:#f1f5f9}.task-move-dropdown-item:disabled{opacity:.5;cursor:not-allowed}.task-move-dropdown-cancel{padding:5px 12px;font-size:11px;color:#64748b;cursor:pointer;background:none;border:none;border-top:1px solid #f1f5f9;text-align:left;width:100%}.task-move-dropdown-cancel:hover{background:#f8fafc;color:#dc2626}@media(max-width:640px){.aw-week-nav{flex-wrap:wrap}.aw-week-label{min-width:unset;flex:1}}
