:root {
  --blue-950:#102b49;
  --blue-900:#17385f;
  --blue-800:#1c4c7f;
  --blue-700:#2458d3;
  --blue-600:#2f62da;
  --blue-100:#eaf2fb;
  --blue-050:#f4f7fb;
  --line:#d8e2ed;
  --text:#172433;
  --muted:#647487;
  --green:#18784f;
  --green-bg:#e5f7ee;
  --red:#a13a3a;
  --red-bg:#fff3f3;
  --white:#fff;
  --shadow:0 14px 34px rgba(25,53,83,.09);
  --radius:22px;
}
*{box-sizing:border-box}
html{font-family:Arial,Helvetica,sans-serif;background:#eef3f9;color:var(--text);-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh}
button,input,select{font:inherit}
button,a{touch-action:manipulation}
a{text-decoration:none}
.hidden{display:none!important}
.brand-row{display:flex;align-items:center;gap:16px;font-size:clamp(1.05rem,2vw,1.45rem);color:var(--text);white-space:nowrap}
.brand-mark{display:inline-grid;place-items:center;min-width:90px;height:62px;padding:0 16px;border-radius:18px;background:linear-gradient(180deg,var(--blue-600),var(--blue-700));color:#fff;font-weight:800;font-size:1.5rem;letter-spacing:.02em;box-shadow:0 10px 24px rgba(36,88,211,.2)}
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.topbar-inner{max-width:1280px;margin:0 auto;padding:24px 28px 26px}
.dashboard-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px;padding:12px;border:1px solid var(--line);border-radius:24px;background:var(--blue-050)}
.logout-form{display:contents}
.nav-item{appearance:none;border:1px solid transparent;border-radius:18px;min-height:64px;padding:12px 14px;background:transparent;color:#344b63;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:800;cursor:pointer;transition:.18s ease;min-width:0;text-align:center;line-height:1.15}
.nav-item svg{width:24px;height:24px;fill:currentColor;flex:0 0 24px}
.nav-item:hover,.nav-item:focus-visible{background:#fff;border-color:#c7d6e6;outline:none;box-shadow:0 8px 20px rgba(32,64,100,.08)}
.nav-item.active{background:linear-gradient(180deg,var(--blue-600),var(--blue-700));color:#fff;box-shadow:0 12px 24px rgba(36,88,211,.23)}
.nav-item.logout{color:var(--red);border-color:#ebcaca;background:#fff}
.dashboard-main{max-width:1280px;margin:0 auto;padding:34px 28px 70px}
.tab{display:none}.tab.active{display:block}
.panel,.loading-card,.error-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(24px,4vw,40px)}
.hero-panel h1,.panel h1{margin:8px 0 12px;font-size:clamp(2rem,5vw,3.4rem);line-height:1.05;color:#14263b;letter-spacing:-.025em}
.eyebrow{display:block;color:#2460b7;font-size:.78rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}
.lead,.hero-panel>p{font-size:clamp(1rem,2.2vw,1.28rem);line-height:1.55;color:var(--muted);margin:0 0 22px}
.status-pill,.status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:8px 14px;font-weight:800}
.status-pill.complete,.status.abgeschlossen{background:var(--green-bg);color:var(--green)}
.status.abgebrochen{background:#fdecec;color:#9a3434}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:28px}
.metric-card{border:1px solid var(--line);border-radius:20px;padding:20px;background:linear-gradient(180deg,#fff,#f8fbfe)}
.metric-card span{display:block;color:var(--muted);margin-bottom:7px;line-height:1.3}
.metric-card strong{display:block;font-size:2rem;color:#15283e}
.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}
.count-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--blue-100);color:#1d4f8a;font-weight:800;padding:9px 14px;white-space:nowrap}
.filters{display:grid;grid-template-columns:minmax(260px,1fr) minmax(180px,.45fr) auto;gap:14px;align-items:end;padding:18px;background:var(--blue-050);border:1px solid var(--line);border-radius:18px;margin-bottom:22px}
.filters label,.search-field{display:grid;gap:7px;color:#43576d;font-weight:700}
.filters input,.filters select,.login-card input{width:100%;min-height:50px;border:1px solid #bdcbda;border-radius:14px;background:#fff;color:var(--text);padding:11px 14px;outline:none}
.filters input:focus,.filters select:focus,.login-card input:focus{border-color:#5a88d9;box-shadow:0 0 0 4px rgba(47,98,218,.12)}
.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;border-radius:15px;border:0;padding:12px 18px;font-weight:850;text-align:center;cursor:pointer;line-height:1.25}
.primary-button{background:linear-gradient(180deg,var(--blue-600),var(--blue-700));color:#fff;box-shadow:0 10px 20px rgba(36,88,211,.18)}
.primary-button:hover,.primary-button:focus-visible{filter:brightness(.98);outline:3px solid rgba(47,98,218,.18)}
.secondary-button{background:#fff;color:#234d7b;border:1px solid #bfcfe0}
.participant-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px}
.participant-table{width:100%;border-collapse:collapse;min-width:1050px}
.participant-table th{background:#1c4c7f;color:#fff;text-align:left;padding:13px 14px;font-size:.84rem;white-space:nowrap}
.participant-table td{padding:13px 14px;border-top:1px solid var(--line);vertical-align:middle}
.participant-table tbody tr:nth-child(even){background:#f8fbfe}
.participant-table tbody tr:hover{background:#eef5fc}
.table-action{border:0;border-radius:12px;background:#e7f0ff;color:#184f96;font-weight:800;padding:10px 13px;cursor:pointer;white-space:nowrap}
.participant-mobile-list{display:none}
.empty-state{padding:24px;text-align:center;color:var(--muted)}
.download-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.aggregate-downloads{margin:22px 0}
.consistency-note{border-left:7px solid #2f62da;background:#eaf2fb;border-radius:16px;padding:20px 24px;font-size:1.05rem;line-height:1.55;margin:0 0 28px}
.aggregate-measurements{display:grid;gap:16px}
.aggregate-card{border:1px solid var(--line);border-radius:20px;padding:20px;background:#fff}
.aggregate-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}
.aggregate-card h3{margin:0 0 5px;font-size:1.25rem;color:#183a60}
.aggregate-card p{margin:0;color:var(--muted)}
.aggregate-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.aggregate-value{background:var(--blue-050);border:1px solid #e1e9f2;border-radius:15px;padding:14px}
.aggregate-value span{display:block;color:var(--muted);font-size:.84rem;margin-bottom:5px}
.aggregate-value strong{font-size:1.24rem;color:#173c65}
.modal{position:fixed;inset:0;z-index:100;background:rgba(15,31,49,.72);padding:18px;display:grid;place-items:center;overflow:auto}
.modal-card{position:relative;width:min(1040px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border-radius:26px;padding:clamp(22px,4vw,38px);box-shadow:0 26px 70px rgba(0,0,0,.28)}
.modal-close{position:sticky;top:0;float:right;z-index:2;width:54px;height:54px;border:0;border-radius:50%;background:#fff;color:#111;font-size:2rem;line-height:1;box-shadow:0 10px 24px rgba(20,40,63,.16);cursor:pointer}
.participant-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-right:68px}
.participant-title-row h2{margin:7px 0 0;font-size:clamp(1.7rem,4vw,2.55rem);color:#16283e}
.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:28px 0}
.detail-grid article{border:1px solid var(--line);border-radius:18px;padding:18px;background:#fff}
.detail-grid b{display:block;color:#263d55;margin-bottom:8px}
.detail-grid p{margin:0;font-size:1.12rem}
.baseline-section{display:flex;align-items:center;justify-content:space-between;gap:20px;border-radius:20px;background:#f3f7fc;border:1px solid var(--line);padding:20px;margin-bottom:22px}
.baseline-section h3{margin:6px 0 4px}.baseline-section p{margin:0;color:var(--muted)}
.baseline-value{text-align:right}.baseline-value span{display:block;color:var(--muted);margin-bottom:4px}.baseline-value strong{font-size:2rem;color:#174d84}
.measurement-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}
.measurement-button{border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;text-align:left;cursor:pointer;color:var(--text)}
.measurement-button strong,.measurement-button span,.measurement-button small{display:block}
.measurement-button span{margin:4px 0;color:#384d63}.measurement-button small{color:var(--muted)}
.measurement-button.active{border-color:#2f62da;background:#eaf2fb;box-shadow:0 0 0 2px rgba(47,98,218,.12)}
.measurement-detail{border:1px solid var(--line);border-radius:20px;padding:20px;background:#fbfdff}
.measurement-detail-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.measurement-detail-head h3{margin:6px 0 4px}.measurement-detail-head p{margin:0;color:var(--muted)}
.measurement-state{padding:8px 12px;border-radius:999px;font-weight:800;white-space:nowrap}.measurement-state.complete{background:var(--green-bg);color:var(--green)}.measurement-state.missing{background:#f0f2f5;color:#667381}
.measurement-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.measurement-values article{border:1px solid var(--line);border-radius:16px;padding:15px;background:#fff}.measurement-values b{display:block;color:var(--muted);margin-bottom:8px}.measurement-values strong{font-size:1.55rem;color:#194f84}
.direction-details{border-top:1px solid var(--line);padding-top:16px}.direction-details summary{cursor:pointer;font-weight:800;color:#174d84}.mini-table{width:100%;border-collapse:collapse;margin-top:12px}.mini-table th,.mini-table td{padding:10px;border:1px solid var(--line);text-align:left}.mini-table th{background:#eaf2fb}
.participant-downloads{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}
.participant-downloads h3{margin:0 0 14px}
.loading-card,.error-card{text-align:center;color:var(--muted);margin-bottom:24px}.error-card{color:#8f2d2d;background:#fff5f5;border-color:#f1c9c9}
body.modal-open{overflow:hidden}
.login-page{display:grid;place-items:center;padding:22px;background:linear-gradient(160deg,#eef4fb,#fff)}
.login-shell{width:min(520px,100%)}
.login-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:clamp(26px,5vw,42px);box-shadow:var(--shadow)}
.login-card h1{font-size:2.15rem;margin:28px 0 10px}.login-card>p{color:var(--muted);line-height:1.5;margin-bottom:24px}.login-card form{display:grid;gap:10px}.login-card label{font-weight:800;color:#31475e;margin-top:6px}.password-row{display:grid;grid-template-columns:1fr auto;gap:9px}.show-password{border:1px solid #bdcbda;border-radius:14px;background:#f4f7fb;color:#234d7b;font-weight:800;padding:0 14px}.login-button{width:100%;margin-top:12px}.form-error{background:#fff0f0;border:1px solid #efc2c2;color:#8e2f2f;border-radius:14px;padding:12px 14px;margin:14px 0}
@media(max-width:920px){
  .topbar{position:static}.topbar-inner{padding:18px 22px}.brand-mark{min-width:78px;height:54px;font-size:1.3rem}.brand-row{gap:12px;white-space:normal}
  .dashboard-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px;border-radius:22px}
  .nav-item{min-height:82px;padding:10px 6px;display:flex;flex-direction:column;gap:5px;font-size:clamp(.78rem,3.8vw,1rem);line-height:1.08;overflow-wrap:anywhere;word-break:normal}
  .nav-item svg{width:21px;height:21px;flex-basis:21px}
  .dashboard-main{padding:22px 16px 50px}.panel{padding:24px 20px}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{grid-template-columns:1fr}.participant-table-wrap{display:none}.participant-mobile-list{display:grid;gap:14px}
  .participant-card{border:1px solid var(--line);border-radius:20px;background:#fff;padding:18px;box-shadow:0 10px 25px rgba(25,53,83,.07)}
  .participant-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.participant-card-id{font-weight:850;color:#1c4c7f}.participant-card-name{font-size:1.25rem;font-weight:800;margin:12px 0 15px}
  .participant-card-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.participant-card-metric{background:#f3f7fc;border:1px solid #e0e8f1;border-radius:15px;padding:12px}.participant-card-metric small{display:block;color:var(--muted);margin-bottom:5px}.participant-card-metric strong{display:block;color:#173c65}
  .participant-card-stages{display:grid;gap:8px;margin:14px 0;padding-top:14px;border-top:1px solid var(--line)}.participant-card-stage b{display:block;color:var(--muted);font-size:.86rem}.participant-card-stage span{display:block;color:#173c65;font-weight:750;margin-top:3px}
  .participant-card-cta{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(180deg,var(--blue-600),var(--blue-700));color:#fff;border:0;border-radius:16px;padding:15px 16px;font-weight:850;box-shadow:0 10px 20px rgba(36,88,211,.2);cursor:pointer}.participant-card-cta small{display:block;font-weight:600;opacity:.86;margin-top:3px}.participant-card-cta .arrow{font-size:1.5rem}
  .download-grid{grid-template-columns:1fr}.aggregate-values{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}.measurement-selector{grid-template-columns:1fr}.measurement-values{grid-template-columns:repeat(2,minmax(0,1fr))}.participant-title-row,.measurement-detail-head,.baseline-section{flex-direction:column}.baseline-value{text-align:left}.modal{padding:0;display:block}.modal-card{width:100%;max-height:none;min-height:100vh;border-radius:0;padding:22px 18px}.modal-close{position:fixed;right:18px;top:18px}.participant-title-row{padding-right:64px}
}
@media(max-width:520px){.metric-grid,.participant-card-metrics,.aggregate-values,.measurement-values{grid-template-columns:1fr}.topbar-inner{padding-left:14px;padding-right:14px}.dashboard-main{padding-left:10px;padding-right:10px}.panel{border-radius:18px}.nav-item{font-size:.83rem}.brand-row{font-size:1rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.credential-actions{margin-top:18px;padding:16px;border:1px solid #efd1d1;border-radius:16px;background:#fff8f8}.credential-actions p{margin:9px 0 0;color:#755050;line-height:1.45}.danger-secondary-button{min-height:46px;border:1px solid #d89e9e;border-radius:13px;background:#fff;color:#9a3434;font-weight:800;padding:10px 15px;cursor:pointer}.danger-secondary-button:disabled{opacity:.55;cursor:wait}

/* MESSUNGSANSICHT-KOMPAKT-20260727 */
.measurement-viewer{margin-top:24px;border:1px solid var(--line);border-radius:22px;background:#f7fafe;padding:20px}
.measurement-viewer-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.measurement-viewer-heading h3{margin:5px 0 0;color:#17385f;font-size:1.35rem}
.measurement-count{color:var(--muted);font-weight:700;text-align:right}
.measurement-selector.measurement-compact-selector{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(0,5fr);gap:12px;margin:0 0 16px}
.measurement-origin-button,.measurement-number-button{appearance:none;border:1px solid #c9d7e6;border-radius:14px;background:#fff;color:#17385f;cursor:pointer;font-weight:800;min-height:56px;padding:9px 10px}
.measurement-origin-button{display:grid;place-items:center;text-align:center}
.measurement-number-grid{display:grid;grid-template-columns:repeat(7,minmax(54px,1fr));gap:8px}
.measurement-number-button{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}
.measurement-number-button span{font-size:.7rem;color:var(--muted);font-weight:700}
.measurement-number-button strong{font-size:1.15rem;margin-top:3px}
.measurement-origin-button.active,.measurement-number-button.active{border-color:#2f62da;background:#eaf2fb;color:#174d84;box-shadow:0 0 0 2px rgba(47,98,218,.12)}
.measurement-origin-button:hover,.measurement-number-button:hover,.measurement-origin-button:focus-visible,.measurement-number-button:focus-visible{border-color:#2f62da;outline:3px solid rgba(47,98,218,.14)}
.measurement-current-card{border:1px solid #cbd9e7;border-radius:20px;padding:20px;background:#fff}
.measurement-current-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.measurement-current-title h3{margin:6px 0 4px;font-size:1.55rem;color:#172433}
.measurement-current-title p{margin:0;color:var(--muted);font-size:1.05rem}
.measurement-current-value{margin:18px 0 0;border-radius:18px;background:#edf4fc;border:1px solid #c9d9eb;padding:20px;text-align:center}
.measurement-current-value span{display:block;color:var(--muted);font-size:1rem;margin-bottom:6px}
.measurement-current-value strong{display:block;color:#174d84;font-size:clamp(2.35rem,8vw,3.2rem);line-height:1}
.measurement-secondary-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 0}
.measurement-secondary-values article{border:1px solid var(--line);border-radius:16px;padding:15px;background:#fbfdff}
.measurement-secondary-values b{display:block;color:var(--muted);margin-bottom:8px}
.measurement-secondary-values strong{display:block;color:#194f84;font-size:1.4rem}
.measurement-stepper{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;margin-top:16px}
.measurement-step-button{min-height:48px;border:1px solid #bfcfe0;border-radius:14px;background:#fff;color:#234d7b;font-weight:800;padding:10px 14px;cursor:pointer}
.measurement-step-button:last-child{justify-self:stretch}
.measurement-step-button:disabled{opacity:.38;cursor:not-allowed}
.measurement-step-button:not(:disabled):hover,.measurement-step-button:not(:disabled):focus-visible{border-color:#2f62da;outline:3px solid rgba(47,98,218,.14)}
.measurement-step-label{text-align:center;color:#17385f;white-space:nowrap}
@media(max-width:760px){
  .measurement-viewer{padding:16px 12px}
  .measurement-viewer-heading{display:block}.measurement-count{display:block;text-align:left;margin-top:7px}
  .measurement-selector.measurement-compact-selector{grid-template-columns:1fr}
  .measurement-number-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .measurement-current-head{flex-direction:column}
  .measurement-secondary-values{grid-template-columns:1fr}
  .measurement-stepper{grid-template-columns:1fr 1fr}
  .measurement-step-label{grid-column:1/-1;grid-row:1;text-align:left;white-space:normal}
  .measurement-step-button{grid-row:2}
}
@media(max-width:380px){.measurement-number-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}