:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#18212f;background:#f3f6f9}*{box-sizing:border-box}body{margin:0}.top{min-height:64px;background:#fff;border-bottom:1px solid #e3e8ef;display:flex;align-items:center;padding:0 24px;gap:22px;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:10px;margin-right:auto}.brand img{max-height:38px;max-width:140px}.top nav{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.top a{color:#334155;text-decoration:none;font-weight:600}.navtoggle{display:none}.container{max-width:1180px;margin:28px auto;padding:0 18px 60px}h1{font-size:1.9rem;margin:0 0 20px}h2{margin-top:0;font-size:1.2rem}.card{background:#fff;border:1px solid #e4e9f0;border-radius:16px;padding:22px;margin-bottom:20px;box-shadow:0 4px 16px rgba(20,32,50,.04)}.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.login{max-width:440px;margin:70px auto}.formgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.wide{grid-column:1/-1}label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;font-weight:600}label.check{flex-direction:row;align-items:center;padding-top:28px}input,select,textarea,button,.button{font:inherit;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;background:#fff;color:#18212f}.button{text-decoration:none;display:inline-block}button,.button{cursor:pointer;font-weight:700}button.primary,.button.primary{background:#1769e0;color:#fff;border-color:#1769e0}.secondary{background:#edf4ff;border-color:#bfd4f6}.danger{background:#fff0f0;border-color:#f0b8b8;color:#9d2525}.actions{display:flex;gap:10px;flex-wrap:wrap}.punch{margin:0}.punch button{min-width:155px;padding:14px}.status{font-size:1.15rem;font-weight:700}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:18px 0}.stats.cards{grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 20px}.stats div{background:#f7f9fc;border-radius:12px;padding:14px}.stats.cards>.card{background:#fff;margin:0}.stats span{display:block;color:#64748b;font-size:.8rem}.stats strong{font-size:1.3rem}.timeline div{display:flex;justify-content:space-between;border-bottom:1px solid #edf0f3;padding:10px 0}.alert{padding:12px 16px;border-radius:10px;margin-bottom:18px}.alert.success{background:#e9f8ef;color:#146c38}.alert.error{background:#fff0f0;color:#9d2525}.muted{color:#64748b}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #edf0f3;white-space:nowrap}th{font-size:.8rem;color:#64748b;text-transform:uppercase}.badge{padding:4px 8px;border-radius:999px;font-size:.78rem}.badge.pending{background:#fff4ce}.badge.approved{background:#dcf7e7}.badge.rejected{background:#ffe0e0}.approval{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid #edf0f3}.approval form{display:flex;gap:8px;align-items:center}.titlebar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.titlebar h1{margin:0}.filters{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.logo-preview{max-height:100px;max-width:260px}@media(max-width:850px){.grid{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr 1fr}.stats,.stats.cards{grid-template-columns:1fr 1fr}.navtoggle{display:block}.top nav{display:none;position:absolute;top:64px;left:0;right:0;background:#fff;padding:16px 24px;border-bottom:1px solid #e3e8ef;flex-direction:column;align-items:flex-start}.navopen .top nav{display:flex}.approval{flex-direction:column}.top{padding:0 16px}}@media(max-width:520px){.formgrid{grid-template-columns:1fr}.stats,.stats.cards{grid-template-columns:1fr 1fr}.punch,.punch button{width:100%}.container{margin-top:18px}.card{padding:16px}.brand strong{font-size:.95rem}}@media print{.top,.filters,.button,button,.actions{display:none!important}.container{max-width:none;margin:0;padding:0}.card{box-shadow:none;border:0;padding:0}}

/* Monats-/Abwesenheitskalender */
.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calhead{font-weight:700;text-align:center;padding:6px}.calday{min-height:92px;border:1px solid #dfe3e8;border-radius:10px;padding:8px;background:#fff;display:flex;flex-direction:column;gap:8px}.calday span{font-size:.82rem;line-height:1.2}.calday.empty{border:0;background:transparent}.calday.holiday,.calday.vacation,.calday.absence{background:#f5f7f9}.calday strong{font-size:.95rem}@media(max-width:700px){.calendar{gap:3px}.calday{min-height:68px;padding:5px;border-radius:7px}.calday span{font-size:.68rem;overflow-wrap:anywhere}.calhead{font-size:.78rem;padding:3px}}
@media print{header.top,.filters,.button,button,.navtoggle{display:none!important}.container{max-width:none;margin:0;padding:0}.card{box-shadow:none;border:0;padding:0}}
.badge.withdrawn,.badge.cancelled{background:#eef2f7;color:#475569}.badge.cancel_pending{background:#fff4ce;color:#7a5b00}.inline-form{display:inline}.approval-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.approval-form input{min-width:220px}code{background:#f1f5f9;padding:2px 6px;border-radius:6px}.stats.cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
