@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;--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;--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;--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;--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:25px;max-width:1800px;margin:auto}.pageTitle,.projectHeader{display:flex;justify-content:space-between;gap:20px;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(4,1fr);grid-gap:12px;gap:12px;margin:22px 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:8px;padding:13px 0;flex-wrap:wrap}.filterbar .search{display:flex;align-items:center;gap:8px;flex:1 1;min-width:300px}.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:620px;border:1px solid var(--border);border-radius:10px}.projectTable{border-collapse:separate;border-spacing:0;min-width:2450px;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}.resourceTable{min-width:1450px}.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:55px;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(4,1fr);grid-gap:20px;gap:20px}.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(3,1fr);grid-gap:12px;gap:12px}.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:1fr 1fr;grid-gap:15px;gap:15px}.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:1fr 1fr;grid-gap:0 32px;gap:0 32px}.projectInfoColumns dl{margin:0}.projectInfoRow{display:grid;grid-template-columns:minmax(120px,160px) 1fr;align-items:center;grid-gap:12px;gap:12px;min-height:44px}.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:1fr 1fr;grid-gap:10px 32px;gap:10px 32px}.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(3,1fr);grid-gap:12px;gap:12px}.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:1000px){.resourceCards,.summaryCards{grid-template-columns:repeat(2,1fr)}.pageTitle,.projectHeader{align-items:flex-start;flex-direction:column}.expandedGrid{grid-template-columns:1fr 1fr}}@media (max-width:700px){.shell>aside{width:64px}.shell nav a{font-size:0}.shell nav a svg{width:20px}.content{padding:14px}.grid2,.resourceCards,.summaryCards{grid-template-columns:1fr}.detail,.filterbar>*{width:100%}.overviewGrid,.projectCheckpoints,.projectInfoColumns,.projectInfoRow{grid-template-columns:1fr}.projectInfoRow{gap:2px;padding:6px 0}.taskEditFields{grid-template-columns:1fr}.projectTable{display:none}}.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}.brand{min-height:40px}.collapseButton{display:flex;align-items:center;gap:10px;margin-top:auto;padding:10px;border:0;border-top:1px solid var(--border);background:transparent;color:var(--muted);text-align:left}.mobileMenu{display:none}.top{display:flex;align-items:center;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(6,minmax(0,1fr));grid-gap:12px;gap:12px;margin:24px 0}.kpiCard{display:block;padding:16px;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:13px 0 7px;font-size:25px;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)}.dashboardGrid{display:grid;grid-template-columns:1.45fr 1fr;grid-gap:14px;gap:14px}.panel{border-radius:10px!important;padding:18px!important}.dashboardGrid>*{min-width:0}.utilizationPanel{grid-column:1/-1}.portfolioPanel{grid-row:span 2}.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:8px minmax(150px,1fr) 150px 75px 16px;align-items:center;grid-gap:12px;gap:12px;padding:12px 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:150px;--axis:19px;position:relative;display:flex;align-items:flex-end;height:calc(var(--plot) + var(--axis) + 10px);padding-top:10px}.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:36px;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:54px 1fr 15px;grid-gap:10px;gap:10px;align-items:center;padding:11px 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:62px 20px 1fr;grid-gap:10px;gap:10px;align-items:center;margin:14px 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;align-items:center;gap:18px;margin-top:14px;padding:14px 16px;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:18px;border-left:1px solid var(--border)}+@media(max-width:1200px){.kpiGrid{grid-template-columns:repeat(3,1fr)}.portfolioRow{grid-template-columns:8px minmax(130px,1fr) 120px 60px 16px}}+@media(max-width:700px){.shell>aside,.sidebarCollapsed>aside{position:fixed;z-index:100;left:-240px;top:0;width:230px;height:100vh;transition:left .2s}.shell>aside.mobileOpen{left:0}.mobileMenu{display:grid;position:fixed;z-index:var(--z-dropdown);top:15px;left:14px;width:35px;height:35px;place-items:center;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel3);color:var(--text)}.top{display:flex;padding:12px 14px 12px 62px}.top,.topTools{justify-content:flex-end}.topTools{width:100%}.topTools .iconButton,.userTriggerName{display:none}.dashboard .pageTitle{padding-top:25px}.kpiGrid{display:flex;overflow-x:auto;grid-template-columns:none;margin-right:-14px;padding-bottom:5px}.kpiCard{min-width:160px}.dashboardGrid{grid-template-columns:1fr}.portfolioPanel{grid-row:auto}.portfolioRow{grid-template-columns:8px minmax(120px,1fr) 60px 16px}.portfolioRow .variance{display:none}.activityStrip{overflow:auto;white-space:nowrap}.activityStrip span{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:150px}.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{width:100%;overflow:hidden}.resourcePage>.panel+.panel{margin-top:20px}.resourceWeekHeading{align-items:flex-start;gap:24px}.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:34px;height:34px;padding:0}.resourceWeekControls .weekLabel{display:flex;align-items:center;gap:7px;min-width:152px;justify-content:center}.resourceWeekGrid{display:grid;min-width:900px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--panel2)}.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:54px;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:72px;padding:7px;background:var(--panel)}.resourceWeekAssignment{position:relative;display:flex;flex-direction:column;gap:3px;min-height:54px;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:56px;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}@media (max-width:800px){.resourceWeekHeading{flex-direction:column}.resourceWeekControls{width:100%}.resourceWeekControls .weekLabel{flex:1 1}.resourceWeekPlanner{overflow:auto}}.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:280px}.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}