:root{--farbe-primaer: #4f46e5;--farbe-hintergrund: #f8fafc;--farbe-flaeche: #ffffff;--farbe-rand: #e2e8f0;--farbe-text: #1e293b;--farbe-text-schwach: #64748b;--farbe-wochenende-sa: #f4f6fa;--farbe-wochenende-so: #e9edf5;color-scheme:light}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--farbe-hintergrund);color:var(--farbe-text)}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:1rem}.lade-hinweis{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--farbe-text-schwach)}.pin-gate{display:flex;align-items:center;justify-content:center;height:100vh;padding:1rem}.pin-gate__karte{background:var(--farbe-flaeche);border:1px solid var(--farbe-rand);border-radius:12px;padding:2rem;width:100%;max-width:320px;display:flex;flex-direction:column;gap:.75rem;text-align:center}.pin-gate__karte input{padding:.6rem;border-radius:8px;border:1px solid var(--farbe-rand);text-align:center;letter-spacing:.2em}.pin-gate__karte button{padding:.6rem;border-radius:8px;border:none;background:var(--farbe-primaer);color:#fff;font-weight:600}.pin-gate__fehler{color:#dc2626;font-size:.9rem}.app{max-width:960px;margin:0 auto;padding:1rem}.app__kopf{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.app__titel{display:flex;align-items:baseline;gap:.4rem}.app__kopf h1{font-size:1.4rem;margin:0}.app__version{font-size:.7rem;color:var(--farbe-text-schwach)}.app__kopf nav{display:flex;gap:.5rem}.app__kopf nav button{padding:.4rem .8rem;border-radius:8px;border:1px solid var(--farbe-rand);background:var(--farbe-flaeche)}.app__kopf nav button.aktiv{background:var(--farbe-primaer);color:#fff;border-color:var(--farbe-primaer)}.app__neuer-termin{margin-top:1rem;width:100%;padding:.75rem;border-radius:10px;border:none;background:var(--farbe-primaer);color:#fff;font-weight:600;font-size:1rem}.kalender{background:var(--farbe-flaeche);border:1px solid var(--farbe-rand);border-radius:12px;padding:1rem}.kalender__kopf{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.kalender__kopf button{border:none;background:transparent;font-size:1.4rem;color:var(--farbe-text-schwach)}.kalender__kopf h2{margin:0;font-size:1.1rem}.kalender__wochentage{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:.8rem;color:var(--farbe-text-schwach);margin-bottom:.25rem}.kalender__wochentag--sa,.kalender__wochentag--so{border-radius:6px}.kalender__wochentag--sa{background:var(--farbe-wochenende-sa)}.kalender__wochentag--so{background:var(--farbe-wochenende-so)}.kalender__raster{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.kalender__zelle{min-width:0;min-height:84px;border:1px solid var(--farbe-rand);border-radius:8px;padding:4px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.kalender__zelle:hover{background:#f1f5f9}.kalender__zelle--ausserhalb{opacity:.4}.kalender__zelle--heute{border-color:var(--farbe-primaer);border-width:2px}.kalender__zelle--samstag{background:var(--farbe-wochenende-sa)}.kalender__zelle--sonntag{background:var(--farbe-wochenende-so)}.kalender__zelle--samstag:hover,.kalender__zelle--sonntag:hover{background:#f1f5f9}.kalender__zelle-tag{font-size:.8rem;font-weight:600}.kalender__zelle-termine{display:flex;flex-direction:column;gap:2px;min-width:0}.kalender__termin{width:100%;min-width:0;border:none;border-radius:4px;color:#fff;font-size:.7rem;padding:2px 4px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kalender__mehr{font-size:.65rem;color:var(--farbe-text-schwach)}.modal-hintergrund{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:10}.modal{background:var(--farbe-flaeche);border-radius:12px;padding:1.5rem;width:100%;max-width:420px;display:flex;flex-direction:column;gap:.75rem;max-height:90vh;overflow-y:auto}.modal h2{margin:0 0 .25rem}.modal label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--farbe-text-schwach)}.modal input,.modal select,.modal textarea{padding:.5rem;border-radius:8px;border:1px solid var(--farbe-rand);color:var(--farbe-text)}.modal__checkbox{flex-direction:row!important;align-items:center;gap:.5rem!important}.modal__checkbox input{width:auto}.modal__zeiten{display:flex;gap:.5rem}.modal__zeiten label{flex:1;min-width:0}.modal__zeiten input{width:100%;min-width:0}.modal__fehler{color:#dc2626;font-size:.85rem}.modal__aktionen{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem}.modal__aktionen-rechts{display:flex;gap:.5rem}.modal__aktionen button{padding:.5rem 1rem;border-radius:8px;border:1px solid var(--farbe-rand);background:var(--farbe-flaeche)}.modal__aktionen-rechts button[type=submit]{background:var(--farbe-primaer);color:#fff;border-color:var(--farbe-primaer)}.modal__loeschen{color:#dc2626;border-color:#dc2626!important}.personen-einstellungen{background:var(--farbe-flaeche);border:1px solid var(--farbe-rand);border-radius:12px;padding:1rem}.personen-liste{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.personen-liste li{display:flex;align-items:center;gap:.5rem}.personen-liste input[type=text]{flex:1;padding:.4rem;border-radius:6px;border:1px solid var(--farbe-rand)}.personen-liste input[type=color]{width:36px;height:36px;padding:0;border:none;border-radius:6px}.personen-liste__badge{font-size:.7rem;color:var(--farbe-text-schwach);background:#f1f5f9;padding:2px 6px;border-radius:6px}.personen-liste button{border:none;background:transparent;color:var(--farbe-text-schwach)}.personen-neu{display:flex;gap:.5rem}.personen-neu input[type=text]{flex:1;padding:.5rem;border-radius:8px;border:1px solid var(--farbe-rand)}.personen-neu input[type=color]{width:40px;height:40px;padding:0;border:none;border-radius:8px}.personen-neu button{padding:.5rem 1rem;border-radius:8px;border:none;background:var(--farbe-primaer);color:#fff;font-weight:600}@media (max-width: 480px){.kalender__zelle{min-height:64px}.modal__zeiten{flex-direction:column}}
