:root{--accent:#3b82f6;--accent-dark:#2563eb;--sidebar-bg:#1e293b;--sidebar-fg:#cbd5e1;--sidebar-active:#334155;--bg:#f1f5f9;--card:#fff;--border:#e2e8f0;--text:#0f172a;--muted:#64748b;--danger:#ef4444;--radius:10px}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}.layout{min-height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);width:220px;color:var(--sidebar-fg);flex-direction:column;padding:1rem 0;display:flex}.sidebar .brand{color:#fff;padding:.5rem 1.25rem 1rem;font-size:1.2rem;font-weight:700}.sidebar nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar nav a{color:var(--sidebar-fg);border-left:3px solid #0000;padding:.6rem 1.25rem;font-size:.95rem;text-decoration:none}.sidebar nav a:hover{background:var(--sidebar-active);color:#fff}.sidebar nav a.active{background:var(--sidebar-active);color:#fff;border-left-color:var(--accent)}.sidebar .user{border-top:1px solid #334155;padding:.75rem 1.25rem;font-size:.9rem}.content{flex:1;min-width:0;padding:1.5rem 2rem}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.topbar h1{font-size:1.5rem}.topbar .tools{align-items:center;gap:.5rem;display:flex}.btn{border:1px solid var(--border);color:var(--text);border-radius:var(--radius);cursor:pointer;background:#fff;align-items:center;gap:.4rem;padding:.5rem .9rem;font-size:.9rem;text-decoration:none;display:inline-flex}.btn:hover{background:#f8fafc}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-dark)}.btn.icon{padding:.35rem .5rem}.btn.danger{color:var(--danger)}.btn.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger-solid:hover{background:#dc2626}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.25rem;overflow:hidden}.section-title{text-transform:uppercase;color:var(--muted);letter-spacing:.04em;margin:1.25rem 0 .5rem;font-size:.85rem}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.7rem 1rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem}tr:last-child td{border-bottom:none}tbody tr:hover{background:#f8fafc}tr.clickable{cursor:pointer}td.actions{text-align:right;white-space:nowrap}.dot{vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:.5rem;display:inline-block}.badge{color:var(--muted);background:#e2e8f0;border-radius:999px;padding:.1rem .5rem;font-size:.75rem}.badge.high{color:#b91c1c;background:#fee2e2}.badge.mid{color:#92400e;background:#fef3c7}.badge.low{color:#166534;background:#dcfce7}.muted{color:var(--muted)}.toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}input[type=text],input[type=search],input[type=date],input[type=time],input[type=password],input[type=email],select,textarea{border:1px solid var(--border);background:#fff;border-radius:8px;padding:.5rem .7rem;font-family:inherit;font-size:.9rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}dialog{border-radius:var(--radius);border:none;width:min(480px,92vw);margin:auto;padding:0;box-shadow:0 20px 50px #00000040}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a73}dialog .dlg-head{border-bottom:1px solid var(--border);padding:1rem 1.25rem;font-weight:600}dialog form{flex-direction:column;gap:.8rem;padding:1.25rem;display:flex}dialog label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}dialog label input,dialog label select,dialog label textarea{color:var(--text)}dialog .row{gap:.75rem;display:flex}dialog .row>label{flex:1}dialog .dlg-actions{justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}details summary{cursor:pointer;color:var(--accent-dark);font-size:.85rem}details textarea{width:100%;margin-top:.5rem;font-family:ui-monospace,monospace}.login-wrap{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:1rem;width:min(360px,92vw);padding:2rem;display:flex}.login-card h1{text-align:center;font-size:1.3rem}.login-card label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.col-menu{border:1px solid var(--border);border-radius:var(--radius);z-index:20;white-space:nowrap;background:#fff;flex-direction:column;gap:.4rem;min-width:180px;max-height:320px;padding:.6rem .8rem;font-size:.85rem;display:flex;position:absolute;top:calc(100% + 4px);right:0;overflow:auto;box-shadow:0 10px 30px #0000001f}.col-menu label{align-items:center;gap:.5rem;display:flex}.dt-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .75rem;display:flex}.th-filter-wrap{position:relative}.th-filter{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0 .25rem;font-size:.7rem}.th-filter:hover{color:var(--text)}.th-filter.active{color:var(--accent)}.col-filter{border:1px solid var(--border);border-radius:var(--radius);z-index:25;text-transform:none;letter-spacing:0;min-width:160px;max-height:280px;color:var(--text);background:#fff;flex-direction:column;gap:.35rem;padding:.5rem .7rem;font-weight:400;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow:auto;box-shadow:0 10px 30px #0000001f}.col-filter label{white-space:nowrap;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.col-filter-actions{border-bottom:1px solid var(--border);gap:.6rem;margin-bottom:.15rem;padding-bottom:.35rem;display:flex}.col-filter-actions button{cursor:pointer;color:var(--accent-dark);background:0 0;border:none;padding:0;font-size:.8rem}.combobox{width:100%;position:relative}.combobox>input{width:100%}.combo-list{border:1px solid var(--border);z-index:30;background:#fff;border-radius:8px;max-height:200px;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:auto;box-shadow:0 10px 30px #0000001f}.combo-opt{cursor:pointer;padding:.45rem .7rem;font-size:.9rem}.combo-opt:hover{background:#f1f5f9}.combo-empty{color:var(--muted);padding:.45rem .7rem;font-size:.85rem}.chips{flex-wrap:wrap;gap:.4rem;margin-top:.4rem;display:flex}.chip{background:#e2e8f0;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .5rem .15rem .6rem;font-size:.8rem;display:inline-flex}.chip button{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0;font-size:1rem;line-height:1}.chip button:hover{color:var(--danger)}.tabradio{position:absolute;left:-9999px}.tabs{border:1px solid var(--border);border-radius:var(--radius);background:#fff;margin-bottom:1.25rem;display:inline-flex;overflow:hidden}.tabs label{cursor:pointer;color:var(--muted);border-right:1px solid var(--border);padding:.45rem .95rem;font-size:.9rem}.tabs label:last-child{border-right:none}.view{display:none}#v-monat:checked~.view-monat,#v-woche:checked~.view-woche,#v-tag:checked~.view-tag,#v-liste:checked~.view-liste{display:block}#v-monat:checked~.tabs label[for=v-monat],#v-woche:checked~.tabs label[for=v-woche],#v-tag:checked~.tabs label[for=v-tag],#v-liste:checked~.tabs label[for=v-liste]{background:var(--accent);color:#fff}.cal-nav{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.cal-nav .label{margin:0 .25rem;font-weight:600}.ev{color:#fff;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:5px;margin-top:3px;padding:1px 6px;font-size:.72rem;display:block;overflow:hidden}.ev.allday{background-image:repeating-linear-gradient(45deg,#ffffff2e 0 4px,#0000 4px 8px)}.month{background:var(--card);border-radius:var(--radius);border-right:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(7,1fr);display:grid;overflow:hidden}.month .dow,.month .cell{border-top:1px solid var(--border);border-left:1px solid var(--border)}.month .dow{color:var(--muted);text-transform:uppercase;text-align:center;background:#f8fafc;padding:.45rem;font-size:.72rem}.month .cell{min-height:92px;padding:.35rem}.month .cell .num{color:var(--muted);font-size:.78rem}.month .cell.other{background:#fafafa}.month .cell.other .num{opacity:.4}.week{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid}.week .day{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);min-height:130px;padding:.5rem}.week .day h4{color:var(--muted);text-align:center;margin-bottom:.35rem;font-size:.78rem;font-weight:600}.agenda{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.agenda .slot{border-top:1px solid var(--border);grid-template-columns:80px 1fr;display:grid}.agenda .slot:first-child{border-top:none}.agenda .slot .t{color:var(--muted);padding:.5rem .75rem;font-size:.82rem}.agenda .slot .c{padding:.4rem .75rem}@media (width<=768px){.layout{flex-direction:column}.sidebar{flex-flow:wrap;align-items:center;width:100%;padding:.5rem}.sidebar .brand{padding:.25rem .75rem}.sidebar nav{flex-flow:wrap;flex:1}.sidebar nav a{border-left:none;border-radius:6px;padding:.4rem .7rem}.sidebar nav a.active{border-left:none}.sidebar .user{border-top:none}.content{padding:1rem}td.actions{text-align:left}.week{grid-template-columns:1fr}.month .cell{min-height:64px}}
