/* Accepted Ressursplan prototype, scoped to the real Ressursplan. No prototype assets or data. */
body[data-session=app]:has(#v-meldinger.on){
  --ground:#f1f4f8;--card:#fff;--board:#f6f8fb;--soft:#eaf0f5;--line:#ccd6e1;
  --ink:#152338;--ink2:#536579;--ink3:#617388;--hivis:var(--ui-accent,#a4dc72);
  --red:#b83d43;--reds:#fbecee;--green:#237853;--greens:#e5f2eb;
  --tv-sidebar:#142235;--tv-hover:#e3ebf3;--tv-petrol:#315d78;--tv-period:#9ab1c6;
  --tw-work-bg:#e4ecfc;--tw-ot-bg:#ffebd3;--tw-ot-ink:#8b4d11;--tw-overtime:#cc8c39;
  --tw-missing:#b83d43;--tw-health-bg:#f9e5eb;--tw-health-ink:#a3354c;--tw-health-border:#da9eac;
  --tw-away-bg:#fff2d9;--tw-away-ink:#866016;--tw-away-border:#d5b47b;
  font-family:Inter,"Segoe UI",-apple-system,BlinkMacSystemFont,Arial,sans-serif;
}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) body[data-session=app]:has(#v-meldinger.on){
  --ground:#0f1924;--card:#1a2938;--board:#1e3040;--soft:#233649;--line:#43596d;
  --ink:#edf2f8;--ink2:#b4c3d2;--ink3:#9aafc0;--tv-sidebar:#101c2b;--tv-hover:#2b4054;--tv-petrol:#a6c9df;--tv-period:#69849c;
  --red:#f3a3a0;--reds:#432d34;--green:#85c9a7;--greens:#213c32;--tw-work-bg:#283c5d;
  --tw-ot-bg:#49351e;--tw-ot-ink:#ffd3a0;--tw-overtime:#ce9650;--tw-missing:#f3a3a0;
  --tw-health-bg:#442f3f;--tw-health-ink:#ffc1d1;--tw-health-border:#a87689;--tw-away-bg:#403722;--tw-away-ink:#f2d391;--tw-away-border:#a38a50;
}}
:root[data-theme=dark] body[data-session=app]:has(#v-meldinger.on){
  --ground:#0f1924;--card:#1a2938;--board:#1e3040;--soft:#233649;--line:#43596d;
  --ink:#edf2f8;--ink2:#b4c3d2;--ink3:#9aafc0;--tv-sidebar:#101c2b;--tv-hover:#2b4054;--tv-petrol:#a6c9df;--tv-period:#69849c;
  --red:#f3a3a0;--reds:#432d34;--green:#85c9a7;--greens:#213c32;--tw-work-bg:#283c5d;
  --tw-ot-bg:#49351e;--tw-ot-ink:#ffd3a0;--tw-overtime:#ce9650;--tw-missing:#f3a3a0;
  --tw-health-bg:#442f3f;--tw-health-ink:#ffc1d1;--tw-health-border:#a87689;--tw-away-bg:#403722;--tw-away-ink:#f2d391;--tw-away-border:#a38a50;
}
/* Resource planning shares the application's surface palette in both themes.
   Task hues and semantic status colours remain local to the timeline. */
