/* Tilstedeværelse — "Hvem er på arbejde" (uge-grid nederst i Projekter + Opslagstavlen). Se js/presence.js. */
.pr-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 10px; }
.pr-title { font-family: "Fraunces", Georgia, serif; font-size: 16px; font-weight: 600; color: var(--cream); }
.pr-nav { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pr-nav-btn {
    font-family: "Geist Mono", ui-monospace, monospace; font-size: 11px; font-weight: 600;
    padding: 5px 10px; border-radius: 8px; border: 1px solid var(--rule-2); background: var(--ink-3);
    color: var(--cream-mute); cursor: pointer; transition: all 0.15s ease;
}
.pr-nav-btn:hover { color: var(--cream); border-color: var(--rule); }
.pr-nav-btn.is-now { background: var(--ink-5); color: var(--cream); border-color: var(--rule); }
.pr-week { margin-bottom: 14px; }
.pr-weeklbl { font-family: "Geist Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cream-mute); margin: 0 0 6px; }
.pr-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--rule); border-radius: 12px; background: var(--ink-2); }
.pr-table { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 720px; table-layout: fixed; }
.pr-th { text-align: left; vertical-align: top; padding: 8px 6px 6px; border-bottom: 1px solid var(--rule); background: var(--ink-3); position: relative; }
.pr-th-name { width: 150px; position: sticky; left: 0; z-index: 2; }
.pr-th--we { width: 54px; }
.pr-th--today { box-shadow: inset 0 3px 0 var(--accent, #d9482c); }
.pr-dn { font-family: "Geist Mono", ui-monospace, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--cream-mute); }
.pr-dd { font-family: "Geist", system-ui, sans-serif; font-size: 13px; font-weight: 600; color: var(--cream); }
.pr-dl { font-size: 11px; color: #e0b96a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px; }
.pr-th--holiday .pr-dl, .pr-th--closed .pr-dl { color: #ff8a6a; }
.pr-th--holiday, .pr-th--closed { background: rgba(217, 72, 44, 0.08); }
.pr-dl-add, .pr-dl-edit { position: absolute; top: 6px; right: 6px; width: 18px; height: 18px; border-radius: 50%; border: 1px dashed var(--rule-2); background: none; color: var(--cream-mute); font-size: 12px; line-height: 1; cursor: pointer; opacity: 0; padding: 0; }
.pr-th:hover .pr-dl-add, .pr-th:hover .pr-dl-edit { opacity: 1; }
.pr-counts { display: flex; flex-wrap: wrap; gap: 4px 7px; margin-top: 5px; }
.pr-cnt { font-family: "Geist Mono", ui-monospace, monospace; font-size: 10.5px; color: var(--cream-dim); white-space: nowrap; }
.pr-cnt-office { color: #7fd99a; }
.pr-cnt-home { color: #8fb8ff; }
.pr-cnt-off, .pr-cnt-vacation { color: #e0b96a; }
.pr-cnt-sick, .pr-cnt-childsick { color: #ff8a6a; }
.pr-cnt-parental { color: #c4a6f2; }
.pr-row td { border-bottom: 1px solid var(--rule); vertical-align: middle; }
.pr-row:last-child td { border-bottom: none; }
.pr-row--me td { background: rgba(91, 141, 239, 0.06); }
.pr-name { padding: 6px 8px; position: sticky; left: 0; background: var(--ink-2); z-index: 1; }
.pr-row--me .pr-name { background: rgba(91, 141, 239, 0.12); }
.pr-pn { display: block; font-family: "Geist", system-ui, sans-serif; font-size: 13.5px; font-weight: 600; color: var(--cream); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pr-me { font-weight: 400; color: var(--cream-mute); font-size: 11px; }
.pr-hours { display: block; font-family: "Geist Mono", ui-monospace, monospace; font-size: 10.5px; color: var(--cream-mute); }
.pr-cell { padding: 5px 4px; height: 44px; }
.pr-cell--we { background: rgba(255, 255, 255, 0.02); }
.pr-cell--today { background: rgba(217, 72, 44, 0.05); }
.pr-cell--edit { cursor: pointer; }
.pr-cell--edit:hover, .pr-cell--edit:focus-visible { background: rgba(255, 255, 255, 0.07); outline: none; }
.pr-chip {
    display: inline-flex; align-items: center; gap: 4px; max-width: 100%;
    padding: 3px 7px; border-radius: 999px; border: 1px solid var(--rule-2); background: var(--ink-3);
    font-family: "Geist", system-ui, sans-serif; font-size: 12px; color: var(--cream); line-height: 1.25; white-space: nowrap;
}
.pr-chip--none { border: none; background: none; }
.pr-chip--default { opacity: 0.45; border-style: dashed; }
.pr-chip--default .pr-ico { filter: grayscale(0.4); }
.pr-chip .pr-txt { overflow: hidden; text-overflow: ellipsis; }
.pr-chip .pr-time { font-family: "Geist Mono", ui-monospace, monospace; font-weight: 600; font-size: 11px; }
.pr-chip .pr-note, .pr-chip .pr-st { font-size: 11px; }
.pr-chip--pending { border-style: dashed; border-color: #e0b96a; box-shadow: inset 0 0 0 1px rgba(224, 185, 106, 0.25); }
.pr-chip--rejected { text-decoration: line-through; border-color: #ff8a6a; opacity: 0.8; }
.pr-chip--rejected .pr-st--no { text-decoration: none; color: #ff8a6a; }
.pr-loc-office { background: rgba(127, 217, 154, 0.10); border-color: rgba(127, 217, 154, 0.45); }
.pr-loc-home { background: rgba(91, 141, 239, 0.14); border-color: rgba(91, 141, 239, 0.55); }
.pr-loc-out, .pr-loc-abroad { background: rgba(212, 163, 74, 0.14); border-color: rgba(212, 163, 74, 0.5); }
.pr-loc-off, .pr-loc-vacation { background: rgba(224, 185, 106, 0.12); border-color: rgba(224, 185, 106, 0.5); }
.pr-loc-sick, .pr-loc-childsick { background: rgba(217, 72, 44, 0.14); border-color: rgba(217, 72, 44, 0.5); }
.pr-loc-parental { background: rgba(160, 120, 230, 0.14); border-color: rgba(160, 120, 230, 0.5); }   /* 🍼 Barsel (5/11-2026) */
.pr-week--compact .pr-cell { height: 34px; padding: 3px; }
.pr-week--compact .pr-chip { padding: 2px 6px; font-size: 11px; }
.pr-week--compact .pr-table { min-width: 560px; }
.pr-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 6px 2px 0; }
.pr-lg { font-size: 11.5px; color: var(--cream-mute); }
.pr-lg-hint { margin-left: auto; font-style: italic; }
.pr-empty { color: var(--cream-mute); padding: 14px; }
/* Dagens linje (Opslagstavlen) */
.pr-today { background: var(--ink-2); border: 1px solid var(--rule); border-radius: 12px; padding: 12px 14px; margin-bottom: 18px; }
.pr-today-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.pr-today-title { font-family: "Fraunces", Georgia, serif; font-size: 16px; font-weight: 600; color: var(--cream); }
.pr-today-day { font-size: 12px; color: #e0b96a; }
.pr-today-sum { font-family: "Geist Mono", ui-monospace, monospace; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--cream-mute); margin-left: auto; }
.pr-today-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 6px 18px; }
.pr-today-row { display: flex; align-items: center; gap: 10px; padding: 5px 8px; border-radius: 8px; min-width: 0; }
.pr-today-row.pr-cell--edit:hover { background: rgba(255, 255, 255, 0.07); cursor: pointer; }
.pr-today-name { font-family: "Geist", system-ui, sans-serif; font-weight: 600; font-size: 14px; color: var(--cream); min-width: 110px; }
.pr-today-note { font-size: 12px; color: var(--cream-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Dag-editor (i Dialog.open) */
.pr-ed { display: grid; gap: 10px; min-width: 0; width: 100%; }
.pr-ed-who { font-weight: 600; color: var(--cream); }
.pr-ed-hrs { font-weight: 400; color: var(--cream-mute); font-size: 12px; }
.pr-ed-status { font-size: 12.5px; padding: 6px 10px; border-radius: 8px; background: rgba(224, 185, 106, 0.12); color: #e0b96a; }
.pr-ed-status--no { background: rgba(217, 72, 44, 0.12); color: #ff8a6a; }
.pr-ed-locs { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px; }
.pr-ed-loc { text-align: left; font-family: inherit; font-size: 13px; padding: 7px 10px; border-radius: 8px; border: 1px solid var(--rule-2); background: var(--ink-3); color: var(--cream); cursor: pointer; }
.pr-ed-loc.is-on { outline: 2px solid var(--accent, #d9482c); outline-offset: -1px; font-weight: 600; }
.pr-ed-appr { font-size: 10.5px; color: var(--cream-mute); font-weight: 400; }
.pr-ed-times { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13px; color: var(--cream-mute); }
.pr-ed-times label { display: inline-flex; align-items: center; gap: 6px; color: var(--cream); }
.pr-ed-times input, .pr-ed-notelbl input { font-family: inherit; font-size: 13px; padding: 5px 8px; border-radius: 6px; border: 1px solid var(--rule-2); background: var(--ink-1); color: var(--cream); }
.pr-ed-hint { font-size: 11px; }
.pr-ed-notelbl { display: grid; gap: 4px; font-size: 13px; color: var(--cream); }
.pr-ed-decide { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--cream-mute); padding-top: 4px; border-top: 1px solid var(--rule); }
.pr-ed-ok, .pr-ed-no { font-family: inherit; font-size: 13px; padding: 6px 12px; border-radius: 8px; cursor: pointer; border: 1px solid var(--rule-2); background: var(--ink-3); color: var(--cream); }
.pr-ed-ok { border-color: rgba(127, 217, 154, 0.6); }
.pr-ed-no { border-color: rgba(217, 72, 44, 0.6); }
.pr-ed-kinds { display: grid; gap: 6px; font-size: 13px; color: var(--cream); }
/* Projekter: sektionen under kolonnerne */
.pj-presence { margin-top: 26px; width: 100%; }
.projects-grid.mode-columns { flex-direction: column; }
.projects-cols-row { display: flex; flex-direction: row; gap: 14px; overflow-x: auto; align-items: flex-start; width: 100%; }
.projects-grid.mode-grid .pj-presence { grid-column: 1 / -1; }
@media (max-width: 700px) {
    .pr-table { min-width: 640px; }
    .pr-th-name { width: 110px; }
    .pr-head { gap: 8px; }
    .pr-nav-btn { padding: 6px 9px; }
    .pr-today-list { grid-template-columns: 1fr; }
}
/* v2 (1/10-2026): delte dage, adresser, perioder */
.pr-chip--parts { white-space: normal; flex-wrap: wrap; border-radius: 10px; row-gap: 2px; }
.pr-chip .pr-part { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; color: var(--cream-mute); white-space: nowrap; }
.pr-chip .pr-part .pr-time { color: var(--cream); }
.pr-ed-site { font-size: 13px; color: var(--cream); }
.pr-ed-site label { display: inline-flex; align-items: center; gap: 8px; }
.pr-ed-sitesel, .pr-ed-part select, .pr-ed-part input[type="time"] { font-family: inherit; font-size: 13px; padding: 5px 8px; border-radius: 6px; border: 1px solid var(--rule-2); background: var(--ink-1); color: var(--cream); }
.pr-ed-parts-wrap { display: grid; gap: 6px; }
.pr-ed-part { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; min-width: 0; font-size: 13px; color: var(--cream-mute); padding: 6px 8px; border-radius: 8px; background: rgba(255, 255, 255, 0.03); border: 1px dashed var(--rule-2); }
.pr-ed-pdel { border: none; background: none; color: var(--cream-mute); cursor: pointer; font-size: 12px; padding: 3px 7px; border-radius: 5px; margin-left: auto; }
.pr-ed-pdel:hover { color: #e06c5c; background: rgba(217, 72, 44, 0.12); }
.pr-ed-padd { justify-self: start; font-family: inherit; font-size: 12.5px; border: 1px dashed var(--rule-2); background: none; color: var(--cream-mute); border-radius: 7px; padding: 4px 10px; cursor: pointer; }
.pr-ed-padd:hover:not(:disabled) { color: var(--cream); border-color: var(--cream-mute); }
.pr-ed-padd:disabled { opacity: 0.5; cursor: default; }
/* v3 (2/10-2026): Uge · År · Alle i Projekter, årskalender m. markering, bjælker, periode-værktøj */
.pr-views { display: inline-flex; gap: 0; margin-right: 6px; }
.pr-view-btn { font-family: "Geist Mono", ui-monospace, monospace; font-size: 11px; font-weight: 600; padding: 5px 11px; border: 1px solid var(--rule-2); background: var(--ink-3); color: var(--cream-mute); cursor: pointer; border-radius: 0; margin-left: -1px; }
.pr-view-btn:first-child { border-radius: 8px 0 0 8px; margin-left: 0; }
.pr-view-btn:last-child { border-radius: 0 8px 8px 0; }
.pr-view-btn:hover { color: var(--cream); }
.pr-view-btn.is-on { background: var(--ink-5); color: var(--cream); border-color: var(--rule); position: relative; z-index: 1; }
.pr-nav-sel { font-family: inherit; font-size: 12.5px; padding: 4px 8px; border-radius: 8px; border: 1px solid var(--rule-2); background: var(--ink-3); color: var(--cream); max-width: 180px; }
.pr-nav-who { font-family: "Geist", system-ui, sans-serif; font-size: 13px; font-weight: 600; color: var(--cream); padding: 0 4px; }
.pr-year-lbl { font-family: "Geist Mono", ui-monospace, monospace; font-size: 13px; color: var(--cream); padding: 0 4px; }
.pr-nav-btn.pr-nav-multi.is-on { background: rgba(91,141,239,.22); color: var(--cream); border-color: rgba(91,141,239,.6); }
/* Tidslinje i Projekter (Timeline-udseendet; klasserne kommer fra timeline.css, her kun afvigelser) */
.pr-tl.timeline-container { margin: 0; flex: none; min-height: 0; background: var(--ink-2); }
.pr-tl .date-header-label, .pr-tl .labels-column { width: 250px; min-width: 120px; }
.pr-tl .labels-column { overflow: hidden; }
.pr-tl .grid-area { overflow-y: hidden; }
.pr-tl .label-row.pres-label { height: 36px; padding: 1px 10px; gap: 0 6px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.pr-tl .pres-label .pres-name { font-size: 13px; line-height: 16px; max-width: 100%; }
.pr-tl .pres-label .pres-meta { display: flex; align-items: center; gap: 6px; font-family: "Geist Mono", ui-monospace, monospace; font-size: 10px; line-height: 13px; color: var(--cream-mute); white-space: nowrap; }
.pr-tl .pres-label .pres-meta .pres-now { font-size: 11px; }
.pr-tl .label-row.pres-label.pr-row--me, .pr-tl .grid-row.pres-row.pr-row--me { background: rgba(91,141,239,.08); }
.pr-tl .grid-row.pres-row { height: 36px; }
.pr-tl .pr-row--edit { cursor: pointer; }
.pr-tl .grid-cell.is-sel { background-color: rgba(91,141,239,.30); box-shadow: inset 0 0 0 2px #8fb8ff; }
/* Række-følge (David 6/10-2026): hver anden række lysere + rækken under musen markeret, så blikket ikke farer vild fra navn til
   dag. Navne og dage står i samme rækkefølge i hver sin kolonne → :nth-child(even) rammer samme person begge steder; is-hover
   sættes af presence.js på begge. "Dig"-rækken beholder sin blå tone. (Timeline.css' egen zebra er 1 % — usynlig.) */
.pr-tl .label-row.pres-label:nth-child(even):not(.pr-row--me),
.pr-tl .grid-row.pres-row:nth-child(even):not(.pr-row--me) { background: rgba(255,255,255,.05); }
.pr-tl .pr-tl-labels .label-row.pres-label.is-hover,
.pr-tl .grid-body .grid-row.pres-row.is-hover { background: rgba(255,255,255,.10); }
.pr-tl .pr-tl-labels .label-row.pres-label.pr-row--me.is-hover,
.pr-tl .grid-body .grid-row.pres-row.pr-row--me.is-hover { background: rgba(91,141,239,.18); }
.pr-tl .pr-tl-labels .label-row.pres-label.is-hover { box-shadow: inset 3px 0 0 var(--accent); }
.pr-tl .grid-cell[data-date] { position: relative; }
.pr-tl.dragging { user-select: none; -webkit-user-select: none; }
.pr-tl--paint .pr-row--edit { touch-action: none; }
.pr-tl .grid-header-day-cell { position: relative; overflow: visible; }
.pr-tl-range { font-family: "Geist Mono", ui-monospace, monospace; font-size: 11px; color: var(--cream); padding: 0 4px; white-space: nowrap; }
.pr-selbar { position: sticky; bottom: 10px; z-index: 5; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 10px 0 0; padding: 8px 12px; border-radius: 10px; background: var(--ink-4); border: 1px solid var(--rule); box-shadow: 0 6px 20px rgba(0,0,0,.25); }
.pr-selbar-txt { font-size: 13px; color: var(--cream); }
.pr-selbar-btn { font-family: inherit; font-size: 12.5px; padding: 5px 12px; border-radius: 8px; border: 1px solid var(--rule-2); background: var(--ink-3); color: var(--cream); cursor: pointer; }
.pr-selbar-btn.is-primary { background: var(--accent, #d9482c); border-color: var(--accent, #d9482c); color: #fff; font-weight: 600; }
.pr-selbar-x { margin-left: auto; }
/* Dag-vinduets datoer (6/10-2026): Fra/til + genveje + live-liste over de dage, der gemmes; ugedage foldet væk */
.pr-ed-when { display: grid; gap: 8px; padding: 10px 12px; border-radius: 8px; border: 1px dashed var(--rule-2); background: rgba(255,255,255,.03); font-size: 13px; color: var(--cream); }
.pr-ed-range { display: flex; align-items: center; gap: 6px 12px; flex-wrap: wrap; }
.pr-ed-range label { display: inline-flex; align-items: center; gap: 6px; }
.pr-ed-range input[type="date"] { font-family: inherit; font-size: 13px; padding: 4px 8px; border-radius: 6px; border: 1px solid var(--rule-2); background: var(--ink-1); color: var(--cream); }
.pr-ed-short { font-size: 12px; color: var(--cream-mute); }
.pr-ed-sc { font-family: inherit; font-size: 12px; border: none; background: none; padding: 0 2px; color: var(--cream-dim); text-decoration: underline dotted; text-underline-offset: 3px; cursor: pointer; }
.pr-ed-sc:hover { color: var(--cream); }
.pr-ed-plan { font-size: 12.5px; color: var(--cream-dim); line-height: 1.5; }
.pr-ed-plan b { color: var(--cream); }
.pr-ed-plan-bad { color: #e0b96a; }
.pr-ed-wdfold summary { cursor: pointer; font-size: 12px; color: var(--cream-mute); }
.pr-ed-wdfold summary.is-active { color: #e0b96a; }
.pr-ed-wdrow { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.pr-ed-picked { display: flex; align-items: center; gap: 4px 6px; flex-wrap: wrap; }
.pr-ed-picked-lbl { margin-right: 4px; }
.pr-ed-daychip { font-family: "Geist Mono", ui-monospace, monospace; font-size: 11px; padding: 2px 7px; border-radius: 999px; border: 1px solid rgba(91,141,239,.5); background: rgba(91,141,239,.14); color: var(--cream); }
.pr-ed-wds { display: inline-flex; gap: 2px; }
.pr-ed-wd { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 6px; border: 1px solid var(--rule-2); background: var(--ink-3); color: var(--cream-mute); font-family: "Geist Mono", ui-monospace, monospace; font-size: 11px; font-weight: 600; cursor: pointer; }
.pr-ed-wd input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.pr-ed-wd:has(input:checked) { background: rgba(91,141,239,.25); color: var(--cream); border-color: rgba(91,141,239,.6); }
.pr-ed-wdall { font-family: inherit; font-size: 11.5px; padding: 3px 8px; border-radius: 6px; border: 1px dashed var(--rule-2); background: none; color: var(--cream-mute); cursor: pointer; }
.pr-ed-wdall:hover { color: var(--cream); }
.pr-ed-mixed { color: #e0b96a; font-size: 12px; }
@media (max-width: 700px) {
    .pr-selbar { bottom: var(--above-nav); }   /* over den svævende bundmenu inkl. frizonen (app.css, 13/10-2026) */
}

/* ↔ Træk i en periodes ender + »Ret hele perioden« (5/11-2026) */
.pres-seg .ps-grip { position: absolute; top: 0; bottom: 0; width: 8px; cursor: ew-resize; touch-action: none; z-index: 2; opacity: 0; transition: opacity .12s; }
.pres-seg .ps-grip::after { content: ''; position: absolute; top: 25%; bottom: 25%; left: 3px; width: 2px; border-radius: 1px; background: currentColor; opacity: .7; }
.pres-seg .ps-grip-l { left: 0; }
.pres-seg .ps-grip-r { right: 0; }
.pres-seg:hover .ps-grip, .pres-seg.is-grip .ps-grip { opacity: 1; }
@media (hover: none) { .pres-seg .ps-grip { opacity: .8; width: 12px; } }
.pres-seg.is-grip { outline: 2px solid var(--accent); outline-offset: 1px; z-index: 3; }
.pr-ed-run { font-size: 12.5px; margin: 0 0 8px; padding: 7px 10px; border: 1px dashed var(--rule-2); border-radius: 8px; }
.pr-ed-fjern { color: #e2574c; margin-top: 3px; }
