:root{--bg:#f3ede3;--surface:#fdfbf7;--text:#3a322b;--muted:#8c8177;--border:#e5dcce;--accent:#a8785a;--accent-dark:#8c6248;--danger:#b5484d;--ok:#4d7c5f;--radius:10px;--shadow-card:0 1px 3px #3a322b14}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}h1{margin:0 0 1rem;font-size:1.4rem}h2{margin:1.5rem 0 .5rem;font-size:1.1rem}a{color:var(--accent)}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius);cursor:pointer;padding:.45rem .9rem;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:var(--bg)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-dark)}button.danger{color:var(--danger)}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);padding:.45rem .6rem}textarea{resize:vertical;min-height:8rem}label{margin:.8rem 0 .25rem;font-size:.85rem;font-weight:600;display:block}table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius);width:100%;box-shadow:var(--shadow-card);overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .8rem}th{letter-spacing:normal;color:var(--muted);font-size:.85rem;font-weight:600}tr:last-child td{border-bottom:none}.layout{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-shrink:0;width:210px;padding:1.2rem .8rem}.sidebar .brand{margin-bottom:1.2rem;padding:0 .6rem;font-weight:700}.sidebar nav a{border-radius:var(--radius);color:var(--text);border-left:3px solid #0000;margin-bottom:2px;padding:.5rem .6rem .5rem .55rem;text-decoration:none;display:block}.sidebar nav a.active{background:var(--bg);color:var(--accent-dark);border-left:3px solid var(--accent);font-weight:600}.content{flex:1;max-width:1100px;padding:1.5rem 2rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);margin-bottom:1rem;padding:1.2rem}.row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.spacer{flex:1}.error{color:var(--danger);margin:.5rem 0}.muted{color:var(--muted)}.badge{background:var(--bg);border-radius:99px;padding:.1rem .55rem;font-size:.75rem;display:inline-block}.badge.ok{color:var(--ok);background:#e4efe8}.badge.warn{color:var(--danger);background:#f6e8e9}.login-page{place-items:center;min-height:100vh;display:grid}.login-card{width:340px}.check-list button.check{text-align:left;width:100%;margin-bottom:.5rem;padding:.9rem 1rem;font-size:1.05rem}.check-list button.check.anwesend{border-color:var(--ok);background:#e4efe8}.check-list button.check.gefehlt{border-color:var(--danger);background:#f6e8e9}@media (width<=700px){.layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);align-items:center;gap:.4rem;width:100%;padding:.6rem;display:flex;overflow-x:auto}.sidebar .brand{margin:0}.sidebar nav{gap:.2rem;display:flex}.content{padding:1rem}}
