/* Skiftplanoversikt og lavmælt pilot for ukentlig bemanningsbehov. */
#shiftPlansView .shift-dashboard,
#shiftPlansView .shift-needs-page {
  color: var(--ink, #142c3a);
  font-size: var(--bs-text-16);
  line-height: 1.5;
  min-width: 0;
}

#shiftPlansView .shift-dashboard-loading {
  color: #5f7480;
  min-height: 220px;
  display: grid;
  place-items: center;
  font-size: var(--bs-text-16);
}

.shift-dashboard-head,
.shift-needs-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}

.shift-dashboard-eyebrow,
.shift-needs-eyebrow {
  margin: 0 0 5px;
  color: #5a7180;
  font-size: var(--bs-text-13);
  font-weight: 750;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.shift-dashboard-head h2,
.shift-needs-head h2 {
  margin: 0;
  color: #102c3c;
  font-size: clamp(27px, 2.3vw, 34px);
  line-height: 1.15;
  letter-spacing: -.025em;
}

.shift-dashboard-intro,
.shift-needs-intro {
  max-width: 720px;
  margin: 7px 0 0;
  color: #536b79;
  font-size: var(--bs-text-16);
}

.shift-dashboard-head-actions,
.shift-needs-head-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 9px;
}

.shift-dashboard-scope {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid #cbd8de;
  border-radius: 8px;
  background: #f7fafb;
  color: #3d5968;
  font-size: var(--bs-text-14);
  font-weight: 700;
}

.shift-dashboard-primary,
.shift-dashboard-secondary,
.shift-needs-copy,
.shift-needs-add-role,
.shift-needs-back {
  min-height: 40px;
  border-radius: 8px;
  font: inherit;
  font-size: var(--bs-text-15);
  font-weight: 750;
  cursor: pointer;
}

.shift-dashboard-primary {
  padding: 8px 15px;
  border: 1px solid #106f68;
  background: #106f68;
  color: #fff;
}

.shift-dashboard-secondary,
.shift-needs-copy,
.shift-needs-add-role {
  padding: 8px 13px;
  border: 1px solid #b9cbd3;
  background: #fff;
  color: #173d4d;
}

