:root {
    --sidebar: #26353A;
    --sidebar-2: #1f2c30;
    --accent: #1BBAA5;
    --surface: #FFFFFF;
    --background: #F4F7F8;
    --text: #1F2933;
    --muted: #6B7780;
    --line: #DDE4E7;
    --danger: #C93A3A;
    --warning: #D28A18;
    --success: #288A68;
    --shadow: 0 8px 24px rgba(31, 45, 50, .08);
}
* { box-sizing: border-box; }
html, body, button, input, select, option, textarea, table, th, td { font-family: Helvetica, Arial, sans-serif; }
html, body { margin: 0; min-height: 100%; }
body { font-family: Helvetica, Arial, sans-serif; background: var(--background); color: var(--text); font-size: 14px; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; font-family: Helvetica, Arial, sans-serif; }
.app-shell { min-height: 100vh; display: flex; }
.sidebar { width: 248px; background: var(--sidebar); color: #fff; position: fixed; inset: 0 auto 0 0; display: flex; flex-direction: column; z-index: 20; overflow-x: hidden; }
.brand { min-height: 120px; display: flex; align-items: center; justify-content: flex-start; padding: 8px 18px; border-bottom: 1px solid rgba(255,255,255,.08); }
.brand picture { display: block; }
.brand-logo { display: block; width: 148px; max-height: 104px; object-fit: contain; object-position: left center; }
.brand:hover { background: rgba(255,255,255,.025); }
.sidebar-nav { padding: 16px 10px; display: flex; flex-direction: column; gap: 4px; overflow-y: auto; overflow-x: hidden; }
.nav-item { min-height: 52px; width: 100%; max-width: 100%; display: flex; align-items: center; gap: 12px; padding: 5px 10px; border-radius: 8px; color: rgba(255,255,255,.82); position: relative; overflow: hidden; }
.nav-item svg { width: 20px; height: 20px; fill: currentColor; flex: 0 0 auto; }
.nav-icon { width: 40px; height: 40px; max-width: 40px; max-height: 40px; object-fit: contain; flex: 0 0 40px; opacity: .96; }
.nav-item:hover .nav-icon, .nav-item.active .nav-icon { opacity: 1; }
.nav-item > span { flex: 1 1 auto; min-width: 0; font-size: 13px; line-height: 1.15; white-space: normal; overflow-wrap: anywhere; }
.nav-item > small { flex: 0 0 auto; margin-left: 4px; font-size: 9px; }
.nav-item:hover { background: rgba(255,255,255,.07); color: #fff; }
.nav-item.active { background: rgba(27,186,165,.16); color: #fff; box-shadow: inset 3px 0 0 var(--accent); }
.nav-item.active svg { color: var(--accent); }
.nav-item small { margin-left: auto; color: rgba(255,255,255,.4); }
.nav-item.disabled { opacity: .45; cursor: not-allowed; }
.sidebar-footer { margin-top: auto; padding: 16px 20px; color: rgba(255,255,255,.42); font-size: 12px; border-top: 1px solid rgba(255,255,255,.08); }
.main-column { margin-left: 248px; width: calc(100% - 248px); min-height: 100vh; }
.topbar { height: 80px; background: var(--surface); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 28px; position: sticky; top: 0; z-index: 10; }
.topbar h1 { margin: 0; font-size: 22px; font-weight: 600; }
.context-line { margin-top: 4px; font-size: 12px; color: var(--muted); }
.topbar-left, .topbar-actions, .user-chip { display: flex; align-items: center; gap: 14px; }
.user-chip { padding-left: 10px; border-left: 1px solid var(--line); }
.user-chip > div:last-child { display: flex; flex-direction: column; gap: 2px; }
.user-chip strong { font-size: 13px; }
.user-chip span { font-size: 11px; color: var(--muted); }
.avatar { width: 36px; height: 36px; border-radius: 50%; background: #E5F7F4; color: #117C6D; display: grid; place-items: center; font-weight: 700; }
.icon-btn { width: 38px; height: 38px; border: 1px solid var(--line); background: #fff; border-radius: 8px; display: grid; place-items: center; cursor: pointer; }
.icon-btn:hover { border-color: #b9c7cb; background: #fafcfc; }
.tenant-switch select { min-width: 190px; }
.content { padding: 28px; max-width: 1600px; margin: 0 auto; }
.page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.page-head h2 { margin: 0 0 6px; font-size: 20px; }
.page-head p { margin: 0; color: var(--muted); }
.actions { display: flex; gap: 10px; flex-wrap: wrap; }
.btn { border: 1px solid transparent; border-radius: 8px; padding: 10px 15px; cursor: pointer; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; }
.btn-primary { background: var(--accent); color: #fff; }
.btn-primary:hover { filter: brightness(.95); }
.btn-secondary { background: #fff; border-color: var(--line); color: var(--text); }
.btn-danger { background: #fff; border-color: #f0c3c3; color: var(--danger); }
.btn-sm { min-height: 32px; padding: 6px 10px; font-size: 12px; }
.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 22px; }
.kpi { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 18px; box-shadow: var(--shadow); position: relative; overflow: hidden; }
.kpi::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--accent); }
.kpi .label { color: var(--muted); font-size: 12px; }
.kpi .value { font-size: 28px; font-weight: 700; margin-top: 9px; }
.kpi .meta { color: var(--muted); font-size: 11px; margin-top: 6px; }
.grid-2 { display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; }
.card { background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); }
.card-head { min-height: 54px; padding: 14px 18px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.card-head h3 { margin: 0; font-size: 15px; }
.card-body { padding: 18px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th { text-align: left; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; padding: 11px 12px; background: #F8FAFB; border-bottom: 1px solid var(--line); }
td { padding: 12px; border-bottom: 1px solid #EDF1F2; vertical-align: middle; }
tr:last-child td { border-bottom: 0; }
.badge { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; background: #EEF2F3; color: #526069; }
.badge-active { background: #E5F7F2; color: #187A61; }
.badge-draft { background: #FFF4DE; color: #9C6714; }
.badge-completed { background: #EEF1F3; color: #59656C; }
.badge-status { min-width: 28px; justify-content: center; }
.status-1 { background: #E6F5EF; color: #217E5F; }
.status-2 { background: #EAF3FC; color: #2B6DA8; }
.status-3 { background: #FFF0D6; color: #94631A; }
.status-4 { background: #FBE8E8; color: #A33939; }
.status-6 { background: #EEE9F8; color: #68499D; }
.status-7 { background: #E8EEF9; color: #405F9A; }
.form-card { max-width: 900px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.form-group { display: flex; flex-direction: column; gap: 7px; }
.form-group.full { grid-column: 1 / -1; }
label { font-weight: 600; font-size: 12px; }
input, select, textarea { width: 100%; border: 1px solid #C9D4D8; border-radius: 7px; padding: 10px 11px; background: #fff; color: var(--text); outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(27,186,165,.12); }
textarea { min-height: 105px; resize: vertical; }
.help { color: var(--muted); font-size: 11px; }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; padding-top: 18px; margin-top: 18px; border-top: 1px solid var(--line); }
.alert { padding: 12px 14px; border-radius: 8px; margin-bottom: 18px; border: 1px solid transparent; }
.alert-success { background: #E7F7F1; color: #216B54; border-color: #BDE8D9; }
.alert-warning { background: #FFF5DF; color: #80591A; border-color: #F1D69B; }
.alert-danger { background: #FDEAEA; color: #963434; border-color: #F0BCBC; }
.empty-state { padding: 42px 20px; text-align: center; color: var(--muted); }
.empty-state strong { display: block; color: var(--text); margin-bottom: 6px; }
.login-body { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(420px, .9fr); background: var(--surface); }
.login-visual { background: linear-gradient(145deg, var(--sidebar), #182326); color: white; padding: 7vw; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.login-visual::after { content: ''; display: none; }
.login-logo { position: relative; z-index: 1; }
.login-logo picture { display: block; }
.login-brand-logo { display: block; width: min(360px, 74%); height: auto; }
.login-version { color: rgba(255,255,255,.42); font-size: 12px; position: relative; z-index: 1; }
.login-copy { max-width: 620px; position: relative; z-index: 1; }
.login-copy h1 { font-size: clamp(34px, 4vw, 62px); line-height: 1.02; margin: 0 0 18px; }
.login-copy p { color: rgba(255,255,255,.72); font-size: 16px; line-height: 1.6; }
.login-panel { display: grid; place-items: center; padding: 40px; background: #fff; }
.login-card { width: 100%; max-width: 430px; }
.login-card h2 { font-size: 28px; margin: 0 0 8px; }
.login-card > p { color: var(--muted); margin: 0 0 28px; }
.login-card .form-group { margin-bottom: 16px; }
.login-card .btn { width: 100%; margin-top: 8px; }
.login-foot { margin-top: 24px; font-size: 11px; color: var(--muted); text-align: center; }
.mobile-only { display: none; }
.muted { color: var(--muted); }
.mono { font-family: Helvetica, Arial, sans-serif; }
@media (max-width: 1100px) {
    .kpi-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .grid-2 { grid-template-columns: 1fr; }
}
@media (max-width: 840px) {
    .sidebar { transform: translateX(-100%); transition: transform .2s ease; }
    .sidebar.open { transform: translateX(0); }
    .main-column { margin-left: 0; width: 100%; }
    .mobile-only { display: grid; }
    .tenant-switch, .user-chip > div:last-child { display: none; }
    .content { padding: 18px; }
    .topbar { padding: 0 18px; }
    .login-body { grid-template-columns: 1fr; }
    .login-visual { min-height: 154px; padding: 18px 24px; justify-content: center; }
    .login-copy, .login-version { display: none; }
    .login-brand-logo { width: 190px; max-height: 118px; object-fit: contain; }
}
@media (max-width: 620px) {
    .kpi-grid, .form-grid { grid-template-columns: 1fr; }
    .page-head { flex-direction: column; }
    .actions, .actions .btn { width: 100%; }
    .login-panel { padding: 24px; }
}
.modal-backdrop { position: fixed; inset: 0; background: rgba(19,31,35,.52); display: none; align-items: center; justify-content: center; padding: 20px; z-index: 100; }
.modal-backdrop.open { display: flex; }
.modal { width: min(720px, 100%); max-height: calc(100vh - 40px); overflow: auto; background: #fff; border-radius: 12px; box-shadow: 0 24px 70px rgba(0,0,0,.22); }
.modal-head { min-height: 62px; padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.modal-head h3 { margin: 0; font-size: 17px; }
.modal-close { border: 0; background: transparent; font-size: 24px; color: var(--muted); cursor: pointer; }
.modal-body { padding: 20px; }
.detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.detail-item { padding: 14px; background: #F8FAFB; border: 1px solid var(--line); border-radius: 8px; }
.detail-item span { display: block; color: var(--muted); font-size: 11px; margin-bottom: 5px; }
.detail-item strong { font-size: 13px; }
.settings-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.settings-card { display:block; padding:20px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); }
.settings-card:hover { border-color:#b6dcd6; transform:translateY(-1px); }
.settings-card h3 { margin:0 0 8px; font-size:15px; }
.settings-card p { margin:0; color:var(--muted); line-height:1.5; }
@media (max-width: 900px) { .detail-grid,.settings-grid { grid-template-columns:1fr; } }

/* Sanisphere v0.3.0 */
.nav-section { padding: 16px 12px 6px; color: rgba(255,255,255,.38); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.nav-section:first-child { padding-top: 4px; }
.kpi-grid.kpi-6 { grid-template-columns: repeat(6, minmax(0,1fr)); }
.badge-valid { background:#E5F7F2; color:#187A61; }
.badge-expiring { background:#FFF4DE; color:#9C6714; }
.badge-expired { background:#FDEAEA; color:#963434; }
.badge-released { background:#E5F7F2; color:#187A61; }
.badge-full { background:#E5F7F2; color:#187A61; }
.badge-open { background:#FFF4DE; color:#9C6714; }
.badge-missing { background:#FDEAEA; color:#963434; }
.chips { display:flex; flex-wrap:wrap; gap:6px; }
.chip { display:inline-flex; align-items:center; gap:5px; padding:4px 8px; border:1px solid var(--line); border-radius:999px; font-size:11px; background:#fff; }
.chip strong { font-size:11px; }
.subnav { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px; }
.subnav a { padding:8px 11px; border:1px solid var(--line); border-radius:8px; background:#fff; font-size:12px; font-weight:600; }
.subnav a.active { border-color:rgba(27,186,165,.45); background:rgba(27,186,165,.08); color:#117C6D; }
.progress-bar { height:8px; border-radius:999px; background:#EDF1F2; overflow:hidden; min-width:110px; }
.progress-bar > span { display:block; height:100%; background:var(--accent); }
.position-card { border:1px solid var(--line); border-radius:10px; background:#fff; margin-bottom:14px; overflow:hidden; }
.position-head { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 16px; background:#F8FAFB; border-bottom:1px solid var(--line); }
.position-body { padding:14px 16px; }
.assignment-list { display:grid; gap:8px; margin-top:12px; }
.assignment-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border:1px solid #EDF1F2; border-radius:8px; }
.assignment-person { display:flex; flex-direction:column; gap:3px; }
.assignment-person small { color:var(--muted); }
.stat-inline { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.stat-inline > span { display:inline-flex; align-items:center; gap:6px; color:var(--muted); font-size:12px; }
.warning-text { color:#963434; font-size:11px; font-weight:700; }
.ok-text { color:#187A61; font-size:11px; font-weight:700; }
@media (max-width: 1280px) { .kpi-grid.kpi-6 { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 620px) { .kpi-grid.kpi-6 { grid-template-columns:1fr; } .assignment-row,.position-head { align-items:flex-start; flex-direction:column; } }

/* Sanisphere 0.3.0 · Live-Einsatzplanung */
.live-toolbar { margin-bottom: 18px; padding: 14px 18px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.live-toolbar-main { display:flex; align-items:end; gap:20px; min-width:0; }
.live-operation-switch { min-width:310px; display:flex; flex-direction:column; gap:6px; }
.live-operation-meta { display:flex; flex-direction:column; gap:4px; min-width:0; padding-bottom:3px; }
.live-operation-meta strong { font-size:15px; }
.live-operation-meta span { color:var(--muted); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.live-indicator { display:flex; align-items:center; gap:8px; color:#187A61; font-size:12px; font-weight:700; white-space:nowrap; }
.live-indicator > span { width:9px; height:9px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px rgba(27,186,165,.12); }
.live-indicator.syncing { color:#80591A; }
.live-indicator.syncing > span { background:var(--warning); box-shadow:0 0 0 4px rgba(210,138,24,.12); }
.live-indicator.error { color:var(--danger); }
.live-indicator.error > span { background:var(--danger); box-shadow:0 0 0 4px rgba(201,58,58,.12); }
.live-kpis { margin-bottom:18px; }
.kpi-grid.kpi-6 { grid-template-columns:repeat(6,minmax(0,1fr)); }
.status-kpi::before { background:#A7B2B7; }
.status-kpi-1::before { background:#288A68; }
.status-kpi-2::before { background:#2B6DA8; }
.status-kpi-3::before { background:#D28A18; }
.status-kpi-4::before { background:#C93A3A; }
.status-kpi-6::before { background:#68499D; }
.status-kpi-7::before { background:#405F9A; }
.live-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(310px,.7fr); gap:18px; align-items:start; }
.live-main { min-width:0; display:grid; gap:18px; }
.live-locations-card { overflow:hidden; }
.location-zones { display:flex; gap:10px; padding:14px 16px; overflow-x:auto; }
.location-zone { min-width:180px; min-height:78px; border:1px dashed #AFC4C8; border-radius:9px; background:#F8FBFB; padding:12px; display:flex; flex-direction:column; justify-content:center; gap:5px; transition:.15s ease; }
.location-zone strong { font-size:13px; }
.location-zone span { color:var(--muted); font-size:11px; line-height:1.3; }
.location-zone-clear { background:#FAFAFA; }
.location-zone.drag-over, .status-lane.drag-over { border-color:var(--accent); background:#EFFBF9; box-shadow:inset 0 0 0 2px rgba(27,186,165,.12); }
.live-hint { padding:0 16px 15px; color:var(--muted); font-size:11px; }
.status-board { display:grid; grid-template-columns:repeat(3,minmax(230px,1fr)); gap:12px; }
.status-lane { background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); min-width:0; min-height:230px; transition:.15s ease; }
.status-lane-head { min-height:52px; padding:11px 12px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:10px; }
.status-lane-head > div { display:flex; align-items:center; gap:8px; min-width:0; }
.status-lane-head strong { font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.status-number { width:28px; height:28px; border-radius:8px; display:grid; place-items:center; font-weight:800; flex:0 0 auto; }
.status-lane-body { min-height:176px; padding:10px; display:flex; flex-direction:column; gap:9px; }
.resource-card { border:1px solid #DCE6E8; border-radius:9px; padding:11px; background:#fff; box-shadow:0 3px 10px rgba(31,45,50,.06); cursor:default; }
.resource-card[draggable="true"] { cursor:grab; }
.resource-card[draggable="true"]:active { cursor:grabbing; }
.resource-card.dragging { opacity:.45; transform:scale(.985); }
.resource-card-top { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
.resource-card-top > div { min-width:0; display:flex; flex-direction:column; gap:3px; }
.resource-card-top strong { font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.resource-card-top span:not(.resource-type) { font-size:10px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.resource-type { display:inline-flex; padding:3px 6px; border-radius:999px; background:#EEF2F3; color:#526069; font-size:9px; font-weight:700; white-space:nowrap; }
.resource-location { margin-top:9px; color:#526069; font-size:10px; padding-top:8px; border-top:1px solid #EDF1F2; }
.resource-card-controls { margin-top:8px; display:grid; grid-template-columns:minmax(0,1fr) 30px; gap:7px; }
.resource-card-controls select { min-width:0; padding:6px 7px; font-size:10px; height:30px; }
.resource-release { width:30px; height:30px; border:1px solid #EAC5C5; background:#FFF; color:var(--danger); border-radius:7px; font-size:18px; line-height:1; cursor:pointer; }
.resource-release:hover { background:#FDEAEA; }
.live-history-card { position:sticky; top:98px; overflow:hidden; }
.live-history { max-height:calc(100vh - 190px); overflow:auto; }
.history-entry { padding:12px 14px; border-bottom:1px solid #EDF1F2; display:flex; flex-direction:column; gap:4px; }
.history-entry:last-child { border-bottom:0; }
.history-time { color:var(--muted); font-size:10px; font-family:Helvetica,Arial,sans-serif; }
.history-entry strong { font-size:12px; }
.history-entry span { font-size:11px; line-height:1.35; }
.history-entry small { color:var(--muted); font-size:9px; line-height:1.35; }
.empty-state.compact { padding:26px 14px; font-size:12px; }
@media (max-width:1320px) {
    .kpi-grid.kpi-6 { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .status-board { grid-template-columns:repeat(2,minmax(230px,1fr)); }
}
@media (max-width:1120px) {
    .live-layout { grid-template-columns:1fr; }
    .live-history-card { position:static; }
    .live-history { max-height:460px; }
}
@media (max-width:760px) {
    .live-toolbar, .live-toolbar-main { align-items:stretch; flex-direction:column; }
    .live-operation-switch { min-width:0; width:100%; }
    .status-board { grid-template-columns:1fr; }
    .kpi-grid.kpi-6 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Sanisphere 0.4.0 · Einsatztagebuch */
.log-operation-switch { margin-bottom: 18px; }
.log-operation-switch .card-body { padding: 14px 18px; }
.log-switch-form { max-width: 720px; }
.log-kpis { margin-bottom: 16px; }
.log-filters { margin-bottom: 12px; }
.operation-log-table { min-width: 1380px; }
.operation-log-table td { font-size: 12px; }
.log-message { margin-top: 4px; line-height: 1.4; max-width: 340px; }
.log-type { white-space: nowrap; }
.log-type-alarm { background: #FDEAEA; color: #963434; }
.log-type-patrol { background: #EAF3FC; color: #2B6DA8; }
.log-type-manual { background: #FFF4DE; color: #80591A; }
.log-type-status { background: #E5F7F2; color: #187A61; }
.log-type-location { background: #EEF1F8; color: #405F9A; }
.log-type-resource { background: #EEE9F8; color: #68499D; }
.log-type-system { background: #EEF2F3; color: #526069; }
.modal-wide { width: min(920px, 100%); }
.catalog-grid .card { min-width: 0; }
@media (max-width: 900px) {
    .catalog-grid { grid-template-columns: 1fr; }
}

/* Sanisphere 0.5.0 · Patienten & Behandlungsplätze */
.kpi-grid.kpi-5 { grid-template-columns: repeat(5,minmax(0,1fr)); }
.treatment-operation-switch,.patient-operation-switch { margin-bottom:18px; }
.treatment-place-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.treatment-place-card.is-closed { opacity:.7; }
.treatment-place-card .card-head > div { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.treatment-place-meta { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; color:var(--muted); font-size:11px; margin-bottom:16px; }
.occupancy-number { display:flex; align-items:baseline; gap:6px; margin-bottom:8px; }
.occupancy-number strong { font-size:30px; }
.occupancy-number span { color:var(--muted); font-size:12px; }
.treatment-place-notes { font-size:11px; line-height:1.5; margin:12px 0 0; }
.treatment-place-actions { margin-top:16px; }
.patient-filter-row { display:grid; grid-template-columns:2fr 1fr; gap:14px; align-items:end; }
.patient-status-registered { background:#EEF2F3;color:#526069; }
.patient-status-treatment { background:#EAF3FC;color:#2B6DA8; }
.patient-status-observation { background:#FFF4DE;color:#9C6714; }
.patient-status-handover { background:#EEE9F8;color:#68499D; }
.patient-status-transport { background:#E8EEF9;color:#405F9A; }
.patient-status-released { background:#E5F7F2;color:#187A61; }
.patient-form-card { max-width:1100px; }
.patient-summary-grid { display:grid; grid-template-columns:1fr; gap:18px; margin-bottom:18px; }
.patient-detail-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.patient-edit-card { margin-bottom:18px; }
.patient-readonly-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 22px; }
.patient-readonly-fields p { margin:0; line-height:1.55; }
.patient-place-form { display:grid; grid-template-columns:1.4fr 1fr auto; gap:12px; align-items:end; }
.patient-place-history { margin-top:18px; border-top:1px solid var(--line); }
.care-timeline { display:grid; gap:12px; }
.care-entry { border-left:3px solid var(--accent); background:#F8FAFB; border-radius:0 8px 8px 0; padding:12px 14px; }
.care-entry-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
.care-entry-head .mono { font-size:10px; color:var(--muted); }
.care-entry-body { line-height:1.55; }
.care-entry small { display:block; margin-top:8px; color:var(--muted); }
@media (max-width:1280px) { .kpi-grid.kpi-5 { grid-template-columns:repeat(3,minmax(0,1fr)); } .treatment-place-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:900px) { .patient-detail-grid,.patient-readonly-fields { grid-template-columns:1fr; } .patient-place-form,.patient-filter-row { grid-template-columns:1fr; } }
@media (max-width:680px) { .kpi-grid.kpi-5,.treatment-place-grid { grid-template-columns:1fr; } }

/* Sanisphere 0.6.0 · Meldesystem & Disposition */
.message-toolbar .card-body { padding:14px 16px; }
.message-filter-row { display:grid; grid-template-columns:minmax(260px,1.5fr) minmax(170px,.7fr) minmax(150px,.6fr) auto; gap:12px; align-items:end; }
.message-live-controls { display:flex; align-items:center; justify-content:flex-end; gap:12px; min-height:40px; }
.message-live-state { display:inline-flex; align-items:center; gap:7px; color:#187A61; font-size:11px; font-weight:700; white-space:nowrap; }
.message-live-state > span { width:8px; height:8px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px rgba(27,186,165,.12); }
.message-live-state.syncing { color:#80591A; }
.message-live-state.syncing > span { background:var(--warning); box-shadow:0 0 0 4px rgba(210,138,24,.12); }
.message-live-state.error { color:var(--danger); }
.message-live-state.error > span { background:var(--danger); box-shadow:0 0 0 4px rgba(201,58,58,.12); }
.message-kpis .priority-urgent::before, .priority-urgent::before { background:#D28A18; }
.message-kpis .priority-critical::before, .priority-critical::before { background:#C93A3A; }
.message-priority { min-width:68px; justify-content:center; }
.priority-normal { background:#EEF2F3; color:#526069; }
.priority-urgent { background:#FFF0D6; color:#94631A; }
.priority-critical { background:#FBE8E8; color:#A33939; }
.status-message-new { background:#FBE8E8; color:#A33939; }
.status-message-acknowledged { background:#FFF0D6; color:#94631A; }
.status-message-dispatched { background:#EAF3FC; color:#2B6DA8; }
.status-message-in_progress { background:#EEE9F8; color:#68499D; }
.status-message-resolved { background:#E6F5EF; color:#217E5F; }
.status-message-cancelled { background:#EEF1F3; color:#59656C; }
.messages-table td { vertical-align:top; }
.message-row.priority-row-critical { box-shadow:inset 4px 0 0 #C93A3A; background:#FFFAFA; }
.message-row.priority-row-urgent { box-shadow:inset 4px 0 0 #D28A18; }
.message-description { min-width:280px; max-width:520px; }
.message-description strong { display:block; margin-bottom:4px; }
.message-description div { line-height:1.4; color:#46545B; white-space:normal; }
.message-description small { display:block; margin-top:5px; color:var(--muted); }
.message-form-card { max-width:980px; }
.message-detail-head { margin-bottom:18px; min-height:58px; padding:13px 16px; background:#fff; border:1px solid var(--line); border-left-width:5px; border-radius:10px; box-shadow:var(--shadow); display:flex; justify-content:space-between; align-items:center; gap:14px; }
.message-detail-head > div { display:flex; flex-wrap:wrap; gap:8px; }
.message-detail-head.priority-detail-normal { border-left-color:#A7B2B7; }
.message-detail-head.priority-detail-urgent { border-left-color:#D28A18; }
.message-detail-head.priority-detail-critical { border-left-color:#C93A3A; }
.message-detail-grid { grid-template-columns:minmax(0,1.45fr) minmax(310px,.55fr); }
.message-detail-main,.message-detail-side { display:grid; gap:18px; align-content:start; }
.message-detail-side .card { overflow:hidden; }
.message-text-block { margin-top:16px; padding-top:15px; border-top:1px solid #EDF1F2; }
.message-text-block > span { display:block; color:var(--muted); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }
.message-text-block p { margin:0; line-height:1.6; }
.message-action-stack { display:grid; gap:14px; }
.message-dispatch-form { display:grid; grid-template-columns:minmax(240px,1fr) auto; gap:10px 14px; align-items:end; }
.message-dispatch-form .check-row { grid-column:1/-1; }
.check-row { display:flex; align-items:flex-start; gap:9px; font-size:11px; color:#526069; font-weight:400; }
.check-row input { width:auto; margin-top:1px; }
.message-status-actions { display:flex; flex-wrap:wrap; gap:8px; padding-top:12px; border-top:1px solid #EDF1F2; }
.detail-list { display:grid; gap:0; }
.detail-list > div { padding:10px 0; display:flex; justify-content:space-between; gap:16px; border-bottom:1px solid #EDF1F2; }
.detail-list > div:last-child { border-bottom:0; }
.detail-list span { color:var(--muted); font-size:11px; }
.detail-list strong { font-size:12px; text-align:right; }
.message-history { max-height:540px; overflow:auto; }
@media (max-width:1180px) {
    .message-filter-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .message-live-controls { justify-content:flex-start; }
    .message-detail-grid { grid-template-columns:1fr; }
}
@media (max-width:680px) {
    .message-filter-row { grid-template-columns:1fr; }
    .message-dispatch-form { grid-template-columns:1fr; }
    .message-live-controls { flex-wrap:wrap; }
    .message-detail-head { align-items:flex-start; flex-direction:column; }
}

/* Sanisphere 0.7.0 · Einsatzarchiv */
.archive-section { margin-bottom: 18px; }
.archive-stack { display: grid; gap: 12px; }
.archive-filter { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.archive-filter input { min-width: 260px; }
.archive-filter select { min-width: 120px; }
.archive-hash { display: block; margin-top: 7px; font-size: 10px; word-break: break-all; opacity: .78; }
.archive-details { border: 1px solid var(--line); border-radius: 8px; background: #fff; overflow: hidden; }
.archive-details > summary { cursor: pointer; list-style: none; padding: 12px 14px; font-weight: 700; background: #F8FAFB; border-bottom: 1px solid transparent; }
.archive-details[open] > summary { border-bottom-color: var(--line); }
.archive-details > summary::-webkit-details-marker { display: none; }
.archive-details > summary::after { content: '▾'; float: right; color: var(--muted); }
.archive-details:not([open]) > summary::after { content: '›'; }
.archive-details > .table-wrap { padding: 0; }
.archive-details h4 { font-size: 13px; margin: 18px 14px 8px; }
.archive-patient-grid { padding: 14px; }
.archive-patient-grid .full { grid-column: 1 / -1; }
.archive-details .archive-patient-grid + h4 { margin-top: 4px; }
@media (max-width: 760px) {
    .archive-filter { width: 100%; }
    .archive-filter input, .archive-filter select, .archive-filter .btn { width: 100%; min-width: 0; }
    .archive-patient-grid { grid-template-columns: 1fr; }
    .archive-patient-grid .full { grid-column: auto; }
}

/* Sanisphere 0.7.2 · Matrix-Dienstplanung & Ressourcenboard */
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--accent);text-transform:uppercase;margin-bottom:8px}
.live-page-head{align-items:center}
.resource-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}
.qualification-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#F8FAFB;max-height:240px;overflow:auto}
.qualification-option{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:7px;background:#fff;border:1px solid #E6ECEE;font-weight:400}
.qualification-option input{width:auto;margin:0}
.check-line{display:flex;align-items:center;gap:9px;font-weight:600}.check-line input{width:auto}

.duty-matrix-card{overflow:hidden}.duty-matrix-wrap{overflow:auto;max-width:100%}.duty-matrix{min-width:900px;border-collapse:separate;border-spacing:0}.duty-matrix th,.duty-matrix td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px;vertical-align:top}.duty-matrix thead th{position:sticky;top:0;z-index:4;background:#F4F7F8;text-transform:none;letter-spacing:0;font-size:12px}.duty-function-col{position:sticky;left:0;z-index:3;width:230px;min-width:230px;background:#fff!important}.duty-matrix thead .duty-function-col{z-index:6;background:#F4F7F8!important}.duty-shift-head{min-width:210px;text-align:center}.duty-shift-head strong,.duty-shift-head span{display:block}.duty-shift-head span{font-size:10px;color:var(--muted);font-weight:400;margin-top:4px}.duty-shift-actions{display:flex;justify-content:center;gap:7px;margin-top:6px;flex-wrap:wrap}.mini-link{border:0;background:transparent;padding:0;color:#087F70;font-size:10px;font-weight:700;cursor:pointer}.mini-link.danger{color:var(--danger)}.duty-section-row td{background:#26353A;color:#fff;padding:9px 12px}.duty-section-row.duty-section-einsatzleitung td{background:#E58A1F}.duty-section-row.duty-section-rettungsmittel td{background:#C93A3A}.duty-section-row.duty-section-unfallhilfestelle td{background:#2F8A55}.duty-section-row.duty-section-erstversorgungsteam td{background:#2B6DA8}.duty-section-row.duty-section-default td{background:#26353A}.duty-section-row td strong{color:#fff}.duty-section-row .btn-secondary{background:rgba(255,255,255,.96);border-color:rgba(255,255,255,.88);color:#1F2933}.duty-section-row .btn-secondary:hover{background:#fff}.duty-section-row .btn-danger{background:rgba(255,255,255,.96);border-color:rgba(255,255,255,.88);color:#A12E2E}.duty-section-row td>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.duty-section-row .btn{min-height:29px;padding:4px 8px;font-size:10px}.duty-function{display:flex;flex-direction:column;gap:4px}.duty-function>span,.duty-function>small{font-size:10px;color:var(--muted)}.row-delete{margin-top:4px}.duty-slot{min-width:210px;background:#fff}.duty-slot strong,.duty-slot span,.duty-slot small{display:block}.duty-slot>span{font-size:10px;color:var(--muted);margin-top:4px}.duty-slot-filled{background:#F4FCFA}.duty-slot-open{background:#FFF8E9}.duty-slot-off{background:#F2F4F5;color:#899398}.slot-edit{margin-top:9px;border:1px solid #CFE4E0;background:#fff;color:#087F70;border-radius:6px;padding:5px 8px;font-size:10px;font-weight:700;cursor:pointer}.slot-edit:hover{background:#ECF9F6}

.live-board-shell{display:grid;gap:18px}.status-board.status-board-six{display:grid;grid-template-columns:repeat(6,minmax(185px,1fr));gap:12px;overflow-x:auto;padding-bottom:4px}.status-board-six .status-lane{min-height:350px}.status-board-six .status-lane-head{min-height:74px;padding:10px 12px;border-bottom:0}.status-head-copy{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:3px!important}.status-head-copy small{font-size:10px;font-weight:700;opacity:.9}.status-head-copy strong{white-space:normal!important;line-height:1.15;font-size:12px}.status-count{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;background:rgba(0,0,0,.14)}
.status-lane-1 .status-lane-head{background:#D7EFC8;color:#155514}.status-lane-1 .status-count{background:#72BF57;color:#fff}
.status-lane-2 .status-lane-head{background:#2E7D32;color:#fff}.status-lane-2 .status-count{background:#0D612B;color:#fff}
.status-lane-3 .status-lane-head{background:#FFCA28;color:#2E2B12}.status-lane-3 .status-count{background:#D49B00;color:#fff}
.status-lane-4 .status-lane-head{background:#D62828;color:#fff}.status-lane-4 .status-count{background:#A90D18;color:#fff}
.status-lane-6 .status-lane-head{background:#435260;color:#fff}.status-lane-6 .status-count{background:#2E3D4C;color:#fff}
.status-lane-7 .status-lane-head{background:#E8A3B6;color:#572333}.status-lane-7 .status-count{background:#C9718D;color:#fff}
.status-board-six .status-lane-body{background:#EEF5F6;min-height:276px}.status-lane.drag-over,.location-zone.drag-over,.resource-pool.drag-over{outline:2px solid var(--accent);outline-offset:-2px;background:#EAF9F6!important}
.board-resource{background:#fff}.resource-quals{margin-top:7px;padding-top:7px;border-top:1px solid #EDF1F2;color:#087F70;font-size:10px;font-weight:700}.resource-location{font-size:10px}
.active-locations-card{overflow:hidden}.location-zones{display:flex;gap:10px;padding:14px 16px;overflow-x:auto}.location-zone{position:relative;min-width:190px}.location-zone>div{display:flex;flex-direction:column;gap:4px}.location-zone[draggable="true"]{cursor:grab}.location-zone[draggable="true"]:active{cursor:grabbing}.location-release{position:absolute;right:7px;top:7px;width:24px;height:24px;border:1px solid #E7C5C5;background:#fff;color:var(--danger);border-radius:50%;cursor:pointer;font-size:16px;line-height:1}.location-zone-activate{border-color:#76CFC1;background:#EFFBF8;color:#087F70}
.resource-pool{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:0 16px 16px}.resource-pool-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0}.resource-pool-head h3{margin:0 0 4px}.resource-pool-head p{margin:0;color:var(--muted);font-size:11px}.resource-pool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.resource-pool-group{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#F8FAFB}.pool-group-title{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#fff;border-bottom:1px solid var(--line)}.pool-group-title span{min-width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#E7F7F4;color:#087F70;font-weight:800;font-size:10px}.pool-group-body{padding:10px;display:grid;gap:8px;min-height:94px}.pool-resource{cursor:grab}.pool-resource:active{cursor:grabbing}.live-layout-secondary{display:grid;grid-template-columns:1.4fr .6fr;gap:18px;align-items:start}.live-layout-secondary .live-history-card{position:static}.live-layout-secondary .live-history{max-height:330px}
@media(max-width:1400px){.status-board.status-board-six{grid-template-columns:repeat(3,minmax(220px,1fr))}.resource-pool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.resource-summary-grid,.resource-pool-grid,.live-layout-secondary{grid-template-columns:1fr}.qualification-picker{grid-template-columns:1fr}.status-board.status-board-six{grid-template-columns:repeat(2,minmax(220px,1fr))}}
@media(max-width:620px){.status-board.status-board-six{display:flex;overflow-x:auto}.status-board-six .status-lane{min-width:250px}.duty-function-col{min-width:180px;width:180px}}

/* Sanisphere 0.7.3 · Einsatzplanung nach Board-Prinzip */
.live-page-head p strong{font-weight:700;color:#44535a}
.status-board.status-board-six{grid-template-columns:repeat(6,minmax(150px,1fr));gap:12px;overflow-x:auto;align-items:stretch}
.status-board-six .status-lane{min-height:350px;border-radius:9px;overflow:hidden;box-shadow:none}
.status-board-six .status-lane-head{min-height:74px;justify-content:space-between}
.status-board-six .status-lane-body{min-height:276px;padding:10px;background:#edf4f5}
.status-board-six .resource-card{border-color:#d6e1e4;box-shadow:0 2px 8px rgba(31,45,50,.06)}
.status-lane.drag-over .status-lane-body{background:#e2f7f2}
.status-lane.drag-over{outline:2px solid var(--accent);outline-offset:-2px}
.board-resource-library{padding:0 16px 16px}
.resource-pool-grid.resource-pool-grid-five{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.resource-pool-grid-five .resource-pool-group{min-width:0;background:#fff;box-shadow:0 8px 24px rgba(31,45,50,.05)}
.pool-group-title strong{display:flex;align-items:center;gap:8px;min-width:0}
.pool-icon{min-width:28px;height:22px;padding:0 5px;border-radius:6px;display:inline-grid;place-items:center;background:#e6f7f4;color:#087f70;font-size:9px;font-weight:800;letter-spacing:.03em}
.resource-pool-grid-five .pool-group-body{min-height:120px;align-content:start;background:#fbfcfc}
.compact-location-zones{display:grid;grid-template-columns:1fr;gap:8px;padding:10px;overflow:visible;border-bottom:1px solid var(--line);background:#fbfcfc}
.compact-location-zones .location-zone{min-width:0;min-height:62px;padding:9px 10px}
.pool-location-free{border-top:0;min-height:76px!important}
.location-pool-group .pool-group-title{border-bottom:1px solid var(--line)}
.board-event-note{border:1px solid #bfe4dc;background:#f0fbf8;color:#2f5f57;border-radius:9px;padding:11px 14px;font-size:11px;line-height:1.5}
.board-event-note strong{color:#087f70}
.live-history-card .card-head h3{font-size:14px}
.resource-card.dragging{opacity:.4;transform:scale(.98)}
.resource-card[draggable="true"]{user-select:none}

@media (max-width:1500px){
    .resource-pool-grid.resource-pool-grid-five{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1000px) and (max-width:1400px){
    .status-board.status-board-six{grid-template-columns:repeat(6,minmax(145px,1fr))}
}
@media (max-width:1100px){
    .resource-pool-grid.resource-pool-grid-five{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
    .resource-pool-grid.resource-pool-grid-five{grid-template-columns:1fr}
    .status-board.status-board-six{display:flex;overflow-x:auto;scroll-snap-type:x proximity}
    .status-board-six .status-lane{min-width:245px;scroll-snap-align:start}
}


/* Sanisphere 0.7.5 · Ressourcenboard & Sidebar */
.sidebar,.sidebar-nav{overflow-x:hidden}
.nav-item{min-height:52px;width:100%;max-width:100%;gap:12px;padding:5px 10px;overflow:hidden}
.nav-icon{width:40px!important;height:40px!important;max-width:40px!important;max-height:40px!important;flex:0 0 40px!important;object-fit:contain}
.nav-item>span{min-width:0;line-height:1.15;white-space:normal;overflow-wrap:anywhere}
.status-board-only .status-lane{min-height:430px}
.status-board-only .status-lane-body{min-height:356px}
.status-board-only .resource-card{cursor:grab}
.status-board-only .resource-card:active{cursor:grabbing}
.status-board-only .status-lane.drag-over .status-lane-body{background:#E2F7F2!important}


/* Sanisphere 0.7.6 · kompaktere Sidebar */
.sidebar-nav{padding:10px 10px;gap:0}
.nav-item{min-height:46px;padding:2px 10px;gap:10px}
.nav-section{padding:10px 12px 3px}
.nav-section:first-child{padding-top:2px}


/* Sanisphere 0.7.7 · Ressourcentypfarben & Einsatzansicht */
.board-resource.resource-card-vehicle{background:#C93A3A;border-color:#A82F2F;color:#fff}
.board-resource.resource-card-evt{background:#2B6DA8;border-color:#245A89;color:#fff}
.board-resource.resource-card-uhs{background:#2F8A55;border-color:#276F46;color:#fff}
.board-resource.resource-card-other{background:#fff}
.board-resource.resource-card-vehicle .resource-card-top span:not(.resource-type),
.board-resource.resource-card-evt .resource-card-top span:not(.resource-type),
.board-resource.resource-card-uhs .resource-card-top span:not(.resource-type){color:rgba(255,255,255,.82)}
.board-resource.resource-card-vehicle .resource-type,
.board-resource.resource-card-evt .resource-type,
.board-resource.resource-card-uhs .resource-type{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.24)}
.board-resource.resource-card-vehicle:hover,
.board-resource.resource-card-evt:hover,
.board-resource.resource-card-uhs:hover{filter:brightness(.97)}
.resource-kpi.resource-kpi-vehicle{background:#C93A3A;border-color:#A82F2F;color:#fff}
.resource-kpi.resource-kpi-team{background:#2B6DA8;border-color:#245A89;color:#fff}
.resource-kpi.resource-kpi-uhs{background:#2F8A55;border-color:#276F46;color:#fff}
.resource-kpi.resource-kpi-other{background:#26353A;border-color:#1E2B2F;color:#fff}
.resource-kpi.resource-kpi-vehicle::before,
.resource-kpi.resource-kpi-team::before,
.resource-kpi.resource-kpi-uhs::before,
.resource-kpi.resource-kpi-other::before{display:none}
.resource-kpi .label,.resource-kpi .meta{color:rgba(255,255,255,.82)}

/* Sanisphere 0.7.10 · Live-Einsatztagebuch */
.log-live-indicator{align-self:center;min-width:118px;justify-content:flex-start}
.log-table-head{align-items:flex-end;flex-wrap:wrap}
.log-table-head>div:first-child{min-width:220px}
.log-live-note{font-size:10px;margin-top:4px}
.log-location-search{display:flex;flex-direction:column;gap:5px;min-width:260px}
.log-location-search label{font-size:10px;color:var(--muted)}
.log-location-search input{height:34px;padding:6px 10px}

.log-location-search-top{min-width:290px}
.log-location-autocomplete{position:relative}
.log-location-suggestions{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:80;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 28px rgba(31,45,50,.16);padding:5px;max-height:280px;overflow:auto}
.log-location-suggestions[hidden]{display:none}
.log-location-suggestions button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:8px 10px;border-radius:6px;color:var(--text);font-size:12px;cursor:pointer}
.log-location-suggestions button:hover,.log-location-suggestions button:focus{background:#EAF7F5;outline:none;color:#117C6D}
.operation-log-live-table{min-width:1260px}
.operation-log-live-table th:nth-child(1){width:150px}
.operation-log-live-table th:nth-child(2){width:145px}
.operation-log-live-table th:nth-child(3){width:160px}
.operation-log-live-table th:nth-child(4){width:150px}
.operation-log-live-table th:nth-child(5){width:180px}
.operation-log-live-table th:nth-child(6){width:220px}
.operation-log-live-table th:nth-child(7){width:190px}
.operation-log-live-table th:nth-child(8){width:160px}
.log-art-cell{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.btn-xs{min-height:26px;padding:3px 7px;font-size:10px;border-radius:6px}
.operation-log-live-table tr[hidden]{display:none}
@media(max-width:760px){.log-location-search{width:100%;min-width:0}.log-table-head{align-items:stretch}}

/* Sanisphere 0.7.9 · Meldesystem */
.message-create-modal { width:min(860px,100%); }
.message-create-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.message-patient-preview { border:1px solid var(--line); border-radius:10px; background:#F8FAFB; padding:14px; min-height:70px; }
.message-patient-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:12px; }
.message-patient-head > div { display:flex; flex-direction:column; gap:4px; min-width:0; }
.message-patient-head strong { font-size:13px; }
.message-patient-head span,.message-patient-head small { color:var(--muted); font-size:11px; }
.message-patient-values { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.message-patient-value { padding:9px 10px; border:1px solid #E4EAEC; border-radius:8px; background:#fff; display:flex; flex-direction:column; gap:4px; }
.message-patient-value span { color:var(--muted); font-size:10px; }
.message-patient-value strong { font-size:12px; }
.request-badge { background:#EAF3FC; color:#2B6DA8; }
.request-rtw { background:#FBE8E8; color:#A33939; }
.request-ktw { background:#EAF3FC; color:#2B6DA8; }
.messages-table td { vertical-align:top; }
.message-live-controls { display:flex; align-items:end; padding-bottom:2px; }

.urgent-message-alert { position:fixed; inset:0; z-index:1000; background:rgba(31,17,17,.68); display:none; align-items:center; justify-content:center; padding:24px; }
.urgent-message-alert.open { display:flex; }
.urgent-message-panel { width:min(660px,100%); background:#B42318; color:#fff; border-radius:16px; box-shadow:0 30px 90px rgba(0,0,0,.36); padding:34px; text-align:center; border:3px solid rgba(255,255,255,.65); }
.urgent-message-symbol { width:64px; height:64px; margin:0 auto 16px; border-radius:50%; border:3px solid #fff; display:grid; place-items:center; font-size:42px; font-weight:800; line-height:1; }
.urgent-message-panel h2 { color:#fff; margin:0 0 12px; font-size:30px; }
.urgent-message-meta { font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; opacity:.92; margin-bottom:18px; }
.urgent-message-text { font-size:18px; line-height:1.5; padding:18px; background:rgba(255,255,255,.10); border-radius:10px; text-align:left; white-space:pre-wrap; }
.urgent-message-actions { display:flex; justify-content:center; gap:10px; margin-top:22px; flex-wrap:wrap; }
.urgent-message-dismiss,.urgent-message-open { background:#fff; color:#991B1B; border-color:#fff; min-width:150px; }
.urgent-message-dismiss:hover,.urgent-message-open:hover { background:#FFF5F5; color:#7F1D1D; }
body.urgent-message-open { overflow:hidden; }

@media (max-width:760px) {
    .message-create-grid { grid-template-columns:1fr; }
    .message-patient-values { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .message-patient-head { flex-direction:column; }
    .urgent-message-panel { padding:24px 18px; }
    .urgent-message-panel h2 { font-size:24px; }
    .urgent-message-text { font-size:16px; }
}

/* Sanisphere 0.7.11 · Superadmin Einstellungen */
.checkbox-line { display:flex; align-items:center; gap:9px; font-weight:600; }
.checkbox-line input { width:auto; margin:0; }
.permission-check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:8px; max-height:420px; overflow:auto; padding-right:4px; }
.permission-check { display:flex; align-items:flex-start; gap:9px; border:1px solid var(--line); border-radius:8px; padding:10px; background:#fff; cursor:pointer; }
.permission-check:hover { border-color:#b6dcd6; background:#fbfefe; }
.permission-check input { width:auto; margin:2px 0 0; flex:0 0 auto; }
.permission-check span { display:flex; flex-direction:column; gap:3px; min-width:0; }
.permission-check strong { font-size:12px; }
.permission-check small { color:var(--muted); font-size:10px; overflow-wrap:anywhere; }
@media (max-width:760px) { .permission-check-grid { grid-template-columns:1fr; } }

/* Sanisphere 0.7.12 · Versionierung & Änderungslog */
.settings-card-version { border-color: rgba(27,186,165,.35); }
.version-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:18px; }
.version-kpi { background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); padding:18px; display:flex; flex-direction:column; gap:7px; }
.version-kpi > span { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em; font-weight:700; }
.version-kpi > strong { font-size:23px; line-height:1.15; }
.version-kpi > small { color:var(--muted); font-size:11px; }
.version-ok { color:#187A61; }
.version-warn { color:#A45B16; }
.version-grid { align-items:start; margin-bottom:18px; }
.version-rules { display:grid; gap:12px; }
.version-rules > div { display:grid; grid-template-columns:90px 1fr; gap:12px; padding-bottom:12px; border-bottom:1px solid #EDF1F2; }
.version-rules > div:last-child { border-bottom:0; padding-bottom:0; }
.version-rules span { color:var(--muted); line-height:1.45; }
.version-changelog-card { margin-bottom:22px; }
.version-changelog { padding:0 18px; }
.release-entry { padding:18px 0; border-bottom:1px solid #EDF1F2; }
.release-entry:last-child { border-bottom:0; }
.release-entry.current { margin:0 -18px; padding:18px; background:#F1FBF9; border-left:4px solid var(--accent); }
.release-head > div { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.release-head strong { font-size:15px; }
.release-entry ul { margin:12px 0 0; padding-left:20px; color:#45545B; line-height:1.55; }
.release-entry li { margin:5px 0; }
@media (max-width:1100px) { .version-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) { .version-kpis { grid-template-columns:1fr; } .version-rules > div { grid-template-columns:1fr; gap:4px; } }

/* Sanisphere 0.7.14 · Einsatzortsuche in Alarmierungs-Modals */
.modal-location-autocomplete{width:100%}
.modal-location-autocomplete>input{width:100%}
.modal-location-autocomplete .log-location-suggestions{z-index:140}

/* Sanisphere 0.7.15 · Cookie-Hinweis auf der Login-Seite */
.cookie-banner[hidden] { display:none !important; }
.cookie-banner { position:fixed; left:24px; right:24px; bottom:24px; z-index:1200; display:flex; justify-content:center; pointer-events:none; }
.cookie-banner-inner { width:min(980px,100%); background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 55px rgba(24,35,38,.24); padding:18px 20px; display:flex; align-items:center; justify-content:space-between; gap:24px; pointer-events:auto; }
.cookie-banner-copy { min-width:0; }
.cookie-banner-copy > strong { display:block; font-size:15px; margin-bottom:6px; }
.cookie-banner-copy > p { margin:0; color:var(--muted); font-size:12px; line-height:1.55; max-width:760px; }
.cookie-details-toggle { margin-top:8px; padding:0; border:0; background:transparent; color:#117C6D; font-size:11px; font-weight:700; cursor:pointer; }
.cookie-details-toggle:hover { text-decoration:underline; }
.cookie-details { margin-top:8px; max-width:760px; }
.cookie-details[hidden] { display:none; }
.cookie-details p { margin:0; color:var(--muted); font-size:11px; line-height:1.55; }
.cookie-banner-actions { flex:0 0 auto; }
.cookie-banner-actions .btn { min-width:120px; }
@media (max-width:760px) {
    .cookie-banner { left:12px; right:12px; bottom:12px; }
    .cookie-banner-inner { align-items:stretch; flex-direction:column; gap:14px; padding:16px; }
    .cookie-banner-actions .btn { width:100%; }
}
