:root {
    --bg: #eef1ef;
    --surface: #ffffff;
    --surface-soft: #f7f9f7;
    --ink: #202823;
    --muted: #68736d;
    --line: #dce3de;
    --green: #5d8f3b;
    --green-dark: #3e6d25;
    --green-soft: #e8f2e2;
    --anthracite: #28332d;
    --orange: #c76b25;
    --red: #b64040;
    --blue: #3f6f8e;
    --shadow: 0 12px 30px rgba(32, 45, 37, .08);
    --radius: 15px;
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); scroll-behavior: smooth; }
body { margin: 0; min-height: 100%; background: var(--bg); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 15px; line-height: 1.5; }
a { color: var(--green-dark); text-decoration: none; }
a:hover { text-decoration: underline; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.topbar { position: sticky; top: 0; z-index: 1000; min-height: 72px; display: flex; align-items: center; gap: 22px; padding: 0 26px; background: var(--anthracite); color: white; box-shadow: 0 6px 20px rgba(0,0,0,.18); }
.brand { display: flex; align-items: center; gap: 10px; color: white; min-width: max-content; }
.brand:hover { text-decoration: none; }
.brand > span:last-child, .auth-brand > div { display: flex; flex-direction: column; line-height: 1.05; }
.brand strong, .auth-brand strong { font-size: 1.25rem; letter-spacing: .04em; }
.brand small, .auth-brand small { margin-top: 5px; color: #cbd5cf; font-size: .72rem; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; border: 2px solid #b7d6a5; border-radius: 11px; color: white; background: linear-gradient(145deg, #6fa94b, #416e2b); font-size: 1.2rem; font-weight: 800; box-shadow: inset 0 0 0 4px rgba(255,255,255,.08); }
.brand-mark.large { width: 55px; height: 55px; border-radius: 16px; font-size: 1.7rem; }
.main-nav { display: flex; align-self: stretch; align-items: stretch; gap: 2px; flex: 1; overflow-x: auto; scrollbar-width: none; }
.main-nav::-webkit-scrollbar { display:none; }
.main-nav a { display: flex; align-items: center; gap: 7px; padding: 0 11px; color: #d8e1dc; font-size: .87rem; white-space: nowrap; border-bottom: 3px solid transparent; }
.main-nav a:hover, .main-nav a.active { color: white; text-decoration: none; background: rgba(255,255,255,.06); border-bottom-color: #8fbe70; }
.main-nav a span { color: #9fc189; }
.user-menu { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.user-name { color: #dfe7e2; font-size: .85rem; }
.link-button { padding: 0; border: 0; background: transparent; color: #aecd9b; font-size: .82rem; }
.nav-toggle { display: none; background: transparent; color: white; border: 1px solid rgba(255,255,255,.25); border-radius: 9px; padding: 7px 10px; }
.page-shell { width: min(1480px, calc(100% - 36px)); margin: 26px auto 50px; }
.app-footer { display: flex; justify-content: space-between; gap: 20px; padding: 20px max(18px, calc((100% - 1440px)/2)); color: var(--muted); border-top: 1px solid var(--line); font-size: .8rem; }
.page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 20px; }
.page-heading h1 { margin: 1px 0 5px; font-size: clamp(1.65rem, 2.5vw, 2.35rem); line-height: 1.1; letter-spacing: -.035em; }
.page-heading p { margin: 0; color: var(--muted); }
.eyebrow { margin: 0 0 4px !important; color: var(--green-dark) !important; font-weight: 800; font-size: .72rem; letter-spacing: .11em; text-transform: uppercase; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow); }
.panel + .panel, section + section { margin-top: 18px; }
.panel h2 { margin: 0 0 16px; font-size: 1.12rem; }
.panel-header { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 14px; }
.panel-header h2 { margin: 0; }
.count-pill { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 28px; padding: 0 10px; border-radius: 99px; background: var(--green-soft); color: var(--green-dark); font-weight: 800; font-size: .8rem; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; padding: 9px 15px; border: 1px solid #cbd5ce; border-radius: 10px; background: white; color: var(--ink); font-weight: 700; text-decoration: none; }
.button:hover { text-decoration: none; border-color: #9eb0a3; background: #f7f9f7; }
.button.primary { background: var(--green); border-color: var(--green); color: white; }
.button.primary:hover { background: var(--green-dark); }
.button.small { min-height: 32px; padding: 5px 9px; font-size: .78rem; }
.button.full { width: 100%; }
.button[disabled] { opacity: .55; cursor: not-allowed; }
.button-row, .form-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.form-actions { justify-content: flex-end; margin-top: 5px; }
.flash { margin: 0 0 18px; padding: 12px 15px; border-radius: 10px; border: 1px solid; }
.flash.success { background: #edf7e8; border-color: #bdd7ad; color: #365d22; }
.flash.error { background: #fff0f0; border-color: #e4b3b3; color: #8a2929; }
.dashboard-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.dashboard-columns > .panel { margin-top: 0; }
.job-list { display: grid; gap: 8px; }
.job-card { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: var(--surface-soft); }
.job-card:hover { text-decoration: none; border-color: #b2c5b7; background: #fbfcfb; }
.job-time { font-size: 1.15rem; font-weight: 800; color: var(--green-dark); }
.job-date { display: flex; flex-direction: column; align-items: center; padding-right: 9px; border-right: 1px solid var(--line); }
.job-date strong { font-size: 1.05rem; }
.job-date span { color: var(--muted); font-size: .78rem; }
.job-main { display: flex; flex-direction: column; min-width: 0; }
.job-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.job-main span { color: var(--muted); font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.status { display: inline-flex; align-items: center; width: max-content; padding: 5px 9px; border-radius: 99px; font-weight: 800; font-size: .72rem; white-space: nowrap; }
.status.large { padding: 8px 13px; font-size: .85rem; }
.status.open { background: #eaf1f5; color: #315e7b; }
.status.in_progress { background: #fff1dd; color: #9a541d; }
.status.completed, .status.resolved { background: #e6f3df; color: #416c2c; }
.status.cancelled, .status.closed { background: #ededed; color: #656565; }
.type-chip { padding: 5px 9px; border-radius: 8px; background: #ecefee; color: #55605a; font-size: .72rem; }
.metric-grid { display: grid; gap: 14px; margin-top: 18px; }
.metric-grid.five { grid-template-columns: repeat(5,1fr); }
.metric-grid.four { grid-template-columns: repeat(4,1fr); }
.metric-card { display: flex; flex-direction: column; min-height: 128px; padding: 17px; border-radius: var(--radius); background: white; border: 1px solid var(--line); color: var(--ink); box-shadow: var(--shadow); }
.metric-card:hover { text-decoration: none; transform: translateY(-1px); }
.metric-card span { color: var(--muted); font-size: .82rem; font-weight: 700; }
.metric-card strong { margin: 6px 0 2px; font-size: 2rem; line-height: 1; }
.metric-card small { margin-top: auto; color: var(--muted); }
.metric-card.accent { background: var(--anthracite); border-color: var(--anthracite); color: white; }
.metric-card.accent span, .metric-card.accent small { color: #cfd8d2; }
.map-panel { padding-bottom: 16px; }
.map-canvas { width: 100%; height: 340px; border-radius: 11px; background: #dfe7e1; overflow: hidden; }
.map-canvas.large { height: min(68vh, 720px); }
.split-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 380px); gap: 18px; align-items: start; }
.split-layout > * { margin-top: 0 !important; }
.grow { min-width: 0; }
.side-form { position: sticky; top: 92px; }
.stack-form { display: grid; gap: 12px; }
.form-grid { display: grid; gap: 13px; }
.form-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.form-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.form-panels { display: grid; gap: 18px; align-items: start; }
.form-panels.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.form-panels > .panel { margin-top: 0; }
.span-2 { grid-column: span 2; }
.span-3 { grid-column: span 3; }
label { display: grid; gap: 5px; color: #4c5751; font-size: .82rem; font-weight: 750; }
label small { color: var(--muted); font-weight: 400; }
input, select, textarea { width: 100%; padding: 10px 11px; border: 1px solid #cfd8d2; border-radius: 9px; background: white; color: var(--ink); outline: none; }
input:focus, select:focus, textarea:focus { border-color: #7ca460; box-shadow: 0 0 0 3px rgba(93,143,59,.12); }
textarea { resize: vertical; }
fieldset { border: 1px solid var(--line); border-radius: 11px; padding: 13px; }
legend { padding: 0 6px; color: var(--muted); font-size: .78rem; font-weight: 700; }
.check-row { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.check-row input { width: auto; }
.check-grid { display: flex; flex-wrap: wrap; gap: 10px 16px; }
.label-dot { width: 12px; height: 12px; border-radius: 50%; }
.card-list { display: grid; gap: 9px; }
.entity-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-soft); color: var(--ink); }
.entity-card:hover { text-decoration: none; border-color: #b4c7b8; }
.entity-card.static:hover { border-color: var(--line); }
.entity-card > div:first-child { display: flex; flex-direction: column; min-width: 0; }
.entity-card strong { font-size: .95rem; }
.entity-card span, .entity-card small { color: var(--muted); font-size: .8rem; }
.entity-stats { display: flex; flex-direction: column; align-items: flex-end; white-space: nowrap; }
.table-wrap { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 11px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; background: #fafbfa; }
td { font-size: .86rem; }
td small { color: var(--muted); }
tr:last-child td { border-bottom: 0; }
.detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.detail-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.detail-grid > .panel { margin-top: 0; }
.detail-list { display: grid; grid-template-columns: 105px 1fr; gap: 8px 12px; margin: 0; }
.detail-list dt { color: var(--muted); }
.detail-list dd { margin: 0; font-weight: 650; }
.mini-card, .note-card { padding: 11px 0; border-bottom: 1px solid var(--line); }
.mini-card:last-child, .note-card:last-child { border-bottom: 0; }
.mini-card { display: flex; flex-direction: column; }
.mini-card span, .mini-card small, .note-card span { color: var(--muted); font-size: .78rem; }
.note-card p { margin: 7px 0 0; }
.empty-state, .module-placeholder { padding: 16px; border: 1px dashed #c7d2ca; border-radius: 10px; color: var(--muted); background: #fafcfa; text-align: center; }
.module-placeholder { margin-top: 14px; font-size: .82rem; }
.action-bar { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.action-bar > div:first-child { display: flex; flex-direction: column; }
.action-bar span { color: var(--muted); font-size: .8rem; }
.label-row, .label-gallery { display: flex; gap: 8px; flex-wrap: wrap; }
.label-chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 99px; background: white; font-size: .78rem; font-weight: 700; }
.label-chip > span { width: 10px; height: 10px; border-radius: 50%; }
.report-form { display: grid; gap: 12px; }
.report-block { padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.report-block-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.report-block h3 { margin: 0; font-size: 1rem; }
.block-icon { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 9px; background: var(--green-soft); color: var(--green-dark); font-weight: 800; }
.page-break-preview { padding: 9px; border-top: 2px dashed #aeb8b1; color: var(--muted); text-align: center; font-size: .8rem; }
.incident-list { display: grid; gap: 11px; }
.incident-card { padding: 15px; border: 1px solid var(--line); border-left: 5px solid var(--blue); border-radius: 11px; background: var(--surface-soft); }
.incident-card.priority-high { border-left-color: var(--orange); }
.incident-card.priority-critical { border-left-color: var(--red); }
.incident-card.priority-low { border-left-color: #8b9890; }
.incident-head { display: flex; justify-content: space-between; gap: 12px; }
.incident-head > div { display: flex; flex-direction: column; }
.incident-head span { color: var(--muted); font-size: .8rem; }
.incident-meta { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 10px; color: var(--muted); font-size: .78rem; }
.progress-track { height: 15px; overflow: hidden; border-radius: 99px; background: #e4e9e5; }
.progress-track span { display: block; height: 100%; background: linear-gradient(90deg, var(--green), #82b661); border-radius: inherit; }
.month-grid { display: grid; grid-template-columns: repeat(12,1fr); gap: 5px; margin-top: 14px; }
.month-grid div { display: flex; flex-direction: column; align-items: center; padding: 8px 3px; border-radius: 8px; background: var(--surface-soft); }
.month-grid strong { font-size: .72rem; }
.month-grid span { color: var(--muted); font-size: .72rem; }
.inline-form { display: flex; }
.settings-layout { display: grid; grid-template-columns: 235px minmax(0,1fr); gap: 20px; align-items: start; }
.settings-sidebar { position: sticky; top: 92px; display: grid; gap: 5px; padding: 10px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.settings-sidebar a { display: block; padding: 10px 12px; border: 1px solid transparent; border-radius: 9px; color: var(--ink); font-weight: 750; font-size: .84rem; line-height: 1.25; }
.settings-sidebar a:hover { text-decoration: none; background: var(--surface-soft); border-color: var(--line); }
.settings-sidebar a.active, .settings-sidebar a[aria-current="page"] { background: var(--green-soft); border-color: #b9d1aa; color: var(--green-dark); }
.settings-content { min-width: 0; }
.settings-content > section { margin-top: 0; }
.settings-content > section + section { margin-top: 0; }
.settings-content > section[hidden] { display: none !important; }
.settings-section-heading { margin: 1px 0 18px; }
.settings-section-heading h2 { margin: 0; font-size: 1.45rem; }
.settings-layout-import .settings-content > .panel + .panel { margin-top: 18px; }
.mini-list { display: grid; margin-top: 16px; border-top: 1px solid var(--line); }
.mini-list > div { display: flex; flex-direction: column; padding: 9px 0; border-bottom: 1px solid var(--line); }
.mini-list span { color: var(--muted); font-size: .76rem; }
.builder-layout { display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 18px; align-items: start; }
.builder-main { min-width: 0; }
.builder-main > * + * { margin-top: 18px; }
.builder-sidebar { position: sticky; top: 92px; margin-top: 0 !important; }
.block-palette { display: grid; gap: 7px; }
.palette-button { display: flex; align-items: center; gap: 9px; width: 100%; padding: 10px 11px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-soft); text-align: left; color: var(--ink); }
.palette-button:hover { border-color: #9fba9f; background: #f4f8f2; }
.palette-button span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 7px; background: var(--green-soft); color: var(--green-dark); }
.builder-canvas { display: grid; gap: 9px; }
.builder-block { display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-soft); }
.builder-block-content { display: grid; gap: 3px; }
.builder-block-content small { color: var(--muted); font-size: .68rem; text-transform: uppercase; }
.builder-block-content input { padding: 7px 8px; font-weight: 700; }
.builder-block-actions { display: flex; gap: 4px; }
.builder-block-actions button { width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 7px; background: white; }
.builder-block-actions button.danger { color: var(--red); }
.module-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.module-grid > .panel { margin-top: 0; }
.module-card { display: flex; flex-direction: column; }
.module-card .button { margin-top: auto; }
.module-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: var(--green-soft); color: var(--green-dark); font-weight: 900; font-size: 1.2rem; }
.step-list { padding-left: 24px; }
.step-list li { margin: 7px 0; }
.auth-page { display: grid; place-items: center; min-height: 100vh; padding: 20px; background: radial-gradient(circle at 15% 10%, #e4eee0, transparent 38%), linear-gradient(145deg, #edf1ee, #dce4df); }
.auth-card { width: min(430px,100%); padding: 28px; border-radius: 19px; background: white; border: 1px solid #d8e0da; box-shadow: 0 24px 70px rgba(35,48,40,.16); }
.auth-card.wide { width: min(670px,100%); }
.auth-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.auth-brand strong { color: var(--anthracite); }
.auth-brand small { color: var(--muted); }
.auth-card h1 { margin: 0 0 5px; }
.auth-card > p { margin: 0 0 20px; color: var(--muted); }
.muted { color: var(--muted); }
.text-link { font-weight: 700; }
@media (max-width: 1180px) {
    .user-name { display: none; }
    .main-nav a { padding: 0 8px; font-size: .8rem; }
    .metric-grid.five { grid-template-columns: repeat(3,1fr); }
    .form-panels.three { grid-template-columns: 1fr 1fr; }
    .module-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
    .topbar { min-height: 64px; padding: 0 15px; flex-wrap: wrap; gap: 10px; }
    .nav-toggle { display: block; margin-left: auto; }
    .user-menu { order: 3; margin-left: auto; }
    .main-nav { display: none; order: 4; flex: 1 0 100%; align-self: auto; flex-direction: column; padding: 7px 0 12px; }
    .main-nav.open { display: flex; }
    .main-nav a { min-height: 42px; border-bottom: 0; border-left: 3px solid transparent; padding: 0 12px; }
    .main-nav a.active { border-left-color: #8fbe70; }
    .page-shell { width: min(100% - 22px, 1480px); margin-top: 18px; }
    .dashboard-columns, .split-layout, .detail-grid, .detail-grid.three, .builder-layout { grid-template-columns: 1fr; }
    .side-form, .builder-sidebar { position: static; }
    .metric-grid.four, .metric-grid.five { grid-template-columns: 1fr 1fr; }
    .form-panels.three { grid-template-columns: 1fr; }
    .month-grid { grid-template-columns: repeat(6,1fr); }
    .action-bar { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 620px) {
    body { font-size: 14px; }
    .brand small { display: none; }
    .user-menu { margin-left: 0; }
    .page-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
    .page-heading .button { width: 100%; }
    .panel { padding: 15px; border-radius: 12px; }
    .dashboard-columns { gap: 12px; }
    .job-card { grid-template-columns: 52px 1fr; }
    .job-card .status, .job-card .type-chip { grid-column: 2; width: max-content; }
    .metric-grid.four, .metric-grid.five { grid-template-columns: 1fr 1fr; gap: 9px; }
    .metric-card { min-height: 112px; padding: 13px; }
    .metric-card strong { font-size: 1.65rem; }
    .form-grid.two, .form-grid.three { grid-template-columns: 1fr; }
    .span-2, .span-3 { grid-column: span 1; }
    .module-grid { grid-template-columns: 1fr; }
    .map-canvas { height: 300px; }
    .map-canvas.large { height: 64vh; }
    .app-footer { flex-direction: column; padding: 18px; }
    .incident-head { flex-direction: column; }
    .builder-block { grid-template-columns: 34px 1fr; }
    .builder-block-actions { grid-column: 2; }
    .month-grid { grid-template-columns: repeat(4,1fr); }
    .auth-card { padding: 21px; }
}
.offline-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;border-left:4px solid #78aa43}.offline-state{font-size:.84rem;font-weight:700;color:#527a31}.danger-text{color:#b42318!important}canvas[data-signature]{background:#fff}hr{border:0;border-top:1px solid #e2e7e3;margin:22px 0}@media(max-width:760px){.offline-panel{align-items:flex-start;flex-direction:column}.offline-panel .button-row{width:100%}.offline-panel .button{flex:1;text-align:center}}

/* WiMA 0.2.3: Kartenstatus, Filter, Rollen und Stammdatenaktionen */
.wima-map { position: relative; overflow: hidden; background: #dbe4dd; isolation: isolate; }
.map-tile-layer, .map-marker-layer { position: absolute; inset: 0; }
.map-tile-layer { z-index: 1; }
.map-marker-layer { z-index: 2; pointer-events: none; }
.map-tile { position: absolute; width: 256px; height: 256px; max-width: none; user-select: none; -webkit-user-drag: none; }
.map-marker { position: absolute; width: 30px; height: 30px; margin: -27px 0 0 -15px; padding: 0; border: 0; background: transparent; pointer-events: auto; cursor: pointer; }
.map-marker span { display: block; width: 20px; height: 20px; margin: 0 auto; border: 3px solid #fff; border-radius: 50% 50% 50% 0; background: #5d8f3b; box-shadow: 0 2px 5px rgba(0,0,0,.35); transform: rotate(-45deg); }
.map-popup { position: absolute; min-width: 210px; max-width: 290px; transform: translate(-50%,-115%); padding: 10px 12px; border: 1px solid #cbd6ce; border-radius: 9px; background: #fff; color: #26312b; box-shadow: 0 6px 22px rgba(0,0,0,.22); pointer-events: auto; z-index: 5; font-size: 13px; line-height: 1.45; }
.map-controls { position: absolute; top: 12px; left: 12px; z-index: 6; display: grid; gap: 4px; }
.map-controls button { width: 38px; height: 38px; border: 1px solid #bcc9c0; border-radius: 8px; background: rgba(255,255,255,.96); font-size: 24px; line-height: 1; cursor: pointer; }
.map-attribution { position: absolute; right: 5px; bottom: 4px; z-index: 6; padding: 2px 5px; border-radius: 4px; background: rgba(255,255,255,.86); color: #3b4b42; font-size: 10px; }
.map-empty { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; text-align: center; color: #66756c; }
.editable-card .entity-main { min-width: 0; flex: 1; color: inherit; text-decoration: none; }
.editable-mini { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.editable-mini > div { min-width: 0; }
.mini-card.editable-mini { flex-direction: row; }
/* WiMA 0.2.3 */
.filter-panel { margin-bottom: 16px; }
.filter-row, .filter-grid { display:flex; flex-wrap:wrap; gap:12px; align-items:end; }
.filter-row label, .filter-grid label { flex:1 1 180px; min-width:160px; }
.filter-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); }
.filter-grid .form-actions { align-self:end; }
.button.danger, .danger { border-color:#b3261e !important; color:#b3261e !important; }
.status.overdue { background:#ffebee; color:#b3261e; }
.row-overdue td { background:rgba(179,38,30,.035); }
.cost-center { display:inline-flex; padding:3px 8px; border-radius:999px; font-weight:800; font-size:.78rem; background:#eef2ef; }
.cc-w { background:#e8f2e6; color:#2f6b2d; }.cc-s { background:#e8f0fb; color:#245a98; }.cc-p { background:#f1eafb; color:#70439a; }
.label-chip.compact { font-size:.72rem; padding:3px 7px; margin:1px; }
.map-marker.marker-open span { background:#f28c28; }
.map-marker.marker-running span { background:#43a047; }
.map-marker.marker-overdue span { background:#d32f2f; }
.map-legend { display:flex; flex-wrap:wrap; gap:14px; margin-top:10px; font-size:.86rem; }
.map-legend span { display:inline-flex; align-items:center; gap:6px; }
.map-legend i { width:11px; height:11px; border-radius:50%; display:inline-block; }
.map-legend .open { background:#f28c28; }.map-legend .running { background:#43a047; }.map-legend .overdue { background:#d32f2f; }
.inventory-results { display:grid; gap:8px; margin-top:10px; }.inventory-item { padding:10px 12px; background:#f6f8f6; border-radius:8px; }
@media(max-width:720px){ .filter-grid{grid-template-columns:1fr;} }

/* WiMA 0.2.4: schnelle Kimai-Kostenstellensuche */
.autocomplete { position: relative; }
.autocomplete-menu { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); max-height: 310px; overflow-y: auto; border: 1px solid #cbd6ce; border-radius: 9px; background: #fff; box-shadow: 0 10px 28px rgba(35,48,40,.16); }
.autocomplete-option { display: block; width: 100%; padding: 10px 12px; border: 0; border-bottom: 1px solid #edf1ee; background: #fff; color: var(--ink); text-align: left; cursor: pointer; font: inherit; }
.autocomplete-option:last-child { border-bottom: 0; }
.autocomplete-option:hover, .autocomplete-option.active { background: #f1f6ee; }

/* WiMA 0.2.5 – Excel-Stammdatenimport */
.import-workflow { display: grid; gap: 18px; }
.import-workflow > section { margin-top: 0; }
.import-mapping-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.import-options { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.inline-import-sheet { max-width: 420px; }
.preview-table { min-width: 900px; }
.preview-table td { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.import-errors { margin-top: 16px; padding: 12px 14px; border: 1px solid #e4b3b3; border-radius: 10px; background: #fff7f7; color: #7b3030; }
.import-errors > div { padding-top: 4px; font-size: .82rem; }
@media (max-width: 900px) { .import-mapping-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 620px) { .import-mapping-grid { grid-template-columns: 1fr; } }

/* WiMA 0.2.6 – Import-Härtung & Berichtsvorlagen-Designer */
.import-requirements{display:grid;gap:6px;margin:0 0 16px;padding:12px 14px;border-left:4px solid var(--green);background:var(--surface-soft);border-radius:8px;font-size:.86rem}
.import-field-badge{display:inline-flex;margin-left:6px;padding:2px 7px;border-radius:999px;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;vertical-align:middle}
.import-field-badge.required{background:#fff0dc;color:#8a4c00}.import-field-badge.optional{background:#eef3ef;color:#64726a}
.import-copy-option{font-weight:700;color:var(--green-dark)}
.developer-danger-zone{border:1px solid #e7b3b0!important;border-left:5px solid #b3261e!important}.developer-danger-zone h2{color:#8e201a}.danger-help{max-width:900px;color:#6e4845}
.color-input-row{display:flex;align-items:center;gap:10px}.color-input-row input[type=color]{width:64px;height:42px;padding:3px;border-radius:8px}.color-input-row code{font-size:.78rem;color:var(--muted)}
.report-designer{display:grid;gap:18px}.report-template-settings{margin-top:0!important}.report-builder-layout{grid-template-columns:minmax(0,1fr) 390px}.report-builder-sidebar{max-height:calc(100vh - 110px);overflow:auto}
.block-palette.compact{display:grid;grid-template-columns:1fr 1fr;gap:7px}.block-palette.compact .palette-button{padding:9px 10px;font-size:.76rem;text-align:left}
.builder-elements-head{display:flex;justify-content:space-between;align-items:end;margin:20px 0 8px;padding-top:14px;border-top:1px solid var(--line)}.builder-elements-head h3{margin:0}.builder-elements{display:grid;gap:8px}
.builder-element-card{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.builder-element-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px}.builder-element-title{min-width:0;display:grid;gap:2px}.builder-element-title strong{font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.builder-element-title small{font-size:.62rem;color:var(--muted);text-transform:uppercase}.builder-element-actions{display:flex;gap:4px;flex:none}.builder-element-actions button{width:29px;height:29px;padding:0;border:1px solid var(--line);border-radius:7px;background:white;cursor:pointer}.builder-element-actions button:disabled{opacity:.35}.builder-element-settings{display:grid;gap:9px;padding:11px;border-top:1px solid var(--line);background:var(--surface-soft)}.builder-setting-field{display:grid;gap:5px;font-size:.74rem;font-weight:700}.builder-setting-field input,.builder-setting-field textarea,.builder-setting-field select{font-weight:500;font-size:.8rem}
.report-preview-panel{overflow:auto}.report-sheet{--report-title:#36515f;--report-separator:#5d8f3b;--report-text:#1f2d2a;max-width:920px;min-height:1100px;margin:0 auto;padding:38px 34px 44px;background:#fff;border:1px solid #d7dcda;box-shadow:0 12px 28px rgba(25,48,39,.08);color:var(--report-text)}
.report-sheet-header{display:flex;align-items:center;gap:20px;min-height:72px;padding-bottom:16px;border-bottom:3px solid var(--report-separator)}.report-logo-box{width:190px;min-height:56px;display:flex;align-items:center}.report-logo-box img{display:block;max-width:180px;max-height:66px;object-fit:contain}.report-head-copy{display:grid;gap:4px;margin-left:auto;text-align:right}.report-head-copy strong{font-size:1.45rem;color:var(--report-title)}.report-head-copy span{font-size:.74rem;color:#6f7d77}
.report-meta-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0 26px;padding:12px 0;border-bottom:1px solid #dfe4e1;font-size:.72rem}.report-meta-preview b{color:var(--report-title)}.report-preview-body{display:grid;gap:30px}.report-preview-block h3{margin:0 0 14px;padding-bottom:7px;border-bottom:2px solid var(--report-separator);color:var(--report-title);font-size:1.15rem}.report-preview-block h4{margin:10px 0 12px;color:var(--report-text);font-size:.88rem}.report-preview-text{white-space:pre-wrap;line-height:1.55}.report-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.report-summary-grid>div{padding:10px 12px;background:#f5f6f5;border-radius:6px;font-size:.76rem}
.report-sample-table-wrap{overflow:hidden;background:#f5f5f5}.report-sample-table{width:100%;border-collapse:collapse;font-size:.72rem}.report-sample-table th{padding:8px 10px;text-align:left;border-bottom:2px solid var(--report-separator);color:#111}.report-sample-table td{padding:9px 10px;vertical-align:top}.report-check-preview{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;padding:10px;background:#f5f5f5;border-top:2px solid var(--report-separator)}.report-check-preview>div{display:flex;justify-content:space-between;gap:14px;padding:5px 3px;font-size:.72rem}.report-signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:35px}.report-signature-box{height:90px;display:flex;align-items:end;padding-bottom:6px;border-bottom:1px solid #69756f;font-size:.7rem}.report-photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.report-photo-grid.cols-1{grid-template-columns:1fr}.report-photo-grid.cols-3{grid-template-columns:repeat(3,1fr)}.report-photo-placeholder{aspect-ratio:4/3;display:grid;place-items:center;border:1px dashed #aab4af;background:#f7f8f7;color:#87938d;font-size:.72rem}.report-footer-preview{padding-top:14px;border-top:1px solid var(--report-separator)}.report-footer-preview h3{display:none}.report-footer-preview p{text-align:center;color:#69756f;font-size:.68rem}.report-page-break{position:relative;height:44px;border-top:2px dashed #aab4af;border-bottom:2px dashed #aab4af;background:#fafbfa}.report-page-break span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:2px 9px;background:#fff;color:#7a8881;font-size:.68rem;text-transform:uppercase}
@media(max-width:1050px){.report-builder-layout{grid-template-columns:1fr}.report-builder-sidebar{position:static;max-height:none}.report-sheet{min-height:900px}.block-palette.compact{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.block-palette.compact{grid-template-columns:1fr 1fr}.report-sheet{min-width:680px}.report-template-settings .form-grid.three{grid-template-columns:1fr}}

/* WiMA 0.2.7 – Kontakte, Abschluss-Empfänger und SMTP */
.contact-picker{margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:10px}.contact-picker legend{padding:0 6px;font-size:.78rem;font-weight:800}.contact-picker-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.contact-picker .check-row{align-items:flex-start}.contact-picker .check-row span{display:grid;gap:1px}.contact-picker .check-row small{display:block;color:var(--muted)}
.status-action-stack{display:grid;gap:12px;min-width:min(620px,100%)}.completion-form{display:flex;align-items:end;justify-content:space-between;gap:18px;padding-top:12px;border-top:1px solid var(--line)}.completion-form>div{flex:1}.completion-form .check-grid{margin-top:7px}.completion-form .check-row span{display:grid;gap:1px}.completion-form .check-row small{display:block;color:var(--muted)}
@media(max-width:760px){.contact-picker-list{grid-template-columns:1fr}.job-status-bar{align-items:flex-start;flex-direction:column}.status-action-stack{width:100%}.completion-form{align-items:stretch;flex-direction:column}.completion-form>.button{width:100%}}
.recipient-summary{font-size:.78rem;color:var(--muted)}


/* WiMA 0.2.8.1 – persönliche Hell-/Dunkel-Darstellung, Dark-Theme-Hotfix */
.theme-choice-grid {display:grid;grid-template-columns:repeat(2,minmax(0,260px));gap:14px}
.theme-option {position:relative;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);cursor:pointer}
.theme-option>input {position:absolute;top:12px;right:12px;width:auto}
.theme-option>strong {display:block;margin-top:8px;color:var(--ink)}
.theme-option>small {color:var(--muted);font-weight:500}
.theme-preview {display:block;position:relative;height:88px;overflow:hidden;border:1px solid var(--line);border-radius:9px}
.theme-preview i {position:absolute;inset:0 0 auto;height:20px}
.theme-preview b {position:absolute;left:10px;right:40%;top:34px;height:12px;border-radius:4px}
.theme-preview em {position:absolute;left:10px;right:10px;top:54px;height:22px;border-radius:5px}
.theme-preview-light {background:#eef1ef}.theme-preview-light i{background:#28332d}.theme-preview-light b{background:#fff}.theme-preview-light em{background:#f7f9f7}
.theme-preview-dark {background:#101010;border-color:#444}.theme-preview-dark i{background:#171b19}.theme-preview-dark b{background:#242424}.theme-preview-dark em{background:#1b1b1b}
html[data-theme="dark"],body[data-theme="dark"]{background:#101010;color-scheme:dark}
body[data-theme="dark"]{--bg:#101010;--surface:#1b1b1b;--surface-soft:#242424;--ink:#fff;--muted:#c1c7c3;--line:#3d433f;--green:#6fa84a;--green-dark:#a8d18b;--green-soft:#273724;--anthracite:#151916;--orange:#f39a45;--red:#ef6666;--blue:#75a8c8;--shadow:0 12px 30px rgba(0,0,0,.34);color:#fff}
body[data-theme="dark"] .topbar{background:#151916;border-bottom:1px solid #303632}
body[data-theme="dark"] .page-shell,body[data-theme="dark"] .page-heading,body[data-theme="dark"] .page-heading h1,body[data-theme="dark"] .page-heading h2,body[data-theme="dark"] .page-heading h3,body[data-theme="dark"] .panel h1,body[data-theme="dark"] .panel h2,body[data-theme="dark"] .panel h3,body[data-theme="dark"] .panel h4,body[data-theme="dark"] strong{color:#fff}
body[data-theme="dark"] .page-heading p,body[data-theme="dark"] .muted,body[data-theme="dark"] td small,body[data-theme="dark"] .entity-card span,body[data-theme="dark"] .entity-card small,body[data-theme="dark"] .job-main span,body[data-theme="dark"] .action-bar span,body[data-theme="dark"] .incident-head span,body[data-theme="dark"] .incident-meta,body[data-theme="dark"] .mini-card span,body[data-theme="dark"] .mini-card small,body[data-theme="dark"] .note-card span,body[data-theme="dark"] label small,body[data-theme="dark"] legend,body[data-theme="dark"] .recipient-summary{color:#c1c7c3}
body[data-theme="dark"] .eyebrow,body[data-theme="dark"] a{color:#a8d18b}
body[data-theme="dark"] .panel,body[data-theme="dark"] .metric-card,body[data-theme="dark"] .job-card,body[data-theme="dark"] .entity-card,body[data-theme="dark"] .incident-card,body[data-theme="dark"] .report-block,body[data-theme="dark"] .builder-block,body[data-theme="dark"] .theme-option,body[data-theme="dark"] .module-placeholder,body[data-theme="dark"] .empty-state,body[data-theme="dark"] .inventory-item,body[data-theme="dark"] .import-requirements{background:#1b1b1b;color:#fff;border-color:#3d433f}
body[data-theme="dark"] .job-card,body[data-theme="dark"] .entity-card,body[data-theme="dark"] .incident-card,body[data-theme="dark"] .report-block,body[data-theme="dark"] .builder-block{background:#222}
body[data-theme="dark"] .metric-card.accent{background:#253126;border-color:#3d563b}
body[data-theme="dark"] .metric-card span,body[data-theme="dark"] .metric-card small{color:#c1c7c3}
body[data-theme="dark"] .metric-card.accent span,body[data-theme="dark"] .metric-card.accent small{color:#d6dfd8}
body[data-theme="dark"] .job-card:hover,body[data-theme="dark"] .entity-card:hover,body[data-theme="dark"] .palette-button:hover{background:#2a2a2a;border-color:#59615c}
body[data-theme="dark"] .count-pill{background:#273724;color:#b6dd9c}
body[data-theme="dark"] .map-canvas,body[data-theme="dark"] .wima-map,body[data-theme="dark"] .map-empty{background:#181c19;color:#c1c7c3}
body[data-theme="dark"] .map-legend{color:#fff}
body[data-theme="dark"] .map-popup{background:#202020;color:#fff;border-color:#505752}
body[data-theme="dark"] .map-popup strong,body[data-theme="dark"] .map-popup a{color:#fff}
body[data-theme="dark"] .map-controls button{background:rgba(24,24,24,.96);color:#fff;border-color:#555d58}
body[data-theme="dark"] .map-attribution{background:rgba(20,20,20,.88);color:#ddd}
body[data-theme="dark"] table{color:#fff}
body[data-theme="dark"] th{background:#202320;color:#c9cfcb;border-color:#3d433f}
body[data-theme="dark"] td{color:#fff;border-color:#343a36}
body[data-theme="dark"] tr.row-overdue td{background:rgba(239,102,102,.08)}
body[data-theme="dark"] label{color:#f0f2f1}
body[data-theme="dark"] input,body[data-theme="dark"] select,body[data-theme="dark"] textarea,body[data-theme="dark"] .button,body[data-theme="dark"] .settings-sidebar a,body[data-theme="dark"] .label-chip,body[data-theme="dark"] .builder-block-actions button,body[data-theme="dark"] .builder-element-card,body[data-theme="dark"] .builder-element-actions button,body[data-theme="dark"] .autocomplete-menu,body[data-theme="dark"] .autocomplete-option,body[data-theme="dark"] .palette-button{background:#242424;color:#fff;border-color:#494f4b}
body[data-theme="dark"] input::placeholder,body[data-theme="dark"] textarea::placeholder{color:#909892}
body[data-theme="dark"] input:focus,body[data-theme="dark"] select:focus,body[data-theme="dark"] textarea:focus{border-color:#79aa5c;box-shadow:0 0 0 3px rgba(111,168,74,.18)}
body[data-theme="dark"] .button:hover,body[data-theme="dark"] .autocomplete-option:hover,body[data-theme="dark"] .autocomplete-option.active,body[data-theme="dark"] .settings-sidebar a:hover{background:#303030;border-color:#626a65}
body[data-theme="dark"] .button.primary{background:#5d8f3b;border-color:#5d8f3b;color:#fff}
body[data-theme="dark"] .button.primary:hover{background:#6fa84a;border-color:#6fa84a}
body[data-theme="dark"] .button.danger{background:#2a1b1b;border-color:#cf5b54!important;color:#ff8f88!important}
body[data-theme="dark"] fieldset,body[data-theme="dark"] .contact-picker{border-color:#444b46}
body[data-theme="dark"] hr{border-top-color:#363c38}
body[data-theme="dark"] .autocomplete-option{border-bottom-color:#3b413d}
body[data-theme="dark"] .builder-element-settings{background:#1d1f1e}
body[data-theme="dark"] .builder-element-title strong,body[data-theme="dark"] .builder-element-title small,body[data-theme="dark"] .builder-setting-field{color:#fff}
body[data-theme="dark"] .developer-danger-zone{border-color:#70413f!important;border-left-color:#cf5b54!important}
body[data-theme="dark"] .developer-danger-zone h2,body[data-theme="dark"] .danger-help{color:#ffb0ab}
body[data-theme="dark"] .import-field-badge.required{background:#4b351e;color:#ffd39b}
body[data-theme="dark"] .import-field-badge.optional{background:#303633;color:#ced4d0}
body[data-theme="dark"] .status.open{background:#20313c;color:#b9dcf2}
body[data-theme="dark"] .status.in_progress{background:#3d2c18;color:#ffd4a1}
body[data-theme="dark"] .status.completed,body[data-theme="dark"] .status.resolved{background:#233820;color:#cae8bc}
body[data-theme="dark"] .status.cancelled,body[data-theme="dark"] .status.closed{background:#303030;color:#d0d0d0}
body[data-theme="dark"] .status.overdue{background:#421f22;color:#ffb9bf}
body[data-theme="dark"] .type-chip,body[data-theme="dark"] .cost-center{background:#303030;color:#e7e7e7}
body[data-theme="dark"] .cc-w{background:#253a24;color:#bde3b6}body[data-theme="dark"] .cc-s{background:#223247;color:#b9d6ff}body[data-theme="dark"] .cc-p{background:#352846;color:#ddc3ff}
body[data-theme="dark"] .progress-track{background:#333735}
body[data-theme="dark"] .flash.success{background:#20331d;border-color:#42643a;color:#d8f0cf}
body[data-theme="dark"] .flash.error,body[data-theme="dark"] .import-errors{background:#3a1f1f;border-color:#714343;color:#ffd6d6}
body[data-theme="dark"] .offline-state{color:#a8d18b}
/* Berichtsvorschau bleibt weiß, da sie das spätere PDF-/Papierlayout simuliert. */
body[data-theme="dark"] .report-sheet{color-scheme:light;background:#fff;color:var(--report-text);border-color:#d7dcda}
body[data-theme="dark"] .report-sheet strong,body[data-theme="dark"] .report-sheet td,body[data-theme="dark"] .report-sheet p,body[data-theme="dark"] .report-sheet span,body[data-theme="dark"] .report-sheet h4{color:var(--report-text)}
body[data-theme="dark"] .report-sheet th{background:#f5f5f5;color:#111;border-color:var(--report-separator)}
body[data-theme="dark"] .report-sheet .report-head-copy strong,body[data-theme="dark"] .report-sheet .report-meta-preview b,body[data-theme="dark"] .report-sheet .report-preview-block h3{color:var(--report-title)}
body[data-theme="dark"] .report-sheet .report-head-copy span,body[data-theme="dark"] .report-sheet .report-footer-preview p{color:#69756f}
body[data-theme="dark"] .report-sheet .report-summary-grid>div,body[data-theme="dark"] .report-sheet .report-sample-table-wrap,body[data-theme="dark"] .report-sheet .report-check-preview{background:#f5f5f5}
body[data-theme="dark"] .report-sheet .report-photo-placeholder{background:#f7f8f7;color:#87938d}
body[data-theme="dark"] .report-sheet .report-page-break{background:#fafbfa}
body[data-theme="dark"] .report-sheet .report-page-break span{background:#fff;color:#7a8881}
body[data-theme="dark"] .theme-option:has(input:checked){border-color:#7fae60;box-shadow:0 0 0 2px rgba(111,168,74,.22)}
@media(max-width:620px){.theme-choice-grid{grid-template-columns:1fr}}


.brand-logo { width:38px; height:38px; border-radius:10px; object-fit:contain; display:block; background:#fff; }
.brand-logo.large { width:55px; height:55px; border-radius:14px; }

/* WiMA 0.2.9 – Kontakte am Objekt, Excel-Kontaktimport, Berichtsvorlagen-Editfix */

body[data-theme="dark"] .settings-sidebar{background:#1b1b1b;border-color:#3d433f}
body[data-theme="dark"] .settings-sidebar a{color:#fff}
body[data-theme="dark"] .settings-sidebar a.active,body[data-theme="dark"] .settings-sidebar a[aria-current="page"]{background:#273724;border-color:#506d47;color:#d8f0cf}
@media(max-width:900px){
    .settings-layout{grid-template-columns:1fr;gap:14px}
    .settings-sidebar{position:static;display:flex;overflow-x:auto;gap:6px;padding:8px;scrollbar-width:thin}
    .settings-sidebar a{flex:0 0 auto;white-space:nowrap}
}

/* WiMA 0.2.10 – Kontakt-Suchdialog & Wartungsanwendungen */
.contact-plus{width:34px;height:34px;padding:0;font-size:1.15rem;display:inline-grid;place-items:center}
.wima-dialog{width:min(720px,calc(100vw - 28px));max-height:min(720px,calc(100vh - 28px));padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 24px 70px rgba(0,0,0,.28)}
.wima-dialog::backdrop{background:rgba(0,0,0,.55);backdrop-filter:blur(2px)}
.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.dialog-head h2{margin:2px 0 0}.contact-search-results{display:grid;gap:7px;max-height:420px;overflow:auto;margin-top:12px}
.contact-search-item{display:grid;gap:3px;width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--ink);text-align:left;cursor:pointer;font:inherit}.contact-search-item:hover{border-color:var(--green);background:var(--green-soft)}.contact-search-item span,.contact-search-item small{color:var(--muted);font-size:.76rem}.contact-search-item:disabled{opacity:.58;cursor:default}
.maintenance-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 18px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.maintenance-tabs a{padding:9px 12px;border:1px solid transparent;border-radius:8px;color:var(--ink);text-decoration:none;font-weight:800;font-size:.82rem}.maintenance-tabs a:hover{background:var(--surface-soft)}.maintenance-tabs a.active{background:var(--green-soft);border-color:#a8c897;color:var(--green-dark)}
.choice-field{display:grid;gap:8px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:9px}.choice-field legend{padding:0 5px;font-weight:800}.type-check-list{display:grid;gap:6px;max-height:330px;overflow:auto;padding:4px}.type-check-list .check-row{padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.type-check-list small{display:block;color:var(--muted)}
body[data-theme="dark"] .wima-dialog{background:#1b1b1b;border-color:#494f4b;color:#fff}body[data-theme="dark"] .contact-search-item{background:#242424;color:#fff;border-color:#494f4b}body[data-theme="dark"] .contact-search-item:hover{background:#273724;border-color:#6fa84a}body[data-theme="dark"] .maintenance-tabs{background:#1b1b1b;border-color:#3d433f}body[data-theme="dark"] .maintenance-tabs a{color:#fff}body[data-theme="dark"] .maintenance-tabs a.active{background:#273724;border-color:#506d47;color:#d8f0cf}
@media(max-width:720px){.maintenance-tabs{flex-wrap:nowrap;overflow-x:auto}.maintenance-tabs a{flex:0 0 auto;white-space:nowrap}.wima-dialog{padding:14px}}

/* WiMA 0.2.11 – Wartungsprüfung und Mängel */
.maintenance-warning{margin-top:.45rem;padding:.55rem .7rem;border-radius:10px;background:#fff3cd;color:#6a4b00;font-size:.9rem;font-weight:700}
.warning-panel{border-color:#d79a34!important}
.has-defect,.row-defect{box-shadow:inset 4px 0 0 #d33!important}
.defect-list,.inspection-list{display:grid;gap:.85rem}
.defect-card,.inspection-card{border:1px solid var(--border,#d6ddd9);border-radius:14px;padding:1rem;background:var(--panel,#fff)}
.defect-card{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.defect-card div:first-child{display:grid;gap:.18rem}
.defect-card.severity-critical{border-left:5px solid #c62828}.defect-card.severity-major{border-left:5px solid #e06b20}.defect-card.severity-minor{border-left:5px solid #d6a21f}.defect-card.severity-info{border-left:5px solid #4d7ea8}
.inspection-card.status-defect{border-left:5px solid #d33}.inspection-card.status-ok{border-left:5px solid #3b9448}.inspection-card.status-not_tested{border-left:5px solid #888}
.inspection-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.9rem}.inspection-head>div{display:grid;gap:.18rem}.inspection-head span,.inspection-head small{display:block}
.defect-picker{margin:.9rem 0;padding:.8rem;border:1px dashed var(--border,#ccd4cf);border-radius:12px}.defect-picker>strong{display:block;margin-bottom:.5rem}
.input-unit{display:flex;align-items:center;gap:.45rem}.input-unit input{flex:1}.input-unit span{font-weight:700;white-space:nowrap}
.inline-resolve{display:flex;gap:.45rem;align-items:center;min-width:300px}.inline-resolve input{min-width:0;flex:1}
.status.defect-critical{background:#c62828;color:#fff}.status.defect-major{background:#d95f24;color:#fff}.status.defect-minor{background:#d39b16;color:#161616}.status.defect-info{background:#4d7ea8;color:#fff}
.status.pending{background:#e9ecef;color:#333}.status.ok{background:#dff2df;color:#1f6a2a}.status.defect{background:#f5d9d9;color:#861b1b}.status.not_tested{background:#e7e7e7;color:#555}
html[data-theme="dark"] .maintenance-warning{background:#4a3812;color:#ffe8a0}
html[data-theme="dark"] .defect-card,html[data-theme="dark"] .inspection-card{background:#1b1b1b;border-color:#3e3e3e}
html[data-theme="dark"] .status.pending{background:#333;color:#eee}html[data-theme="dark"] .status.ok{background:#173d20;color:#c8f4cf}html[data-theme="dark"] .status.defect{background:#4b1f1f;color:#ffd3d3}html[data-theme="dark"] .status.not_tested{background:#333;color:#ddd}
@media(max-width:760px){.defect-card,.inspection-head{flex-direction:column}.inline-resolve{min-width:0;width:100%}.inspection-card{padding:.8rem}}
.maintenance-info{padding:.7rem .8rem;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:10px;background:var(--surface-soft);color:var(--muted);font-size:.82rem}

/* WiMA 0.2.12 – Prüfablauf, Labels, Signaturen und flexible Berichtsfelder */
.job-label-cell{min-width:180px}.job-label-summary{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:5px}.label-editor{position:relative}.label-editor>summary{list-style:none;cursor:pointer;width:max-content}.label-editor>summary::-webkit-details-marker{display:none}.label-inline-form{position:absolute;z-index:20;right:0;top:calc(100% + 6px);min-width:260px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.check-grid.compact{gap:5px;margin-bottom:8px}.button.tiny{padding:5px 8px;font-size:.72rem}.button.success{background:#3b9448;border-color:#3b9448;color:#fff}.button.success:hover{background:#327e3d}.inspection-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.inspection-fields{padding:.75rem 0}.inspection-fields h4{margin:0 0 .6rem}.defect-picker[hidden]{display:none!important}.defect-search-list{max-height:260px;overflow:auto;margin:.7rem 0}.defect-inline,.protocol-defect{margin-top:5px;padding:5px 7px;border-left:3px solid var(--red);background:rgba(210,50,50,.08);font-size:.82rem}.measurement-list,.protocol-values{display:grid;grid-template-columns:minmax(120px,1fr) minmax(70px,1fr);gap:3px 10px;margin:7px 0}.measurement-list dt,.protocol-values dt{color:var(--muted)}.measurement-list dd,.protocol-values dd{margin:0;font-weight:700}.protocol-components td{vertical-align:top}.result-ok{color:#2f833c}.result-defect{color:#c52b35}.result-not_tested{color:#777}.flex-checklist{display:grid;gap:9px;margin:.65rem 0}.flex-check-field>label{display:grid;gap:5px}.checkbox-text-row{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center}.checkbox-text-row input[type=checkbox]{width:auto}.signature-grid-live{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.signature-entry{display:grid;gap:8px}.signature-pad-wrap{display:grid;gap:6px}.signature-pad-wrap canvas{width:100%;height:150px;border:1px solid var(--line);border-radius:9px;background:#fff;touch-action:none;cursor:crosshair}.signature-existing{display:block;width:100%;max-height:150px;object-fit:contain;border:1px solid var(--line);border-radius:9px;background:#fff}.builder-check-fields{display:grid;gap:7px;margin-top:8px}.builder-check-field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(145px,.65fr) auto;gap:6px;align-items:center}.field-hint{display:block;margin-top:4px;color:var(--muted);font-size:.75rem}.check-row.compact{margin-top:6px}.inspection-readonly{padding-top:.5rem}.panel-header.compact{margin-bottom:4px}
body[data-theme="dark"] .label-inline-form{background:#1b1b1b;border-color:#494f4b}body[data-theme="dark"] .signature-pad-wrap canvas,body[data-theme="dark"] .signature-existing{border-color:#555}body[data-theme="dark"] .defect-inline,body[data-theme="dark"] .protocol-defect{background:rgba(239,102,102,.12)}
@media(max-width:760px){.signature-grid-live{grid-template-columns:1fr}.label-inline-form{position:fixed;left:12px;right:12px;top:auto;bottom:12px;min-width:0}.builder-check-field-row{grid-template-columns:1fr}.inspection-actions .button{flex:1 1 140px}}

/* 0.2.12.1: kompakte, farbige Labels in der Auftragsliste */
.job-label-row{display:flex;align-items:flex-start;gap:6px;min-width:0}.job-label-summary{display:flex;flex-wrap:wrap;gap:4px;margin:0;min-width:0}.label-chip.colored{background:var(--label-bg)!important;color:var(--label-fg)!important;border-color:var(--label-bg)!important;box-shadow:none}.label-add-button{display:inline-grid;place-items:center;width:27px;height:27px;min-width:27px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface-2);color:var(--text);font-size:1.08rem;font-weight:800;line-height:1;cursor:pointer;list-style:none}.label-add-button::-webkit-details-marker{display:none}.label-add-button:hover{border-color:var(--green);color:var(--green)}.label-choice{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px}.label-choice input{flex:0 0 auto}.job-label-cell{min-width:150px}.label-editor{flex:0 0 auto}.label-inline-form{right:0}.job-label-row .label-editor[open]>.label-add-button{background:var(--green);border-color:var(--green);color:#fff}

/* WiMA 0.2.13 – Security & PWA */
.brand-logo{object-fit:contain;aspect-ratio:1/1;background:transparent;padding:1px}
.security-secret{display:grid;gap:7px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);margin:10px 0}
.security-secret code,.code-wrap{display:block;overflow-wrap:anywhere;padding:8px;border-radius:8px;background:var(--surface);border:1px solid var(--line);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.82rem}
.recovery-box{margin-top:18px;padding:14px;border:1px solid #c58b2b;border-radius:12px;background:#fff8e7}.recovery-box h3{margin-top:0}.recovery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.recovery-grid code{padding:8px 10px;border:1px solid #dfbd78;border-radius:8px;background:#fff;font-weight:800;letter-spacing:.04em}
.security-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.security-status-grid>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.security-status-grid code{font-size:.75rem;overflow-wrap:anywhere;text-align:right}
body[data-theme="dark"] .security-secret,body[data-theme="dark"] .security-status-grid>div{background:#202020;border-color:#414744}body[data-theme="dark"] .security-secret code,body[data-theme="dark"] .code-wrap{background:#151515;border-color:#414744;color:#fff}body[data-theme="dark"] .recovery-box{background:#362d18;border-color:#7f6830;color:#fff}body[data-theme="dark"] .recovery-grid code{background:#171717;border-color:#6d5b2b;color:#ffe9a8}
@media(max-width:720px){.security-status-grid,.recovery-grid{grid-template-columns:1fr}}

@media (display-mode: standalone), (display-mode: fullscreen) {
  body{min-height:100dvh;padding-bottom:env(safe-area-inset-bottom)}
  .topbar{padding-left:max(15px,env(safe-area-inset-left));padding-right:max(15px,env(safe-area-inset-right));padding-top:env(safe-area-inset-top)}
  .page-shell{padding-left:max(15px,env(safe-area-inset-left));padding-right:max(15px,env(safe-area-inset-right))}
}
