@font-face{font-family:TeX Gyre Adventor;src:url(/fonts/texgyreadventor-regular.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:TeX Gyre Adventor;src:url(/fonts/texgyreadventor-bold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}:root{--font-family:Aptos,"Segoe UI","Segoe UI Web (West European)",-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;--font-heading:"ITC Avant Garde Gothic Pro","TeX Gyre Adventor",var(--font-family);--brand-blue-2:#bfccdb;--brand-blue-3:#7293ae;--brand-ink:#2b2625;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--gutter:clamp(0.75rem,2vw,1.5rem);--gap:clamp(0.5rem,1.2vw,0.875rem);--card-min:9rem;--panel-min:22rem;--chart-plot:clamp(9rem,24dvh,15rem);--z-raised:2;--z-sticky:10;--z-dropdown:50;--z-overlay:100;--z-modal:140;--bg:#08111e;--panel:#101c2e;--panel2:#15243a;--panel3:#172435;--border:#263750;--text:#edf4ff;--muted:#8290a6;--accent:#3b82f6;--blue:#3b82f6;--success:#34d399;--warning:#f59e0b;--danger:#ef4444;--heat-green:#34d399;--heat-yellow:#facc15;--heat-orange:#fb923c;--heat-red:#ef4444;--heat-ink:#0b1220;--shadow-sm:0 2px 10px #00000030;--shadow-md:0 12px 30px #0008;--shadow-lg:0 18px 40px #0008;--hover-brightness:1.1;color-scheme:dark}@media (prefers-color-scheme:light){html:not([data-theme=dark]){--bg:#f5f6f8;--panel:#fff;--panel2:#f8f9fa;--panel3:#f1f4f6;--border:#e1e5e9;--text:#20252b;--muted:#69737e;--accent:#2c6da4;--blue:#2c6da4;--success:#208968;--warning:#94600b;--danger:#c94b57;--heat-green:#2fa77f;--heat-yellow:#e8b923;--heat-orange:#ea8a3a;--heat-red:#d9525f;--heat-ink:#1b2430;--shadow-sm:0 2px 10px #2737460a;--shadow-md:0 12px 30px #24364a33;--shadow-lg:0 18px 40px #2737461c;--hover-brightness:0.97;color-scheme:light}}html[data-theme=light]{--bg:#f5f6f8;--panel:#fff;--panel2:#f8f9fa;--panel3:#f1f4f6;--border:#e1e5e9;--text:#20252b;--muted:#69737e;--accent:#2c6da4;--blue:#2c6da4;--success:#208968;--warning:#94600b;--danger:#c94b57;--heat-green:#2fa77f;--heat-yellow:#e8b923;--heat-orange:#ea8a3a;--heat-red:#d9525f;--heat-ink:#1b2430;--shadow-sm:0 2px 10px #2737460a;--shadow-md:0 12px 30px #24364a33;--shadow-lg:0 18px 40px #2737461c;--hover-brightness:0.97;color-scheme:light}*{box-sizing:border-box}html{overflow-y:scroll;scrollbar-gutter:stable}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;font-family:var(--font-family)}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.15}button{cursor:pointer}.shell{display:flex;min-height:100vh}.shell>aside{width:220px;background:var(--panel);border-right:1px solid var(--border);padding:18px 12px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{display:flex;gap:10px;align-items:center}nav{display:grid;grid-gap:5px;gap:5px;margin-top:25px}.shell nav a{display:flex;gap:10px;padding:11px;color:var(--muted);text-decoration:none;border-radius:var(--radius-md)}.shell nav a.active,.shell nav a:hover{background:var(--panel3);color:var(--accent)}.shell>main{min-width:0;flex:1 1}.top{height:64px;border-bottom:1px solid var(--border);padding:20px 24px;position:-webkit-sticky;position:sticky;top:0;background:color-mix(in srgb,var(--panel) 92%,transparent);z-index:var(--z-sticky)}.top span:not(.avatar):not(.notificationBadge){float:right;background:var(--panel3);padding:5px 9px;border-radius:var(--radius-pill)}.content{padding:var(--gutter);max-width:1800px;margin:auto}.pageTitle,.projectHeader{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--gap) 1.25rem;align-items:center}.pageTitle h1{margin:0 0 7px}.projectHeader h1{margin:4px 0 7px}.projectNameInput{display:block;width:min(520px,100%);margin:4px 0 7px;font:inherit;font-family:var(--font-heading);font-size:28px;font-weight:700}.dialog button.primary.danger{background:var(--danger);border-color:var(--danger)}.pageTitle p{color:var(--muted);font-family:var(--font-heading)}.actions{display:flex;gap:7px;flex-wrap:wrap}.primary,.secondary{display:inline-flex;gap:7px;align-items:center;border-radius:var(--radius-md);padding:9px 12px;border:1px solid var(--border);text-decoration:none;font-weight:600}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.secondary{background:var(--panel3);color:var(--text)}.primary:hover,.secondary:hover{filter:brightness(var(--hover-brightness))}.primary:disabled{opacity:.4}.summaryCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));grid-gap:var(--gap);gap:var(--gap);margin:var(--gutter) 0}.panel,.resourceCards article,.summaryCards.compact>div,.summaryCards>button{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.summaryCards>button{display:grid;text-align:left;color:var(--text);padding:14px;grid-template-columns:30px 1fr;grid-gap:3px 8px;gap:3px 8px}.summaryCards svg{grid-row:1/4;color:var(--accent)}.summaryCards small,.summaryCards span{color:var(--muted)}.summaryCards b{font-size:21px}.summaryCards.compact>div{padding:14px}.summaryCards.compact span{display:block;color:var(--muted)}.summaryCards.compact b{display:block;font-size:20px;margin-top:5px}.viewTabs{display:flex;overflow:auto;border-bottom:1px solid var(--border)}.viewTabs button:not(:where(.quickButton)){border:0;background:transparent;color:var(--muted);padding:12px}.viewTabs button.active{color:var(--accent);border-bottom:2px solid var(--accent)}.viewTabs .viewTabsAction{align-self:center;flex-shrink:0;margin-left:auto}.filterbar{display:flex;gap:.5rem;padding:.8rem 0;flex-wrap:wrap}.filterbar .search{display:flex;align-items:center;gap:.5rem;flex:1 1 16rem;min-width:min(100%,16rem)}.filterbar select{flex:1 1 9rem;min-width:0}.dialog input,.dialog select,.dialog textarea,.filterbar input,.filterbar select,.overviewGrid input,.overviewGrid select,.taskEditFields input,.taskEditFields select{background:var(--panel3);color:var(--text);border:1px solid var(--border);padding:9px;border-radius:var(--radius-sm)}.filterbar .search input,.overviewGrid input,.overviewGrid select{width:100%}.tableWrap{overflow:auto;max-height:min(70dvh,45rem);border:1px solid var(--border);border-radius:10px}.projectTable{border-collapse:separate;border-spacing:0;min-width:max-content;width:100%;font-size:12px}.projectTable th{position:-webkit-sticky;position:sticky;top:0;background:var(--panel2);z-index:3;text-align:left}.projectTable td,.projectTable th{padding:11px;border-bottom:1px solid var(--border);white-space:nowrap}.projectTable td{background:var(--panel)}.projectTable tr{cursor:pointer}.projectTable tr:hover td{background:var(--panel2)}.projectTable button{background:transparent;border:0;color:var(--text)}.projectTable .sticky{position:-webkit-sticky;position:sticky;left:0;background:var(--panel2);z-index:2}.invoicingTable{border-collapse:separate;border-spacing:0;width:100%;font-size:12px}.invoicingTable td,.invoicingTable th{padding:11px;border-bottom:1px solid var(--border);white-space:nowrap;text-align:right}.invoicingTable td:first-child,.invoicingTable th:first-child{text-align:left}.invoicingTable th{position:-webkit-sticky;position:sticky;top:0;background:var(--panel2);z-index:3}.invoicingTable td{background:var(--panel)}.invoicingTable .sticky{position:-webkit-sticky;position:sticky;left:0;background:var(--panel2);z-index:2}.invoicingTable th.sticky{z-index:4}.invoicingTotal td{font-weight:700;border-top:2px solid var(--border)}.invoicingTg td{font-weight:700}.progress{display:flex;align-items:center;gap:7px}.progress span{height:5px;width:3.5rem;background:var(--border);border-radius:4px}.progress i{display:block;height:100%;background:var(--blue)}.badge{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--success) 20%,transparent);color:var(--success)}.vFörsenat,.vRiskförförsening{background:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger)}.vMindreavvikelse{background:color-mix(in srgb,var(--warning) 20%,transparent);color:var(--warning)}.expanded td{background:var(--panel2)}.expandedGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));grid-gap:1.25rem;gap:1.25rem}.rowActions{display:grid;grid-gap:7px;gap:7px}.pagination button,.rowActions button{background:var(--panel3);color:var(--accent);border:1px solid var(--border);padding:7px;border-radius:var(--radius-sm)}.pagination{display:flex;justify-content:center;gap:12px;padding:12px}.resourceCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));grid-gap:var(--gap);gap:var(--gap)}.resourceCards article{padding:16px}.portfolioGantt{overflow:auto;border:1px solid var(--border)}.portfolioGanttRow{display:grid;grid-template-columns:250px max-content;min-width:max-content;align-items:center;min-height:42px}.portfolioGanttLabel{position:-webkit-sticky;position:sticky;left:0;z-index:3;align-self:stretch;display:flex;align-items:center;padding:0 15px;background:var(--panel)}.portfolioGanttTrack{position:relative;isolation:isolate;height:30px;background:repeating-linear-gradient(90deg,var(--panel3) 0,var(--panel3) 55px,var(--border) 56px)}.portfolioGanttTrack i{position:absolute;overflow:hidden}.portfolioGanttTrack .projectSpan{z-index:1;border-radius:3px;opacity:.55}.portfolioGanttTrack .activitySegment{z-index:calc(2 + var(--layer, 0));border-radius:5px;box-shadow:0 0 0 1px var(--panel)}.portfolioGanttTrack .activitySegment:hover{z-index:50}.portfolioGanttHeader .portfolioGanttLabel{color:var(--muted);font-size:11px;font-weight:800}.portfolioGanttMonths{display:flex;height:42px;background:var(--panel);border-bottom:1px solid var(--border)}.portfolioGanttMonths>span{display:flex;align-items:center;flex-shrink:0;padding:0 8px;overflow:hidden;white-space:nowrap;border-right:1px solid var(--border);color:var(--muted);font-size:11px;font-weight:800;text-transform:capitalize}.portfolioGanttMonths .todayFlag{position:absolute;bottom:3px;z-index:1;padding:0 4px;border-radius:3px;background:var(--accent);color:#fff;font-size:9px;font-weight:800;line-height:14px;text-transform:uppercase;transform:translateX(-50%)}.portfolioGantt em,.segment em{position:absolute;inset:0 auto 0 0;background:#0003}.detailPanel{padding:16px;margin-top:15px;overflow:hidden}.overviewGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));grid-gap:var(--gap);gap:var(--gap)}.overviewGrid section label{display:grid;grid-gap:6px;gap:6px;margin-bottom:18px;font-size:13px;font-weight:600;color:var(--muted)}.overviewGrid section label:last-child{margin-bottom:0}.projectInfo h2{margin-bottom:14px}.projectInfo h3{margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--border);color:var(--muted);font-size:14px}.projectInfoColumns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));grid-gap:0 2rem;gap:0 2rem}.projectInfoColumns dl{margin:0;container:infoColumn/inline-size}.projectInfoRow{display:grid;grid-template-columns:minmax(6rem,10rem) minmax(0,1fr);align-items:center;grid-gap:.75rem;gap:.75rem;min-height:2.75rem}@container infoColumn (max-width: 18rem){.projectInfoRow{grid-template-columns:minmax(0,1fr);gap:.15rem;padding:.4rem 0}}.projectInfoRow dt{color:var(--muted)}.projectInfoRow dd{margin:0;min-width:0;color:var(--text)}.projectInfoRow input,.projectInfoRow select{width:100%;background:var(--panel3);color:var(--text);border:1px solid var(--border);padding:9px;border-radius:var(--radius-sm)}.projectInfoPerson{display:inline-flex;align-items:center;gap:10px}.projectCheckpoints{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));grid-gap:.65rem 2rem;gap:.65rem 2rem}.projectCheckpoint{display:flex;align-items:center;gap:8px;color:var(--text)}.projectCheckpoint input:disabled{cursor:default}.projectCheckpointInfo{display:inline-flex;color:var(--muted)}.assignment,.resourceRow{display:flex;justify-content:space-between;padding:12px;background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius-md);margin:8px}.assignment span,.resourceRow span{display:block;color:var(--muted)}.taskEditCard{padding:12px;background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius-md);margin:8px}.taskEditFields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));grid-gap:.75rem;gap:.75rem}.taskEditFields label{display:grid;grid-gap:5px;gap:5px;font-size:12px;color:var(--muted)}.ganttToolbar{display:flex;justify-content:space-between;padding:10px;color:var(--muted)}.gantt{overflow:auto;max-height:650px}.ganttHeader,.ganttRow{display:grid;grid-template-columns:300px 2800px;min-width:3100px}.ganttHeader{grid-template-columns:300px repeat(100,28px)}.ganttHeader>*{position:-webkit-sticky;position:sticky;top:0;background:var(--panel2);padding:8px;border:1px solid var(--border);z-index:var(--z-raised)}.ganttHeader>b{left:0;z-index:var(--z-sticky)}.ganttRow>button{position:-webkit-sticky;position:sticky;left:0;z-index:var(--z-raised);text-align:left;background:var(--panel);color:var(--text);border:0;border-bottom:1px solid var(--border);padding:10px}.plannedResources{display:grid;grid-gap:8px;gap:8px;margin-bottom:16px}.plannedResources h4{margin:0;color:var(--muted);font-size:13px}.plannedResource{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius-sm)}.plannedResource small{display:block;color:var(--muted)}.ganttRowTitle{display:flex;align-items:center;justify-content:space-between;gap:8px}.avatarStack{display:inline-flex;flex-shrink:0}.avatarStack .avatar{width:24px;height:24px;font-size:9px;box-shadow:0 0 0 2px var(--panel)}.avatarStack .avatar+.avatar{margin-left:-3px}.avatarStack .avatarMore{background:var(--panel3);color:var(--text)}.ganttRow>button small{display:block;color:var(--muted)}.ganttRow>div{height:45px;position:relative;background:repeating-linear-gradient(90deg,var(--panel) 0,var(--panel) 27px,var(--border) 28px);border-bottom:1px solid var(--border)}.ganttAddRow>button{display:flex;align-items:center;gap:8px;width:100%;color:var(--accent);font-weight:600;cursor:pointer}.ganttAddRow>button:hover{background:var(--panel3)}.segment{position:absolute;top:9px;height:27px;border-radius:5px;cursor:-webkit-grab;cursor:grab;overflow:hidden;font-style:normal}.segment .overbookedBadge{position:relative;display:inline-grid;place-items:center;width:18px;height:18px;margin-left:4px;vertical-align:middle;border-radius:var(--radius-pill);background:#fff;color:var(--danger)}.segment .overbookedBadge svg{display:block;width:13px;margin-top:-1px}.segment.overReported em{background:color-mix(in srgb,var(--danger) 70%,transparent)}.reportHoursForm{display:flex;align-items:end;gap:10px;margin-top:16px}.reportHoursForm label{display:grid;flex:1 1;grid-gap:6px;gap:6px;font-size:13px;font-weight:600;color:var(--muted)}.reportHoursForm input{background:var(--panel3);color:var(--text);border:1px solid var(--border);padding:9px;border-radius:var(--radius-sm)}.segment>span{position:relative;padding-left:7px;line-height:27px}.segment>small{position:relative;display:inline-grid;place-items:center;box-sizing:border-box;min-width:22px;height:22px;margin-left:4px;padding:0 3px;vertical-align:middle;border-radius:var(--radius-pill);font-size:10px;font-weight:700;line-height:1}.segment>svg{position:relative;width:13px}.segment.generic{outline:2px dashed var(--warning)}.segment u{position:absolute;right:0;top:0;width:8px;height:100%;background:#fff3;cursor:ew-resize}.connector{position:absolute;top:22px;border-top:2px dotted var(--muted);height:0}.detail{position:fixed;right:0;top:0;width:min(590px,100%);height:100vh;background:var(--panel);border-left:1px solid var(--border);z-index:var(--z-overlay);overflow:auto;box-shadow:-20px 0 60px #0008}html[data-theme=light] .detail{box-shadow:-20px 0 60px #2737461c}@media (prefers-color-scheme:light){html:not([data-theme=dark]) .detail{box-shadow:-20px 0 60px #2737461c}}.detail>header{display:flex;justify-content:space-between;padding:18px;border-bottom:1px solid var(--border)}.detail header button{background:transparent;border:0;color:var(--muted)}.detail nav{display:flex;overflow:auto;margin:0;padding:0 15px;border-bottom:1px solid var(--border)}.detail nav button{background:transparent;border:0;color:var(--muted);padding:11px}.detail nav button.active{color:var(--accent);border-bottom:2px solid var(--accent)}.detailBody{padding:18px}.metrics{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.metrics div{padding:12px;background:var(--panel2);border-radius:var(--radius-sm)}.metrics span{display:block;color:var(--muted)}.assignmentChoices{display:grid;grid-gap:7px;gap:7px}.assignmentChoices button{text-align:left;background:var(--panel3);color:var(--text);border:1px solid var(--border);padding:10px;border-radius:var(--radius-md)}.assignmentChoices small,.assignmentChoices span{display:block;color:var(--muted)}.error{color:var(--danger)}.backdrop{position:fixed;inset:0;background:#020713bb;display:grid;place-items:center;z-index:70}.dialog{width:min(760px,94%);max-height:92vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg)}.dialog footer,.dialog header{display:flex;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border)}.dialog header button{background:transparent;color:var(--text);border:0}.dialogBody{padding:16px}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.grid2 label{display:grid;grid-gap:5px;gap:5px}.grid2 .wide{grid-column:1/-1}.empty{padding:40px;text-align:center}.resourceCards{margin-top:20px}.resourceCards article p{color:var(--muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media (max-width:700px){.grid2{grid-template-columns:1fr}.detail{width:100%}}.groupedTask{margin-left:24px}.groupHeading{background:var(--panel2)}.brand>a{display:flex;align-items:center;min-width:0}.brand>a img{display:block;width:150px;height:auto;max-height:48px;object-fit:contain}.sidebarCollapsed .brand>a img{width:42px;object-fit:cover;object-position:left}.shell>aside{transition:width .2s ease;display:flex;flex-direction:column}.sidebarCollapsed>aside{width:76px}.sidebarCollapsed .collapseButton span,.sidebarCollapsed nav a span{display:none}.sidebarCollapsed .brand,.sidebarCollapsed .collapseButton,.sidebarCollapsed nav a{justify-content:center}.mobileClose,.mobileMenu{display:none}.mobileClose{place-items:center;width:38px;height:38px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel3);color:var(--text)}@media (max-width:700px){.shell{display:block}.shell.sidebarCollapsed>aside,.shell>aside{position:fixed;inset:0;z-index:var(--z-overlay);width:100%;height:100dvh;padding:18px 20px;overflow-y:auto;visibility:hidden;opacity:0;transform:translateX(-100%);transition:transform .2s ease,opacity .2s ease,visibility .2s}.shell>aside.mobileOpen{visibility:visible;opacity:1;transform:none}.shell>aside .brand{display:flex;align-items:center;justify-content:space-between}.shell>aside .brand>a img{width:150px;object-fit:contain}.shell>aside nav{margin-top:18px}.shell>aside nav a{justify-content:flex-start;padding:14px 12px;font-size:16px}.shell>aside nav a span{display:inline}.shell>aside nav a svg{width:20px}.shell>aside .collapseButton{display:none}.mobileClose,.mobileMenu{display:grid}.mobileMenu{position:fixed;z-index:var(--z-dropdown);top:15px;left:14px;width:38px;height:38px;place-items:center;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel3);color:var(--text)}.top{padding-left:62px}}@media (min-width:701px){.sidebarCollapsed>aside{z-index:var(--z-dropdown)}.sidebarCollapsed .collapseButton,.sidebarCollapsed nav a{position:relative}.sidebarCollapsed [data-label]:after{content:attr(data-label);position:absolute;top:50%;left:calc(100% + .6rem);z-index:var(--z-dropdown);padding:.35rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel3);box-shadow:var(--shadow-md);color:var(--text);font-size:.75rem;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transform:translateY(-50%);transition:opacity .12s ease}.sidebarCollapsed [data-label]:focus-visible:after,.sidebarCollapsed [data-label]:hover:after{opacity:1}}.brand{min-height:40px}.collapseButton{gap:10px;margin-top:auto;padding:10px;border:0;border-top:1px solid var(--border);background:transparent;color:var(--muted);text-align:left}.collapseButton,.top{display:flex;align-items:center}.top{justify-content:flex-end;height:72px;padding:12px 28px}.eyebrow{color:var(--accent);font-family:var(--font-heading);font-size:10px;font-weight:700;letter-spacing:.14em}.topTools{display:flex;align-items:center;justify-content:flex-end;gap:10px}.iconButton{display:grid;place-items:center;width:36px;height:36px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--muted);padding:0}.iconButton:hover{background:var(--panel3);color:var(--text)}.quickCreate{position:relative}.quickButton{display:grid;place-items:center;width:36px;height:36px;padding:0;border-radius:var(--radius-md)}.quickMenu{position:absolute;right:0;top:44px;z-index:var(--z-modal);min-width:170px;padding:6px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel3);box-shadow:var(--shadow-lg)}.quickMenu button{display:flex;align-items:center;gap:8px;width:100%;padding:9px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);text-align:left}.quickMenu button:hover{background:var(--panel2)}.notificationMenu{position:relative}.notificationBadge{position:absolute;top:2px;right:2px;display:grid;place-items:center;min-width:16px;height:16px;padding:0 3px;border-radius:var(--radius-pill);background:var(--danger);color:#fff;font-size:10px;font-weight:600}.notificationPanel{position:absolute;right:0;top:44px;z-index:var(--z-modal);display:grid;grid-gap:8px;gap:8px;width:320px;max-height:400px;overflow:auto;padding:10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel3);box-shadow:var(--shadow-lg)}.notificationItem{display:grid;grid-gap:4px;gap:4px;padding:9px;border-radius:var(--radius-sm);background:var(--panel2);cursor:pointer}.notificationItem.unread{border:1px solid var(--accent)}.notificationItem p{color:var(--text);font-size:13px}.notificationItem small{color:var(--muted)}.notificationItem a{color:var(--accent);font-size:12px}.userTrigger{display:flex;align-items:center;gap:9px;border:0;background:transparent;padding:4px 6px 4px 12px;border-radius:var(--radius-pill)}.userTrigger:hover{background:var(--panel3)}.userTriggerName{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}.avatar{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-weight:800;font-size:11px}.kpiGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--card-min)),1fr));grid-gap:var(--gap);gap:var(--gap);margin:var(--gutter) 0}.kpiCard{display:block;min-width:0;padding:clamp(.75rem,1.5vw,1rem);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);color:var(--text);text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .2s,border-color .2s,box-shadow .2s}.kpiCard:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow-md)}.kpiTop{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.kpiCard strong{display:block;margin:.8rem 0 .45rem;font-size:clamp(1.25rem,2.2vw,1.6rem);letter-spacing:-.03em}.kpiCard small{color:var(--muted)}.kpiCard svg{color:var(--accent)}.kpiCard.green svg{color:#48d597}.kpiCard.orange svg{color:#fb923c}.kpiCard.purple svg{color:#b287ff}.kpiCard.yellow svg{color:#eab308}.kpiCard.red svg{color:#f87171}.trend{margin-right:5px;color:var(--success)}.dashboard{container:dashboard/inline-size}.dashboardGrid{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:var(--gap);gap:var(--gap)}@container dashboard (min-width: 42rem){.dashboardGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboardGrid>.riskPanel{grid-column:1/-1}}@container dashboard (min-width: 62rem){.dashboardGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboardGrid>.riskPanel{grid-column:auto}}.panel{border-radius:10px!important;padding:18px!important}.dashboardGrid>*{min-width:0}.peopleWeekPanel,.utilizationPanel{margin-bottom:var(--gap)}.heatScroll{overflow-x:auto;padding-bottom:.4rem}.heatGrid{display:grid;grid-template-columns:var(--name) repeat(var(--weeks),var(--cell));grid-gap:var(--cell-gap);gap:var(--cell-gap);align-items:center;width:max-content}.heatRow{display:contents}.heatCorner,.heatName{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:var(--panel)}.heatName{display:flex;flex-direction:column;gap:.15rem;min-width:0;padding:.2rem .5rem .2rem 0}.heatName b{font-size:.75rem}.heatName b,.heatName small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.heatName small,.heatWeek{color:var(--muted);font-size:.65rem}.heatWeek{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.25rem 0;border-radius:var(--radius-pill);line-height:1.1}.heatWeek b{color:var(--text);font-size:.7rem}.heatWeek.past{opacity:.6}.heatWeek.current{background:var(--accent);color:#fff}.heatWeek.current b{color:#fff}.heatCell{display:grid;width:var(--cell);height:var(--cell);border-radius:.5rem}.heat-green{background:var(--heat-green)}.heat-yellow{background:var(--heat-yellow)}.heat-orange{background:var(--heat-orange)}.heat-red{background:var(--heat-red)}.heatCell.over,.heatLegend i.over{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--danger)}.heatLegend{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;margin-top:.9rem;color:var(--muted);font-size:.7rem}.heatLegend span{display:flex;align-items:center;gap:.4rem}.heatLegend i{display:inline-block;width:.75rem;height:.75rem;border-radius:.2rem}.heatEmpty{color:var(--muted)}.portfolioPanel{container:portfolio/inline-size}.sectionHeading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.sectionHeading h2{margin:5px 0 0;font-size:16px}.sectionHeading>a{display:flex;align-items:center;gap:3px;color:var(--accent);text-decoration:none;font-size:12px}.portfolioRows{display:grid}.portfolioRow{display:grid;grid-template-columns:.5rem minmax(0,1fr) minmax(5rem,9rem) auto 1rem;align-items:center;grid-gap:.75rem;gap:.75rem;padding:.75rem 0;border-top:1px solid var(--border);color:var(--text);text-decoration:none}.portfolioRow:hover{background:#ffffff04}.projectDot{width:8px;height:8px;border-radius:50%}.projectName b,.projectName small{display:block}.projectName b{font-size:12px}.projectName small,.variance small{margin-top:4px;color:var(--muted);font-size:11px}.miniProgress{display:flex;align-items:center;gap:8px}.miniProgress span{height:5px;flex:1 1;border-radius:5px;background:#25354a}.miniProgress i{display:block;height:100%;border-radius:5px;background:var(--accent)}.miniProgress b,.variance b{font-size:11px}.variance b{display:block}.positive{color:var(--success)}.negative{color:var(--danger)}.chartLegend{display:flex;gap:16px;color:var(--muted);font-size:11px}.chartLegend span{display:flex;align-items:center;gap:5px}.chartLegend i{display:inline-block;width:7px;height:7px;border-radius:50%}.role-tekniker{background:var(--accent)}.role-montor{background:var(--success)}.role-projektledare{background:var(--warning)}.legendOver{background:var(--danger)}.barChartScroll{overflow-x:auto;padding-bottom:6px}.barChart{--plot:var(--chart-plot);--axis:1.2rem;min-width:calc(var(--weeks) * 3.4rem);position:relative;display:flex;align-items:flex-end;height:calc(var(--plot) + var(--axis) + .6rem);padding-top:.6rem}.capacityLine{position:absolute;left:0;right:0;bottom:calc(var(--axis) + var(--plot) * var(--line));z-index:1;height:0;border-top:1px dashed var(--muted);pointer-events:none}.capacityLine small{position:absolute;left:0;bottom:2px;color:var(--muted);font-size:9px;line-height:1}.chartColumn{display:flex;flex:1 1;height:100%;flex-direction:column;justify-content:flex-end;align-items:center}.barStack{display:flex;align-items:flex-end;flex:none;gap:2px;width:clamp(1.25rem,70%,2.25rem);height:var(--plot)}.bar{position:relative;display:flex;flex:1 1;flex-direction:column;justify-content:flex-start;min-height:2px;overflow:hidden;border-radius:3px 3px 1px 1px}.bar i{display:block;background:var(--danger)}.chartColumn small{flex:none;height:var(--axis);color:var(--muted);font-size:9px;line-height:var(--axis)}.milestoneRow{display:grid;grid-template-columns:minmax(3.25rem,auto) minmax(0,1fr) 1rem;grid-gap:.65rem;gap:.65rem;align-items:center;padding:.7rem 0;border-top:1px solid var(--border)}.milestoneDate{color:var(--accent);font-size:11px;font-weight:700}.milestoneRow b,.milestoneRow small{display:block}.milestoneRow b{font-size:12px}.milestoneRow small{margin-top:3px;color:var(--muted);font-size:11px}.riskBars>div{display:grid;grid-template-columns:minmax(4rem,auto) 1.5rem minmax(0,1fr);grid-gap:.65rem;gap:.65rem;align-items:center;margin:.9rem 0}.riskLabel{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px}.riskLabel i{width:7px;height:7px;border-radius:50%}.riskLow{background:var(--success)}.riskMedium{background:var(--warning)}.riskHigh{background:var(--danger)}.riskBar{height:6px;border-radius:4px;background:var(--panel3)}.riskBar i{display:block;height:100%;border-radius:4px;background:var(--accent)}.conflictCallout{display:flex;align-items:center;gap:9px;margin-top:18px;padding:10px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--warning) 20%,transparent);color:var(--warning)}.conflictCallout span{display:flex;flex:1 1;flex-direction:column}.conflictCallout small{margin-top:3px;color:var(--muted);font-size:11px}.activityStrip{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.1rem;margin-top:var(--gap);padding:.9rem 1rem;border:1px solid var(--border);border-radius:10px;color:var(--muted);font-size:11px}.activityStrip b{color:var(--text)}.activityStrip a{display:flex;align-items:center;gap:4px;margin-left:auto;color:var(--accent);text-decoration:none}.activityStrip span{padding-left:1.1rem;border-left:1px solid var(--border)}@container portfolio (max-width: 30rem){.portfolioRow{grid-template-columns:.5rem minmax(0,1fr) minmax(4rem,7rem) 1rem}.portfolioRow .variance{display:none}}html[data-theme=light] .activityStrip{background:#fff}.chartActions{display:flex;align-items:center;gap:14px}.chartToggle{display:inline-flex;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-sm)}.chartToggle button{display:grid;place-items:center;width:32px;height:28px;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer}.chartToggle button.active{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}.lineChart{--plot:var(--chart-plot);min-width:calc(var(--weeks) * 3.4rem)}.linePlot{position:relative;height:var(--plot);margin-top:10px}.linePlot svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.lineSeries{fill:none;stroke-width:2;stroke-linejoin:round;vector-effect:non-scaling-stroke}.stroke-tekniker{stroke:var(--accent)}.stroke-montor{stroke:var(--success)}.stroke-projektledare{stroke:var(--warning)}.strokeOver{stroke:var(--danger)}.lineCapacity{position:absolute;right:0;left:0;height:0;border-top:1px dashed var(--muted);pointer-events:none}.lineCapacity small{position:absolute;bottom:2px;left:0;color:var(--muted);font-size:9px;line-height:1}.lineDot{position:absolute;width:8px;height:8px;border-radius:50%;transform:translate(-50%,50%)}.lineDot.over{background:var(--danger)}.lineAxis{display:flex;margin-top:7px}.lineAxis small{flex:1 1;color:var(--muted);font-size:9px;text-align:center}.viewToggle{display:flex;gap:4px;margin:22px 0 14px;padding:4px;width:max-content;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel3)}.viewToggle button{padding:8px 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:12px}.viewToggle button.active,.viewToggle button:hover{background:var(--panel2);color:var(--text)}.projectPlanPanel .gantt{max-height:none}.projectPlanPanel select{padding:8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel3);color:var(--text)}.capacitySummary{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px}.riskSummary{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin:22px 0}.riskSummary>div{display:flex;flex-direction:column;gap:5px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-sm)}.riskSummary b{font-size:24px}.riskSummary span{color:var(--muted);font-size:11px}.riskTable{display:grid}.riskTable>a{display:grid;grid-template-columns:65px 1fr 280px 16px;grid-gap:13px;gap:13px;align-items:center;padding:14px 0;border-top:1px solid var(--border);color:var(--text);text-decoration:none}.riskTable>a:hover{background:#ffffff04}.riskTable b,.riskTable small{display:block}.riskTable small{margin-top:4px;color:var(--muted);font-size:11px}.riskPill{padding:4px 7px;border-radius:var(--radius-sm);font-size:10px;text-align:center;background:color-mix(in srgb,var(--success) 20%,transparent);color:var(--success)}.riskPill.medel{background:color-mix(in srgb,var(--warning) 20%,transparent);color:var(--warning)}.riskPill.hög,.riskPill.kritisk{background:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger)}.riskMessage{display:flex;align-items:center;gap:6px;color:var(--warning);font-size:11px}.reportGrid{display:grid;grid-template-columns:1.5fr 1fr;grid-gap:14px;gap:14px}.orgChildren{display:flex;flex-direction:column;gap:12px;margin-top:12px;padding-left:20px;border-left:1px solid var(--border)}.reportBars>div{display:grid;grid-template-columns:190px 1fr 35px;grid-gap:12px;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--border);font-size:11px}.reportBars i{height:7px;border-radius:5px;background:#25364b}.reportBars b{display:block;height:100%;border-radius:5px;background:var(--accent)}.reportStat{display:flex;align-items:center;gap:10px;padding:18px 0;border-top:1px solid var(--border);color:var(--accent)}.reportStat b{color:var(--text);font-size:23px}.reportStat span{color:var(--muted);font-size:11px}.emptyActions{display:flex;gap:18px;margin-top:12px;color:var(--success);font-size:11px}.emptyActions span{display:flex;align-items:center;gap:5px}.compact b{display:block;margin-top:7px;font-size:22px}@media (max-width:800px){.viewToggle{max-width:100%;overflow:auto}.viewToggle button{white-space:nowrap}.riskMessage{display:none}.reportGrid,.riskSummary{grid-template-columns:1fr 1fr}.riskTable>a{grid-template-columns:55px 1fr 16px}.reportBars>div{grid-template-columns:110px 1fr 30px}.emptyActions{flex-direction:column;gap:8px}}.ganttCalendar .segmentResourceLine{position:absolute;top:42px;height:4px;z-index:3;border-radius:999px;pointer-events:none;box-shadow:0 0 0 1px #10172255}.ganttCalendar .segmentResourceLine.assigned{background:#f044d7}.ganttCalendar .segmentResourceLine.required{background:#ff4d5f}.ganttResourceSummary{display:grid;grid-template-columns:var(--gantt-label-width) max-content;min-width:max-content;border-top:2px solid var(--border);background:var(--panel)}.ganttResourceSummaryLabel{position:-webkit-sticky;position:sticky;left:0;z-index:5;display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:48px;padding:7px 12px;background:var(--panel);border-right:1px solid var(--border)}.ganttResourceSummaryLabel b{font-size:14px;color:var(--text)}.ganttResourceSummaryLabel small{color:var(--muted)}.ganttResourceSummaryTimeline{display:flex;min-height:48px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(var(--gantt-day-width) - 1px),#ffffff08 calc(var(--gantt-day-width) - 1px),#ffffff08 var(--gantt-day-width))}.ganttResourceSummaryTimeline>span{display:grid;place-items:center;width:var(--gantt-day-width);border-right:1px solid #ffffff08;color:var(--muted);font-size:10px;font-weight:800}.ganttResourceSummaryTimeline>span.weekend{background:#0a111b;color:#5e6a7a}.ganttResourceSummaryTimeline>span.hasValue{color:#f044d7;background:#f044d70d}html[data-theme=light] .ganttResourceSummary{background:#fff}html[data-theme=light] .ganttResourceSummaryTimeline>span.weekend{background:#e8edf3;color:#78879a}html[data-theme=light] .ganttResourceSummaryTimeline>span.hasValue{background:#f044d718;color:#bd238f}.ganttCalendar{--gantt-label-width:260px;--gantt-day-width:28px;overflow:auto;padding-bottom:16px}.ganttCalendar,.portfolioGantt{--gantt-past-shade:#00000047}html[data-theme=light] .ganttCalendar,html[data-theme=light] .portfolioGantt{--gantt-past-shade:#0f172a17}.pastLayer{position:absolute;top:0;bottom:0;left:0;z-index:0;pointer-events:none;background:var(--gantt-past-shade);box-shadow:2px 0 0 color-mix(in srgb,var(--accent) 60%,transparent)}.ganttCalendar .ganttDateRow,.ganttCalendar .ganttResourceSummaryTimeline{position:relative}.ganttCalendar .ganttDateRow>span.today{color:var(--accent);font-weight:800;box-shadow:inset 0 -3px 0 var(--accent)}.ganttCalendar .ganttHeader,.ganttCalendar .ganttRow{display:grid;grid-template-columns:var(--gantt-label-width) max-content;min-width:max-content}.ganttCalendar .ganttHeader{top:0;z-index:8;border-bottom:1px solid var(--border)}.ganttCalendar .ganttHeader,.ganttHeaderLabel{position:-webkit-sticky;position:sticky;background:var(--panel)}.ganttHeaderLabel{display:flex;align-items:flex-end;padding:10px 12px;font-size:11px;font-weight:800;color:var(--muted);left:0;z-index:10;border:0;border-right:1px solid var(--border)}.ganttTimelineHeader{display:block;padding:0;border:0}.ganttDateRow,.ganttMonthRow{display:flex;height:29px}.ganttMonthRow{border-bottom:1px solid var(--border)}.ganttMonthRow>span{display:flex;align-items:center;padding:0 8px;border-right:1px solid var(--border);color:#78a9ec;font-size:11px;font-weight:800;text-transform:capitalize;white-space:nowrap;overflow:hidden}.ganttDateRow>span{display:grid;place-items:center;width:var(--gantt-day-width);flex-shrink:0;overflow:hidden;border-right:1px solid #ffffff08;color:var(--muted);font-size:10px}.ganttDateRow>span.weekend{background:#0a111b;color:#5e6a7a}.ganttCalendar .ganttRow{border-bottom:1px solid var(--border)}.ganttCalendar .ganttRow>button{position:-webkit-sticky;position:sticky;left:0;z-index:5;width:var(--gantt-label-width);border-right:1px solid var(--border);background:var(--panel);text-align:left}.ganttRowTimeline{position:relative;min-height:50px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(var(--gantt-day-width) - 1px),#ffffff08 calc(var(--gantt-day-width) - 1px),#ffffff08 var(--gantt-day-width))}.weekendLayer{position:absolute;inset:0;z-index:0;pointer-events:none}.weekendLayer i{position:absolute;top:0;bottom:0;background:#0a111b99}.ganttRowTimeline>.connector,.ganttRowTimeline>.segment{z-index:2}.ganttCalendar .connector{z-index:1}.ganttCalendar .segment{cursor:-webkit-grab;cursor:grab}.ganttCalendar .segment:active{cursor:-webkit-grabbing;cursor:grabbing}.ganttCalendar .ganttRow,.ganttCalendar .segment{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.ganttCalendar .segment[data-holding=true]{box-shadow:0 0 0 2px #ffffffcc,0 6px 16px #0006}.ganttCalendar .segment u[data-holding=true]{background:#ffffffcc}.ganttCalendar .ganttRowTimeline[data-holding=true]:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:color-mix(in srgb,var(--accent) 22%,transparent)}@media (pointer:coarse){.ganttCalendar .segment u{width:min(20px,40%)}}@media (max-width:700px){.ganttCalendar{--gantt-label-width:210px;--gantt-day-width:28px}.ganttHeaderLabel,.ganttMonthRow>span{font-size:10px}}.ganttCalendar .ganttRow.ganttGroupRow,.ganttCalendar .ganttRow.ganttGroupRow .ganttRowTimeline,.ganttCalendar .ganttRow.ganttGroupRow>button{min-height:48px}.ganttCalendar .ganttRow.ganttGroupRow>button{background:var(--panel2);cursor:pointer}.groupToggle{display:inline-flex;align-items:center;gap:6px}.groupSummary{position:absolute;top:14px;box-sizing:border-box;height:20px;z-index:2;font-style:normal}.groupSummary.open{border-top:4px solid var(--danger)}.groupSummary.open:after,.groupSummary.open:before{content:"";position:absolute;top:-4px;width:0;height:0;border-top:12px solid var(--danger)}.groupSummary.open:before{left:0;border-right:8px solid transparent}.groupSummary.open:after{right:0;border-left:8px solid transparent}.groupSummaryBar{position:absolute;inset:auto 0 0 0;height:10px;overflow:hidden;border-radius:3px;background:color-mix(in srgb,var(--muted) 45%,transparent)}.groupSummaryBar em{display:block;height:100%;background:color-mix(in srgb,var(--accent) 80%,transparent)}.ganttCalendar .ganttRow.ganttGroupedRow>button{padding-left:30px}.unplannedTimeline{cursor:crosshair}.unplannedTimeline:hover{background-color:color-mix(in srgb,var(--accent) 15%,transparent)}.planningPreview{position:absolute;top:9px;bottom:9px;z-index:var(--z-raised);display:flex;align-items:center;justify-content:center;min-width:28px;border:1px dashed var(--accent);border-radius:5px;background:color-mix(in srgb,var(--accent) 33%,transparent);color:#dbeafe;pointer-events:none}.planningPreview b{padding:3px 6px;border-radius:4px;background:#17345a;box-shadow:0 2px 8px #0005;font-size:10px;white-space:nowrap}.unplannedTimeline:active{cursor:ew-resize}html[data-theme=light] .planningPreview{color:#1e3a63}.ganttToolbar span:after{content:" Klicka på en tom rad för att planera en arbetsdag, eller dra för att välja ett spann.";color:var(--accent)}.ganttCalendar .ganttRow,.ganttCalendar .ganttRow>button,.ganttCalendar .ganttRowTimeline{min-height:66px}.ganttCalendar .segmentDragPreview{position:absolute;top:9px;height:27px;z-index:var(--z-raised);border:2px dashed var(--accent);border-radius:5px;opacity:.72;pointer-events:none;box-sizing:border-box}.ganttCalendar .segmentDragPreview span{position:absolute;top:29px;left:50%;transform:translateX(-50%);padding:3px 6px;border-radius:4px;background:#17345a;color:#dbeafe;box-shadow:0 2px 8px #0005;font-size:10px;font-weight:800;white-space:nowrap}.ganttCalendar .segmentResizePreview{position:absolute;top:9px;height:27px;z-index:var(--z-raised);border:2px dashed var(--accent);border-radius:5px;opacity:.72;pointer-events:none;box-sizing:border-box}.ganttCalendar .segmentResizePreview span{position:absolute;top:29px;left:50%;transform:translateX(-50%);padding:3px 6px;border-radius:4px;background:#17345a;color:#dbeafe;box-shadow:0 2px 8px #0005;font-size:10px;font-weight:800;white-space:nowrap}.planningTimeline{cursor:crosshair}.planningTimeline:hover{background-color:color-mix(in srgb,var(--accent) 15%,transparent)}.planningTimeline:active{cursor:ew-resize}html[data-theme=light] .ganttDateRow,html[data-theme=light] .ganttHeader>*,html[data-theme=light] .ganttMonthRow,html[data-theme=light] .ganttTimelineHeader{background:#fff;color:var(--text)}html[data-theme=light] .ganttDateRow>span{border-right-color:#d9e2ec;color:#607086}html[data-theme=light] .ganttDateRow>span.weekend{background:#e8edf3;color:#78879a}html[data-theme=light] .ganttCalendar .segmentDragPreview span{background:#eaf2fb;color:#244568;box-shadow:0 2px 8px #24364a33}html[data-theme=light] .projectPlanPanel select{background:#fff;color:#152235;border-color:#c8d5e3}html[data-theme=light] .projectPlanPanel select option{background:#fff;color:#152235}html[data-theme=light] .ganttCalendar .planningPreview b,html[data-theme=light] .ganttCalendar .segmentResizePreview span{background:#eaf2fb;color:#244568;box-shadow:0 2px 8px #24364a33}.resourcePlanningPanel{padding:0!important;overflow:hidden}.resourceGantt{max-height:760px}.resourceGanttRow{min-height:66px}.resourceGanttLabel{position:-webkit-sticky;position:sticky;left:0;z-index:5;display:flex;flex-direction:column;justify-content:center;gap:4px;width:var(--gantt-label-width);min-height:66px;padding:10px 12px;border-right:1px solid var(--border);background:var(--panel);text-align:left}.resourceGanttLabel small{color:var(--muted);font-size:10px}.resourceAssignmentSegment{display:flex;align-items:center;gap:5px;top:12px;height:27px;padding:0 8px;color:#fff;font-style:normal;white-space:nowrap}.resourceAssignmentSegment span{overflow:hidden;text-overflow:ellipsis}.resourceAssignmentSegment u{position:absolute;right:0;top:0;width:7px;height:100%;cursor:ew-resize;text-decoration:none}.resourcePlanningMenu{position:fixed;z-index:var(--z-modal);min-width:230px;max-height:420px;overflow:auto;padding:7px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel3);box-shadow:var(--shadow-md)}.resourcePlanningMenu>small{display:block;padding:5px 8px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.resourcePlanningMenu button,.resourcePlanningMenu summary{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;border:0;border-radius:5px;background:transparent;color:var(--text);font-size:12px;text-align:left;cursor:pointer}.resourcePlanningMenu button:hover,.resourcePlanningMenu summary:hover{background:var(--panel2)}.resourcePlanningMenu details>div{padding-left:10px}.resourcePlanningMenu details button{font-size:11px}.resourcePlanningMenu hr{border:0;border-top:1px solid var(--border);margin:6px 0}.resourcePlanningMenu .danger{color:var(--danger)}html[data-theme=light] .resourceGanttLabel{background:#fff}.ganttContextMenu{position:fixed;z-index:var(--z-overlay);min-width:130px;padding:5px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel3);box-shadow:var(--shadow-md)}.ganttContextMenu button{display:block;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:12px;text-align:left}.ganttContextMenu button:hover{background:var(--panel2)}.ganttContextMenu button.danger{color:var(--danger)}.ganttContextMenu button.danger:hover{background:color-mix(in srgb,var(--danger) 20%,transparent)}.resourceMenuTrigger{display:flex!important;align-items:center;justify-content:space-between}.resourceTypeMenu{position:absolute;left:calc(100% - 5px);top:30px;min-width:190px;padding:5px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel3);box-shadow:var(--shadow-md)}.resourceTypeMenu button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:32px}.resourceTypeMenu button span{display:block;text-align:left}.resourceTypeMenu button b,.resourceTypeMenu button small{display:block}.resourceTypeMenu button small{margin-top:2px;color:var(--muted);font-size:10px}.resourceTypeMenu .resourceHint{display:block;max-width:220px;padding:5px 8px;color:var(--muted);font-size:10px}.resourceTypeMenu .resourceBack{justify-content:flex-start;border-bottom:1px solid var(--border);margin-bottom:3px;color:var(--accent)}.resourceTypeMenu .resourceTypeOnly{color:var(--success)}.resourceTypeMenu .resourceTypeOnly:hover{background:color-mix(in srgb,var(--success) 20%,transparent)}.ganttContextMenu{overflow:visible}.unassignedResourceNotice{display:flex;flex-direction:column;gap:4px;margin:12px 0;padding:10px;border:1px solid var(--warning);border-radius:var(--radius-md);background:color-mix(in srgb,var(--warning) 12%,transparent)}.unassignedResourceNotice span{color:var(--warning);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.unassignedResourceNotice b{color:var(--text);font-size:13px}.unassignedResourceNotice small{color:var(--muted);font-size:11px}.resourceWeekPlanner{--name-min:9rem;--day-min:7rem;width:100%;overflow-x:auto}.resourcePage>.panel+.panel{margin-top:20px}.resourceWeekHeading{flex-wrap:wrap;align-items:flex-start;gap:.75rem 1.5rem}.resourceWeekHeading p{margin:6px 0 0;color:var(--muted);font-size:12px}.resourceWeekControls{display:flex;align-items:center;gap:6px}.resourceWeekControls .iconButton{display:grid;place-items:center;width:2.125rem;height:2.125rem;padding:0}.resourceWeekControls .weekLabel{display:flex;align-items:center;gap:.45rem;min-width:9.5rem;justify-content:center}.resourceWeekGrid{display:grid;grid-template-columns:minmax(var(--name-min),1.1fr) repeat(5,minmax(var(--day-min),1fr));min-width:calc(var(--name-min) + 5 * var(--day-min));border:1px solid var(--border);border-radius:8px;overflow:clip;background:var(--panel2)}.resourceWeekCorner,.resourceWeekName{position:-webkit-sticky;position:sticky;left:0;z-index:1}.resourceWeekCell,.resourceWeekCorner,.resourceWeekDay,.resourceWeekName{min-width:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.resourceWeekCorner,.resourceWeekDay,.resourceWeekName{background:var(--panel2)}.resourceWeekCorner,.resourceWeekDay{min-height:3.4rem;padding:11px 13px;color:var(--muted);font-size:11px}.resourceWeekDay{display:flex;flex-direction:column;gap:4px;text-transform:capitalize}.resourceWeekDay b{color:var(--text);font-size:12px}.resourceWeekDay small{font-size:10px}.resourceWeekRow{display:contents}.resourceWeekName{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:10px 13px}.resourceWeekName b{font-size:12px}.resourceWeekName small{color:var(--muted);font-size:10px}.resourceWeekCell{min-height:4.5rem;padding:7px;background:var(--panel)}.resourceWeekAssignment{position:relative;display:flex;flex-direction:column;gap:3px;min-height:3.4rem;padding:8px 9px;border-left:3px solid var(--resource-color,#78a9ec);border-radius:5px;background:#17263a;overflow:hidden}.resourceWeekAssignment b,.resourceWeekAssignment small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resourceWeekAssignment b{font-size:11px;color:var(--text)}.resourceWeekAssignment small{color:var(--muted);font-size:10px}.resourceWeekEmpty{display:grid;place-items:center;height:3.5rem;color:var(--muted);font-size:12px}html[data-theme=light] .resourceWeekCell{background:#f4f7fa}html[data-theme=light] .resourceWeekAssignment{background:#e8eef6}html[data-theme=light] .resourceWeekAssignment small{color:#66758a}.requestFilter{align-items:center}.requestFilter span{margin-left:auto;color:var(--muted);font-size:12px}.requestTable{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.requestTable th{position:-webkit-sticky;position:sticky;top:0;z-index:3;background:var(--panel2);text-align:left}.requestTable td,.requestTable th{padding:11px;border-bottom:1px solid var(--border);vertical-align:middle}.requestTable td{background:var(--panel)}.requestTable td small{display:block;color:var(--muted)}.requestTable tr:hover td{background:var(--panel2)}.requestTable td:last-child{min-width:17.5rem}.requestStatus{display:inline-block;padding:4px 9px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);font-weight:600;white-space:nowrap}.requestStatus.approved,.requestStatus.fulfilled{background:color-mix(in srgb,var(--success) 20%,transparent);color:var(--success)}.requestStatus.rejected{background:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger)}.requestStatus.cancelled{background:color-mix(in srgb,var(--muted) 20%,transparent);color:var(--muted)}.requestStatus.change_proposed,.requestStatus.under_review{background:color-mix(in srgb,var(--warning) 20%,transparent);color:var(--warning)}.requestTable td:nth-child(6),.requestTable td:nth-child(7){white-space:nowrap}.authPage{min-height:100vh;display:grid;grid-template-columns:minmax(360px,520px) 1fr;background:var(--bg);color:var(--text)}.authPanel{width:min(100%,520px);padding:clamp(32px,7vw,92px) clamp(24px,6vw,84px);display:flex;flex-direction:column;justify-content:center;background:var(--panel);border-right:1px solid var(--border)}.authBrand{width:150px;height:41px;margin-left:2px;overflow:hidden}.authBrand img{display:block;width:183.2px;height:auto;margin:-13.2px 0 0 -16.8px}.authIntro{margin:84px 0 30px}.authIntro h1{margin:0 0 8px;font-size:42px;letter-spacing:0}.authIntro p{margin:0;font-family:var(--font-heading);color:var(--muted);line-height:1.6}.authForm{display:grid;grid-gap:18px;gap:18px}.authForm label{display:grid;grid-gap:8px;gap:8px;color:var(--muted);font-size:13px;font-weight:600}.authInput{display:flex;align-items:center;gap:10px;padding:0 13px;border:1px solid var(--border);background:var(--panel3);color:var(--muted);border-radius:var(--radius-md)}.authInput:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.authInput input{width:100%;height:46px;border:0;outline:0;background:transparent;color:var(--text);font:inherit}.authSubmit{justify-content:center;margin-top:6px;height:46px}.authError{margin:0;color:var(--danger);font-size:13px}.authDemo{display:grid;grid-gap:6px;gap:6px;margin-top:30px;padding-top:18px;border-top:1px solid var(--border);color:var(--muted);font-size:12px}.authDemo b{color:var(--text);font-size:13px}.authDemo code{color:var(--accent)}.authDemo div{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.authDemo button{border:1px solid var(--border);border-radius:var(--radius-pill);padding:6px 9px;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.authDemo button:hover{color:var(--text);border-color:var(--accent)}.authAside{position:-webkit-sticky;position:sticky;top:0;align-self:start;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:clamp(32px,8vw,120px);background:radial-gradient(circle at 75% 24%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 28%),linear-gradient(135deg,var(--bg),var(--panel))}.authPhoto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s ease}.authPhoto.isLoaded{opacity:1}@media (prefers-reduced-motion:reduce){.authPhoto{transition:none}}.authMessage{position:relative;max-width:min(100%,640px);padding:clamp(24px,3vw,40px) clamp(24px,3vw,40px) clamp(24px,3vw,40px) clamp(44px,4.5vw,60px);background:var(--brand-blue-2);color:var(--brand-ink)}.authMessage:before{content:"";position:absolute;left:0;top:16.667%;width:14px;height:66.667%;background:var(--brand-blue-3)}.authAside h2{max-width:620px;margin:0 0 12px;font-size:clamp(28px,3.4vw,52px);line-height:1.08;letter-spacing:0}.authAside p{max-width:500px;margin:0;font-size:16px;line-height:1.6}.userMenu{position:relative}.userMenuPanel{position:absolute;right:0;top:calc(100% + 10px);z-index:var(--z-modal);display:grid;min-width:230px;grid-gap:5px;gap:5px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel3);box-shadow:var(--shadow-lg)}.userMenuPanel b{color:var(--text)}.userMenuPanel small,.userMenuPanel span{color:var(--muted);font-size:12px}.userMenuPanel button{margin-top:8px;padding:9px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text);text-align:left;cursor:pointer}.userMenuPanel button:hover{border-color:var(--accent);color:var(--accent)}@media (max-width:1100px){.authAside{padding:20px}.authMessage{padding:24px 20px 24px 40px}.authAside h2{font-size:clamp(24px,3vw,32px)}}@media (max-width:800px){.authPage{display:block}.authPanel{width:auto;min-height:100vh;border-right:0}.authIntro{margin-top:66px}.authAside{display:none}}html[data-theme=light] .top{box-shadow:0 1px 8px #1f29330a}html[data-theme=light] .miniProgress span,html[data-theme=light] .progress span{background:#e5eaee!important}html[data-theme=light] .ganttMonthRow>span{color:var(--muted)!important}html[data-theme=light] .ganttCalendar .ganttHeader,html[data-theme=light] .ganttCalendar .ganttRow>button,html[data-theme=light] .ganttHeader>*{background:#fff!important;border-color:var(--border)!important;color:var(--text)}html[data-theme=light] .ganttRow>div,html[data-theme=light] .ganttRowTimeline{background:repeating-linear-gradient(90deg,#fff,#fff 27px,#edf1f3 28px)!important;border-color:var(--border)!important}html[data-theme=light] .ganttDateRow>span.weekend,html[data-theme=light] .weekendLayer i{background:#f1f3f5!important}html[data-theme=light] .riskBar{background:#e5eaee!important}html[data-theme=light] .backdrop{background:#17212a66!important}.printSheet{position:relative;overflow:hidden;background:#fff;color:#2b2623;font-family:var(--font-family);-webkit-print-color-adjust:exact;print-color-adjust:exact}.psFrame{position:absolute;display:flex;flex-direction:column;box-shadow:0 0 0 2px #5d514d,0 0 0 5px #fff,0 0 0 6px #5d514d;inset:0}.psFrame,.psHeader{box-sizing:border-box}.psHeader{flex:none}.psEyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;color:#6b7785}.psHeader h1{margin:2px 0 8px;font-family:var(--font-heading);font-size:26px;line-height:1.1;color:#2b2623}.psHeader dl{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:6px 24px;gap:6px 24px;margin:0}.psHeader dt{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#6b7785}.psHeader dd{margin:0;font-size:13px;font-weight:700}.psGantt{position:relative;flex:none}.psTimeHeader{position:absolute;top:0;height:46px;box-sizing:border-box;border-bottom:1px solid #9aa3ae}.psMonthRow{display:flex;height:22px}.psMonthRow span{box-sizing:border-box;overflow:hidden;padding-left:4px;border-left:1px solid #9aa3ae;font-size:11px;font-weight:700;line-height:22px;text-transform:capitalize;white-space:nowrap}.psDayRow{position:relative;display:flex;height:24px}.psDayRow span{box-sizing:border-box;overflow:hidden;border-left:1px solid #e1e5ea;font-size:10px;line-height:24px;text-align:center;color:#4a5461}.psDayRow span.weekend{background:#eef0f3}.psDayRow span.today{background:#d92d20;color:#fff;font-weight:700}.psPlot{position:absolute;bottom:0}.psWeekend{background:#f1f3f5}.psToday,.psWeekend{position:absolute;top:0;bottom:0}.psToday{width:2px;background:#d92d20;opacity:.75;z-index:3}.psRow{position:absolute;left:0;box-sizing:border-box;border-bottom:1px solid #dfe3e8}.psRow.group{background:rgba(90,100,115,.08)}.psLabel{position:absolute;left:0;z-index:1;display:flex;align-items:center;box-sizing:border-box;overflow:hidden;border-right:1px solid #9aa3ae;background:#fff;white-space:nowrap}.psLabel.group{background:#eceff3}.psLabel b{overflow:hidden;text-overflow:ellipsis;font-weight:600}.psLabel.group b{font-weight:800}.psLabel small{margin-left:4px;color:#6b7785}.psSegment{display:flex;align-items:center;overflow:hidden;padding-left:4px;border-radius:3px;color:#fff;font-weight:700}.psGroupBar,.psSegment{position:absolute;z-index:2;box-sizing:border-box;font-style:normal}.psGroupBar span{position:absolute;right:0;bottom:0;left:0;height:55%;border-radius:2px;background:#8a94a1}.psGroupBar.open{border-top:3px solid #d92d20}.psGroupBar.open:after,.psGroupBar.open:before{content:"";position:absolute;top:-3px;width:0;height:0;border-top:9px solid #d92d20}.psGroupBar.open:before{left:0;border-right:6px solid transparent}.psGroupBar.open:after{right:0;border-left:6px solid transparent}.psFooter{display:flex;flex:none;align-items:flex-end;justify-content:space-between;box-sizing:border-box;margin-top:auto;padding-top:8px;border-top:1px solid #9aa3ae;font-size:11px;color:#5d514d}.psFooter img{height:34px}@media screen{#printRoot{display:none}}@page{size:A3 landscape;margin:0}@media print{body>:not(#printRoot){display:none!important}body,html{height:auto!important;margin:0!important;overflow:visible!important;background:#fff!important}#printRoot{display:block;width:420mm;height:297mm;overflow:hidden}}.printDialog{width:min(1180px,96vw)}.printDialog .printControls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.printPreview{position:relative;margin-top:14px;overflow:hidden;border:1px solid var(--border);border-radius:6px;background:#cfd5dc}.printPreview .printSheet{position:absolute;top:0;left:0;transform-origin:top left}