@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--red:#e2001a;--red-dark:#b8001a;--red-light:#fdf0f0;--red-mid:#fce4e4;--gray-50:#f8f9fa;--gray-100:#f1f3f5;--gray-200:#e9ecef;--gray-300:#dee2e6;--gray-500:#868e96;--gray-700:#495057;--gray-900:#212529;--white:#fff;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow:0 4px 12px #0000001a, 0 1px 4px #0000000f;--radius-sm:6px;--radius:10px;--radius-lg:14px}body{background:var(--gray-100);color:var(--gray-900);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5}a{color:var(--red);text-decoration:none}a:hover{text-decoration:underline}h1{color:var(--gray-900);font-size:1.5rem;font-weight:700}h2{color:var(--gray-700);margin-bottom:10px;font-size:1rem;font-weight:600}.layout{min-height:100vh;display:flex}.sidebar{background:var(--white);border-right:1px solid var(--gray-200);flex-direction:column;flex-shrink:0;width:240px;display:flex}.sidebar-logo{border-bottom:1px solid var(--gray-200);padding:24px 20px 20px}.sidebar-logo .logo-badge{align-items:center;gap:10px;margin-bottom:6px;display:inline-flex}.sidebar-logo .logo-icon{background:var(--red);color:#fff;letter-spacing:-.5px;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:800;display:flex}.sidebar-logo .logo-text{color:var(--gray-900);font-size:.95rem;font-weight:700;line-height:1.2}.sidebar-logo .logo-sub{color:var(--gray-500);font-size:.72rem;font-weight:400}.sidebar nav{flex:1;padding:10px}.sidebar nav a{border-radius:var(--radius-sm);color:var(--gray-700);align-items:center;gap:8px;margin-bottom:2px;padding:9px 12px;font-size:.875rem;font-weight:500;transition:background .12s,color .12s;display:flex}.sidebar nav a:hover{background:var(--gray-100);color:var(--gray-900);text-decoration:none}.sidebar nav a.active{background:var(--red-light);color:var(--red)}.sidebar nav a.active .nav-icon{color:var(--red)}.sidebar nav .nav-divider{background:var(--gray-200);height:1px;margin:8px 0}.nav-icon{opacity:.7;font-size:1rem}.sidebar-footer{border-top:1px solid var(--gray-200);color:var(--gray-500);padding:16px 20px;font-size:.75rem}.sidebar-user{border-top:1px solid var(--gray-200);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.sidebar-user-info{align-items:center;gap:10px;display:flex}.sidebar-user-avatar{background:var(--red-light);width:34px;height:34px;color:var(--red);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:flex}.sidebar-user-name{color:var(--gray-900);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.sidebar-user-role{color:var(--gray-500);font-size:.7rem}.main{flex:1;padding:32px 36px;overflow-y:auto}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.page-header h1{font-size:1.4rem}.page-subtitle{color:var(--gray-500);margin-top:2px;font-size:.85rem}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);margin-bottom:20px;padding:22px 24px}.card-title{color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--gray-200);margin-bottom:16px;padding-bottom:12px;font-size:.85rem;font-weight:600}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:.85rem;font-weight:600;line-height:1;transition:all .12s;display:inline-flex}.btn:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn:active{transform:none}.btn-primary{background:var(--red);color:#fff}.btn-primary:hover{background:var(--red-dark)}.btn-secondary{background:var(--white);color:var(--gray-700);border:1px solid var(--gray-300)}.btn-secondary:hover{background:var(--gray-50)}.btn-danger{background:var(--red-light);color:var(--red);border:1px solid #fcc}.btn-danger:hover{background:#fce4e4}.btn-success{color:#1a7a4a;background:#e6f9f0;border:1px solid #b3e6cc}.btn-sm{border-radius:5px;padding:5px 10px;font-size:.78rem}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.form-group{margin-bottom:16px}.form-group label{color:var(--gray-700);margin-bottom:5px;font-size:.8rem;font-weight:600;display:block}input[type=text],input[type=date],input[type=number],input[type=password],input[type=email],textarea,select{border:1px solid var(--gray-300);border-radius:var(--radius-sm);background:var(--white);width:100%;color:var(--gray-900);padding:8px 12px;font-family:inherit;font-size:.875rem;transition:border-color .12s,box-shadow .12s}input:focus,textarea:focus,select:focus{border-color:var(--red);outline:none;box-shadow:0 0 0 3px #e2001a1a}textarea{resize:vertical;min-height:90px}.card table{border-collapse:collapse;width:100%;margin:-4px 0}.card table th{color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:1px solid var(--gray-200);padding:0 14px 10px;font-size:.75rem;font-weight:600}.card table td{border-bottom:1px solid var(--gray-100);vertical-align:middle;padding:12px 14px}.card table tr:last-child td{border-bottom:none}.card table tr:hover td{background:var(--gray-50)}.attendance-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;display:grid}.attendance-item{border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--gray-50);align-items:center;gap:10px;padding:10px 12px;transition:border-color .12s;display:flex}.attendance-item:has(select[value=anwesend]){background:#f0faf5;border-color:#b3e6cc}.attendance-item select{flex-shrink:0;width:auto;padding:4px 6px;font-size:.8rem}.attendance-name{font-size:.875rem;font-weight:500}.attendance-rolle{color:var(--gray-500);font-size:.75rem}.top-item{border:1px solid var(--gray-200);border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-sm);margin-bottom:12px}.top-header{background:var(--gray-50);border-bottom:1px solid var(--gray-200);border-radius:var(--radius) var(--radius) 0 0;align-items:center;gap:10px;padding:12px 16px;display:flex}.top-number{background:var(--red);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.75rem;font-weight:700;display:flex}.top-body{padding:16px}.vote-block{border-radius:var(--radius-sm);background:#fdf8f0;border:1px solid #f0deb8;margin-top:12px;padding:12px 14px}.vote-block strong{color:var(--gray-700);font-size:.8rem}.vote-counts{gap:20px;margin-top:10px;display:flex}.vote-counts>div label{color:var(--gray-500);margin-bottom:4px;font-size:.75rem;display:block}.vote-counts input{width:75px}.vote-ergebnis{border-radius:4px;margin-top:10px;padding:5px 10px;font-size:.85rem;font-weight:600;display:inline-block}.ergebnis-angenommen{color:#1a7a4a;background:#e6f9f0}.ergebnis-abgelehnt{background:var(--red-light);color:var(--red)}.ergebnis-unentschieden{color:#7a6010;background:#fef9e6}.badge{letter-spacing:.02em;border-radius:20px;align-items:center;padding:3px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.badge-anwesend{color:#1a7a4a;background:#e6f9f0}.badge-entschuldigt{color:#7a6010;background:#fef9e6}.badge-unentschuldigt{background:var(--red-light);color:var(--red)}.steps{gap:8px;margin-bottom:28px;display:flex}.step{border-radius:var(--radius-sm);background:var(--white);border:1px solid var(--gray-200);color:var(--gray-500);text-align:center;cursor:default;flex:1;padding:10px 14px;font-size:.8rem;font-weight:500;transition:all .15s}.step.done{background:var(--gray-100);color:var(--gray-700);border-color:var(--gray-300);cursor:pointer}.step.active{background:var(--red);color:#fff;border-color:var(--red);font-weight:600;box-shadow:0 2px 8px #e2001a40}.meeting-row{border-bottom:1px solid var(--gray-100);align-items:center;gap:16px;padding:14px 0;display:flex}.meeting-row:last-child{border-bottom:none}.meeting-date{min-width:90px;font-size:.9rem;font-weight:700}.meeting-meta{flex:1}.meeting-place{color:var(--gray-700);font-size:.875rem}.meeting-leitung{color:var(--gray-500);margin-top:1px;font-size:.75rem}.search-bar{gap:8px;margin-bottom:20px;display:flex}.search-bar input{max-width:360px}.empty-state{text-align:center;color:var(--gray-500);padding:60px 20px}.empty-state .empty-icon{margin-bottom:12px;font-size:2.5rem}.empty-state p{font-size:.9rem}.empty-state a{color:var(--red);font-weight:500}.text-muted{color:var(--gray-500);font-size:.85rem}.mt-2{margin-top:8px}.mt-3{margin-top:14px}.flex-row{align-items:center;gap:8px;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.w-auto{width:auto}.divider{background:var(--gray-200);height:1px;margin:20px 0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}.login-tile{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);cursor:pointer;flex-direction:column;align-items:center;gap:10px;padding:18px 10px;font-family:inherit;transition:all .14s;display:flex}.login-tile:hover{border-color:var(--red);transform:translateY(-2px);box-shadow:0 6px 18px #e2001a24}.login-tile-avatar{background:var(--red);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.15rem;font-weight:700;display:flex}.login-tile-name{color:var(--gray-900);text-align:center;word-break:break-word;font-size:.85rem;font-weight:600;line-height:1.25}@media (width<=768px){.layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--gray-200);flex-flow:wrap;align-items:center;width:100%}.sidebar-logo{border-bottom:none;flex:1;padding:14px 16px}.sidebar nav{border-top:1px solid var(--gray-200);flex-wrap:wrap;order:3;gap:4px;width:100%;padding:0 10px 10px;display:flex}.sidebar nav a{margin-bottom:0;padding:7px 10px;font-size:.8rem}.sidebar nav .nav-divider{display:none}.sidebar-user{border-top:none;flex-direction:row;align-items:center;width:auto;padding:10px 16px}.sidebar-user .btn{width:auto!important}.main{padding:20px 16px}.page-header{flex-direction:column;align-items:stretch;gap:12px}}
