:root{--red:#d71920;--red2:#a90e14;--ink:#151515;--muted:#6f747b;--line:rgba(20,20,20,.10);--glass:rgba(255,255,255,.72);--bg:#f4f5f7;--ok:#17854b;--warn:#a76500;--shadow:0 20px 60px rgba(0,0,0,.10)}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 15% 5%,rgba(215,25,32,.16),transparent 30%),radial-gradient(circle at 85% 0%,rgba(0,0,0,.06),transparent 28%),linear-gradient(180deg,#fff,#f1f2f4)}
a{color:inherit}.shell{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:28px 0 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.brand{display:flex;align-items:center;gap:12px}.mark{width:46px;height:46px;border-radius:15px;background:linear-gradient(145deg,var(--red),var(--red2));box-shadow:0 12px 24px rgba(215,25,32,.24);display:grid;place-items:center;color:#fff;font-weight:900}.brand h1{font-size:18px;margin:0}.brand p{margin:2px 0 0;color:var(--muted);font-size:13px}.glass{background:var(--glass);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow);backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);border-radius:24px}.hero{padding:32px}.hero h2{font-size:clamp(28px,5vw,50px);line-height:1.02;margin:0 0 12px;letter-spacing:-.04em}.hero p{color:var(--muted);max-width:700px;font-size:16px;line-height:1.6}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:18px}.action-card{padding:24px;text-decoration:none;transition:.18s transform,.18s box-shadow;display:block}.action-card:hover{transform:translateY(-2px);box-shadow:0 24px 70px rgba(0,0,0,.13)}.action-card .icon{font-size:30px}.action-card h3{font-size:24px;margin:18px 0 6px}.action-card p{margin:0;color:var(--muted);line-height:1.5}.red{background:linear-gradient(145deg,rgba(215,25,32,.95),rgba(155,10,16,.95));color:#fff}.red p{color:rgba(255,255,255,.82)}
.form-card{max-width:760px;margin:0 auto;padding:26px}.form-card h2{margin-top:0;font-size:30px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}label{font-size:13px;font-weight:750;color:#3f4247}input,select,button{font:inherit}input,select{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.86);border-radius:14px;padding:14px 14px;outline:none;transition:.15s}input:focus,select:focus{border-color:rgba(215,25,32,.5);box-shadow:0 0 0 4px rgba(215,25,32,.09)}.hint{font-size:12px;color:var(--muted)}.sig-wrap{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.sig-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}canvas.signature{width:100%;height:180px;display:block;touch-action:none}.btn{border:0;border-radius:15px;padding:14px 18px;font-weight:800;cursor:pointer}.btn-primary{background:linear-gradient(135deg,var(--red),var(--red2));color:#fff;box-shadow:0 12px 25px rgba(215,25,32,.22)}.btn-soft{background:#eceef1;color:#25282d}.btn-dark{background:#17181a;color:#fff}.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.status{padding:13px 15px;border-radius:14px;margin:14px 0;display:none}.status.show{display:block}.status.ok{background:#e8f6ef;color:#11673b}.status.err{background:#fdebed;color:#98131b}.status.info{background:#edf1f6;color:#35404e}.search-list{display:grid;gap:10px;margin-top:14px}.person-result{padding:15px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.8);cursor:pointer}.person-result strong{display:block}.person-result small{color:var(--muted)}
.login{max-width:440px;margin:8vh auto 0;padding:28px}.dashboard{display:none}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.kpi{padding:18px}.kpi .num{font-size:34px;font-weight:900;letter-spacing:-.04em}.kpi .lbl{font-size:12px;color:var(--muted)}.dash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.lane{padding:18px;min-height:280px}.lane h3{display:flex;justify-content:space-between;align-items:center;margin:0 0 13px}.count{font-size:12px;background:#eceef1;padding:5px 9px;border-radius:99px}.person{padding:13px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.86);margin-bottom:9px}.person .name{font-weight:850}.meta{display:flex;gap:7px;flex-wrap:wrap;margin:7px 0}.tag{font-size:11px;padding:4px 7px;border-radius:99px;background:#eceef1}.tag.redtag{background:#ffe4e6;color:#a10f17}.person-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.person-controls select,.person-controls input{padding:9px;border-radius:10px;font-size:12px}.unassigned{grid-column:1/-1}.admin-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.qr-panel{margin-top:16px;padding:18px}.qr-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.qr-box{padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff;text-align:center}.qr-box img{width:220px;max-width:100%;height:auto}.receipt{padding:24px;margin-top:16px}.receipt .time{font-size:42px;font-weight:950;letter-spacing:-.05em}.disclaimer{padding:12px 14px;border-left:4px solid var(--red);background:#fff1f2;border-radius:10px;font-size:13px;line-height:1.45}.footer{text-align:center;color:var(--muted);font-size:12px;padding:26px 0}
@media(max-width:900px){.kpis{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.qr-grid{grid-template-columns:1fr}}@media(max-width:620px){.shell{width:min(100% - 18px,1180px);padding-top:16px}.grid{grid-template-columns:1fr}.field.full{grid-column:auto}.hero,.form-card{padding:20px}.topbar{align-items:flex-start}.kpis{grid-template-columns:1fr 1fr}.person-controls{grid-template-columns:1fr}}
.person-controls{grid-template-columns:1fr 1fr 1fr}
@media(max-width:620px){.person-controls{grid-template-columns:1fr}}

/* ===== VPF 2026 Mobile & touch optimization ===== */
html{-webkit-text-size-adjust:100%}body{overscroll-behavior-y:none}button,input,select{min-height:54px}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}input,select{font-size:16px}.btn{min-height:54px;padding:15px 18px}.btn-xl{min-height:62px;font-size:17px;border-radius:17px}.btn-block{width:100%;display:block}.optional{font-weight:650;color:var(--muted);font-size:12px}.mobile-header{margin-bottom:18px}.mobile-form{max-width:720px}.form-intro{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}.form-intro h2{margin:0 0 5px}.form-intro p{margin:0;color:var(--muted);line-height:1.45}.step-badge{flex:0 0 36px;width:36px;height:36px;border-radius:12px;background:var(--red);color:#fff;display:grid;place-items:center;font-weight:900}.submit-main{margin-top:20px}.sig-head .btn{min-height:44px;padding:9px 14px}.search-input{font-size:18px;font-weight:700}.person-result{position:relative;width:100%;text-align:left;min-height:82px;padding:16px 48px 16px 16px;border:1px solid var(--line);border-radius:17px;background:#fff;cursor:pointer;color:var(--ink);box-shadow:0 6px 18px rgba(0,0,0,.04)}.person-result strong{font-size:18px;line-height:1.25}.person-result small{display:block;margin-top:6px;font-size:13px;color:var(--muted)}.tap-hint{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:18px;color:var(--red);font-weight:900}.checkout-box{margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}.selection-head{display:flex;align-items:center;gap:13px;margin-bottom:16px}.selection-head h3{font-size:24px;margin:2px 0 0}.receipt-check{width:54px;height:54px;border-radius:18px;background:#e8f6ef;color:#11673b;display:grid;place-items:center;font-size:30px;font-weight:900;margin-bottom:14px}.empty-state{padding:18px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);text-align:center;background:rgba(255,255,255,.45)}

.admin-shell{width:min(1440px,calc(100% - 24px))}.login-field{margin:22px 0 14px}.admin-topbar{position:sticky;top:0;z-index:15;padding:12px 0;background:linear-gradient(180deg,rgba(244,245,247,.98),rgba(244,245,247,.90) 78%,transparent);backdrop-filter:blur(12px)}.person{padding:16px;border-radius:18px}.person-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.person .name{font-size:17px;line-height:1.25}.company{font-size:12px;color:var(--muted);margin-top:4px}.radio-pill{flex:0 0 auto;background:#ffe4e6;color:#a10f17;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:900}.material-status{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 13px}.tag.oktag{background:#e8f6ef;color:#11673b}.person-controls{display:grid;grid-template-columns:1.15fr 1.15fr .7fr;gap:10px}.field.compact{gap:5px}.field.compact label{font-size:11px}.person-controls select,.person-controls input{min-height:50px;padding:10px 11px;font-size:14px;border-radius:12px}.save-person{margin-top:12px;min-height:56px}.lane{padding:16px}.lane h3{font-size:17px}.unassigned{grid-column:1/-1}.unassigned>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.unassigned .person{margin-bottom:0}

.modal-backdrop,.busy-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:rgba(10,10,12,.48);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.modal-backdrop[hidden],.busy-overlay[hidden]{display:none}.confirm-card{width:min(560px,100%);padding:24px}.confirm-icon{width:52px;height:52px;border-radius:17px;background:var(--red);color:#fff;display:grid;place-items:center;font-size:27px;font-weight:900}.confirm-card h2{font-size:28px;margin:16px 0 4px}.confirm-name{font-size:19px;font-weight:900;margin:0 0 16px}.confirm-summary{display:grid;gap:8px}.confirm-summary>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;background:#fff;border:1px solid var(--line);border-radius:13px}.confirm-summary span{color:var(--muted);font-size:13px}.confirm-summary strong{text-align:right}.confirm-warning{padding:12px 14px;border-radius:13px;background:#fff4e5;color:#7a4a00;font-size:13px;line-height:1.45}.confirm-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:10px;margin-top:16px}.modal-open,.busy{overflow:hidden}.busy-overlay{z-index:1200}.busy-card{width:min(440px,100%);padding:24px;text-align:center}.busy-title{font-size:22px;font-weight:900}.busy-sub{font-size:14px;color:var(--muted);margin-top:5px}.progress{height:10px;border-radius:999px;background:#e7e9ec;overflow:hidden;margin-top:20px}.progress-bar{height:100%;width:45%;border-radius:999px;background:linear-gradient(90deg,var(--red),#ff5e64);animation:busybar 1.05s ease-in-out infinite}@keyframes busybar{0%{transform:translateX(-110%)}50%{transform:translateX(75%)}100%{transform:translateX(245%)}}body.busy>*:not(.busy-overlay){pointer-events:none;user-select:none}

@media(max-width:900px){.unassigned>div{grid-template-columns:1fr}.admin-topbar{align-items:stretch}.admin-tools{width:100%}.admin-tools .btn{flex:1}.person-controls{grid-template-columns:1fr 1fr}.person-controls .field:last-child{grid-column:1/-1}}
@media(max-width:620px){body{background:linear-gradient(180deg,#fff,#f1f2f4)}.shell{width:calc(100% - 12px);padding:8px 0 28px}.mobile-header{padding:7px 6px;margin-bottom:8px}.mobile-header .mark{width:42px;height:42px}.mobile-header .brand h1{font-size:17px}.mobile-header .brand p{font-size:12px}.form-card{padding:16px;border-radius:20px}.form-intro{gap:10px}.form-intro h2{font-size:25px}.form-intro p{font-size:14px}.grid{gap:12px}label{font-size:14px}input,select{min-height:58px;padding:15px 14px;border-radius:14px}.sig-wrap{border-radius:15px}.sig-head{min-height:50px}.sig-head span{font-size:13px;font-weight:700}canvas.signature{height:210px}.btn-xl{min-height:64px;font-size:17px}.status{font-size:14px;line-height:1.4}.footer{padding:18px 6px}.receipt{margin:10px 0;padding:18px}.receipt .time{font-size:48px}.login{margin:5vh 6px 0;padding:20px}.admin-shell{width:calc(100% - 10px)}.admin-topbar{position:relative;padding:8px 4px 10px;margin-bottom:8px}.admin-topbar .brand{width:100%}.admin-tools{display:grid;grid-template-columns:1fr 1fr;width:100%;margin-top:8px}.kpis{gap:7px;margin-bottom:9px}.kpi{padding:13px;border-radius:17px}.kpi .num{font-size:30px}.kpi .lbl{font-size:11px}.dash-grid{gap:9px}.lane{padding:12px;border-radius:18px;min-height:0}.lane h3{margin-bottom:9px}.person{padding:14px;margin-bottom:9px}.person .name{font-size:18px}.company{font-size:12px}.person-controls{grid-template-columns:1fr;gap:9px}.person-controls .field:last-child{grid-column:auto}.person-controls select,.person-controls input{min-height:58px;font-size:16px;padding:13px}.save-person{min-height:62px;font-size:16px}.confirm-card{padding:19px;border-radius:22px}.confirm-card h2{font-size:25px}.confirm-actions{grid-template-columns:1fr}.confirm-actions #confirmSave{order:-1}.busy-card{padding:21px;border-radius:21px}.busy-title{font-size:20px}.person-result{min-height:88px}.person-result strong{font-size:19px}}


/* ===== VPF 2026 Navigation + staffing status ===== */
.home-btn{
  margin:0 0 14px;
  text-decoration:none;
  text-align:center;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  letter-spacing:.01em;
}
.btn-home-admin{
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#17181a;
  color:#fff;
  min-height:54px;
}
.admin-neon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  padding:0 22px;
  border-radius:16px;
  background:#efff00;
  color:#050505;
  text-decoration:none;
  font-weight:950;
  letter-spacing:.06em;
  border:3px solid #111;
  box-shadow:0 0 0 4px rgba(239,255,0,.25),0 0 26px rgba(239,255,0,.95);
  animation:adminNeonPulse .9s ease-in-out infinite alternate;
}
@keyframes adminNeonPulse{
  from{transform:scale(1);filter:brightness(1);box-shadow:0 0 0 3px rgba(239,255,0,.25),0 0 16px rgba(239,255,0,.65)}
  to{transform:scale(1.045);filter:brightness(1.16);box-shadow:0 0 0 6px rgba(239,255,0,.36),0 0 38px rgba(239,255,0,1)}
}

.staffing-lane{
  transition:background .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.staffing-lane.staffing-bad{
  background:linear-gradient(145deg,rgba(255,225,228,.96),rgba(255,243,244,.94));
  border:2px solid rgba(199,19,30,.58);
  box-shadow:0 16px 45px rgba(180,12,22,.16);
}
.staffing-lane.staffing-ok{
  background:linear-gradient(145deg,rgba(218,247,229,.97),rgba(239,255,246,.96));
  border:2px solid rgba(18,135,74,.58);
  box-shadow:0 16px 45px rgba(18,135,74,.15);
}
.staffing-lane.staffing-bad h3{color:#8f1018}
.staffing-lane.staffing-ok h3{color:#0f6e3d}
.staffing-lane.staffing-bad .count{
  background:#b9131e;color:#fff;font-size:14px;font-weight:950;
}
.staffing-lane.staffing-ok .count{
  background:#16864b;color:#fff;font-size:14px;font-weight:950;
}
.target-note{
  display:block;
  margin-top:3px;
  font-size:11px;
  font-weight:800;
  opacity:.72;
}
.staffing-lane.staffing-bad::before,
.staffing-lane.staffing-ok::before{
  display:block;
  margin-bottom:10px;
  padding:8px 10px;
  border-radius:11px;
  font-size:12px;
  font-weight:900;
  text-align:center;
}
.staffing-lane.staffing-bad::before{
  content:"PERSONALSTÄRKE NOCH NICHT ERREICHT";
  background:#b9131e;color:#fff;
}
.staffing-lane.staffing-ok::before{
  content:"✓ PERSONALSTÄRKE VOLLSTÄNDIG";
  background:#16864b;color:#fff;
}

@media(max-width:620px){
  .home-btn{min-height:66px;font-size:19px;border-radius:18px;margin:4px 0 10px}
  .admin-neon-btn{width:100%;min-height:64px;font-size:17px;margin-top:6px}
  .topbar{flex-wrap:wrap}
  .admin-tools{grid-template-columns:1fr!important}
  .admin-tools .btn,.admin-tools .btn-home-admin{width:100%}
  .staffing-lane.staffing-bad::before,.staffing-lane.staffing-ok::before{font-size:11px;padding:9px 7px}
}

.checkout-search-btn{
  margin: 6px 0 18px;
  min-height: 66px;
  font-size: 20px;
  font-weight: 950;
  letter-spacing: .04em;
}
.checkout-search-btn:disabled{
  opacity:.62;
}
@media(max-width:620px){
  .checkout-search-btn{
    min-height:72px;
    font-size:21px;
    border-radius:18px;
  }
}
