.sev-wrapper { font-family: sans-serif; max-width: 900px; margin: 0 auto; box-sizing: border-box; position: relative; }
.sev-wrapper *, .sev-wrapper *::before, .sev-wrapper *::after { box-sizing: border-box; }

/* ... Controls und Calendar Styles ... */
.sev-controls { display: flex; gap: 10px; margin-bottom: 20px; flex-wrap: wrap; background: #f9f9f9; padding: 15px; border-radius: 5px; align-items: center; }
.sev-controls input, .sev-controls select { padding: 8px; border: 1px solid #ccc; border-radius: 4px; flex-grow: 1; min-width: 150px; }

/* View Switch Anpassung */
.sev-view-switch { display: flex; gap: 5px; margin-left: auto; }

/* Button Styling */
.sev-btn { 
    padding: 8px 15px; 
    border: 1px solid #0073aa; 
    background: #fff; 
    color: #0073aa; 
    cursor: pointer; 
    border-radius: 4px;
    
    text-decoration: none; 
    display: inline-block;
    text-align: center;
    min-width: 100px; 
    font-size: 14px; 
    line-height: normal;
}

.sev-btn.active { background: #0073aa; color: #fff; }
.sev-btn:hover { background: #f0f0f0; }
.sev-btn.active:hover { background: #006799; }

.sev-view { display: none; }
.sev-view.active { display: block; }

.sev-calendar-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.sev-calendar-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; margin-bottom: 5px; text-align: center; font-weight: bold; color: #555; font-size: 0.9em; }
.sev-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.sev-day-cell { border: 1px solid #eee; min-height: 100px; padding: 5px; background: #fff; overflow: hidden; }
.sev-day-cell.sev-today { background: #f0f8ff; border-color: #b0d4ff; }
.sev-day-cell.sev-empty { background: #fafafa; border: none; }
.sev-day-number { font-weight: bold; font-size: 0.9em; margin-bottom: 5px; display: block; color: #555; text-align: right; }
.sev-cal-event { 
    background: #0073aa; color: #fff; padding: 4px; border-radius: 3px; margin-bottom: 4px; 
    display: block; overflow: hidden; font-size: 0.8em; line-height: 1.2; cursor: pointer; transition: opacity 0.2s;
}
.sev-cal-event:hover { opacity: 0.9; }
.sev-event-time { font-size: 0.85em; opacity: 0.9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 2px; }
.sev-event-title { font-weight: bold; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* List View */
#sev-list-items { list-style: none; padding: 0; margin: 0; }
.sev-list-item { background: #fff; border: 1px solid #eee; padding: 15px; margin-bottom: 10px; border-left-width: 5px; border-left-style: solid; border-radius: 4px; }
.sev-item-meta { font-size: 0.85em; color: #666; margin-bottom: 5px; }
.sev-item-title { font-size: 1.2em; font-weight: bold; margin: 0 0 5px 0; }
.sev-item-detail { font-size: 0.9em; margin-top: 5px; color: #444; display: flex; align-items: center; }

/* ICON STYLE */
.sev-icon {
    width: 20px;
    height: auto;
    margin-right: 8px;
    vertical-align: middle;
}

/* POPUP */
.sev-popup {
    display: none; position: absolute; background: #fff; border: 1px solid #ccc;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2); padding: 15px; border-radius: 5px; 
    z-index: 9999; width: 300px; max-width: 90vw; pointer-events: auto;
}
.sev-popup.active { display: block; }

.sev-popup-content h3 { margin: 0 0 10px 0; font-size: 1.1em; color: #333; }
.sev-popup-dates-label { font-size: 0.85em; color: #666; font-weight: bold; margin-bottom: 5px; }

#sev-popup-dates-list { list-style: none; padding: 0; margin: 0 0 10px 0; max-height: 150px; overflow-y: auto; border: 1px solid #eee; background: #fafafa; }
#sev-popup-dates-list li { padding: 4px 8px; border-bottom: 1px solid #eee; font-size: 0.9em; color: #555; }
#sev-popup-dates-list li:last-child { border-bottom: none; }

.sev-popup-detail-row { font-size: 0.9em; color: #333; margin-bottom: 5px; display: flex; align-items: center; }
.sev-popup-detail-row a { color: #0073aa; text-decoration: none; font-weight: bold; }
.sev-popup-detail-row a:hover { text-decoration: underline; }

#sev-popup-close { display: none; position: absolute; top: 5px; right: 5px; background: none; border: none; font-size: 1.5em; cursor: pointer; color: #999; }
.sev-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 9000; }

@media (max-width: 768px) {
    .sev-controls { flex-direction: column; align-items: stretch; }
    .sev-day-cell { min-height: 70px; padding: 2px; }
    .sev-cal-event { padding: 2px; font-size: 0.7em; }
    .sev-popup { position: fixed; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%); width: 85%; }
    #sev-popup-close { display: block; }
    .sev-overlay.active { display: block; }
}

.sev-btn-icon {
    /* Legacy Klasse */
    text-decoration: none; padding: 8px 12px; background: #eee; color: #333;
    border: 1px solid #ccc; border-radius: 4px; font-size: 0.9em; display: flex; align-items: center; gap: 5px;
}