:root{--bg:#f3f6fb;--card:#fff;--text:#172033;--muted:#64748b;--line:#dbe3ef;--primary:#0f4c81;--primary2:#1677b8;--danger:#b91c1c;--ok:#15803d;--shadow:0 12px 35px rgba(15,38,66,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);line-height:1.45}.topbar{position:sticky;top:0;z-index:30;background:#0c2742;color:#fff;padding:0 3vw;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 18px rgba(0,0,0,.2)}.brand{display:flex;align-items:center;gap:.7rem;color:#fff;text-decoration:none;font-weight:800}.logo,.auth-logo{display:grid;place-items:center;background:linear-gradient(135deg,#1c80c7,#0d4e81);border-radius:12px;color:white;font-weight:900}.logo{width:40px;height:40px}.topbar nav{display:flex;gap:.2rem}.topbar nav a{color:#dceaf7;text-decoration:none;padding:1.1rem .75rem;border-bottom:3px solid transparent}.topbar nav a:hover{background:rgba(255,255,255,.08);border-color:#59b6ef}.menu-btn{display:none;background:none;border:0;color:#fff;font-size:1.5rem}.container{max-width:1500px;margin:0 auto;padding:2rem 3vw 6rem}.page-head{display:flex;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.page-head h1{margin:0;font-size:clamp(1.7rem,3vw,2.5rem)}.page-head p,.muted{color:var(--muted);margin:.35rem 0}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.25rem;box-shadow:var(--shadow);margin-bottom:1.2rem}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.kpi strong{font-size:2rem;display:block}.kpi span{color:var(--muted)}.grid{display:grid;gap:1.2rem}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.quick{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.quick a{padding:1rem;border-radius:12px;text-decoration:none;background:#edf5fb;color:var(--primary);font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid var(--line);background:#fff;color:var(--text);padding:.72rem 1rem;border-radius:10px;text-decoration:none;font-weight:700;cursor:pointer}.btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.08)}.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;border:0}.btn.danger{background:#fff1f2;color:var(--danger);border-color:#fecdd3}.btn.small{padding:.45rem .7rem;font-size:.85rem}.btn.large{padding:.9rem 1.4rem}.btn.full{width:100%}label{display:flex;flex-direction:column;gap:.35rem;font-weight:700;color:#334155}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:.72rem .8rem;font:inherit;color:var(--text)}input:focus,select:focus{outline:3px solid rgba(22,119,184,.15);border-color:#1677b8}.form-grid,.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:end}.check{flex-direction:row;align-items:center}.check input{width:auto}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:650px}th,td{text-align:left;padding:.8rem;border-bottom:1px solid var(--line)}th{font-size:.78rem;text-transform:uppercase;color:var(--muted);letter-spacing:.04em}.actions{display:flex;gap:.4rem;flex-wrap:wrap}.actions form{display:inline}.badge{display:inline-block;padding:.25rem .55rem;border-radius:999px;background:#e8eef6;font-size:.8rem;font-weight:800}.badge.ok{background:#dcfce7;color:#166534}.muted-bg{background:#e2e8f0;color:#475569}.alert{border-radius:12px;padding:.9rem 1rem;margin-bottom:1rem;background:#e0f2fe;color:#075985}.alert.success{background:#dcfce7;color:#166534}.alert.danger{background:#fee2e2;color:#991b1b}.alert.warning{background:#fef3c7;color:#92400e}.assignment-grid{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(180px,2fr) minmax(180px,2fr) auto;gap:.7rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--line)}.assignment-grid.header{font-size:.8rem;text-transform:uppercase;color:var(--muted);font-weight:800}.employee-name{font-weight:800}.duty-select{border-left:6px solid #94a3b8}.service-head{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.sticky-save{position:fixed;bottom:1rem;right:2rem;left:auto;background:#0c2742;color:white;border-radius:16px;padding:.7rem .8rem .7rem 1rem;display:flex;gap:1rem;align-items:center;box-shadow:0 15px 40px rgba(0,0,0,.25);z-index:20}.identity{display:flex;align-items:center;gap:1rem;margin:1rem 0}.identity h2{margin:0}.chart-card{min-height:390px}.chart-card.wide{grid-column:1/-1}.chart-card canvas{max-height:310px}.person-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1rem}.auth-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#1d78b6,#091d31 65%);padding:1rem}.auth-card{width:min(430px,100%);background:#fff;border-radius:24px;padding:2rem;box-shadow:0 30px 80px rgba(0,0,0,.35)}.auth-logo{width:64px;height:64px;font-size:1.4rem}.auth-card h1{margin-bottom:.4rem}.auth-card label{margin:1rem 0}footer{text-align:center;color:var(--muted);padding:2rem}code{background:#eef2f7;padding:.15rem .35rem;border-radius:5px}@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}.grid.two{grid-template-columns:1fr}.form-grid,.filter-grid,.service-head{grid-template-columns:repeat(2,1fr)}.person-picker{grid-template-columns:repeat(2,1fr)}.topbar nav{display:none;position:absolute;top:64px;left:0;right:0;background:#0c2742;flex-direction:column;padding:1rem}.nav-open .topbar nav{display:flex}.menu-btn{display:block}.chart-card.wide{grid-column:auto}}@media(max-width:650px){.container{padding:1rem .75rem 7rem}.page-head{align-items:flex-start;flex-direction:column}.cards,.form-grid,.filter-grid,.service-head,.person-picker,.quick{grid-template-columns:1fr}.assignment-grid.header{display:none}.assignment-grid{grid-template-columns:1fr;padding:1rem 0}.assignment-grid>div:before{display:block;font-size:.7rem;color:var(--muted);text-transform:uppercase;margin-bottom:.2rem}.assignment-grid>div:nth-child(2):before{content:'Tag'}.assignment-grid>div:nth-child(3):before{content:'Nacht'}.sticky-save{left:.75rem;right:.75rem;bottom:.65rem;justify-content:space-between}.sticky-save span{font-size:.8rem}.topbar{padding:.7rem .8rem}.brand span:last-child{display:none}}
@media(prefers-color-scheme:dark){:root{--bg:#0b1420;--card:#111f2e;--text:#e6edf5;--muted:#9db0c4;--line:#26384a;--shadow:0 12px 35px rgba(0,0,0,.24)}input,select,textarea,.btn{background:#162738;color:var(--text);border-color:#33495f}.quick a{background:#162f43;color:#7bc6f5}.badge{background:#26384a}.auth-card{background:#111f2e}}

/* Release 1.1.0: user theme, live clock and configurable logo */
html[data-theme="dark"]{--bg:#0b1420;--card:#111f2e;--text:#e6edf5;--muted:#9db0c4;--line:#26384a;--shadow:0 12px 35px rgba(0,0,0,.24)}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .btn{background:#162738;color:var(--text);border-color:#33495f}
html[data-theme="dark"] .quick a{background:#162f43;color:#7bc6f5}
html[data-theme="dark"] .badge{background:#26384a}
html[data-theme="dark"] .auth-card{background:#111f2e}
html[data-theme="dark"] code{background:#1b2d40}
html[data-theme="dark"] .theme-toggle{background:#173047;color:#fff;border-color:#3f5871}
.theme-toggle{display:inline-flex;align-items:center;gap:.4rem;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;padding:.55rem .7rem;border-radius:10px;cursor:pointer;font:inherit;font-weight:700;margin:auto .25rem}
.theme-toggle:hover{background:rgba(255,255,255,.15)}
.brand-logo-wrap{height:46px;max-width:190px;display:flex;align-items:center;padding:.25rem 0}.brand-logo{display:block;max-width:190px;max-height:44px;width:auto;height:auto;object-fit:contain}.auth-system-logo{height:90px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.auth-system-logo img{max-width:100%;max-height:90px;width:auto;height:auto;object-fit:contain}.dashboard-head-right{display:flex;align-items:center;gap:1rem}.live-clock{min-width:220px;text-align:right;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.65rem .85rem;box-shadow:var(--shadow)}.live-clock strong,.live-clock span{display:block}.live-clock strong{font-size:1.25rem;color:var(--primary2)}.live-clock span{font-size:.85rem;color:var(--muted)}.logo-preview{height:150px;border:1px dashed var(--line);border-radius:14px;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:1rem;margin:1rem 0}.logo-preview img{max-width:100%;max-height:120px;width:auto;height:auto;object-fit:contain}.logo-form{grid-template-columns:minmax(260px,2fr) 1fr}.print-header{display:none}
@media(max-width:1000px){.theme-toggle{justify-content:flex-start}.dashboard-head-right{width:100%;justify-content:space-between}.brand-logo-wrap{max-width:150px}.brand-logo{max-width:150px}}
@media(max-width:650px){.dashboard-head-right{align-items:stretch;flex-direction:column}.live-clock{text-align:left;min-width:0}.logo-form{grid-template-columns:1fr}.theme-text{display:inline}.brand-logo-wrap{max-width:120px}.brand-logo{max-width:120px}}
@media print{.topbar,footer,.btn,.filter-grid,.sticky-save{display:none!important}.print-header{display:flex;align-items:center;gap:1rem;border-bottom:1px solid #bbb;padding:0 0 1rem;margin-bottom:1rem}.print-header img{max-width:260px;max-height:70px;width:auto;height:auto;object-fit:contain}.container{max-width:none;padding:0}.card{box-shadow:none;break-inside:avoid}}

html[data-theme="light"]{--bg:#f3f6fb;--card:#fff;--text:#172033;--muted:#64748b;--line:#dbe3ef;--primary:#0f4c81;--primary2:#1677b8;--danger:#b91c1c;--ok:#15803d;--shadow:0 12px 35px rgba(15,38,66,.08)}
html[data-theme="light"] input,html[data-theme="light"] select,html[data-theme="light"] textarea,html[data-theme="light"] .btn{background:#fff;color:var(--text);border-color:#cbd5e1}
