*,::after,::before{box-sizing:border-box}.lucide{display:inline-block;vertical-align:-.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.form-control{width:100%;padding:12px;border:1px solid var(--border);border-radius:8px;font-size:.95rem;font-family:inherit;margin-bottom:15px;background:var(--surface);color:var(--text);transition:border-color .2s,box-shadow .2s,background .2s}.form-control:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);box-shadow:0 0 0 3px rgb(0 163 217 / .12);background:var(--surface)}input[type=date]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=text]:focus,input[type=time]:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.form-control::-moz-placeholder{color:var(--text-muted);opacity:.7}.form-control::placeholder{color:var(--text-muted);opacity:.7}.input-label{display:block;font-weight:700;font-size:.85rem;color:var(--text-light);margin-bottom:6px}.form-floating>label.required::after,.input-label.required::after{content:' *';color:#ef4444;font-weight:700}.form-control.is-invalid,.form-control:user-invalid{border-color:#ef4444;box-shadow:0 0 0 3px rgb(239 68 68 / .1)}.form-control.is-valid{border-color:#22c55e;box-shadow:0 0 0 3px rgb(34 197 94 / .1)}.form-hint{display:block;font-size:.78rem;color:var(--text-muted);margin:-10px 0 12px 2px;line-height:1.4}.form-floating .form-hint,.form-floating+.form-hint{margin:6px 0 12px 2px}.form-error{display:block;font-size:.78rem;color:#ef4444;font-weight:600;margin:-10px 0 12px 2px;line-height:1.4}.form-floating .form-error,.form-floating+.form-error{margin:6px 0 12px 2px}.form-floating{position:relative;margin-bottom:15px}.form-floating>.form-control{padding:22px 12px 8px;margin-bottom:0;height:56px}.form-floating>textarea.form-control{height:auto;min-height:100px}.form-floating>select.form-control{padding-top:22px;padding-bottom:8px}.form-floating>label{position:absolute;left:13px;top:50%;transform:translateY(-50%);transform-origin:left top;font-size:.95rem;color:var(--text-muted);pointer-events:none;transition:.2s;font-weight:500;line-height:1}.form-floating>textarea.form-control~label{top:18px;transform:none}.form-floating>.form-control:not(:-moz-placeholder)~label{top:8px;transform:none;font-size:.72rem;font-weight:700;color:var(--accent);letter-spacing:.3px}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>select.form-control~label{top:8px;transform:none;font-size:.72rem;font-weight:700;color:var(--accent);letter-spacing:.3px}.form-floating>.form-control.is-invalid~label{color:#ef4444}.input-icon-wrap{position:relative;display:flex;align-items:center}.input-icon-wrap .form-control{padding-left:38px}.input-icon-wrap .input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;display:flex}.input-icon-wrap .form-control:focus+.input-icon,.input-icon-wrap .form-control:focus~.input-icon{color:var(--accent)}.btn{padding:10px 15px;border-radius:8px;font-weight:700;border:1px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s,border-color .15s;font-size:.9rem;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0) scale(.98)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);box-shadow:0 4px 12px rgb(15 52 96 / .2)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{box-shadow:0 4px 12px rgb(0 163 217 / .25)}.btn-dark{background:var(--text);color:#fff}.btn-outline{background:var(--surface);border-color:var(--border);color:var(--text-light)}.btn-outline:hover{background:var(--bg);border-color:var(--text-muted);color:var(--primary)}.btn-success{background:#059669;color:#fff;border:1px solid #047857}.btn-success:hover{background:#047857;box-shadow:0 4px 12px rgb(5 150 105 / .2)}.btn-danger{background:#fee2e2;color:#dc2626;border:1px solid #fecaca}.btn-danger:hover{background:#fecaca}.btn-danger-solid{background:#dc2626;color:#fff;border:1px solid #b91c1c}.btn-danger-solid:hover{background:#b91c1c;box-shadow:0 4px 12px rgb(220 38 38 / .2)}.btn-warning{background:#f59e0b;color:#fff;border:1px solid #d97706}.btn-warning:hover{background:#d97706;box-shadow:0 4px 12px rgb(245 158 11 / .2)}.btn-sm{padding:6px 12px;font-size:.8rem;border-radius:6px;font-weight:700;cursor:pointer}.alert-box{margin:20px 25px 0;padding:15px;border-radius:10px;font-weight:700;font-size:.95rem;display:flex;align-items:center;gap:10px;animation:.3s ease-out alertSlideIn}@keyframes alertSlideIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.alert-success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.alert-error{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}.alert-warning{background:#fef3c7;color:#b45309;border:1px solid #fde68a}.alert-info{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd}.toast-msg{position:fixed;top:20px;right:20px;z-index:9999;padding:14px 22px;border-radius:10px;font-weight:700;font-size:.9rem;background:var(--success-bg,#f0fdf4);color:var(--success,#059669);border:1px solid var(--success-border,#bbf7d0);box-shadow:0 8px 25px rgb(0 0 0 / .12);max-width:min(420px,calc(100vw - 40px));display:flex;align-items:center;gap:10px;line-height:1.4;animation:.35s ease-out toastSlideIn,.4s ease-in 3.5s forwards toastFadeOut}@keyframes toastSlideIn{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes toastFadeOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-15px)}}.badge{padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:700}.badge-offen,.status-offen{background:#fef3c7;color:#d97706;border:1px solid #fde68a}.badge-abgerechnet,.status-abgerechnet{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.status-signiert{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe}.badge-in-bearbeitung{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd}.badge-abgeschlossen{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.badge-hoch{background:#fff1f2;color:#e11d48;border:1px solid #fecdd3}.badge-loc{background:#e0f2fe;color:#0369a1;padding:5px 10px;border-radius:6px;font-size:.75rem;font-weight:700;border:1px solid #bae6fd;white-space:nowrap}.badge-admin{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;padding:3px 8px;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase;margin-left:8px}.status-beantragt{background:#fef3c7;color:#d97706;border:1px solid #fde68a;padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:700}.status-genehmigt{background:#dcfce7;color:#166534;border:1px solid #bbf7d0;padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:700}.status-abgelehnt{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:700}.status-gemeldet{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd;padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:700}.badge-status-archived{background:#dcfce7;color:#16a34a;padding:5px 10px;border-radius:6px;font-size:.75rem;font-weight:700;border:1px solid #bbf7d0;display:inline-flex;align-items:center;gap:4px}.badge-status-draft{background:#fef3c7;color:#d97706;padding:5px 10px;border-radius:6px;font-size:.75rem;font-weight:700;border:1px solid #fde68a;display:inline-flex;align-items:center;gap:4px}.badge-status{font-size:.75rem;padding:4px 8px;border-radius:6px;font-weight:700}.money-badge{background:#e0e7ff;color:#3730a3;font-weight:700;padding:4px 8px;border-radius:6px;font-size:.85rem;display:inline-block;margin-top:4px;border:1px solid #c7d2fe}table[data-sortable] tbody tr{transition:background .15s}table[data-sortable] tbody tr:hover{background:var(--bg-hover)}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0;margin:0}.doc-table{width:100%;border-collapse:collapse;min-width:800px}.doc-table th{background:var(--primary);color:#fff;padding:15px 20px;font-size:.85rem;text-align:left;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;z-index:5}.doc-table tr{border-bottom:1px solid var(--border-light);transition:background .15s}.doc-table tr:hover{background:var(--bg-hover)}.doc-table td{padding:15px 20px;vertical-align:middle;color:var(--text);font-size:.9rem}.time-table{width:100%;border-collapse:collapse;min-width:600px}.time-table th{background:var(--primary);color:#fff;padding:15px 20px;font-size:.85rem;text-align:left;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;z-index:5}.time-table tr{border-bottom:1px solid var(--border-light);transition:background .15s}.time-table tr:hover{background:var(--bg-hover)}.time-table td{padding:15px 20px;vertical-align:middle;color:var(--text);font-size:.95rem}th[style*="cursor: pointer"]:hover,th[style*="cursor:pointer"]:hover{opacity:.85}.sort-arrow{transition:opacity .15s}.table-filter-input{width:100%;padding:4px 8px;border:1px solid var(--border);border-radius:5px;font-size:.78rem;font-family:inherit;background:var(--surface);color:var(--text)}.table-filter-input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 2px rgb(0 163 217 / .1)}.filter-row th{border-bottom:2px solid var(--border)!important}.row-warning{background-color:#fff5f5!important}.warning-badge{color:#dc2626;font-size:.75rem;font-weight:700;display:inline-block;margin-top:4px;background:#fee2e2;padding:2px 6px;border-radius:4px;border:1px solid #fca5a5}.total-row{background:#f0f9ff!important;border-top:3px solid #bae6fd!important;font-weight:700}.total-row td{color:#0369a1;font-size:1.05rem}.modal-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgb(15 23 42 / .6);z-index:1000;align-items:center;justify-content:center;backdrop-filter:blur(6px)}.modal-box{background:var(--surface);width:95%;max-width:720px;max-height:90vh;overflow-y:auto;border-radius:16px;padding:32px;box-shadow:0 25px 60px -12px rgb(0 0 0 / .25);border:1px solid var(--border)}.search-bar-container{padding:20px 25px;background:var(--surface);border-bottom:1px solid var(--border-light);display:flex;gap:15px;flex-wrap:wrap;align-items:center}.search-input{flex:1;min-width:0;padding:12px 15px;border:2px solid var(--border);border-radius:30px;font-size:1rem;outline:0;transition:.2s;box-sizing:border-box;background:var(--surface);color:var(--text)}.search-input:focus{border-color:var(--accent)}@keyframes skeletonShimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg) 25%,var(--border-light,#e2e8f0) 50%,var(--bg) 75%);background-size:200% 100%;animation:1.5s ease-in-out infinite skeletonShimmer;border-radius:6px;min-height:16px;color:transparent!important}.skeleton-text{height:14px;margin-bottom:8px;width:80%}.skeleton-text-short{height:14px;margin-bottom:8px;width:40%}.skeleton-heading{height:22px;margin-bottom:12px;width:50%}.skeleton-card{height:120px;border-radius:12px}.skeleton-row{height:48px;margin-bottom:4px}.skeleton-avatar{width:40px;height:40px;border-radius:50%}.filter-bar{background:var(--bg);padding:20px 25px;border-bottom:1px solid var(--border-light);display:flex;gap:15px;flex-wrap:wrap;align-items:flex-end}.filter-bar .form-control,.filter-panel .form-control,.filter-row .form-control,.search-bar-container .form-control{margin-bottom:0}.grid-row{display:flex;gap:15px;flex-wrap:wrap}.grid-row>div{flex:1;min-width:130px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:20px}@media(max-width:600px){.form-grid{grid-template-columns:1fr}}.page-card{padding:0!important;overflow:hidden;background:var(--surface);border-radius:12px;box-shadow:0 4px 6px -1px rgb(0 0 0 / .05);animation:.25s ease-out cardFadeIn}.page-card-header{padding:25px;border-bottom:1px solid var(--border-light)}.page-card-header h2{margin:0;font-size:1.5rem;color:var(--primary)}.page-card-intro{color:var(--text-light);font-size:.95rem;margin-top:8px;margin-bottom:0;line-height:1.5}.split-grid{display:flex;flex-direction:column}.split-form{padding:25px;flex:1;border-bottom:1px solid var(--border-light)}.split-list{padding:25px;flex:1.5;background:var(--bg)}@media (min-width:992px){.split-grid{flex-direction:row}.split-form{border-bottom:none;border-right:1px solid #f1f5f9}}.action-cell{display:flex;gap:8px;justify-content:flex-end;align-items:center}.btn-action{padding:8px 12px;font-size:.8rem;text-decoration:none;border-radius:8px;font-weight:700;display:inline-flex;align-items:center;gap:5px;transition:.2s}.btn-action-edit{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.btn-action-edit:hover{background:var(--border);color:var(--primary);border-color:var(--text-muted)}.btn-action-pdf{background:var(--primary);color:#fff;border:1px solid var(--primary)}.btn-action-pdf:hover{background:var(--primary-dark)}.btn-edit{background:#f1f5f9;border:1px solid #cbd5e1;color:#475569;padding:6px 10px;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:700;transition:.2s}.btn-edit:hover{background:var(--border);color:var(--primary);border-color:var(--text-muted)}.section-title{font-size:1.1rem;color:var(--primary);margin:25px 0 15px;padding-bottom:5px;border-bottom:2px solid var(--border)}@media print{body{background:#fff}.no-print{display:none!important}.card{border:none!important;box-shadow:none!important;width:100%!important;max-width:100%!important;padding:0!important}}.toast-error{background:var(--danger-bg,#fef2f2)!important;color:var(--danger,#dc2626)!important;border-color:var(--danger-border,#fecaca)!important}.toast-warning{background:var(--warning-bg,#fffbeb)!important;color:var(--warning,#d97706)!important;border-color:var(--warning-border,#fde68a)!important}.skeleton *{visibility:hidden}@keyframes cardFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-card,[data-click] .card,a.card{transition:transform .2s,box-shadow .2s,border-color .2s}.modal-overlay[style*=flex] .modal-box,.modal-overlay[style*=flex] .modal-content{animation:.25s ease-out modalEnter}@keyframes modalEnter{from{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}#notifList::-webkit-scrollbar,.modal-box::-webkit-scrollbar,.table-container::-webkit-scrollbar{width:6px;height:6px}#notifList::-webkit-scrollbar-track,.modal-box::-webkit-scrollbar-track,.table-container::-webkit-scrollbar-track{background:0 0}#notifList::-webkit-scrollbar-thumb,.modal-box::-webkit-scrollbar-thumb,.table-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}#notifList::-webkit-scrollbar-thumb:hover,.modal-box::-webkit-scrollbar-thumb:hover,.table-container::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.badge-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;vertical-align:middle;margin-right:4px}.badge-dot-pulse{animation:2s ease-in-out infinite dotPulse}@keyframes dotPulse{0%,100%{opacity:1}50%{opacity:.4}}.lucide-spin{animation:1s linear infinite lucideSpin}@keyframes lucideSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}[data-theme=dark] .alert-success{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}[data-theme=dark] .alert-error{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}[data-theme=dark] .alert-warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}[data-theme=dark] .alert-info{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}[data-theme=dark] .badge-offen,[data-theme=dark] .badge-status-draft,[data-theme=dark] .status-beantragt,[data-theme=dark] .status-offen{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}[data-theme=dark] .badge-abgerechnet,[data-theme=dark] .badge-abgeschlossen,[data-theme=dark] .badge-status-archived,[data-theme=dark] .status-abgerechnet,[data-theme=dark] .status-genehmigt{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}[data-theme=dark] .badge-in-bearbeitung,[data-theme=dark] .badge-loc,[data-theme=dark] .status-gemeldet,[data-theme=dark] .status-signiert{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}[data-theme=dark] .badge-admin,[data-theme=dark] .badge-hoch,[data-theme=dark] .btn-danger,[data-theme=dark] .status-abgelehnt{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}[data-theme=dark] .money-badge{background:#1e1b4b;color:#a5b4fc;border-color:#312e81}[data-theme=dark] .btn-action-edit{background:var(--bg);color:var(--text-light);border-color:var(--border)}[data-theme=dark] .btn-action-pdf{background:var(--primary);border-color:var(--primary)}[data-theme=dark] .btn-edit{background:var(--bg);color:var(--text-light);border-color:var(--border)}[data-theme=dark] .split-form{border-right-color:var(--border)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .alert-success{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}:root:not([data-theme=light]) .alert-error{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}:root:not([data-theme=light]) .alert-warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}:root:not([data-theme=light]) .alert-info{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}:root:not([data-theme=light]) .badge-offen,:root:not([data-theme=light]) .badge-status-draft,:root:not([data-theme=light]) .status-beantragt,:root:not([data-theme=light]) .status-offen{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}:root:not([data-theme=light]) .badge-abgerechnet,:root:not([data-theme=light]) .badge-abgeschlossen,:root:not([data-theme=light]) .badge-status-archived,:root:not([data-theme=light]) .status-abgerechnet,:root:not([data-theme=light]) .status-genehmigt{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}:root:not([data-theme=light]) .badge-in-bearbeitung,:root:not([data-theme=light]) .badge-loc,:root:not([data-theme=light]) .status-gemeldet,:root:not([data-theme=light]) .status-signiert{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}:root:not([data-theme=light]) .badge-admin,:root:not([data-theme=light]) .badge-hoch,:root:not([data-theme=light]) .btn-danger,:root:not([data-theme=light]) .status-abgelehnt{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}:root:not([data-theme=light]) .money-badge{background:#1e1b4b;color:#a5b4fc;border-color:#312e81}:root:not([data-theme=light]) .btn-action-edit{background:var(--bg);color:var(--text-light);border-color:var(--border)}:root:not([data-theme=light]) .btn-action-pdf{background:var(--primary);border-color:var(--primary)}:root:not([data-theme=light]) .btn-edit{background:var(--bg);color:var(--text-light);border-color:var(--border)}:root:not([data-theme=light]) .split-form{border-right-color:var(--border)}}.hdr-offline-banner{top:0;left:0;right:0;z-index:99999;background:#fbbf24;padding:8px 16px;box-shadow:0 2px 8px rgb(0 0 0 / .15)}.hdr-pw-expired{background:#fbbf24;padding:10px 16px;border-bottom:1px solid #f59e0b}.hdr-brand-logo{height:38px}.hdr-search-input{padding:6px 14px;width:180px;outline:0;transition:width .3s,border-color .3s;box-sizing:border-box}.hdr-search-results{top:42px;right:0;width:340px;max-height:400px;box-shadow:0 10px 25px rgb(0 0 0 / .15);z-index:2000}.hdr-notif-badge{top:0;right:-4px;background:#ef4444;font-size:.6rem;padding:1px 4px;min-width:14px}.hdr-notif-panel{top:50px;right:0;width:360px;max-height:450px;box-shadow:0 10px 25px rgb(0 0 0 / .15);z-index:2000}.hdr-notif-header{padding:12px 16px;border-bottom:1px solid var(--border-light)}.hdr-notif-list{max-height:380px}.search-result-item{display:flex;align-items:center;gap:10px;padding:10px 16px;text-decoration:none;color:var(--text);border-bottom:1px solid var(--border-light);transition:background .15s}.search-result-icon{font-size:1.2rem}.search-result-title{font-weight:600;font-size:.85rem}.search-result-sub{font-size:.75rem;color:var(--text-muted)}.notif-item{display:flex;align-items:center;gap:10px;padding:12px 16px;text-decoration:none;color:var(--text);background:var(--surface);border-bottom:1px solid var(--border-light)}.notif-item-unread{background:var(--info-bg)}.notif-dot{width:8px;height:8px;background:#3b82f6;border-radius:50%;flex-shrink:0}.notif-content{flex:1;min-width:0}.notif-title{font-weight:400;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-title-unread{font-weight:700}.notif-time{font-size:.75rem;color:var(--text-muted)}.chat-badge{position:absolute;background:#ef4444;color:#fff;font-weight:700;border-radius:10px;text-align:center}.chat-badge-pill{top:-4px;right:-4px;font-size:.6rem;padding:1px 5px;min-width:14px;line-height:1.3}.chat-badge-tile{top:8px;right:8px;font-size:.65rem;padding:2px 6px;min-width:16px}.global-search-input.search-focused{border-color:var(--primary)!important;width:240px!important}.hdr-theme-toggle{border-radius:50%;width:32px;height:32px;border:none}.hdr-security-link{color:#0ea5e9}.hdr-nav-edit-panel{background:var(--bg);margin:4px 8px;box-shadow:0 4px 15px rgb(0 0 0 / .1)}.hdr-nav-chip{padding:4px 10px;border-radius:16px;border:1px solid;transition:.15s}.hdr-nav-save-btn{padding:5px 14px}.speech-btn{background:0 0;border:1px solid var(--border-light,#dee2e6);border-radius:6px;padding:6px 8px;cursor:pointer;color:var(--text-muted,#6c757d);transition:.2s;position:relative}.speech-btn:hover{color:var(--primary,#0d6efd);border-color:var(--primary,#0d6efd)}.speech-btn.speech-active{color:#fff;background:#dc3545;border-color:#dc3545;animation:1.2s ease-in-out infinite speech-pulse}@keyframes speech-pulse{0%,100%{box-shadow:0 0 0 0 rgb(220 53 69 / .5)}50%{box-shadow:0 0 0 8px rgb(220 53 69 / 0)}}