@media screen {
  body[data-session=app]:has(#v-tavla.on) {
    --ground:var(--ui-ground);--card:var(--ui-card);--board:var(--ui-board);--soft:var(--ui-soft);
    --line:var(--ui-line);--ink:var(--ui-ink);--ink2:var(--ui-ink2);--ink3:var(--ui-ink3);
    --hivis:var(--ui-accent);--red:var(--ui-red);--reds:var(--ui-reds);
    --green:var(--ui-green);--greens:var(--ui-greens);
    --tv-hover:var(--ui-soft);--tv-petrol:var(--ui-petrol);--tv-period:var(--ui-period);
    --tw-work-bg:#e4ecfc;--tw-ot-bg:#ffebd3;--tw-ot-ink:#8b4d11;--tw-overtime:#cc8c39;
    --tw-missing:var(--ui-red);--tw-health-bg:#f9e5eb;--tw-health-ink:#a3354c;--tw-health-border:#da9eac;
    --tw-away-bg:#fff2d9;--tw-away-ink:#866016;--tw-away-border:#d5b47b;
    font-family:Inter,"Segoe UI",-apple-system,BlinkMacSystemFont,Arial,sans-serif;
  }
}
body[data-session=app]:has(#v-tavla.on) .stage{padding:20px}
#v-tavla #org3{gap:14px}
#v-tavla button,#v-tavla input,#v-tavla select{font-family:inherit}
#v-tavla #org3>.hero{background:transparent;color:var(--ink);box-shadow:none;border:0;padding:0 0 3px}
#v-tavla .hero>div:first-child{flex-direction:column;align-items:flex-start;gap:4px}
#v-tavla .tw-page-title{font-size:25px;font-weight:650;letter-spacing:-.6px}
#v-tavla .hero>div>span{font-size:12px;color:var(--ink2)}
#v-tavla .board,#v-tavla .puls{background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 3px #1523380a}
#v-tavla .board{overflow:hidden}#v-tavla .puls{top:20px;max-height:calc(100vh - 40px)}
#v-tavla #lensbar{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--card)}
#v-tavla #lensbar>.l{border:1px solid transparent;border-radius:6px;background:var(--board);color:var(--ink2);padding:7px 10px;font-size:12px;font-weight:550;white-space:nowrap}
#v-tavla #lensbar>.l.on{border-color:var(--line);background:var(--card);color:var(--ink);box-shadow:0 1px 3px #15233812}
#v-tavla .zoom{background:var(--board);border:1px solid var(--line);border-radius:7px;padding:2px;display:flex;margin:0}
#v-tavla .zoom button{background:transparent;border:1px solid transparent;border-radius:5px;padding:5px 10px;font-size:12px;font-weight:550;color:var(--ink2)}
#v-tavla .zoom button.on{border-color:var(--line);background:var(--card);color:var(--ink);box-shadow:0 1px 2px #1523380a}
#v-tavla .tw-theme,#v-tavla .tw-panel-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:5px 8px;background:var(--card);border:1px solid var(--line);border-radius:6px;color:var(--ink2);font-size:12px;cursor:pointer}
#v-tavla #org3.tw-panel-hidden{grid-template-columns:minmax(0,1fr)}#v-tavla .tw-panel-hidden>.puls{display:none}
#v-tavla #filters{gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--card)}
#v-tavla .tw-date-nav{display:flex;gap:4px;align-items:center}
#v-tavla .tw-date-nav button{min-height:32px;padding:5px 10px;border:1px solid var(--line);border-radius:6px;background:var(--board);color:var(--ink);font-size:12px;cursor:pointer;font-weight:550;white-space:nowrap}
#v-tavla .tw-date-nav button:first-child:has(+button){border-color:var(--line)}
#v-tavla .tw-date-range{gap:8px;margin-left:0}#v-tavla .tw-date-range label{font-size:11px;color:var(--ink2);gap:5px}
:is(#v-tavla,.pb-layout) .tw-period-picker{position:relative;max-width:100%;flex:0 1 auto}
:is(#v-tavla,.pb-layout) .tw-period-picker[open]{z-index:45}
:is(#v-tavla,.pb-layout) .tw-period-picker>summary{display:flex;align-items:center;gap:12px;min-height:32px;padding:5px 10px;list-style:none;border:1px solid var(--line);border-radius:6px;background:var(--board);color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}
:is(#v-tavla,.pb-layout) .tw-period-picker>summary::-webkit-details-marker{display:none}
:is(#v-tavla,.pb-layout) .tw-period-picker>summary>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:is(#v-tavla,.pb-layout) .tw-period-picker>summary>i{font-style:normal;margin-left:auto;color:var(--ink2)}
:is(#v-tavla,.pb-layout) .tw-period-picker>summary:hover,:is(#v-tavla,.pb-layout) .tw-period-picker[open]>summary{border-color:var(--ink3);background:var(--card)}
:is(#v-tavla,.pb-layout) .tw-period-picker>summary:focus-visible{outline:2px solid var(--hivis);outline-offset:2px}
:is(#v-tavla,.pb-layout) .tw-period-menu{position:absolute;top:calc(100% + 7px);left:0;box-sizing:border-box;width:min(370px,calc(100vw - 48px));padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);box-shadow:0 8px 24px #0002}
:is(#v-tavla,.pb-layout) .tw-period-menu>b{display:block;font-size:12px;margin-bottom:10px}
:is(#v-tavla,.pb-layout) .tw-period-presets{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:14px}
:is(#v-tavla,.pb-layout) .tw-period-menu .tw-date-range{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:0}
:is(#v-tavla,.pb-layout) .tw-period-menu .tw-week-choice{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
:is(#v-tavla,.pb-layout) .tw-period-menu .tw-date-range :is(select,input[type=date]){box-sizing:border-box;width:100%;min-width:0;font-weight:500}
:is(#v-tavla,.pb-layout) .tw-period-footer{display:flex;justify-content:flex-end;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
:is(#v-tavla,.pb-layout) .tw-period-footer button{padding:6px 13px;min-height:32px;border:1px solid var(--tv-petrol,var(--pt-petrol,var(--ink)));border-radius:6px;background:var(--tv-petrol,var(--pt-petrol,var(--ink)));color:var(--card);font-size:12px;font-weight:600;cursor:pointer}
@media(max-width:760px){:is(#v-tavla,.pb-layout) .tw-period-picker{flex-basis:100%;width:100%}:is(#v-tavla,.pb-layout) .tw-period-menu{width:100%}}
#v-tavla input[type=date]{height:32px;padding:4px 6px;font-size:12px;background:var(--card);border-radius:6px}
#v-tavla .chip{font-size:11px;font-weight:550;background:var(--board);border:1px solid var(--line);color:var(--ink2)}
#v-tavla .chip.on{background:var(--tv-petrol);color:var(--card);border-color:var(--tv-petrol)}
#v-tavla .overview-picker summary{background:var(--board);font-weight:550;font-size:12px;border-radius:6px}
#v-tavla #hintbar{background:var(--board);padding:7px 12px;font-size:10.5px;line-height:1.6;color:var(--ink2)}
#v-tavla #hintbar.tw-issue-hint{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;border-left:3px solid var(--hivis);background:color-mix(in srgb,var(--hivis) 8%,var(--board));font-size:12px;color:var(--ink)}
#v-tavla .tw-issue-context{flex:1 1 280px;display:flex;flex-direction:column;gap:3px}
#v-tavla .tw-issue-context span{font-size:11px;color:var(--ink2)}
#v-tavla .tw-issue-actions{display:flex;flex-wrap:wrap;gap:6px}
#v-tavla .tw-issue-actions button{padding:6px 9px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:5px;font:inherit;cursor:pointer}
#v-tavla .tw-issue-actions button:first-child{background:var(--hivis);border-color:var(--hivis);color:#201806;font-weight:600}
#v-tavla .tw-issue-actions button:hover{filter:brightness(.95)}
#v-tavla .tw-issue-actions button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
#v-tavla .tw-row.puls-focus-row>.tw-label{box-shadow:inset 4px 0 var(--hivis);background:color-mix(in srgb,var(--hivis) 9%,var(--card))}
#v-tavla .tw-day.puls-focus-day{box-shadow:inset 0 0 0 3px var(--hivis)}
#v-tavla .tw-bubble.puls-focus-task{outline:2px solid var(--hivis);outline-offset:2px}
#v-tavla .tw-scale-title{font-size:10px;font-weight:500}#v-tavla .tw-scale-title b{font-weight:550}
#v-tavla .tw-scale button{width:28px;height:28px;font-size:15px;font-weight:550}
#v-tavla .tw-scale input[type=range]{appearance:none;-webkit-appearance:none;height:28px;background:transparent;border:0;padding:0;margin:0 3px;width:125px;cursor:pointer}
#v-tavla .tw-scale input::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(var(--hivis),var(--hivis)) 0 0/var(--fill,50%) 100% no-repeat,var(--line)}
#v-tavla .tw-scale input::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--card);border:2px solid var(--hivis);margin-top:-7px;box-shadow:0 1px 4px #17263730}
#v-tavla .tw-scale input::-moz-range-track{height:4px;border-radius:2px;background:var(--line)}
#v-tavla .tw-scale input::-moz-range-progress{height:4px;background:var(--hivis)}
#v-tavla .tw-scale input::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--card);border:2px solid var(--hivis)}
#v-tavla .tw-board{position:relative;display:block;--tw-label:200px;font-variant-numeric:tabular-nums}
#v-tavla .tw-head{height:var(--tv-head);background:var(--board)}
#v-tavla .tw-head .tw-label{justify-content:center;font-size:11px;font-weight:600;color:var(--ink2);background:var(--board)}
#v-tavla .tw-date{position:relative;background:var(--board);padding:6px 8px;text-align:left}
#v-tavla .tw-date b{font-size:12px;font-weight:600}#v-tavla .tw-date small{font-size:9px}
#v-tavla .tw-date.today{background:color-mix(in srgb,var(--hivis) 9%,var(--card));box-shadow:inset 0 3px var(--hivis)}
#v-tavla .tw-date-short,#v-tavla .tw-day-compact{display:none}
#v-tavla .tw-project{height:var(--tv-group);background:var(--soft);border-top:1px solid var(--line)}
#v-tavla .tw-project>button{display:flex;align-items:center;gap:7px;height:100%;padding:4px 12px;font-weight:600;font-size:12px}
.tw-project-mark{display:inline-block;flex-shrink:0;width:8px;height:8px;border-radius:2px}
#v-tavla .tw-row{border-bottom:2px solid var(--line);outline:0;background:var(--card)}
#v-tavla .tw-row .tw-label{padding:10px 12px;overflow:hidden;gap:4px;box-shadow:none;transition:background .12s}
#v-tavla .tw-label>b{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:600}
#v-tavla .tw-row-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#v-tavla .tw-label small{font-size:10px;line-height:1.4}
#v-tavla .tw-phase-summary{gap:3px}#v-tavla .tw-phase-status{font-size:10px;font-weight:600}
#v-tavla .tw-phase-status.over{color:var(--red);border:0;padding:0}
#v-tavla .tw-row.tw-over-budget .tw-label,#v-tavla .tw-row.tw-missing-staffing .tw-label{background:var(--card);box-shadow:inset 3px 0 var(--red)}
#v-tavla .tw-row:hover>.tw-label,#v-tavla .tw-row:focus-within>.tw-label{background:var(--tv-hover)}
#v-tavla .tw-track{background:var(--card)}
#v-tavla .tw-day{border:0;border-right:1px solid var(--line);background:transparent;outline:0;box-shadow:none;z-index:0}
#v-tavla .tw-day.weekend{background:var(--board)}
#v-tavla .tw-day.fag-in-period{border-top:1px solid var(--tv-period);border-bottom:1px solid var(--tv-period);background:transparent}
#v-tavla .tw-day.fag-period-start{border-left:1px solid var(--tv-period);border-radius:5px 0 0 5px}
#v-tavla .tw-day.fag-period-end{border-right:1px solid var(--tv-period);border-radius:0 5px 5px 0}
#v-tavla .tw-day.fag-period-clipped-start{border-left:1px dashed var(--tv-period)}#v-tavla .tw-day.fag-period-clipped-end{border-right:1px dashed var(--tv-period)}
#v-tavla .tw-day:hover{background:color-mix(in srgb,var(--tv-hover) 55%,transparent)}
#v-tavla .tw-day.has-missing{outline:1px solid var(--red);outline-offset:-3px;z-index:0}
#v-tavla .tw-day>span{top:auto;bottom:6px;left:7px;max-width:calc(100% - 14px);background:none;padding:0;border-radius:0;font-size:10px;color:var(--ink2);font-weight:550}
#v-tavla .tw-day.has-missing>span{color:var(--red);font-weight:650}
#v-tavla .tw-day>small{opacity:0;bottom:auto;top:4px;font-size:9px;background:none;padding:0;max-width:calc(100% - 14px)}
#v-tavla .tw-day:hover>small,#v-tavla .tw-day:focus-visible>small{opacity:1}
#v-tavla .tw-day>small .tw-day-gap{display:none}
#v-tavla .tw-day.has-overtime{border-top:0}#v-tavla .tw-day.has-overtime::after{display:none}
#v-tavla .tw-day.has-partial-absence>span{background:transparent;color:var(--ink2)}
#v-tavla .tw-day.has-health-absence>span{color:var(--tw-health-ink)}
#v-tavla .tw-day.has-full-health-absence{outline:0;background:repeating-linear-gradient(135deg,var(--tw-health-bg) 0 8px,color-mix(in srgb,var(--tw-health-border) 24%,var(--tw-health-bg)) 8px 9px)}
#v-tavla .tw-day.has-full-health-absence>span{color:var(--tw-health-ink)}
#v-tavla .tw-day[data-tw-absence=away]{background:repeating-linear-gradient(135deg,var(--tw-away-bg) 0 8px,color-mix(in srgb,var(--tw-away-border) 22%,var(--tw-away-bg)) 8px 9px)}
#v-tavla .tw-day[data-tw-absence=away]>span{color:var(--tw-away-ink)}
.tw-avatar{width:28px;height:28px;display:inline-grid;place-items:center;flex-shrink:0;border-radius:50%;background:var(--person-color,#617e96);color:#fff;font-size:10px;font-weight:600;font-style:normal;line-height:1}
#v-tavla .tw-bubble{height:var(--tv-bubble);border:1px solid var(--tw-project-border);border-radius:5px;background:var(--tw-project-light);box-shadow:none;padding:4px 6px;transition:box-shadow .12s,border-color .12s;line-height:1.3}
#v-tavla .tw-bubble.work:not(.overtime){border:1px solid var(--tw-project-border);background:var(--tw-project-light)}
#v-tavla .tw-bubble.work::before{display:none}
#v-tavla .tw-bubble b{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;min-width:0}
#v-tavla .tw-bubble b>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#v-tavla .tw-bubble small{font-size:10px;font-weight:400;color:var(--ink2)}
#v-tavla .tw-bubble .tw-avatar{width:18px;height:18px;font-size:8px}
#v-tavla .tw-bubble:has(.tw-short){display:flex;align-items:center;justify-content:center;padding:1px 2px}
#v-tavla .tw-bubble .tw-short{font-size:10px;overflow:hidden;text-overflow:clip;text-align:center}
#v-tavla .tw-bubble:empty{padding:0}
#v-tavla .tw-missing-resource{height:var(--tv-bubble);border:1px dashed var(--tw-missing);background:color-mix(in srgb,var(--tw-missing) 5%,var(--card));border-radius:5px;padding:3px 6px;line-height:1.3;overflow:hidden}#v-tavla .tw-missing-resource b{font-size:11px}#v-tavla .tw-missing-resource small{font-size:10px;color:var(--ink2)}#v-tavla .compact .tw-missing-resource{padding:0 2px;text-align:center;border-radius:4px}#v-tavla .compact .tw-missing-resource b{font-size:10px}#v-tavla .tw-missing-resource:not(:disabled):hover{border-style:solid;background:color-mix(in srgb,var(--tw-missing) 10%,var(--card))}
#v-tavla .tw-bubble:hover{filter:none;border-color:var(--task-accent);box-shadow:0 2px 7px #17263730}
#v-tavla .tw-bubble.conflict{outline:0;border:2px solid var(--red)}#v-tavla .tw-bubble.conflict b{color:var(--red)}
#v-tavla .tw-bubble.needs-replacement{border-left:3px solid var(--red)}
#v-tavla .tw-bubble.overtime{background:var(--tw-ot-bg);color:var(--tw-ot-ink);border:1px solid var(--tw-overtime);border-bottom:3px dashed var(--tw-ot-ink)}
#v-tavla .tw-bubble.overtime b,#v-tavla .tw-bubble.overtime small{color:var(--tw-ot-ink);font-weight:600}
#v-tavla .tw-bubble.absence{background:var(--tw-away-bg);border:1px solid var(--tw-away-border);color:var(--tw-away-ink);box-shadow:none}
#v-tavla .tw-bubble.absence.health-absence{background:var(--tw-health-bg);border-color:var(--tw-health-border);color:var(--tw-health-ink)}
#v-tavla .tw-bubble.absence b{font-weight:600;letter-spacing:0}
#v-tavla .tw-bubble.job{border:1px dashed var(--task-accent);background:var(--card)}
#v-tavla .tw-bubble.private{background:repeating-linear-gradient(135deg,var(--board) 0 5px,var(--soft) 5px 7px);border:1px dashed var(--line)}
#v-tavla .tw-bubble.travel{background:var(--soft);border-color:var(--line)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) #v-tavla .tw-bubble.work:not(.overtime){background:color-mix(in srgb,var(--tw-project-dark) var(--tv-work-strength,100%),var(--tv-work-lift,var(--tw-project-dark)))}}
:root[data-theme=dark] #v-tavla .tw-bubble.work:not(.overtime){background:color-mix(in srgb,var(--tw-project-dark) var(--tv-work-strength,100%),var(--tv-work-lift,var(--tw-project-dark)))}
#v-tavla .tw-pause{opacity:.5;border-color:var(--task-accent);background:repeating-linear-gradient(135deg,transparent 0 3px,color-mix(in srgb,var(--task-accent) 18%,transparent) 3px 5px)}
#v-tavla .compact .tw-bubble{border-radius:4px}#v-tavla .compact .tw-bubble.conflict{border-width:1px}
#v-tavla .very-compact .tw-day.has-missing{outline:0}
#v-tavla .very-compact .tw-day>span{left:2px;right:2px;max-width:none;font-size:9px;text-align:center;bottom:3px}
#v-tavla .very-compact .tw-day-long,#v-tavla .very-compact .tw-day>small{display:none}
#v-tavla .very-compact .tw-day-compact{display:block}
#v-tavla .very-compact .tw-label{justify-content:center;padding:4px 10px}
#v-tavla .very-compact .tw-row .tw-label>small,#v-tavla .very-compact .tw-phase-summary{display:none}
#v-tavla .very-compact .tw-date-long{display:none}#v-tavla .very-compact .tw-date-short{display:block}
#v-tavla .tw-date-short{white-space:nowrap;font-variant-numeric:tabular-nums}
#v-tavla .extreme-compact .tw-date-short{font-size:11px;line-height:1.2;text-align:center}
#v-tavla .extreme-compact .tw-date-short>span{display:block}
#v-tavla .very-compact .tw-date{padding:4px 2px}
#v-tavla .extreme-compact .tw-label .tw-avatar{width:22px;height:22px;font-size:8px}
#v-tavla .extreme-compact .tw-day-compact{font-size:8px;letter-spacing:-.25px}
#v-tavla .tw-now{position:absolute;top:var(--tv-head);bottom:0;width:2px;background:var(--hivis);z-index:5;pointer-events:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--hivis) 14%,transparent)}
#v-tavla .tw-now-time{position:absolute;bottom:0;transform:translateX(-50%);background:var(--hivis);color:#201806;padding:1px 4px;font-size:9px;font-weight:650;border-radius:3px;z-index:2}
#v-tavla .extreme-compact .tw-now-time{font-size:0;padding:0;width:5px;height:5px;border-radius:50%}
#v-tavla .tw-panel-tabs{padding:0 8px;gap:0;background:var(--board)}
#v-tavla .tw-panel-tabs button{background:transparent;border-radius:0;border-bottom:2px solid transparent;padding:12px 7px;color:var(--ink2);font-size:12px;font-weight:550}
#v-tavla .tw-panel-tabs button.on{background:transparent;color:var(--ink);border-color:var(--tv-petrol)}
#v-tavla .tw-panel-tools{padding:12px;gap:8px}#v-tavla .tw-panel-tools input,#v-tavla .tw-panel-tools select{font-size:12px;border-radius:6px}
#v-tavla .tw-person{border:1px solid var(--line);border-radius:7px;padding:10px;background:var(--card);gap:6px}
#v-tavla .tw-person:hover{border-color:var(--tv-period);background:var(--board)}
#v-tavla .tw-person>b{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:600}
#v-tavla .tw-person>span{font-size:12px;color:var(--green);font-weight:550}
#v-tavla .tw-person.tw-status-busy>span,#v-tavla .tw-person.tw-status-unavailable>span{color:var(--ink2)}
#v-tavla .tw-person small{font-size:10.5px;line-height:1.6}#v-tavla .tw-person-plan{border-top:1px solid var(--line);padding-top:5px}
#v-tavla .tw-person.tw-full-absence{background:var(--tw-away-bg);border-color:var(--tw-away-border)}
#v-tavla .tw-person.tw-health-absence{background:var(--tw-health-bg);border-color:var(--tw-health-border)}
#v-tavla .tw-person-absence{padding:0;background:transparent;font-weight:600;font-size:11px;color:var(--tw-away-ink)}
#v-tavla .tw-person-absence.health{background:transparent;color:var(--tw-health-ink)}
#v-tavla .tw-project-task{border-radius:7px;font-weight:500}#v-tavla .tw-project-task b{font-weight:600}
#v-tavla .tw-task-group h3{font-weight:600;font-size:11px}
#v-tavla .tw-task-group h3{display:flex;align-items:center;gap:7px}
#v-tavla .tw-panel-project-mark{display:inline-block;width:11px;height:11px;flex:0 0 11px;border-radius:3px;box-shadow:inset 0 0 0 1px #0002}
#v-tavla .legend{display:flex;flex-wrap:wrap;gap:8px 13px;padding:10px 12px;border-top:1px solid var(--line);color:var(--ink2);font-size:10.5px}
#v-tavla .legend>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-weight:450}
#v-tavla .tw-legend-note{font-weight:600!important;color:var(--ink)}
#v-tavla .tw-key{display:inline-block;width:15px;height:10px;border:1px solid var(--line);border-radius:3px;background:var(--card)}
#v-tavla .tw-key.work{background:#e4ecfc;border-color:#7792c8}#v-tavla .tw-key.period{border-color:var(--tv-period)}
#v-tavla .tw-key.conflict{border:2px solid var(--red)}#v-tavla .tw-key.overtime{background:var(--tw-ot-bg);border-color:var(--tw-overtime);border-bottom:2px dashed var(--tw-ot-ink)}
#v-tavla .tw-key.absence{background:var(--tw-health-bg);border-color:var(--tw-health-border)}#v-tavla .tw-key.away{background:var(--tw-away-bg);border-color:var(--tw-away-border)}
#v-tavla .tw-key.missing{border:1px dashed var(--red)}#v-tavla .tw-key.job,#v-tavla .tw-key.inferred{border-style:dashed}
#v-tavla .tw-key.now{width:2px;border:0;background:var(--hivis);border-radius:0}
#v-tavla #palette{padding:6px 12px;background:var(--board);border-top:1px solid var(--line)}
#v-tavla button:focus-visible,#v-tavla input:focus-visible{outline:2px solid var(--tv-petrol);outline-offset:1px}
#v-tavla .tw-board button:focus-visible{outline-offset:-2px}
#tavla-tooltip{position:fixed;z-index:90;width:318px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow:hidden;border:1px solid var(--tv-period,var(--line));border-radius:9px;background:var(--card);color:var(--ink);box-shadow:0 8px 26px #17263730;pointer-events:none;line-height:1.5;font-size:12px}
#tavla-tooltip[hidden],body:not(:has(#v-tavla.on,#v-project.on .pb-layout,#modalov.on .hour-plan-sheet,#modalov.on .project-day-sheet)) #tavla-tooltip{display:none}
#tavla-tooltip{--card:#fff;--board:#f6f8fb;--soft:#eaf0f5;--line:#ccd6e1;--ink:#152338;--ink2:#536579;--red:#b83d43;--reds:#fbecee;font-family:Inter,"Segoe UI",-apple-system,BlinkMacSystemFont,Arial,sans-serif}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) #tavla-tooltip{--card:#1a2938;--board:#1e3040;--soft:#233649;--line:#43596d;--ink:#edf2f8;--ink2:#b4c3d2;--red:#f3a3a0;--reds:#432d34}}
:root[data-theme=dark] #tavla-tooltip{--card:#1a2938;--board:#1e3040;--soft:#233649;--line:#43596d;--ink:#edf2f8;--ink2:#b4c3d2;--red:#f3a3a0;--reds:#432d34}
#tavla-tooltip header{padding:12px 14px;background:var(--board);border-bottom:1px solid var(--line)}
#tavla-tooltip header strong{display:flex;gap:7px;align-items:center;font-size:13px;font-weight:600}#tavla-tooltip header p{margin:4px 0 0}
#tavla-tooltip section{padding:12px 14px}#tavla-tooltip .tw-tip-person{display:flex;gap:8px;align-items:center;margin-bottom:12px}
#tavla-tooltip .tw-tip-person b{font-weight:600}#tavla-tooltip .tw-tip-person small{display:block;color:var(--ink2);font-size:11px}
#tavla-tooltip dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}#tavla-tooltip dt{color:var(--ink2);font-size:10px;margin-bottom:3px}#tavla-tooltip dd{font-size:12px;margin:0;font-weight:550}
#tavla-tooltip .tw-tip-address{font-size:11px;color:var(--ink2);margin:10px 0 0}
#tavla-tooltip .tw-tip-description{white-space:pre-wrap;overflow-wrap:anywhere;max-height:70px;overflow:hidden;font-size:11px}
#tavla-tooltip .tw-tip-state{font-size:11px;background:var(--soft);padding:8px 9px;border-radius:5px;margin:10px 0 0;color:var(--ink2)}
#tavla-tooltip .tw-tip-state.health{background:var(--tw-health-bg);color:var(--tw-health-ink)}#tavla-tooltip .tw-tip-state.away{background:var(--tw-away-bg);color:var(--tw-away-ink)}
#tavla-tooltip .tw-tip-state.danger{background:var(--reds);color:var(--red)}#tavla-tooltip .tw-tip-state.ot{background:var(--tw-ot-bg);color:var(--tw-ot-ink)}
#tavla-tooltip footer{background:var(--board);border-top:1px solid var(--line);padding:7px 14px;font-size:10px;color:var(--ink2)}
#tavla-tooltip{--tw-health-bg:#f9e5eb;--tw-health-ink:#a3354c;--tw-away-bg:#fff2d9;--tw-away-ink:#866016;--tw-ot-bg:#ffebd3;--tw-ot-ink:#8b4d11}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) #tavla-tooltip{--tw-health-bg:#442f3f;--tw-health-ink:#ffc1d1;--tw-away-bg:#403722;--tw-away-ink:#f2d391;--tw-ot-bg:#49351e;--tw-ot-ink:#ffd3a0}}
:root[data-theme=dark] #tavla-tooltip{--tw-health-bg:#442f3f;--tw-health-ink:#ffc1d1;--tw-away-bg:#403722;--tw-away-ink:#f2d391;--tw-ot-bg:#49351e;--tw-ot-ink:#ffd3a0}
@media(max-width:1100px){#v-tavla .tw-board{--tw-label:180px}}
@media(max-width:760px){body[data-session=app]:has(#v-tavla.on) .stage{padding:12px}#v-tavla .tw-board{--tw-label:145px}#v-tavla .tw-row .tw-label{padding:6px 8px}#v-tavla .tw-label>b{font-size:11px}#v-tavla #org3{grid-template-columns:minmax(0,1fr)}#v-tavla #filters{padding:8px}#v-tavla .tw-scale{margin-left:auto}#v-tavla .tw-date-range{flex-wrap:wrap}#v-tavla .tw-scale-title{display:none}#v-tavla .tw-theme{margin-left:auto}#v-tavla .hero>div>span{font-size:11px}#v-tavla .tw-panel-toggle{display:inline-flex}}
@media(prefers-reduced-motion:reduce){#v-tavla *{transition:none!important}}
@media(max-width:760px){body[data-session=app]:has(#v-tavla.on) #chrome-app .modes,body[data-session=app]:has(#v-tavla.on) #chrome-app .tright{flex-wrap:nowrap;overflow-x:auto}}
@media print{#v-tavla .tw-theme,#v-tavla .tw-panel-toggle,#tavla-tooltip{display:none!important}}

/* Dark resource planning: distinct calendar, labels, canvas and raised tasks.
   Explicit light mode wins over the operating-system preference. */
@media screen and (prefers-color-scheme:dark) {
  :root:not([data-theme=light]) :is(body[data-session=app]:has(#v-tavla.on),.hour-plan-sheet) {
    --ground:var(--ui-ground);--card:var(--ui-card);--board:var(--ui-board);--soft:var(--ui-soft);--line:var(--ui-line);
    --ink:var(--ui-ink);--ink2:var(--ui-ink2);--ink3:var(--ui-ink3);--tv-hover:var(--ui-soft);--tv-period:var(--ui-period);
    --tv-canvas:var(--ui-ground);--tv-label-surface:var(--ui-board);--tv-calendar-surface:var(--ui-head);
    --tv-group-surface:var(--ui-soft);--tv-weekend-surface:color-mix(in srgb,var(--ui-ground) 85%,#000);
    --tv-row-divider:color-mix(in srgb,var(--ui-ink3) 45%,var(--ui-line));
    --tv-grid-line:color-mix(in srgb,var(--ui-ink3) 25%,var(--ui-line));
    --tv-today-surface:transparent;--tv-today-head:color-mix(in srgb,var(--ui-accent) 15%,var(--ui-head));
    --tv-modal-head:var(--ui-board);--tv-field-surface:var(--ui-ground);--tv-panel-item:var(--ui-board);--tv-control-surface:var(--ui-card);
    --tv-work-strength:80%;--tv-work-lift:#fff;--tv-work-border-lift:15%;--tv-bubble-muted:#dde6ef;
    --tw-work-bg:#283c5d;--tw-ot-bg:#49351e;--tw-ot-ink:#ffd3a0;--tw-overtime:#ce9650;--tw-missing:var(--ui-red);
    --tw-health-bg:#442f3f;--tw-health-ink:#ffc1d1;--tw-health-border:#a87689;
    --tw-away-bg:var(--ui-warnings);--tw-away-ink:var(--ui-warning);--tw-away-border:#a38a50;
  }
}
@media screen {
  :root[data-theme=dark] :is(body[data-session=app]:has(#v-tavla.on),.hour-plan-sheet) {
    --ground:var(--ui-ground);--card:var(--ui-card);--board:var(--ui-board);--soft:var(--ui-soft);--line:var(--ui-line);
    --ink:var(--ui-ink);--ink2:var(--ui-ink2);--ink3:var(--ui-ink3);--tv-hover:var(--ui-soft);--tv-period:var(--ui-period);
    --tv-canvas:var(--ui-ground);--tv-label-surface:var(--ui-board);--tv-calendar-surface:var(--ui-head);
    --tv-group-surface:var(--ui-soft);--tv-weekend-surface:color-mix(in srgb,var(--ui-ground) 85%,#000);
    --tv-row-divider:color-mix(in srgb,var(--ui-ink3) 45%,var(--ui-line));
    --tv-grid-line:color-mix(in srgb,var(--ui-ink3) 25%,var(--ui-line));
    --tv-today-surface:transparent;--tv-today-head:color-mix(in srgb,var(--ui-accent) 15%,var(--ui-head));
    --tv-modal-head:var(--ui-board);--tv-field-surface:var(--ui-ground);--tv-panel-item:var(--ui-board);--tv-control-surface:var(--ui-card);
    --tv-work-strength:80%;--tv-work-lift:#fff;--tv-work-border-lift:15%;--tv-bubble-muted:#dde6ef;
    --tw-work-bg:#283c5d;--tw-ot-bg:#49351e;--tw-ot-ink:#ffd3a0;--tw-overtime:#ce9650;--tw-missing:var(--ui-red);
    --tw-health-bg:#442f3f;--tw-health-ink:#ffc1d1;--tw-health-border:#a87689;
    --tw-away-bg:var(--ui-warnings);--tw-away-ink:var(--ui-warning);--tw-away-border:#a38a50;
  }
  #v-tavla :is(.tw-day,.tw-date) {border-right-color:var(--tv-grid-line,var(--line))}
  #v-tavla .tw-track {background:var(--tv-canvas,var(--card))}
  #v-tavla .tw-row>.tw-label {background:var(--tv-label-surface,var(--card))}
  #v-tavla :is(.tw-head,.tw-head .tw-label,.tw-date) {background:var(--tv-calendar-surface,var(--board))}
  #v-tavla .tw-head {border-bottom:2px solid var(--line)}
  #v-tavla .tw-date.today {background:var(--tv-today-head,color-mix(in srgb,var(--hivis) 9%,var(--card)))}
  #v-tavla .tw-project {background:var(--tv-group-surface,var(--soft))}
  #v-tavla .tw-day.weekend:not(.has-full-health-absence):not([data-tw-absence=away]) {background:var(--tv-weekend-surface,var(--board))}
  #v-tavla .tw-day.today:not(.has-full-health-absence):not([data-tw-absence=away]) {background:var(--tv-today-surface,transparent)}
  #v-tavla .tw-board .tw-row>.tw-label,#v-tavla .tw-board .tw-row>.tw-track {border-bottom-color:var(--tv-row-divider)}
  #v-tavla :is(.tw-person:where(:not(.tw-full-absence):not(.tw-health-absence)),.tw-project-task) {background:var(--tv-panel-item,var(--card))}
  #v-tavla :is(.tw-person,.tw-project-task):hover {background:var(--tv-hover,var(--board))}
  #v-tavla .tw-panel-tools :is(input,select) {background:var(--tv-control-surface,var(--card));color:var(--ink);border-color:var(--line)}
  #v-tavla :is(.tw-theme,.tw-panel-toggle,.tw-date-nav button) {background:var(--tv-control-surface,var(--card))}
  /* The original project hue remains; only dark-mode luminance changes. */
  #v-tavla .tw-bubble.work:not(.overtime) {
    background:color-mix(in srgb,var(--tw-project-dark) var(--tv-work-strength,0%),var(--tv-work-lift,var(--tw-project-light)));
    border-color:color-mix(in srgb,var(--tw-project-border),var(--tv-work-lift,var(--tw-project-border)) var(--tv-work-border-lift,0%));
  }
  #v-tavla .tw-bubble.work:not(.overtime).conflict {border-color:var(--red)}
  #v-tavla .tw-bubble.work:not(.overtime).needs-replacement {border-left-color:var(--red)}
  #v-tavla .tw-bubble small {color:var(--tv-bubble-muted,var(--ink2))}
  #v-tavla .tw-bubble.overtime small {color:var(--tw-ot-ink)}
  #v-tavla .tw-bubble.absence small {color:var(--tw-away-ink)}
  #v-tavla .tw-bubble.health-absence small {color:var(--tw-health-ink)}
  #v-tavla .tw-bubble.job {background:var(--tv-panel-item,var(--card));border-color:var(--tv-period)}
  #v-tavla .tw-bubble.travel {background:var(--board)}
  #v-tavla .tw-key.work {background:var(--tw-work-bg);border-color:var(--tv-period)}
  #v-tavla .tw-pan {background:var(--tv-calendar-surface,var(--board));border-top:1px solid var(--line)}
  .hour-plan-sheet .sh {background:var(--tv-modal-head,var(--card));border-radius:16px 16px 0 0}
  .hour-plan-sheet .sf {background:var(--tv-modal-head,var(--card));border-top:1px solid var(--line);border-radius:0 0 16px 16px}
  .hour-plan-sheet .hour-editor-track {background-color:var(--tv-canvas,transparent);border-color:var(--line)}
  .hour-plan-sheet .hour-plan-row :is(input:not([type=checkbox]),select,textarea) {background:var(--tv-field-surface,var(--board));color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:6px 7px;font-family:inherit}
  .hour-plan-sheet .hour-plan-row textarea {width:100%;font-size:12px}
  .hour-plan-sheet .hour-plan-add {border-top-color:var(--line)}
}

/* Overtime is a task type, not just a thin edge on a project-coloured task. */
@media screen {
  :is(#v-tavla,#v-project .pb-layout) {--ot-fill:#ffe0ad;--ot-ink:#633000;--ot-edge:#b25b13;--ot-badge:#934500;--ot-badge-ink:#fff}
  :root[data-theme=dark] :is(#v-tavla,#v-project .pb-layout) {--ot-fill:#704314;--ot-ink:#fff0d3;--ot-edge:#e7a84b;--ot-badge:#ffc66d;--ot-badge-ink:#3c250b}
  :is(#v-tavla,#v-project .pb-layout) .tw-bubble.overtime {background:var(--ot-fill);color:var(--ot-ink);border:2px solid var(--ot-edge);box-shadow:inset 3px 0 var(--ot-edge)}
  :is(#v-tavla,#v-project .pb-layout) .tw-bubble.overtime b {display:flex;align-items:center;gap:5px;color:var(--ot-ink);font-weight:700}
  :is(#v-tavla,#v-project .pb-layout) .tw-bubble.overtime small {color:var(--ot-ink);font-weight:550}
  .tw-bubble .tw-ot-badge {display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:14px;box-sizing:border-box;padding:1px 3px;border-radius:3px;background:var(--ot-badge,#934500);color:var(--ot-badge-ink,#fff);font-size:9px;font-weight:800;line-height:1;letter-spacing:.02em}
  :is(#v-tavla,#v-project .pb-layout) .tw-bubble.overtime .tw-ot-short {font-size:8px;letter-spacing:0;justify-content:center}
  :is(#v-tavla,#v-project .pb-layout) .tw-bubble.overtime:empty {border-width:1px;box-shadow:inset 2px 0 var(--ot-edge)}
  :is(#v-tavla,#v-project .pb-layout) .tw-bubble.overtime.conflict {border-color:var(--ot-edge);outline:2px solid var(--red);outline-offset:1px}
  #v-tavla .tw-key.overtime {background:var(--ot-fill);border:1px solid var(--ot-edge);box-shadow:inset 2px 0 var(--ot-edge)}
}
@media screen and (prefers-color-scheme:dark) {
  :root:not([data-theme=light]) :is(#v-tavla,#v-project .pb-layout) {--ot-fill:#704314;--ot-ink:#fff0d3;--ot-edge:#e7a84b;--ot-badge:#ffc66d;--ot-badge-ink:#3c250b}
}

:is(#v-tavla,.pb-layout) .tw-period-footer button:first-child:not(:last-child){background:var(--board);border-color:var(--line);color:var(--ink)}
