:root{--fg: #f1f5f9;--muted: #9fb3c8;--accent: #38bdf8;--ok: #34d399;--geht: #fbbf24;--err: #f87171;--glass: rgba(255, 255, 255, .07);--glass-strong: rgba(255, 255, 255, .12);--glass-border: rgba(255, 255, 255, .14);--radius: 20px;--shadow: 0 8px 32px rgba(0, 0, 0, .37)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}html,body,#root{height:100%;margin:0}body{color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden;background:#0b1220;background-image:radial-gradient(60vmax 60vmax at 15% 10%,rgba(56,189,248,.18),transparent 60%),radial-gradient(55vmax 55vmax at 85% 20%,rgba(129,140,248,.16),transparent 60%),radial-gradient(70vmax 70vmax at 50% 110%,rgba(16,185,129,.12),transparent 60%),linear-gradient(160deg,#0b1220,#0f172a);background-attachment:fixed}.app{height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(1rem,3vh,2rem);padding:clamp(1rem,4vw,2.5rem);padding-bottom:4rem;text-align:center;overflow-y:auto}.tile,.roomCard,.newsCard,.card,.picker-item,.adminSection,.panelForm,.pinpad,.presence,.enroll,.weather,.manual-btn{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);box-shadow:var(--shadow)}.signage{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.signageTop{display:flex;align-items:center;gap:clamp(1rem,4vw,2rem);flex-wrap:wrap;justify-content:center}.signageLogo{width:clamp(84px,14vw,140px);height:auto;cursor:pointer;-webkit-user-drag:none;filter:drop-shadow(0 4px 12px rgba(0,0,0,.4))}.weather{display:flex;align-items:baseline;gap:.5rem;font-size:clamp(1.3rem,4vw,1.9rem);font-weight:700;padding:.5rem 1.1rem;border-radius:999px}.weather small{font-size:.85rem;color:var(--muted);font-weight:500}.clock{font-size:clamp(3.5rem,16vw,11rem);font-weight:800;line-height:.95;letter-spacing:2px;text-shadow:0 6px 30px rgba(56,189,248,.25)}.date{font-size:clamp(1.1rem,4vw,2rem);color:var(--muted)}.hint{margin-top:.6rem;font-size:clamp(.95rem,2.6vw,1.5rem);color:var(--accent)}.queued{margin-top:.4rem;color:var(--geht);font-size:1rem}.signageSlide{min-height:6rem;display:flex;align-items:center;justify-content:center;margin-top:.8rem;width:min(680px,92vw)}.roomCard{width:100%;border-radius:var(--radius);padding:clamp(1rem,3vw,1.4rem) 1.6rem;text-align:center;animation:pop .4s ease-out}.roomCard.free{border-color:#34d39980}.roomCard.busy{border-color:#fbbf2480}.roomName{font-size:clamp(1.1rem,3vw,1.4rem);font-weight:600}.roomState{font-size:clamp(1.5rem,5vw,2rem);font-weight:800;margin:.2rem 0}.roomCard.free .roomState{color:var(--ok)}.roomCard.busy .roomState{color:var(--geht)}.roomNext{font-size:.95rem;color:var(--muted)}.newsCard{width:100%;border-radius:var(--radius);padding:clamp(1rem,3vw,1.4rem) 1.6rem;animation:pop .4s ease-out}.newsTitle{font-size:clamp(1.2rem,4vw,1.5rem);font-weight:800;color:var(--accent)}.newsText{font-size:clamp(1rem,3vw,1.2rem);margin-top:.4rem}.ticker{position:fixed;bottom:0;left:0;right:0;overflow:hidden;white-space:nowrap;background:#0f172a8c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--glass-border);padding:.55rem 0}.tickerTrack{display:inline-block;padding-left:100%;font-size:clamp(1rem,3vw,1.25rem);color:var(--accent);font-weight:600;animation:tickerScroll 40s linear infinite}@keyframes tickerScroll{0%{transform:translate(0)}to{transform:translate(-100%)}}.actionRow{margin-top:.5rem}.manual-btn{color:var(--fg);border-radius:999px;padding:clamp(.9rem,2.5vw,1.2rem) clamp(1.6rem,5vw,2.4rem);font-size:clamp(1.1rem,3vw,1.4rem);font-weight:600}.manual-btn:active{background:var(--glass-strong)}.tiles{display:flex;gap:clamp(.6rem,2vw,1rem);flex-wrap:wrap;justify-content:center;margin-top:1rem}.tile{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:clamp(6.5rem,22vw,9rem);height:clamp(6.5rem,22vw,9rem);border-radius:var(--radius);color:var(--fg);font-size:clamp(.9rem,2.4vw,1.1rem);font-weight:600;justify-content:center;transition:transform .12s ease}.tile:active{transform:scale(.95);background:var(--glass-strong)}.tileIcon{font-size:clamp(2rem,7vw,2.6rem)}.tileDanger{border-color:#f8717180}.picker{width:min(760px,94vw);display:flex;flex-direction:column;gap:1rem;align-items:center}.picker-title{font-size:clamp(1.3rem,5vw,1.8rem);font-weight:700}.picker-search,.field,.enroll input,.adminWrap input{width:100%;max-width:520px;background:#00000040;border:1px solid var(--glass-border);border-radius:14px;padding:1rem 1.2rem;color:var(--fg);font-size:clamp(1.1rem,3vw,1.4rem)}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem;width:100%;max-height:58vh;overflow-y:auto;padding:4px}.picker-item{border-radius:14px;padding:1.2rem .8rem;color:var(--fg);font-size:clamp(1.05rem,3vw,1.3rem);font-weight:600;transition:transform .1s}.picker-item:active{transform:scale(.96);background:var(--accent);color:#08202e}.panelForm{width:min(560px,92vw);display:flex;flex-direction:column;gap:1rem;align-items:center;padding:clamp(1.2rem,4vw,2rem);border-radius:var(--radius)}.formActions{display:flex;gap:1rem;margin-top:.5rem;flex-wrap:wrap;justify-content:center}.primary{background:linear-gradient(135deg,#34d399,#10b981);color:#05230f;border:none;border-radius:999px;padding:1.1rem 2.4rem;font-size:clamp(1.1rem,3vw,1.3rem);font-weight:700;box-shadow:0 6px 20px #10b98159}.primary:disabled{opacity:.4;box-shadow:none}.primary.danger{background:linear-gradient(135deg,#f87171,#ef4444);color:#fff;box-shadow:0 6px 20px #ef444459}.pinpad{display:flex;flex-direction:column;align-items:center;gap:1.2rem;padding:clamp(1.2rem,4vw,2rem);border-radius:var(--radius)}.pin-title{font-size:clamp(1.2rem,4vw,1.6rem);color:var(--muted)}.pin-dots{display:flex;gap:1rem}.dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--muted)}.dot.filled{background:var(--accent);border-color:var(--accent)}.pin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.6rem,2vw,1rem)}.key{width:clamp(4.5rem,16vw,6rem);height:clamp(4.5rem,16vw,6rem);font-size:clamp(1.5rem,5vw,2rem);border-radius:50%;border:1px solid var(--glass-border);background:var(--glass);color:var(--fg);font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.key:active{background:var(--glass-strong)}.key-ok{background:#34d39940}.key-ok:disabled{opacity:.4}.key-fn{background:#ffffff0d}.cancel{background:none;border:none;color:var(--muted);font-size:1.1rem;padding:.8rem}.feedback{display:flex;flex-direction:column;align-items:center;gap:.6rem;animation:pop .25s ease-out;padding:1rem}@keyframes pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.fb-icon{width:clamp(6rem,24vw,8rem);height:clamp(6rem,24vw,8rem);border-radius:50%;display:grid;place-items:center;font-size:clamp(3rem,12vw,4rem);color:#fff;margin-bottom:1rem;box-shadow:0 10px 40px #0006}.success.kommt .fb-icon{background:linear-gradient(135deg,#34d399,#10b981)}.success.geht .fb-icon{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.error .fb-icon{background:linear-gradient(135deg,#f87171,#ef4444)}.fb-greeting{font-size:clamp(1.2rem,4vw,1.6rem);color:var(--muted)}.fb-name{font-size:clamp(1.8rem,7vw,3.4rem);font-weight:800}.fb-title{font-size:clamp(1.2rem,4vw,1.6rem)}.fb-sub{color:var(--muted);font-size:1.05rem}.busy{font-size:4rem;color:var(--muted)}.enroll,.adminWrap{width:min(640px,94vw);max-height:88vh;overflow-y:auto;display:flex;flex-direction:column;gap:1rem;text-align:left;padding:clamp(1.2rem,4vw,1.8rem);border-radius:var(--radius)}.enroll h2,.adminWrap h2{text-align:center;margin:0 0 .3rem}.enroll label,.adminWrap label{display:flex;flex-direction:column;gap:.3rem;font-size:.95rem;color:var(--muted)}.enroll .row{display:flex;gap:.6rem}.enroll .row input{flex:1}.enroll .scan,.onboardBtn{background:linear-gradient(135deg,#38bdf8,#0ea5e9);color:#06202c;border:none;border-radius:12px;padding:0 1.4rem;font-weight:700}.onboardBtn{padding:1rem;font-size:1.15rem}.enroll-status,.adminInfo{text-align:center;font-size:1.05rem}.adminInfo{color:var(--muted);font-size:.85rem}.enroll-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:.5rem}.enroll-actions .save,.primary.save{background:linear-gradient(135deg,#34d399,#10b981);color:#05230f;border:none;border-radius:999px;padding:1rem 2rem;font-size:1.15rem;font-weight:700;flex:1}.adminSection{border-radius:16px;padding:1rem;display:flex;flex-direction:column;gap:.6rem}.adminSectionTitle{font-weight:700;color:var(--accent)}.chk{flex-direction:row!important;align-items:center;gap:.6rem!important;color:var(--fg)!important;font-size:1.1rem!important}.chk input{width:1.4rem;height:1.4rem}.presence{display:flex;flex-direction:column;align-items:center;gap:.4rem;width:min(680px,94vw);padding:clamp(1.2rem,4vw,1.8rem);border-radius:var(--radius)}.presence.notfall .picker-title{color:var(--err)}.presence-count{font-size:clamp(3.5rem,14vw,5rem);font-weight:900;line-height:1}.presence-list{width:100%;max-height:55vh;overflow-y:auto;margin:1rem 0}.presence-item{display:flex;justify-content:space-between;padding:.7rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);font-size:clamp(1.05rem,3vw,1.3rem)}.muted{color:var(--muted)}.card{flex:1 1 140px;border-radius:16px;padding:1rem 1.2rem}.cards{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.cardValue{font-size:1.8rem;font-weight:800}.cardLabel{font-size:.9rem;color:var(--muted)}@media (max-width: 640px){.app{justify-content:flex-start;padding-top:2rem}.signageSlide{min-height:4rem}}
