:root {
  font-family: system-ui, sans-serif;
  color: #171917;
  background: #f2f4f1;
  line-height: 1.5;
  --accent: #087523;
  --border: #d5ded4;
}
* { box-sizing: border-box; }
body { margin: 0; }
header { background: #111311; color: #fff; }
.bar, main { max-width: 1120px; margin: auto; padding: 1rem clamp(1rem, 4vw, 2.5rem); }
.bar, .heading, nav, .actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.bar, .heading { justify-content: space-between; }
.brand { font-weight: 750; font-size: 1.15rem; }
header a, header button { color: inherit; }
a { color: var(--accent); text-underline-offset: .2em; }
.brand { text-decoration: none; }
main { padding-bottom: 3rem; }
h1 { font-size: clamp(1.8rem, 5vw, 2.65rem); line-height: 1.1; margin: .25em 0 .65em; overflow-wrap: anywhere; }
h2 { margin: 0 0 .7rem; font-size: 1.2rem; }
.eyebrow { color: var(--accent); font-weight: 700; margin-bottom: 0; }
.panel { background: white; border: 1px solid var(--border); border-radius: .85rem; padding: clamp(1rem, 3vw, 1.65rem); margin: 0 0 1rem; }
.narrow { max-width: 28rem; margin: 2rem auto; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; align-items: end; }
.stack { display: grid; gap: 1rem; justify-items: start; }
.narrow label { width: 100%; }
label { display: block; font-weight: 650; }
input, select, button, .button { font: inherit; }
input:not([type=checkbox]), select { display: block; width: 100%; margin-top: .3rem; padding: .55rem .65rem; border: 1px solid #879486; border-radius: .4rem; background: #fff; color: #171917; }
.check { display: flex; align-items: center; gap: .5rem; }
button, .button { display: inline-block; border: 1px solid transparent; border-radius: .45rem; padding: .55rem .9rem; background: var(--accent); color: white; font-weight: 700; cursor: pointer; text-decoration: none; }
button:disabled { opacity: .55; cursor: default; }
.quiet { background: transparent; padding: .2rem; text-decoration: underline; }
.secondary { background: #e4f1e5; color: #174a24; border-color: #c4d9c5; }
.danger { background: #a32132; }
.actions { align-items: end; }
.search { flex: 1 1 14rem; }
.scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .65rem; text-align: left; border-bottom: 1px solid var(--border); overflow-wrap: anywhere; }
th { background: #eaf2e9; }
.numeric { text-align: right; }
input.quantity { margin-left: auto; margin-top: 0; min-width: 5rem; width: 7rem; }
.badge, .notice { background: #e4f1e5; color: #174a24; }
.badge { white-space: nowrap; padding: .15rem .5rem; border-radius: .4rem; }
.notice { padding: .8rem 1rem; border-radius: .5rem; overflow-wrap: anywhere; }
small, .muted { color: #465246; }
details { border-top: 1px solid var(--border); padding: .65rem 0; }
details .grid { margin-top: 1rem; }
summary { cursor: pointer; font-weight: 650; }
.brand { display: flex; align-items: center; gap: .85rem; }
.brand-logo { display: block; width: clamp(8rem, 19vw, 12rem); height: auto; border-radius: .25rem; }
textarea { display: block; width: 100%; margin-top: .3rem; padding: .65rem; border: 1px solid #879486; border-radius: .4rem; font: inherit; }
.wide { width: 100%; }
.preline { white-space: pre-wrap; overflow-wrap: anywhere; }
.warning { background: #fff0d0; color: #663d00; }
.workshop-job, .attachment-form { border-top: 1px solid var(--border); margin-top: 1rem; padding-top: 1rem; }
#scan-video { width: min(100%, 34rem); border-radius: .5rem; margin-top: .8rem; }
.qr-label { width: fit-content; max-width: 100%; text-align: center; }
.qr-label img { max-width: 100%; height: auto; }
@media (max-width: 620px) {
  nav { gap: .4rem .85rem; }
  .bar { align-items: flex-start; flex-direction: column; }
  .actions { align-items: stretch; }
  th, td { padding: .5rem; }
  input.quantity { min-width: 3.5rem; width: 4.5rem; padding-inline: .35rem; }
}
@media print {
  body { background: white; }
  header, #print-label { display: none; }
  .qr-label { border: 0; }
}
.catalog-grid { align-items: stretch; }
.catalog-card { border: 1px solid var(--border); border-radius: .55rem; padding: .9rem; overflow-wrap: anywhere; }
.catalog-card h3 { margin: .3rem 0; }
.catalog-photo { width: min(100%, 12rem); height: 8rem; object-fit: contain; border-radius: .35rem; background: #f2f4f1; }
#plan-grid { display: block; width: 100%; height: auto; border: 1px solid var(--border); cursor: crosshair; }
.plan-bg { fill: #f7faf6; }
.plan-gridline { fill: none; stroke: #d5ded4; }
.plan-node rect { fill: #c8e8cb; stroke: #087523; stroke-width: 1.4; }
.plan-node text, .plan-link text { fill: #182719; font-size: 14px; font-weight: 750; }
.plan-link line { stroke: #252b25; stroke-width: 2.5; }
.plan-link text { fill: #252b25; paint-order: stroke; stroke: #fff; stroke-width: 3; }
.plan-arrow { fill: #252b25; }
.plan-delete { margin-top: 1rem; }

header { border-bottom: 3px solid #008d12; }
nav a[aria-current="page"] { text-decoration-color: #71dc7f; text-decoration-thickness: .15em; }
:focus-visible { outline: 3px solid #168835; outline-offset: 3px; }
header :focus-visible, .welcome :focus-visible { outline-color: #86e693; }

.welcome {
  margin-block: clamp(.5rem, 2vw, 1.25rem);
  border: 1px solid #29352a;
  border-radius: 1rem;
  background-color: #111311;
  background-image:
    linear-gradient(90deg, #111311 0%, transparent 100%),
    linear-gradient(#28362a 1px, transparent 1px),
    linear-gradient(90deg, #28362a 1px, transparent 1px);
  background-size: auto, 28px 28px, 28px 28px;
  color: #fff;
}
.welcome-inner { padding: clamp(1.25rem, 5vw, 3.75rem); }
.welcome-status { display: flex; gap: .6rem; align-items: stretch; flex-wrap: wrap; margin-bottom: 1rem; color: #fff; }
.welcome-status .welcome-clock, .welcome-status .welcome-weather {
  display: flex; align-items: center; gap: .45rem; padding: .3rem .45rem; border: 1px solid #fff;
  font-family: Arial, sans-serif; font-size: .75rem; line-height: 1.3;
}
.welcome-status .welcome-weather * { font-family: Arial, sans-serif; color: #fff; }
.welcome-clock > svg { width: 2.65rem; height: 2.65rem; }
.welcome-weather > svg { width: 1.45rem; height: 1.45rem; flex: none; }
.welcome-weather [hidden] { display: none; }
.welcome-clock-time { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.welcome-logo { display: block; width: min(100%, 18rem); height: auto; border-radius: .3rem; }
.welcome h1 { max-width: 16ch; font-size: clamp(2rem, 6vw, 4.2rem); letter-spacing: -.045em; }
.welcome-copy { max-width: 48ch; margin: 0 0 1.5rem; color: #e1e9e1; }
.welcome-secondary { background: #191e19; border-color: #769277; }
.welcome-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
  gap: .75rem;
}
.welcome-links a {
  display: grid;
  gap: .25rem;
  padding: 1rem;
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: .6rem;
  background: #fff;
  color: inherit;
  text-decoration: none;
}
.welcome-links a:hover { border-color: var(--accent); }
.welcome-links span { color: #465246; font-size: .9rem; }

:root {
  font-family: Arial, sans-serif;
  --display-font: "WRS Bank Gothic", Arial, sans-serif;
}
h1, h2, h3, legend, .brand, .admin-section > summary, .nav-button {
  font-family: var(--display-font);
}
h1, h2, h3 { letter-spacing: .015em; }
form, table, input, textarea, select { font-family: Arial, sans-serif; }
.panel, .welcome, .welcome-links a, .button, button, input:not([type=checkbox]),
textarea, select, .notice, .badge, .catalog-photo, #scan-video {
  border-radius: 0;
}
.brand-logo, .welcome-logo { border-radius: 0; }
header .bar { align-items: flex-start; flex-direction: column; }
header nav { gap: .4rem; }
.nav-button {
  display: inline-block;
  padding: .45rem .65rem;
  border: 1px solid #637263;
  background: #1a211a;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
.nav-button:hover, nav .nav-button[aria-current="page"] {
  background: #086923;
  border-color: #8ad69a;
  color: #fff;
}
.admin-sections { display: grid; gap: 1rem; }
.admin-section { padding: 0 clamp(1rem, 3vw, 1.8rem); margin: 0; }
.admin-section > summary { padding: 1rem 0; font-size: 1.2rem; }
.admin-section[open] { padding-bottom: 1.5rem; }
.admin-section .grid { gap: 1.2rem 1.6rem; margin-bottom: 1.5rem; }
.admin-section .attachment-form, .admin-section details { margin-top: 1rem; padding-top: 1rem; }
.admin-section form > label { min-width: 0; }
.catalog-list { min-width: 36rem; }
.catalog-list tbody th { background: #fff; }
.catalog-thumb { display: block; width: 3rem; height: 3rem; object-fit: contain; }
.month { table-layout: fixed; min-width: 35rem; }
.month td { height: 4.4rem; vertical-align: top; border: 1px solid var(--border); }
.month .calendar-today { background: #d6efda; box-shadow: inset 0 0 0 2px #177629; }
.month time[aria-current="date"] { display: inline-block; padding: .1rem .4rem; background: #177629; color: #fff; }
.month .staff-color-red { background: #ffe4e4; color: #7c1d1d; }
.month .staff-color-green { background: #ddf4e1; color: #195625; }
.month .staff-color-blue { background: #e1edff; color: #1a4175; }
.welcome-shortcuts, .load-totals { margin-top: 1.25rem; }
.welcome-shortcuts { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.month time { font-weight: 700; }
.calendar-event { display: block; padding: .25rem; margin-top: .25rem; background: #eaf2e9; }
.drop-zone { display: block; border: 1px dashed #879486; padding: .75rem; min-width: 0; }
.drop-zone.is-dragging { outline: 2px solid var(--accent); background: #e4f1e5; }
.drop-status { display: block; margin-top: .4rem; font-size: .85rem; font-weight: 400; overflow-wrap: anywhere; }
.profile-photo { display: block; width: 8rem; height: 8rem; object-fit: contain; margin-bottom: 1rem; }
fieldset.panel { min-width: 0; }
fieldset .check { margin-block: .4rem; }

@font-face {
  font-family: "WRS Bank Gothic";
  src: local("Bank Gothic Regular"), local("BankGothic-Regular"), local("Bank Gothic"),
       local("BankGothic-Medium");
  font-style: normal;
  font-weight: 400;
}
.home-page main, .home-page main *, .home-page .site-footer {
  font-family: var(--display-font);
  font-weight: 400;
}
.home-page #monatskalender { font-size: 50%; }
.home-page #monatskalender, .home-page #monatskalender * {
  font-family: Arial, sans-serif;
  font-weight: 400;
}
.home-page #monatskalender h2 { font-size: .6rem; }
.home-page #monatskalender .muted { font-size: inherit; }
.power-tree, .power-tree ul { list-style: none; padding-left: 1.2rem; }
.power-tree ul { margin: .25rem 0 .45rem; border-left: 1px solid currentColor; }
.power-tree li { position: relative; padding: .25rem 0; }
.power-tree ul > li::before { content: ""; position: absolute; left: -1.2rem; top: 1rem; width: 1rem; border-top: 1px solid currentColor; }
.power-node { display: inline-flex; align-items: center; gap: .35rem; }
.power-symbol { width: 1rem; height: 1rem; flex: none; }
.home-page .welcome {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
  align-items: stretch;
}
.welcome-photo {
  position: relative;
  aspect-ratio: 1591 / 1100;
  overflow: hidden;
  align-self: center;
  margin: 1.2rem;
}
.welcome-photo img {
  position: absolute;
  display: block;
  max-width: none;
  width: 100.57%;
  height: auto;
  inset: -3.18% auto auto -0.19%;
}
.site-footer {
  max-width: 76rem;
  margin: 1rem auto;
  padding: 1rem;
  border-top: 1px solid var(--border);
  color: #465246;
  font-size: .9rem;
}
.material-category summary {
  font-family: var(--display-font);
  font-size: 1.2rem;
  margin-block: .25rem;
}
.material-category .scroll { margin-top: .75rem; }
[data-entry][hidden] { display: none; }
@media (max-width: 700px) {
  .home-page .welcome { grid-template-columns: minmax(0, 1fr); }
  .welcome-photo { margin-top: 0; }
}
.check input[type="radio"] { width: auto; margin: 0; }

.brand { gap: clamp(1.4rem, 3vw, 2.8rem); }
@media (min-width: 960px) {
  header .bar { max-width: 1240px; }
  .nav-button { padding: .55rem .72rem; }
}
.welcome-photo > .welcome-logo {
  position: absolute;
  inset: .85rem .85rem auto auto;
  width: min(60%, 10rem);
  height: auto;
  padding: .3rem .45rem;
  background: #111311e8;
}
.tool-list { display: grid; gap: 1rem; padding: 0; margin: 0 0 1.5rem; list-style: none; }
.tool-list a {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .85rem;
  padding: .9rem 1.1rem;
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  color: inherit;
  background: #fff;
  text-decoration: none;
}
.tool-list a:hover { border-color: var(--accent); }
.tool-list small { display: block; margin-top: .2rem; }
.tool-icon { display: block; width: 1.3rem; height: 1.3rem; font-size: 1.05rem; }
.workshop-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); gap: 1rem; align-items: start; }
.workshop-columns .actions { flex-wrap: wrap; }
.event-site { grid-column: 1 / -1; min-width: 0; }
.platform-figure { margin: 0; }
.platform-figure svg { display: block; width: 100%; max-width: 39rem; height: auto; }
.platform-figure svg text { font: 15px Arial, sans-serif; fill: #25372c; }
[data-catalog-search] [hidden] { display: none; }

/* Lautsprecherplanung */
[data-speaker-field][hidden], #speaker-report[hidden] { display: none; }
.speaker-board { position: relative; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(1.5rem,10vw,8rem); padding: clamp(.55rem,2vw,1.3rem); border: 1px solid #c4d5c8; background: #edf4ee; }
.speaker-board > div { z-index: 1; min-width: 0; }
.speaker-board h3 { font-size: clamp(.78rem,2vw,1.1rem); }
.speaker-device-list { display: grid; gap: .7rem; }
.speaker-device { display: grid; gap: .5rem; padding: .55rem; background: #fff; border: 1px solid #afc2b3; overflow-wrap: anywhere; }
.speaker-device button { padding: .45rem; white-space: normal; font-size: .9rem; }
.speaker-device button[draggable] { cursor: grab; }
.speaker-drawing { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 2; }
.speaker-drawing path { fill: none; stroke: #0c761e; stroke-width: 2.5; }
.speaker-drawing path.twisted { stroke-dasharray: 6 4; }
.speaker-link { min-width: 0; border: 1px solid #afc2b3; padding: .8rem; }
.speaker-link legend { max-width: 100%; overflow-wrap: anywhere; }
.speaker-link .actions { margin-top: .75rem; }
#speaker-editor button[aria-pressed=true] { background: #107522; color: #fff; }
#speaker-status:empty { display: none; }

/* V06 */
.brand { font-size: calc(1.15rem + 3pt); }
header nav {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  width: 100%;
  align-items: stretch;
  gap: .45rem;
}
header nav .nav-button { display: grid; place-items: center; width: 100%; height: 100%; text-align: center; overflow-wrap: anywhere; }
header nav form { margin: 0; }
.category-number { margin-inline-start: 1ch; font-variant-numeric: tabular-nums; }
.compact-calendar .heading { margin-bottom: .4rem; }
.compact-calendar .heading h2 { margin: 0; }
.compact-calendar .month, .work-time-month { min-width: 0; }
.compact-calendar .month td, .work-time-month td { height: 2.55rem; padding: .25rem; }
.compact-calendar .month th, .work-time-month th { padding: .3rem; text-align: center; }
.calendar-event { font-size: .85rem; line-height: 1.25; overflow-wrap: anywhere; }
.calendar-agenda, .calendar-day-count { display: none; }
.week-totals { display: flex; gap: .5rem 1.5rem; flex-wrap: wrap; }

@media (max-width: 700px) {
  header nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  header .bar { gap: .65rem; }
  .brand { gap: .6rem; font-size: calc(1rem + 3pt); }
  .brand-logo { width: clamp(4.5rem, 24vw, 8rem); }
  header nav .nav-button { padding: .48rem .2rem; font-size: .85rem; }
  main .panel { padding: .85rem; }
  .welcome-shortcuts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .welcome-shortcuts .button { text-align: center; }
  .compact-calendar .month .calendar-event { display: none; }
  .calendar-day-count { display: block; width: fit-content; min-width: 1.1rem; margin-top: .15rem; padding: 0 .2rem; text-align: center; background: #e5f1e5; }
  .calendar-agenda { display: grid; gap: .65rem; margin-top: .75rem; }
  .calendar-agenda-day { scroll-margin-top: .5rem; }
  .calendar-agenda-day:target { outline: 2px solid var(--accent); }
  .work-time-category { display: none; }
  .order-list, .order-list tbody { display: block; min-width: 0; }
  .order-list thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .order-list tr { display: grid; gap: .2rem; padding: .5rem; margin-bottom: .55rem; border: 1px solid var(--border); }
  .order-list td { display: block; padding: .2rem; border: 0; }
  .order-list td[data-label]::before { content: attr(data-label) " · "; font-weight: 650; }
}
@media (max-width: 340px) { header nav { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.staff-color-farbe-01 { background: hsl(0 76% 84%); color: #141b16; }
.staff-color-farbe-02 { background: hsl(15 76% 84%); color: #141b16; }
.staff-color-farbe-03 { background: hsl(30 76% 84%); color: #141b16; }
.staff-color-farbe-04 { background: hsl(45 76% 84%); color: #141b16; }
.staff-color-farbe-05 { background: hsl(60 76% 84%); color: #141b16; }
.staff-color-farbe-06 { background: hsl(75 76% 84%); color: #141b16; }
.staff-color-farbe-07 { background: hsl(90 76% 84%); color: #141b16; }
.staff-color-farbe-08 { background: hsl(105 76% 84%); color: #141b16; }
.staff-color-farbe-09 { background: hsl(120 76% 84%); color: #141b16; }
.staff-color-farbe-10 { background: hsl(135 76% 84%); color: #141b16; }
.staff-color-farbe-11 { background: hsl(150 76% 84%); color: #141b16; }
.staff-color-farbe-12 { background: hsl(165 76% 84%); color: #141b16; }
.staff-color-farbe-13 { background: hsl(180 76% 84%); color: #141b16; }
.staff-color-farbe-14 { background: hsl(195 76% 84%); color: #141b16; }
.staff-color-farbe-15 { background: hsl(210 76% 84%); color: #141b16; }
.staff-color-farbe-16 { background: hsl(225 76% 84%); color: #141b16; }
.staff-color-farbe-17 { background: hsl(240 76% 84%); color: #141b16; }
.staff-color-farbe-18 { background: hsl(255 76% 84%); color: #141b16; }
.staff-color-farbe-19 { background: hsl(270 76% 84%); color: #141b16; }
.staff-color-farbe-20 { background: hsl(285 76% 84%); color: #141b16; }
.staff-color-farbe-21 { background: hsl(300 76% 84%); color: #141b16; }
.staff-color-farbe-22 { background: hsl(315 76% 84%); color: #141b16; }
.staff-color-farbe-23 { background: hsl(330 76% 84%); color: #141b16; }
.staff-color-farbe-24 { background: hsl(345 76% 84%); color: #141b16; }
.staff-color-farbe-25 { background: hsl(0 76% 66%); color: #141b16; }
.staff-color-farbe-26 { background: hsl(15 76% 66%); color: #141b16; }
.staff-color-farbe-27 { background: hsl(30 76% 66%); color: #141b16; }
.staff-color-farbe-28 { background: hsl(45 76% 66%); color: #141b16; }
.staff-color-farbe-29 { background: hsl(60 76% 66%); color: #141b16; }
.staff-color-farbe-30 { background: hsl(75 76% 66%); color: #141b16; }
.staff-color-farbe-31 { background: hsl(90 76% 66%); color: #141b16; }
.staff-color-farbe-32 { background: hsl(105 76% 66%); color: #141b16; }
.staff-color-farbe-33 { background: hsl(120 76% 66%); color: #141b16; }
.staff-color-farbe-34 { background: hsl(135 76% 66%); color: #141b16; }
.staff-color-farbe-35 { background: hsl(150 76% 66%); color: #141b16; }
.staff-color-farbe-36 { background: hsl(165 76% 66%); color: #141b16; }
.staff-color-farbe-37 { background: hsl(180 76% 66%); color: #141b16; }
.staff-color-farbe-38 { background: hsl(195 76% 66%); color: #141b16; }
.staff-color-farbe-39 { background: hsl(210 76% 66%); color: #141b16; }
.staff-color-farbe-40 { background: hsl(225 76% 66%); color: #141b16; }
.staff-color-farbe-41 { background: hsl(240 76% 66%); color: #141b16; }
.staff-color-farbe-42 { background: hsl(255 76% 66%); color: #141b16; }
.staff-color-farbe-43 { background: hsl(270 76% 66%); color: #141b16; }
.staff-color-farbe-44 { background: hsl(285 76% 66%); color: #141b16; }
.staff-color-farbe-45 { background: hsl(300 76% 66%); color: #141b16; }
.staff-color-farbe-46 { background: hsl(315 76% 66%); color: #141b16; }
.staff-color-farbe-47 { background: hsl(330 76% 66%); color: #141b16; }
.staff-color-farbe-48 { background: hsl(345 76% 66%); color: #141b16; }

@media (max-width: 700px) {
  .catalog-list, .catalog-list tbody { display: block; min-width: 0; }
  .catalog-list thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .catalog-list tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; border-bottom: 1px solid var(--border); padding: .5rem 0; }
  .catalog-list td, .catalog-list th { display: block; border: 0; padding: .25rem; overflow-wrap: anywhere; }
  .catalog-list th { grid-column: 1; grid-row: 1; }
  .catalog-list .catalog-picture { grid-column: 2; grid-row: 1; }
  .catalog-list .catalog-no-picture { display: none; }
  .catalog-list td:not(.catalog-picture) { grid-column: 1 / -1; }
}
.crew-stays { list-style: none; padding: 0; }
.crew-stays > li { padding: .7rem 0; border-top: 1px solid var(--border); }
.crew-stays h3 { margin: 0 0 .45rem; }
.crew-stay-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr)); align-items: end; gap: .55rem 1rem; }

.route-widget { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: .65rem 1rem; padding: .85rem 1rem; }
.route-widget h2 { margin: 0 0 .45rem; font-size: 1rem; }
.route-widget form { display: flex; flex-wrap: wrap; gap: .4rem .55rem; align-items: end; }
.route-widget form label { flex: 1 1 8rem; font-size: .85rem; }
.route-widget form input, .route-widget form button { padding: .4rem .55rem; }
.route-status { font-size: .78rem; margin: .35rem 0 0; overflow-wrap: anywhere; }
.route-status:empty { display: none; }
.route-results { display: grid; grid-template-columns: minmax(0, 13rem) auto; gap: .25rem .75rem; align-items: center; }
.route-map { width: min(100%, 13rem); aspect-ratio: 240 / 108; display: grid; place-items: center; border: 1px solid var(--border); background: #eef2ec; color: #455049; overflow: hidden; font-size: .75rem; }
.route-map svg { width: 100%; height: 100%; }
.route-widget [hidden] { display: none; }
.route-line, .route-line-outline { fill: none; stroke-linejoin: round; stroke-linecap: round; }
.route-line { stroke: #117537; stroke-width: 3; }
.route-line-outline { stroke: #fff; stroke-width: 5; }
.route-marker { stroke: #fff; stroke-width: 1.5; }
.route-start { fill: #117537; }
.route-target { fill: #173d72; }
.route-values { margin: 0; font-size: .76rem; }
.route-values div + div { margin-top: .45rem; }
.route-values dd { margin: 0; font-weight: 750; font-size: .95rem; white-space: nowrap; }
.route-attribution { grid-column: 1 / -1; font-size: .69rem; }
@media (max-width: 700px) {
  .route-widget { grid-template-columns: 1fr; }
  .route-results { justify-content: start; }
}

.work-time-target { margin-top: 1rem; }
.work-time-summary { display: flex; flex-wrap: wrap; gap: .5rem 1.35rem; }
.work-time-summary dd { margin: 0; font-weight: 750; }
.work-time-planned { background: #fff4d5; }
.work-time-planned span { overflow-wrap: anywhere; }
[data-long-pause][hidden] { display: none; }

.dispo-week { display: inline-block; padding: .2rem .45rem; background: #d8f1dd; color: #114820; font-size: .75em; }
.dispo-table { min-width: 42rem; }
.dispo-day th { background: #e5eae5; }
.minijob-table { min-width: 62rem; font-variant-numeric: tabular-nums; }
.minijob-table td { white-space: nowrap; }