.shift-dashboard-primary:hover,
.shift-dashboard-primary:focus-visible { background: #0c5d58; }
.shift-dashboard-secondary:hover,
.shift-needs-copy:hover,
.shift-needs-add-role:hover { background: #f1f6f7; }

.shift-dashboard-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.shift-dashboard-metric {
  min-height: 126px;
  padding: 18px 19px;
  border: 1px solid #cfdae0;
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
}

.shift-dashboard-metric span {
  display: block;
  color: #4d6573;
  font-size: var(--bs-text-14);
  font-weight: 700;
}

.shift-dashboard-metric strong {
  display: block;
  margin: 5px 0 1px;
  color: #102c3c;
  font-size: var(--bs-text-30);
  line-height: 1.15;
}

.shift-dashboard-metric small { color: #667c87; font-size: var(--bs-text-14); }
.shift-dashboard-metric.attention { border-color: #e3bf72; background: #fffdf7; }
.shift-dashboard-metric.critical { border-color: #e1a4a1; background: #fffafa; }

.shift-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(310px, .8fr);
  gap: 16px;
  align-items: start;
}

.shift-dashboard-card {
  padding: 20px;
  border: 1px solid #cfdae0;
  border-radius: 10px;
  background: #fff;
}

.shift-dashboard-card + .shift-dashboard-card { margin-top: 16px; }
.shift-dashboard-grid .shift-dashboard-card + .shift-dashboard-card { margin-top: 0; }

.shift-dashboard-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

.shift-dashboard-card-head h3 {
  margin: 0;
  color: #153746;
  font-size: var(--bs-text-20);
  line-height: 1.25;
}

.shift-dashboard-card-head p {
  margin: 4px 0 0;
  color: #657a86;
  font-size: var(--bs-text-14);
}

.shift-dashboard-legend { display: flex; flex-wrap: wrap; gap: 13px; color: #536b77; font-size: var(--bs-text-13); }
.shift-dashboard-legend span { display: inline-flex; align-items: center; gap: 6px; }
.shift-dashboard-legend i { width: 10px; height: 10px; border-radius: 3px; background: #1d706b; }
.shift-dashboard-legend .hired { background: #85a4ae; }
.shift-dashboard-legend .need { background: #d89036; }
.shift-dashboard-project-charts { display: grid; gap: 16px; min-width: 0; }
.shift-dashboard-chart-project { margin: 0 0 3px; color: #6b808b; font-size: var(--bs-text-12); font-weight: 750; }

.shift-dashboard-weeks {
  display: grid;
  grid-template-columns: repeat(6, minmax(76px, 1fr));
  gap: 11px;
  min-height: 190px;
  align-items: stretch;
}

.shift-dashboard-week { min-width: 0; text-align: center; }
.shift-dashboard-week-bars {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: 145px;
  min-height: 145px;
  gap: 3px;
  border-bottom: 1px solid #cbd8de;
}

.shift-dashboard-week-stack { display: flex; flex-direction: column; justify-content: flex-end; width: min(34px, 52%); min-height: 0; overflow: hidden; border-radius: 5px 5px 0 0; }
.shift-dashboard-week-stack i { display: block; width: 100%; min-height: 0; }
.shift-dashboard-week-stack i.internal { background: #1d706b; }
.shift-dashboard-week-stack i.hired { background: #85a4ae; }
.shift-dashboard-need-marker {
  position: absolute;
  left: 7%;
  right: 7%;
  bottom: var(--need-height, 0%);
  border-top: 2px dashed #d89036;
}

.shift-dashboard-need-marker[hidden] { display: none; }
.shift-dashboard-week strong { display: block; margin-top: 7px; color: #2a4a58; font-size: var(--bs-text-13); }
.shift-dashboard-week small { display: block; color: #73858e; font-size: var(--bs-text-12); }

.shift-dashboard-actions { display: grid; gap: 9px; }
.shift-dashboard-action {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  width: 100%;
  padding: 11px;
  border: 1px solid #d7e0e4;
  border-radius: 8px;
  background: #fff;
  color: #173d4d;
  text-align: left;
  font: inherit;
}

button.shift-dashboard-action { cursor: pointer; }
button.shift-dashboard-action:hover { border-color: #8cabb5; background: #f8fbfb; }
.shift-dashboard-action-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: #edf5f4; color: #106f68; font-weight: 800; }
.shift-dashboard-action.warn .shift-dashboard-action-icon { background: #fff4dd; color: #9b621d; }
.shift-dashboard-action.danger .shift-dashboard-action-icon { background: #fff0ef; color: #a2423f; }
.shift-dashboard-action strong { display: block; font-size: var(--bs-text-15); line-height: 1.25; }
.shift-dashboard-action small { display: block; margin-top: 2px; color: #6a7f89; font-size: var(--bs-text-13); }
.shift-dashboard-action-arrow { color: #6f858f; font-size: var(--bs-text-19); }

.shift-dashboard-projects { margin-top: 16px; }
.shift-dashboard-project-head,
.shift-dashboard-project-row {
  display: grid;
  grid-template-columns: minmax(190px, 1.5fr) repeat(3, minmax(75px, .65fr)) minmax(125px, .8fr) 36px;
  align-items: center;
  gap: 12px;
}

.shift-dashboard-project-head {
  padding: 9px 12px;
  border-bottom: 1px solid #cbd8de;
  color: #58707d;
  font-size: var(--bs-text-12);
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.shift-dashboard-project-row {
  min-height: 63px;
  padding: 10px 12px;
  border-bottom: 1px solid #e2e8eb;
  color: #284956;
  font-size: var(--bs-text-14);
}

.shift-dashboard-project-row:last-child { border-bottom: 0; }
.shift-dashboard-project-name strong { display: block; color: #143746; font-size: var(--bs-text-15); }
.shift-dashboard-project-name small { color: #71838c; font-size: var(--bs-text-13); }
.shift-dashboard-status { display: inline-flex; width: max-content; max-width: 100%; padding: 4px 8px; border-radius: 999px; background: #e9f4ee; color: #28704f; font-size: var(--bs-text-12); font-weight: 800; }
.shift-dashboard-status.warn { background: #fff1d8; color: #8c5b1d; }
.shift-dashboard-status.danger { background: #ffebea; color: #9c3d39; }
.shift-dashboard-project-open { width: 34px; height: 34px; border: 1px solid #c5d3d9; border-radius: 7px; background: #fff; color: #315867; cursor: pointer; }

.shift-dashboard-single-project {
  margin-top: 16px;
  padding: 18px 20px;
  border: 1px solid #cbd8de;
  border-radius: 10px;
  background: #f8fbfb;
  color: #4f6875;
}
.shift-dashboard-single-project strong { color: #173d4d; }

.shift-dashboard-empty {
  padding: 52px 24px;
  border: 1px solid #cbd8de;
  border-radius: 10px;
  background: #fff;
  text-align: center;
}
.shift-dashboard-empty h2 { margin: 0 0 8px; font-size: var(--bs-text-25); }
.shift-dashboard-empty p { max-width: 560px; margin: 0 auto; color: #607681; }

.shift-needs-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  margin: 0 0 12px;
  padding: 3px 0;
  border: 0;
  background: transparent;
  color: #256071;
}

.shift-needs-context {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(180px, .65fr);
  gap: 14px;
  margin-bottom: 16px;
  padding: 16px 18px;
  border: 1px solid #cbd8de;
  border-radius: 10px;
  background: #fff;
}

.shift-needs-context label,
.shift-needs-comment label { display: grid; gap: 6px; color: #405c69; font-size: var(--bs-text-14); font-weight: 750; }
.shift-needs-context select,
.shift-needs-context input,
.shift-needs-comment textarea {
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid #b9cbd3;
  border-radius: 7px;
  background: #fff;
  color: #173d4d;
  font: inherit;
  font-size: var(--bs-text-15);
}

.shift-needs-grid-card { padding: 20px; border: 1px solid #cbd8de; border-radius: 10px; background: #fff; }
.shift-needs-grid-tools { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.shift-needs-grid-tools h3 { margin: 0; font-size: var(--bs-text-20); color: #173d4d; }
.shift-needs-week-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.shift-needs-week-card { display: flex; align-items: center; flex-direction: column; min-width: 0; min-height: 280px; padding: 20px 18px 16px; border: 1px solid #d3dee3; border-radius: 10px; background: #fff; text-align: center; }
.shift-needs-week-card header { display: grid; gap: 3px; margin-bottom: 17px; }
.shift-needs-week-card header strong { color: #173d4d; font-size: var(--bs-text-18); font-weight: 750; }
.shift-needs-week-card header small { color: #6a7f89; font-size: var(--bs-text-13); }
.shift-needs-total-stepper { display: grid; grid-template-columns: 48px minmax(76px, 1fr) 48px; align-items: center; gap: 12px; width: 100%; max-width: 250px; }
.shift-needs-total-stepper > button { width: 48px; height: 48px; padding: 0; border: 1px solid #bcccd3; border-radius: 8px; background: #fff; color: #173d4d; font-size: var(--bs-text-25); line-height: 1; cursor: pointer; }
.shift-needs-total-stepper > button:hover { border-color: #6f9e9d; background: #f0f7f6; }
.shift-needs-total-stepper > button:disabled { opacity: .35; cursor: default; }
.shift-needs-total-stepper label { display: grid; justify-items: center; gap: 1px; min-width: 0; }
.shift-needs-total { width: 100%; min-width: 0; padding: 0; border: 0; background: transparent; color: #102f40; font-family: var(--bs-font-family); font-size: var(--bs-text-30); font-weight: 750; line-height: 1.05; text-align: center; appearance: textfield; }
.shift-needs-total::-webkit-inner-spin-button,.shift-needs-total::-webkit-outer-spin-button { margin: 0; appearance: none; }
.shift-needs-total-stepper label span { color: #294c5b; font-size: var(--bs-text-14); }
.shift-needs-week-planned { margin: 12px 0 9px; color: #637b86; font-size: var(--bs-text-14); }
.shift-needs-week-status { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 5px 11px; border-radius: 7px; font-size: var(--bs-text-14); font-weight: 700; }
.shift-needs-week-status.shortage { background: #fff4df; color: #a55b0d; }
.shift-needs-week-status.covered,.shift-needs-week-status.surplus { background: #e8f5f0; color: #176850; }
.shift-needs-role-link { margin-top: auto; padding: 12px 4px 2px; border: 0; border-top: 1px solid #e2e8eb; background: transparent; color: #356879; font-size: var(--bs-text-14); font-weight: 650; cursor: pointer; width: 100%; }
.shift-needs-role-link:hover { color: #164f60; }
.shift-needs-role-section { margin-top: 18px; padding-top: 18px; border-top: 1px solid #dce5e8; }
.shift-needs-role-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.shift-needs-role-head h3 { margin: 0; color: #173d4d; font-size: var(--bs-text-18); }
.shift-needs-role-head h3 span { color: #6a7f89; font-size: var(--bs-text-14); font-weight: 500; }
.shift-needs-role-head p { margin: 4px 0 0; color: #607985; font-size: var(--bs-text-14); }
.shift-needs-only-total { min-height: 42px; padding: 8px 13px; border: 1px solid #bccdd4; border-radius: 7px; background: #fff; color: #244f5e; font-size: var(--bs-text-14); font-weight: 650; cursor: pointer; }
.shift-needs-only-total:hover { background: #f1f6f7; }
.shift-needs-table-wrap { overflow: auto; border: 1px solid #d7e0e4; border-radius: 8px; }
.shift-needs-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.shift-needs-table th,
.shift-needs-table td { padding: 10px; border-right: 1px solid #e0e7ea; border-bottom: 1px solid #e0e7ea; text-align: center; }
.shift-needs-table th:last-child,
.shift-needs-table td:last-child { border-right: 0; }
.shift-needs-table tr:last-child td { border-bottom: 0; }
.shift-needs-table th { background: #eff4f5; color: #496572; font-size: var(--bs-text-13); font-weight: 800; }
.shift-needs-table th:first-child,
.shift-needs-table td:first-child { position: sticky; left: 0; z-index: 1; min-width: 180px; background: #fff; text-align: left; }
.shift-needs-table th:first-child { background: #eff4f5; z-index: 2; }
.shift-needs-role { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #173d4d; font-size: var(--bs-text-15); font-weight: 750; }
.shift-needs-remove-role { border: 0; background: transparent; color: #71858e; font-size: var(--bs-text-17); cursor: pointer; }
.shift-needs-count { width: 70px; min-height: 38px; padding: 5px 7px; border: 1px solid #b9cbd3; border-radius: 7px; color: #173d4d; font: inherit; text-align: center; }
.shift-needs-planned { display: block; margin-top: 4px; color: #74868e; font-size: var(--bs-text-11); font-weight: 600; white-space: nowrap; }

.shift-needs-comment { margin-top: 14px; }
.shift-needs-comment summary { color: #315d6b; font-size: var(--bs-text-15); font-weight: 750; cursor: pointer; }
.shift-needs-comment label { margin-top: 10px; }
.shift-needs-comment textarea { min-height: 92px; resize: vertical; }

.shift-needs-footer {
  position: sticky;
  bottom: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 16px;
  padding: 14px 16px;
  border: 1px solid #c6d5db;
  border-radius: 10px;
  background: rgba(255,255,255,.97);
  box-shadow: 0 -4px 16px rgba(20,44,58,.07);
}
.shift-needs-summary strong { display: block; color: #173d4d; font-size: var(--bs-text-15); }
.shift-needs-summary small { color: #647b86; font-size: var(--bs-text-13); }
.shift-needs-status { min-height: 20px; color: #56707c; font-size: var(--bs-text-13); }
.shift-needs-footer-actions { display: flex; gap: 9px; }
.shift-needs-footer [data-save-needs] { background: var(--red); border-color: var(--red); color: #fff; font-family: var(--bs-font-family); font-size: 16px; }
.shift-needs-footer [data-save-needs]:hover { background: var(--red2); border-color: var(--red2); }
.shift-needs-total-stepper label span, .shift-needs-week-planned, .shift-needs-role-head p, .shift-needs-status { font-size: 16px; }
.shift-needs-footer button:disabled { opacity: .55; cursor: wait; }

@media (max-width: 1180px) {
  .shift-dashboard-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shift-dashboard-grid { grid-template-columns: 1fr; }
  .shift-needs-week-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .shift-dashboard-head,
  .shift-needs-head { flex-direction: column; }
  .shift-dashboard-head-actions,
  .shift-needs-head-actions { width: 100%; justify-content: flex-start; }
  .shift-dashboard-weeks { overflow-x: auto; grid-template-columns: repeat(6, minmax(105px, 1fr)); }
  .shift-dashboard-project-head { display: none; }
  .shift-dashboard-project-row { grid-template-columns: minmax(0, 1fr) auto; gap: 7px 12px; padding: 14px 4px; }
  .shift-dashboard-project-row > span:not(.shift-dashboard-status) { display: none; }
  .shift-dashboard-status { grid-column: 1; }
  .shift-dashboard-project-open { grid-column: 2; grid-row: 1 / span 2; }
  .shift-needs-context { grid-template-columns: 1fr; }
  .shift-needs-role-head { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 560px) {
  .shift-dashboard-metrics { grid-template-columns: 1fr 1fr; gap: 8px; }
  .shift-dashboard-metric { min-height: 110px; padding: 14px; }
  .shift-dashboard-metric strong { font-size: var(--bs-text-28); }
  .shift-dashboard-card,
  .shift-needs-grid-card { padding: 15px; }
  .shift-needs-week-cards { grid-template-columns: 1fr; }
  .shift-needs-week-card { min-height: 260px; }
  .shift-dashboard-card-head,
  .shift-needs-grid-tools,
  .shift-needs-footer { align-items: flex-start; flex-direction: column; }
  .shift-needs-footer-actions { width: 100%; }
  .shift-needs-footer-actions button { flex: 1; }
}


/* Compact project charts with a shared baseline and project-specific ticks. */
.shift-dashboard-chart-intro h3{margin:0;color:#153746;font-size:20px}
.shift-dashboard-chart-intro p{margin:3px 0;color:#657a86;font-size:14px}
.shift-dashboard-project-chart{padding:16px;min-width:0}
.shift-dashboard-project-chart .shift-dashboard-card-head{margin-bottom:16px;align-items:center;gap:12px}
.shift-dashboard-project-chart .shift-dashboard-card-head>div:first-child{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.shift-dashboard-project-chart .shift-dashboard-card-head h3{font-size:22px}
.shift-dashboard-chart-scroll{overflow-x:auto;padding-top:8px}
.shift-dashboard-chart-plot{position:relative;min-width:470px;padding-left:30px;--plot-height:110px}
.shift-dashboard-chart-plot .shift-dashboard-weeks{position:relative;grid-template-columns:repeat(6,minmax(65px,1fr));gap:8px;min-height:158px}
.shift-dashboard-chart-plot .shift-dashboard-week-bars{height:var(--plot-height);min-height:var(--plot-height);border:0}
.shift-dashboard-chart-plot .shift-dashboard-week-stack{width:min(52px,65%);border-radius:3px 3px 0 0}
.shift-dashboard-axis{position:absolute;top:0;left:0;width:24px;height:var(--plot-height);font-size:12px;color:#536b77}
.shift-dashboard-axis span{position:absolute;right:0;transform:translateY(50%);font-variant-numeric:tabular-nums}
.shift-dashboard-gridlines{position:absolute;top:0;left:30px;right:0;height:var(--plot-height);pointer-events:none}
.shift-dashboard-gridlines i{position:absolute;left:0;right:0;border-top:1px solid #e5ecef}
.shift-dashboard-gridlines i:first-child{border-color:#bdcdd5}
.shift-dashboard-project-chart .shift-dashboard-legend{flex-shrink:0;font-size:13px;gap:10px}
.shift-dashboard-project-chart .shift-dashboard-legend .need{width:18px;height:0;border-top:2px dashed #d89036;background:none}
.shift-dashboard-chart-plot .shift-dashboard-week-stack i.internal,.shift-dashboard-project-chart .shift-dashboard-legend i{background:#4d9d75}
.shift-dashboard-chart-plot .shift-dashboard-week-stack i.hired,.shift-dashboard-project-chart .shift-dashboard-legend .hired{background:#639bc6}
.shift-dashboard-projects .shift-dashboard-project-head,.shift-dashboard-projects .shift-dashboard-project-row{grid-template-columns:minmax(180px,1.4fr) .65fr 1fr 1fr 1fr 30px}
@media(max-width:1100px){.shift-dashboard-project-chart .shift-dashboard-card-head{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.shift-dashboard-project-chart{padding:12px}.shift-dashboard-project-chart .shift-dashboard-card-head h3{font-size:20px}.shift-dashboard-projects .shift-dashboard-project-row{grid-template-columns:1fr 1fr;gap:8px}.shift-dashboard-project-row>span:nth-child(2):before{content:'På jobb: '}.shift-dashboard-project-row>span:nth-child(3):before{content:'Skiftbytte: '}.shift-dashboard-project-row>span:nth-child(4):before{content:'Behov: '}}

/* Shared outline icons in summary cards and follow-up actions. */
.shift-dashboard-icon{display:block;width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.shift-dashboard-metric{position:relative;padding-left:74px}
.shift-dashboard-metric .shift-dashboard-metric-icon{position:absolute;left:18px;top:20px;display:grid;place-items:center;width:40px;height:40px;border-radius:9px;background:#f0f3f5;color:#173746}
.shift-dashboard-metric .shift-dashboard-metric-icon.warning{color:#e1443e;background:#fff1f0}
.shift-dashboard-action-icon{color:#173746;background:#f2f5f6}
.shift-dashboard-action.warn .shift-dashboard-action-icon{color:#173746;background:#f2f5f6}
.shift-dashboard-action.warn .shift-dashboard-action-icon:has(.shift-dashboard-icon-warning){color:#d28a1d;background:#fff7e8}
.shift-dashboard-action.danger .shift-dashboard-action-icon{color:#e1443e;background:#fff1f0}
@media(max-width:600px){.shift-dashboard-metric{padding:14px 12px 14px 56px}.shift-dashboard-metric .shift-dashboard-metric-icon{left:12px;top:16px;width:34px;height:34px}.shift-dashboard-metric .shift-dashboard-icon{width:23px;height:23px}}

/* Project status: readable rows with clear numbers, calm hierarchy and touch targets. */
.shift-dashboard-projects {overflow:hidden;border-radius:14px;padding:0;font-family:var(--bs-font-family)}
.shift-dashboard-projects .shift-dashboard-card-head {padding:22px 24px;margin:0;background:#f7f9fa;border-bottom:1px solid #dce5e9}
.shift-dashboard-projects h3 {font:600 22px/1.3 var(--bs-font-family)}
.shift-dashboard-projects .shift-dashboard-card-head p {font:400 14px/1.5 var(--bs-font-family)}
.shift-dashboard-projects .shift-dashboard-project-head,
.shift-dashboard-projects .shift-dashboard-project-row {grid-template-columns:minmax(230px,1.6fr) minmax(90px,.65fr) minmax(140px,1fr) minmax(130px,.9fr) minmax(180px,1.2fr) 44px;gap:18px;padding:16px 24px}
.shift-dashboard-projects .shift-dashboard-project-head {font:500 14px/1.4 var(--bs-font-family);text-transform:none;letter-spacing:0;color:#536b78;background:#fbfcfd}
.shift-dashboard-projects .shift-dashboard-project-row {min-height:90px;font:400 16px/1.5 var(--bs-font-family)}
.shift-dashboard-projects .shift-dashboard-project-row:nth-child(even) {background:#fafcfc}
.shift-dashboard-projects .shift-dashboard-project-row:hover {background:#f1f7f4}
.shift-dashboard-projects .shift-dashboard-project-name strong {font:600 16px/1.5 var(--bs-font-family)}
.shift-dashboard-projects .shift-dashboard-project-name small {display:block;margin-top:3px;font:400 14px/1.5 var(--bs-font-family)}
.shift-dashboard-projects .shift-dashboard-project-row > span:nth-child(2) {font:600 22px/1.3 var(--bs-font-family);color:#255d47}
.shift-dashboard-projects .shift-dashboard-status {padding:7px 10px;border-radius:8px;box-sizing:border-box;font:500 14px/1.4 var(--bs-font-family);white-space:normal}
.shift-dashboard-projects .shift-dashboard-project-open {width:44px;height:44px;display:grid;place-items:center;border-radius:9px;font:400 22px/1 var(--bs-font-family)}
.shift-dashboard-project-open:focus-visible {outline:3px solid #73ae98;outline-offset:2px}
@media(max-width:1200px){
 .shift-dashboard-projects .shift-dashboard-project-head {display:none}
 .shift-dashboard-projects .shift-dashboard-project-row {grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:12px;padding:18px}
 .shift-dashboard-projects .shift-dashboard-project-row > span {display:block!important;min-width:0}
 .shift-dashboard-projects .shift-dashboard-project-name {grid-column:1/3;grid-row:1}
 .shift-dashboard-projects .shift-dashboard-project-open {grid-column:3;grid-row:1}
 .shift-dashboard-projects .shift-dashboard-project-row > span:nth-child(2) {grid-column:1;grid-row:2;font-size:20px}
 .shift-dashboard-projects .shift-dashboard-project-row > span:nth-child(3) {grid-column:2/4;grid-row:2}
 .shift-dashboard-projects .shift-dashboard-project-row > span:nth-child(4) {grid-column:1;grid-row:3}
 .shift-dashboard-projects .shift-dashboard-status {grid-column:2/4;grid-row:3;align-self:end}
 .shift-dashboard-projects .shift-dashboard-project-row > span:nth-child(2):before {content:'På jobb i dag';display:block;font:400 14px/1.5 var(--bs-font-family);color:#607784}
 .shift-dashboard-projects .shift-dashboard-project-row > span:nth-child(3):before {content:'Neste skiftbytte';display:block;font:400 14px/1.5 var(--bs-font-family);color:#607784}
 .shift-dashboard-projects .shift-dashboard-project-row > span:nth-child(4):before {content:'Behov oppdatert';display:block;font:400 14px/1.5 var(--bs-font-family);color:#607784}
}


.shift-task-scope{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;font-family:var(--bs-font-family)}
.shift-task-scope button{font-family:var(--bs-font-family);font-size:14px;min-height:44px}
.shift-task-scope [aria-pressed="true"]{color:var(--red);border-color:var(--red)}
