*{box-sizing:border-box}body{margin:0;background:#f3f6fa;color:#18283d;font:16px system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #dce4ef;border-radius:10px;padding:13px 20px;background:white;color:#18283d}button.primary{background:#1769e8;color:white;border:0}button:disabled{opacity:.4;cursor:default}input,select{width:100%;padding:12px;border:1px solid #cbd5e1;border-radius:8px;margin:7px 0 16px}label{display:block;color:#52657c;font-size:14px}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}aside{background:#203349;color:white;padding:28px 18px}aside h2{font-size:21px;margin-bottom:36px}nav button{display:block;background:transparent;color:#dfe9f5;border:0;width:100%;text-align:left;margin:5px 0}nav button.active{background:#365474}main{padding:32px;max-width:1400px;width:100%;margin:auto}header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:26px}h1{font-size:30px;margin:0 0 6px}h2{font-size:19px}.muted{color:#718197}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}.card{background:white;border:1px solid #e0e7ef;border-radius:14px;padding:24px;margin-bottom:18px}.stat strong{display:block;font-size:32px;margin-top:8px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:15px;border-bottom:1px solid #edf1f5;white-space:nowrap}th{font-size:13px;color:#718197}.badge{background:#e5f4ef;color:#188259;border-radius:20px;padding:5px 12px;font-size:13px}.actions{display:flex;gap:10px;flex-wrap:wrap}.login{max-width:440px;margin:10vh auto}.mobile{max-width:560px}.clock{text-align:center;font-size:45px;font-weight:700;margin:25px 0}.stamp{width:100%;font-size:22px;padding:22px;margin-bottom:13px}.error{color:#b52338;min-height:24px}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.balance{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.balance strong{display:block;font-size:25px;margin-top:5px}.gps{background:#edf8f3;padding:18px;border-radius:12px;margin:18px 0}.print-only{display:none}@media(max-width:800px){.shell{display:block}aside{padding:14px}aside h2{margin:0 0 10px}nav{display:flex;overflow:auto}nav button{white-space:nowrap;width:auto}main{padding:18px}.grid{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}h1{font-size:25px}header{align-items:flex-start}}@media print{aside,button,.no-print{display:none!important}.shell{display:block}main{padding:0}.card{border:0}.print-only{display:block}}

.location-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #edf1f5}.location-row p{margin:6px 0}.danger{color:#b52338;border-color:#edbac2;background:#fff8f9}
header{margin-bottom:14px;gap:10px}.header-info{flex:1;min-width:0}.header-info strong{font-size:18px}.header-info .muted{font-size:13px;margin-top:2px}#menu-toggle{display:none;font-size:22px;padding:8px 13px}#logout{font-size:13px;padding:10px}.notice:empty{display:none}.notice{padding:12px 16px;color:#17613f;background:#e5f4ef;border-radius:10px;margin-bottom:14px}.stamp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stamp-grid .stamp{margin:0;padding:22px 8px}.stamp-card{padding:18px}.stamp-card>p{margin:0 0 15px}.gps{font-size:13px;margin:15px 0 0;padding:12px}.calendar-head{display:flex;align-items:center;justify-content:space-between}.calendar-head h2{margin:0}.calendar-head button{padding:6px 16px;font-size:24px}.calendar-month{font-weight:600}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.cal-weekday{text-align:center;font-size:12px;color:#718197;padding-bottom:7px}.cal-day{min-height:58px;padding:7px;border:1px solid #e5ebf3;border-radius:7px;overflow:hidden}.cal-day span{display:block;font-size:10px;margin-top:5px}.cal-day.empty{border:0}.cal-day.vacation{background:#e2edff;color:#1454a8;border-color:#a8c6fa}.cal-day.requested{background:#fff3d6;color:#835400;border-color:#edcf85}.cal-day.today{outline:2px solid #1769e8;outline-offset:-2px}.cal-legend{font-size:12px;margin-bottom:0}.calendar-card{margin-top:18px}@media(max-width:800px){#menu-toggle{display:block}aside{display:none}.menu-open aside{display:block;position:fixed;left:0;top:72px;bottom:0;width:255px;z-index:20;box-shadow:5px 0 30px #20334955}.menu-open nav{display:block;overflow:visible}.menu-open nav button{width:100%;white-space:normal}.menu-open aside h2{margin-bottom:20px}main{padding:12px}header{position:sticky;top:0;background:#f3f6fa;z-index:21;padding:8px 0}.card{padding:17px}.stamp-grid .stamp{font-size:19px}.cal-day{padding:5px 3px;min-height:54px}.cal-day span{font-size:8px}}@media print{#menu-toggle,.calendar-head button{display:none!important}}

.mobile-menu{display:none}
@media(max-width:800px){
.menu-open aside{display:none}
.mobile-menu{background:white;border:1px solid #e0e7ef;border-radius:12px;margin:0 0 16px;padding:8px;box-shadow:0 4px 12px #2033490a}
.menu-open .mobile-menu{display:grid;grid-template-columns:1fr 1fr;gap:5px;overflow:visible}
.mobile-menu button{color:#34465c;background:white;text-align:left;border:0;border-radius:8px;width:100%;margin:0;padding:13px 11px;font-size:14px;white-space:normal}
.mobile-menu button.active{background:#eef2f6;color:#18283d;font-weight:650}
#menu-toggle{background:white;color:#34465c;border-color:#dce4ef}
#menu-toggle[aria-expanded=true]{background:#eef2f6}
header{position:relative;top:auto;z-index:auto}
}
@media print{.mobile-menu{display:none!important}}
.text-button{border:0;background:transparent;color:#41617f;padding:10px 0;font-size:13px}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0 20px}.summary-grid>div{background:#f2f6fa;padding:12px;border-radius:9px;font-size:12px;color:#718197}.summary-grid strong{display:block;font-size:18px;margin-top:7px;color:#24374c}.positive,.summary-grid .positive{color:#137747}.negative,.summary-grid .negative{color:#b4233c}.neutral{color:#63748b}.cal-day{cursor:pointer;text-align:left;background:white;font-size:14px;padding:8px;min-height:80px}.cal-day.ferien{background:#e2edff;color:#1454a8;border-color:#a8c6fa}.cal-day.krank{background:#f1e9fb;border-color:#d8c3f4}.cal-day.unfall{background:#fff0e1;border-color:#edc8a0}.cal-day.frei{background:#edf0f3;border-color:#cbd4df}.cal-day .cal-delta{font-weight:700;font-size:12px;margin-top:7px}.day-detail{margin-top:20px;padding-top:14px;border-top:1px solid #dce4ef}.day-detail p{font-size:14px;line-height:1.5}.calendar-card select{margin-top:8px}.calendar-card h2{font-size:18px}aside small{display:block;margin-top:25px;color:#b8c7d8}.gps{line-height:1.6}.login .notice:empty{display:none}@media(max-width:800px){.summary-grid{grid-template-columns:1fr 1fr}.cal-day{padding:5px 3px;font-size:12px;min-height:68px}.cal-day .cal-delta{font-size:9px}.calendar-head h2{font-size:16px}.calendar-head button{padding:5px 11px}.summary-grid strong{font-size:17px}}
.summary-grid{grid-template-columns:repeat(auto-fit,minmax(125px,1fr))}@media(max-width:800px){.summary-grid{grid-template-columns:1fr 1fr}}
