:root {
  --navy: #14233f;
  --blue: #2056d6;
  --blue-dark: #173f9f;
  --blue-soft: #eaf0ff;
  --ink: #172033;
  --muted: #6d778a;
  --line: #dde3ed;
  --surface: #ffffff;
  --panel: var(--surface);
  --border: var(--line);
  --accent: var(--blue);
  --canvas: #f4f6fa;
  --green: #13855d;
  --green-soft: #e4f7ef;
  --red: #c43745;
  --red-soft: #ffeaec;
  --orange: #ce6c20;
  --orange-soft: #fff0e2;
  --violet: #7454c9;
  --shadow: 0 18px 48px rgba(26, 40, 72, .09);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--canvas);
  font-synthesis: none;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: var(--canvas); }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }

.topbar {
  min-height: 76px; padding: 0 30px; display: flex; align-items: center; gap: 34px;
  background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 20;
}
.brand { display: inline-flex; align-items: center; gap: 11px; min-width: 205px; }
.brand-mark {
  width: 39px; height: 39px; border-radius: 11px; display: grid; place-items: center;
  color: #fff; background: linear-gradient(145deg, #2968ef, #1746b8); font-weight: 900; font-style: italic;
  box-shadow: 0 8px 20px rgba(32, 86, 214, .24);
}
.brand strong { display: block; color: var(--navy); font-size: 18px; line-height: 1; }
.brand small { display: block; color: var(--muted); font-size: 11px; margin-top: 5px; letter-spacing: .04em; }
.brand-large .brand-mark { width: 48px; height: 48px; border-radius: 14px; font-size: 22px; }
.brand-large strong { font-size: 22px; }
.brand-large small { font-size: 12px; }
.nav { display: flex; align-self: stretch; align-items: center; gap: 8px; flex: 1; }
.nav a { height: 100%; display: grid; place-items: center; padding: 0 13px; color: #596477; font-size: 14px; font-weight: 650; border-bottom: 3px solid transparent; }
.nav a:hover, .nav a.active { color: var(--blue); border-color: var(--blue); }
.nav a.disabled { opacity: .42; cursor: default; border-color: transparent; }
.account { display: flex; align-items: center; gap: 14px; }
.account span { text-align: right; }
.account strong, .account small { display: block; }
.account strong { font-size: 13px; }.account small { color: var(--muted); font-size: 11px; margin-top: 3px; text-transform: capitalize; }
.icon-button { width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); background: #fff; font-size: 18px; }
.icon-button:hover { color: var(--blue); border-color: #aebfe9; }

.page-shell { max-width: 1460px; margin: 0 auto; padding: 36px 34px 70px; }
.page-heading { margin-bottom: 27px; }
.page-heading h1 { margin: 4px 0 7px; font-size: clamp(28px, 3vw, 42px); letter-spacing: -.04em; color: var(--navy); }
.page-heading > p:last-child, .heading-row > div > p:last-child { color: var(--muted); margin: 0; }
.heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.eyebrow { color: var(--blue); font-size: 11px; font-weight: 800; letter-spacing: .14em; margin: 0 0 9px; }
.muted { color: var(--muted); }

.alert { border-radius: 12px; padding: 13px 16px; margin: 0 0 18px; border: 1px solid transparent; font-size: 14px; }
.alert-success { color: #0b6a49; background: var(--green-soft); border-color: #bce8d6; }
.alert-error { color: #9d2633; background: var(--red-soft); border-color: #ffc5cb; }
.alert-info { color: #244caa; background: var(--blue-soft); border-color: #cad7fa; }

.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 18px; }
.metric-card { min-height: 105px; padding: 20px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; display: flex; align-items: center; gap: 14px; box-shadow: 0 6px 20px rgba(26,40,72,.04); }
.metric-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 13px; font-size: 21px; font-weight: 800; flex: 0 0 auto; }
.metric-icon.blue, .service-icon.blue { background: var(--blue-soft); color: var(--blue); }
.metric-icon.green, .service-icon.green { background: var(--green-soft); color: var(--green); }
.metric-icon.orange, .service-icon.orange { background: var(--orange-soft); color: var(--orange); }
.metric-icon.violet { background: #f0ebff; color: var(--violet); }
.calendar-symbol { width: 21px; height: 21px; display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.metric-card strong, .metric-card small { display: block; }.metric-card strong { font-size: 19px; color: var(--navy); }.metric-card small { color: var(--muted); margin-top: 4px; font-size: 12px; }
.metric-card a, .metric-card .soon { margin-left: auto; font-size: 12px; font-weight: 700; color: var(--blue); }.metric-card .soon { color: #9aa2b1; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(310px, .75fr); gap: 18px; }
.google-grid { grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); }
.split-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(310px, .7fr); gap: 18px; align-items: start; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 24px; box-shadow: 0 7px 24px rgba(26,40,72,.045); }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.panel-heading h2 { margin: 0; color: var(--navy); font-size: 19px; letter-spacing: -.02em; }.panel-heading p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.badge { background: var(--blue-soft); color: var(--blue); border-radius: 99px; padding: 6px 10px; font-size: 11px; font-weight: 750; }

.empty-state { min-height: 330px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 25px; border: 1px dashed #cad2e1; border-radius: 14px; background: #fafbfe; }
.empty-state > span { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 17px; color: var(--blue); background: var(--blue-soft); font-size: 24px; font-weight: 800; margin-bottom: 15px; }
.empty-state h3 { margin: 0 0 7px; color: var(--navy); }.empty-state p { color: var(--muted); margin: 0 0 18px; max-width: 430px; line-height: 1.55; }.empty-state.left { align-items: flex-start; text-align: left; min-height: 245px; }
.module-list { padding-bottom: 14px; }
.module { display: flex; align-items: center; gap: 13px; padding: 14px 0; border-top: 1px solid #edf0f5; }
.module > span { width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; color: #8791a4; background: #edf0f5; font-size: 12px; font-weight: 800; }
.module strong, .module small { display: block; }.module strong { color: var(--navy); font-size: 13px; }.module small { color: var(--muted); font-size: 11px; margin-top: 4px; }
.module.done > span { color: var(--green); background: var(--green-soft); }.module.current > span { color: var(--blue); background: var(--blue-soft); }

.button { min-height: 43px; padding: 0 17px; border-radius: 11px; border: 1px solid transparent; display: inline-flex; align-items: center; justify-content: center; font-weight: 750; font-size: 13px; transition: .15s ease; }
.button-primary { background: var(--blue); color: #fff; box-shadow: 0 8px 20px rgba(32,86,214,.19); }.button-primary:hover { background: var(--blue-dark); transform: translateY(-1px); }
.button-secondary { color: var(--blue); background: #fff; border-color: #b9c9ef; }.button-secondary:hover { background: var(--blue-soft); }
.button-danger { color: var(--red); background: #fff; border-color: #efbec4; }.button-danger:hover { background: var(--red-soft); }
.button-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.text-button { border: 0; background: transparent; color: var(--blue); font-size: 12px; font-weight: 750; padding: 8px; }

.status-pill { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; border-radius: 99px; padding: 7px 11px; font-size: 11px; font-weight: 750; }
.status-pill i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.status-good { background: var(--green-soft); color: var(--green); }.status-off { background: #eff1f5; color: #70798a; }

.table-wrap { overflow-x: auto; margin: 0 -5px; }
table { width: 100%; border-collapse: collapse; min-width: 720px; }
th { padding: 10px 12px; color: var(--muted); font-size: 10px; text-align: left; text-transform: uppercase; letter-spacing: .08em; border-bottom: 1px solid var(--line); }
td { padding: 15px 12px; border-bottom: 1px solid #edf0f5; font-size: 12px; vertical-align: middle; }
td strong, td small { display: block; } td strong { color: var(--navy); font-size: 13px; } td small { color: var(--muted); margin-top: 4px; }
.muted-row { opacity: .58; }
.role-badge { display: inline-block; padding: 5px 8px; border-radius: 7px; font-weight: 700; text-transform: capitalize; background: #edf0f5; color: #576174; }
.role-admin { background: #f0ebff; color: var(--violet); }.role-technician { background: var(--blue-soft); color: var(--blue); }.role-backoffice { background: var(--green-soft); color: var(--green); }.role-kiosk { background: var(--orange-soft); color: var(--orange); }

.stack-form { display: grid; gap: 15px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.span-2 { grid-column: span 2; }
label { display: grid; gap: 7px; font-size: 12px; font-weight: 700; color: #404a5d; }
label small { color: var(--muted); font-weight: 500; }
input, select { width: 100%; min-height: 45px; padding: 0 13px; color: var(--ink); background: #fff; border: 1px solid #cfd6e2; border-radius: 10px; outline: none; }
input:focus, select:focus { border-color: #7597eb; box-shadow: 0 0 0 3px rgba(32,86,214,.11); }
.form-divider { position: relative; display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; margin: 5px 0; }
.form-divider:after { content: ""; height: 1px; background: var(--line); flex: 1; }
.compact-panel { padding: 24px; }

.google-g { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; font-size: 20px; font-weight: 900; color: var(--blue); background: var(--blue-soft); }
.connection-card { display: flex; gap: 14px; align-items: center; border: 1px solid var(--line); background: #fafbfe; border-radius: 14px; padding: 17px; }
.avatar { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--blue); font-weight: 800; }
.connection-card strong, .connection-card small { display: block; }.connection-card strong { color: var(--navy); }.connection-card small { color: var(--muted); font-size: 11px; margin-top: 5px; }
.service-list > div { display: flex; align-items: center; gap: 13px; padding: 13px 0; border-top: 1px solid #edf0f5; }
.service-icon { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; font-size: 13px; font-weight: 800; }
.service-list p { margin: 0; }.service-list strong, .service-list small { display: block; }.service-list strong { color: var(--navy); font-size: 13px; }.service-list small { color: var(--muted); font-size: 11px; margin-top: 4px; }
.tested-at { color: var(--muted); font-size: 11px; margin: 16px 0 0; }

.auth-body { background: linear-gradient(120deg, #10203c 0, #142a51 49%, #f4f6fa 49.1%, #f4f6fa 100%); }
.login-shell, .setup-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(360px, 1fr) minmax(420px, 1fr); align-items: center; max-width: 1260px; margin: 0 auto; padding: 60px; gap: 9vw; }
.login-copy, .setup-intro { color: #fff; }
.login-copy .brand strong, .setup-intro .brand strong { color: #fff; }.login-copy .brand small, .setup-intro .brand small { color: #aab9d3; }
.login-copy .eyebrow, .setup-intro .eyebrow { margin-top: 58px; color: #85aafa; }
.login-copy h1, .setup-intro h1 { margin: 0 0 20px; font-size: clamp(38px, 5vw, 66px); line-height: .99; letter-spacing: -.055em; max-width: 640px; }
.setup-intro h1 { font-size: clamp(34px, 4vw, 55px); }
.login-copy > p:last-of-type, .setup-intro > p:last-of-type { color: #b7c3d8; font-size: 16px; line-height: 1.65; max-width: 540px; }
.login-status { display: inline-flex; align-items: center; gap: 9px; margin-top: 50px; color: #b7c3d8; font-size: 12px; }.login-status span { width: 8px; height: 8px; border-radius: 50%; background: #3ed49a; box-shadow: 0 0 0 5px rgba(62,212,154,.12); }
.auth-card { width: 100%; max-width: 475px; justify-self: center; background: #fff; border: 1px solid var(--line); border-radius: 22px; padding: 38px; box-shadow: var(--shadow); }
.auth-card h2 { margin: 0 0 7px; color: var(--navy); font-size: 26px; letter-spacing: -.03em; }.auth-card > .muted { margin: 0 0 25px; font-size: 13px; }
.auth-footnote { text-align: center; color: var(--muted); font-size: 11px; margin: 22px 0 0; }
.setup-shell { max-width: 1420px; gap: 7vw; padding-block: 35px; }.setup-card { max-width: 590px; padding: 30px; }
.requirements { margin-top: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; max-width: 600px; }
.requirement { display: flex; align-items: center; gap: 8px; font-size: 11px; color: #c0cbe0; }.requirement span { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; font-weight: 900; }.requirement.ok span { background: rgba(62,212,154,.16); color: #53e0aa; }.requirement.bad span { background: rgba(255,117,127,.16); color: #ff8b94; }
code { background: #eef1f6; border-radius: 5px; padding: 2px 5px; font-size: .92em; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.full-width { width: 100%; }

.theme-button { flex: 0 0 auto; }
.auth-card { position: relative; }
.auth-theme-button { position: absolute; right: 20px; top: 20px; }

.quick-actions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: -2px 0 18px; }
.quick-action { display: flex; align-items: center; gap: 12px; min-height: 70px; padding: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; }
.quick-action:hover { border-color: #aebfe9; box-shadow: 0 8px 24px rgba(32,86,214,.08); transform: translateY(-1px); }
.quick-action > span { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; color: var(--blue); background: var(--blue-soft); font-weight: 850; }
.quick-action strong, .quick-action small { display: block; }.quick-action strong { color: var(--navy); font-size: 13px; }.quick-action small { color: var(--muted); font-size: 10px; margin-top: 3px; }
.dashboard-calendar-shell { display: grid; grid-template-columns: minmax(0, 1fr) 225px; gap: 12px; align-items: stretch; }
.dashboard-mini-week { display: grid; grid-template-columns: repeat(7, minmax(86px, 1fr)); gap: 6px; min-width: 0; overflow-x: auto; padding-bottom: 3px; }
.dashboard-mini-day { min-width: 86px; min-height: 255px; padding: 10px 8px; border: 1px solid var(--line); border-radius: 12px; background: #fafbfe; }
.dashboard-mini-day.today { border-color: #91aceb; background: var(--blue-soft); box-shadow: inset 0 0 0 1px rgba(32,86,214,.18); }
.dashboard-mini-day > header { display: flex; align-items: center; justify-content: space-between; gap: 5px; }.dashboard-mini-day > header span { display: flex; align-items: baseline; gap: 5px; }.dashboard-mini-day > header small { color: var(--muted); font-size:11px; font-weight: 850; }.dashboard-mini-day > header strong { color: var(--navy); font-size: 18px; }.dashboard-mini-day > header b { color: var(--blue); font-size:11px; white-space: nowrap; }
.dashboard-mini-day .utilization-track { margin: 7px 0 9px; }
.dashboard-mini-events { display: grid; gap: 6px; }.dashboard-mini-event { display: block; min-height: 58px; padding: 7px; border-left: 3px solid var(--blue); border-radius: 7px; background: var(--surface); overflow: hidden; }.dashboard-mini-event small, .dashboard-mini-event strong { display: block; overflow: hidden; text-overflow: ellipsis; }.dashboard-mini-event small { color: var(--muted); font-size:10px; white-space: nowrap; }.dashboard-mini-event strong { color: var(--navy); margin-top: 4px; font-size:12px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }.dashboard-mini-events em { color: var(--muted); font-size:11px; font-style: normal; text-align: center; }.dashboard-mini-free { display: grid; place-items: center; min-height: 75px; color: #a1a9b6; font-size:12px; }
.dashboard-next { min-height: 255px; padding: 16px; display: flex; flex-direction: column; border-radius: 13px; color: #fff; background: linear-gradient(145deg, #173f9f, #122c68); }.dashboard-next .eyebrow { color: #9ab9ff; }.dashboard-next-date { width: 49px; height: 49px; display: grid; place-items: center; align-content: center; border-radius: 12px; color: #fff; background: rgba(255,255,255,.12); }.dashboard-next-date strong, .dashboard-next-date small { display: block; }.dashboard-next-date strong { font-size: 19px; line-height: 1; }.dashboard-next-date small { margin-top: 3px; font-size:11px; }.dashboard-next h3 { margin: 14px 0 7px; font-size: 18px; line-height: 1.15; letter-spacing: -.02em; }.dashboard-next > p:not(.eyebrow) { margin: 0; color: #c4d2f2; font-size: 10px; line-height: 1.5; }.dashboard-next > p strong { color: #fff; }.dashboard-next-location { margin-top: 10px; color: #c4d2f2; font-size:12px; line-height: 1.35; }.dashboard-next > a { margin-top: auto; padding-top: 12px; color: #fff; font-size: 10px; font-weight: 800; }.dashboard-next-empty { min-height: 170px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }.dashboard-next-empty > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: rgba(255,255,255,.12); font-size: 18px; }.dashboard-next-empty strong { margin-top: 12px; }.dashboard-next-empty small { margin-top: 6px; color: #c4d2f2; line-height: 1.4; }
.dashboard-events { display: grid; gap: 9px; margin-bottom: 15px; }
.dashboard-event { display: flex; align-items: center; gap: 13px; min-height: 68px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 12px; background: #fafbfe; }
.dashboard-event:hover { border-color: #aebfe9; transform: translateY(-1px); box-shadow: 0 8px 20px rgba(26,40,72,.07); }
.dashboard-event-date { width: 45px; height: 45px; flex: 0 0 auto; display: grid; place-items: center; align-content: center; border-radius: 11px; color: var(--blue); background: var(--blue-soft); }.dashboard-event-date strong, .dashboard-event-date small { display: block; }.dashboard-event-date strong { font-size: 18px; line-height: 1; }.dashboard-event-date small { margin-top: 3px; font-size:10px; font-weight: 850; }
.dashboard-event > div { min-width: 0; flex: 1; }.dashboard-event > div > small, .dashboard-event > div > strong, .dashboard-event > div > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.dashboard-event > div > small { color: var(--muted); font-size:12px; }.dashboard-event > div > strong { color: var(--navy); margin-top: 4px; font-size: 13px; }.dashboard-event > div > span { color: var(--muted); margin-top: 4px; font-size:12px; }.dashboard-event > b { color: var(--blue); font-size: 20px; }
.field-service-timeline { margin: -4px 0 13px; padding: 8px 10px 9px; border: 1px solid color-mix(in srgb, var(--line) 75%, transparent); border-radius: 10px; background: color-mix(in srgb, var(--blue-soft) 28%, var(--surface)); }
.field-service-timeline > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 21px; }
.field-service-timeline > header span { display: flex; align-items: center; gap: 7px; min-width: 0; }.field-service-timeline > header i { width: 6px; height: 6px; flex: 0 0 auto; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 13%, transparent); }.field-service-timeline > header strong { color: var(--navy); font-size:12px; }.field-service-timeline > header small { color: var(--muted); font-size:10px; font-weight: 800; white-space: nowrap; }
.field-service-timeline-scroll { max-height: 145px; margin-top: 5px; overflow: auto; scrollbar-width: thin; }.field-service-timeline-board { min-width: 660px; }
.field-service-timeline-axis, .field-service-timeline-row { display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 9px; }.field-service-timeline-axis { height: 11px; }.field-service-timeline-axis > div { position: relative; border-top: 1px solid color-mix(in srgb, var(--line) 72%, transparent); }.field-service-timeline-axis i { position: absolute; top: -3px; bottom: 0; width: 1px; background: color-mix(in srgb, var(--line) 82%, transparent); }.field-service-timeline-axis i:last-child { transform: translateX(-1px); }.field-service-timeline-axis b { position: absolute; top: -8px; left: 50%; padding: 0 3px; color: var(--muted); background: color-mix(in srgb, var(--blue-soft) 28%, var(--surface)); font-size:10px; font-style: normal; font-weight: 750; transform: translateX(-50%); }
.field-service-timeline-row { align-items: center; min-height: 31px; }.field-service-person { min-width: 0; display: flex; align-items: center; gap: 7px; }.field-service-person b { width: 22px; height: 22px; flex: 0 0 auto; display: grid; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 7px; font-size:10px; }.field-service-person strong { min-width: 0; overflow: hidden; color: var(--navy); font-size:11px; text-overflow: ellipsis; white-space: nowrap; }
.field-service-rail { position: relative; height: 24px; overflow: hidden; border-radius: 7px; background: repeating-linear-gradient(90deg, transparent 0, transparent calc(25% - 1px), color-mix(in srgb, var(--line) 58%, transparent) calc(25% - 1px), color-mix(in srgb, var(--line) 58%, transparent) 25%); }.field-service-now { position: absolute; z-index: 3; top: 0; bottom: 0; width: 1px; background: var(--red); pointer-events: none; }.field-service-segment { position: absolute; z-index: 2; top: 2px; bottom: 2px; min-width: 14px; display: flex; align-items: center; gap: 6px; overflow: hidden; padding: 0 7px; color: #fff; background: color-mix(in srgb, var(--blue) 88%, #173565); border-radius: 6px; box-shadow: 0 2px 7px rgba(20, 57, 139, .16); white-space: nowrap; }.field-service-segment:hover { color: #fff; filter: brightness(1.07); }.field-service-segment.is-now { background: var(--green); }.field-service-segment span { flex: 0 0 auto; font-size:10px; font-weight: 850; }.field-service-segment strong { min-width: 0; overflow: hidden; font-size:10px; text-overflow: ellipsis; }.field-service-timeline-empty { min-height: 31px; display: flex; align-items: center; gap: 8px; margin: 3px 0 -2px; color: var(--muted); font-size:11px; }.field-service-timeline-empty span { width: 22px; height: 22px; display: grid; place-items: center; color: var(--muted); background: color-mix(in srgb, var(--line) 42%, transparent); border-radius: 7px; }

.calendar-heading { align-items: center; }
.calendar-actions { display: flex; align-items: center; gap: 8px; }
.segmented { display: inline-flex; padding: 4px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.segmented a { padding: 8px 13px; border-radius: 8px; color: var(--muted); font-size: 12px; font-weight: 750; }
.segmented a.active { color: #fff; background: var(--blue); }
.calendar-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; align-items: start; gap: 18px; }
.calendar-main { min-width: 0; }
.day-strip { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; margin-bottom: 10px; }
.day-strip a { display: flex; align-items: center; gap: 9px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.day-strip a small, .day-strip a strong, .day-strip a span { display: block; }.day-strip a small { color: var(--muted); font-size: 10px; font-weight: 800; }.day-strip a strong { color: var(--navy); font-size: 17px; }.day-strip a span { margin-left: auto; color: var(--muted); font-size: 10px; }
.day-strip a.today { border-color: #9eb7f1; background: var(--blue-soft); }.day-strip a.selected { box-shadow: inset 0 0 0 2px var(--blue); }
.calendar-board { display: grid; grid-template-columns: repeat(7, minmax(125px, 1fr)); gap: 8px; overflow-x: auto; padding-bottom: 8px; }
.calendar-board.day-mode { grid-template-columns: minmax(0, 1fr); }
.calendar-day { min-height: 530px; min-width: 125px; padding: 13px 10px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.calendar-board.day-mode .calendar-day { min-width: 0; min-height: 420px; }
.calendar-day.today { border-color: #a8bdf0; }
.calendar-day > header { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.calendar-day > header strong, .calendar-day > header small { display: block; }.calendar-day > header strong { color: var(--navy); font-size: 12px; }.calendar-day > header small { color: var(--muted); font-size:12px; margin-top: 3px; }.calendar-day > header > span { color: var(--blue); font-size: 10px; font-weight: 800; }
.utilization-track { height: 5px; margin: 10px 0 12px; border-radius: 99px; background: #e8ecf3; overflow: hidden; }
.utilization-track i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, #2e67e8, #35bba1); }
.utilization-track .util-1 { width: 10%; }.utilization-track .util-2 { width: 20%; }.utilization-track .util-3 { width: 30%; }.utilization-track .util-4 { width: 40%; }.utilization-track .util-5 { width: 50%; }.utilization-track .util-6 { width: 60%; }.utilization-track .util-7 { width: 70%; }.utilization-track .util-8 { width: 80%; }.utilization-track .util-9 { width: 90%; }.utilization-track .util-10 { width: 100%; }
.day-events { display: grid; gap: 8px; }
.day-empty { margin: 18px 0; color: #a1a8b6; font-size: 10px; text-align: center; }
.event-card { display: block; min-height: 73px; padding: 10px; border: 1px solid var(--line); border-left-width: 4px; border-radius: 10px; background: #fafbfe; }
.event-card:hover, .event-card.selected { box-shadow: 0 8px 20px rgba(26,40,72,.09); transform: translateY(-1px); }.event-card.selected { outline: 2px solid rgba(32,86,214,.2); }
.event-card span, .event-card strong, .event-card small { display: block; }.event-card span { color: var(--muted); font-size:12px; font-weight: 750; }.event-card strong { color: var(--navy); font-size: 11px; line-height: 1.3; margin-top: 5px; }.event-card small { color: var(--muted); font-size:12px; margin-top: 6px; }
.event-tone-1 { border-left-color: #2864df !important; }.event-tone-2 { border-left-color: #13855d !important; }.event-tone-3 { border-left-color: #ce6c20 !important; }.event-tone-4 { border-left-color: #7454c9 !important; }.event-tone-5 { border-left-color: #d34272 !important; }.event-tone-6 { border-left-color: #218ca6 !important; }
.event-detail { position: sticky; top: 94px; min-height: 470px; }
.event-date-icon { width: 66px; height: 66px; display: grid; place-items: center; align-content: center; border-radius: 18px; color: var(--blue); background: var(--blue-soft); }.event-date-icon strong, .event-date-icon small { display: block; }.event-date-icon strong { font-size: 25px; line-height: 1; }.event-date-icon small { font-size:12px; margin-top: 5px; font-weight: 850; }
.event-detail h2 { margin: 18px 0 9px; color: var(--navy); font-size: 25px; letter-spacing: -.03em; }.detail-time { color: var(--muted); line-height: 1.55; font-size: 13px; }.detail-time strong { color: var(--ink); }
.detail-row { display: flex; gap: 12px; align-items: center; padding: 13px 0; border-top: 1px solid #edf0f5; }.detail-row > span { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; color: var(--blue); background: var(--blue-soft); }.detail-row small, .detail-row strong { display: block; }.detail-row small { color: var(--muted); font-size:12px; }.detail-row strong { color: var(--navy); font-size: 12px; margin-top: 3px; }
.event-description { border-top: 1px solid #edf0f5; padding: 13px 0; }.event-description small { color: var(--muted); font-size:12px; font-weight: 750; }.event-description p { color: var(--ink); font-size: 12px; line-height: 1.5; margin: 6px 0 0; max-height: 140px; overflow: auto; }
.empty-detail { min-height: 300px; display: flex; align-items: center; justify-content: center; flex-direction: column; text-align: center; color: var(--muted); }.empty-detail > span { width: 58px; height: 58px; border-radius: 16px; display: grid; place-items: center; color: var(--blue); background: var(--blue-soft); font-weight: 850; font-size: 20px; }.empty-detail h2 { color: var(--navy); margin: 16px 0 5px; }.empty-detail p { margin: 0; max-width: 310px; line-height: 1.5; }

.contact-toolbar { margin-bottom: 16px; padding: 16px 18px; }
.contact-search { display: grid; grid-template-columns: minmax(250px, 1fr) auto; gap: 9px; }.contact-search label { display: block; }.contact-search input { margin: 0; }
.label-filters { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }.label-filters a { display: inline-flex; gap: 7px; align-items: center; padding: 7px 10px; border-radius: 99px; color: var(--muted); background: #eef1f6; font-size: 10px; font-weight: 750; }.label-filters a span { color: var(--blue); }.label-filters a.active { color: #fff; background: var(--blue); }.label-filters a.active span { color: #fff; }
.sync-note { color: var(--muted); font-size: 10px; margin: 12px 0 0; }
.contacts-layout { display: grid; grid-template-columns: minmax(340px, .78fr) minmax(460px, 1.22fr); gap: 16px; align-items: start; }
.contact-list { padding: 0; max-height: 720px; overflow: auto; }.contact-list-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; padding: 15px 17px; background: var(--surface); border-bottom: 1px solid var(--line); }.contact-list-head strong { color: var(--navy); font-size: 12px; }.contact-list-head span { color: var(--muted); font-size: 10px; }
.contact-row { display: flex; align-items: center; gap: 12px; padding: 13px 16px; border-bottom: 1px solid #edf0f5; border-left: 4px solid transparent; }.contact-row:hover, .contact-row.selected { background: #f7f9fd; border-left-color: var(--blue); }.contact-row.blacklisted { background: var(--red-soft); border-left-color: var(--red); }.contact-row > div { min-width: 0; flex: 1; }.contact-row strong, .contact-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.contact-row strong { color: var(--navy); font-size: 12px; }.contact-row small { color: var(--muted); font-size: 10px; margin-top: 4px; }.contact-row > b { color: #fff; background: var(--red); border-radius: 7px; padding: 5px 7px; font-size:11px; letter-spacing: .08em; }
.contact-avatar { width: 39px; height: 39px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #356cea, #173f9f); font-size: 13px; font-weight: 850; }.contact-avatar.large { width: 72px; height: 72px; font-size: 25px; }
.mini-labels { display: flex; gap: 4px; margin-top: 7px; overflow: hidden; }.mini-labels i { padding: 3px 5px; border-radius: 4px; color: #606a7c; background: #edf0f5; font-size:11px; font-style: normal; white-space: nowrap; }
.contact-detail { min-height: 560px; position: sticky; top: 94px; }.blacklist-banner { display: grid; gap: 5px; margin: -24px -24px 22px; padding: 18px 23px; color: #fff; background: linear-gradient(120deg, #b7192a, #df3e4c); border-radius: 18px 18px 0 0; }.blacklist-banner strong { font-size: 16px; letter-spacing: .08em; }.blacklist-banner span { font-size: 11px; line-height: 1.45; opacity: .92; }
.contact-identity { display: flex; gap: 17px; align-items: center; }.contact-identity h2 { color: var(--navy); margin: 0; font-size: 27px; letter-spacing: -.03em; }.contact-identity p:last-child { color: var(--muted); margin: 6px 0 0; font-size: 12px; }
.contact-labels { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0; }.contact-labels span { padding: 6px 9px; border-radius: 7px; color: #586275; background: #edf0f5; font-size:12px; font-weight: 750; }.contact-labels span.danger { color: #fff; background: var(--red); }
.contact-data { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }.contact-data a { display: flex; gap: 11px; align-items: center; min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fafbfe; }.contact-data a:hover { border-color: #aebfe9; }.contact-data a > span { color: var(--blue); }.contact-data a div { min-width: 0; }.contact-data small, .contact-data strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.contact-data small { color: var(--muted); font-size:12px; }.contact-data strong { color: var(--navy); font-size: 11px; margin-top: 4px; }
.future-actions { display: flex; gap: 12px; align-items: center; border-top: 1px solid var(--line); margin-top: 20px; padding-top: 18px; }.future-actions small { color: var(--muted); line-height: 1.45; }

.tablet-body { overflow-x: hidden; }
.tablet-topbar { min-height: 80px; padding: 10px 22px; display: grid; grid-template-columns: minmax(175px, .7fr) auto minmax(0, 1.3fr); align-items: center; gap: 14px; border-bottom: 1px solid var(--line); background: var(--surface); }
.tablet-clock { text-align: center; }.tablet-clock strong { display: block; color: var(--navy); font-size: 28px; line-height: 1; }.tablet-clock span { display: block; color: var(--muted); font-size: 10px; margin-top: 5px; text-transform: capitalize; }
.tablet-tools { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }.tablet-tools form { display: flex; }.tablet-view-switch { display: inline-flex; flex: 0 0 auto; padding: 4px; border: 1px solid var(--line); border-radius: 10px; background: var(--canvas); }.tablet-view-switch a { padding: 7px 10px; color: var(--muted); border-radius: 7px; font-size:12px; font-weight: 850; }.tablet-view-switch a.active { color: #fff; background: var(--blue); }
.tablet-tools [hidden] { display: none !important; }
.tablet-body.is-fullscreen .tablet-topbar { min-height: 70px; }
.tablet-shell { max-width: 1600px; margin: 0 auto; padding: 20px 24px 28px; }.tablet-intro { display: flex; align-items: end; justify-content: space-between; margin-bottom: 15px; }.tablet-intro h1 { color: var(--navy); font-size: 30px; letter-spacing: -.04em; margin: 0; }.tablet-intro > p { color: var(--muted); font-size: 10px; }
.tablet-grid { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(280px, .65fr); gap: 15px; }.tablet-week { display: grid; grid-template-rows: repeat(7, minmax(66px, 1fr)); gap: 7px; padding: 12px; min-height: 570px; }
.tablet-day { min-width: 0; padding: 8px 10px; display: grid; grid-template-columns: 62px minmax(0, 1fr); grid-template-rows: auto 5px; column-gap: 10px; align-items: center; border-radius: 12px; background: #f8f9fc; border: 1px solid transparent; }.tablet-day.today { background: var(--blue-soft); border-color: #91aceb; }.tablet-day > header { grid-column: 1; grid-row: 1; display: flex; align-items: center; gap: 7px; }.tablet-day > header small, .tablet-day > header strong { display: block; }.tablet-day > header small { color: var(--muted); font-size: 10px; font-weight: 800; }.tablet-day > header strong { color: var(--navy); font-size: 23px; }.tablet-day > header > span { margin-left: auto; color: var(--blue); font-size:12px; font-weight: 800; }.tablet-day > .utilization-track { grid-column: 1; grid-row: 2; width: 100%; margin: 0; }
.tablet-events { grid-column: 2; grid-row: 1 / span 2; display: flex; align-items: stretch; gap: 7px; min-width: 0; overflow: hidden; }.tablet-event { min-width: 125px; flex: 1 1 150px; padding: 8px; border-left: 4px solid var(--blue); border-radius: 8px; background: var(--surface); overflow: hidden; }.tablet-event span, .tablet-event strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.tablet-event span { color: var(--muted); font-size:12px; }.tablet-event strong { color: var(--navy); font-size: 10px; line-height: 1.3; margin-top: 5px; }.tablet-events > small { align-self: center; color: var(--muted); font-size:12px; white-space: nowrap; }.tablet-free { display: grid; place-items: center; min-height: 48px; width: 100%; color: #a1a9b6; font-size: 10px; }
.tablet-focus { min-height: 570px; display: flex; flex-direction: column; }.tablet-focus-time { color: var(--blue); font-size: 25px; font-weight: 850; }.tablet-focus h2 { color: var(--navy); font-size: clamp(24px, 3vw, 38px); line-height: 1.08; letter-spacing: -.04em; margin: 14px 0 10px; }.tablet-focus > p:not(.eyebrow) { color: var(--muted); font-size: 13px; }.tablet-location { display: flex; gap: 11px; align-items: center; margin-top: 18px; padding: 14px; border-radius: 12px; color: var(--navy); background: var(--blue-soft); }.tablet-location span { color: var(--blue); }.tablet-calendar-name { display: flex; gap: 8px; margin-top: 13px; color: var(--muted); font-size: 11px; }.tablet-calendar-name span { color: var(--blue); }.tablet-util-summary { margin-top: auto; display: grid; gap: 5px; padding: 17px; border-radius: 13px; background: var(--navy); color: #fff; }.tablet-util-summary small { color: #a9b9d3; }.tablet-util-summary strong { font-size: 24px; }.tablet-util-summary span { color: #c4cee0; font-size: 11px; }.tablet-error { display: grid; place-items: center; min-height: 65vh; text-align: center; color: var(--red); }
.tablet-ticket-shell { max-width: 1800px; }.tablet-ticket-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 15px; }.tablet-ticket-heading h1 { margin: 0; color: var(--navy); font-size: 30px; letter-spacing: -.04em; }.tablet-ticket-heading > div:first-child > p:last-child { margin: 6px 0 0; color: var(--muted); font-size: 10px; }.tablet-ticket-stats { display: grid; grid-template-columns: repeat(4, minmax(95px, 1fr)); gap: 8px; }.tablet-ticket-stats > span { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 105px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); }.tablet-ticket-stats small { color: var(--muted); font-size:11px; }.tablet-ticket-stats strong { color: var(--navy); font-size: 19px; }.tablet-ticket-stats .stat-unassigned strong { color: var(--orange); }.tablet-ticket-stats .stat-danger { border-color: #e99ba4; background: var(--red-soft); }.tablet-ticket-stats .stat-danger strong { color: var(--red); }.tablet-ticket-stats .stat-done strong { color: var(--green); }
.tablet-ticket-board { display: grid; grid-template-columns: repeat(3, minmax(280px, 1fr)); gap: 14px; height: calc(100vh - 205px); min-height: 510px; }.tablet-ticket-lane { min-width: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: #eef2f8; }.tablet-ticket-lane > header { display: flex; align-items: center; gap: 9px; min-height: 54px; padding: 12px 15px; background: var(--surface); border-bottom: 1px solid var(--line); }.tablet-ticket-lane > header h2 { margin: 0; color: var(--navy); font-size: 14px; }.tablet-ticket-lane > header strong { margin-left: auto; min-width: 28px; padding: 5px 7px; color: var(--blue); background: var(--blue-soft); border-radius: 7px; text-align: center; font-size: 10px; }.tablet-ticket-list { flex: 1; min-height: 0; display: grid; align-content: start; gap: 9px; padding: 10px; overflow: auto; scrollbar-width: thin; }.tablet-ticket-card { overflow: hidden; border: 1px solid var(--line); border-left: 5px solid #aab4c4; border-radius: 12px; background: var(--surface); box-shadow: 0 4px 12px rgba(30,45,75,.05); }.tablet-ticket-card.priority-high { border-left-color: var(--orange); }.tablet-ticket-card.priority-urgent { border-left-color: var(--red); }.tablet-ticket-card.home-priority { border-color: #7ca3ff; border-left-color: var(--blue); }.tablet-ticket-card.blacklisted { border-color: #e2727e; border-left-color: var(--red); }.tablet-ticket-card > a, .tablet-ticket-card > div:last-child { display: block; padding: 12px 13px; }.tablet-ticket-card > a:hover { background: var(--blue-soft); }.tablet-ticket-stop, .tablet-ticket-home { padding: 6px 12px; color: #fff; background: var(--red); font-size:10px; font-weight: 900; letter-spacing: .1em; }.tablet-ticket-home { background: var(--blue); }.tablet-ticket-card-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }.tablet-ticket-due { color: var(--muted); font-size:11px; font-weight: 750; white-space: nowrap; }.tablet-ticket-due.overdue { color: var(--red); }.tablet-ticket-customer { display: block; margin-top: 10px; color: var(--blue); font-size:12px; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.tablet-ticket-card h3 { margin: 6px 0 12px; color: var(--navy); font-size: 14px; line-height: 1.25; }.tablet-ticket-card footer { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--muted); font-size:11px; }.tablet-ticket-card footer span:first-child { color: var(--green); font-weight: 800; }.tablet-ticket-card footer span.unassigned { color: var(--orange); }.tablet-ticket-empty { min-height: 150px; display: grid; place-items: center; align-content: center; gap: 10px; color: var(--muted); }.tablet-ticket-empty span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--green); background: var(--green-soft); border-radius: 12px; }.tablet-ticket-empty strong { font-size: 10px; }

html[data-theme="dark"] { --navy: #edf3ff; --ink: #e9edf6; --muted: #a6afbf; --line: #344155; --surface: #1c2636; --canvas: #111927; --blue-soft: #22365f; --green-soft: #163d34; --red-soft: #4b222a; --orange-soft: #4b3322; --shadow: 0 18px 48px rgba(0,0,0,.32); color-scheme: dark; }
html[data-theme="dark"] .topbar, html[data-theme="dark"] .icon-button, html[data-theme="dark"] .button-secondary, html[data-theme="dark"] input, html[data-theme="dark"] select, html[data-theme="dark"] .auth-card, html[data-theme="dark"] .tablet-topbar { background: var(--surface); color: var(--ink); }
html[data-theme="dark"] .empty-state, html[data-theme="dark"] .connection-card, html[data-theme="dark"] .event-card, html[data-theme="dark"] .contact-data a, html[data-theme="dark"] .tablet-day, html[data-theme="dark"] .tablet-ticket-lane { background: #141d2b; }
html[data-theme="dark"] .dashboard-event { background: #172131; }
html[data-theme="dark"] .dashboard-mini-day { background: #172131; }
html[data-theme="dark"] .contact-row:hover, html[data-theme="dark"] .contact-row.selected { background: #223047; }
html[data-theme="dark"] .contact-row.blacklisted { background: #4b222a; }
html[data-theme="dark"] .label-filters a, html[data-theme="dark"] .contact-labels span, html[data-theme="dark"] .mini-labels i, html[data-theme="dark"] code { background: #2a3548; color: #c8d1df; }
html[data-theme="dark"] .tablet-event { background: #202c3e; }

@media (prefers-color-scheme: dark) {
  html:not([data-theme]) { --navy: #edf3ff; --ink: #e9edf6; --muted: #a6afbf; --line: #344155; --surface: #1c2636; --canvas: #111927; --blue-soft: #22365f; --green-soft: #163d34; --red-soft: #4b222a; --orange-soft: #4b3322; --shadow: 0 18px 48px rgba(0,0,0,.32); color-scheme: dark; }
  html:not([data-theme]) .topbar, html:not([data-theme]) .icon-button, html:not([data-theme]) .button-secondary, html:not([data-theme]) input, html:not([data-theme]) select, html:not([data-theme]) .auth-card, html:not([data-theme]) .tablet-topbar { background: var(--surface); color: var(--ink); }
  html:not([data-theme]) .empty-state, html:not([data-theme]) .connection-card, html:not([data-theme]) .event-card, html:not([data-theme]) .contact-data a, html:not([data-theme]) .tablet-day, html:not([data-theme]) .tablet-ticket-lane { background: #141d2b; }
  html:not([data-theme]) .dashboard-event { background: #172131; }
  html:not([data-theme]) .dashboard-mini-day { background: #172131; }
  html:not([data-theme]) .contact-row:hover, html:not([data-theme]) .contact-row.selected { background: #223047; }
  html:not([data-theme]) .contact-row.blacklisted { background: #4b222a; }
  html:not([data-theme]) .label-filters a, html:not([data-theme]) .contact-labels span, html:not([data-theme]) .mini-labels i, html:not([data-theme]) code { background: #2a3548; color: #c8d1df; }
  html:not([data-theme]) .tablet-event { background: #202c3e; }
}

.error-page { min-height: 60vh; display: flex; align-items: center; justify-content: center; flex-direction: column; text-align: center; }.error-page > span { width: 62px; height: 62px; border-radius: 18px; display: grid; place-items: center; color: var(--red); background: var(--red-soft); font-weight: 900; font-size: 25px; }.error-page h1 { color: var(--navy); margin-bottom: 4px; }.error-page p { color: var(--muted); margin-bottom: 20px; }

@media (max-width: 1050px) {
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid, .split-grid { grid-template-columns: 1fr; }
  .nav a { padding-inline: 8px; }
  .topbar { padding-inline: 18px; gap: 15px; }.brand { min-width: auto; }.account span { display: none; }
  .quick-actions { grid-template-columns: repeat(2, 1fr); }
  .calendar-layout, .contacts-layout { grid-template-columns: 1fr; }.event-detail, .contact-detail { position: static; }.calendar-board { grid-template-columns: repeat(7, minmax(150px, 1fr)); }
  .dashboard-calendar-shell { grid-template-columns: minmax(0, 1fr) 210px; }
}

@media (max-width: 1250px) {
  .tablet-tools { gap: 5px; }.tablet-tools .status-pill { display: none; }.tablet-tools .button { padding-inline: 9px; font-size:12px; }.tablet-view-switch a { padding-inline: 8px; }
  .tablet-ticket-stats { grid-template-columns: repeat(4, minmax(80px, 1fr)); }.tablet-ticket-stats > span { min-width: 0; }
}

@media (max-width: 760px) {
  .topbar { position: static; flex-wrap: wrap; padding: 13px 16px 0; }.topbar .brand { flex: 1; }.nav { order: 3; width: 100%; overflow-x: auto; height: 50px; }.nav a { flex: 0 0 auto; }.account { margin-left: auto; }
  .page-shell { padding: 24px 16px 50px; }.heading-row { align-items: flex-start; flex-direction: column; }.metric-grid { grid-template-columns: 1fr; }
  .panel { padding: 18px; }.form-grid { grid-template-columns: 1fr; }.span-2 { grid-column: span 1; }
  .quick-actions { grid-template-columns: 1fr; }.calendar-actions { flex-wrap: wrap; }.day-strip { overflow-x: auto; grid-template-columns: repeat(7, minmax(82px, 1fr)); }.day-strip a { min-width: 82px; padding: 9px; }.contact-data { grid-template-columns: 1fr; }.contact-search { grid-template-columns: 1fr; }.blacklist-banner { margin: -18px -18px 18px; }.future-actions { align-items: flex-start; flex-direction: column; }
  .dashboard-calendar-shell { grid-template-columns: 1fr; }.dashboard-next { min-height: 220px; }
  .tablet-topbar { grid-template-columns: 1fr auto; }.tablet-clock { grid-column: 1 / -1; grid-row: 2; padding-top: 8px; }.tablet-tools .status-pill, .tablet-tools > a, .tablet-tools form { display: none; }.tablet-tools .tablet-view-switch, .tablet-tools .tablet-view-switch a { display: flex; }.tablet-shell { padding: 14px; }.tablet-grid { grid-template-columns: 1fr; }.tablet-week { min-height: 440px; }.tablet-day { grid-template-columns: 54px minmax(0, 1fr); }.tablet-event { min-width: 105px; }.tablet-focus { min-height: 360px; }.tablet-intro > p { display: none; }.tablet-ticket-heading { align-items: stretch; flex-direction: column; }.tablet-ticket-stats { grid-template-columns: repeat(2, 1fr); }.tablet-ticket-board { grid-template-columns: repeat(3, 290px); height: calc(100vh - 300px); overflow-x: auto; }.tablet-ticket-lane { min-height: 480px; }
  .auth-body { background: var(--canvas); }.login-shell, .setup-shell { grid-template-columns: 1fr; padding: 25px 16px 45px; gap: 25px; }.login-copy, .setup-intro { background: var(--navy); margin: -25px -16px 0; padding: 28px 22px 35px; }.login-copy .eyebrow, .setup-intro .eyebrow { margin-top: 35px; }.login-copy h1, .setup-intro h1 { font-size: 39px; }.login-status { margin-top: 25px; }.auth-card { padding: 25px; }.requirements { grid-template-columns: 1fr; }
}

/* Ticketboard */
textarea {
  width: 100%; padding: 12px 13px; color: var(--ink); background: #fff; border: 1px solid #cfd6e2;
  border-radius: 10px; outline: none; resize: vertical; font: inherit; line-height: 1.5;
}
textarea:focus { border-color: #7597eb; box-shadow: 0 0 0 3px rgba(32,86,214,.11); }
.ticket-scope-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.ticket-scope-tabs a { display: flex; align-items: center; justify-content: space-between; padding: 14px 17px; color: var(--muted); background: var(--surface); border: 1px solid var(--line); border-radius: 13px; font-size: 12px; font-weight: 750; }
.ticket-scope-tabs a:hover { border-color: #9db4ed; color: var(--blue); }
.ticket-scope-tabs a.active { color: #fff; background: var(--blue); border-color: var(--blue); box-shadow: 0 10px 24px rgba(32,86,214,.18); }
.ticket-scope-tabs strong { min-width: 26px; padding: 4px 7px; text-align: center; border-radius: 99px; color: var(--blue); background: var(--blue-soft); font-size: 10px; }
.ticket-scope-tabs a.active strong { color: var(--blue); background: #fff; }
.ticket-toolbar { display: flex; align-items: center; gap: 14px; justify-content: space-between; padding: 13px 15px; margin-bottom: 15px; }
.ticket-search { display: grid; grid-template-columns: minmax(260px, 430px) auto; gap: 8px; flex: 1; }.ticket-search label { display: block; }.ticket-search input { min-height: 41px; }
.ticket-status-filter { display: flex; gap: 5px; padding: 4px; background: #eef1f6; border-radius: 10px; }
.ticket-status-filter a { padding: 8px 11px; border-radius: 7px; color: var(--muted); font-size: 10px; font-weight: 750; }.ticket-status-filter a.active { color: var(--blue); background: var(--surface); box-shadow: 0 3px 10px rgba(26,40,72,.08); }
.ticket-board { display: grid; grid-template-columns: repeat(3, minmax(260px, 1fr)); gap: 13px; align-items: start; overflow-x: auto; padding-bottom: 8px; }
.ticket-board.lanes-1 { grid-template-columns: minmax(300px, 1fr); }.ticket-board.lanes-4 { grid-template-columns: repeat(4, minmax(255px, 1fr)); }.ticket-board.lanes-6 { grid-template-columns: repeat(6, minmax(235px, 1fr)); }.ticket-board.lanes-7 { grid-template-columns: repeat(7, minmax(235px, 1fr)); }
.ticket-lane { min-width: 0; border: 1px solid var(--line); border-radius: 16px; background: rgba(234,238,246,.62); overflow: hidden; }
.ticket-lane > header { display: flex; align-items: center; gap: 9px; padding: 13px 14px; border-bottom: 1px solid var(--line); background: var(--surface); }
.ticket-lane > header h2 { margin: 0; color: var(--navy); font-size: 12px; }.ticket-lane > header strong { margin-left: auto; color: var(--muted); font-size: 10px; }
.status-dot { width: 9px; height: 9px; display: inline-block; flex: 0 0 auto; border-radius: 50%; background: #8d97a8; }
.status-new { background: #2b68e4; }.status-in_progress { background: #db741f; }.status-waiting { background: #815dcf; }.status-finished { background: #087f8c; }.status-invoiced { background: #5546b8; }.status-completed { background: #17855e; }
.ticket-lane-list { display: grid; gap: 9px; padding: 10px; }.ticket-lane-empty { min-height: 92px; display: grid; place-items: center; color: #9aa3b1; font-size: 10px; border: 1px dashed #cdd4df; border-radius: 11px; }
.ticket-card { position: relative; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-left: 4px solid #aab3c2; border-radius: 12px; box-shadow: 0 5px 16px rgba(26,40,72,.045); }
.ticket-card:hover { border-color: #aebfe9; transform: translateY(-1px); }.ticket-card.priority-high { border-left-color: var(--orange); }.ticket-card.priority-urgent { border-left-color: var(--red); }.ticket-card.priority-low { border-left-color: var(--green); }
.ticket-card.blacklisted { border-color: #ed9ba5; }.ticket-stop { padding: 7px 11px; color: #fff; background: var(--red); font-size:11px; font-weight: 900; letter-spacing: .12em; }
.ticket-card-main { display: block; padding: 13px; }.ticket-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.priority-badge { display: inline-flex; padding: 5px 7px; border-radius: 6px; color: #657084; background: #edf0f5; font-size:11px; font-weight: 850; text-transform: uppercase; letter-spacing: .05em; }.priority-badge.priority-urgent { color: var(--red); background: var(--red-soft); }.priority-badge.priority-high { color: var(--orange); background: var(--orange-soft); }.priority-badge.priority-low { color: var(--green); background: var(--green-soft); }
.ticket-due { color: var(--muted); font-size:11px; font-weight: 750; }.ticket-due.overdue { color: var(--red); }.ticket-customer { display: block; margin: 12px 0 5px; color: var(--blue); font-size:12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.ticket-card h3 { margin: 0; color: var(--navy); font-size: 13px; line-height: 1.35; }.ticket-card p { margin: 7px 0 13px; color: var(--muted); font-size: 10px; line-height: 1.45; }.ticket-card footer { display: flex; align-items: center; justify-content: space-between; gap: 7px; color: var(--muted); font-size:11px; }
.ticket-card-claim { border-top: 1px solid #edf0f5; }.ticket-card-claim button { width: 100%; padding: 9px; border: 0; color: var(--blue); background: transparent; font-size:12px; font-weight: 800; }.ticket-card-claim button:hover { background: var(--blue-soft); }
.ticket-empty { margin-top: 14px; min-height: 230px; }

.ticket-form-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .55fr); gap: 17px; align-items: start; }.ticket-create-form { padding: 27px; }.ticket-form-help { position: sticky; top: 95px; }.ticket-form-help h2 { margin: 0 0 18px; color: var(--navy); }
.blacklist-confirmation { padding: 17px; color: #8f1c29; background: var(--red-soft); border: 2px solid #df6673; border-radius: 12px; }.blacklist-confirmation[hidden] { display: none; }.blacklist-confirmation > strong { font-size: 15px; letter-spacing: .08em; }.blacklist-confirmation > p { margin: 7px 0 13px; font-size: 11px; line-height: 1.5; }
.check-label { display: flex; grid-template-columns: none; flex-direction: row; align-items: flex-start; gap: 9px; line-height: 1.45; }.check-label input { width: 18px; min-height: 18px; margin: 1px 0 0; flex: 0 0 auto; accent-color: var(--blue); }.blacklist-confirmation .check-label input { accent-color: var(--red); }.assign-check { margin-top: 18px; }
.note-kind-help { display: flex; gap: 12px; padding: 15px 0; border-top: 1px solid var(--line); }.note-kind-help > span { width: 32px; height: 32px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 9px; font-weight: 900; }.note-kind-help.service > span { color: var(--green); background: var(--green-soft); }.note-kind-help.internal > span { color: var(--orange); background: var(--orange-soft); }.note-kind-help strong { color: var(--navy); font-size: 12px; }.note-kind-help p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }

.ticket-detail-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; }.ticket-heading-copy h1 { max-width: 900px; }.ticket-heading-badges, .ticket-heading-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }.ticket-heading-actions form { display: flex; }.status-label, .due-label { display: inline-flex; align-items: center; padding: 6px 9px; border-radius: 7px; font-size:12px; font-weight: 800; }.status-label { color: #fff; background: #788294; }.status-label.status-new { background: #2b68e4; }.status-label.status-in_progress { background: #db741f; }.status-label.status-waiting { background: #815dcf; }.status-label.status-finished { background: #087f8c; }.status-label.status-invoiced { background: #5546b8; }.status-label.status-completed { background: #17855e; }.due-label { color: var(--muted); background: #edf0f5; }
.ticket-blacklist-alert { display: flex; align-items: center; gap: 18px; margin: -6px 0 18px; padding: 17px 21px; color: #fff; background: linear-gradient(120deg, #a91224, #df3f4f); border-radius: 14px; box-shadow: 0 12px 28px rgba(167,18,35,.18); }.ticket-blacklist-alert > strong { padding-right: 18px; border-right: 1px solid rgba(255,255,255,.35); letter-spacing: .1em; }.ticket-blacklist-alert span, .ticket-blacklist-alert small { display: block; }.ticket-blacklist-alert span { font-weight: 750; font-size: 12px; }.ticket-blacklist-alert small { margin-top: 4px; font-size:12px; opacity: .9; }
.ticket-blacklist-alert > div { flex: 1; }.ticket-blacklist-alert form { display: flex; }.ticket-blacklist-alert form .button { color: #971829; background: #fff; white-space: nowrap; }
.ticket-detail-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, .55fr); gap: 16px; align-items: start; }.ticket-main-column, .ticket-side-column { display: grid; gap: 16px; }.ticket-side-column { position: sticky; top: 94px; }.rich-text { color: var(--ink); font-size: 13px; line-height: 1.7; white-space: normal; }
.note-compose-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.note-compose { padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fafbfe; }.note-compose header { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; }.note-compose header > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; font-weight: 900; }.note-compose.service header > span { color: var(--green); background: var(--green-soft); }.note-compose.internal header > span { color: var(--orange); background: var(--orange-soft); }.note-compose header strong, .note-compose header small { display: block; }.note-compose header strong { color: var(--navy); font-size: 12px; }.note-compose header small { color: var(--muted); margin-top: 3px; font-size:11px; }.note-compose textarea { margin-bottom: 9px; }
.time-entry-form { display: grid; grid-template-columns: 130px 100px minmax(240px, 1fr) auto; gap: 9px; align-items: end; }.time-entry-form label { min-width: 0; }.time-entry-list { display: grid; gap: 7px; margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); }.time-entry-list > div { display: grid; grid-template-columns: 75px 70px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 9px 11px; border-radius: 9px; background: #f6f8fc; }.time-entry-list span, .time-entry-list small { color: var(--muted); font-size:12px; }.time-entry-list strong { color: var(--blue); font-size: 10px; }.time-entry-list p { margin: 0; color: var(--ink); font-size: 10px; }.time-entry-list small { text-align: right; }
.ticket-section-empty { padding: 24px; color: var(--muted); text-align: center; font-size: 11px; border: 1px dashed var(--line); border-radius: 11px; }.ticket-note-list { display: grid; gap: 9px; }.ticket-note { padding: 14px 15px; border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: 11px; background: #fbfcfe; }.ticket-note.internal { border-left-color: var(--orange); background: var(--orange-soft); }.ticket-note header { display: flex; align-items: center; gap: 9px; }.ticket-note header span { padding: 4px 6px; color: var(--green); background: var(--green-soft); border-radius: 5px; font-size:10px; font-weight: 900; letter-spacing: .08em; }.ticket-note.internal header span { color: var(--orange); background: #fff; }.ticket-note header strong { color: var(--navy); font-size: 10px; }.ticket-note header time { margin-left: auto; color: var(--muted); font-size:11px; }.ticket-note p { margin: 10px 0 0; color: var(--ink); font-size: 11px; line-height: 1.6; }
.chatgpt-tool { border-color: #b9c9ef; background: linear-gradient(135deg, var(--surface), var(--blue-soft)); }.chatgpt-spark { width: 42px; height: 42px; display: grid; place-items: center; color: #fff; background: var(--blue); border-radius: 13px; font-size: 19px; }.prompt-preview { min-height: 210px; color: #3f4c62; background: rgba(255,255,255,.76); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 10px; }.copy-feedback { align-self: center; color: var(--green); font-size: 10px; font-weight: 750; }
.ticket-customer-panel h2 { margin: 0 0 15px; color: var(--navy); font-size: 22px; }.ticket-customer-links { display: grid; gap: 7px; }.ticket-customer-links a { display: flex; gap: 9px; align-items: flex-start; min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: #fafbfe; font-size:12px; line-height: 1.4; overflow-wrap: anywhere; }.ticket-customer-links a span { color: var(--blue); }.text-link { display: inline-block; margin-top: 14px; color: var(--blue); font-size: 10px; font-weight: 750; }
.ticket-company-line { margin: -9px 0 14px; color: var(--muted); font-size:12px; }.ticket-company-line strong { color: var(--navy); }
.ticket-control-panel hr { margin: 20px 0; border: 0; border-top: 1px solid var(--line); }.status-action-list { display: grid; gap: 5px; }.status-action-list form { display: flex; }.status-action-list button { width: 100%; display: flex; gap: 9px; align-items: center; padding: 9px 10px; border: 1px solid transparent; border-radius: 8px; color: var(--muted); background: transparent; font-size: 10px; font-weight: 700; }.status-action-list button:hover { background: #f3f6fb; }.status-action-list button.active { color: var(--navy); background: var(--blue-soft); border-color: #b9c9ef; }.status-action-list button:disabled { cursor: not-allowed; opacity: .48; }.status-action-list button b { margin-left: auto; color: var(--blue); font-size:11px; }.ticket-system-status { display:grid; grid-template-columns:10px 1fr; gap:4px 9px; align-items:center; margin-top:9px; padding:10px; border:1px solid var(--line); border-radius:9px; background:var(--canvas); }.ticket-system-status strong { color:var(--navy); font-size:10px; }.ticket-system-status small { grid-column:2; color:var(--muted); font-size:11px; line-height:1.4; }
.assignee-card { display: flex; align-items: center; gap: 10px; }.assignee-card > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--blue); font-weight: 850; }.assignee-card strong, .assignee-card small { display: block; }.assignee-card strong { color: var(--navy); font-size: 11px; }.assignee-card small { margin-top: 4px; color: var(--muted); font-size:11px; }.ticket-control-panel > form:last-child { margin-top: 10px; }
.ticket-team-heading { display: flex; align-items: end; justify-content: space-between; gap: 10px; }.ticket-team-heading h3 { margin: 2px 0 0; color: var(--navy); font-size: 13px; }.ticket-team-own { padding: 4px 7px; border-radius: 999px; color: var(--blue); background: var(--blue-soft); font-size:11px; font-weight: 800; }.ticket-team-list { display: grid; gap: 7px; margin-top: 10px; }.ticket-team-list .assignee-card { padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: var(--canvas); }.ticket-team-list .assignee-card > span { width: 32px; height: 32px; font-size: 11px; }.ticket-team-list .assignee-card > div { min-width: 0; flex: 1; }.ticket-team-list .assignee-card form { margin: 0; }.ticket-team-remove { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; color: var(--red); background: transparent; font-size: 18px; line-height: 1; cursor: pointer; }.ticket-team-remove:hover { color: #fff; border-color: var(--red); background: var(--red); }.ticket-team-empty { margin-top: 9px; padding: 11px; border: 1px dashed var(--line); border-radius: 9px; color: var(--muted); text-align: center; font-size:12px; }.ticket-team-manager { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 10px; }.ticket-team-manager summary { color: var(--blue); font-size:12px; font-weight: 800; cursor: pointer; }.ticket-team-manager form { margin-top: 9px; }.ticket-team-options { display: grid; gap: 5px; max-height: 230px; margin-bottom: 9px; overflow: auto; }.ticket-team-options label { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }.ticket-team-options label:has(input:checked) { border-color: var(--blue); background: var(--blue-soft); }.ticket-team-options input { width: 15px; height: 15px; margin: 0; }.ticket-team-options span, .ticket-team-options strong, .ticket-team-options small { display: block; }.ticket-team-options span { min-width: 0; }.ticket-team-options strong { color: var(--navy); font-size:12px; }.ticket-team-options small { margin-top: 2px; color: var(--muted); font-size:10px; }
.ticket-history { display: grid; }.ticket-history > div { position: relative; display: flex; gap: 10px; padding: 0 0 15px; }.ticket-history > div:not(:last-child):before { content: ""; position: absolute; left: 4px; top: 10px; bottom: 0; width: 1px; background: var(--line); }.ticket-history > div > span { width: 9px; height: 9px; z-index: 1; flex: 0 0 auto; margin-top: 3px; border: 2px solid var(--surface); border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 1px #a8b9e3; }.ticket-history p { margin: 0; }.ticket-history strong, .ticket-history small { display: block; }.ticket-history strong { color: var(--navy); font-size:12px; line-height: 1.4; }.ticket-history small { color: var(--muted); font-size:11px; margin-top: 4px; }

html[data-theme="dark"] textarea, html[data-theme="dark"] .ticket-status-filter a.active, html[data-theme="dark"] .ticket-card, html[data-theme="dark"] .ticket-lane > header, html[data-theme="dark"] .prompt-preview { background: var(--surface); color: var(--ink); }
html[data-theme="dark"] .ticket-lane { background: #141d2b; } html[data-theme="dark"] .ticket-status-filter { background: #283448; }
html[data-theme="dark"] .note-compose, html[data-theme="dark"] .ticket-note, html[data-theme="dark"] .ticket-customer-links a, html[data-theme="dark"] .time-entry-list > div { background: #172131; }
html[data-theme="dark"] .ticket-note.internal { background: #4b3322; } html[data-theme="dark"] .due-label { background: #2a3548; }
html[data-theme="dark"] .status-action-list button:hover { background: #243147; }
@media (prefers-color-scheme: dark) {
  html:not([data-theme]) textarea, html:not([data-theme]) .ticket-status-filter a.active, html:not([data-theme]) .ticket-card, html:not([data-theme]) .ticket-lane > header, html:not([data-theme]) .prompt-preview { background: var(--surface); color: var(--ink); }
  html:not([data-theme]) .ticket-lane { background: #141d2b; } html:not([data-theme]) .ticket-status-filter { background: #283448; }
  html:not([data-theme]) .note-compose, html:not([data-theme]) .ticket-note, html:not([data-theme]) .ticket-customer-links a, html:not([data-theme]) .time-entry-list > div { background: #172131; }
  html:not([data-theme]) .ticket-note.internal { background: #4b3322; } html:not([data-theme]) .due-label { background: #2a3548; }
  html:not([data-theme]) .status-action-list button:hover { background: #243147; }
}

@media (max-width: 1120px) {
  .ticket-detail-grid { grid-template-columns: 1fr; }.ticket-side-column { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }.ticket-history-panel { grid-column: 1 / -1; }
  .ticket-board, .ticket-board.lanes-4, .ticket-board.lanes-6, .ticket-board.lanes-7 { grid-template-columns: repeat(3, minmax(260px, 1fr)); }
}
@media (max-width: 820px) {
  .ticket-form-layout { grid-template-columns: 1fr; }.ticket-form-help { position: static; }
  .note-compose-grid { grid-template-columns: 1fr; }.time-entry-form { grid-template-columns: 1fr 1fr; }.time-entry-form .time-description { grid-column: 1 / -1; }.time-entry-form .button { grid-column: 1 / -1; }
  .ticket-detail-heading { align-items: flex-start; flex-direction: column; }.ticket-side-column { grid-template-columns: 1fr; }.ticket-history-panel { grid-column: auto; }
}
@media (max-width: 620px) {
  .ticket-scope-tabs { grid-template-columns: 1fr; }.ticket-toolbar { align-items: stretch; flex-direction: column; }.ticket-search { grid-template-columns: 1fr; }.ticket-status-filter { justify-content: stretch; }.ticket-status-filter a { flex: 1; text-align: center; }
  .ticket-board, .ticket-board.lanes-4, .ticket-board.lanes-6, .ticket-board.lanes-7 { grid-template-columns: repeat(3, 275px); }.ticket-board.lanes-1 { grid-template-columns: 1fr; }
  .ticket-blacklist-alert { align-items: flex-start; flex-direction: column; }.ticket-blacklist-alert > strong { border: 0; border-bottom: 1px solid rgba(255,255,255,.35); padding: 0 0 10px; width: 100%; }
  .time-entry-form { grid-template-columns: 1fr; }.time-entry-form .time-description, .time-entry-form .button { grid-column: auto; }.time-entry-list > div { grid-template-columns: 65px 55px 1fr; }.time-entry-list small { grid-column: 1 / -1; text-align: left; }
}

/* Kundeninventar */
.inventory-customer-picker { display: grid; grid-template-columns: minmax(280px, 1fr) auto; gap: 12px; align-items: end; margin-bottom: 15px; padding: 16px 18px; }
.inventory-stop { display: flex; gap: 16px; align-items: center; margin-bottom: 15px; padding: 13px 17px; color: #fff; background: var(--red); border-radius: 12px; }.inventory-stop strong { letter-spacing: .09em; }.inventory-stop span { font-size: 10px; opacity: .9; }
.inventory-summary { display: grid; grid-template-columns: repeat(3, minmax(150px, .6fr)) minmax(260px, 1fr); gap: 11px; margin-bottom: 15px; }.inventory-summary article { min-height: 84px; display: flex; gap: 12px; align-items: center; padding: 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; }.inventory-summary article > span { width: 40px; height: 40px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 11px; font-weight: 850; }.inventory-summary .blue { color: var(--blue); background: var(--blue-soft); }.inventory-summary .green { color: var(--green); background: var(--green-soft); }.inventory-summary .orange { color: var(--orange); background: var(--orange-soft); }.inventory-summary strong, .inventory-summary small { display: block; }.inventory-summary strong { color: var(--navy); font-size: 18px; }.inventory-summary small { color: var(--muted); margin-top: 3px; font-size:12px; }.inventory-customer-name { align-items: flex-start !important; justify-content: center; flex-direction: column; background: #14233f !important; }.inventory-customer-name strong { color: #fff !important; font-size: 15px !important; }.inventory-customer-name small { color: #b9c6da !important; }
.inventory-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(330px, .56fr); gap: 16px; align-items: start; }.inventory-content, .inventory-forms { display: grid; gap: 16px; }.inventory-forms { position: sticky; top: 94px; max-height: calc(100vh - 112px); overflow-y: auto; padding-right: 2px; }.inventory-forms .panel { box-shadow: none; }
.device-list, .license-list { display: grid; gap: 10px; }.device-card, .license-card { padding: 15px; border: 1px solid var(--line); border-left: 4px solid var(--blue); border-radius: 12px; background: #fbfcfe; }.device-card.status-repair, .license-card.expiring { border-left-color: var(--orange); }.device-card.status-storage { border-left-color: var(--violet); }.device-card.status-retired { border-left-color: #8d97a8; opacity: .68; }.device-card > header, .license-card > header { display: flex; align-items: center; gap: 11px; }.device-card header > div, .license-card header > div { flex: 1; min-width: 0; }.device-icon { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; color: var(--blue); background: var(--blue-soft); border-radius: 10px; }.device-card header small, .license-card header small { color: var(--muted); font-size:11px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }.device-card h3, .license-card h3 { margin: 4px 0 0; color: var(--navy); font-size: 13px; }.asset-status { padding: 5px 7px; color: #5e687a; background: #edf0f5; border-radius: 6px; font-size:11px; font-weight: 800; white-space: nowrap; }.asset-status.status-active { color: var(--green); background: var(--green-soft); }.asset-status.status-repair, .asset-status.status-expired { color: var(--orange); background: var(--orange-soft); }.asset-status.status-cancelled, .asset-status.status-retired { color: var(--red); background: var(--red-soft); }.asset-status.status-storage { color: var(--violet); background: #f0ebff; }
.device-facts, .license-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-top: 13px; }.device-facts > span, .license-grid > span { min-width: 0; padding: 9px; background: #f3f6fb; border-radius: 8px; }.device-facts small, .device-facts strong, .license-grid small, .license-grid strong { display: block; overflow-wrap: anywhere; }.device-facts small, .license-grid small { color: var(--muted); font-size:10px; text-transform: uppercase; letter-spacing: .05em; }.device-facts strong, .license-grid strong { color: var(--ink); margin-top: 4px; font-size:12px; }.device-card > p, .license-card > p { margin: 12px 0 0; color: var(--muted); font-size:12px; line-height: 1.55; }.device-card > footer, .license-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 13px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--muted); font-size:11px; }.device-card footer a, .license-card footer a { color: var(--blue); font-weight: 750; }
.license-device, .license-account { margin-top: 9px; padding: 8px 10px; color: var(--muted); background: var(--blue-soft); border-radius: 8px; font-size:12px; }.license-account a { color: var(--blue); font-weight: 700; }.license-key { display: flex; gap: 10px; align-items: center; margin-top: 9px; padding: 10px 11px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); }.license-key > span { flex: 1; min-width: 0; }.license-key small, .license-key code { display: block; }.license-key small { color: var(--muted); font-size:10px; text-transform: uppercase; letter-spacing: .05em; }.license-key code { margin-top: 5px; color: var(--navy); font-size:12px; overflow-wrap: anywhere; }.license-key code.revealed { color: var(--red); font-weight: 850; }.license-key form { display: flex; }.warning { color: var(--orange) !important; }

/* Waren- und Leistungskatalog */
.catalog-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(330px, .55fr); gap: 16px; align-items: start; }.catalog-list-panel { padding: 18px; }.catalog-form-panel { position: sticky; top: 94px; }.catalog-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }.catalog-search { display: grid; grid-template-columns: minmax(220px, 390px) auto; gap: 8px; flex: 1; }.catalog-search label { display: block; }.catalog-toolbar nav { display: flex; gap: 4px; padding: 4px; background: #eef1f6; border-radius: 9px; }.catalog-toolbar nav a { padding: 7px 9px; border-radius: 6px; color: var(--muted); font-size:12px; font-weight: 800; }.catalog-toolbar nav a.active { color: var(--blue); background: var(--surface); box-shadow: 0 3px 9px rgba(26,40,72,.08); }.catalog-table-wrap { overflow-x: auto; }.catalog-table { min-width: 900px; }.catalog-table td code { color: var(--navy); background: var(--blue-soft); padding: 5px 7px; border-radius: 5px; font-weight: 850; }.catalog-type { padding: 5px 7px; border-radius: 6px; font-size:11px; font-weight: 850; }.catalog-type.goods { color: var(--blue); background: var(--blue-soft); }.catalog-type.service { color: var(--violet); background: #f0ebff; }.catalog-row-actions { display: grid; gap: 4px; }.catalog-row-actions a, .catalog-row-actions button { padding: 0; border: 0; color: var(--blue); background: transparent; font-size:11px; font-weight: 750; text-align: left; }.catalog-row-actions button { color: var(--muted); }.catalog-example { display: grid; gap: 5px; margin-top: 18px; padding: 14px; color: #fff; background: #14233f; border-radius: 11px; }.catalog-example small { color: #b9c6da; font-size:11px; text-transform: uppercase; letter-spacing: .08em; }.catalog-example strong { font-size: 10px; }.catalog-example span { color: #d7e0ee; font-size:12px; }

html[data-theme="dark"] .device-card, html[data-theme="dark"] .license-card, html[data-theme="dark"] .device-facts > span, html[data-theme="dark"] .license-grid > span, html[data-theme="dark"] .license-key { background: #172131; }
html[data-theme="dark"] .catalog-toolbar nav { background: #283448; } html[data-theme="dark"] .catalog-toolbar nav a.active { background: var(--surface); }
@media (prefers-color-scheme: dark) {
  html:not([data-theme]) .device-card, html:not([data-theme]) .license-card, html:not([data-theme]) .device-facts > span, html:not([data-theme]) .license-grid > span, html:not([data-theme]) .license-key { background: #172131; }
  html:not([data-theme]) .catalog-toolbar nav { background: #283448; } html:not([data-theme]) .catalog-toolbar nav a.active { background: var(--surface); }
}
@media (max-width: 1150px) {
  .inventory-layout, .catalog-layout { grid-template-columns: 1fr; }.inventory-forms, .catalog-form-panel { position: static; max-height: none; overflow: visible; }.inventory-forms { grid-template-columns: repeat(2, minmax(0, 1fr)); }.inventory-summary { grid-template-columns: repeat(3, 1fr); }.inventory-customer-name { grid-column: 1 / -1; }
}
@media (max-width: 800px) {
  .inventory-forms { grid-template-columns: 1fr; }.device-facts, .license-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.catalog-toolbar { align-items: stretch; flex-direction: column; }.catalog-search { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .inventory-customer-picker { grid-template-columns: 1fr; }.inventory-summary { grid-template-columns: 1fr; }.inventory-customer-name { grid-column: auto; }.inventory-stop { align-items: flex-start; flex-direction: column; }.device-facts, .license-grid { grid-template-columns: 1fr; }.license-key { align-items: flex-start; flex-direction: column; }.catalog-toolbar nav a { flex: 1; text-align: center; }
}

/* Google-Bilanz und Drive-Ablage */
.accounting-settings-panel { margin-top: 16px; }.accounting-settings-grid { display: grid; grid-template-columns: minmax(340px, 1fr) minmax(320px, .85fr); gap: 24px; align-items: start; }.accounting-guide { display: grid; gap: 12px; }.accounting-guide > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size:12px; line-height: 1.55; }.accounting-map { display: grid; grid-template-columns: 27px 1fr; gap: 6px 8px; padding: 13px; background: #f4f6fa; border-radius: 11px; }.accounting-map span { width: 24px; height: 24px; display: grid; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 6px; font-size:11px; font-weight: 900; }.accounting-map strong { align-self: center; color: var(--navy); font-size:12px; }.accounting-status { display: grid; gap: 4px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }.accounting-status strong { color: var(--navy); font-size: 10px; }.accounting-status span, .accounting-status small { color: var(--muted); font-size:11px; line-height: 1.45; }.accounting-success { border-color: #a5dbc7 !important; background: linear-gradient(145deg, var(--surface), var(--green-soft)) !important; }.accounting-warning { border-color: #edc17e !important; background: linear-gradient(145deg, var(--surface), var(--orange-soft)) !important; }.accounting-api-note { margin: 20px 0 0; }.accounting-list-good, .accounting-list-open { display: block; width: fit-content; margin-top: 6px; padding: 4px 6px; border-radius: 5px; font-size:10px; font-weight: 850; }.accounting-list-good { color: var(--green); background: var(--green-soft); }.accounting-list-open { color: var(--orange); background: var(--orange-soft); }.invoice-accounting-card { margin-top: 12px; }.invoice-accounting-card h2 { margin: 0 0 9px; color: var(--navy); }.invoice-accounting-card p { margin: 0 0 12px; color: var(--muted); font-size: 10px; line-height: 1.55; }.invoice-accounting-card form { margin-top: 12px; }.accounting-error { display: block; padding: 9px; color: var(--red); background: rgba(201,52,67,.08); border-radius: 7px; font-size:11px; line-height: 1.45; overflow-wrap: anywhere; }
.drive-path-preview { display: grid; gap: 5px; padding: 12px; color: #dfe8f7; background: #14233f; border-radius: 10px; }.drive-path-preview small { color: #8fb2ff; font-size:10px; font-weight: 900; letter-spacing: .08em; }.drive-path-preview strong { color: #fff; font-size: 10px; }.drive-path-preview span { color: #aebbd1; font-size:11px; line-height: 1.45; }
html[data-theme="dark"] .accounting-map { background: #172131; }
@media (prefers-color-scheme: dark) { html:not([data-theme]) .accounting-map { background: #172131; } }
@media (max-width: 850px) { .accounting-settings-grid { grid-template-columns: 1fr; } }

/* Wartungsverträge & WiFixIT Home */
.contract-heading-buttons { margin: 0; }.contract-toolbar { display: flex; align-items: center; gap: 12px; margin-bottom: 17px; padding: 14px 16px; }.contract-search { display: grid; grid-template-columns: minmax(220px, 360px) auto; gap: 8px; flex: 1; }.contract-toolbar nav { display: flex; gap: 4px; padding: 4px; background: #eef1f6; border-radius: 9px; }.contract-toolbar nav a { padding: 7px 9px; color: var(--muted); border-radius: 6px; font-size:12px; font-weight: 800; white-space: nowrap; }.contract-toolbar nav a.active { color: var(--blue); background: var(--surface); box-shadow: 0 3px 9px rgba(26,40,72,.08); }
.contract-grid { display: grid; grid-template-columns: repeat(3, minmax(300px, 1fr)); gap: 14px; }.contract-card { position: relative; overflow: hidden; padding: 17px; background: var(--surface); border: 1px solid var(--line); border-left: 4px solid var(--blue); border-radius: 14px; box-shadow: 0 7px 24px rgba(26,40,72,.045); }.contract-card.home { border-left-color: var(--violet); }.contract-card.blacklisted { border-color: #ed9ba5; }.home-priority-ribbon, .contract-stop { margin: -17px -17px 14px; padding: 7px 13px; color: #fff; background: linear-gradient(90deg, #5e3fb0, #825ed6); font-size:11px; font-weight: 900; letter-spacing: .1em; }.contract-stop { background: var(--red); }.contract-card > header { display: flex; align-items: center; gap: 11px; }.contract-card header > div { min-width: 0; flex: 1; }.contract-card header small, .contract-card header h2 { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.contract-card header small { color: var(--muted); font-size:11px; font-weight: 850; text-transform: uppercase; letter-spacing: .07em; }.contract-card header h2 { margin: 4px 0 0; color: var(--navy); font-size: 14px; }.contract-icon { width: 39px; height: 39px; display: grid; place-items: center; flex: 0 0 auto; color: var(--blue); background: var(--blue-soft); border-radius: 10px; font-size: 10px; font-weight: 900; }.contract-card.home .contract-icon { color: var(--violet); background: #f0ebff; }.contract-status { padding: 5px 7px; border-radius: 6px; color: var(--muted); background: #edf0f5; font-size:11px; font-weight: 850; white-space: nowrap; }.contract-status.status-active { color: var(--green); background: var(--green-soft); }.contract-status.status-draft { color: var(--blue); background: var(--blue-soft); }.contract-status.status-cancelled, .contract-status.status-ended { color: var(--red); background: var(--red-soft); }
.contract-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 15px; }.contract-facts span { padding: 9px; background: #f4f6fa; border-radius: 8px; }.contract-facts small, .contract-facts strong { display: block; }.contract-facts small { color: var(--muted); font-size:10px; text-transform: uppercase; letter-spacing: .05em; }.contract-facts strong { margin-top: 4px; color: var(--ink); font-size:12px; }.contract-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 14px; padding-top: 11px; border-top: 1px solid var(--line); color: var(--muted); font-size:11px; }.contract-card footer a { color: var(--blue); font-weight: 800; }
.contract-form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 16px; align-items: start; }.contract-form-main { display: grid; gap: 16px; }.contract-form-summary { position: sticky; top: 94px; }.contract-form-summary h2 { margin: 0 0 18px; color: var(--navy); }.contract-summary-list { display: grid; gap: 8px; }.contract-summary-list > span { padding: 10px; background: #f4f6fa; border-radius: 9px; }.contract-summary-list small, .contract-summary-list strong { display: block; }.contract-summary-list small { color: var(--muted); font-size:11px; text-transform: uppercase; }.contract-summary-list strong { margin-top: 5px; color: var(--navy); font-size: 11px; }.contract-auto-note { margin: 17px 0; padding: 11px; color: #405174; background: var(--blue-soft); border-radius: 9px; font-size:12px; line-height: 1.55; }.contract-price-preview { min-width: 170px; padding: 10px 13px; color: #fff; background: #14233f; border-radius: 10px; text-align: right; }.contract-price-preview small, .contract-price-preview strong { display: block; }.contract-price-preview small { color: #aebbd1; font-size:10px; text-transform: uppercase; }.contract-price-preview strong { margin-top: 5px; font-size: 15px; }.contract-rule-note { align-self: stretch; padding: 11px; color: #4e5b70; background: #f4f6fa; border-radius: 9px; }.contract-rule-note strong, .contract-rule-note span { display: block; }.contract-rule-note strong { color: var(--navy); font-size: 10px; }.contract-rule-note span { margin-top: 5px; font-size:11px; line-height: 1.55; }.home-contract-fields { border-color: #cfc2f2; background: linear-gradient(145deg, var(--surface), #f7f3ff); }.home-badge, .home-ticket-badge { display: inline-flex; padding: 6px 9px; color: var(--violet); background: #f0ebff; border-radius: 7px; font-size:11px; font-weight: 900; letter-spacing: .07em; }.home-private-check { padding: 13px; color: #4c3b78; background: #f0ebff; border-radius: 10px; }.home-private-check small { display: block; margin-top: 3px; }
.contract-detail-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }.contract-heading-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }.contract-heading-meta > span:not(.contract-status) { padding: 6px 8px; color: var(--muted); background: #edf0f5; border-radius: 6px; font-size:12px; }.home-priority-banner, .contact-home-banner { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; padding: 13px 17px; color: #fff; background: linear-gradient(90deg, #5037a0, #815dcc); border-radius: 12px; }.home-priority-banner strong, .contact-home-banner strong { letter-spacing: .07em; }.home-priority-banner span, .contact-home-banner span { font-size: 10px; opacity: .9; }.contact-home-banner { margin: 0 0 18px; }
.contract-detail-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(320px, .55fr); gap: 16px; align-items: start; }.contract-detail-main, .contract-detail-side { display: grid; gap: 16px; }.contract-detail-side { position: sticky; top: 94px; }.month-picker input { min-width: 145px; }.quota-numbers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }.quota-numbers > span { padding: 12px; background: #f4f6fa; border-radius: 10px; }.quota-numbers small, .quota-numbers strong, .quota-numbers em { display: block; }.quota-numbers small { color: var(--muted); font-size:11px; text-transform: uppercase; }.quota-numbers strong { margin-top: 5px; color: var(--navy); font-size: 14px; }.quota-numbers em { margin-top: 3px; color: var(--red); font-size:11px; font-style: normal; }.quota-numbers .over { background: var(--red-soft); }.quota-track { height: 10px; overflow: hidden; margin-top: 14px; background: #e8ecf3; border-radius: 99px; }.quota-track i { display: block; height: 100%; background: linear-gradient(90deg, #2056d6, #5b88ef); border-radius: inherit; }.quota-caption { margin: 7px 0 0; color: var(--muted); font-size:12px; }.home-usage-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }.home-usage-grid > span { padding: 15px; background: #f5f1ff; border: 1px solid #ded3f7; border-radius: 11px; }.home-usage-grid small, .home-usage-grid strong, .home-usage-grid em { display: block; }.home-usage-grid small { color: var(--violet); font-size:11px; font-weight: 850; text-transform: uppercase; }.home-usage-grid strong { margin-top: 7px; color: var(--navy); font-size: 17px; }.home-usage-grid em { margin-top: 5px; color: var(--muted); font-size:11px; font-style: normal; }
.contract-usage-list { display: grid; gap: 7px; }.contract-usage-list > div { display: grid; grid-template-columns: 55px 70px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 10px 11px; background: #f6f8fc; border-radius: 9px; }.usage-source { padding: 4px 5px; color: var(--muted); background: #e8ecf3; border-radius: 5px; font-size:10px; font-weight: 900; text-align: center; }.usage-source.automatic { color: var(--blue); background: var(--blue-soft); }.contract-usage-list time { color: var(--muted); font-size:11px; }.contract-usage-list strong, .contract-usage-list p, .contract-usage-list a { display: block; }.contract-usage-list strong { color: var(--navy); font-size: 10px; }.contract-usage-list p { margin: 4px 0 0; color: var(--muted); font-size:12px; }.contract-usage-list a { margin-top: 5px; color: var(--blue); font-size:11px; font-weight: 750; }.contract-usage-list b { color: var(--blue); font-size: 10px; }
.contract-month-actions { display: flex; align-items: center; gap: 8px; }.contract-ticket-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 13px; }.contract-ticket-summary > span { padding: 11px 12px; background: #f4f6fa; border-radius: 9px; }.contract-ticket-summary > span.attention { background: var(--orange-soft); }.contract-ticket-summary small, .contract-ticket-summary strong { display: block; }.contract-ticket-summary small { color: var(--muted); font-size:10px; font-weight: 850; text-transform: uppercase; letter-spacing: .05em; }.contract-ticket-summary strong { margin-top: 5px; color: var(--navy); font-size: 13px; }.contract-ticket-summary .attention strong { color: var(--orange); }
.contract-month-ticket-list { display: grid; gap: 7px; }.contract-month-ticket-row { display: grid; grid-template-columns: 92px minmax(180px, 1fr) 82px 76px minmax(128px, auto); gap: 11px; align-items: center; padding: 12px; border: 1px solid var(--line); border-left: 4px solid #b9c4d6; border-radius: 10px; background: #f8faff; }.contract-month-ticket-row:has(.status-new) { border-left-color: var(--blue); }.contract-month-ticket-row:has(.status-in_progress) { border-left-color: var(--orange); }.contract-month-ticket-row:has(.status-waiting) { border-left-color: var(--violet); }.contract-month-ticket-row:has(.status-follow_up) { border-left-color: #c43745; }.contract-month-ticket-row:has(.status-completed) { border-left-color: var(--green); }.contract-month-ticket-row > .status-label { justify-content: center; text-align: center; }.contract-ticket-copy { min-width: 0; }.contract-ticket-copy a, .contract-ticket-copy > span, .contract-ticket-copy small, .contract-ticket-copy strong, .contract-ticket-copy em { display: block; }.contract-ticket-copy small { color: var(--blue); font-size:10px; font-weight: 850; }.contract-ticket-copy strong { margin-top: 4px; overflow: hidden; color: var(--navy); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.contract-ticket-copy em { margin-top: 5px; overflow: hidden; color: var(--muted); font-size:11px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }.contract-ticket-date small, .contract-ticket-date strong, .contract-ticket-time small, .contract-ticket-time strong { display: block; }.contract-ticket-date small, .contract-ticket-time small { color: var(--muted); font-size:10px; }.contract-ticket-date strong, .contract-ticket-time strong { margin-top: 4px; color: var(--navy); font-size:12px; }.contract-ticket-billing { display: grid; justify-items: end; gap: 5px; text-align: right; }.contract-ticket-billing > a { color: var(--blue); font-size:10px; font-weight: 800; }.contract-ticket-billing-status { display: inline-flex; justify-content: center; padding: 5px 7px; color: var(--muted); background: #edf0f5; border-radius: 999px; font-size:10px; font-weight: 900; white-space: nowrap; }.contract-ticket-billing-status.waiting, .contract-ticket-billing-status.attention, .contract-ticket-billing-status.invoice-draft { color: #9a5700; background: var(--orange-soft); }.contract-ticket-billing-status.internal, .contract-ticket-billing-status.invoice-paid { color: var(--green); background: var(--green-soft); }.contract-ticket-billing-status.invoice-final, .contract-ticket-billing-status.invoice-sent { color: var(--blue); background: var(--blue-soft); }.contract-ticket-billing-status.invoice-cancelled { color: var(--red); background: var(--red-soft); }
.contract-pricing-card h2 { margin: 0; color: var(--navy); font-size: 25px; }.contract-pricing-card h2 small { color: var(--muted); font-size: 10px; }.contract-pricing-card > strong { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; }.contract-rate-list { display: grid; gap: 6px; margin-top: 15px; }.contract-rate-list span { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); }.contract-rate-list small, .contract-rate-list strong { font-size:12px; }.contract-rate-list small { color: var(--muted); }.contract-rate-list strong { color: var(--navy); }.contract-conditions { margin: 14px 0 0; color: var(--muted); font-size:12px; line-height: 1.55; }.special-terms, .internal-contract-note { margin-top: 14px; padding: 11px; color: #68421f; background: var(--orange-soft); border-radius: 9px; }.special-terms small, .internal-contract-note small { font-size:10px; font-weight: 900; letter-spacing: .08em; }.special-terms p, .internal-contract-note p { margin: 5px 0 0; font-size:12px; line-height: 1.5; }.internal-contract-note { color: #704c22; }.contract-customer-card h2 { margin: 0 0 9px; color: var(--navy); }.contract-customer-card > a { color: var(--blue); font-size: 10px; }.contract-customer-card .button-row { margin-top: 14px; }
.contact-row.home-priority:not(.blacklisted) { border-left-color: var(--violet); }.mini-labels i.home { color: var(--violet); background: #f0ebff; font-weight: 850; }.ticket-card.home-priority:not(.blacklisted) { border-color: #c7b9ef; border-left-color: var(--violet); }.ticket-home-priority { padding: 7px 11px; color: #fff; background: linear-gradient(90deg, #5e3fb0, #825ed6); font-size:11px; font-weight: 900; letter-spacing: .1em; }.time-entry-form { grid-template-columns: 125px 90px minmax(220px, 1fr) minmax(210px, .7fr) auto; }.time-contract-link { display: block; margin-top: 4px; color: var(--blue); font-size:11px; font-weight: 750; }

html[data-theme="dark"] .contract-toolbar nav, html[data-theme="dark"] .contract-facts span, html[data-theme="dark"] .contract-summary-list > span, html[data-theme="dark"] .quota-numbers > span, html[data-theme="dark"] .contract-usage-list > div, html[data-theme="dark"] .contract-ticket-summary > span, html[data-theme="dark"] .contract-month-ticket-row { background: #283448; }
html[data-theme="dark"] .contract-card, html[data-theme="dark"] .home-contract-fields { background: var(--surface); }.contract-form-layout [hidden] { display: none !important; }
@media (prefers-color-scheme: dark) {
  html:not([data-theme]) .contract-toolbar nav, html:not([data-theme]) .contract-facts span, html:not([data-theme]) .contract-summary-list > span, html:not([data-theme]) .quota-numbers > span, html:not([data-theme]) .contract-usage-list > div, html:not([data-theme]) .contract-ticket-summary > span, html:not([data-theme]) .contract-month-ticket-row { background: #283448; }
  html:not([data-theme]) .contract-card, html:not([data-theme]) .home-contract-fields { background: var(--surface); }
}
@media (max-width: 1180px) {
  .contract-grid { grid-template-columns: repeat(2, minmax(290px, 1fr)); }.contract-toolbar { align-items: stretch; flex-wrap: wrap; }.contract-search { flex-basis: 100%; }.contract-form-layout, .contract-detail-grid { grid-template-columns: 1fr; }.contract-form-summary, .contract-detail-side { position: static; }.contract-detail-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }.time-entry-form { grid-template-columns: 1fr 1fr; }.time-entry-form .time-description, .time-entry-form .time-contract, .time-entry-form .button { grid-column: span 2; }
}
@media (max-width: 760px) {
  .contract-grid { grid-template-columns: 1fr; }.contract-detail-heading, .home-priority-banner, .contact-home-banner { align-items: flex-start; flex-direction: column; }.contract-detail-side { grid-template-columns: 1fr; }.quota-numbers, .home-usage-grid, .contract-ticket-summary { grid-template-columns: 1fr 1fr; }.contract-usage-list > div { grid-template-columns: 55px 65px 1fr; }.contract-usage-list b { grid-column: 3; }.contract-toolbar nav { width: 100%; overflow-x: auto; }.contract-form-layout .form-grid { grid-template-columns: 1fr; }.contract-form-layout .span-2 { grid-column: auto; }.contract-month-ticket-row { grid-template-columns: 92px minmax(0, 1fr) auto; align-items: start; }.contract-ticket-date { grid-column: 2; }.contract-ticket-time { grid-column: 3; }.contract-ticket-billing { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; }
}
@media (max-width: 560px) {
  .contract-search { grid-template-columns: 1fr; }.contract-facts, .quota-numbers, .home-usage-grid, .contract-ticket-summary { grid-template-columns: 1fr; }.time-entry-form { grid-template-columns: 1fr; }.time-entry-form .time-description, .time-entry-form .time-contract, .time-entry-form .button { grid-column: auto; }.contract-usage-list > div { grid-template-columns: 1fr; align-items: start; }.contract-usage-list b { grid-column: auto; }.contract-month-actions { width: 100%; align-items: stretch; flex-direction: column; }.contract-month-actions .home-badge { justify-content: center; }.contract-month-ticket-row { grid-template-columns: 1fr; }.contract-month-ticket-row > *, .contract-ticket-date, .contract-ticket-time, .contract-ticket-billing { grid-column: auto; }.contract-month-ticket-row > .status-label { justify-self: start; }.contract-ticket-copy strong, .contract-ticket-copy em { white-space: normal; }.contract-ticket-date, .contract-ticket-time { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.contract-ticket-billing { align-items: flex-start; flex-direction: column; text-align: left; }
}

/* Firmen, Ticketabschluss und Rechnungen */
.contact-company-box { margin: 18px 0; padding: 20px; border: 1px solid #b9cbf0; border-radius: 15px; background: var(--blue-soft); }
.contact-company-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 16px; border-bottom: 1px solid rgba(74,105,170,.22); }.contact-company-heading > div { min-width: 0; }.contact-company-heading small, .contact-company-heading strong { display: block; }.contact-company-heading > div > small { color: var(--blue); font-size:11px; font-weight: 900; letter-spacing: .09em; }.contact-company-heading > div > strong { margin-top: 7px; color: var(--navy); font-size: 18px; }.contact-company-heading p { max-width: 680px; margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }.company-current-badge { flex: 0 0 auto; padding: 7px 9px; color: var(--green); background: var(--green-soft); border-radius: 7px; font-size:11px; font-weight: 850; }
.company-assignment-form { display: grid; gap: 16px; margin-top: 17px; }.company-assignment-choice { display: grid; grid-template-columns: minmax(0, 1fr) 52px minmax(0, 1fr); gap: 12px; align-items: stretch; }.company-choice-card { min-width: 0; display: flex; flex-direction: column; justify-content: space-between; min-height: 142px; padding: 15px; border: 1px solid #b9c8e8; border-radius: 12px; background: var(--surface); }.company-choice-card > span > strong, .company-choice-card > span > small { display: block; }.company-choice-card > span > strong { color: var(--navy); font-size: 12px; }.company-choice-card > span > small { margin-top: 5px; color: var(--muted); font-size:12px; line-height: 1.45; }.company-choice-card select, .company-choice-card input { width: 100%; min-width: 0; min-height: 48px; margin-top: 14px; font-size: 12px; }.company-choice-new { border-color: #91abe7; }.company-choice-new input { border-color: #8da9e7; }.company-choice-divider { align-self: center; width: 46px; height: 46px; display: grid; place-items: center; color: var(--blue); background: var(--surface); border: 1px solid #b9c8e8; border-radius: 50%; font-size:10px; font-weight: 900; }
.company-billing-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); gap: 12px; }.company-billing-grid label { min-width: 0; padding: 15px; border: 1px solid rgba(105,130,180,.3); border-radius: 12px; background: rgba(255,255,255,.42); }.company-billing-grid label > span { display: block; margin-bottom: 8px; color: var(--navy); font-size: 10px; font-weight: 800; }.company-billing-grid input, .company-billing-grid textarea { min-height: 48px; margin: 0; font-size: 11px; }.company-billing-grid textarea { min-height: 98px; }.company-billing-grid label > small { display: block; margin-top: 7px; color: var(--muted); font-size:11px; line-height: 1.4; }.company-assignment-actions { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 2px; }.company-assignment-actions p { margin: 0; color: var(--muted); font-size:12px; line-height: 1.5; }.company-assignment-actions .button { flex: 0 0 auto; min-height: 48px; padding-inline: 20px; white-space: nowrap; }
.contract-company-hint { margin-top: 14px; padding: 10px; color: var(--blue); background: var(--blue-soft); border-radius: 8px; font-size:12px; line-height: 1.5; }
.connection-pill { padding: 8px 12px; color: var(--muted); background: #edf0f5; border-radius: 99px; font-size: 10px; font-weight: 800; }.connection-pill.connected { color: var(--green); background: var(--green-soft); }.settings-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 16px; }.feature-check-list { display: grid; gap: 10px; margin: 0 0 20px; padding: 0; list-style: none; }.feature-check-list li { position: relative; padding-left: 24px; color: var(--ink); font-size: 11px; line-height: 1.45; }.feature-check-list li:before { content: "✓"; position: absolute; left: 0; top: -2px; width: 17px; height: 17px; display: grid; place-items: center; color: var(--green); background: var(--green-soft); border-radius: 50%; font-size:12px; font-weight: 900; }
.ticket-billing-panel { border-color: #aec2ef; }.ticket-billing-panel.ready { border-color: #9fd9c4; }.billing-step { padding: 6px 9px; color: var(--blue); background: var(--blue-soft); border-radius: 7px; font-size:11px; font-weight: 900; letter-spacing: .06em; }.ticket-billing-panel.ready .billing-step { color: var(--green); background: var(--green-soft); }
.billing-locked, .finish-warning, .wv-unavailable { padding: 14px; color: var(--muted); background: #f3f5f9; border-radius: 10px; }.billing-locked strong, .finish-warning strong { color: var(--navy); }.billing-locked p, .finish-warning p { margin: 5px 0 0; font-size: 10px; line-height: 1.5; }.automatic-time-line { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 15px; border: 1px solid var(--line); border-radius: 11px; background: #f8faff; }.automatic-time-line small, .automatic-time-line strong { display: block; }.automatic-time-line span > small { color: var(--blue); font-size:10px; font-weight: 900; letter-spacing: .08em; }.automatic-time-line strong { margin-top: 5px; color: var(--navy); font-size: 12px; }.automatic-time-line p { margin: 4px 0 0; color: var(--muted); font-size:12px; }.automatic-time-line > b { color: var(--navy); font-size: 16px; white-space: nowrap; text-align: right; }.automatic-time-line > b small { margin-top: 3px; color: var(--muted); font-size:10px; font-weight: 600; }
.ticket-bill-items { margin-top: 18px; }.ticket-bill-items h3 { margin: 0 0 9px; color: var(--navy); font-size: 12px; }.ticket-bill-items > div { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; border-top: 1px solid var(--line); }.ticket-bill-items small, .ticket-bill-items strong { display: block; }.ticket-bill-items small { color: var(--blue); font-size:10px; font-weight: 800; }.ticket-bill-items strong { margin-top: 4px; color: var(--navy); font-size: 10px; }.ticket-bill-items p { margin: 4px 0 0; color: var(--muted); font-size:11px; }.text-button.danger { color: var(--red); }
.invoice-item-add { display: grid; grid-template-columns: minmax(260px, 1fr) 100px auto; gap: 9px; align-items: end; margin-top: 12px; padding-top: 14px; border-top: 1px solid var(--line); }.finish-ticket-form { display: grid; grid-template-columns: minmax(280px, 1fr) 180px; gap: 12px; align-items: end; margin-top: 20px; padding: 17px; color: #443477; background: #f1edff; border: 1px solid #d9cff5; border-radius: 12px; }.wv-check { padding: 8px 0; }.wv-check strong, .wv-check small { display: block; }.wv-check small { margin-top: 3px; }.finish-warning, .finish-ticket-form > .button, .wv-unavailable { grid-column: 1 / -1; }.finish-warning { color: #5a467f; background: rgba(255,255,255,.55); }.finish-ticket-form > .button { min-height: 50px; }
.report-photo-picker { grid-column:1/-1; min-width:0; margin:0; padding:14px; border:1px solid #c8bcea; border-radius:11px; background:rgba(255,255,255,.55); }.report-photo-picker legend { padding:0 7px; color:var(--navy); font-size:10px; font-weight:850; }.report-photo-picker > p { margin:0 0 11px; color:var(--muted); font-size:12px; line-height:1.45; }.report-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }.report-photo-option { position:relative; min-width:0; display:grid; grid-template-columns:64px minmax(0,1fr); gap:9px; align-items:center; padding:8px; border:1px solid var(--line); border-radius:10px; background:var(--surface); cursor:pointer; }.report-photo-option:has(input:checked) { border-color:var(--blue); box-shadow:0 0 0 2px rgba(32,86,214,.12); }.report-photo-option input { position:absolute; top:7px; left:7px; width:18px; min-height:18px; margin:0; accent-color:var(--blue); }.report-photo-option img { width:64px; height:58px; display:block; object-fit:cover; border-radius:7px; }.report-photo-option span,.report-photo-option strong,.report-photo-option small { min-width:0; display:block; }.report-photo-option strong { color:var(--navy); font-size:12px; }.report-photo-option small { margin-top:4px; overflow:hidden; color:var(--muted); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.report-images-only-form { grid-template-columns:1fr; }.report-images-only-form > .button { grid-column:1; }
.billing-ready-box { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 15px; color: #145f47; background: var(--green-soft); border-radius: 11px; }.billing-ready-box strong { font-size: 12px; }.billing-ready-box p { margin: 5px 0 0; font-size:12px; }.billing-ready-box .button-row { margin: 0; flex: 0 0 auto; }.ai-summary-preview { margin-top: 13px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; }.ai-summary-preview small { color: var(--blue); font-size:10px; font-weight: 900; letter-spacing: .08em; }.ai-summary-preview p { margin: 8px 0 0; color: var(--ink); font-size: 10px; line-height: 1.6; }
.invoice-filter { display: flex; gap: 6px; padding: 7px; margin-bottom: 16px; }.invoice-filter a { padding: 9px 13px; color: var(--muted); border-radius: 8px; font-size: 10px; font-weight: 750; }.invoice-filter a.active { color: #fff; background: var(--blue); }.invoice-grid { display: grid; grid-template-columns: repeat(3, minmax(280px, 1fr)); gap: 14px; }.invoice-card { display: block; transition: .15s ease; }.invoice-card:hover { transform: translateY(-2px); border-color: #a9bdec; }.invoice-card header, .invoice-card > div { display: flex; justify-content: space-between; align-items: center; gap: 12px; }.invoice-card header > strong { color: var(--navy); font-size: 11px; }.invoice-card h2 { margin: 20px 0 5px; color: var(--navy); font-size: 18px; }.invoice-card p { min-height: 32px; margin: 0 0 18px; color: var(--muted); font-size: 10px; line-height: 1.5; }.invoice-card > div { padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size:12px; }.invoice-card > div b { color: var(--blue); font-size: 12px; }.invoice-status { padding: 5px 7px; color: var(--muted); background: #edf0f5; border-radius: 6px; font-size:10px; font-weight: 900; text-transform: uppercase; }.invoice-status.status-draft { color: var(--orange); background: var(--orange-soft); }.invoice-status.status-final, .invoice-status.status-paid { color: var(--green); background: var(--green-soft); }
.invoice-detail-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, .5fr); gap: 16px; align-items: start; }.invoice-main, .invoice-detail-grid > aside { display: grid; gap: 16px; }.invoice-detail-grid > aside { position: sticky; top: 94px; }.invoice-table-wrap { overflow-x: auto; }.invoice-table { min-width: 760px; }.invoice-table td:nth-last-child(-n+3), .invoice-table th:nth-last-child(-n+3) { text-align: right; }.invoice-totals { display: flex; justify-content: flex-end; gap: 22px; padding-top: 18px; }.invoice-totals span { color: var(--muted); font-size:12px; }.invoice-totals strong { display: block; margin-top: 5px; color: var(--navy); font-size: 14px; }.invoice-totals span:last-child strong { color: var(--blue); font-size: 18px; }.invoice-ticket-list { display: grid; gap: 8px; }.invoice-ticket-list > div { display: grid; grid-template-columns: 130px minmax(0, 1fr) 85px auto; gap: 10px; align-items: center; padding: 11px; background: #f6f8fc; border-radius: 9px; }.invoice-ticket-list span, .invoice-ticket-list small { color: var(--muted); font-size:11px; }.invoice-ticket-list strong { color: var(--navy); font-size: 10px; }.invoice-ticket-list a { color: var(--blue); font-size:11px; font-weight: 800; }.invoice-meta-card span { display: flex; justify-content: space-between; padding: 9px 0; border-top: 1px solid var(--line); color: var(--muted); font-size:12px; }.invoice-meta-card h2 { margin: 0 0 16px; color: var(--navy); }.invoice-meta-card p { color: var(--muted); font-size: 10px; line-height: 1.5; }
html[data-theme="dark"] .contact-company-box, html[data-theme="dark"] .automatic-time-line, html[data-theme="dark"] .invoice-ticket-list > div, html[data-theme="dark"] .billing-locked, html[data-theme="dark"] .wv-unavailable { background: #273449; }
html[data-theme="dark"] .report-photo-picker { background:#273449; border-color:#52627e; }
@media (prefers-color-scheme: dark) { html:not([data-theme]) .contact-company-box, html:not([data-theme]) .automatic-time-line, html:not([data-theme]) .invoice-ticket-list > div, html:not([data-theme]) .billing-locked, html:not([data-theme]) .wv-unavailable { background: #273449; } }
@media (max-width: 1150px) { .settings-grid, .invoice-detail-grid { grid-template-columns: 1fr; }.invoice-grid { grid-template-columns: repeat(2, minmax(280px, 1fr)); }.invoice-detail-grid > aside { position: static; } }
@media (max-width: 760px) { .company-assignment-choice, .company-billing-grid, .invoice-item-add, .finish-ticket-form { grid-template-columns: 1fr; }.company-choice-divider { width: auto; height: 28px; border: 0; background: transparent; }.company-choice-card { min-height: 132px; }.company-assignment-actions, .contact-company-heading { align-items: stretch; flex-direction: column; }.company-assignment-actions .button { width: 100%; }.finish-warning, .finish-ticket-form > .button, .wv-unavailable, .report-photo-picker { grid-column: auto; }.report-photo-grid { grid-template-columns:1fr 1fr; }.automatic-time-line, .billing-ready-box { align-items: flex-start; flex-direction: column; }.billing-ready-box .button-row { margin-top: 10px; }.invoice-grid { grid-template-columns: 1fr; }.invoice-ticket-list > div { grid-template-columns: 1fr; }.invoice-totals { flex-direction: column; gap: 8px; }.invoice-filter { overflow-x: auto; }.invoice-filter a { flex: 0 0 auto; } }
@media (max-width: 480px) { .report-photo-grid { grid-template-columns:1fr; } }

/* Rechnungsprüfung und E-Mail-Versand */
.invoice-list-panel { padding: 8px 20px; }
.invoice-approval-table { min-width: 1080px; }
.invoice-approval-table td { padding-block: 17px; }
.invoice-customer-cell { display: grid; gap: 3px; min-width: 190px; }
.invoice-customer-cell strong { color: var(--blue); }
.invoice-customer-cell span { color: var(--navy); font-size: 12px; font-weight: 750; }
.invoice-customer-cell small { margin: 0; }
.invoice-email { color: var(--blue); font-size: 11px; font-weight: 700; }
.invoice-email:hover { text-decoration: underline; }
.missing-email, .delivery-failed { display: block; margin-top: 5px; color: var(--red); font-size:12px; font-weight: 800; }
.invoice-amount { white-space: nowrap; font-size: 14px; }
.button-small { min-height: 36px; padding-inline: 12px; white-space: nowrap; font-size: 10px; }
.invoice-status.status-final { color: var(--orange); background: var(--orange-soft); }
.invoice-status.status-sent, .invoice-status.status-pending { color: var(--blue); background: var(--blue-soft); }
.invoice-status.status-failed, .delivery-failed { color: var(--red); background: var(--red-soft); }
.delivery-failed { width: fit-content; padding: 4px 6px; border-radius: 5px; }
.approval-panel { border-color: #9eb7ee; box-shadow: 0 12px 34px rgba(32,86,214,.10); }
.approval-panel .panel-heading { margin-bottom: 16px; }
.invoice-recipient-field{display:grid;gap:7px;padding:12px;border:1px solid color-mix(in srgb,var(--blue) 42%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--blue-soft) 48%,var(--surface))}.invoice-recipient-field>span{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--navy);font-size:12px;font-weight:850}.invoice-recipient-field>span em{padding:3px 7px;color:var(--blue);background:var(--surface);border:1px solid color-mix(in srgb,var(--blue) 22%,var(--line));border-radius:999px;font-size:9px;font-style:normal;font-weight:900;text-transform:uppercase}.invoice-recipient-field input{min-height:47px;background:var(--surface);font-size:14px}.invoice-recipient-field small{line-height:1.45}.invoice-resend-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.mail-attachment-note { display: grid; gap: 7px; padding: 13px; color: #405174; background: var(--blue-soft); border-radius: 10px; }
.mail-attachment-note strong { color: var(--blue); font-size: 10px; }
.mail-attachment-note span { position: relative; padding-left: 17px; font-size:12px; }
.mail-attachment-note span:before { content: "PDF"; position: absolute; left: 0; top: 1px; color: var(--red); font-size:10px; font-weight: 900; }
.mail-attachment-note span:last-child:before { content: "✓"; color: var(--green); font-size:12px; }
.invoice-sequence-note { display: grid; gap: 5px; padding: 12px; color: #405174; background: var(--green-soft); border: 1px solid #b7dfd0; border-radius: 10px; }.invoice-sequence-note strong { color: var(--green); font-size: 10px; }.invoice-sequence-note span { font-size:12px; line-height: 1.5; }
.technician-wait-card { border-color: #ecd0ad; background: linear-gradient(145deg, var(--surface), var(--orange-soft)); }
.technician-wait-card h2, .invoice-sent-card h2 { margin: 0 0 9px; color: var(--navy); }
.technician-wait-card p:last-child, .invoice-sent-card p:last-child { margin-bottom: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.invoice-sent-card { border-color: #a5dbc7; background: linear-gradient(145deg, var(--surface), var(--green-soft)); }
.delivery-list { display: grid; gap: 8px; }
.delivery-entry { display: grid; grid-template-columns: 105px minmax(0, 1fr) 150px; gap: 13px; align-items: start; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: #f8faff; }
.delivery-entry > div > strong, .delivery-entry > div > small { display: block; }
.delivery-entry > div > strong { color: var(--navy); font-size: 10px; }
.delivery-entry > div > small { margin-top: 4px; color: var(--muted); font-size:11px; }
.delivery-entry p { margin: 7px 0 0; padding: 8px; color: #9c2734; background: var(--red-soft); border-radius: 6px; font-size:11px; line-height: 1.5; }
.delivery-meta { text-align: right; }
.mail-workflow { display: grid; gap: 8px; margin: 0 0 18px; padding: 0; list-style: none; counter-reset: mail-step; }
.mail-workflow li { position: relative; min-height: 54px; padding: 11px 11px 11px 49px; background: #f5f7fb; border-radius: 10px; counter-increment: mail-step; }
.mail-workflow li:before { content: counter(mail-step); position: absolute; left: 12px; top: 11px; width: 26px; height: 26px; display: grid; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 8px; font-size: 10px; font-weight: 900; }
.mail-workflow strong, .mail-workflow span { display: block; }
.mail-workflow strong { color: var(--navy); font-size: 10px; }
.mail-workflow span { margin-top: 4px; color: var(--muted); font-size:11px; line-height: 1.45; }
html[data-theme="dark"] .delivery-entry, html[data-theme="dark"] .mail-workflow li { background: #273449; }
@media (prefers-color-scheme: dark) { html:not([data-theme]) .delivery-entry, html:not([data-theme]) .mail-workflow li { background: #273449; } }
@media (max-width: 760px) {
  .invoice-list-panel { padding: 4px 12px; }
  .delivery-entry { grid-template-columns: 1fr; }
  .delivery-meta { text-align: left; }
}

/* Laufende Ticketkosten, Monatsumsatz, Zahlung und sichere Testdaten-Löschung */
.ticket-heading-tools { display: flex; align-items: stretch; gap: 10px; }.ticket-heading-tools > .button { align-self: stretch; white-space: nowrap; }.monthly-revenue-counter { position: relative; min-width: 430px; display: flex; align-items: center; gap: 22px; overflow: hidden; padding: 12px 42px 12px 16px; color: #fff; background: linear-gradient(125deg, #14233f, #1e4cae); border-radius: 14px; box-shadow: 0 10px 26px rgba(20,35,63,.18); }.monthly-revenue-counter > span { padding-right: 20px; border-right: 1px solid rgba(255,255,255,.24); }.monthly-revenue-counter small, .monthly-revenue-counter strong, .monthly-revenue-counter b { display: block; }.monthly-revenue-counter small { color: #bfcceb; font-size:11px; }.monthly-revenue-counter strong { margin-top: 4px; font-size: 20px; }.monthly-revenue-counter b { margin-bottom: 5px; font-size: 10px; }.monthly-revenue-counter i { position: absolute; right: 16px; top: 16px; width: 9px; height: 9px; background: #42d49c; border: 2px solid rgba(255,255,255,.7); border-radius: 50%; box-shadow: 0 0 0 4px rgba(66,212,156,.13); }
.ticket-cost-panel { border-color: #b7c9ef; }.ticket-cost-entry-form { display: grid; grid-template-columns: 130px minmax(260px, 1.2fr) 95px minmax(220px, .8fr) auto; gap: 9px; align-items: end; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }.ticket-cost-entry-form label { min-width: 0; }.ticket-cost-entry-form .button { min-height: 45px; white-space: nowrap; }.ticket-running-items { margin-top: 0; }.ticket-running-items em { display: block; margin-top: 4px; color: var(--muted); font-size:11px; font-style: normal; }.ticket-running-items p b { color: var(--navy); }.ticket-cost-hint { margin: 12px 0 0; color: var(--muted); font-size:12px; line-height: 1.5; }.ticket-cost-hint a { color: var(--blue); font-weight: 800; }
.danger-zone-card { border-color: #efbec4; background: linear-gradient(145deg, var(--surface), var(--red-soft)); }.danger-zone-card h2 { margin: 0 0 7px; color: var(--red); font-size: 16px; }.danger-zone-card p:not(.eyebrow) { margin: 0 0 13px; color: var(--muted); font-size:12px; line-height: 1.5; }
.payment-list-good { display: block; width: fit-content; margin-top: 5px; padding: 4px 6px; color: var(--green); background: var(--green-soft); border-radius: 5px; font-size:10px; font-weight: 900; }.invoice-row-actions { display: grid; gap: 6px; min-width: 130px; }.invoice-row-actions form, .invoice-row-actions .button { width: 100%; }.payment-confirm-form { margin: 14px 0 8px; padding-top: 13px; border-top: 1px solid rgba(19,133,93,.2); }.invoice-paid-card { border-color: #8dd0b7; background: linear-gradient(145deg, var(--surface), var(--green-soft)); }.invoice-paid-card h2 { margin: 0 0 9px; color: var(--green); }.invoice-paid-card p:not(.eyebrow) { color: var(--muted); font-size: 10px; line-height: 1.55; }
html[data-theme="dark"] .danger-zone-card, html[data-theme="dark"] .invoice-paid-card { background: var(--surface); }
@media (prefers-color-scheme: dark) { html:not([data-theme]) .danger-zone-card, html:not([data-theme]) .invoice-paid-card { background: var(--surface); } }
@media (max-width: 1180px) { .ticket-heading-tools { align-items: stretch; flex-direction: column; }.monthly-revenue-counter { min-width: 390px; }.ticket-cost-entry-form { grid-template-columns: 1fr 1fr; }.ticket-cost-entry-form .cost-catalog, .ticket-cost-entry-form .cost-details { grid-column: span 2; }.ticket-cost-entry-form .button { grid-column: span 2; } }
@media (max-width: 760px) { .ticket-heading-tools, .ticket-heading-tools > .button { width: 100%; }.monthly-revenue-counter { min-width: 0; width: 100%; align-items: flex-start; flex-direction: column; gap: 10px; }.monthly-revenue-counter > span { width: 100%; padding: 0 0 10px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.24); }.ticket-cost-entry-form { grid-template-columns: 1fr; }.ticket-cost-entry-form .cost-catalog, .ticket-cost-entry-form .cost-details, .ticket-cost-entry-form .button { grid-column: auto; }.ticket-running-items > div { align-items: flex-start; } }

/* Firmenverwaltung, Einstellungsmenü, Vertragsbindung und editierbare Ticketdokumentation */
.nav-dropdown { position: relative; height: 100%; display: flex; align-items: stretch; }
.nav-dropdown summary { height: 100%; display: flex; align-items: center; gap: 5px; padding: 0 13px; color: #596477; border-bottom: 3px solid transparent; cursor: pointer; list-style: none; font-size: 14px; font-weight: 650; user-select: none; }
.nav-dropdown summary::-webkit-details-marker { display: none; }.nav-dropdown summary:hover, .nav-dropdown summary.active { color: var(--blue); border-color: var(--blue); }.nav-dropdown summary span { font-size: 10px; transition: transform .15s ease; }.nav-dropdown[open] summary span { transform: rotate(180deg); }
.nav-dropdown > div { position: absolute; z-index: 50; top: calc(100% - 5px); right: 0; min-width: 210px; display: grid; overflow: hidden; padding: 7px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 18px 40px rgba(20,35,63,.18); }
.nav-dropdown > div a { height: auto; display: block; padding: 11px 12px; border: 0; border-radius: 8px; }.nav-dropdown > div a:hover, .nav-dropdown > div a.active { color: var(--blue); background: var(--blue-soft); border: 0; }

.companies-layout { display: grid; grid-template-columns: minmax(260px, .45fr) minmax(0, 1.55fr); gap: 16px; align-items: start; }.company-directory { padding: 0; overflow: hidden; position: sticky; top: 94px; max-height: calc(100vh - 112px); overflow-y: auto; }.company-directory-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 15px 17px; background: var(--surface); border-bottom: 1px solid var(--line); }.company-directory-head strong { color: var(--navy); font-size: 12px; }.company-directory-head small { color: var(--muted); font-size:11px; }.company-directory-row { display: flex; align-items: center; gap: 11px; padding: 12px 14px; border-bottom: 1px solid var(--line); border-left: 4px solid transparent; }.company-directory-row:hover, .company-directory-row.selected { background: #f6f8fc; border-left-color: var(--blue); }.company-directory-row > span, .company-member-list a > span { width: 35px; height: 35px; display: grid; place-items: center; flex: 0 0 auto; color: #fff; background: var(--blue); border-radius: 10px; font-weight: 850; }.company-directory-row div { min-width: 0; }.company-directory-row strong, .company-directory-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.company-directory-row strong { color: var(--navy); font-size: 11px; }.company-directory-row small { margin-top: 4px; color: var(--muted); font-size:11px; }
.company-management-main { display: grid; gap: 16px; }.company-master-form { border-color: #b9c9ef; }.company-master-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }.company-master-grid label { min-width: 0; }.company-master-grid textarea { min-height: 122px; }.company-master-actions { display: flex; gap: 9px; align-items: center; }.company-related-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.company-member-list, .company-contract-list { display: grid; gap: 8px; }.company-member-list a, .company-contract-list a { display: flex; align-items: center; gap: 11px; padding: 11px; color: var(--ink); background: #f7f9fc; border: 1px solid var(--line); border-radius: 10px; }.company-member-list a:hover, .company-contract-list a:hover { border-color: #9db5eb; }.company-member-list a.blacklisted { background: var(--red-soft); border-color: #eaa2aa; }.company-member-list a div, .company-contract-list a div { min-width: 0; flex: 1; }.company-member-list strong, .company-member-list small, .company-contract-list strong, .company-contract-list small { display: block; }.company-member-list strong, .company-contract-list strong { color: var(--navy); font-size: 10px; }.company-member-list small, .company-contract-list small { margin-top: 4px; color: var(--muted); font-size:11px; line-height: 1.4; }.company-member-list em { color: var(--blue); font-size:10px; font-style: normal; font-weight: 850; text-transform: uppercase; }

.contract-binding-fact { grid-column: 1 / -1; padding: 11px 12px; color: #254d9e; background: var(--blue-soft); border-radius: 9px; }.contract-binding-fact em { display: block; margin-top: 4px; color: var(--muted); font-size:10px; font-style: normal; }.contract-binding-card { display: grid; gap: 5px; margin: 14px 0; padding: 13px; color: #254d9e; background: var(--blue-soft); border: 1px solid #b9c9ef; border-radius: 10px; }.contract-binding-card small { font-size:10px; font-weight: 900; letter-spacing: .08em; }.contract-binding-card strong { color: var(--navy); font-size: 20px; }.contract-binding-card span { color: var(--muted); font-size:11px; line-height: 1.4; }

.editable-entry-list > .time-entry-card { display: block; padding: 0; overflow: hidden; }.time-entry-summary { display: grid; grid-template-columns: 75px 70px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 11px; }.entry-editor { border-top: 1px solid var(--line); }.entry-editor > summary { padding: 8px 11px; color: var(--blue); cursor: pointer; font-size:11px; font-weight: 850; list-style-position: inside; }.entry-editor[open] > summary { background: var(--blue-soft); }.entry-edit-form { display: grid; grid-template-columns: 150px 110px; gap: 9px; padding: 12px; background: rgba(255,255,255,.55); }.entry-edit-form label { min-width: 0; }.entry-edit-actions { display: flex; gap: 8px; }.entry-delete-form { padding: 0 12px 12px; background: rgba(255,255,255,.55); }.note-editor { margin-top: 12px; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }.note-editor form { padding: 12px; }.note-editor .entry-delete-form { padding-top: 0; }.ticket-note .note-editor textarea { min-height: 110px; }
.ticket-chat-form { display: grid; gap: 10px; }.ticket-chat-form .prompt-preview { min-height: 250px; }.chat-status { align-self: center; color: var(--muted); font-size:12px; }.ticket-chat-answer { margin-top: 14px; overflow: hidden; background: var(--surface); border: 1px solid #9eb7ee; border-radius: 12px; }.ticket-chat-answer[hidden] { display: none; }.ticket-chat-answer header { display: flex; align-items: center; gap: 10px; padding: 12px 14px; color: #fff; background: linear-gradient(120deg, #17356e, #275fd7); }.ticket-chat-answer header > span { font-size: 18px; }.ticket-chat-answer header small, .ticket-chat-answer header strong { display: block; }.ticket-chat-answer header small { color: #c7d6f7; font-size:10px; font-weight: 900; letter-spacing: .08em; }.ticket-chat-answer header strong { margin-top: 3px; font-size:12px; }.ticket-chat-answer > .rich-text { padding: 17px; white-space: pre-wrap; line-height: 1.65; }

html[data-theme="dark"] .nav-dropdown > div, html[data-theme="dark"] .company-directory-head, html[data-theme="dark"] .company-member-list a, html[data-theme="dark"] .company-contract-list a, html[data-theme="dark"] .entry-edit-form, html[data-theme="dark"] .entry-delete-form { background: var(--surface); }
html[data-theme="dark"] .company-directory-row:hover, html[data-theme="dark"] .company-directory-row.selected { background: #273449; }
@media (prefers-color-scheme: dark) { html:not([data-theme]) .nav-dropdown > div, html:not([data-theme]) .company-directory-head, html:not([data-theme]) .company-member-list a, html:not([data-theme]) .company-contract-list a, html:not([data-theme]) .entry-edit-form, html:not([data-theme]) .entry-delete-form { background: var(--surface); } html:not([data-theme]) .company-directory-row:hover, html:not([data-theme]) .company-directory-row.selected { background: #273449; } }
@media (max-width: 1080px) { .companies-layout { grid-template-columns: 1fr; }.company-directory { position: static; max-height: 360px; }.company-related-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .nav-dropdown > div { position: fixed; top: 70px; right: 12px; }.company-master-grid { grid-template-columns: 1fr; }.company-master-grid .span-2 { grid-column: auto; }.company-master-actions { align-items: stretch; flex-direction: column; }.time-entry-summary { grid-template-columns: 65px 55px 1fr; }.time-entry-summary small { grid-column: 1 / -1; text-align: left; }.entry-edit-form { grid-template-columns: 1fr; }.entry-edit-form .span-2 { grid-column: auto; }.ticket-chat-form .button-row { align-items: stretch; flex-direction: column; } }

/* WV-Kundenportal, Ticket-Eingang und sichere Firmenlöschung */
.ticket-source-badge { display: inline-flex; align-items: center; min-height: 22px; padding: 4px 7px; color: #244caa; background: var(--blue-soft); border-radius: 6px; font-size:10px; font-weight: 900; letter-spacing: .04em; white-space: nowrap; }.ticket-source-badge.source-calendar { color: #fff; background: var(--violet); }.ticket-source-badge.source-customer_portal { color: #fff; background: var(--blue); }.ticket-source-badge.source-website { color: var(--violet); background: #f0ebff; }.ticket-source-badge.source-inbound_email { color: var(--green); background: var(--green-soft); }.ticket-card-top { flex-wrap: wrap; }.ticket-card-top .ticket-due { margin-left: auto; }

.company-member-entry { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #f7f9fc; }.company-member-entry.blacklisted { background: var(--red-soft); border-color: #eaa2aa; }.company-member-entry > a { border: 0; border-radius: 0; background: transparent; }.company-member-entry > a:hover { border-color: transparent; background: var(--blue-soft); }.company-portal-action { display: flex; align-items: center; justify-content: flex-end; gap: 7px; padding: 8px 10px; border-top: 1px solid var(--line); }.portal-access-state { margin-right: auto; color: var(--muted); font-size:11px; font-weight: 750; }.portal-access-state.active { color: var(--green); }.portal-access-state.unavailable { color: var(--orange); }.company-danger-zone { border-color: #efbec4; background: linear-gradient(145deg, var(--surface), rgba(196,55,69,.035)); }.company-danger-zone h2 { color: var(--red); }.company-delete-form { display: grid; grid-template-columns: minmax(280px, 1fr) auto; gap: 12px; align-items: end; }.company-danger-zone > small { display: block; margin-top: 10px; color: var(--muted); font-size:12px; }
.company-portal-bulk { display: flex; align-items: center; gap: 10px; margin: -4px 0 12px; padding: 10px; background: var(--blue-soft); border-radius: 10px; }.company-portal-bulk small { color: var(--muted); font-size:11px; line-height: 1.4; }
.contact-portal-box { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 15px; padding: 14px; background: linear-gradient(135deg, var(--blue-soft), var(--surface)); border: 1px solid #b9c9ef; border-radius: 11px; }.contact-portal-box > div { min-width: 0; }.contact-portal-box small, .contact-portal-box strong { display: block; }.contact-portal-box small { color: var(--blue); font-size:10px; font-weight: 900; letter-spacing: .1em; }.contact-portal-box strong { margin-top: 4px; color: var(--navy); font-size: 11px; }.contact-portal-box p { margin: 5px 0 0; color: var(--muted); font-size:11px; line-height: 1.45; }.contact-portal-box form { display: flex; flex: 0 0 auto; gap: 7px; }

.inbound-settings-panel, .website-intake-panel { margin-top: 16px; }.switch-row { grid-template-columns: auto 1fr; align-items: center; padding: 13px; background: var(--blue-soft); border-radius: 11px; }.switch-row input { width: 20px; min-height: 20px; }.switch-row strong, .switch-row small { display: block; }.switch-row small { margin-top: 4px; }.inbound-test-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; }.website-endpoint { display: grid; gap: 7px; padding: 15px; background: #13213b; border-radius: 11px; color: #dce7ff; }.website-endpoint > small { color: #8fb1ff; font-size:11px; font-weight: 900; letter-spacing: .12em; }.website-endpoint > code { color: #fff; font-size: 13px; overflow-wrap: anywhere; }.website-endpoint > span { color: #b8c8e5; font-size:12px; line-height: 1.5; }.website-endpoint > span code { color: #fff; }.website-secret-action { display: flex; align-items: center; gap: 12px; margin-top: 14px; }.website-secret-action small { color: var(--muted); font-size:12px; line-height: 1.45; }
/* v1.8.14 · STRATO-Rechnungsautomatik */
.inbound-invoice-automation{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);gap:12px;align-items:end;margin:14px 0}.inbound-invoice-automation .switch-row{margin:0}.source-pill.source-email{display:inline-flex!important;width:max-content;margin-top:6px;color:#12624a;background:#dff6eb}

.customer-portal-body { min-height: 100vh; background: radial-gradient(circle at 15% 5%, rgba(37,94,234,.19), transparent 33%), linear-gradient(145deg, #0f1929, #172640); color: #eef4ff; }.customer-brand { display: flex; align-items: center; gap: 12px; }.customer-brand .brand-mark { width: 46px; height: 46px; font-size: 21px; }.customer-brand strong, .customer-brand small { display: block; }.customer-brand strong { color: #fff; font-size: 23px; }.customer-brand small { margin-top: 3px; color: #b8c8e5; font-size: 11px; }.customer-auth-shell { width: min(540px, calc(100% - 30px)); margin: 0 auto; padding: 9vh 0 45px; }.customer-auth-shell > .customer-brand { justify-content: center; margin-bottom: 25px; }.customer-auth-card { padding: 32px; }.customer-auth-card h1 { margin: 5px 0 10px; color: var(--navy); font-size: 31px; }.customer-auth-card > p:not(.eyebrow) { margin: 0 0 22px; color: var(--muted); line-height: 1.55; }.customer-auth-card .button { width: 100%; }.customer-security-note { display: block; margin-top: 15px; color: var(--muted); font-size: 10px; text-align: center; }.customer-login-sent { padding: 18px 0 24px; text-align: center; }.customer-login-sent > span { width: 55px; height: 55px; display: grid; place-items: center; margin: 0 auto 12px; color: var(--green); background: var(--green-soft); border-radius: 50%; font-size: 24px; }.customer-login-sent h2 { margin: 0; color: var(--navy); }.customer-login-sent p { color: var(--muted); line-height: 1.55; }.customer-help { color: #b8c8e5; font-size: 11px; text-align: center; }.customer-help a { color: #fff; font-weight: 750; }
.customer-portal-topbar { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 32px; background: rgba(10,18,31,.76); border-bottom: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(12px); }.customer-portal-topbar .button-secondary { color: #fff; background: transparent; border-color: rgba(255,255,255,.35); }.customer-ticket-shell { width: min(1000px, calc(100% - 34px)); margin: 0 auto; padding: 42px 0 60px; }.customer-ticket-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-bottom: 22px; }.customer-ticket-heading h1 { margin: 5px 0 7px; color: #fff; font-size: clamp(31px, 5vw, 47px); }.customer-ticket-heading p:not(.eyebrow) { margin: 0; color: #b8c8e5; }.customer-ticket-heading aside { min-width: 235px; display: grid; gap: 4px; padding: 13px 15px; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.14); border-radius: 12px; }.customer-ticket-heading aside small { color: #8fb1ff; font-size:11px; font-weight: 900; letter-spacing: .1em; }.customer-ticket-heading aside strong { color: #fff; }.customer-ticket-heading aside span { color: #b8c8e5; font-size: 10px; }.customer-ticket-card { padding: 30px; }.customer-ticket-form { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }.customer-ticket-submit { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 17px; border-top: 1px solid var(--line); }.customer-ticket-submit strong, .customer-ticket-submit small { display: block; }.customer-ticket-submit strong { color: var(--green); font-size: 12px; }.customer-ticket-submit small { margin-top: 4px; color: var(--muted); font-size:12px; }.customer-privacy { color: #aebfdc; font-size: 10px; text-align: center; }
.customer-portal-grid { display: grid; grid-template-columns: minmax(270px, .52fr) minmax(0, 1fr); gap: 18px; align-items: start; }.customer-own-tickets { display: grid; gap: 9px; padding: 20px; }.customer-own-tickets .panel-heading { margin-bottom: 3px; }.customer-own-ticket { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--canvas); }.customer-own-ticket span { min-width: 0; }.customer-own-ticket small, .customer-own-ticket strong, .customer-own-ticket em { display: block; }.customer-own-ticket small { color: var(--blue); font-size:11px; font-weight: 850; }.customer-own-ticket strong { margin-top: 4px; overflow: hidden; color: var(--navy); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.customer-own-ticket em { margin-top: 5px; overflow: hidden; color: var(--muted); font-size:11px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }.customer-own-ticket .invoice-status { align-self: start; }.customer-own-ticket .status-new { color: var(--blue); background: var(--blue-soft); }.customer-own-ticket .status-in_progress { color: var(--orange); background: var(--orange-soft); }.customer-own-ticket .status-waiting { color: var(--violet); background: #f0ebff; }.customer-own-ticket .status-completed { color: var(--green); background: var(--green-soft); }.customer-portal-main { min-width: 0; }.customer-portal-main .customer-ticket-card { margin: 0; }
.customer-own-ticket { color: inherit; text-decoration: none; }.customer-own-ticket:hover, .customer-own-ticket.selected { border-color: #81a3ef; background: var(--blue-soft); box-shadow: 0 6px 18px rgba(32,86,214,.10); }.customer-ticket-history { margin-bottom: 14px; padding: 24px; scroll-margin-top: 85px; }.customer-history-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 15px; border-bottom: 1px solid var(--line); }.customer-history-heading h2 { margin: 4px 0 5px; color: var(--navy); font-size: 20px; }.customer-history-heading small { color: var(--muted); font-size:12px; }.customer-history-heading > div:last-child { display: grid; justify-items: end; gap: 9px; }.customer-history-heading a { color: var(--blue); font-size:12px; font-weight: 850; }.customer-history-list { display: grid; gap: 10px; margin-top: 15px; }.customer-history-entry { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 10px; align-items: start; }.customer-history-entry > span { width: 34px; height: 34px; display: grid; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 10px; font-size: 11px; font-weight: 900; }.customer-history-entry.outbound > span { color: #fff; background: var(--blue); }.customer-history-entry.status > span { color: var(--green); background: var(--green-soft); }.customer-history-entry > div { min-width: 0; padding: 11px 13px; background: var(--canvas); border: 1px solid var(--line); border-radius: 11px; }.customer-history-entry.outbound > div { background: var(--blue-soft); border-color: #afc3ee; }.customer-history-entry header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.customer-history-entry strong { color: var(--navy); font-size: 10px; }.customer-history-entry time { color: var(--muted); font-size:11px; white-space: nowrap; }.customer-history-entry p { margin: 7px 0 0; color: var(--ink); font-size: 10px; line-height: 1.55; overflow-wrap: anywhere; }.customer-history-note { margin: 14px 0 0; padding: 10px 12px; color: var(--muted); background: var(--canvas); border-radius: 9px; font-size:11px; line-height: 1.45; }
html[data-theme="dark"] .company-member-entry { background: var(--surface); }html[data-theme="dark"] .customer-auth-card, html[data-theme="dark"] .customer-ticket-card { background: #172131; }
html[data-theme="dark"] .customer-ticket-history { background: #172131; }html[data-theme="dark"] .customer-history-entry > div, html[data-theme="dark"] .customer-history-note { background: #111927; }
@media (prefers-color-scheme: dark) { html:not([data-theme]) .company-member-entry { background: var(--surface); } html:not([data-theme]) .customer-auth-card, html:not([data-theme]) .customer-ticket-card, html:not([data-theme]) .customer-ticket-history { background: #172131; } html:not([data-theme]) .customer-history-entry > div, html:not([data-theme]) .customer-history-note { background: #111927; } }
@media (max-width: 760px) { .company-portal-action, .company-portal-bulk { align-items: stretch; flex-direction: column; }.company-delete-form { grid-template-columns: 1fr; }.contact-portal-box { align-items: stretch; flex-direction: column; }.contact-portal-box form { flex-direction: column; }.website-secret-action { align-items: stretch; flex-direction: column; }.inbound-config-grid,.inbound-invoice-automation { grid-template-columns: 1fr; }.inbound-config-grid .span-2 { grid-column: auto; }.customer-portal-topbar { padding: 12px 16px; }.customer-brand strong { font-size: 18px; }.customer-ticket-heading { align-items: stretch; flex-direction: column; }.customer-ticket-heading aside { min-width: 0; }.customer-portal-grid { grid-template-columns: 1fr; }.customer-own-tickets { order: 2; }.customer-portal-main { order: 1; }.customer-ticket-form { grid-template-columns: 1fr; }.customer-ticket-form .span-2 { grid-column: auto; }.customer-ticket-submit { align-items: stretch; flex-direction: column; }.customer-ticket-submit .button { width: 100%; } }
@media (min-width: 761px) and (max-width: 1400px) { .customer-portal-topbar { min-height: 68px; padding: 10px 20px; }.customer-portal-topbar .brand-mark { width: 40px; height: 40px; }.customer-ticket-shell { width: calc(100% - 24px); padding: 22px 0 40px; }.customer-ticket-heading { margin-bottom: 16px; }.customer-ticket-heading h1 { font-size: 35px; }.customer-ticket-heading p:not(.eyebrow) { font-size: 12px; }.customer-portal-grid { grid-template-columns: minmax(285px, .55fr) minmax(0, 1fr); gap: 12px; }.customer-own-tickets { padding: 17px; }.customer-ticket-card, .customer-ticket-history { padding: 22px; }.customer-ticket-form { gap: 13px; }.customer-portal-body input, .customer-portal-body select { min-height: 50px; font-size: 13px; }.customer-portal-body textarea { min-height: 145px; font-size: 13px; line-height: 1.5; }.customer-portal-body .button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }.customer-portal-body label { font-size: 11px; }.customer-auth-shell { width: min(620px, calc(100% - 34px)); padding-top: 6vh; }.customer-auth-card { padding: 30px; }.customer-own-ticket { min-height: 70px; padding: 13px; }.customer-own-ticket strong { font-size: 12px; }.customer-history-list { max-height: 390px; overflow-y: auto; padding-right: 4px; } }
@media (min-width: 761px) and (max-width: 1100px) and (orientation: portrait) { .customer-portal-grid { grid-template-columns: 1fr; }.customer-own-tickets { order: 2; }.customer-portal-main { order: 1; }.customer-ticket-heading { align-items: stretch; flex-direction: column; }.customer-ticket-heading aside { min-width: 0; }.customer-ticket-form { grid-template-columns: 1fr 1fr; } }
/* v0.8 operations, communication and flexible material entries */
.ticket-cost-compose-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.ticket-cost-entry-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--panel) 86%,var(--accent) 4%)}.ticket-cost-entry-form header{grid-column:1/-1;display:flex;gap:10px;align-items:center}.ticket-cost-entry-form header>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--accent);color:#fff;font-size:20px}.ticket-cost-entry-form header div{display:flex;flex-direction:column}.ticket-cost-entry-form header small{color:var(--muted)}.ticket-cost-entry-form label{min-width:0}.ticket-cost-entry-form .cost-catalog,.ticket-cost-entry-form .cost-details,.ticket-cost-entry-form button{grid-column:1/-1}.ticket-cost-entry-form.free-entry{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.ticket-cost-hint{margin-top:12px;color:var(--muted);font-size:13px}
.ticket-communication-panel,.ticket-files-panel{overflow:hidden}.ticket-mail-thread{display:grid;gap:10px;max-height:560px;overflow:auto;margin:14px 0}.ticket-mail-message{max-width:88%;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.ticket-mail-message.outbound{justify-self:end;background:color-mix(in srgb,var(--accent) 14%,var(--panel));border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.ticket-mail-message header{display:flex;align-items:center;gap:9px}.ticket-mail-message header span{font-size:10px;font-weight:900;letter-spacing:.09em;color:var(--accent)}.ticket-mail-message time{margin-left:auto;color:var(--muted);font-size:11px}.ticket-mail-message>small,.ticket-mail-message>em{display:block;color:var(--muted);margin-top:5px}.ticket-mail-message p{line-height:1.55;white-space:normal}.ticket-reply-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:16px;border-top:1px solid var(--border)}.ticket-file-list{display:grid;gap:8px}.ticket-file-list a{display:grid;grid-template-columns:34px 1fr;align-items:center;padding:11px;border:1px solid var(--border);border-radius:12px;text-decoration:none;color:inherit}.ticket-file-list a>span{grid-row:1/3;display:grid;place-items:center}.ticket-file-list small{color:var(--muted)}.ticket-upload-form{display:flex;align-items:end;gap:12px;margin-top:14px}.ticket-upload-form label{flex:1}
/* v1.7.24 · direkte E-Mail-Antworten im Ticket */
.ticket-mail-message:target{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.ticket-bulk-toolbar{display:flex;align-items:center;gap:16px;margin:12px 0;padding:12px 16px;border:1px solid color-mix(in srgb,#e5484d 35%,var(--border));border-radius:14px;background:color-mix(in srgb,#e5484d 7%,var(--panel))}.ticket-bulk-toolbar span{display:flex;flex-direction:column;margin-right:auto}.ticket-bulk-toolbar small{color:var(--muted)}.ticket-card{position:relative}.ticket-bulk-check{position:absolute;top:10px;right:10px;z-index:4;display:flex;align-items:center;gap:5px;padding:5px 7px;border-radius:8px;background:color-mix(in srgb,var(--panel) 92%,transparent);font-size:10px;font-weight:800;box-shadow:0 2px 8px #0002}.ticket-bulk-check input{width:auto;margin:0}.ticket-card.blacklisted .ticket-bulk-check,.ticket-card.home-priority .ticket-bulk-check{top:38px}
.header-search input{width:120px;padding:8px 10px;border-radius:9px}.notification-menu{position:relative}.notification-menu>summary{position:relative;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border);border-radius:10px;cursor:pointer;list-style:none;font-size:22px}.notification-menu>summary::-webkit-details-marker{display:none}.notification-menu>summary b{position:absolute;right:-6px;top:-7px;min-width:18px;padding:2px 5px;border-radius:10px;background:#e5484d;color:#fff;font-size:10px}.notification-menu>div{position:absolute;right:0;top:46px;z-index:30;width:min(390px,90vw);max-height:520px;overflow:auto;padding:10px;border:1px solid var(--border);border-radius:14px;background:var(--panel);box-shadow:0 16px 50px #0005}.notification-menu header{display:flex;justify-content:space-between;padding:8px}.notification-item button{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:11px;border:0;border-radius:10px;background:transparent;color:inherit;text-align:left;cursor:pointer}.notification-item.unread button{background:color-mix(in srgb,var(--accent) 12%,transparent)}.notification-item span,.notification-item small{color:var(--muted)}
.global-search-page{max-width:1000px}.global-search-large{display:flex;gap:10px}.global-search-large input{flex:1;font-size:17px}.global-result-list{display:grid;gap:8px;margin-top:18px}.global-result-list>a{display:grid;grid-template-columns:90px 1fr auto;gap:4px 12px;align-items:center;padding:13px;border:1px solid var(--border);border-radius:12px;color:inherit;text-decoration:none}.global-result-list>a>span{grid-row:1/3;color:var(--accent);font-size:11px;font-weight:900;text-transform:uppercase}.global-result-list>a>small{color:var(--muted)}.global-result-list>a>b{grid-column:3;grid-row:1/3}.report-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:18px}.report-table{overflow:auto}.report-table table{width:100%;border-collapse:collapse}.report-table th,.report-table td{padding:10px;border-bottom:1px solid var(--border);text-align:left}.report-ranking{display:grid;gap:7px}.report-ranking>div{display:grid;grid-template-columns:1fr auto;gap:3px;padding:10px;border-bottom:1px solid var(--border)}.report-ranking span{color:var(--muted);font-size:12px}.report-ranking b{grid-column:2;grid-row:1/3}.recurring-layout{display:grid;grid-template-columns:1.5fr .8fr;gap:18px}.recurring-list{display:grid;gap:10px}.recurring-list>div{display:flex;gap:12px;align-items:center;padding:13px;border:1px solid var(--border);border-radius:12px}.recurring-list span{display:flex;flex:1;flex-direction:column}.recurring-list small,.recurring-list em{color:var(--muted)}
.operations-grid{align-items:start}.backup-status,.inbound-baseline-note{margin:14px 0;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.inbound-baseline-note{display:flex;flex-direction:column;border-color:color-mix(in srgb,#31a36b 45%,var(--border));background:color-mix(in srgb,#31a36b 8%,var(--panel))}.inbound-baseline-note span{color:var(--muted)}.security-layout{max-width:760px}.totp-setup{display:grid;gap:10px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.totp-setup code,.recovery-code-list{display:block;padding:12px;border-radius:9px;background:#0c1422;color:#d9e6ff;word-break:break-all;white-space:pre-wrap}.invoice-item-editor{margin-top:7px}.invoice-item-editor form{display:grid;gap:7px;min-width:240px}.invoice-item-editor input{width:100%}
@media(max-width:1050px){.ticket-cost-compose-grid,.report-grid,.recurring-layout{grid-template-columns:1fr}.header-search{display:none}}@media(max-width:700px){.ticket-cost-entry-form,.ticket-reply-form{grid-template-columns:1fr}.ticket-cost-entry-form .span-2,.ticket-reply-form .span-2{grid-column:1}.ticket-upload-form,.ticket-bulk-toolbar{align-items:stretch;flex-direction:column}.ticket-mail-message{max-width:100%}.global-result-list>a{grid-template-columns:1fr auto}.global-result-list>a>span{grid-row:auto}.global-result-list>a>b{grid-column:2;grid-row:1/4}}

/* v0.9 kuratierte Knowledgebase und nachvollziehbare RAG-Quellen */
.knowledge-heading,.knowledge-detail-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.knowledge-heading>div,.knowledge-detail-heading>div{max-width:850px}.knowledge-heading p:not(.eyebrow),.knowledge-detail-heading p:not(.eyebrow){color:var(--muted);line-height:1.55}.knowledge-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.knowledge-stat{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;border:1px solid var(--border);border-radius:14px;background:var(--panel)}.knowledge-stat small{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.08em}.knowledge-stat strong{font-size:24px;color:var(--navy)}.knowledge-stat.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.knowledge-stat.active small{color:var(--accent)}
.knowledge-list-panel{padding:18px}.knowledge-search{display:flex;gap:10px;margin-bottom:20px}.knowledge-search label{flex:1}.knowledge-search input{width:100%}.knowledge-list{display:grid;gap:9px}.knowledge-list-item{display:grid;grid-template-columns:82px minmax(0,1fr) minmax(170px,.4fr);gap:14px;align-items:start;padding:15px;border:1px solid var(--border);border-radius:13px;background:var(--surface);transition:.15s ease}.knowledge-list-item:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));transform:translateY(-1px)}.knowledge-code{display:inline-flex;width:fit-content;padding:6px 8px;border-radius:8px;background:var(--blue-soft);color:var(--blue);font-size:11px;font-weight:900}.knowledge-list-item strong{display:block;color:var(--navy);font-size:15px}.knowledge-list-item p{margin:6px 0;color:var(--ink);font-size:12px;line-height:1.5}.knowledge-list-item small{color:var(--muted);font-size:10px}.knowledge-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.knowledge-tags span{display:inline-flex;padding:5px 7px;border-radius:999px;background:var(--blue-soft);color:var(--blue);font-size:12px;font-weight:750}.knowledge-tags em{width:100%;color:var(--orange);font-size:12px;font-style:normal;text-align:right}.knowledge-tags.large{justify-content:flex-start}.knowledge-tags.large span{font-size:10px}
.knowledge-duplicate-alert{display:flex;align-items:center;gap:18px;margin-bottom:18px;padding:16px 18px;border:1px solid #e7bd82;border-radius:14px;background:var(--orange-soft)}.knowledge-duplicate-alert strong{color:var(--orange)}.knowledge-duplicate-alert p{flex:1;margin:0;color:var(--ink);font-size:12px}.knowledge-duplicate-alert a{color:var(--blue);font-weight:800}.knowledge-detail-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,.65fr);gap:18px;align-items:start}.knowledge-article-fields,.knowledge-detail-side{display:grid;gap:14px}.knowledge-field{min-height:130px}.knowledge-field .rich-text{white-space:pre-wrap;line-height:1.65}.knowledge-unknown{color:var(--muted);font-style:italic}.knowledge-origin a{display:grid;gap:3px;margin-bottom:12px;padding:11px;border-radius:10px;background:var(--blue-soft)}.knowledge-origin a strong{color:var(--blue)}.knowledge-origin a span,.knowledge-origin>small{display:block;color:var(--muted);font-size:10px}.knowledge-origin>small+small{margin-top:5px}.knowledge-review-panel p:not(.eyebrow){color:var(--muted);font-size:11px;line-height:1.5}.button-column{display:grid;gap:8px}.button-column form,.button-column .button{width:100%}.knowledge-version-list{display:grid;gap:7px;margin-top:12px}.knowledge-version-list span{display:grid;grid-template-columns:35px 1fr;gap:7px;padding-top:7px;border-top:1px solid var(--border)}.knowledge-version-list b{color:var(--blue);font-size:10px}.knowledge-version-list small{color:var(--muted);font-size:12px;line-height:1.4}
.knowledge-form{display:grid;gap:16px}.knowledge-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.knowledge-form-grid label{min-width:0}.knowledge-form-grid textarea{min-height:120px}.knowledge-form-grid .span-2{grid-column:1/-1}.knowledge-form-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 18px;border:1px solid var(--border);border-radius:14px;background:var(--panel)}.knowledge-form-actions p{margin:0;color:var(--muted);font-size:11px}
.ticket-knowledge-card,.knowledge-generate-box{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.ticket-knowledge-card.status-suggested{border-color:#e7bd82;background:color-mix(in srgb,var(--orange-soft) 65%,var(--surface))}.ticket-knowledge-card.status-published{border-color:#8fd0b7;background:color-mix(in srgb,var(--green-soft) 65%,var(--surface))}.ticket-knowledge-card>div:first-child,.knowledge-generate-box>div{min-width:0;flex:1}.ticket-knowledge-card small,.ticket-knowledge-card strong{display:block}.ticket-knowledge-card small{color:var(--accent);font-size:12px;font-weight:900;letter-spacing:.07em}.ticket-knowledge-card strong{margin-top:5px;color:var(--navy);font-size:15px}.ticket-knowledge-card p,.knowledge-generate-box p{margin:6px 0;color:var(--muted);font-size:11px;line-height:1.5}.ticket-knowledge-card em{color:var(--orange);font-size:10px;font-style:normal;font-weight:750}.ticket-knowledge-card .button-row{flex:0 0 auto}.ticket-knowledge-card form{display:flex}.ticket-chat-sources{padding:14px 17px;border-top:1px solid var(--border);background:var(--blue-soft)}.ticket-chat-sources[hidden]{display:none}.ticket-chat-sources>small{color:var(--blue);font-size:12px;font-weight:900;letter-spacing:.08em}.ticket-chat-sources ul{display:grid;gap:6px;margin:9px 0 0;padding:0;list-style:none}.ticket-chat-sources a{color:var(--navy);font-size:11px;font-weight:800}.ticket-chat-sources a:hover{color:var(--blue)}
html[data-theme="dark"] .knowledge-stat,html[data-theme="dark"] .knowledge-list-item,html[data-theme="dark"] .ticket-knowledge-card,html[data-theme="dark"] .knowledge-generate-box{background:var(--panel)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .knowledge-stat,html:not([data-theme]) .knowledge-list-item,html:not([data-theme]) .ticket-knowledge-card,html:not([data-theme]) .knowledge-generate-box{background:var(--panel)}}
@media(max-width:980px){.knowledge-detail-grid{grid-template-columns:1fr}.knowledge-stats{grid-template-columns:1fr 1fr}.knowledge-list-item{grid-template-columns:75px 1fr}.knowledge-list-item>.knowledge-tags{grid-column:2;justify-content:flex-start}.knowledge-tags em{text-align:left}}
@media(max-width:700px){.knowledge-heading,.knowledge-detail-heading,.knowledge-duplicate-alert,.ticket-knowledge-card,.knowledge-generate-box,.knowledge-form-actions{align-items:stretch;flex-direction:column}.knowledge-stats,.knowledge-form-grid{grid-template-columns:1fr}.knowledge-form-grid .span-2{grid-column:auto}.knowledge-list-item{grid-template-columns:1fr}.knowledge-list-item>.knowledge-tags{grid-column:auto}.knowledge-search{flex-direction:column}.ticket-knowledge-card .button-row{align-items:stretch;flex-direction:column}.ticket-knowledge-card .button-row form,.ticket-knowledge-card .button-row .button{width:100%}}

/* v0.9.1 Außendienst-Kamera und geschützte Bildvorschau */
.ticket-file-list{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}.ticket-file-list a.ticket-photo-file{grid-template-columns:92px minmax(0,1fr);min-height:82px}.ticket-photo-file img{grid-row:1/3;width:78px;height:60px;object-fit:cover;border-radius:9px;background:var(--canvas)}
.ticket-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.ticket-camera-form,.ticket-upload-grid .ticket-upload-form{display:grid;grid-template-columns:1fr;align-content:start;gap:12px;margin:0;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.ticket-camera-form{border-color:color-mix(in srgb,var(--accent) 48%,var(--border));background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 8%,var(--surface)),var(--surface))}.ticket-camera-form header,.ticket-file-upload header{display:flex;align-items:center;gap:11px}.ticket-camera-form header>span,.ticket-file-upload header>span{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border-radius:11px;background:var(--blue-soft);color:var(--blue);font-size:20px}.ticket-camera-form header strong,.ticket-camera-form header small,.ticket-file-upload header strong,.ticket-file-upload header small{display:block}.ticket-camera-form header strong,.ticket-file-upload header strong{color:var(--navy);font-size:13px}.ticket-camera-form header small,.ticket-file-upload header small{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.4}.camera-trigger{position:relative;overflow:hidden;width:100%;min-height:48px}.camera-file-input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.camera-selection{display:grid;grid-template-columns:74px 1fr;gap:11px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:11px;background:var(--panel)}.camera-selection[hidden]{display:none}.camera-selection img{width:74px;height:58px;object-fit:cover;border-radius:8px;background:var(--canvas)}.camera-selection strong,.camera-selection small{display:block;overflow:hidden;text-overflow:ellipsis}.camera-selection strong{color:var(--navy);font-size:11px;white-space:nowrap}.camera-selection small{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.35}.ticket-file-upload label{margin-top:auto}.ticket-file-upload .button{width:100%;min-height:48px}
html[data-theme="dark"] .ticket-camera-form,html[data-theme="dark"] .ticket-upload-grid .ticket-upload-form{background:var(--panel)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .ticket-camera-form,html:not([data-theme]) .ticket-upload-grid .ticket-upload-form{background:var(--panel)}}
@media(max-width:900px){.ticket-upload-grid,.ticket-file-list{grid-template-columns:1fr}.ticket-camera-form .button,.ticket-file-upload .button{min-height:54px;font-size:14px}}

/* v1.1 freie Kundensuche, Schnellanlage und Arbeitszeit-Zuschläge */
.ticket-contact-results button[hidden]{display:none}
.ticket-contact-picker{display:grid;gap:12px;padding:16px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 5%,var(--surface)),var(--surface))}.ticket-contact-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.ticket-contact-heading strong,.ticket-contact-heading small{display:block}.ticket-contact-heading strong{color:var(--navy);font-size:13px}.ticket-contact-heading small{margin-top:3px;color:var(--muted);font-size:12px}.ticket-contact-existing{position:relative;display:grid;gap:10px}.ticket-contact-existing[hidden],.ticket-new-contact[hidden]{display:none}.ticket-contact-search input{min-height:54px;padding-left:15px;font-size:14px}.ticket-contact-picker.is-enhanced .ticket-contact-fallback{position:absolute!important;width:1px!important;height:1px!important;min-height:1px!important;margin:0!important;padding:0!important;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;opacity:0}.ticket-contact-results{position:absolute;top:78px;left:0;right:0;z-index:25;max-height:370px;overflow:auto;padding:7px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:12px;background:var(--panel);box-shadow:0 18px 45px #07132633}.ticket-contact-results[hidden]{display:none}.ticket-contact-results button{width:100%;display:grid;gap:4px;padding:11px 12px;border:0;border-radius:9px;background:transparent;color:var(--ink);cursor:pointer;text-align:left}.ticket-contact-results button:hover,.ticket-contact-results button.is-active{background:var(--blue-soft)}.ticket-contact-results button span{display:flex;align-items:center;gap:7px}.ticket-contact-results button strong{color:var(--navy);font-size:12px}.ticket-contact-results button i{padding:3px 6px;color:var(--violet);background:#f0ebff;border-radius:999px;font-size:10px;font-style:normal;font-weight:900}.ticket-contact-results button small{color:var(--muted);font-size:12px}.ticket-contact-selected{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid #a9c0f1;border-radius:11px;background:var(--blue-soft)}.ticket-contact-selected[hidden]{display:none}.ticket-contact-selected>span{width:31px;height:31px;display:grid;place-items:center;flex:0 0 auto;color:var(--blue);background:var(--panel);border-radius:9px;font-weight:900}.ticket-contact-selected strong,.ticket-contact-selected small{display:block}.ticket-contact-selected strong{color:var(--navy);font-size:12px}.ticket-contact-selected small{margin-top:3px;color:var(--muted);font-size:12px}.ticket-contact-empty{margin:0;padding:10px 12px;color:var(--orange);background:var(--orange-soft);border-radius:9px;font-size:10px}.ticket-contact-empty[hidden]{display:none}.ticket-new-contact{padding:16px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:12px;background:var(--panel)}.ticket-new-contact header strong,.ticket-new-contact header small{display:block}.ticket-new-contact header strong{color:var(--navy);font-size:14px}.ticket-new-contact header small{margin-top:4px;color:var(--muted);font-size:12px}.ticket-new-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.ticket-new-contact-grid label{min-width:0}
.time-surcharge-options{grid-column:1/-1;display:grid;grid-template-columns:minmax(145px,.55fr) minmax(270px,1fr) minmax(220px,1.2fr);gap:9px;align-items:stretch;margin:4px 0 0;padding:10px;border:1px solid var(--border);border-radius:11px;background:color-mix(in srgb,var(--accent) 4%,var(--surface))}.time-surcharge-options legend{padding:0 5px;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.time-surcharge-options label{display:flex;align-items:center;gap:9px;min-height:47px;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--panel);cursor:pointer}.time-surcharge-options input{width:19px;min-height:19px;margin:0;flex:0 0 auto;accent-color:var(--blue)}.time-surcharge-options label span,.time-surcharge-options label strong,.time-surcharge-options label small{display:block}.time-surcharge-options label strong{color:var(--navy);font-size:10px}.time-surcharge-options label small{margin-top:2px;color:var(--blue);font-size:12px;font-weight:900}.time-surcharge-options>p{align-self:center;margin:0;color:var(--muted);font-size:12px;line-height:1.45}.time-surcharge-options.compact{grid-template-columns:1fr 1fr}.time-surcharge-options.compact>p{display:none}.time-surcharge-badges{display:flex!important;flex-wrap:wrap;gap:5px;margin-top:6px}.time-entry-list .time-surcharge-badges b{display:inline-flex;padding:4px 6px;border-radius:999px;font-size:10px;font-weight:900}.time-surcharge-badges .home-onsite{color:#185d46;background:#e2f5ec}.time-surcharge-badges .express{color:#9a5700;background:var(--orange-soft)}.time-surcharge-badges .out-of-hours{color:#9d2230;background:var(--red-soft)}
html[data-theme="dark"] .ticket-contact-picker,html[data-theme="dark"] .ticket-contact-results,html[data-theme="dark"] .ticket-new-contact,html[data-theme="dark"] .time-surcharge-options,html[data-theme="dark"] .time-surcharge-options label{background:var(--panel)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .ticket-contact-picker,html:not([data-theme]) .ticket-contact-results,html:not([data-theme]) .ticket-new-contact,html:not([data-theme]) .time-surcharge-options,html:not([data-theme]) .time-surcharge-options label{background:var(--panel)}}
@media(max-width:900px){.time-surcharge-options{grid-template-columns:1fr 1fr}.time-surcharge-options>p{grid-column:1/-1}.ticket-contact-results{max-height:320px}}
@media(max-width:620px){.ticket-contact-heading{align-items:flex-start;flex-direction:column}.ticket-contact-heading .text-button{align-self:flex-start}.ticket-new-contact-grid,.time-surcharge-options,.time-surcharge-options.compact{grid-template-columns:1fr}.ticket-new-contact-grid .span-2,.time-surcharge-options>p{grid-column:auto}.ticket-contact-results{top:78px}}

/* v1.2 Kalendererstellung, Außendienst und Flottenverwaltung */
.calendar-create-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.65fr);gap:18px;align-items:start}.calendar-create-layout textarea,.fleet-overview-grid textarea{width:100%;padding:12px 13px;color:var(--ink);background:var(--panel);border:1px solid var(--border);border-radius:10px;outline:none;resize:vertical}.calendar-create-layout textarea:focus,.fleet-overview-grid textarea:focus{border-color:#7597eb;box-shadow:0 0 0 3px rgba(32,86,214,.11)}.calendar-all-day-toggle,.field-service-toggle{padding:13px;border:1px solid var(--border);border-radius:11px;background:var(--panel)}.calendar-all-day-toggle strong,.calendar-all-day-toggle small,.field-service-toggle strong,.field-service-toggle small{display:block}.field-service-fields{display:grid;gap:12px}.field-service-fields[hidden],[data-calendar-timed-fields][hidden],[data-calendar-all-day-fields][hidden]{display:none}.calendar-field-service-card{position:sticky;top:95px}.fleet-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;color:var(--blue);background:var(--blue-soft);font-size:19px;font-weight:900}.fleet-availability{margin:0;padding:11px 12px;color:var(--green);background:var(--green-soft);border-radius:9px;font-size:10px;font-weight:750;line-height:1.45}.fleet-availability.is-unavailable{color:var(--red);background:var(--red-soft)}.calendar-create-summary{display:grid;gap:5px;margin-top:10px;padding:15px;border-radius:12px;color:#fff;background:var(--navy)}.calendar-create-summary small{color:#a9b9d3}.calendar-create-summary strong{font-size:17px}.calendar-create-summary span{color:#c4cee0;font-size:10px;line-height:1.5}
.calendar-ticket-choice{display:grid;gap:12px;padding:15px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.calendar-ticket-choice>div{display:grid;gap:3px}.calendar-ticket-choice>div small{color:var(--muted)}.calendar-ticket-choice .check-label{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.calendar-company-assignment{padding:14px 15px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:12px;background:var(--blue-soft)}.calendar-company-assignment label{margin:0}.calendar-company-assignment small{display:block;margin-top:5px;color:var(--muted);line-height:1.45}
.fleet-overview-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.65fr);gap:18px;align-items:start}.fleet-overview-grid>aside{position:sticky;top:95px}.fleet-table{min-width:980px}.fleet-vehicle-main{display:flex;align-items:center;gap:11px;min-width:205px}.fleet-vehicle-main>div{min-width:0}.fleet-vehicle-photo{display:grid;place-items:center;flex:0 0 64px;width:64px;height:44px;overflow:hidden;border:1px solid var(--border);border-radius:9px;background:var(--panel);box-shadow:0 3px 10px rgba(15,35,70,.09)}.fleet-vehicle-photo img{width:100%;height:100%;object-fit:cover;transition:transform .18s ease}.fleet-vehicle-photo:hover img{transform:scale(1.06)}.fleet-vehicle-photo.is-placeholder{color:var(--blue);background:linear-gradient(135deg,var(--blue-soft),var(--panel));font-size:19px}.fleet-form-photo{display:block;width:100%;max-width:250px;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--border);border-radius:11px;background:var(--panel)}.fleet-form-photo img{width:100%;height:100%;object-fit:cover}.fleet-photo-remove{padding:10px 11px;border:1px solid var(--border);border-radius:9px;background:var(--panel)}.license-plate{display:inline-flex!important;padding:6px 9px;border:2px solid var(--navy);border-radius:6px;background:var(--panel);font-size:11px!important;letter-spacing:.06em}.fleet-actions-heading{text-align:right;padding-right:14px!important}.fleet-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:170px;padding-left:18px;white-space:nowrap}.fleet-row-actions form{display:flex}.fleet-bookings-panel{margin-top:18px}.compact-empty{min-height:190px}.fleet-booking-list{display:grid;gap:8px}.fleet-booking-list>div{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.fleet-booking-date strong,.fleet-booking-date small,.fleet-booking-list p strong,.fleet-booking-list p small{display:block}.fleet-booking-date strong{color:var(--blue);font-size:14px}.fleet-booking-date small,.fleet-booking-list p small{margin-top:4px;color:var(--muted);font-size:12px}.fleet-booking-list p{margin:0}.fleet-booking-list p strong{color:var(--navy);font-size:12px}
html[data-theme="dark"] .calendar-all-day-toggle,html[data-theme="dark"] .field-service-toggle,html[data-theme="dark"] .calendar-create-layout textarea,html[data-theme="dark"] .fleet-overview-grid textarea,html[data-theme="dark"] .license-plate,html[data-theme="dark"] .fleet-booking-list>div{background:var(--surface)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .calendar-all-day-toggle,html:not([data-theme]) .field-service-toggle,html:not([data-theme]) .calendar-create-layout textarea,html:not([data-theme]) .fleet-overview-grid textarea,html:not([data-theme]) .license-plate,html:not([data-theme]) .fleet-booking-list>div{background:var(--surface)}}
@media(max-width:1050px){.calendar-create-layout,.fleet-overview-grid{grid-template-columns:1fr}.calendar-field-service-card,.fleet-overview-grid>aside{position:static}}
.calendar-delete-form{display:grid;gap:7px;margin-top:10px;padding-top:12px;border-top:1px solid var(--border)}.calendar-delete-form small{color:var(--muted);font-size:11px;text-align:center}.route-settings-panel{margin-top:16px}.route-billing-example{display:grid;gap:6px;padding:16px;border-radius:12px;color:#fff;background:linear-gradient(145deg,var(--navy),#173364)}.route-billing-example small{color:#a9b9d3;font-size:11px;font-weight:850;letter-spacing:.12em}.route-billing-example strong{font-size:19px}.route-billing-example span{color:#c4cee0;font-size:11px}.route-billing-example b{color:#fff;font-size:12px}.route-charge-preview{display:grid;gap:5px;padding:12px;border-radius:10px;border:1px solid var(--border)}.route-charge-preview small{font-size:11px;font-weight:900;letter-spacing:.1em}.route-charge-preview strong{font-size:11px}.route-charge-preview span{font-size:12px;line-height:1.5}.route-charge-preview a{font-size:12px;font-weight:800}.route-charge-preview.is-ready{color:var(--green);background:var(--green-soft);border-color:#a5dbc7}.route-charge-preview.is-missing{color:var(--red);background:var(--red-soft);border-color:#efbec4}
@media(max-width:700px){.fleet-booking-list>div{grid-template-columns:1fr}.fleet-booking-list>div form{justify-self:start}.fleet-row-actions{align-items:flex-start;justify-content:flex-start;flex-direction:column;padding-left:0}}

/* v1.8.9 – mobiles, revisionsorientiertes Fahrtenbuch */
.logbook-page-heading .heading-actions{display:flex;gap:10px}.logbook-mobile-shell{max-width:760px;margin:0 auto 22px;padding:18px;border:1px solid var(--border);border-radius:22px;background:var(--surface);box-shadow:0 18px 46px rgba(12,36,78,.10)}.logbook-mobile-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.logbook-mobile-header h2{margin:2px 0 0;font-size:25px}.logbook-notification-toggle{padding:10px 13px;border:1px solid var(--border);border-radius:999px;color:var(--blue);background:var(--panel);font-size:12px;font-weight:800}.logbook-notification-toggle.is-enabled{color:var(--green);background:var(--green-soft)}.logbook-active-trip,.logbook-prefill-card{margin-bottom:16px;padding:16px;border:1px solid color-mix(in srgb,var(--blue) 25%,var(--border));border-radius:16px;background:var(--blue-soft)}.logbook-active-trip h3,.logbook-prefill-card h3{margin:5px 0 8px;color:var(--navy);font-size:20px}.logbook-active-trip p{margin:6px 0}.logbook-active-trip small{display:block;margin-top:8px;color:var(--muted)}.logbook-live-dot{color:var(--green);font-size:11px;font-weight:900;letter-spacing:.08em}.logbook-prefill-card dl{display:grid;gap:8px;margin:12px 0}.logbook-prefill-card dl div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px}.logbook-prefill-card dt{color:var(--muted);font-size:12px;font-weight:800}.logbook-prefill-card dd{margin:0;font-size:14px;font-weight:700}.logbook-prefill-card>a{color:var(--blue);font-size:12px;font-weight:800}.logbook-appointment-strip{display:flex;gap:9px;margin:0 -2px 16px;padding:2px 2px 6px;overflow-x:auto;scroll-snap-type:x proximity}.logbook-appointment-card{display:grid;flex:0 0 210px;gap:4px;padding:12px;border:1px solid var(--border);border-radius:13px;color:var(--ink);background:var(--panel);scroll-snap-align:start}.logbook-appointment-card.is-selected{border-color:var(--blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 18%,transparent)}.logbook-appointment-card span{color:var(--blue);font-size:11px;font-weight:850}.logbook-appointment-card strong{font-size:13px;line-height:1.3}.logbook-appointment-card small{color:var(--muted);font-size:11px}.logbook-action-form{display:grid;gap:14px}.logbook-action-form label{display:grid;gap:7px;color:var(--navy);font-size:13px;font-weight:800}.logbook-action-form input,.logbook-action-form select,.logbook-action-form textarea{width:100%;min-height:48px;padding:12px 13px;border:1px solid var(--border);border-radius:12px;color:var(--ink);background:var(--panel);font:inherit}.logbook-action-form textarea{min-height:72px;resize:vertical}.logbook-action-form input:focus,.logbook-action-form select:focus,.logbook-action-form textarea:focus{border-color:var(--blue);outline:0;box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 15%,transparent)}.logbook-big-field input{min-height:68px!important;font-size:27px!important;font-weight:900;font-variant-numeric:tabular-nums}.logbook-action-form label small{color:var(--muted);font-size:11px;font-weight:550}.logbook-action-form [data-logbook-business-fields]{display:grid;gap:14px}.logbook-action-form [data-logbook-business-fields][hidden]{display:none}.logbook-ocr-status{margin:0;padding:11px 12px;border-radius:10px;color:var(--muted);background:var(--blue-soft);font-size:12px;line-height:1.45}.logbook-primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.logbook-camera-button,.logbook-submit-button{display:grid!important;place-items:center;align-content:center;min-height:116px!important;padding:14px!important;border:0!important;border-radius:17px!important;text-align:center;cursor:pointer}.logbook-camera-button{color:var(--blue)!important;background:var(--blue-soft)!important;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--blue) 25%,transparent)}.logbook-camera-button.has-photo{color:var(--green)!important;background:var(--green-soft)!important;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--green) 30%,transparent)}.logbook-submit-button{color:#fff;background:linear-gradient(135deg,#2056d6,#1672df);box-shadow:0 12px 28px rgba(32,86,214,.24)}.logbook-camera-button span,.logbook-submit-button span{font-size:26px}.logbook-camera-button strong,.logbook-submit-button strong{font-size:16px}.logbook-camera-button small,.logbook-submit-button small{color:inherit!important;opacity:.78}.logbook-camera-button input{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;opacity:0;pointer-events:none}.logbook-mobile-empty{min-height:250px}.logbook-history-panel{margin-top:20px}.logbook-filter-form{display:grid;grid-template-columns:minmax(190px,1fr) 150px 150px auto auto auto;gap:10px;align-items:end;margin-bottom:16px}.logbook-filter-form label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:800}.logbook-filter-form input,.logbook-filter-form select{min-height:42px;padding:9px 10px;border:1px solid var(--border);border-radius:10px;color:var(--ink);background:var(--panel)}.logbook-filter-form .text-link{align-self:center}.logbook-trip-list{display:grid;gap:7px}.logbook-trip-row{display:grid;grid-template-columns:58px minmax(0,1fr) 180px;gap:14px;align-items:center;padding:13px 14px;border:1px solid var(--border);border-radius:12px;color:var(--ink);background:var(--panel)}.logbook-trip-row:hover,.logbook-trip-row.is-selected{border-color:color-mix(in srgb,var(--blue) 45%,var(--border));background:var(--blue-soft)}.logbook-trip-row span:nth-child(2),.logbook-trip-row span:nth-child(3){display:grid;gap:4px}.logbook-trip-row span:nth-child(3){text-align:right}.logbook-trip-row small{color:var(--muted);font-size:11px}.logbook-trip-number{display:grid;place-items:center;width:48px;height:38px;border-radius:10px;color:var(--blue);background:var(--blue-soft);font-size:12px;font-weight:900}.logbook-detail-panel{margin-top:18px}.logbook-detail-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:20px}.logbook-facts{display:grid;gap:10px;margin:0}.logbook-facts>div{padding:12px;border:1px solid var(--border);border-radius:11px}.logbook-facts dt{margin-bottom:4px;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.logbook-facts dd{margin:0;line-height:1.5}.logbook-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}.logbook-photo-grid a{display:grid;gap:6px;color:var(--ink);font-size:10px;font-weight:750}.logbook-photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--border);border-radius:12px}.logbook-audit-details,.logbook-correction-form{margin-top:16px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.logbook-audit-details>summary,.logbook-correction-form>summary{cursor:pointer;color:var(--navy);font-weight:850}.logbook-audit-details article{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.logbook-audit-details article p{margin:7px 0}.logbook-audit-details article code{display:block;margin-top:6px;overflow-wrap:anywhere;color:var(--muted);font-size:10px}.logbook-correction-form form{margin-top:15px}
html[data-theme="dark"] .logbook-mobile-shell,html[data-theme="dark"] .logbook-action-form input,html[data-theme="dark"] .logbook-action-form select,html[data-theme="dark"] .logbook-action-form textarea,html[data-theme="dark"] .logbook-appointment-card,html[data-theme="dark"] .logbook-trip-row,html[data-theme="dark"] .logbook-filter-form input,html[data-theme="dark"] .logbook-filter-form select,html[data-theme="dark"] .logbook-audit-details,html[data-theme="dark"] .logbook-correction-form{background:var(--surface)}
@media(max-width:900px){.logbook-filter-form{grid-template-columns:1fr 1fr 1fr}.logbook-detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){.logbook-page-heading{display:none}.page-shell:has(.logbook-mobile-shell){padding:10px}.logbook-mobile-shell{margin:-2px -2px 18px;padding:14px;border-radius:18px}.logbook-mobile-header{align-items:flex-start;flex-direction:column}.logbook-mobile-header h2{font-size:23px}.logbook-notification-toggle{width:100%;min-height:42px}.logbook-action-form .form-grid{grid-template-columns:1fr}.logbook-big-field input{min-height:72px!important;font-size:30px!important}.logbook-primary-actions{gap:9px}.logbook-camera-button,.logbook-submit-button{min-height:132px!important;padding:12px 8px!important}.logbook-camera-button strong,.logbook-submit-button strong{font-size:15px}.logbook-history-panel{padding:14px}.logbook-history-panel .panel-heading{align-items:flex-start}.logbook-filter-form{grid-template-columns:1fr 1fr}.logbook-filter-form label:first-child{grid-column:1/-1}.logbook-trip-row{grid-template-columns:48px minmax(0,1fr)}.logbook-trip-row>span:nth-child(3){grid-column:2;text-align:left}.logbook-detail-panel{padding:14px}.logbook-photo-grid{grid-template-columns:1fr 1fr}}

/* v1.5 Bilanzimport, offene Posten, Teamleistung und Fahrzeugstrecken */
.report-year-filter{display:flex;align-items:end;gap:9px}.report-year-filter label{min-width:155px}.report-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:18px}.report-metric-grid>article{display:grid;gap:7px;min-height:130px;padding:18px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--accent) 4%,var(--surface)));border:1px solid var(--border);border-radius:14px}.report-metric-grid small{color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.1em}.report-metric-grid strong{color:var(--navy);font-size:clamp(23px,2.3vw,34px)}.report-metric-grid span{align-self:end;color:var(--muted);font-size:12px;line-height:1.45}.report-metric-grid .metric-open{border-color:#e3bd73;background:linear-gradient(145deg,var(--surface),var(--orange-soft))}.report-metric-grid .metric-overdue{border-color:#e5a0a9;background:linear-gradient(145deg,var(--surface),var(--red-soft))}.report-metric-grid .metric-overdue strong{color:var(--red)}
.ledger-import-panel,.receivables-panel,.employee-performance-panel{margin-bottom:18px}.ledger-import-form{display:grid;grid-template-columns:130px minmax(210px,.65fr) minmax(260px,1fr) auto;gap:12px;align-items:end}.ledger-import-form label{min-width:0}.ledger-import-form small{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.35}.ledger-import-form .button{min-height:44px}.ledger-import-note,.report-method-note,.report-empty-copy{margin:13px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.receivable-legend{display:flex;gap:8px}.receivable-legend span,.receivable-status,.source-pill{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.04em;white-space:nowrap}.receivable-legend .overdue,.receivable-status.overdue{color:var(--red);background:var(--red-soft)}.receivable-legend .in-time,.receivable-status.in_time{color:#9a5700;background:var(--orange-soft)}
.receivables-table,.employee-performance-table{min-width:1050px}.receivables-table td,.employee-performance-table td{vertical-align:middle}.receivables-table td>strong,.receivables-table td>span,.receivables-table td>small,.employee-performance-table td>strong,.employee-performance-table td>small{display:block}.receivables-table td>span{margin-top:4px}.receivables-table td>small,.employee-performance-table td>small{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.4}.receivable-overdue{background:color-mix(in srgb,var(--red-soft) 38%,transparent)}.source-pill.source-sheet{color:#6d4ba7;background:#f0ebff}.source-pill.source-matched{color:var(--green);background:var(--green-soft)}.source-pill.source-erp{color:var(--blue);background:var(--blue-soft)}.report-row-actions{display:flex;flex-wrap:wrap;gap:6px}.report-row-actions form{display:flex}.extended-report-grid{align-items:start}.extended-report-grid>.panel{min-width:0}.employee-performance-table td:nth-last-child(-n+2){font-variant-numeric:tabular-nums}.fleet-mileage-note{margin:12px 0 0;padding:11px 12px;color:var(--muted);background:var(--blue-soft);border-radius:10px;font-size:12px;line-height:1.5}
.number-mismatch{display:inline-flex;margin:4px 0;padding:4px 6px;color:#9a5700;background:var(--orange-soft);border-radius:6px;font-size:10px;font-style:normal;font-weight:900}
.reminder-action{color:#8a5000;border-color:#e3bd73;background:var(--orange-soft)}.reminder-complete{display:inline-flex;align-items:center;padding:6px 8px;color:var(--red);background:var(--red-soft);border-radius:8px;font-size:11px;font-weight:900}

/* v1.5.2 lokale ERP-Kundenanlage */
.manual-contact-panel{margin-bottom:16px;padding:0;overflow:visible;border-color:color-mix(in srgb,var(--accent) 38%,var(--border))}.manual-contact-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;cursor:pointer;list-style:none}.manual-contact-panel>summary::-webkit-details-marker{display:none}.manual-contact-panel>summary>span{display:grid;grid-template-columns:35px 1fr;gap:2px 11px;align-items:center}.manual-contact-panel>summary b{width:35px;height:35px;display:grid;place-items:center;grid-row:1/3;color:#fff;background:var(--blue);border-radius:10px;font-size:18px}.manual-contact-panel>summary strong{color:var(--navy);font-size:12px}.manual-contact-panel>summary small{color:var(--muted);font-size:11px}.manual-contact-panel>summary em{color:var(--blue);font-size:12px;font-style:normal;font-weight:850}.manual-contact-panel[open]>summary{border-bottom:1px solid var(--border);background:var(--blue-soft)}.manual-contact-panel[open]>summary em{font-size:0}.manual-contact-panel[open]>summary em::after{content:'Formular schließen';font-size:12px}.manual-contact-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px}.manual-contact-form textarea{width:100%;padding:12px 13px;color:var(--ink);background:var(--panel);border:1px solid var(--border);border-radius:10px;outline:none;resize:vertical}.manual-contact-form textarea:focus{border-color:#7597eb;box-shadow:0 0 0 3px rgba(32,86,214,.11)}.manual-contact-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:5px}.manual-contact-actions p{max-width:650px;margin:0;color:var(--muted);font-size:12px;line-height:1.5}.manual-contact-actions .button{flex:0 0 auto}
html[data-theme="dark"] .manual-contact-form textarea{background:var(--surface)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .manual-contact-form textarea{background:var(--surface)}}
@media(max-width:700px){.manual-contact-panel>summary{align-items:flex-start;flex-direction:column}.manual-contact-form{grid-template-columns:1fr}.manual-contact-form .span-2{grid-column:auto}.manual-contact-actions{align-items:stretch;flex-direction:column}.manual-contact-actions .button{width:100%}}
html[data-theme="dark"] .report-metric-grid>article{background:var(--surface)}html[data-theme="dark"] .report-metric-grid .metric-open{background:color-mix(in srgb,var(--orange-soft) 38%,var(--surface))}html[data-theme="dark"] .report-metric-grid .metric-overdue{background:color-mix(in srgb,var(--red-soft) 38%,var(--surface))}
@media(prefers-color-scheme:dark){html:not([data-theme]) .report-metric-grid>article{background:var(--surface)}html:not([data-theme]) .report-metric-grid .metric-open{background:color-mix(in srgb,var(--orange-soft) 38%,var(--surface))}html:not([data-theme]) .report-metric-grid .metric-overdue{background:color-mix(in srgb,var(--red-soft) 38%,var(--surface))}}
@media(max-width:1100px){.report-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-import-form{grid-template-columns:1fr 1fr}.ledger-import-form .button{grid-column:1/-1}.report-year-filter{align-items:stretch;flex-direction:column}.report-year-filter label{min-width:0}}
@media(max-width:650px){.report-metric-grid,.ledger-import-form{grid-template-columns:1fr}.ledger-import-form .button{grid-column:auto}.receivable-legend{align-items:flex-start;flex-direction:column}.report-row-actions{align-items:stretch;flex-direction:column}.report-row-actions .button{width:100%}}

/* v1.2.1 Rechnungsanschrift direkt im Freigabeworkflow */
.invoice-address-card{margin-bottom:18px;border-color:color-mix(in srgb,var(--accent) 52%,var(--border));background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 6%,var(--surface)),var(--surface))}.invoice-address-card .panel-heading p strong{color:var(--navy)}.invoice-address-card textarea{width:100%;padding:12px 13px;color:var(--ink);background:var(--panel);border:1px solid var(--border);border-radius:10px;outline:none;resize:vertical}.invoice-address-card textarea:focus{border-color:#7597eb;box-shadow:0 0 0 3px rgba(32,86,214,.11)}.invoice-address-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border-radius:12px;color:var(--blue);background:var(--blue-soft);font-size:19px;font-weight:900}
html[data-theme="dark"] .invoice-address-card textarea{background:var(--surface)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .invoice-address-card textarea{background:var(--surface)}}

/* v1.6 Ausgaben, Belegscan und Warenwirtschaft */
.expense-metrics,.warehouse-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.expense-metrics>article,.warehouse-metrics>article{display:grid;gap:7px;min-height:122px;padding:18px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--accent) 4%,var(--surface)))}.expense-metrics small,.warehouse-metrics small{color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.1em}.expense-metrics strong,.warehouse-metrics strong{color:var(--navy);font-size:clamp(23px,2.2vw,32px)}.expense-metrics span,.warehouse-metrics span{align-self:end;color:var(--muted);font-size:12px;line-height:1.45}.expense-metrics .expense-open{border-color:#e3bd73;background:linear-gradient(145deg,var(--surface),var(--orange-soft))}.expense-metrics .expense-warning,.warehouse-metrics .warehouse-warning{border-color:#e5a0a9;background:linear-gradient(145deg,var(--surface),var(--red-soft))}.expense-metrics .expense-warning strong,.warehouse-metrics .warehouse-warning strong{color:var(--red)}
.expense-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.62fr);gap:18px;align-items:start}.expense-form-panel{position:sticky;top:95px}.expense-filters{display:grid;grid-template-columns:105px 125px minmax(180px,.7fr) minmax(220px,1fr) auto;gap:10px;align-items:end;margin-bottom:14px;padding:13px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--accent) 3%,var(--surface))}.expense-import-form{display:flex}.expense-table{min-width:1050px}.expense-table td{vertical-align:middle}.expense-table td>strong,.expense-table td>small,.expense-table td>a,.expense-table td>span{display:block}.expense-table td>small{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.4}.expense-status{display:inline-flex!important;width:max-content;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:900}.expense-status-paid{color:var(--green);background:var(--green-soft)}.expense-status-open{color:#9a5700;background:var(--orange-soft)}.expense-status-void{color:var(--muted);background:var(--soft)}.missing-receipt{color:var(--red);font-size:12px;font-weight:850}.expense-sync-error{background:color-mix(in srgb,var(--red-soft) 35%,transparent)}.expense-entry-form textarea,.warehouse-request-form textarea{width:100%;padding:12px 13px;color:var(--ink);background:var(--panel);border:1px solid var(--border);border-radius:10px;outline:none;resize:vertical}.expense-receipt-box{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:13px;border:1px dashed color-mix(in srgb,var(--accent) 50%,var(--border));border-radius:12px;background:var(--blue-soft)}.expense-receipt-box header,.expense-receipt-box>p,.expense-receipt-box .camera-selection{grid-column:1/-1}.expense-receipt-box header{display:flex;align-items:center;gap:10px}.expense-receipt-box header>span{width:35px;height:35px;display:grid;place-items:center;color:#fff;background:var(--blue);border-radius:10px}.expense-receipt-box header strong,.expense-receipt-box header small{display:block}.expense-receipt-box header strong{color:var(--navy);font-size:11px}.expense-receipt-box header small,.expense-receipt-box>p,.expense-form-note{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.receipt-file-trigger input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.expense-receipt-box .button{display:flex;align-items:center;justify-content:center;min-height:46px}.expense-form-note{margin:0;text-align:center}
.expense-layout.is-readonly{grid-template-columns:minmax(0,1fr)}.expense-layout.is-readonly .expense-table{min-width:850px}.accountant-hidden{display:none!important}.viewer-role-accountant .invoice-approval-table{min-width:800px}
.warehouse-demand-panel{margin-bottom:18px}.warehouse-filter-nav{display:flex;flex-wrap:wrap;gap:6px}.warehouse-filter-nav a{padding:6px 9px;color:var(--muted);background:var(--soft);border-radius:999px;font-size:11px;font-weight:850}.warehouse-filter-nav a.active{color:#fff;background:var(--blue)}.warehouse-request-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.warehouse-request-card{padding:15px;border:1px solid var(--border);border-left:4px solid #c1cad8;border-radius:13px;background:var(--panel)}.warehouse-request-card.status-open{border-left-color:var(--orange)}.warehouse-request-card.status-ordered{border-left-color:var(--blue)}.warehouse-request-card.status-in_stock{border-left-color:var(--green)}.warehouse-request-card.status-unavailable{border-left-color:var(--red)}.warehouse-request-card.status-unavailable .warehouse-request-status{color:var(--red);background:var(--red-soft)}.warehouse-request-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.warehouse-request-card h3{margin:7px 0 3px;color:var(--navy);font-size:14px}.warehouse-request-card header p,.warehouse-request-context span,.warehouse-request-context small{display:block;margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.warehouse-request-card header>a{flex:0 0 auto;color:var(--blue);font-size:12px;font-weight:850}.warehouse-request-status{display:inline-flex;padding:4px 7px;color:var(--blue);background:var(--blue-soft);border-radius:999px;font-size:10px;font-weight:900}.warehouse-request-context{margin:11px 0;padding:10px;background:var(--soft);border-radius:9px}.warehouse-request-context strong{color:var(--navy);font-size:10px}.warehouse-request-form{display:grid;grid-template-columns:1fr 1fr;gap:9px}.warehouse-request-form label{min-width:0}.warehouse-request-form small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.warehouse-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.55fr);gap:18px;align-items:start}.warehouse-movement-panel{position:sticky;top:95px}.warehouse-stock-filter{display:grid;grid-template-columns:1fr 170px auto;gap:10px;align-items:end;margin-bottom:14px}.warehouse-table{min-width:900px}.warehouse-table td>strong,.warehouse-table td>small,.warehouse-history-table td>small{display:block}.warehouse-table td>small,.warehouse-history-table td>small{margin-top:4px;color:var(--muted);font-size:11px}.warehouse-low-row{background:color-mix(in srgb,var(--red-soft) 33%,transparent)}.warehouse-condition{display:inline-flex;padding:5px 7px;border-radius:999px;font-size:10px;font-weight:900}.condition-new{color:var(--blue);background:var(--blue-soft)}.condition-used{color:#7d5b18;background:#f6edcf}.warehouse-history-panel{margin-top:18px}.warehouse-history-table{min-width:900px}.stock-positive{color:var(--green);font-weight:900}.stock-negative{color:var(--red);font-weight:900}
/* v1.7.25 · Teilebestellungen direkt als Ausgabe */
.warehouse-expense-disclosure{border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--accent) 4%,var(--surface));overflow:hidden}.warehouse-expense-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;cursor:pointer;list-style:none}.warehouse-expense-disclosure>summary::-webkit-details-marker{display:none}.warehouse-expense-disclosure>summary span{color:var(--navy);font-size:12px;font-weight:900}.warehouse-expense-disclosure>summary small{margin:0;color:var(--muted);font-size:10px}.warehouse-expense-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 12px 12px}.warehouse-expense-check{display:flex!important;align-items:flex-start;gap:9px;padding:10px;border-radius:9px;background:var(--blue-soft)}.warehouse-expense-check input{width:17px;height:17px;margin:1px 0 0;flex:0 0 auto}.warehouse-expense-check span,.warehouse-expense-check strong{display:block}.warehouse-expense-linked{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;border-radius:9px;background:var(--green-soft);font-size:11px}.warehouse-expense-linked a{margin-left:auto;color:var(--blue);font-weight:850}.warehouse-expense-receipt input{padding:9px;background:var(--panel);border:1px dashed var(--border);border-radius:9px}.warehouse-expense-receipt a{color:var(--blue)}.source-pill.source-warehouse{display:inline-flex!important;width:max-content;margin-top:6px;color:#815600;background:#fff1c7}
.ticket-parts-request-panel{border-color:color-mix(in srgb,var(--orange) 35%,var(--border))}.ticket-parts-list{display:grid;gap:8px;margin-bottom:12px}.ticket-part-row{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:13px;border:1px solid var(--border);border-left:4px solid #c1cad8;border-radius:11px;background:var(--panel)}.ticket-part-row.status-open{border-left-color:var(--orange)}.ticket-part-row.status-ordered{border-left-color:var(--blue)}.ticket-part-row.status-in_stock{border-left-color:var(--green)}.ticket-part-row.status-unavailable{border-left-color:var(--red)}.ticket-part-row>div:first-child>span{display:inline-flex;padding:4px 7px;color:#9a5700;background:var(--orange-soft);border-radius:999px;font-size:10px;font-weight:900}.ticket-part-row.status-unavailable>div:first-child>span{color:var(--red);background:var(--red-soft)}.ticket-part-row strong,.ticket-part-row p,.ticket-part-row small,.ticket-part-row em{display:block}.ticket-part-row strong{margin-top:6px;color:var(--navy);font-size:12px}.ticket-part-row p,.ticket-part-row small,.ticket-part-row em{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.ticket-part-row em{font-style:normal}.ticket-part-actions{display:flex;align-items:flex-end;gap:8px;flex-direction:column}.ticket-part-request-form{display:grid;grid-template-columns:minmax(0,1fr) 125px auto;gap:10px;align-items:end;padding-top:12px;border-top:1px solid var(--border)}
html[data-theme="dark"] .expense-metrics>article,html[data-theme="dark"] .warehouse-metrics>article,html[data-theme="dark"] .expense-filters,html[data-theme="dark"] .expense-entry-form textarea,html[data-theme="dark"] .warehouse-request-card,html[data-theme="dark"] .warehouse-request-form textarea,html[data-theme="dark"] .ticket-part-row{background:var(--surface)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .expense-metrics>article,html:not([data-theme]) .warehouse-metrics>article,html:not([data-theme]) .expense-filters,html:not([data-theme]) .expense-entry-form textarea,html:not([data-theme]) .warehouse-request-card,html:not([data-theme]) .warehouse-request-form textarea,html:not([data-theme]) .ticket-part-row{background:var(--surface)}}
@media(max-width:1100px){.expense-metrics,.warehouse-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-layout,.warehouse-layout{grid-template-columns:1fr}.expense-form-panel,.warehouse-movement-panel{position:static}.warehouse-request-grid{grid-template-columns:1fr}.expense-filters{grid-template-columns:1fr 1fr}.expense-filters .expense-search{grid-column:1/-1}.expense-filters .button{grid-column:1/-1}}
@media(max-width:700px){.expense-metrics,.warehouse-metrics,.expense-filters,.warehouse-stock-filter,.warehouse-request-form,.warehouse-expense-grid,.ticket-part-request-form,.expense-receipt-box{grid-template-columns:1fr}.expense-filters .expense-search,.expense-filters .button,.warehouse-request-form .span-2,.warehouse-expense-grid .span-2,.expense-receipt-box header,.expense-receipt-box>p,.expense-receipt-box .camera-selection{grid-column:auto}.warehouse-request-card>header,.ticket-part-row{flex-direction:column}.ticket-part-actions{align-items:flex-start}.warehouse-filter-nav{margin-top:8px}}

/* v1.6.1 Teilekalkulation, Altbestandsmahnung, Belegzuordnung und Rollenpflege */
.warehouse-price-summary,.ticket-part-price{color:var(--blue)!important;font-weight:850}.warehouse-request-form input[readonly]{color:var(--blue);background:var(--blue-soft);font-weight:850}.legacy-reminder-compose{position:relative}.legacy-reminder-compose>summary{display:flex;align-items:center;list-style:none;cursor:pointer}.legacy-reminder-compose>summary::-webkit-details-marker{display:none}.legacy-reminder-compose[open]>summary{border-color:var(--orange)}.legacy-reminder-compose>form{position:absolute;z-index:20;right:0;top:calc(100% + 7px);width:290px;display:grid;gap:9px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:0 16px 36px rgba(20,35,63,.22)}.legacy-reminder-compose label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:800}.legacy-reminder-compose input[type=email]{min-width:0}.legacy-business-check{display:flex!important;align-items:center;gap:7px!important}.legacy-business-check input{width:16px;height:16px}.missing-receipt-panel{margin-bottom:18px}.missing-receipt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.missing-receipt-grid>article{padding:13px;border:1px solid var(--border);border-left:4px solid var(--orange);border-radius:11px;background:var(--panel)}.missing-receipt-grid header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.missing-receipt-grid header strong,.missing-receipt-grid header small{display:block}.missing-receipt-grid header strong{color:var(--navy);font-size:10px}.missing-receipt-grid header small,.missing-receipt-grid>article>small,.missing-receipt-grid>article>p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.missing-receipt-grid form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.missing-receipt-grid form label{min-width:0}.user-role-form{display:grid;grid-template-columns:minmax(145px,1fr) auto;gap:7px;align-items:center}.user-role-form select{min-width:0}.ticket-source-badge.source-walk_in{color:#755400;background:#f7e9b9}.ticket-source-badge.source-phone{color:#075f5a;background:#d9f4ee}.ticket-source-badge.source-whatsapp{color:#087833;background:#d8f6e2}

/* v1.6.2 Bestehende Tickets mit Kalenderterminen verknüpfen */
.calendar-linked-ticket-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:13px;align-items:center;padding:15px;border:1px solid color-mix(in srgb,var(--blue) 45%,var(--border));border-radius:13px;background:var(--blue-soft)}.calendar-linked-ticket-card>span{display:grid;place-items:center;min-width:76px;padding:10px;border-radius:10px;color:#fff;background:var(--blue);font-size:10px;font-weight:900}.calendar-linked-ticket-card small,.calendar-linked-ticket-card strong,.calendar-linked-ticket-card p{display:block}.calendar-linked-ticket-card small{color:var(--blue);font-size:10px;font-weight:900;letter-spacing:.08em}.calendar-linked-ticket-card strong{margin-top:3px;color:var(--navy);font-size:12px}.calendar-linked-ticket-card p{margin:3px 0 0;color:var(--muted);font-size:11px}.calendar-linked-ticket-card>a{color:var(--blue);font-size:11px;font-weight:850}
.ticket-calendar-list{display:grid;gap:8px;margin-bottom:12px}.ticket-calendar-list>article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--soft)}.ticket-calendar-list>article>span{display:grid;place-items:center;width:38px;height:38px;color:#fff;background:var(--blue);border-radius:9px;font-size:13px;font-weight:900;line-height:1}.ticket-calendar-list>article>span small{font-size:10px}.ticket-calendar-list strong,.ticket-calendar-list div>small{display:block}.ticket-calendar-list strong{color:var(--navy);font-size:12px}.ticket-calendar-list div>small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.35}.ticket-calendar-list>article>a{color:var(--blue);font-size:10px;font-weight:850}
@media(max-width:650px){.calendar-linked-ticket-card,.ticket-calendar-list>article{grid-template-columns:1fr}.calendar-linked-ticket-card>span{width:max-content}.ticket-calendar-list>article>span{width:42px}}
html[data-theme="dark"] .legacy-reminder-compose>form,html[data-theme="dark"] .missing-receipt-grid>article{background:var(--surface)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .legacy-reminder-compose>form,html:not([data-theme]) .missing-receipt-grid>article{background:var(--surface)}}
@media(max-width:900px){.missing-receipt-grid{grid-template-columns:1fr}.legacy-reminder-compose>form{position:static;width:min(100%,320px);margin-top:7px}}
@media(max-width:650px){.missing-receipt-grid form,.user-role-form{grid-template-columns:1fr}.missing-receipt-grid header{flex-direction:column}}

/* v1.8.13 · kompakte Ausgabenliste und direkter Zahlungsstatus */
.expense-table{width:100%;min-width:880px;table-layout:fixed}.expense-table th:nth-child(1){width:78px}.expense-table th:nth-child(2){width:24%}.expense-table th:nth-child(3){width:90px}.expense-table th:nth-child(4){width:82px}.expense-table th:nth-child(5){width:68px}.expense-table th:nth-child(6){width:98px}.expense-table th:nth-child(7){width:145px}.expense-table th:nth-child(8){width:105px}.expense-table .expense-party-cell{width:auto;max-width:none;min-width:0}.expense-party-cell>strong,.expense-party-cell>small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-receipt-cell{overflow-wrap:anywhere}.expense-paid-switch{display:grid;grid-template-columns:1fr 1fr;width:90px;padding:3px;border:1px solid var(--border);border-radius:999px;background:var(--soft)}.expense-paid-switch button{min-height:27px;padding:4px 7px;border:0;border-radius:999px;color:var(--muted);background:transparent;font-size:10px;font-weight:900;cursor:pointer}.expense-paid-switch button.is-active[value="paid"]{color:#fff;background:var(--green)}.expense-paid-switch button.is-active[value="open"]{color:#fff;background:var(--orange)}.expense-paid-switch button:disabled{cursor:default;opacity:1}.expense-row-actions{display:grid;gap:7px;min-width:0}.expense-primary-action,.expense-row-more>summary{display:flex;min-height:31px;align-items:center;justify-content:center;padding:6px 8px;border:1px solid var(--border);border-radius:8px;color:var(--blue);background:var(--blue-soft);font-size:10px;font-weight:850;text-align:center;cursor:pointer}.expense-row-more>summary{color:var(--muted);background:var(--soft);list-style:none}.expense-row-more>summary::-webkit-details-marker{display:none}.expense-row-more[open]>summary{color:var(--blue);border-color:color-mix(in srgb,var(--blue) 45%,var(--border))}.expense-row-more>div{display:grid;gap:6px;margin-top:7px;padding-top:7px;border-top:1px solid var(--border)}.expense-row-more a,.expense-row-more button{padding:0;border:0;color:var(--blue);background:transparent;font-size:10px;font-weight:800;text-align:left}.expense-row-more form{margin:0}.expense-row-more .expense-delete-action{color:var(--red)}
@media(max-width:700px){.expense-list-panel{padding:0!important;overflow:visible;background:transparent;border:0;box-shadow:none}.expense-list-panel>.panel-heading,.expense-list-panel>.expense-filters{margin-inline:0}.expense-table-wrap{overflow:visible!important;padding:0!important}.expense-table,.expense-table tbody{display:block;width:100%;min-width:0}.expense-table thead{display:none}.expense-table tbody{display:grid;gap:12px}.expense-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;padding:15px;border:1px solid var(--border);border-left:5px solid var(--orange);border-radius:13px;background:var(--surface);box-shadow:0 7px 20px rgba(26,40,72,.06)}.expense-table tr.expense-payment-paid{border-left-color:var(--green)}.expense-table tr.expense-payment-void{border-left-color:var(--muted)}.expense-table td{display:block;min-width:0;padding:0!important;border:0!important}.expense-table td::before{content:attr(data-label);display:block;margin-bottom:5px;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.expense-table .expense-party-cell,.expense-table .expense-receipt-cell,.expense-table .expense-actions-cell{grid-column:1/-1}.expense-party-cell>strong,.expense-party-cell>small{white-space:normal}.expense-row-actions{grid-template-columns:1fr}.expense-paid-switch{width:100%;max-width:112px}.expense-paid-switch button{min-height:34px}}

/* v1.6.6 flexible Serienaufgaben und Firmenzuordnung */
[hidden]{display:none!important}.recurring-layout-wide{grid-template-columns:minmax(0,1.08fr) minmax(410px,.92fr);align-items:start}.recurring-editor{position:sticky;top:92px}.recurring-rule-list>div{align-items:flex-start}.recurring-rule-list span{gap:4px}.recurring-rule-list strong{color:var(--navy);font-size:13px}.recurring-rule-list em{font-size:12px;font-style:normal;line-height:1.4}.recurring-paused{opacity:.72;background:var(--soft)}.recurring-error{margin-top:5px;color:var(--red);font-size:11px;line-height:1.4}.recurring-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;align-items:center}.recurring-actions form{display:inline-flex}.recurring-fieldset{display:grid;gap:12px;margin:0;padding:15px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--accent) 2.5%,var(--surface))}.recurring-fieldset legend{padding:0 7px;color:var(--accent);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.recurring-fieldset label>small{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.45}.recurring-target-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px}.recurring-target-switch label{display:block;cursor:pointer}.recurring-target-switch input{position:absolute;width:1px;height:1px;opacity:0}.recurring-target-switch span{display:flex;min-height:46px;align-items:center;justify-content:center;padding:10px;border:1px solid var(--border);border-radius:10px;color:var(--muted);background:var(--panel);font-size:10px;font-weight:850;text-align:center}.recurring-target-switch input:checked+span{color:var(--blue);border-color:var(--blue);background:var(--blue-soft);box-shadow:0 0 0 1px var(--blue) inset}.recurrence-options{display:grid;gap:10px;padding:12px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:11px;background:var(--panel)}.recurrence-options>strong{color:var(--navy);font-size:10px}.weekday-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.weekday-picker label{cursor:pointer}.weekday-picker input{position:absolute;width:1px;height:1px;opacity:0}.weekday-picker span{display:grid;place-items:center;min-height:36px;border:1px solid var(--border);border-radius:9px;color:var(--muted);background:var(--surface);font-size:12px;font-weight:900}.weekday-picker input:checked+span{color:#fff;border-color:var(--blue);background:var(--blue)}
html[data-theme="dark"] .recurring-fieldset,html[data-theme="dark"] .recurring-paused{background:var(--surface)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .recurring-fieldset,html:not([data-theme]) .recurring-paused{background:var(--surface)}}
@media(max-width:1180px){.recurring-layout-wide{grid-template-columns:1fr}.recurring-editor{position:static}}
@media(max-width:700px){.recurring-target-switch{grid-template-columns:1fr}.weekday-picker{grid-template-columns:repeat(4,1fr)}.recurring-rule-list>div{flex-direction:column}.recurring-actions{justify-content:flex-start}}

/* v1.7.18 wiederkehrende Ausgaben */
.expense-heading-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px}.source-pill.source-recurring{display:inline-flex!important;width:max-content;margin-top:6px;color:#5d3ba8;background:#eee8ff}.recurring-expense-metrics article:nth-child(3){border-color:#a9bdf2;background:linear-gradient(145deg,var(--surface),var(--blue-soft))}.recurring-expense-list{display:grid;gap:11px}.recurring-expense-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;padding:15px;border:1px solid var(--border);border-left:4px solid var(--blue);border-radius:13px;background:var(--panel)}.recurring-expense-card.recurring-paused{border-left-color:var(--muted)}.recurring-expense-card-main{min-width:0}.recurring-expense-card-top{display:flex;align-items:center;gap:8px;margin-bottom:7px}.recurring-expense-card-top>small{color:var(--muted);font-size:11px;font-weight:850}.recurring-expense-card-main>strong{display:block;color:var(--navy);font-size:14px}.recurring-expense-card-main>p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.recurring-expense-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.recurring-expense-facts>span{display:grid;gap:4px;padding:9px 10px;border-radius:9px;background:var(--soft)}.recurring-expense-facts small{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.06em}.recurring-expense-facts b{color:var(--navy);font-size:10px}.recurring-expense-detail{margin-top:9px!important}.recurring-expense-actions{min-width:98px;flex-direction:column;align-items:stretch}.recurring-expense-actions>a,.recurring-expense-actions button{text-align:left}.recurring-expense-error{margin-top:9px}.recurring-expense-help{margin:0;padding:11px;color:var(--muted);background:var(--blue-soft);border-radius:9px;font-size:11px;line-height:1.55}.recurring-expense-form textarea{width:100%;padding:12px 13px;color:var(--ink);background:var(--panel);border:1px solid var(--border);border-radius:10px;outline:none;resize:vertical}
html[data-theme="dark"] .recurring-expense-card,html[data-theme="dark"] .recurring-expense-form textarea{background:var(--surface)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .recurring-expense-card,html:not([data-theme]) .recurring-expense-form textarea{background:var(--surface)}}
@media(max-width:760px){.expense-heading-actions{align-items:stretch;flex-direction:column}.recurring-expense-card{grid-template-columns:1fr}.recurring-expense-actions{min-width:0;flex-direction:row;justify-content:flex-start}.recurring-expense-facts{grid-template-columns:1fr}.recurring-expense-heading .expense-heading-actions{width:100%}}

/* v1.6.6 produktive 11-Zoll-Außendiensttablets
   Die eigenständigen 8-Zoll-Kioskseiten tragen .tablet-body und werden hiervon nicht verändert. */
@media (min-width:761px) and (max-width:1280px) {
  .erp-body .topbar {
    min-height: 0;
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    grid-template-rows: 58px 58px;
    gap: 0 16px;
    padding: 0 18px;
  }
  .erp-body .brand { grid-column: 1; grid-row: 1; min-width: 0; }
  .erp-body .brand-mark { width: 42px; height: 42px; font-size: 18px; }
  .erp-body .brand strong { font-size: 19px; }
  .erp-body .brand small { font-size: 10px; }
  .erp-body .account { grid-column: 2; grid-row: 1; justify-self: end; gap: 10px; }
  .erp-body .account > span, .erp-body .header-search { display: none; }
  .erp-body .icon-button,
  .erp-body .notification-menu > summary { width: 46px; height: 46px; border-radius: 12px; }
  .erp-body .nav {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    min-width: 0;
    height: 58px;
    gap: 4px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }
  .erp-body .nav > a,
  .erp-body .nav-dropdown { flex: 0 0 auto; }
  .erp-body .nav a,
  .erp-body .nav-dropdown summary {
    min-height: 54px;
    padding-inline: 15px;
    white-space: nowrap;
    font-size: 13px;
  }
  .erp-body .nav-dropdown > div {
    position: fixed;
    top: 112px;
    right: 16px;
    min-width: 250px;
  }
  .erp-body .nav-dropdown > div a { min-height: 48px; padding: 14px; font-size: 13px; }

  .erp-body .page-shell { width: 100%; max-width: none; padding: 24px 22px 60px; }
  .erp-body .page-heading { margin-bottom: 21px; }
  .erp-body .page-heading h1 { font-size: clamp(31px,4vw,40px); }
  .erp-body .page-heading > p:last-child,
  .erp-body .heading-row > div > p:last-child { max-width: 850px; font-size: 14px; line-height: 1.5; }
  .erp-body .eyebrow { font-size: 11px; }
  .erp-body .panel { padding: 21px; border-radius: 17px; }
  .erp-body .panel-heading { margin-bottom: 17px; }
  .erp-body .panel-heading h2 { font-size: 20px; }
  .erp-body .panel-heading p { font-size: 13px; line-height: 1.45; }
  .erp-body .alert { padding: 15px 17px; font-size: 14px; line-height: 1.45; }

  .erp-body .button { min-height: 49px; padding-inline: 18px; font-size: 14px; touch-action: manipulation; }
  .erp-body .button-small { min-height: 46px; font-size: 12px; }
  .erp-body .text-button { min-height: 44px; padding: 10px 12px; font-size: 13px; }
  .erp-body label { gap: 8px; font-size: 13px; }
  .erp-body input,
  .erp-body select { min-height: 51px; padding-inline: 14px; font-size: 14px; }
  .erp-body textarea { min-height: 112px; padding: 14px; font-size: 14px; }
  .erp-body input[type="checkbox"],
  .erp-body input[type="radio"] { min-height: 22px; min-width: 22px; }
  .erp-body th { padding: 12px 13px; font-size: 11px; }
  .erp-body td { padding: 16px 13px; font-size: 13px; }
  .erp-body td strong { font-size: 14px; }
  .erp-body td small { font-size: 11px; line-height: 1.4; }
  .erp-body .table-wrap,
  .erp-body .catalog-table-wrap,
  .erp-body .invoice-table-wrap,
  .erp-body .report-table {
    padding-bottom: 10px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: auto;
    -webkit-overflow-scrolling: touch;
  }

  .erp-body .ticket-card-main { padding: 16px; }
  .erp-body .ticket-card h3 { font-size: 15px; }
  .erp-body .ticket-card p { font-size: 12px; line-height: 1.5; }
  .erp-body .ticket-card footer,
  .erp-body .ticket-due { font-size: 10px; }
  .erp-body .ticket-customer { font-size: 10px; }
  .erp-body .ticket-card-claim button { min-height: 46px; font-size: 12px; }
  .erp-body .ticket-scope-tabs a { min-height: 55px; padding: 15px; font-size: 13px; }
  .erp-body .ticket-status-filter a { min-height: 42px; display: grid; place-items: center; font-size: 12px; }
  .erp-body .ticket-camera-form .button,
  .erp-body .ticket-file-upload .button { min-height: 54px; font-size: 14px; }

  .erp-body .contract-card,
  .erp-body .device-card,
  .erp-body .license-card,
  .erp-body .warehouse-request-card { padding: 18px; }
  .erp-body .contract-card header h2,
  .erp-body .device-card h3,
  .erp-body .license-card h3 { font-size: 15px; }
  .erp-body .contract-card p,
  .erp-body .device-card > p,
  .erp-body .license-card > p { font-size: 11px; }
  .erp-body .device-facts small,
  .erp-body .license-grid small { font-size:12px; }
  .erp-body .device-facts strong,
  .erp-body .license-grid strong { font-size: 11px; }

  .erp-body .invoice-filter {
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }
  .erp-body .invoice-filter a {
    flex: 0 0 auto;
    min-height: 44px;
    display: grid;
    place-items: center;
    padding-inline: 15px;
    font-size: 12px;
    white-space: nowrap;
  }
  .erp-body .invoice-list-panel { padding: 0; overflow: visible; background: transparent; border: 0; box-shadow: none; }
  .erp-body .invoice-list-panel .invoice-table-wrap { overflow: visible; padding: 0; }
  .erp-body .invoice-approval-table,
  .erp-body .invoice-approval-table tbody { min-width: 0; display: block; }
  .erp-body .invoice-approval-table thead { display: none; }
  .erp-body .invoice-approval-table tbody { display: grid; gap: 13px; }
  .erp-body .invoice-approval-table .invoice-row {
    display: grid;
    grid-template-columns: minmax(145px,.68fr) minmax(240px,1.35fr) minmax(155px,.7fr);
    gap: 11px 17px;
    padding: 17px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-left: 5px solid var(--blue);
    border-radius: 15px;
    box-shadow: 0 7px 22px rgba(26,40,72,.06);
  }
  .erp-body .invoice-approval-table .invoice-row.status-draft { border-left-color: var(--orange); }
  .erp-body .invoice-approval-table .invoice-row.status-paid { border-left-color: var(--green); }
  .erp-body .invoice-approval-table .invoice-row.status-cancelled { border-left-color: var(--red); }
  .erp-body .invoice-approval-table .invoice-row > td { min-width: 0; padding: 0; border: 0; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(1) { grid-column: 1; grid-row: 1 / span 2; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(2) { grid-column: 2; grid-row: 1; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(3) { grid-column: 2; grid-row: 2; overflow-wrap: anywhere; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(4) { grid-column: 3; grid-row: 1; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(5) { grid-column: 1; grid-row: 3; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(6) { grid-column: 3; grid-row: 2; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(7) { grid-column: 2 / 4; grid-row: 3; }
  .erp-body .invoice-approval-table .invoice-row-actions { min-width: 0; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .erp-body .invoice-approval-table .invoice-row-actions:has(> :only-child) { grid-template-columns: 1fr; }
  .erp-body .invoice-customer-cell { min-width: 0; }
  .erp-body .invoice-customer-cell span { font-size: 14px; }
  .erp-body .invoice-email { font-size: 12px; overflow-wrap: anywhere; }
  .erp-body .invoice-status { padding: 7px 9px; font-size:12px; }
  .erp-body .invoice-amount { font-size: 17px; }
}

@media (min-width:761px) and (max-width:900px) {
  .erp-body .heading-row { align-items: stretch; flex-direction: column; }
  .erp-body .heading-row > .button,
  .erp-body .heading-row > form { align-self: flex-start; }
  .erp-body .invoice-approval-table .invoice-row { grid-template-columns: minmax(135px,.62fr) minmax(0,1.38fr); }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(1) { grid-column: 1; grid-row: 1 / span 2; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(2) { grid-column: 2; grid-row: 1; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(3) { grid-column: 2; grid-row: 2; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(4) { grid-column: 1; grid-row: 3; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(5) { grid-column: 2; grid-row: 3; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(6) { grid-column: 1; grid-row: 4; }
  .erp-body .invoice-approval-table .invoice-row > td:nth-child(7) { grid-column: 2; grid-row: 4; }
  .erp-body.viewer-role-accountant .invoice-approval-table .invoice-row > td:nth-child(6) { grid-column: 1; grid-row: 3; }
  .erp-body.viewer-role-accountant .invoice-approval-table .invoice-row > td:nth-child(7) { grid-column: 2; grid-row: 3; }
  .erp-body .invoice-approval-table .invoice-row-actions { grid-template-columns: 1fr; }
}

/* v1.7 · Projekte & Meilensteine */
.project-filter{display:grid;grid-template-columns:minmax(260px,1fr) 230px auto;gap:12px;align-items:end;margin-bottom:18px}.project-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.project-card{display:block;min-width:0;transition:transform .16s ease,border-color .16s ease}.project-card:hover{transform:translateY(-2px);border-color:#9db4ee}.project-card header{display:flex;align-items:center;justify-content:space-between;gap:10px}.project-card header em{overflow:hidden;color:var(--muted);font-size:12px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.project-card h2{margin:16px 0 7px;color:var(--navy);font-size:19px}.project-card>p{height:42px;margin:0 0 14px;overflow:hidden;color:var(--muted);font-size:10px;line-height:1.5}.project-progress{height:7px;overflow:hidden;background:var(--line);border-radius:999px}.project-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#47b6dd);border-radius:inherit}.project-progress span.over{background:var(--orange)}.project-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.project-card dl div{min-width:0;padding:10px;background:var(--canvas);border-radius:9px}.project-card dt,.project-card dd{margin:0}.project-card dt{color:var(--muted);font-size:10px}.project-card dd{margin-top:4px;overflow:hidden;color:var(--navy);font-size:10px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.project-card>small{display:block;color:var(--muted);font-size:11px}.project-empty{grid-column:1/-1;text-align:center}.project-master-form{max-width:1050px}.project-master-form textarea{width:100%}.project-brief{margin-bottom:16px}.project-brief>p:last-child{margin:0;color:var(--ink);font-size:12px;line-height:1.65}.project-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.project-metrics article{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:15px}.project-metrics small,.project-metrics strong,.project-metrics span{display:block}.project-metrics small{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.project-metrics strong{margin-top:8px;color:var(--navy);font-size:20px}.project-metrics span{margin-top:5px;color:var(--muted);font-size:11px}.project-metrics .metric-negative{color:var(--red)}.project-metrics .metric-positive{color:var(--green)}.project-detail-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.48fr);gap:16px;align-items:start}.project-detail-grid>main,.project-detail-grid>aside{display:grid;gap:16px}.project-detail-grid>aside{position:sticky;top:94px}.milestone-list{display:grid;gap:11px}.milestone-card{padding:16px;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:13px;background:var(--canvas)}.milestone-card.status-border-completed,.milestone-card.status-border-invoiced{border-left-color:var(--green)}.milestone-card.status-border-review{border-left-color:var(--violet)}.milestone-card.status-border-planned{border-left-color:var(--muted)}.milestone-card>header{display:flex;justify-content:space-between;gap:18px}.milestone-card h3{margin:9px 0 5px;color:var(--navy);font-size:15px}.milestone-card header p{max-width:760px;margin:0;color:var(--muted);font-size:12px;line-height:1.5}.milestone-meta{min-width:155px;text-align:right}.milestone-meta strong,.milestone-meta small{display:block}.milestone-meta strong{color:var(--navy);font-size:16px}.milestone-meta small{margin-top:5px;color:var(--muted);font-size:11px}.milestone-card>.project-progress{margin-top:14px}.milestone-card>footer{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px;color:var(--muted);font-size:11px}.milestone-actions{margin-top:13px}.milestone-actions form{display:flex;gap:7px}.milestone-actions select{min-height:35px}.milestone-editor{position:relative}.milestone-editor>summary,.project-create-milestone>summary{color:var(--blue);font-size:12px;font-weight:850;cursor:pointer}.milestone-editor[open]{width:100%}.milestone-editor[open] .milestone-form{margin-top:10px}.project-create-milestone{margin-top:15px;padding-top:14px;border-top:1px solid var(--line)}.milestone-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.milestone-form .span-2{grid-column:1/-1}.milestone-team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0;padding:12px;border:1px solid var(--line);border-radius:10px}.milestone-team legend{padding:0 5px;color:var(--muted);font-size:11px;font-weight:800}.project-entry-form,.project-item-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px;background:var(--canvas);border-radius:12px}.project-entry-form .span-2,.project-item-form .span-2{grid-column:span 2}.project-item-form{grid-template-columns:repeat(4,minmax(0,1fr))}.project-entry-list{display:grid;gap:7px;margin-top:14px}.project-entry-list>div{display:grid;grid-template-columns:80px 80px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;background:var(--canvas);border-radius:9px}.project-entry-list>div>span,.project-entry-list>div>strong{font-size:12px}.project-entry-list p{margin:0;color:var(--ink);font-size:12px}.project-entry-list p small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.text-button.danger{color:var(--red)}.project-ticket-list{display:grid;gap:7px}.project-ticket-list>a{display:grid;grid-template-columns:70px minmax(0,1fr) 75px;gap:12px;align-items:center;padding:12px;background:var(--canvas);border-radius:9px}.project-ticket-list span{color:var(--blue);font-size:11px;font-weight:900}.project-ticket-list strong,.project-ticket-list small{display:block}.project-ticket-list strong{color:var(--navy);font-size:10px}.project-ticket-list small{margin-top:3px;color:var(--muted);font-size:11px}.project-ticket-list b{text-align:right;font-size:12px}.project-ticket-link{display:grid;grid-template-columns:1.5fr 1fr auto;gap:10px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.project-facts span{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.project-facts h2{margin:0 0 15px;color:var(--navy)}.project-facts strong{color:var(--navy);text-align:right}.project-internal-note{border-color:#cabdff}.project-internal-note p:last-child,.project-internal-banner p:last-child{color:var(--muted);font-size:10px;line-height:1.55}.project-internal-banner{border-color:#9fcfe4}.project-ticket-banner,.project-invoice-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:14px 17px;color:var(--ink);background:var(--blue-soft);border:1px solid #c4d3f7;border-radius:13px}.project-ticket-banner span,.project-ticket-banner strong,.project-ticket-banner small{display:block}.project-ticket-banner span,.project-invoice-banner>strong{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.12em}.project-ticket-banner strong{margin-top:4px;color:var(--navy);font-size:13px}.project-ticket-banner small{margin-top:3px;color:var(--muted);font-size:11px}.project-invoice-banner span{font-size:10px}.project-invoice-banner a{color:var(--blue);font-weight:800}
html[data-theme="dark"] .project-card dl div,html[data-theme="dark"] .milestone-card,html[data-theme="dark"] .project-entry-form,html[data-theme="dark"] .project-item-form,html[data-theme="dark"] .project-entry-list>div,html[data-theme="dark"] .project-ticket-list>a{background:#172131}@media(prefers-color-scheme:dark){html:not([data-theme]) .project-card dl div,html:not([data-theme]) .milestone-card,html:not([data-theme]) .project-entry-form,html:not([data-theme]) .project-item-form,html:not([data-theme]) .project-entry-list>div,html:not([data-theme]) .project-ticket-list>a{background:#172131}}
@media(max-width:1180px){.project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-detail-grid{grid-template-columns:1fr}.project-detail-grid>aside{position:static}.project-metrics{grid-template-columns:repeat(2,1fr)}.project-item-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.project-filter,.project-card-grid,.project-metrics,.project-entry-form,.project-item-form,.project-ticket-link,.milestone-form{grid-template-columns:1fr}.project-entry-form .span-2,.project-item-form .span-2,.milestone-form .span-2{grid-column:auto}.milestone-card>header,.project-ticket-banner,.project-invoice-banner{align-items:flex-start;flex-direction:column}.milestone-meta{min-width:0;text-align:left}.milestone-actions,.milestone-actions form{align-items:stretch;flex-direction:column}.milestone-team{grid-template-columns:1fr}.project-entry-list>div{grid-template-columns:65px 65px 1fr}.project-entry-list>div>form{grid-column:3}.project-card dl{grid-template-columns:1fr}.project-ticket-list>a{grid-template-columns:60px 1fr}.project-ticket-list b{grid-column:2;text-align:left}}

/* v1.7.1 · geschützte Projekt- und Meilenstein-Dateien */
.project-create-milestone-primary{margin:14px 0;padding:0;border:0}.project-create-milestone-primary>summary.button{display:inline-flex;width:auto;color:#fff;list-style:none}.project-create-milestone-primary>summary.button::-webkit-details-marker{display:none}.project-create-milestone-primary[open]>summary.button{margin-bottom:10px}.project-file-upload{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;background:var(--canvas);border:1px solid var(--line);border-radius:12px}.project-file-upload .span-2{grid-column:1/-1}.project-file-picker input[type=file]{padding:10px;background:var(--surface)}.project-file-picker small{display:block;margin-top:5px;color:var(--muted);font-size:11px}.project-file-list{display:grid;gap:8px;margin-top:14px}.project-file-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;background:var(--canvas);border:1px solid transparent;border-radius:11px}.project-file-row:hover{border-color:var(--line)}.project-file-icon{display:grid;place-items:center;width:46px;height:46px;color:var(--blue);background:var(--blue-soft);border-radius:11px;font-size:12px;font-weight:950;letter-spacing:.04em}.project-file-row strong,.project-file-row span,.project-file-row small{display:block}.project-file-row>div>strong{overflow-wrap:anywhere;color:var(--navy);font-size:11px}.project-file-row>div>span{margin-top:3px;overflow-wrap:anywhere;color:var(--ink);font-size:11px}.project-file-row>div>small{margin-top:5px;color:var(--muted);font-size:10px;line-height:1.5}.project-file-actions{display:flex;align-items:center;gap:9px}.project-file-actions form{margin:0}.project-file-actions .text-button{font-size:11px}
html[data-theme="dark"] .project-file-upload,html[data-theme="dark"] .project-file-row{background:#172131}html[data-theme="dark"] .project-file-picker input[type=file]{background:var(--surface)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .project-file-upload,html:not([data-theme]) .project-file-row{background:#172131}html:not([data-theme]) .project-file-picker input[type=file]{background:var(--surface)}}
@media(max-width:720px){.project-file-upload{grid-template-columns:1fr}.project-file-upload .span-2{grid-column:auto}.project-file-row{grid-template-columns:45px minmax(0,1fr)}.project-file-actions{grid-column:2;align-items:flex-start;flex-direction:column}.project-file-actions .button{width:100%}}

/* v1.7.2 · Mitarbeiter- und WV-Kundenaccounts */

/* v1.7.3 · getrennte Vertragsbereiche und Home-Jahresverlängerung */
.contract-area-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 18px}.contract-area-tabs>a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:17px 19px;border:1px solid var(--border);border-radius:16px;background:var(--panel);color:var(--text);text-decoration:none}.contract-area-tabs>a>span{display:grid;place-items:center;width:45px;height:45px;border-radius:13px;background:var(--panel-strong);color:var(--accent);font-weight:900}.contract-area-tabs a div{display:flex;flex-direction:column;gap:3px}.contract-area-tabs a small{color:var(--muted)}.contract-area-tabs a>b{display:grid;place-items:center;min-width:32px;height:32px;padding:0 9px;border-radius:999px;background:var(--panel-strong);color:var(--accent)}.contract-area-tabs>a.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.contract-area-tabs>a.active>span{background:var(--accent);color:#fff}.contract-binding-fact.renewal-due,.contract-binding-card.renewal-due{border-color:#d98b25!important;background:color-mix(in srgb,#d98b25 12%,var(--panel-strong))!important}.contract-binding-fact.renewal-due em,.contract-binding-card.renewal-due span{color:#e69a32!important;font-weight:800}.home-renew-form{display:grid;gap:8px;margin-top:16px}.home-renew-form>small{color:var(--muted);line-height:1.45}.home-response-page{min-height:100vh;background:linear-gradient(145deg,#edf3ff,#f7f9fc);color:#17243a}.home-response-shell{width:min(680px,calc(100% - 32px));margin:0 auto;padding:48px 0}.home-response-shell>header{display:flex;align-items:center;gap:12px;margin-bottom:22px}.home-response-shell>header .brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#245eea;color:#fff;font-weight:900;font-size:24px}.home-response-shell>header div{display:flex;flex-direction:column}.home-response-shell>header strong{font-size:23px}.home-response-shell>header small{color:#63728d}.home-response-card{padding:34px;border-color:#cad5e8;background:#fff;box-shadow:0 24px 70px rgba(34,55,90,.12)}.home-response-card h1{margin:4px 0 16px;font-size:clamp(28px,5vw,42px)}.home-response-choice{display:grid;gap:6px;margin:24px 0;padding:18px;border-radius:13px;border:1px solid #a7bff9;background:#edf3ff}.home-response-choice.cancel{border-color:#e2aeb6;background:#fff3f5}.home-response-choice span,.home-response-security{color:#63728d}.home-response-success,.home-response-cancelled{margin:22px 0;padding:17px 18px;border-radius:12px;background:#e9f8f0;color:#0a6f46;font-weight:800}.home-response-cancelled{background:#fff2e5;color:#9a5700}.home-response-security{font-size:13px;margin-top:18px}.home-response-shell>footer{text-align:center;color:#63728d;font-size:13px;margin-top:18px}@media(max-width:720px){.contract-area-tabs{grid-template-columns:1fr}.home-response-shell{padding-top:24px}.home-response-card{padding:24px 20px}}
.user-admin-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.user-admin-tabs a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:13px 17px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:13px;font-size:13px;font-weight:800}.user-admin-tabs a:hover{color:var(--blue);border-color:#9db4ed}.user-admin-tabs a.active{color:#fff;background:var(--blue);border-color:var(--blue);box-shadow:0 10px 24px rgba(32,86,214,.18)}.user-admin-tabs strong{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;color:var(--blue);background:var(--blue-soft);border-radius:99px;font-size:10px}.user-admin-tabs a.active strong{background:#fff}.customer-account-panel{margin-bottom:18px}.customer-account-search{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:10px;align-items:end;margin:14px 0 18px;padding:13px;background:var(--canvas);border-radius:12px}.customer-account-table{min-width:1250px}.customer-account-table td{vertical-align:top}.customer-account-table td>a>strong{color:var(--blue)}.customer-account-table .status-pending{color:#9a5700;background:var(--orange-soft)}.customer-account-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px;max-width:235px}.customer-account-actions form{margin:0}.account-warning{display:block;margin-top:5px;color:var(--red);font-size:11px;font-weight:850}
html[data-theme="dark"] .user-admin-tabs a,html[data-theme="dark"] .customer-account-search{background:var(--surface)}html[data-theme="dark"] .user-admin-tabs a.active{background:var(--blue)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .user-admin-tabs a,html:not([data-theme]) .customer-account-search{background:var(--surface)}html:not([data-theme]) .user-admin-tabs a.active{background:var(--blue)}}
@media(max-width:760px){.user-admin-tabs,.customer-account-search{grid-template-columns:1fr}.customer-account-search .button{width:100%}.customer-account-actions{max-width:none;align-items:flex-start;flex-direction:column}}

/* v1.7.4 · eindeutige Vertragspriorität Firmen-WV vor WiFixIT Home */
.ticket-card.maintenance-priority:not(.blacklisted),.tablet-ticket-card.maintenance-priority:not(.blacklisted){border-color:#83b9a1;border-left-color:var(--green)}
.ticket-wv-priority,.tablet-ticket-wv{padding:7px 11px;color:#fff;background:linear-gradient(90deg,#087a55,#18a875);font-size:11px;font-weight:900;letter-spacing:.1em}
.tablet-ticket-wv{padding:6px 12px;font-size:10px}
.wv-ticket-badge{display:inline-flex;padding:6px 9px;color:#087a55;background:#e4f7ef;border-radius:7px;font-size:11px;font-weight:900;letter-spacing:.07em}
.contact-row.maintenance-priority:not(.blacklisted){border-left-color:var(--green)}
.mini-labels i.wv{color:#087a55;background:#e4f7ef;font-weight:850}
.contact-wv-banner{display:flex;align-items:center;gap:16px;margin:0 0 18px;padding:13px 17px;color:#fff;background:linear-gradient(90deg,#087a55,#18a875);border-radius:12px}
.contact-wv-banner strong{letter-spacing:.07em}.contact-wv-banner span{font-size:10px;opacity:.92}
.ticket-card.maintenance-priority .ticket-bulk-check{top:38px}
@media(max-width:720px){.contact-wv-banner{align-items:flex-start;flex-direction:column}}

/* v1.7.6 · Home-Jahreskontingent und manuelle Überfälligkeitsmail */
.home-remote-exhausted{display:grid;gap:4px;margin-top:13px;padding:12px 14px;border:1px solid #dc8b22;border-left:5px solid #dc8b22;border-radius:10px;background:#fff6e8;color:#7b4300}.home-remote-exhausted strong{font-size:11px;letter-spacing:.025em;text-transform:uppercase}.home-remote-exhausted span{font-size:12px;line-height:1.5}.home-usage-lifetime{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.home-usage-lifetime strong{color:var(--navy);text-transform:uppercase;letter-spacing:.04em}.home-overdue-mail-form{margin-top:12px}.home-ticket-quota-alert{display:flex;align-items:center;gap:18px;margin:-6px 0 18px;padding:16px 20px;border:1px solid #dc8b22;border-left:6px solid #dc8b22;border-radius:14px;background:#fff6e8;color:#7b4300;box-shadow:0 10px 26px rgba(123,67,0,.08)}.home-ticket-quota-alert strong{flex:0 0 auto;padding-right:18px;border-right:1px solid #e5b975;font-size:10px;letter-spacing:.08em}.home-ticket-quota-alert span{font-size:10px;line-height:1.55}.contract-card .home-remote-exhausted{margin-top:11px}
html[data-theme="dark"] .home-remote-exhausted,html[data-theme="dark"] .home-ticket-quota-alert{border-color:#d89a46;background:#392c1d;color:#ffd38f}html[data-theme="dark"] .home-usage-lifetime strong{color:var(--text)}
@media(max-width:720px){.home-ticket-quota-alert,.home-usage-lifetime{align-items:flex-start;flex-direction:column}.home-ticket-quota-alert strong{width:100%;padding:0 0 9px;border-right:0;border-bottom:1px solid #e5b975}.home-usage-lifetime{gap:5px}}

/* v1.7.12 · Kompakte Anfahrt und gestalteter Leistungsnachweis */
.contact-delete-card{margin-top:15px;padding:16px;border:1px solid #efbec4;border-radius:12px}.contact-delete-card form{margin-top:12px}

/* v1.7.13 · Wiedervorlage und Anfahrtserkennung über Artikelnummer 0003 */
.tablet-ticket-board{grid-template-columns:repeat(4,minmax(260px,1fr))}.status-follow_up{background:#c43745}.status-label.status-follow_up{background:#c43745}.customer-own-ticket .status-follow_up{color:var(--orange);background:var(--orange-soft)}.ticket-revision-flag{padding:7px 11px;color:#fff;background:#c43745;font-size:10px;font-weight:900;letter-spacing:.09em}.ticket-revision-alert{display:grid;gap:6px;margin:-6px 0 18px;padding:16px 20px;border:1px solid #df8b95;border-left:6px solid #c43745;border-radius:14px;background:#fff1f3;color:#7e1d28;box-shadow:0 10px 26px rgba(126,29,40,.08)}.ticket-revision-alert strong{font-size:10px;letter-spacing:.08em}.ticket-revision-alert span{font-size:11px;line-height:1.55}.ticket-revision-alert small{font-size:11px;color:#98515a}.invoice-reject-card{border-color:#efbec4;background:linear-gradient(145deg,var(--surface),var(--red-soft))}.invoice-reject-card h2{margin:0 0 7px;color:var(--red);font-size:16px}.invoice-reject-card p{color:var(--muted);font-size:12px;line-height:1.5}.invoice-reject-card textarea{margin-top:6px}html[data-theme="dark"] .ticket-revision-alert{border-color:#934d56;background:#352126;color:#ffb8c1}html[data-theme="dark"] .invoice-reject-card{background:var(--surface)}
@media(max-width:1100px){.tablet-ticket-board{grid-template-columns:repeat(4,290px);overflow-x:auto}}

/* v1.7.14 · kompakte Ticket-Arbeitsansicht */
.dashboard-grid.dashboard-grid-single{grid-template-columns:minmax(0,1fr)}
.ticket-work-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:-5px 0 16px}.ticket-work-nav a{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 4px 12px rgba(30,45,75,.035)}.ticket-work-nav a:hover{border-color:#9db4ed;background:var(--blue-soft)}.ticket-work-nav a>span{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;color:var(--blue);background:var(--blue-soft);font-size:14px;font-weight:900}.ticket-work-nav strong{color:var(--navy);font-size:10px}.ticket-work-nav small{color:var(--muted);font-size:11px}
.ticket-disclosure{padding:0;overflow:hidden}.ticket-disclosure>summary{list-style:none}.ticket-disclosure>summary::-webkit-details-marker{display:none}.ticket-disclosure-summary{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 46px 16px 18px;cursor:pointer;user-select:none}.ticket-disclosure-summary:after{content:'+';position:absolute;right:17px;top:50%;width:23px;height:23px;display:grid;place-items:center;transform:translateY(-50%);border-radius:7px;color:var(--blue);background:var(--blue-soft);font-size:16px;font-weight:800}.ticket-disclosure[open]>.ticket-disclosure-summary:after{content:'–'}.ticket-disclosure-summary h2{margin:3px 0 0;color:var(--navy);font-size:15px}.ticket-disclosure-summary small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.ticket-disclosure-summary .eyebrow{margin:0}.ticket-disclosure-summary .badge,.ticket-disclosure-summary .chatgpt-spark{margin-right:8px}.ticket-disclosure-body{padding:0 18px 18px;border-top:1px solid var(--line)}.ticket-disclosure-body>.ticket-section-empty:first-child,.ticket-disclosure-body>.ticket-mail-thread:first-child,.ticket-disclosure-body>.ticket-file-list:first-child,.ticket-disclosure-body>.ticket-history:first-child{margin-top:16px}
.ticket-inline-composer{margin-top:13px;border:1px solid var(--line);border-radius:10px;background:var(--canvas)}.ticket-inline-composer>summary{padding:11px 13px;color:var(--blue);font-size:12px;font-weight:850;cursor:pointer;list-style:none}.ticket-inline-composer>summary::-webkit-details-marker{display:none}.ticket-inline-composer[open]>summary{border-bottom:1px solid var(--line)}.ticket-inline-composer>form{margin:0;padding:14px}
.note-compose-disclosure{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--canvas)}.note-compose-disclosure>summary,.ticket-cost-entry-disclosure>summary{display:flex;align-items:center;gap:10px;padding:14px;cursor:pointer;list-style:none}.note-compose-disclosure>summary::-webkit-details-marker,.ticket-cost-entry-disclosure>summary::-webkit-details-marker{display:none}.note-compose-disclosure>summary>span,.ticket-cost-entry-disclosure>summary>span{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;font-weight:900}.note-compose-disclosure.service>summary>span{color:var(--green);background:var(--green-soft)}.note-compose-disclosure.internal>summary>span{color:var(--orange);background:var(--orange-soft)}.note-compose-disclosure summary strong,.note-compose-disclosure summary small,.ticket-cost-entry-disclosure summary strong,.ticket-cost-entry-disclosure summary small{display:block}.note-compose-disclosure summary strong,.ticket-cost-entry-disclosure summary strong{color:var(--navy);font-size:11px}.note-compose-disclosure summary small,.ticket-cost-entry-disclosure summary small{margin-top:3px;color:var(--muted);font-size:11px}.note-compose-disclosure[open]>summary,.ticket-cost-entry-disclosure[open]>summary{border-bottom:1px solid var(--line)}.note-compose-disclosure .note-compose{border:0;border-radius:0;background:transparent}.note-compose-disclosure .note-compose header{display:none}
.time-surcharge-disclosure{grid-column:1/-1;border:1px solid var(--line);border-radius:10px;background:var(--canvas)}.time-surcharge-disclosure>summary{padding:10px 13px;color:var(--blue);font-size:12px;font-weight:850;cursor:pointer;list-style:none}.time-surcharge-disclosure>summary::-webkit-details-marker{display:none}.time-surcharge-disclosure .time-surcharge-options{margin:0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
.ticket-cost-entry-disclosure{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--canvas)}.ticket-cost-entry-disclosure.catalog-entry>summary>span{color:var(--blue);background:var(--blue-soft)}.ticket-cost-entry-disclosure.free-entry>summary>span{color:var(--green);background:var(--green-soft)}.ticket-cost-entry-disclosure .ticket-cost-entry-form{border:0;border-radius:0;background:transparent}.ticket-cost-entry-disclosure .ticket-cost-entry-form header{display:none}
html[data-theme="dark"] .ticket-work-nav a,html[data-theme="dark"] .ticket-inline-composer,html[data-theme="dark"] .note-compose-disclosure,html[data-theme="dark"] .time-surcharge-disclosure,html[data-theme="dark"] .ticket-cost-entry-disclosure{background:var(--surface)}
@media(max-width:900px){.ticket-work-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.ticket-work-nav{grid-template-columns:1fr}.ticket-disclosure-summary{padding-right:42px}.ticket-disclosure-summary .badge,.ticket-disclosure-summary .chatgpt-spark{display:none}}

/* v1.7.15 · Arbeitszeiten eindeutig je Techniker */
.time-entry-form{grid-template-columns:minmax(150px,.65fr) 125px 90px minmax(210px,1fr) minmax(210px,.85fr) auto}.time-technician-readonly{display:flex;min-height:42px;flex-direction:column;justify-content:center;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--canvas)}.time-technician-readonly small,.time-technician-readonly strong,.time-technician-readonly span{display:block}.time-technician-readonly small{color:var(--muted);font-size:11px;font-weight:800}.time-technician-readonly strong{margin-top:2px;color:var(--navy);font-size:10px}.time-technician-readonly span{margin-top:2px;color:var(--muted);font-size:10px}.time-technician-totals{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--canvas)}.time-technician-totals>span small,.time-technician-totals>span strong{display:block}.time-technician-totals>span small{color:var(--blue);font-size:10px;font-weight:900;letter-spacing:.08em}.time-technician-totals>span strong{margin-top:4px;color:var(--navy);font-size:12px}.time-technician-totals>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.time-technician-totals>div>span{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;background:var(--surface)}.time-technician-totals b{color:var(--navy);font-size:12px}.time-technician-totals em{color:var(--blue);font-size:12px;font-style:normal;font-weight:900}.time-entry-list.editable-entry-list{margin-top:10px}.time-entry-technician{display:flex!important;min-width:120px;flex-direction:column;align-items:flex-end;gap:2px;text-align:right!important}.time-entry-technician span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.time-entry-technician b{color:var(--navy);font-size:12px}.entry-technician-readonly{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--canvas)}.entry-technician-readonly small{color:var(--muted);font-size:11px}.entry-technician-readonly strong{color:var(--navy);font-size:10px}
html[data-theme="dark"] .time-technician-readonly,html[data-theme="dark"] .time-technician-totals,html[data-theme="dark"] .entry-technician-readonly{background:#172131}@media(prefers-color-scheme:dark){html:not([data-theme]) .time-technician-readonly,html:not([data-theme]) .time-technician-totals,html:not([data-theme]) .entry-technician-readonly{background:#172131}}
@media(max-width:1280px){.time-entry-form{grid-template-columns:1fr 1fr}.time-entry-form .time-description,.time-entry-form .time-contract,.time-entry-form .button{grid-column:span 2}}
@media(max-width:760px){.time-technician-totals{align-items:flex-start;flex-direction:column}.time-technician-totals>div{width:100%;justify-content:flex-start}.time-entry-technician{grid-column:1/-1;min-width:0;align-items:flex-start;text-align:left!important}}
@media(max-width:620px){.time-entry-form{grid-template-columns:1fr}.time-entry-form .time-description,.time-entry-form .time-contract,.time-entry-form .button{grid-column:auto}.time-technician-totals>div{display:grid;grid-template-columns:1fr;width:100%}.time-technician-totals>div>span{justify-content:space-between}}

/* v1.7.19 · projektweiter Design- und Navigationspass */
.erp-body .topbar {
  gap: 22px;
  padding-inline: 24px;
}
.erp-body .brand { min-width: 184px; }
.erp-body .nav { gap: 2px; min-width: 0; }
.erp-body .nav > a,
.erp-body .nav-dropdown > summary { padding-inline: 11px; }
.erp-body .nav-dropdown > div { min-width: 230px; }
.erp-body .nav-dropdown > div a { line-height: 1.3; }

.account-menu { position: relative; }
.account-menu > summary {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 4px 8px 4px 5px;
  border: 1px solid transparent;
  border-radius: 12px;
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.account-menu > summary::-webkit-details-marker { display: none; }
.account-menu > summary:hover,
.account-menu[open] > summary { border-color: var(--line); background: var(--blue-soft); }
.account .account-avatar {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: #fff;
  background: linear-gradient(145deg, #2968ef, #1746b8);
  border-radius: 10px;
  font-size: 12px;
  font-weight: 900;
  text-align: center;
}
.account .account-copy { min-width: 0; text-align: left; }
.account .account-copy strong {
  max-width: 128px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.account .account-chevron {
  display: inline;
  color: var(--muted);
  font-size: 10px;
  text-align: center;
  transition: transform .15s ease;
}
.account-menu[open] .account-chevron { transform: rotate(180deg); }
.account-menu-panel {
  position: absolute;
  z-index: 60;
  top: calc(100% + 8px);
  right: 0;
  width: 240px;
  overflow: hidden;
  padding: 7px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 13px;
  box-shadow: 0 18px 40px rgba(20,35,63,.18);
}
.account-menu-panel header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 5px;
  padding: 9px;
  border-bottom: 1px solid var(--line);
}
.account-menu-panel header > span:last-child { min-width: 0; text-align: left; }
.account-menu-panel header strong,
.account-menu-panel header small { display: block; }
.account-menu-panel header strong {
  overflow: hidden;
  color: var(--navy);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.account-menu-panel header small { margin-top: 3px; color: var(--muted); font-size:12px; text-transform: capitalize; }
.account-menu-panel > a,
.account-menu-panel > form button {
  width: 100%;
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 11px;
  color: var(--ink);
  background: transparent;
  border: 0;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  text-align: left;
}
.account-menu-panel > a:hover,
.account-menu-panel > a.active { color: var(--blue); background: var(--blue-soft); }
.account-menu-panel > form { margin: 0; }
.account-menu-panel > form button { color: var(--red); }
.account-menu-panel > form button:hover { background: var(--red-soft); }

.erp-body :where(.heading-row, .panel-heading) > * { min-width: 0; }
.erp-body .heading-row { flex-wrap: wrap; }
.erp-body .page-heading h1 {
  max-width: 100%;
  overflow-wrap: anywhere;
  line-height: 1.08;
  text-wrap: balance;
}
.erp-body .page-heading p,
.erp-body .panel-heading p { max-width: 920px; line-height: 1.5; }
.erp-body .panel-heading { flex-wrap: wrap; }
.erp-body :where(form, fieldset) label { min-width: 0; }
.erp-body :where(input, select, textarea) { max-width: 100%; }
.erp-body :where(.button, button) { overflow-wrap: anywhere; text-align: center; }
.erp-body :where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid rgba(32,86,214,.25);
  outline-offset: 2px;
}
.erp-body :where(.table-wrap, .catalog-table-wrap, .invoice-table-wrap, .report-table) {
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}

.calendar-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}
.calendar-heading-copy { min-width: 0; }
.calendar-heading-copy h1 { font-size: clamp(30px, 3vw, 40px); }
.calendar-actions { flex-wrap: wrap; justify-content: flex-end; }
.calendar-pager { display: flex; align-items: center; gap: 8px; }
.calendar-pager .icon-button { flex: 0 0 auto; }

.milestone-form {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  gap: 14px;
  padding: 16px;
}
.milestone-form-section {
  display: grid;
  gap: 11px;
  min-width: 0;
  padding: 14px;
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: 11px;
}
.milestone-form-section > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--line);
}
.milestone-form-section > header strong { color: var(--navy); font-size: 12px; }
.milestone-form-section > header span { color: var(--muted); font-size:12px; text-align: right; }
.milestone-form-grid { display: grid; gap: 10px; min-width: 0; }
.milestone-form-basics { grid-template-columns: minmax(105px,.35fr) minmax(150px,.55fr) minmax(250px,1.5fr); }
.milestone-form-description { grid-column: 1 / -1; }
.milestone-form-schedule { grid-template-columns: repeat(3,minmax(0,1fr)); }
.milestone-form-financials { grid-template-columns: repeat(2,minmax(0,1fr)); }
.milestone-team {
  grid-template-columns: repeat(auto-fit,minmax(150px,1fr));
  gap: 8px;
  padding: 14px;
}
.milestone-team legend { font-size:12px; }
.milestone-team .check-label {
  align-items: center;
  min-height: 42px;
  padding: 8px 10px;
  background: var(--canvas);
  border: 1px solid var(--line);
  border-radius: 9px;
}
.milestone-team .check-label input { flex: 0 0 auto; }
.milestone-team .check-label span { min-width: 0; overflow-wrap: anywhere; }
.milestone-form-actions { display: flex; justify-content: flex-end; }
.milestone-form-actions .button { min-width: 220px; }

.project-card > p { height: auto; min-height: 48px; font-size: 11px; }
.project-card header em { font-size: 10px; }
.project-card dt { font-size:11px; }
.project-card dd { font-size: 11px; }
.milestone-card header p { font-size: 10px; }
.milestone-card > footer { font-size:12px; }
.milestone-editor > summary,
.project-create-milestone > summary { font-size: 10px; }
.project-entry-form,
.project-item-form { min-width: 0; }
.time-entry-form {
  grid-template-columns: minmax(145px,.65fr) 125px 90px minmax(220px,1.35fr);
}
.time-entry-form .time-contract { grid-column: 1 / 4; }
.time-entry-form > .button { grid-column: 4; }

html[data-theme="dark"] .account-menu-panel,
html[data-theme="dark"] .account-menu-panel { background: var(--surface); }
@media (prefers-color-scheme: dark) {
  html:not([data-theme]) .account-menu-panel { background: var(--surface); }
}

@media (max-width: 1200px) {
  .calendar-heading { grid-template-columns: 1fr; align-items: stretch; }
  .calendar-actions { width: 100%; justify-content: flex-start; }
  .calendar-heading-copy h1 { font-size: clamp(30px,4vw,38px); }
  .milestone-form-basics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .milestone-form-title,
  .milestone-form-description { grid-column: 1 / -1; }
  .milestone-form-schedule { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .milestone-form-billing { grid-column: 1 / -1; }
  .time-entry-form { grid-template-columns: 1fr 1fr; }
  .time-entry-form .time-description,
  .time-entry-form .time-contract,
  .time-entry-form > .button { grid-column: 1 / -1; }
}

@media (min-width: 761px) and (max-width: 1280px) {
  .erp-body .account .theme-button span,
  .erp-body .account .account-avatar,
  .erp-body .account .account-chevron { display: grid; }
  .erp-body .account .account-copy { display: none; }
  .erp-body .account-menu > summary { width: 46px; height: 46px; padding: 5px; }
  .erp-body .account-menu .account-chevron { display: none; }
  .erp-body .account-menu-panel { top: 54px; }
}

@media (max-width: 960px) {
  .project-filter { grid-template-columns: 1fr 1fr; }
  .project-filter .button { grid-column: 1 / -1; }
  .project-entry-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .project-entry-form .span-2 { grid-column: 1 / -1; }
  .milestone-form-section > header { align-items: flex-start; flex-direction: column; }
  .milestone-form-section > header span { text-align: left; }
}

@media (max-width: 760px) {
  .erp-body .account .theme-button span,
  .erp-body .account .account-avatar,
  .erp-body .account .account-chevron { display: grid; }
  .erp-body .account .account-copy { display: none; }
  .erp-body .account-menu > summary { width: 42px; height: 42px; padding: 4px; }
  .erp-body .account-menu .account-chevron { display: none; }
  .erp-body .account-menu-panel { position: fixed; top: 66px; right: 12px; }
  .erp-body .nav-dropdown > div { left: 12px; right: 12px; min-width: 0; }
  .erp-body .heading-row { width: 100%; align-items: stretch; }
  .erp-body .heading-row > :where(.button, form, nav),
  .erp-body .heading-row > :where(.button, form) .button { width: 100%; }
  .erp-body .panel-heading > :where(.button, form, nav) { max-width: 100%; }
  .calendar-actions { display: grid; grid-template-columns: 1fr auto; }
  .calendar-actions > .button-primary { grid-column: 1 / -1; width: 100%; }
  .calendar-pager { justify-content: flex-end; }
  .project-filter,
  .project-entry-form,
  .milestone-form-basics,
  .milestone-form-schedule,
  .milestone-form-financials { grid-template-columns: 1fr; }
  .project-filter .button,
  .project-entry-form .span-2,
  .milestone-form-title,
  .milestone-form-description,
  .milestone-form-billing { grid-column: auto; }
  .time-entry-form { grid-template-columns: 1fr; }
  .time-entry-form .time-description,
  .time-entry-form .time-contract,
  .time-entry-form > .button { grid-column: auto; }
  .milestone-form { padding: 11px; }
  .milestone-form-section { padding: 12px; }
  .milestone-form-actions .button { width: 100%; min-width: 0; }
}

@media (max-width: 460px) {
  .erp-body .brand small { display: none; }
  .erp-body .account { gap: 7px; }
  .erp-body .account .icon-button,
  .erp-body .notification-menu > summary,
  .erp-body .account-menu > summary { width: 40px; height: 40px; }
  .calendar-actions { grid-template-columns: 1fr; }
  .calendar-actions .segmented,
  .calendar-pager { width: 100%; }
  .calendar-actions .segmented a { flex: 1; text-align: center; }
  .calendar-pager { justify-content: space-between; }
  .calendar-pager .button { flex: 1; }
}

/* v1.7.20 · Feinschliff nach Oberflächenprüfung */
.erp-body a.icon-button {
  display: inline-grid;
  place-items: center;
  padding: 0;
  line-height: 1;
  text-align: center;
}
.milestone-editor .milestone-form,
.project-create-milestone .milestone-form {
  width: 100%;
  min-width: 0;
  display: flex !important;
  align-items: stretch;
  flex-direction: column;
  gap: 14px;
}
.milestone-editor .milestone-form > *,
.project-create-milestone .milestone-form > * {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  grid-column: 1 / -1 !important;
}
.milestone-form-section,
.milestone-form-grid,
.milestone-team { min-width: 0; max-width: 100%; }
.milestone-form-grid > label,
.milestone-team > label { min-width: 0; max-width: 100%; }
.milestone-form-actions .button { min-height: 46px; }

.ticket-board-hint {
  width: fit-content;
  display: flex;
  align-items: center;
  gap: 7px;
  margin: -2px 0 12px auto;
  color: var(--muted);
  font-size:12px;
  font-weight: 750;
}
.ticket-board-hint span {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  color: var(--blue);
  background: var(--blue-soft);
  border-radius: 7px;
  font-size: 13px;
}
.ticket-card[draggable="true"] { cursor: grab; touch-action: manipulation; }
.ticket-card[draggable="true"]:active { cursor: grabbing; }
.ticket-card.is-dragging {
  opacity: .42;
  transform: rotate(.6deg) scale(.985);
  box-shadow: none;
}
.ticket-lane.is-drop-target {
  border-color: var(--blue);
  box-shadow: inset 0 0 0 2px rgba(32,86,214,.14);
}
.ticket-lane.is-drop-target .ticket-lane-list { background: rgba(32,86,214,.045); }
.ticket-lane.is-saving { opacity: .72; }
.ticket-board-toast {
  position: fixed;
  z-index: 100;
  right: 22px;
  bottom: 22px;
  max-width: min(390px,calc(100vw - 32px));
  padding: 13px 16px;
  color: #fff;
  background: #087a55;
  border-radius: 11px;
  box-shadow: 0 16px 40px rgba(0,0,0,.24);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.45;
}
.ticket-board-toast.error { background: var(--red); }
@media (hover: none), (pointer: coarse) {
  .ticket-board-hint { display: none; }
  .ticket-card[draggable="true"] { cursor: default; }
}
@media (max-width: 720px) {
  .milestone-form-basics,
  .milestone-form-schedule,
  .milestone-form-financials { grid-template-columns: minmax(0,1fr); }
  .milestone-form-title,
  .milestone-form-description,
  .milestone-form-billing { grid-column: auto; }
  .ticket-board-toast { right: 16px; bottom: 16px; }
}

/* v1.7.21 mitarbeitergebundener Außendienst */
.field-service-team { min-width: 0; margin: 0; padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: color-mix(in srgb,var(--panel) 82%,var(--blue-soft)); }
.field-service-team > legend { padding: 0 5px; color: var(--navy); font-size:12px; font-weight: 850; }
.field-service-team > small { display: block; margin-top: 7px; color: var(--muted); font-size:10px; line-height: 1.45; }
.field-service-team-options { display: grid; gap: 6px; max-height: 172px; overflow-y: auto; scrollbar-width: thin; }
.field-service-team-options > label { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 8px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); cursor: pointer; }
.field-service-team-options > label:has(input:checked) { border-color: color-mix(in srgb,var(--blue) 46%,var(--border)); background: var(--blue-soft); }
.field-service-team-options input { width: 16px; height: 16px; flex: 0 0 auto; margin: 0; }
.field-service-team-options span { min-width: 0; }
.field-service-team-options strong, .field-service-team-options small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.field-service-team-options strong { color: var(--navy); font-size:12px; }
.field-service-team-options small { margin-top: 2px; color: var(--muted); font-size:10px; }
html[data-theme="dark"] .field-service-team { background: var(--surface); }
@media (prefers-color-scheme: dark) { html:not([data-theme]) .field-service-team { background: var(--surface); } }
@media (max-width: 760px) {
  .field-service-timeline { padding-inline: 8px; }
  .field-service-timeline-axis, .field-service-timeline-row { grid-template-columns: 105px minmax(0,1fr); }
  .field-service-timeline-board { min-width: 610px; }
}

/* v1.7.22 · flexible Kunden- und Mitarbeiterzuordnung */
.contact-profile-editor {
  margin: 14px 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--panel);
}
.contact-profile-editor > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 15px;
  list-style: none;
  cursor: pointer;
}
.contact-profile-editor > summary::-webkit-details-marker { display: none; }
.contact-profile-editor > summary strong,
.contact-profile-editor > summary small { display: block; }
.contact-profile-editor > summary strong { color: var(--navy); font-size: 11px; }
.contact-profile-editor > summary small { margin-top: 3px; color: var(--muted); font-size:11px; }
.contact-profile-editor > summary em { color: var(--blue); font-size:12px; font-style: normal; font-weight: 850; }
.contact-profile-editor[open] > summary { border-bottom: 1px solid var(--border); background: var(--blue-soft); }
.contact-profile-editor .manual-contact-form { padding: 15px; }
.ticket-unassigned-customer-alert { border-color: color-mix(in srgb,var(--orange) 46%,var(--border)); }
.ticket-no-customer-copy,
.ticket-customer-locked { display: block; margin: 12px 0 0; color: var(--muted); font-size:12px; line-height: 1.5; }
.ticket-customer-reassign { margin-top: 14px; border-top: 1px solid var(--line); }
.ticket-customer-reassign > summary { padding: 12px 0 4px; color: var(--blue); font-size: 10px; font-weight: 850; cursor: pointer; }
.ticket-customer-reassign .stack-form { margin-top: 9px; }
.ticket-customer-reassign .stack-form > small { color: var(--muted); font-size:11px; line-height: 1.45; }
.calendar-employee-team { margin-bottom: 2px; }
@media (max-width: 700px) {
  .contact-profile-editor > summary { align-items: flex-start; }
  .contact-profile-editor > summary em { display: none; }
}

/* v1.7.23 · Ticketfluss, Buchhaltungsstatus und Leistungsnachweis-Fotos */
.tablet-ticket-board { grid-template-columns:repeat(6,minmax(260px,1fr)); }
.customer-own-ticket .status-finished,
.customer-own-ticket .status-invoiced { color:var(--green); background:var(--green-soft); }
.contract-month-ticket-row:has(.status-finished) { border-left-color:#087f8c; }
.contract-month-ticket-row:has(.status-invoiced) { border-left-color:#5546b8; }
html[data-theme="dark"] .ticket-system-status { background:#273449; }
@media (prefers-color-scheme: dark) {
  html:not([data-theme]) .report-photo-picker,
  html:not([data-theme]) .ticket-system-status { background:#273449; border-color:#52627e; }
}
@media (max-width:1100px) {
  .tablet-ticket-board { grid-template-columns:repeat(6,290px); overflow-x:auto; }
}
/* v1.7.26 · Positionsbezogene Rabatte */
.discount-badge{display:inline-flex;align-items:center;width:max-content;padding:2px 7px;border-radius:999px;background:#e8f5ec;color:#176b39;font-size:.75rem;font-weight:800;white-space:nowrap}

/* v1.7.27 · Arbeitszeit-Rabatte */
.labor-discount-field{max-width:360px}.labor-discount-field small{display:block;margin-top:5px;color:var(--muted);line-height:1.4}.milestone-invoice-submit{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.milestone-invoice-submit label{min-width:155px;font-size:.78rem;font-weight:800}.milestone-invoice-submit input{margin-top:4px;min-height:38px}.milestone-invoice-submit .button{min-height:38px}

/* v1.7.29 · WV-Prüfung, Hidden Board und Ticketwert */
.wv-contract-groups{display:grid;gap:14px}.wv-contract-group{overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.wv-contract-group>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:18px;padding:14px 16px;background:color-mix(in srgb,var(--blue-soft) 55%,var(--surface));cursor:pointer;list-style:none;user-select:none}.wv-contract-group>summary::-webkit-details-marker{display:none}.wv-contract-group>summary:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 45%,transparent);outline-offset:-3px}.wv-contract-group[open]>summary{border-bottom:1px solid var(--line)}.wv-contract-group>summary>.wv-assignment-check{margin-top:0}
.wv-contract-group-identity span{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.wv-contract-group-identity h3{margin:3px 0;color:var(--navy);font-size:15px}.wv-contract-group-identity p{margin:0;color:var(--muted);font-size:11px}
.wv-contract-group-total{display:grid;gap:2px;text-align:right}.wv-contract-group-total small{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.08em}.wv-contract-group-total strong{color:var(--navy);font-size:14px}.wv-contract-group-total em{color:var(--muted);font-size:10px;font-style:normal;font-weight:750}.wv-contract-group-total em:first-letter{font-weight:900}
.wv-contract-toggle{display:inline-flex;align-items:center;gap:7px;color:var(--blue);font-size:11px;font-weight:850}.wv-contract-toggle b{display:grid;place-items:center;width:25px;height:25px;border-radius:999px;background:var(--surface);box-shadow:0 0 0 1px var(--border);font-size:15px;line-height:1;transition:transform .18s ease}.wv-contract-group[open] .wv-contract-toggle b{transform:rotate(180deg)}
.wv-contract-usage{height:5px;background:var(--line)}.wv-contract-usage span{display:block;height:100%;border-radius:0 999px 999px 0;background:var(--blue)}.wv-contract-group.has-overage .wv-contract-usage span{background:#d97706}.wv-contract-group.has-overage .wv-contract-group-total em{color:#b45309;font-weight:850}
.wv-group-ticket-list{gap:0}.wv-group-ticket-list article{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:11px 16px}.wv-group-ticket-list article:last-child{border-bottom:0}.wv-group-ticket-list .wv-ticket-minutes{font-size:10px;text-align:right}
.wv-contract-reference{display:flex!important;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px!important;padding-top:7px;border-top:1px solid var(--line)}
.wv-contract-reference b{color:var(--navy);font-size:11px}.wv-contract-reference span{color:var(--muted)}
.wv-assignment-check{display:inline-flex;width:max-content;align-items:center;margin-top:7px;padding:4px 8px;border-radius:999px;font-size:10px;font-style:normal;font-weight:850;letter-spacing:.02em}
.wv-assignment-check.is-valid{background:#e8f7ee;color:#17663a}.wv-assignment-check.is-warning{background:#fff0d9;color:#9a4f00;border:1px solid #efbd72}
.ticket-live-price{display:grid;gap:2px;min-width:178px;padding:9px 12px;border:1px solid color-mix(in srgb,var(--blue) 34%,var(--border));border-radius:11px;background:var(--blue-soft);line-height:1.15}.ticket-live-price small{color:var(--blue);font-size:10px;font-weight:900;letter-spacing:.08em}.ticket-live-price strong{color:var(--navy);font-size:12px}.ticket-live-price span{color:var(--muted);font-size:12px;font-weight:800}.ticket-live-price em{margin-top:2px;color:var(--muted);font-size:10px;font-style:normal}.wv-auto-assignment{border-color:color-mix(in srgb,var(--green) 42%,var(--border));background:var(--green-soft)}
.wv-queue-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.wv-queue-metrics article{display:grid;gap:4px;padding:15px;border:1px solid var(--border);border-radius:13px;background:var(--panel);box-shadow:var(--shadow)}.wv-queue-metrics small{color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase}.wv-queue-metrics strong{color:var(--navy);font-size:26px}.wv-queue-metrics span{color:var(--muted);font-size:11px}
.wv-review-panel,.wv-marked-panel,.wv-collected-panel{margin-bottom:16px}.wv-review-list{display:grid;gap:12px}.wv-review-card{overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.wv-review-card>header{display:flex;justify-content:space-between;gap:18px;padding:14px;border-bottom:1px solid var(--line)}.wv-review-card>header span,.wv-review-card>header small{display:block;color:var(--muted);font-size:11px}.wv-review-card h3{margin:4px 0;color:var(--navy);font-size:14px}.wv-review-value{flex:0 0 auto;text-align:right}.wv-review-value strong{display:block;margin:3px 0;color:var(--navy);font-size:12px}.wv-review-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:18px;padding:14px}.wv-review-body>p{margin:0;color:var(--text);font-size:12px;line-height:1.55}.wv-review-body dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.wv-review-body dl div{padding:8px;border-radius:8px;background:var(--panel)}.wv-review-body dt{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.wv-review-body dd{margin:3px 0 0;color:var(--navy);font-size:11px;font-weight:800}.wv-review-card>footer{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid var(--line);background:var(--panel)}.wv-mark-form{display:flex;align-items:flex-end;gap:9px}.wv-mark-form label{font-size:11px;font-weight:800}.wv-mark-form input{display:block;margin-top:4px;min-height:38px}.wv-compact-list{display:grid;gap:7px}.wv-compact-list article{display:grid;grid-template-columns:80px minmax(0,1fr) 170px 115px;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.wv-compact-list article>span{color:var(--blue);font-size:11px;font-weight:900}.wv-compact-list strong,.wv-compact-list small{display:block}.wv-compact-list strong{color:var(--navy);font-size:12px}.wv-compact-list small{margin-top:2px;color:var(--muted);font-size:10px}.wv-compact-list b{color:var(--navy);font-size:11px}.wv-compact-list a{color:var(--blue);font-size:11px;font-weight:850;text-align:right}.wv-invoice-service-list{display:grid;gap:9px}.wv-invoice-service-list article{display:grid;gap:7px;padding:12px;border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:9px;background:var(--surface)}.wv-invoice-service-list header{display:flex;justify-content:space-between;gap:14px}.wv-invoice-service-list header span{color:var(--blue);font-size:11px;font-weight:900}.wv-invoice-service-list header strong{color:var(--navy);font-size:10px}.wv-invoice-service-list p{margin:0;color:var(--text);font-size:11px;line-height:1.5}.wv-invoice-service-list small{color:var(--muted);font-size:10px;line-height:1.4}.wv-invoice-service-list a{color:var(--blue);font-size:11px;font-weight:850}
html[data-theme="dark"] .ticket-live-price,html[data-theme="dark"] .wv-auto-assignment{background:var(--surface)}
.contact-ticket-history{margin:14px 0;border:1px solid var(--border);border-radius:11px;background:var(--panel)}.contact-ticket-history>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;cursor:pointer;list-style:none}.contact-ticket-history>summary::-webkit-details-marker{display:none}.contact-ticket-history>summary strong,.contact-ticket-history>summary small{display:block}.contact-ticket-history>summary strong{color:var(--navy);font-size:10px}.contact-ticket-history>summary small{margin-top:2px;color:var(--muted);font-size:10px}.contact-ticket-history>summary b{display:grid;place-items:center;min-width:26px;height:26px;border-radius:999px;background:var(--blue-soft);color:var(--blue);font-size:12px}.contact-ticket-history>div{display:grid;gap:6px;padding:0 10px 10px}.contact-ticket-history article{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.contact-ticket-history article strong,.contact-ticket-history article small{display:block}.contact-ticket-history article strong{color:var(--navy);font-size:11px}.contact-ticket-history article small{margin-top:3px;color:var(--muted);font-size:10px}.contact-ticket-history-actions{display:grid;gap:3px;text-align:right}.contact-ticket-history-actions a{color:var(--blue);font-size:10px;font-weight:850}
@media (max-width:900px){.ticket-heading-actions{align-items:stretch}.ticket-live-price{min-width:150px}.wv-review-body{grid-template-columns:1fr}.wv-compact-list article{grid-template-columns:70px minmax(0,1fr) 130px}.wv-compact-list article>a{grid-column:2/-1;text-align:left}.wv-contract-group>summary{grid-template-columns:minmax(0,1fr) auto auto}.wv-contract-group>summary>.wv-assignment-check{grid-column:1/-1;margin-top:0}.wv-contract-toggle{grid-column:3;grid-row:1}}
@media (max-width:650px){.wv-queue-metrics{grid-template-columns:1fr}.wv-review-card>header,.wv-review-card>footer{align-items:stretch;flex-direction:column}.wv-review-value{text-align:left}.wv-mark-form{align-items:stretch;flex-direction:column}.wv-review-body dl{grid-template-columns:1fr}.wv-compact-list article{grid-template-columns:1fr}.wv-compact-list article>a{grid-column:auto}.ticket-live-price{width:100%}.wv-invoice-service-list header{align-items:flex-start;flex-direction:column}.contact-ticket-history article{grid-template-columns:1fr}.contact-ticket-history-actions{text-align:left}.wv-contract-group>summary{grid-template-columns:minmax(0,1fr) auto;gap:10px}.wv-contract-group-total{grid-column:1/-1;text-align:left}.wv-contract-group>summary>.wv-assignment-check{grid-column:1/-1}.wv-contract-toggle{grid-column:2;grid-row:1}.wv-contract-toggle>span{display:none}.wv-group-ticket-list .wv-ticket-minutes{text-align:left}}

/* v1.7.36 · lesbare Mindestgrößen und direkt aufrufbare WV-Tickets */
.wv-group-ticket-list article{grid-template-columns:minmax(0,1fr) auto;gap:0;padding:0}
.wv-ticket-open{display:grid;grid-template-columns:80px minmax(0,1fr) 100px;align-items:center;gap:12px;min-width:0;padding:13px 16px;color:var(--text)!important;text-align:left!important;border-radius:0;transition:background .15s ease,box-shadow .15s ease}
.wv-ticket-open>span{color:var(--blue);font-size:11px;font-weight:900}
.wv-ticket-open:hover{background:var(--blue-soft)}
.wv-ticket-open:focus-visible{position:relative;z-index:1;outline:3px solid color-mix(in srgb,var(--blue) 45%,transparent);outline-offset:-3px}
.wv-ticket-report{margin-right:16px;white-space:nowrap}
@media(max-width:900px){.wv-ticket-open{grid-template-columns:70px minmax(0,1fr) 90px}}
@media(max-width:650px){.wv-group-ticket-list article{grid-template-columns:1fr}.wv-ticket-open{grid-template-columns:1fr;gap:4px;padding-bottom:8px}.wv-ticket-report{margin:0;padding:0 16px 13px;text-align:left!important}.wv-group-ticket-list .wv-ticket-minutes{text-align:left}}

/* v1.7.37 · E-Mail-Anhänge direkt aus der Ticketakte */
.ticket-mail-attachments{grid-column:1/-1;display:grid;gap:11px;margin:0;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}
.ticket-mail-attachments legend{padding:0 7px;color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.ticket-mail-attachments>p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.ticket-mail-file-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:220px;overflow:auto;padding-right:3px}
.ticket-mail-file-options label{display:flex;align-items:flex-start;gap:9px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer}
.ticket-mail-file-options label:has(input:checked){border-color:var(--blue);background:var(--blue-soft);box-shadow:0 0 0 1px var(--blue) inset}
.ticket-mail-file-options input{width:18px;height:18px;min-height:0;flex:0 0 auto;margin:1px 0 0;accent-color:var(--blue)}
.ticket-mail-file-options span,.ticket-mail-file-options strong,.ticket-mail-file-options small{display:block;min-width:0}
.ticket-mail-file-options span{overflow:hidden}.ticket-mail-file-options strong{overflow:hidden;color:var(--navy);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.ticket-mail-file-options small{margin-top:4px;color:var(--muted);font-size:10px;font-weight:600}
.ticket-mail-new-files{display:grid;grid-template-columns:minmax(190px,.45fr) minmax(0,1fr);align-items:center;gap:12px;padding:12px;border:1px dashed color-mix(in srgb,var(--blue) 45%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--blue-soft) 32%,var(--surface))}
.ticket-mail-new-files span,.ticket-mail-new-files strong,.ticket-mail-new-files small{display:block}.ticket-mail-new-files strong{color:var(--navy);font-size:12px}.ticket-mail-new-files small{margin-top:3px;color:var(--muted);font-size:10px;font-weight:600;line-height:1.4}.ticket-mail-new-files input{min-width:0;padding:9px;background:var(--surface)}
.ticket-mail-attachment-limit,.ticket-mail-no-files{color:var(--muted);font-size:10px;line-height:1.45}.ticket-mail-no-files{padding:10px 12px;border-radius:9px;background:var(--canvas)}
.ticket-mail-message>em{overflow-wrap:anywhere;line-height:1.45}
@media(max-width:700px){.ticket-mail-file-options{grid-template-columns:1fr}.ticket-mail-new-files{grid-template-columns:1fr}}

/* v1.7.40 · durchsuchbare Langlisten und Kalender-Drag-and-drop */
.select-search-shell{display:grid;width:100%;gap:6px}.select-search-input{width:100%;min-height:38px;padding:8px 12px 8px 34px;border:1px solid var(--line);border-radius:9px;color:var(--navy);background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23677a9b' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:11px center;font:inherit}.select-search-input:focus{outline:3px solid rgba(37,99,235,.16);border-color:var(--blue)}.select-search-shell>select{width:100%}.select-search-shell.is-disabled{opacity:.72}.select-search-empty{display:block;color:var(--danger);font-size:12px;font-weight:700}.select-search-empty[hidden]{display:none}html[data-theme="dark"] .select-search-input{color:#f3f7ff;background-color:#141d2b}
.calendar-drag-hint{display:flex;align-items:center;gap:7px;margin:0 0 8px;color:var(--muted);font-size:12px;font-weight:700}.calendar-drag-hint span{display:inline-grid;place-items:center;width:22px;height:22px;color:var(--blue);background:rgba(37,99,235,.1);border-radius:7px}.event-card[draggable="true"]{cursor:grab}.event-card[draggable="true"]:active{cursor:grabbing}.event-card.is-dragging{opacity:.42;transform:scale(.98)}.event-card.is-moving{opacity:.55;pointer-events:none}.calendar-day{transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.calendar-day.is-calendar-drop-target{border-color:var(--blue);background:rgba(37,99,235,.07);box-shadow:inset 0 0 0 2px rgba(37,99,235,.17)}.calendar-day.is-calendar-drop-target .day-events{min-height:110px}html[data-theme="dark"] .calendar-day.is-calendar-drop-target{background:rgba(45,105,235,.14)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .select-search-input{color:#f3f7ff;background-color:#141d2b}html:not([data-theme]) .calendar-day.is-calendar-drop-target{background:rgba(45,105,235,.14)}}@media(pointer:coarse){.calendar-drag-hint{display:none}}

/* v1.8.0 · WhatsApp Business und präzises Kalender-Verschieben */
.nav-whatsapp{display:inline-flex!important;align-items:center;gap:6px}.nav-whatsapp b{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;color:#fff;background:#20a864;border-radius:99px;font-size:9px}.whatsapp-heading .badge{align-self:center}.whatsapp-shell{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:16px;min-height:670px}.whatsapp-sidebar,.whatsapp-main{padding:0;overflow:hidden}.whatsapp-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:14px;border-bottom:1px solid var(--border)}.whatsapp-tabs{margin:10px 14px}.whatsapp-conversation-list{max-height:610px;overflow:auto}.whatsapp-conversation{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;padding:12px 14px;color:inherit;border-top:1px solid var(--border);text-decoration:none}.whatsapp-conversation:hover,.whatsapp-conversation.active{background:var(--blue-soft)}.whatsapp-conversation.unread{box-shadow:inset 3px 0 #20a864}.whatsapp-conversation>span:nth-child(2){min-width:0}.whatsapp-conversation strong,.whatsapp-conversation small,.whatsapp-conversation em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whatsapp-conversation strong{color:var(--navy);font-size:13px}.whatsapp-conversation small{margin-top:3px;color:var(--muted);font-size:11px}.whatsapp-conversation em{margin-top:4px;color:var(--blue);font-size:10px;font-style:normal;font-weight:750}.whatsapp-conversation time{color:var(--muted);font-size:9px}.whatsapp-conversation>b{position:absolute;right:13px;bottom:10px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;color:#fff;background:#20a864;border-radius:99px;font-size:9px}.whatsapp-avatar{display:grid;place-items:center;width:38px;height:38px;color:#fff;background:linear-gradient(145deg,#20a864,#08764d);border-radius:50%;font-weight:900}.whatsapp-main{display:grid;grid-template-rows:auto auto minmax(280px,1fr) auto;min-width:0}.whatsapp-empty{display:grid;place-items:center;align-content:center;min-height:620px;padding:50px;text-align:center}.whatsapp-empty>span{font-size:48px;color:#20a864}.whatsapp-empty h2{margin:8px 0}.whatsapp-empty p{max-width:520px;color:var(--muted);line-height:1.6}.whatsapp-chat-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 18px;border-bottom:1px solid var(--border)}.whatsapp-chat-header h2{margin:2px 0}.whatsapp-chat-header small{color:var(--muted)}.whatsapp-chat-actions{display:flex;align-items:center;gap:8px}.whatsapp-assignment{border-bottom:1px solid var(--border);background:var(--panel)}.whatsapp-assignment>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;cursor:pointer}.whatsapp-assignment>summary strong,.whatsapp-assignment>summary small{display:block}.whatsapp-assignment>summary small{margin-top:2px;color:var(--muted)}.whatsapp-assignment>summary>span:last-child{color:var(--blue);font-size:11px;font-weight:800}.whatsapp-assignment-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 18px 14px}.whatsapp-assignment-form>.check-label,.whatsapp-assignment-form>button{align-self:end}.whatsapp-create-ticket{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin:0 18px 14px;padding-top:12px;border-top:1px solid var(--border)}.whatsapp-thread{min-height:280px;max-height:650px;overflow:auto;padding:20px;background:color-mix(in srgb,var(--panel) 82%,#d7efe3 18%)}.whatsapp-message{display:flex;margin:0 0 10px}.whatsapp-message.outbound{justify-content:flex-end}.whatsapp-message>div{max-width:min(78%,720px);padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:4px 14px 14px 14px;box-shadow:0 3px 12px rgba(20,35,63,.06)}.whatsapp-message.outbound>div{background:color-mix(in srgb,var(--blue-soft) 75%,#d9f7e6 25%);border-radius:14px 4px 14px 14px}.whatsapp-message small,.whatsapp-message time,.whatsapp-message em{display:block}.whatsapp-message small{color:#188b5a;font-size:10px;font-weight:850}.whatsapp-message p{margin:6px 0;line-height:1.5;white-space:normal;overflow-wrap:anywhere}.whatsapp-message time{color:var(--muted);font-size:9px;text-align:right}.whatsapp-message em{margin-top:5px;color:var(--danger);font-size:10px}.whatsapp-media-link{display:grid;gap:6px;margin:8px 0;color:var(--blue);font-size:11px;font-weight:750;text-decoration:none}.whatsapp-media-link img{display:block;width:min(100%,340px);max-height:260px;object-fit:cover;border-radius:9px}.whatsapp-composer{padding:14px 18px;border-top:1px solid var(--border)}.whatsapp-text-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.whatsapp-text-compose textarea{min-height:76px;resize:vertical}.whatsapp-media-compose{margin-top:9px}.whatsapp-media-compose>summary{color:var(--blue);font-size:11px;font-weight:800;cursor:pointer}.whatsapp-media-compose form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin-top:9px}.whatsapp-window-note{margin:8px 0 0;color:#188b5a;font-size:10px;font-weight:750}.whatsapp-template-compose{display:grid;grid-template-columns:minmax(180px,1fr) 110px auto;gap:10px;align-items:end}.whatsapp-token-once{margin-bottom:16px;border-color:#20a864}.whatsapp-token-once code{display:block;margin:12px 0;padding:12px;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:9px;font-size:13px}.whatsapp-settings-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)}.whatsapp-setting-actions{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.whatsapp-webhook-setup ol{padding-left:20px;color:var(--muted);line-height:1.6}.whatsapp-webhook-setup li{margin-bottom:7px}.settings-status{margin-top:14px;color:var(--muted);font-size:11px;line-height:1.5}.ticket-whatsapp-link{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:10px 12px;background:#e5f8ed;border:1px solid #9eddb9;border-radius:10px}.ticket-whatsapp-link strong,.ticket-whatsapp-link small{display:block}.ticket-whatsapp-link small{margin-top:2px;color:#246b49}.calendar-reschedule-dialog{width:min(560px,calc(100vw - 28px));padding:0;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 24px 70px rgba(15,30,55,.32)}.calendar-reschedule-dialog::backdrop{background:rgba(11,22,40,.58);backdrop-filter:blur(2px)}.calendar-reschedule-form{padding:18px}.calendar-reschedule-form>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.calendar-reschedule-form h2{margin:2px 0 0}.calendar-reschedule-copy{margin:10px 0 14px;color:var(--muted);line-height:1.5}.calendar-reschedule-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.calendar-reschedule-all-day{color:var(--muted);font-size:11px}.calendar-reschedule-error{margin-top:12px;padding:10px;color:#9d241c;background:#ffe8e5;border-radius:9px;font-size:11px;font-weight:750}.calendar-reschedule-form>footer{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}.calendar-reschedule-form input{font-size:14px}
@media(max-width:950px){.whatsapp-shell{grid-template-columns:280px minmax(0,1fr)}.whatsapp-assignment-form{grid-template-columns:1fr}.whatsapp-media-compose form{grid-template-columns:1fr}.whatsapp-settings-grid{grid-template-columns:1fr}}
.whatsapp-template-compose{grid-template-columns:minmax(180px,1fr) 110px minmax(220px,1.2fr) auto}.whatsapp-template-parameters textarea{min-height:70px}
@media(max-width:1100px){.whatsapp-template-compose{grid-template-columns:minmax(180px,1fr) 110px}.whatsapp-template-parameters{grid-column:1/-1}.whatsapp-template-compose>.button{grid-column:1/-1}}
@media(max-width:700px){.whatsapp-shell{display:block;min-height:0}.whatsapp-sidebar{margin-bottom:14px}.whatsapp-conversation-list{max-height:300px}.whatsapp-main{min-height:600px}.whatsapp-chat-header,.whatsapp-chat-actions{align-items:stretch;flex-direction:column}.whatsapp-message>div{max-width:91%}.whatsapp-text-compose,.whatsapp-template-compose,.whatsapp-create-ticket{grid-template-columns:1fr}.calendar-reschedule-grid{grid-template-columns:1fr}.calendar-reschedule-form>footer{flex-direction:column-reverse}.calendar-reschedule-form>footer .button{width:100%}}

/* Tebex-Plattformumsatz */
.tebex-priority-banner{border-color:color-mix(in srgb,var(--green) 42%,var(--border));background:color-mix(in srgb,var(--green-soft) 72%,var(--surface))}.tebex-priority-banner>strong{color:var(--green)}.tebex-cancelled-banner{border-color:color-mix(in srgb,var(--red) 42%,var(--border));background:color-mix(in srgb,var(--red-soft) 72%,var(--surface))}.tebex-cancelled-banner>strong{color:var(--red)}.tebex-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.58fr);gap:18px;align-items:start}.tebex-layout>aside{display:grid;gap:16px;position:sticky;top:94px}.tebex-entry-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tebex-entry-form .span-2{grid-column:1/-1}.tebex-entry-form textarea{width:100%;resize:vertical}.tebex-entry-form label>small,.tebex-file-picker>small{display:block;margin-top:6px;color:var(--muted);font-size:11px;line-height:1.5}.tebex-file-picker input[type=file]{width:100%;padding:12px;background:var(--canvas);border:1px dashed color-mix(in srgb,var(--blue) 45%,var(--border));border-radius:10px}.tebex-booking-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:12px;background:var(--canvas);border:1px solid var(--border);border-radius:12px}.tebex-booking-preview>span{display:grid;gap:4px;min-width:0}.tebex-booking-preview small{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase}.tebex-booking-preview strong{overflow-wrap:anywhere;color:var(--navy);font-size:12px}.tebex-empty-month{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.tebex-month-list{display:grid;gap:8px}.tebex-month-list>a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;color:inherit;background:var(--canvas);border:1px solid transparent;border-radius:10px;text-decoration:none}.tebex-month-list>a:hover{border-color:var(--border)}.tebex-month-list span,.tebex-month-list strong,.tebex-month-list small{display:block}.tebex-month-list small{margin-top:4px;color:var(--muted);font-size:10px}.tebex-month-list b{flex:0 0 auto;color:var(--blue);font-size:12px}.tebex-metrics article:first-child{border-color:color-mix(in srgb,var(--green) 40%,var(--border));background:linear-gradient(145deg,var(--surface),var(--green-soft))}.tebex-document-upload{margin-top:14px}.tebex-reference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.tebex-reference-grid>div{padding:13px;background:var(--canvas);border-radius:10px}.tebex-reference-grid .span-2{grid-column:1/-1}.tebex-reference-grid dt{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.tebex-reference-grid dd{margin:6px 0 0;overflow-wrap:anywhere;color:var(--ink);font-size:12px;line-height:1.55}.tebex-sync-form{margin-top:12px}.invoice-meta-card span>em{color:var(--muted);font-style:normal}.invoice-meta-card span>strong{max-width:58%;color:var(--navy);text-align:right}.tebex-document-list .project-file-row>div>span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.tebex-document-list .project-file-actions{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:1050px){.tebex-layout{grid-template-columns:1fr}.tebex-layout>aside{position:static}.tebex-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.tebex-entry-form,.tebex-booking-preview,.tebex-reference-grid,.tebex-metrics{grid-template-columns:1fr}.tebex-entry-form .span-2,.tebex-reference-grid .span-2{grid-column:auto}.tebex-month-list>a{align-items:flex-start;flex-direction:column}.tebex-document-list .project-file-actions{justify-content:flex-start}}

/* v1.8.2 · frei verwaltbare WV-Fixposten */
.contract-monthly-items{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.contract-monthly-items>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.contract-monthly-items h3{margin:3px 0;color:var(--navy);font-size:15px}.contract-monthly-items header p:last-child{max-width:720px;margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.contract-monthly-item-list{display:grid;gap:10px;margin-top:14px}.contract-monthly-item{display:grid;grid-template-columns:minmax(230px,2fr) 90px 110px 125px 90px 145px 145px auto;gap:9px;align-items:end;padding:12px;border:1px solid var(--border);border-left:4px solid var(--blue);border-radius:11px;background:var(--panel)}.contract-monthly-item label{min-width:0}.contract-monthly-item label>small{color:var(--muted);font-size:9px;font-weight:600}.contract-monthly-item input{min-width:0}.monthly-item-remove{min-height:42px;padding:0 10px;color:var(--red);background:var(--surface);border:1px solid color-mix(in srgb,var(--red) 32%,var(--border));border-radius:9px;font-size:11px;font-weight:850;cursor:pointer}.contract-monthly-empty{margin:14px 0 0;padding:12px;color:var(--muted);background:var(--panel);border:1px dashed var(--border);border-radius:10px;font-size:11px;text-align:center}.contract-monthly-total{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:11px;color:var(--muted);font-size:11px}.contract-monthly-total strong{color:var(--navy);font-size:14px}.contract-fixed-item-list{display:grid;gap:7px;margin:12px 0}.contract-fixed-item-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:9px 10px;background:var(--panel);border-radius:8px}.contract-fixed-item-list strong,.contract-fixed-item-list small{display:block}.contract-fixed-item-list strong{color:var(--navy);font-size:11px}.contract-fixed-item-list small{margin-top:3px;color:var(--muted);font-size:9px}.contract-fixed-item-list b{color:var(--navy);font-size:11px}.contract-monthly-price-total{display:grid;gap:4px;margin-top:11px;padding-top:11px;border-top:1px solid var(--border)}.contract-monthly-price-total span{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:10px}.contract-monthly-price-total span:last-child{color:var(--navy);font-size:12px;font-weight:900}
html[data-theme="dark"] .contract-monthly-item,html[data-theme="dark"] .contract-monthly-empty,html[data-theme="dark"] .contract-fixed-item-list>div{background:var(--surface)}
@media(prefers-color-scheme:dark){html:not([data-theme]) .contract-monthly-item,html:not([data-theme]) .contract-monthly-empty,html:not([data-theme]) .contract-fixed-item-list>div{background:var(--surface)}}
@media(max-width:1350px){.contract-monthly-item{grid-template-columns:minmax(220px,2fr) 90px 110px 125px 90px}.contract-monthly-item label:nth-of-type(6),.contract-monthly-item label:nth-of-type(7){grid-column:span 2}.monthly-item-remove{grid-column:-2/-1}}
@media(max-width:760px){.contract-monthly-items>header{align-items:stretch;flex-direction:column}.contract-monthly-items>header .button{width:100%}.contract-monthly-item{grid-template-columns:1fr 1fr}.monthly-item-description{grid-column:1/-1}.contract-monthly-item label:nth-of-type(6),.contract-monthly-item label:nth-of-type(7){grid-column:auto}.monthly-item-remove{grid-column:1/-1}.contract-monthly-total{justify-content:space-between}}
